Hi,
I've asked for information at the DSTWO forum, without much look save for vague answers which seemed mildly misinformed about OS internals and how MMU works (and more or less confused mixture of mentions to virtualization and unrelated concepts).
I've got a 3DS recently, and being more of a coder rather than a gamer I obviously looked for the available capabilities (after all, the 3DS is still much cheaper than a Pandora device). I've got a DSTWO and recently I proposed developing an improved fork of Lameboy if the original developer provided the source code under the GPL. However, I've so far got no satisfactory answers for my question about the extra RAM available in the 3DS.
I would like to keep noise to a minimum so this issues can be discussed clearly and sorted out as soon as possible. Since one of my would-be projects involves emulation, accessing the extra RAM is key to succeed in emulating complex platforms (or even support current emulators, like Scumm VM a bit better to do image scaling).
I've asked for information at the DSTWO forum, without much look save for vague answers which seemed mildly misinformed about OS internals and how MMU works (and more or less confused mixture of mentions to virtualization and unrelated concepts).
I've got a 3DS recently, and being more of a coder rather than a gamer I obviously looked for the available capabilities (after all, the 3DS is still much cheaper than a Pandora device). I've got a DSTWO and recently I proposed developing an improved fork of Lameboy if the original developer provided the source code under the GPL. However, I've so far got no satisfactory answers for my question about the extra RAM available in the 3DS.
- Are there any details on the 3DS and/or DS MMU? How the firmware handles memory management with the architecture/processor, etc.
- The DSTWO is a DS card, therefore it should behave just like any other DS card memory-wise. Is there any limiting factor that would prevent the extra RAM from being used by DS cards (homebrew, mostly)? For instance, I would appreciate having details about how the old Slot 2 RAM expansion packs worked (I suppose the DS firmware had ABI to enable those and it was called from the homebrew/flash card software when necessary).
- Is the architecture used to run 3DS games the same as DS ones? Meaning, same MMU, same RAM banks accessed, etc.
- How can we test from a DS homebrew how much RAM is available in the system? (besides running a sequential allocation program until it hangs or reports -ENOMEM, or whichever error happens when a DS/3DS application runs out of memory, if any at all).
I would like to keep noise to a minimum so this issues can be discussed clearly and sorted out as soon as possible. Since one of my would-be projects involves emulation, accessing the extra RAM is key to succeed in emulating complex platforms (or even support current emulators, like Scumm VM a bit better to do image scaling).