6 ms·
Very interesting. I'm curious if there are any specific shortcomings with modern Genesis/Megadrive emulation that spurred this, or if this is just a pure "for
by JohnBooty 3y ago
Very interesting.
I'm curious if there are any specific shortcomings with modern Genesis/Megadrive emulation that spurred this, or if this is just a pure "for the love of the pursuit" effort.
I'm not sure of the exact state of the art, but I know that getting sound emulation perfectly right for the Genesis/MegaDrive has been a tricky issue over the years, even for Sega themselves. Though, my (loose) understanding is that the issue is moreso with getting the analog bits sounding right rather than the digital bits.
- joshspankit 3y agoWhile there is some amount of software emulators “it’s not quite right”-ness, this is more spurred by the general availability of FPGAs with enough resources to “become” older consoles like the Genesis/MegaDrive.
- jonny_eh 3y agoBut there already exist cores for Mister and Analogue Pocket. e.g. https://github.com/MiSTer-devel/Genesis_MiSTer https://github.com/MiSTer-devel/Genesis_MiSTer
- JohnBooty 3y agoI have never worked under the hood of an emulation project, but my understanding is that the Mister/Analogue cores are best understood as an "FPGA implementation of existing software emulation." In other words, they are not emulating the 68K, VDP, and other supporting chips on a gate-for-gate basis. They are emulating them at a higher level. With the decapping of the Genesis' hardware, it should now be possible to truly emulate them at a 1:1 hardware level. This theoretically can lead to far more accurate emulation. I believe this is a lot more FPGA resource-intensive and may exceed what the existing MISTer/Analogue cores can handle, though I'm way out of my depth here.
- CSMastermind 3y ago> I know that getting sound emulation perfectly right for the Genesis/MegaDrive has been a tricky issue over the years, even for Sega themselves I would definitely be curious to know why - the emulation of Genesis is notably behind most other video game consoles but I always assumed this was because of less interest and not because of any unique technical challenges.
- photonerd 3y agoMostly it’s due to the secondary chips being a quirky pain. It’s emulation was ahead of many others for a number of years in the late 90s & 2000s but hit a wall
- JohnBooty 3y agohit a wall Is there somewhere you'd recommend where I can read about the unsolved challenges of Genesis/Megadrive emulation?
- mikepavone 3y agoI disagree that things hit a wall, but there are a lot of smaller unknowns: - Work RAM refresh timing seems to be a bit variable and the exact logic for the timing has been unclear - The exact point when scroll values are latched from the internal scroll RAM when in full screen scroll mode is unknown - Precise cause of a CPU lockup when configuring a 68K->VDP DMA and then performing a normal access instead is also unknown - Certain details of sprite rendering that can show up in certain edge cases are also a bit unclear - The function of some of the VDP debug registers is unknown There's a lot more like that, but that hopefully gives you the gist. Nuked-MD-FPGA (and its C-based predecessor) will hopefully make a lot of those questions easier to answer since Verilog/C with a lot of unclear signal names is still a lot more easier to interpret than a die photo.
- JohnBooty 3y agoThanks so much for this. This is precisely the sort of nitty-gritty I was wondering about. I appreciate your time and your efforts in the emulation scene a lot. I looked but couldn't find much information on remaining games that still have emulation issues. This was about all I found: https://ares-emu.net/compatibility/21?status=3000 https://ares-emu.net/compatibility/21?status=3000 Last I looked into it, even Overdrive 2 was emulated pretty well...
- mcronce 3y agoI can't speak to the Genesis specifically, but in general software emulation introduces tiny inaccuracies, in the form of missed inputs (because of things like context switches - it's important to note that, while these old consoles were hilariously slow compared with modern hardware, they were single-threaded), slightly incorrect emulation speed, things like that. For most people, myself included, this doesn't matter at all. For people looking for an extremely "pure" original experience, this is the closest you can get to original hardware - which is getting both more expensive and lower quality with time. For the competitive speedrunning scene, incorrect emulation speed is a non-starter in some categories, and dropped inputs are a huge problem when they happen.
- grishka 3y agoHow do context switches cause dropped inputs? My understanding is that input in modern OSes works like this: the kernel reads the input device or handles an interrupt from it, it passes the input event to the window manager, which puts it into the queue of the relevant app. The UI thread of the app then eventually picks it up and processes it. I see how this can cause delayed inputs, but dropped?
- genmud 3y agoI don’t think the old gaming hardware really ran an OS in the way you think of it. IIRC the cartridges were effectively just PROMs (I could be wrong and maybe they were fabbed / silicon and didn’t get programmed) which held the application code.
- duskwuff 3y agoVideo game cartridges were typically mask ROMs, but the effect is the same. There was virtually no software resident in the console; everything the user interacted with was running from the cartridge. (The Genesis had a tiny ROM for the TMSS licensing check, but that was only 2KB, most of it image data -- and it was only used during system startup.)
- epcoa 3y ago
- MegaDeKay 3y agoYou should look into MDFourier. "MDFourier is an open source software solution created to compare audio signatures and generate a series of graphs that show how they differ." The Genesis was one of the primary targets for this software, and for that reason I believe that Genesis sound emulation is very accurate. https://junkerhq.net/MDFourier/ https://junkerhq.net/MDFourier/ Genesis sound emulation is indeed tricky because there were multiple variants of the sound hardware in the Genesis over the years. Some emulators model multiple variants. https://www.reddit.com/r/emulation/comments/104tgvs/sega_genesis_ym2612_revision_emulation/ https://www.reddit.com/r/emulation/comments/104tgvs/sega_gen...