this post was submitted on 02 Jul 2023
13 points (100.0% liked)

C Programming Language

998 readers
1 users here now

Welcome to the C community!

C is quirky, flawed, and an enormous success.
... When I read commentary about suggestions for where C should go, I often think back and give thanks that it wasn't developed under the advice of a worldwide crowd.
... The only way to learn a new programming language is by writing programs in it.

© Dennis Ritchie

🌐 https://en.cppreference.com/w/c

founded 1 year ago
MODERATORS
 

Hello fellow developers! I’m new to this community and I am interested in learning more about you all, I have a simple question what is your favorite personal project that you have developed in the C programming language? It doesn’t have to be something mind blowing or extremely complex just something that you’ve enjoyed developing.

you are viewing a single comment's thread
view the rest of the comments
[–] ITSNM456 1 points 1 year ago (1 children)

An emulator is definitely a dream project of mine but I haven't worked up the courage to do it yet, currently I'm working on a webserver but a gameboy emulator something I would like to try out when I have more experience with programming. Did you have any issues with running any specific roms or any performance issues in general?

[–] [email protected] 3 points 1 year ago (1 children)

Starting with Gameboy might be a bit daunting but if you're reasonably comfortable with C then I don't think it's too bad. If you're not too familiar with the hardware side of it then that might be a challenge, but the advantage with the Gameboy is that there's tons of documentation and tutorials out there which can probably help you work though the details. Really the big thing is to just be ready to do lots of reading XD You need to get a base-level of understanding of the system before you start coding. git says it took me around a year to get it functional and playing most ROMs, but that was with some big breaks in-between.

Also, that's a very good question. For performance, it was never an issue. I started it with a focus on keeping the code clean vs. worry about performance and it turned out fine, I've run it on a cheap 1.6GHz machine and it didn't even reach 25% CPU usage, so IMO I wouldn't worry about it. This also doesn't vary that much ROM to ROM.

For the ROMs I tested, for the most part every ROM tended to uncover something new, but the Gameboy has a pretty nice progression of "easy" to "hard" ROMs if you just sort by the MBC type, and also the BIOS is a pretty good test of basic functionality. Additionally there are a few different test suite ROMs out there that are fantastic, they'll run through every instruction or piece of functionality and check for the correct results, they saved me tons of time.

[–] ITSNM456 1 points 1 year ago (1 children)

I can definitely see why this project is you favorite, I cant imagine myself working on a 1 year project ever lol, I think my longest project was about 2 weeks and I almost gave up multiple times.

[–] [email protected] 2 points 1 year ago

Lol the funny thing is that this isn't even close to my longest project :P I have one with a first commit close to 10 years ago (and I of course started it a while before the first commit). It's my favorite just for how fun the result is. IMO the best projects tend to be ones you actually like to use when you're done.

That said I also wouldn't put too much stock in that 1 year, I think I worked on it a lot for about a month and then moved onto other things after having trouble with it. I came back about a year later and managed to more or less finish it. It's definitely a long time to devote to a project, but if you stayed focused on it you could do it in a couple months I think.