Gaming Future 3DS emulator on PC question.

  • Thread starter Thread starter SgtThom
  • Start date Start date
  • Views Views 6,846
  • Replies Replies 29
I believe he means that "properly emulated" is to the point of it being the exact same quality and framerate as playing it on a DS.
 
  • Like
Reactions: 1 person
To get things back on topic...

There is no reason why you'd need to load the entirety of a 3DS game into ram... The reason you HAD to do this with older cartridge based systems was because of latency and the fact the games were not designed to have any. As such, any sort of lag in loading something caused the game to crash 99 out of 100 times. This is because VERY LITTLE actually was store on the console's RAM... most of the data was pulled and executed straight from the cart itself.

Think of an SNES game like an old CD player. Old CD players didn't have any sort of RAM (and older consoles had EXTREMELY limited RAM) so if there was a jostle or something, the music skipped. It skipped because it couldn't get the data it needed to keep playing the song. In the SNES/NES/Genesis/etc generation there was no programming to tell the console to "wait and try again" as it shouldn't ever have been necessary in normal use, so if the data didn't show up when it was requested, the system just got stuck in a loop and crashed.

Current "cartridge" based systems actually actually have more in common with disc based systems (which is why you don't need 5+GB of ram to play Wii games on PC). The data is streamed from the cart or disc and then stored in RAM to be run. This is easier to program for, less likely to crash, and since RAM these days is so cheap just all around makes good sense. Because things are read and stored in RAM, the game carts are actually (relatively) SLOWER to read with a HIGHER latency... This also makes games cheaper. SNES games cost $50-60+ but 30-40 of that was the cost of a blank cartridge, where as today 3DS carts cost about $10-15 depending on the size.


So.... since the DS/3DS load data from high latency carts, they don't have to be loaded completely into RAM when emulated, though this could still cause extended loading times, it generally won't break any game. The exact same way GCN/Wii/PS2 games are emulated on PC.

(edit) To be clear on what constitutes "older" cart based systems... pretty much any cart system before the GBA. That includes home systems like the N64 and before.
 
I believe he means that "properly emulated" is to the point of it being the exact same quality and framerate as playing it on a DS.

I was starting to believe no one would understand.
Well in that case you're wrong, because it can emulate the same quality and framerate, as I originally stated.
 
The 3DS screen is very small (400x240) and using 3D mode isn't much a difference (800x240),
The only problem with emulation is:
How much of the graphics and engine are emulated (using a virtual machine) and how much using native drivers (like GPU)..

I'm guessing that because that the 3DS uses alot of conventional methods for the games (i.e. OpenGL) then the emulation would be clean...
But that depends on how the emulator is going to be built...
 
I believe he means that "properly emulated" is to the point of it being the exact same quality and framerate as playing it on a DS.

I was starting to believe no one would understand.
Well in that case you're wrong, because it can emulate the same quality and framerate, as I originally stated.

Whatever.
Let's say you're right and end this conversation. It doesn't bring anything to the original poster anyway.
 
I believe he means that "properly emulated" is to the point of it being the exact same quality and framerate as playing it on a DS.

I was starting to believe no one would understand.
Well in that case you're wrong, because it can emulate the same quality and framerate, as I originally stated.
Yep. I do believe tough that there is a difference between 'proper' emulation and 'perfect' emulation. There are still DS games that won't run perfectly on the computer, having some graphical glitches or slowdowns in some places. But most of the time, the computer does a fine job on emulating the DS.


I think the hard part of creating a 3DS emulator right now is that we probably need to unencript the game files before we can actually read the code we need to emulate.
 
  • Like
Reactions: 1 person
Only SNES, NES, GB, and GBA emulators needed to load ROMs to the RAM. The reason for this was because those cartridges were pretty much as fast as RAM(a lot of textures, sprites etc never got loaded into the console's RAM, they were directly addressed, which is why there was never any loading time for those systems). It's also the reason GBA emulation on DS is so tricky(DS has 4MB of RAM, the ROMs need up to 16 or 32 MB of RAM-speed memory).

This era of ultrafast loading-free Nintendo games ended with the Nintendo DS(handhelds) and the Gamecube(TV consoles). From there on there was no more need to have the WHOLE ROM in ultra-fast access. Emulators put the ROMs into RAM because of 3 reasons:

1. They NEED the speed in order to run. This is only for systems I mentioned earlier, where on the real device the entire ROM was very fast to read.
2. They can get extra speed with the ROM loaded in memory. This is a special case, attributable only to DS emulators. Because while DS ROMs are NOT fast-access, the emulators STILL put them into RAM. They do this because emulating the CPU itself is already a heavy task, and having a memory-to-drive paging system would put further stress on the PC, so even though the original DS doesn't do that, it's still a better idea to put everything somewhere where access is fast. The paging system STILL needs to be emulated though. That is, there will still be 2 types of data in the computer's RAM: the ROM itself and the 4MB of DS RAM. Data will still be moved from the "slower" area(ROM) to the "faster" area(RAM), and there will still be loading screens, even though from an emulation standpoint it's all happening within the computer RAM.
3. It's easier. A paging system is complicated to program, and sometimes it's just best to dump everything in one place and handle it PRETENDING there are 2 different environments.

Again, as far as I know the DS emulator is the ONLY emulator that loads the whole ROM in memory, even though it doesn't need to. In theory you could program a DS emulator which only needs little over 4MB of RAM, representing the console's own and whatever else is needed for the virtualization layer. It was only done so out of ease and is NOT necessary in order to emulate properly. But with today's low-end computers still having memory 4x the largest DS ROM, it was out of convenience. The resource is there, it's fast, why not use it?

Emulators of all other consoles that don't load everything in RAM(GC, Wii, PS2 etc.) will operate the same way as the consoles, only putting what they need into RAM. If a 3DS emulator is made it will most certainly NOT load everything in RAM. At least not now. But let's imagine a future 10 years from now where computers have 32-64GB of RAM. If the old emulators will no longer be compatible and new ones are made from scratch, it's not unlikely that you'll see PS2, GC, Wii, 3DS emulators that load the entire ISO/ROM into the computer's memory. It's just convenient.
 

Site & Scene News

Popular threads in this forum