5 ms·
is this allowed for speedruns
by DarylZero 5y ago
is this allowed for speedruns
- danaris 5y agoAllowed? Maybe, maybe not. Helpful? Extremely not. I just ran this on my high-end M1 Max, and it rendered 2 frames in roughly 3 minutes. Hardware-accurate emulation is, generally speaking, not fast emulation.
- rl3 5y agoHardware-accurate emulation in software is typically not fast. FPGAs however can achieve low-level emulation with a high degree of hardware accuracy: https://github.com/MiSTer-devel/Main_MiSTer/wiki https://github.com/MiSTer-devel/Main_MiSTer/wiki
- monocasa 5y agoThe 6502 unfortunately relies on some effects that can't be described in FPGA synthesizable logic. You might get a lot of speed up over the extremely simplified spice style simulation you have to do that still might get you to real time, but it's not the slam dunk you might think.
- russdill 5y agoSounds interesting. Any citations where I can read more about those effects?
- monocasa 5y agoYou can sort of divine them from how the undocumented instructions work. https://www.pagetable.com/?p=39 https://www.pagetable.com/?p=39 It more or less falls under true classic highz buses with multiple drivers. You have three options I can see 1) treat it as a spice simulation that aggressively optmizes to synthesizable logic most places other than the problem parts. 2) hand replace the problem parts with synthesizable logic sorta like how Nvidia replaces graphics shaders with had written replacements in their drivers 3) just throw the whole thing into a spice simulation
- tenebrisalietum 5y agoI think the decrement relies on open bus behavior I think - the 6502 uses it to cheat and set a value to FF in the same cycle which is then sent through the same path as increment or add, effectively adding -1 to a value.
- comex 5y agoOut of curiosity, what effects are you talking about?
- monocasa 5y agoThe internal buses are basically true highz buses with multiple drivers and latches hanging off of them.
- stormbrew 5y agoI mean, aside from the question of whether fpgas can truly accurately simulate everything at the transistor level, the truth is that most fpga emulation cores for this sort of thing don't. They are, afaik, still mostly 'just' cycle-level accurate emulations built off the same reverse engineering that accurate software emulators are. They can do it more efficiently for sure, but that doesn't mean it's worth it for them to go much farther. Like, for an extreme example there's no world in which the in-development PSX mister core, running on a de10 nano, is particularly more accurate than a software emulator. The chips involved have too many transistors to completely simulate. But this will be true to some degree for everything above some complexity threshold. Maybe the Atari 2600 core is perfectly accurate. I wouldn't be surprised if the most accurate software emulators are more accurate than the most accurate fpga cores, especially for anything newer than the NES, just because that's where most of the original work involved happens. This idea that FPGAs are inherently more accurate seems to be rooted in marketing FUD from a company called Analogue.
- philistine 5y agoI’ll 100% give you the marketing spin, but FPGAs provide an element of accuracy with frame delay. If you plug in a controller and use a CRT, there no more lost frames than the original hardware. That’s the accuracy that’s above what an emulator on our Babel’s tower of a stack on Windows.
- stormbrew 5y agoThat's not because of the fpga though. You can also plug a CRT into a PC. You can even chase the beam if you're willing to go to a low enough level. People generally don't but this is a limitation born advantage. There's no OS (sort of) to get in your way and why would you put one there if it's not helping you. (I say sort of because there usually is a system that could be described as an OS running somewhere on the fpga board, to load the fpga bitstreams, if nothing else, but also sometimes to supplement the fpga's abilities)
- philistine 5y ago
- taneq 5y agoIs it still really emulation at that stage? Or is it more like a reimplementation?
- teaearlgraycold 5y agoI think it'd be considered TAS if you report your time by frame count. Slowing down an emulator is a TAS.
- lanewinfield 5y agoyes, they're called slowruns