Yesssss this is right up my alley with my current projects. I'm working through K&R 2nd Ed and making little demo apps with libnds using framebuffer manipulation for graphics along the way. My goal is to eventually end up with a useful 15bit sprite-ing application, and an endless scrolling handwriting journal thingy with bookmarks. Thank You for posting this! I'm loading this onto my DSi XL right now.
Agreed over the dsi, though I love it. The only exception is if you only play physical media, then the DS lite's ability to play the entire GBA library is pretty cool.
For me it's the fact that I can emulate basically all retro consoles on the n3ds, including imo the best existent way to play VirtualBoy games in actual stereoscopic 3d. That on top of the fact that it's the only way to play 3ds games in the native experience, with 3d, which is impossible on any emulator. Combined with the social features and build quality of the device, and it's unbeatable. Get a USB 3ds charger and it's the perfect travel console. I bring it on every trip and leave it on streetpass mode. Especially for Japan trips, I still to this day pick up new street pass pings, which is so incredibly delightful to find when I get back to the hotel room.
Though I prefer the non xl version, as it's a truly portable console rather than the XL which is huge and heavy in my bag.
> the only way to play 3ds games in the native experience, with 3d, which is impossible on any emulator
You can get that with a headset; there's emulators for the Quest, or you can use Citra in SBS mode with a headset like the Vision Pro or Xreal glasses. But yeah it's more finnicky for sure.
Fun fact, all 3ds models can actually play GBA games natively. Nintendo only ever offered GBA games to early adopters who paid the launch price for the original 3ds after a significant price cut, but it's possible to sideload any rom to run natively.
I'm not sure. At least for me, part of the charm of these older consoles (do they qualify for the "retro" term yet?) is the smaller resolution of the displays. Especially for the bottom screen on the DS line, there is something very warm, fuzzy, and cosy about clearly being able to see each individual pixel.
Perhaps it's just nostalgia. I still own my DS Lite, though.
In 2004, the games I played that had come out ~22 years prior, give or take two years, were already considered retro: Donkey Kong, Pitfall, Pac-Man, Asteroids, etc. And ~21 years prior was the great video came crash of '83.
Suffice to say, we're dinosaurs. I've made my piece with it and spend a considerable amount of time listening to old British dudes break down 30 year old games.
> Executes one line of script per frame (~60 lines/sec).
Makes the "runs at 60FPS" aspect of the engine feel a lot less relevant. At this speed, anything more complex than Pong would be a struggle. Even a CHIP-8 interpreter is usually expected handle a dozen or so comparably expressive instructions per frame.
I agree. It seems like interpreting one instruction per frame is the developer's way to guarantee real-time performance. I don't want to discourage the developer from experimenting with this design. What I think they should do is determine the most instructions they can interpret each frame.
Which is why I love this. Extreme constraints. Takes a lot of creativity to make something interesting, without feeling overwhelmed with possibility. I'm considering making tiny arthouse game projects with this.
The DSi and GBA modes on 3DS aren't emulation, there's an actual Arm7 and GBA/NDS IP blocks in the 3DS. For the parts that do require software intervention (DSi RTC, input remapping, etc.) it's more-or-less hardware virtualization.
Are {,3}DSs easily hackable? Is it just running software from disk or is the whole firmware replaceable? I love the form factor, would be fun to have one as a home automation remote.
I love the form factor of the Switch also. I wish Nintendo hardware was more hackable.
For a regular DS all you need to do is buy a simple flashcart, copy applications to a microSD card, and you're done, you don't need to replace the firmware. There's even a FOSS flashcart: https://www.lnh-team.org/
On DSi you can replace the firmware and load your applications from the SD slot of the DSi, no flashcart needed.
Also, there are a few C/C++ toolchains for the DS (BlocksDS, devkitARM) and different libraries depending on how low level you want to go with your code. It's very easy to get started.
The 3DS is also pretty easy to hack, and then all you have to do is to copy your applications to the SD card of the console.
Also all Switch models can be hacked too. It's only the matter of softmodding (early V1 models) or modchip installation (later V1 models, V2, Lite, OLED)
I have both a hacked New 3DS XL and a hacked Switch OLED and both are incredibly good. But I admit I use the latter only because of piracy...
A DS set to Auto mode will boot to the cartridge (and you can reflash the firmware to skip the health and safety screen). From there the OS is replaced with whatever is on the cart. A flashcart with the right shell will boot right into whatever app you want (and you can soft reset the console with a key combination to switch apps).
3DSes require a little more work and have a longer boot chain, but it's been thoroughly broken all the way to the bootstrapping process so you can use whichever firmware version and whatever patches you like with enough effort.
Once a DS has been flashed (skips the health and safety screen) it also disables signature verification for DS download play, so you can beam homebrews directly to your DS' home screen with a wifi card. But this is an awkward process that most people don't actually do with their original DSes, as it requires putting tinfoil over a toothpick and jamming it into a hole next to the battery to close the flash write jumper. I think DS' crypto has also been defeated but I can't find any documentation of arbitrary download play on unflashed DSes. Also seems no .nds signing keys in the leaks from what I can tell.
Indeed, a lot of folks liked the R4 cartridge for playing a wide DS title portfolio for free. However, piracy doesn't sustain a platform economically, and Nintendo is famously litigious.
In general, home brew people actually interested in building their own unique indie games often do not port to systems people have zero interest in supporting. Even publishing to Android/iOS would have less problems with <12% of users actually buying anything. =3
Nobody has to have instructions on how to "hack" the Steam Deck because it's a computer and you just run whatever you want on it.
The instructions on how to crack open the immutable OS image are readily available from Valve but you probably won't need them since it's already got a lot of power even without that.
I have a Steam Deck instead of a Switch for that reason. Doesn't stop me from admiring and envying the form factor, unfortunately.
I do think it would be fun to have a plugin and be able to control lights from the Steam Deck menus, too, though. Just haven't gotten around to trying.
Less popular opinion : the ps vita was also one of the greatest despite Sony's horrid support and faith in the product.
For me it's the fact that I can emulate basically all retro consoles on the n3ds, including imo the best existent way to play VirtualBoy games in actual stereoscopic 3d. That on top of the fact that it's the only way to play 3ds games in the native experience, with 3d, which is impossible on any emulator. Combined with the social features and build quality of the device, and it's unbeatable. Get a USB 3ds charger and it's the perfect travel console. I bring it on every trip and leave it on streetpass mode. Especially for Japan trips, I still to this day pick up new street pass pings, which is so incredibly delightful to find when I get back to the hotel room.
Though I prefer the non xl version, as it's a truly portable console rather than the XL which is huge and heavy in my bag.
You can get that with a headset; there's emulators for the Quest, or you can use Citra in SBS mode with a headset like the Vision Pro or Xreal glasses. But yeah it's more finnicky for sure.
Perhaps it's just nostalgia. I still own my DS Lite, though.
In 2004, the games I played that had come out ~22 years prior, give or take two years, were already considered retro: Donkey Kong, Pitfall, Pac-Man, Asteroids, etc. And ~21 years prior was the great video came crash of '83.
Suffice to say, we're dinosaurs. I've made my piece with it and spend a considerable amount of time listening to old British dudes break down 30 year old games.
I wanted to be wow-ed at the level of that old cowboy arcade hologram game. :)
I'm sure since it was the newest hardware it was the best.
Sega Time Traveler
Playe it a few times. Never made it very far. Sure was cool to look at though.
I like the idea of on-device programming like this. While I haven't used it, I know there is a DSiWare application Petit Computer that lets you implement more complex (sprite-based) games in a Basic dialect: https://en.wikipedia.org/wiki/Petit_Computer. As DSiWare, it has an official video trailer: https://www.youtube.com/watch?v=4AYlEo3rJHs.
> Up to 128 script lines per program
The DSi and GBA modes on 3DS aren't emulation, there's an actual Arm7 and GBA/NDS IP blocks in the 3DS. For the parts that do require software intervention (DSi RTC, input remapping, etc.) it's more-or-less hardware virtualization.
Anyway, good job OP.
Also, the emulator doesn't start?
I love the form factor of the Switch also. I wish Nintendo hardware was more hackable.
On DSi you can replace the firmware and load your applications from the SD slot of the DSi, no flashcart needed.
Also, there are a few C/C++ toolchains for the DS (BlocksDS, devkitARM) and different libraries depending on how low level you want to go with your code. It's very easy to get started.
The 3DS is also pretty easy to hack, and then all you have to do is to copy your applications to the SD card of the console.
Also all Switch models can be hacked too. It's only the matter of softmodding (early V1 models) or modchip installation (later V1 models, V2, Lite, OLED)
I have both a hacked New 3DS XL and a hacked Switch OLED and both are incredibly good. But I admit I use the latter only because of piracy...
3DSes require a little more work and have a longer boot chain, but it's been thoroughly broken all the way to the bootstrapping process so you can use whichever firmware version and whatever patches you like with enough effort.
Proprietary closed hardware is not great for home brew projects. =)
In general, home brew people actually interested in building their own unique indie games often do not port to systems people have zero interest in supporting. Even publishing to Android/iOS would have less problems with <12% of users actually buying anything. =3
The decision-making here involved more passion than logic, clearly. And that's good. :)
The instructions on how to crack open the immutable OS image are readily available from Valve but you probably won't need them since it's already got a lot of power even without that.
I mean, I know there are a bare handful that can run Quake I. But I don't think there are that many, that can do more.
I do think it would be fun to have a plugin and be able to control lights from the Steam Deck menus, too, though. Just haven't gotten around to trying.