Homebrew DS(i) Mode hacking progress thread

  • Thread starter Thread starter Billy Acuña
  • Start date Start date
  • Views Views 810,280
  • Replies Replies 4,367
  • Likes Likes 81
Both ARM7 and ARM9 can use main RAM.
Redirecting both ARM7 and ARM9 reads to an image in RAM seems to be require fewer patches than redirecting all ARM7 reads to the SD, and then also having ARM7 run a server which can fetch data from the SD and pass it to the ARM9 on request.
Ok, it is true that ARM7 and ARM9 can access main ram but the 16MB dsi ram mode maps the ram differently to the original 4MB ds mode which breaks retail ds games and most homebrews (the addresses used usually to access an uncached mirror of the ram in 4MB mode point to real ram and not a mirror of the ram in 16MB mode). The games can be patched to avoid that for sure and maybe it will be required in the end but for now we are limited to the 4MB ram mode if we want to run a retail ds game.
So I will not load the rom into ram, this would be faster and simpler if it was possible but it is not. I will patch the game to redirect the arm9 card commands towards arm7 that will read the necessary data into the .nds rom file onto sd. The arm7 card command will be patched as well but it is easier since the sd can be accessed directly. So there will not be a limit in the rom size for the compatible game.
If enabled the 16MB mode could be used for cache (12MB available), but cache management algorithms may be tricky to implement and are prone to create bugs, so this will not be present at launch.
 
I tested RACE!DS (Neo Geo Pocket emulator for NDS), which runs very slow on a flashcard, but with bootstrap with CPU Boost enabled it runs pretty well, like 20 fps more than the abitual way to run it on a flashcard, I think I felt in love with bootstrap [emoji14]
 
Last edited by Billy Acuña,
I tested RACE!DS (Neo Geo Pocket emulator for NDS), which runs very slow on a flashcard, but with bootstrap with CPU Boost enabled it runs pretty well, like 20 fps more than the abitual way to run it on a flashcard, I think I got in love with bootstrap [emoji14]

Does 3DS even have a Neo Geo Pocket emulator?
 
@ahezard
If I'm not wrong, the CPU Boost is intented for emulators, right?
Because emulators runs smoother when is enabled, but it causes graphical issues on NeoDS (but smoother anyways). Do you think that those graphics issues could be fixed?

Also... What is the porpurse of NTR mode swithing on bootstrap.ini? Iirc hbmenu itself alreally swith into NTR mode at boot.
 
@ahezard
If I'm not wrong, the CPU Boost is intented for emulators, right?
Because emulators runs smoother when is enabled, but it causes graphical issues on NeoDS (but smoother anyways). Do you think that those graphics issues could be fixed?

Also... What is the porpurse of NTR mode swithing on bootstrap.ini? Iirc hbmenu itself alreally swith into NTR mode at boot.
It is not really intended for emulator. It just put the arm9 in 133mhz mode instead of 66mhz mode so it could beneficial to any homebrew that have low frame rate not only emulator (eg: quake, hexen, aperture science, dscraft...).

I do not think the neoDS graphical can be fixed easily. neoDS must rely on the ARM9 speed somewhere in the code to synchronize some graphics tasks. Tt have to be found and fixed and recompiled with an outdated libnds/devkitpro that nobody have.

Indeed the options between nds-hbmenu .ini and nds-bootstrap .ini are redundant. The option in nds-bootstrap take precedence over hbmenu. The plan is to get rid of the nds-hbmenu ui at some point and replace it with a proper ctr (3ds) mode ui that will launch the nds-bootstrap as cia directly. But right now nds-bootstrap refuses to works when installed as cia and the ctr ui is not really even started anyway so I have just hacked nds-hbmenu to use it as a frontend ui that launches nds-bootstrap as an .nds.

Edit : I have just pushed a new release that should speeds sd read/write a bit. It now matches a slot 2 device (I compared with my supercard mini sd). It is still 2-3x slower than a slot 1 device. https://github.com/ahezard/nds-bootstrap/releases
 
Last edited by ahezard,
@ahezard
If I'm not wrong, the CPU Boost is intented for emulators, right?
Because emulators runs smoother when is enabled, but it causes graphical issues on NeoDS (but smoother anyways). Do you think that those graphics issues could be fixed.

I use it for official games through NTR Launcher personally. There are some games that have nasty framedrops and most of the time boosting the ARM9 clock tidily takes care of that.
 
Nitrotracker works, and works perfectly. Fantastic to see!

Also, surprisingly, Lemmings DS works - there's a bit of corruption on the upper screen on the main menu, and the loading times are absurdly long, but once the initial game load process is done? It's perfect.
 
Tried NDS Music Player and while it works, it won't play some rams due to lack of ram. Anyway I can use all of the TWL Mode's RAM in it?

It's already been mentioned thay extra TWL RAM cannot be used because the TWL memory map conflicts with the NTR one.

Simce this program is open source, it may be better to port it to TWL mode.
 
I made a mock-up image of a 3DS-Mode .nds ROM loader.

mockup image.png


It looks similar to the DSi Menu, but game covers/icons are shown in 3D at the Top screen.
The color changes depending on the favorite color set in DS Profile settings.
  • Name
  • Background
  • "Select" border
  • Left/Right arrows
For the Top screen, The L button switches between game covers and icons from the ROMs, while the bottom screen is always icons from the ROMs.

Even got a name for the ROM loader: TWLoader

What do you think?
 
Last edited by RocketRobz,
I made a mock-up of a 3DS-Mode .nds ROM loader.

View attachment 66679

It looks similar to the DSi Menu, but game covers/icons are shown in 3D at the Top screen.
The color changes depending on the favorite color set in DS Profile settings.
  • Name
  • Background
  • "Select" border
  • Left/Right arrows
For the Top screen, The L button switches between game covers and icons from the ROMs, while the bottom screen is always icons from the ROMs.

Even got names for the ROM loader.
  • 3DSiMenu
  • 3DSision
  • 3DScovered
  • DSFlow
  • TWLoader
What do you think?
That's awesome! Really great idea with DSi-like menu, and TWLoader sounds great for the name
 
I made a mock-up of a 3DS-Mode .nds ROM loader.

View attachment 66679

It looks similar to the DSi Menu, but game covers/icons are shown in 3D at the Top screen.
The color changes depending on the favorite color set in DS Profile settings.
  • Name
  • Background
  • "Select" border
  • Left/Right arrows
For the Top screen, The L button switches between game covers and icons from the ROMs, while the bottom screen is always icons from the ROMs.

Even got names for the ROM loader.
  • 3DSiMenu
  • 3DSision
  • 3DScovered
  • DSFlow
  • TWLoader
What do you think?

The most beautyful thing I ever seen!!! As the name, it could be 3DSision o TWLoader, whatever of those two would be fine :)
 
That's awesome! Really great idea with DSi-like menu, and TWLoader sounds great for the name
The most beautyful thing I ever seen!!! As the name, it could be 3DSision o TWLoader, whatever of those two would be fine :)
Alright, TWLoader it is! :)
Now let's just wait for a dev to make it using the mock-up image as a base, 'cause I'm not that good of a dev. :P
 

Site & Scene News

Popular threads in this forum