Re:RyujinX – Open Source Nintendo Switch Emulator
by derefr on Thursday August 31, 2023 @02:30AM
(#37333244)
"This sort of thing" is actually really simple to get started with. You just read a few docs about the object-code format and instruction-set of the device you want to emulate, and then start writing a simple interpreter loop that reads and executes instructions from any arbitrary existing program ROM. Compare and contrast the results of running it on your emulator with running the same thing on real hardware (or on some other emulator.)
As soon as you get one well-known program working and displaying something on the screen, you've got "an emulator"; from there, the rest of the work is "just" in debugging compatibility issues with particular programs. (And optimization!)
If you've never done this before, it can be great fun! I'd recommend starting with a Z80 (Gameboy) emulator — it's extremely well-documented, fairly simple (no weird concepts like clipping masks or MMU mapper chips), fast to get to the "rewarding" point where you've got something displaying on-screen, and so low-powered that it'll run at full speed even with the most naive implementation.
As soon as you get one well-known program working and displaying something on the screen, you've got "an emulator"; from there, the rest of the work is "just" in debugging compatibility issues with particular programs. (And optimization!)
If you've never done this before, it can be great fun! I'd recommend starting with a Z80 (Gameboy) emulator — it's extremely well-documented, fairly simple (no weird concepts like clipping masks or MMU mapper chips), fast to get to the "rewarding" point where you've got something displaying on-screen, and so low-powered that it'll run at full speed even with the most naive implementation.