Hydr8gon / sm64

A port of Super Mario 64 for the DSi
Creative Commons Zero v1.0 Universal
127 stars 10 forks source link

Feature Request: ROM Cache or Pagefile Memory Manager Implementation for DSi SD card to load large (>16MB) n64 roms #43

Closed radicalten closed 1 week ago

radicalten commented 1 week ago

Hello,

Thank you for your continued work on this project!

Do you think it would be possible to load n64 ROMs that are larger than the DSi's ram size (16MB) if a ROM caching or pagefile memory management system were implemented that interfaced with the DSi's SD card?

On the DSi, cotodevel (https://bitbucket.org/Coto88/snemulds/src/master/) implemented a memory management system to load large ROMs in the SnemulDS emulator.

On the Wii, Not64 by extrems (https://github.com/extremscorner/not64) uses a rom caching method to preserve ram.

Likewise, the original Xbox emulator Surreal64 CE utilizes paging to load larger N64 roms (https://sourceforge.net/p/surreal64ce/svn/HEAD/tree/branches/A0.1/1964z/_memory.cpp).

Could a paging or caching implementation like those used above allow for larger n64 rom files to be loaded on the DSi?

p.s. The benefit of such a system for this repo would be that large rom hacks could be played on DSi. And for future repos, large rom size decompilations (OoT, MM, Paper Mario, etc.) could be ported to the DSi with the methods you developed.

Hydr8gon commented 1 week ago

This isn't an emulator, so there's no ROM that can be cached this way. The game itself would have to be modified to support this, but it's pretty complicated and nobody has really wanted to figure it out yet.

radicalten commented 1 week ago

Thanks for your explanation 👍