A year ago this week I was playing StellaDS on my NDS and wondering why there was no difficulty switch support.
Sure the games played slowly.
Yes there were compatibility issues.
But the damn difficulty switch was causing my little ship in Space Invaders to be twice as wide as it should (that game uses difficulty switches to set the shape/size of the player ship). That bothered me.
So I came looking for someone that might have patched it to set the default difficulty switch to B (Beginner) rather than A (Advanced).
I found some other posts that lamented the same lack of difficulty switch options. But I also stumbled across the source code. Being an engineer by trade, I took a look... and sure enough it wasn't as scary as I thought. In fact, I was able to spot the difficulty switch settings in less than an hour. But how to compile? That took me down a rabbit-hole for several days as I learned about DEVKIT PRO and the LIBNDS library to build homebrew games. I also stumbled upon TWL++ since the source code for StellaDS was archived on GitHub by none other than @RocketRobz. Within a week I got a build environment running and was able to hack in a difficulty switch by replacing the Black/White TV switch (nobody plays these games in BW - right?! But that was a thing in 1977).
I got an account here on gbatemp and I managed to get my hacked build uploaded to github... and I had done a 2 week project to graft in a difficulty switch to the Atari emulator.
I felt great! I should have stopped there...
I went on to spend (conservatively now) 350 development hours cleaning up and developing six emulators in this order:
It's been a really fun journey - with some frustrations along the way. I'm hugely indebted to Alekmaul for the original sources to 4 of these emulators ... I learned the basics of NDS programming from his examples. I'm also thankful for the many folks here on gbatemp who have been encouraging with thumbs and kind comments. Your support has not gone unnoticed by this old dogger!
Sure the games played slowly.
Yes there were compatibility issues.
But the damn difficulty switch was causing my little ship in Space Invaders to be twice as wide as it should (that game uses difficulty switches to set the shape/size of the player ship). That bothered me.
So I came looking for someone that might have patched it to set the default difficulty switch to B (Beginner) rather than A (Advanced).
I found some other posts that lamented the same lack of difficulty switch options. But I also stumbled across the source code. Being an engineer by trade, I took a look... and sure enough it wasn't as scary as I thought. In fact, I was able to spot the difficulty switch settings in less than an hour. But how to compile? That took me down a rabbit-hole for several days as I learned about DEVKIT PRO and the LIBNDS library to build homebrew games. I also stumbled upon TWL++ since the source code for StellaDS was archived on GitHub by none other than @RocketRobz. Within a week I got a build environment running and was able to hack in a difficulty switch by replacing the Black/White TV switch (nobody plays these games in BW - right?! But that was a thing in 1977).
I got an account here on gbatemp and I managed to get my hacked build uploaded to github... and I had done a 2 week project to graft in a difficulty switch to the Atari emulator.
I felt great! I should have stopped there...
- StellaDS (now at version 4.5)
- A7800DS (now at version 3.0)
- A5200DS (now at version 3.0)
- XEGS-DS (now at version 2.7)
- NINTV-DS (now at version 3.2)
- ColecoDS (now at version 0.7)
It's been a really fun journey - with some frustrations along the way. I'm hugely indebted to Alekmaul for the original sources to 4 of these emulators ... I learned the basics of NDS programming from his examples. I'm also thankful for the many folks here on gbatemp who have been encouraging with thumbs and kind comments. Your support has not gone unnoticed by this old dogger!