r/homebrew • • 8d ago

Homebrew release Diablo Nintendo DS(not finished but in progress)

Over the last weeks I've been porting DevilutionX (the open-source Diablo 1 engine) to the original Nintendo DS — 4 MB of RAM, 67 MHz, no GPU worth mentioning. The clip shows everything that works so far: boot, main menu, difficulty select, character creation and the loading screen into the game.

What already works:

  • Full engine boots on the DS (devkitARM + calico, a custom SDL 1.2 shim, software blitting into NDS bitmap mode)
  • Menus, difficulty and character selection, save-file creation
  • Level generation: the town miniset builds (1258 tiles), map streaming and the level graphics pipeline complete
  • Assets stream from the SD card, and the whole thing runs with my own DIABDAT.MPQ

The current wall, being honest about it: right after the town graphics finish loading, the last UI buffer allocation dies. A 640x144 8-bit surface needs 92 KB and the heap is down to fragments. The 4 MB are about 2.4 MB static image (code, data, BSS) and about 1.6 MB heap, which the engine fills up completely. So right now it stops exactly at the town load, and that's the bug I'm chasing this week. What I already got rid of: a 128 KB palette LUT, plus missile and player animations are now lazy-loaded, which cut the static image down step by step (-Oz + gc-sections).

Next up: town loads, then a movable character, then controls and touch UI.

No game data is included or redistributed, you need your own DIABDAT.MPQ. All credit to the DevilutionX team, devkitPro (devkitARM/libnds/calico) and the melonDS devs, which is what I'm testing on.

Would love to hear if there's interest in this, I'll keep posting updates as the town comes alive. Happy to answer technical questions in the comments.

11 Upvotes

2 comments sorted by

•

u/AutoModerator 8d ago

Thank you for posting to r/homebrew. Please keep in mind the following: - Piracy is not supported here, and is against the law. - Please read the sticky post as it has answers to many common questions. - This isn't for homebrew beer.

We also have a Discord server where you may be able to get an answer faster: https://discord.gg/PeQvhsrRdh

This is sent on all posts. Your post has not been removed (unless you see a comment stating otherwise)

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

2

u/DJArtemis99 8d ago

Yes, young skywalker. We will watch your career with great interest.