Nintendo DS code editor and scriptable game engine

168 pointsposted a day ago
by Antibabelic

39 Comments

functionmouse

21 hours ago

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.

liveoneggs

21 hours ago

The Nintendo DS (lite or XL) is probably the greatest portable gaming system to ever exist.

PacificSpecific

14 hours ago

Most definitely.

Less popular opinion : the ps vita was also one of the greatest despite Sony's horrid support and faith in the product.

herpdyderp

5 hours ago

Over the Steam Deck even?

Wowfunhappy

2 hours ago

Here's the problem with the Steam Deck, and every modern handheld. (And actually also the DSi XL noted in GP.)

The DS Lite can fit in your pocket. Comfortably. Not, like, technically fit, at the cost of making it uncomfortable to walk around. You can keep a DS Lite in your pocket all day, ready to be pulled out the moment you enter the crowded subway, or while in the doctor's office. Situations you didn't necessarily plan for.

The stupid Switch, and especially the even larger Steam Deck, I never actually have with me when I want it. All I have is my stupid iPhone, which is great for many things but doesn't have buttons, and it turns out you kind of need those for games. Developers have been trying, for nearly two decades now, to find ways to avoid buttons, and it even kind of works sometimes, but not really. Not when you want precise control over a character.

No one makes portable consoles anymore. I mean, they're portable in the way that a laptop is portable. They're handheld in the way a vacuum cleaner is handheld. But they're not portable like the DS Lite or GBA SP.

You can buy these little Android things designed for emulators, and I've almost bought them a few times, but I've pretty much already played all the NES games I want to play, and because there are very few new NES games being released, the library doesn't expand.

haunter

20 hours ago

Honestly I'd say that's the New 3DS XL.

komali2

17 hours ago

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.

gyomu

11 hours ago

> 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.

holly01

11 hours ago

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.

regenschutz

18 hours ago

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.

someperson

17 hours ago

The best music is always from ones own youth

soulofmischief

9 hours ago

The DS came out ~21 years ago, in 2004.

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.

liveoneggs

15 hours ago

I only played it briefly with a friend (street fighter) and the actual 3d seemed neat but it didn't wow me (or my eyes couldn't focus properly?).

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.

Wowfunhappy

2 hours ago

The biggest reason the 3DS can't provide what feels like a hologram is that the screen is too small. As objects come closer, they need to get bigger, but they can't get bigger than the screen's dimensions. So most games focused on objects going into the screen, instead of popping out.

But I think the 3D served one really wonderful purpose: it made the small screen feel larger overall. Not large, maybe, but larger than it really was.

tastyfreeze

15 hours ago

> old cowboy arcade hologram game

Sega Time Traveler

Playe it a few times. Never made it very far. Sure was cool to look at though.

cmovq

a day ago

The scripting language looks like it would be more cumbersome to use than C.

I did a double-take at

    > 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.

networked

6 hours ago

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.

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.

famahar

18 hours ago

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.

nxobject

21 hours ago

Don’t worry, you can’t have that many lines anyway…

> Up to 128 script lines per program

scoops_

a day ago

Are you kidding me? This is awesome! I imagine I can try it on my modded 2DS using the DSi emulator

TuxSH

a day ago

> modded 2DS using the DSi emulator

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.

plagiarist

a day ago

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.

skylyrac

a day ago

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.

haunter

20 hours ago

All 3DS/2DS models can be hacked with software only and it's very easy https://3ds.hacks.guide/

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...

striking

a day ago

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.

functionmouse

21 hours ago

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.

Joel_Mckay

a day ago

A Steam Deck won't fight you every step of the way.

Proprietary closed hardware is not great for home brew projects. =)

Andrex

18 hours ago

A Steam Deck is also X times more powerful.

The decision-making here involved more passion than logic, clearly. And that's good. :)

Joel_Mckay

18 hours ago

I have heard emulation works well on the platform. =3

manytimesaway

21 hours ago

Right, because the Deck is open source hardware...

jerf

20 hours ago

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.

shakna

18 hours ago

If open _hardware_ is the requirement, rather than just a nicety, how many graphics cards can you actually support?

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.

Joel_Mckay

21 hours ago

SteamOS 3 is Arch Linux-based, and should allow most popular game engines to run fine. =3

b00ty4breakfast

14 hours ago

rather get a used DS for cheap than help pay for GabeN's next hyper-yacht.

Joel_Mckay

6 hours ago

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

plagiarist

19 hours ago

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.

kstenerud

14 hours ago

"This video is unavailable. Error code: 152 - 4"

Also, the emulator doesn't start?