200
votes
Accepted
Why does the infamous "ENGAGERIDLEYMOTHERFUCKER" Metroid password break NES emulators?
Let's take a look at the code! A few seconds of Googling led me to a high-quality annotated disassembly by Kent Hansen and Nick Mikstas: https://www.metroid-database.com/source-code/
Whenever the user ...
98
votes
Accepted
Fixing obscure 8080 emulator bug?
The General Advice Answer
For a failure that happens so quickly (at most 89 instructions) I'd recommend simply looking at what your emulator does at each instruction and determine if did everything ...
91
votes
Accepted
What makes accurate emulation of old systems a difficult task?
Speaking from my personal experience of writing a PET emulator, a C64 emulator and a Sinclair Spectrum emulator,, here are the issues I had:
Getting the Speed Right
It's no good just making a ...
78
votes
Accepted
Is it possible to make a ROM converter?
Note: This answer mainly focuses on the NES, since that's what I'm most familiar with.
Yes; this is called static recompilation or static binary translation, and it is theoretically possible -- ...
68
votes
Is there still no "digital version of PCBs and ICs" software that all future emulators can use?
Taken most literally, what you are proposing is complete analog simulation of the entire electronic circuit. Analog circuit analysis is not cheap. Generally, every point in the circuit has to be ...
66
votes
Accepted
Did Windows NT 4 emulate x86 on non-Intel platforms?
There was x86 emulation on Windows NT, on MIPS, Alpha, and PowerPC — in fact, more than x86 emulation, PC emulation. The operating system itself ran natively, and applications could be built natively ...
51
votes
Simplest system to create an emulator for
I'm putting CHIP-8 forward.
This system is essentially a virtual machine developed for some reason. There are games written for the CHIP-8. It has a few opcodes, a stack, a couple of timers, and a ...
50
votes
Accepted
Why are different emulators needed to run platforms that use 6502 assembly code?
The 6502 CPU is just one piece of the puzzle
Emulators emulate entire machines, not merely CPUs. Even the likes of QEMU emulate an entire generic computer.
It helps if you think of the Apple II and ...
45
votes
Are there any good, non-abandoned PC emulators?
As others have mentioned, PCem is still perfectly usable, even if it’s no longer maintained by its original author (there is supposed to be a new maintainer, but there’s very little development ...
40
votes
How do arcade ROMs work
The way I understand it, ROMs are like virtual games,
Not really. ROMs are a piece of hardware storing a bit image. Like a disk, a tape or a punch card. It holds an image of the game's software.
...
36
votes
Accepted
How do old computer emulators work?
I wrote my first emulators somewhere in the mid-to-late '90s, my first cycle-accurate emulator circa 2000 and have managed to outdo even that, writing a clock-sign-transition-accurate emulator — ...
35
votes
Accepted
What exactly is a cycle-accurate emulator?
For an emulator to be "cycle accurate" means the interactions between the components are timed accurately enough so that the emulation behaves the same way as the original machine for any given input. ...
35
votes
Is there still no "digital version of PCBs and ICs" software that all future emulators can use?
It is feasible, but not in software, because software is not fast enough.
But indeed,
it would basically let "anyone" build machines by picking out digital versions of components which ...
34
votes
Why does the infamous "ENGAGERIDLEYMOTHERFUCKER" Metroid password break NES emulators?
Fundamentally these 'passwords' aren't really passwords as such, but map back to a string of bits that control the state of the game - so it's more of a string representation of the current state of ...
33
votes
Accepted
Why is a BIOS dump not required to emulate Nintendo 64 games in most modern emulators?
The Nintendo 64 ROM is only 2KB in size and apparently easy to emulate. It seems to only check the validity of the inserted cartridge's ROM and set up a limited environment.
Nintendo 64 cartridges ...
33
votes
What makes accurate emulation of old systems a difficult task?
The best description of this problem that I've seen was written by Byuu, one of the developers of the bsnes emulator. That's about as authoritative as they come, but I'll try to summarize it here.
...
32
votes
Why are different emulators needed to run platforms that use 6502 assembly code?
There are many answers to this and none might satisfy you.
First of all, an emulator doesn't just do a CPU, but a machine. The same way you can't run an NES game on an Apple II. So while one emulator ...
31
votes
Accepted
Install Commodore 64 on VirtualBox
It's not possible. VirtualBox only supports emulating IBM-compatible x86 and x86-64 systems. The Commodore 64 uses a 6510 CPU and a wildly different architecture.
In order to run Commodore 64 ...
31
votes
Accepted
What are the laws concerning emulation in the US?
Note of course that I'm not a lawyer, this is not legal advice etc. The laws that apply here are "intellectual property" laws: copyright, patent law and perhaps trademark law.
Emulators themselves ...
31
votes
Accepted
What MIDI sound font does mGBA use?
It doesn’t.
The sound hardware on the Game Boy Advance is relatively primitive. Inherited from the original Game Boy, there is a pair of square-wave generators, a white noise generator, and a 4-bit ...
30
votes
Status of brute forcing all possible memory states of a video game
An analysis such as you describe has been performed for the Activision game "Dragster" for the Atari 2600. The game polls controller inputs once per frame, and a spreadsheet has been ...
29
votes
Is there a standard interface for connecting debuggers to emulators?
If you're looking for a standard to adhere to, I'd consider implementing the GDB remote protocol. (Link is to Embecosm's guide on writing a GDB Remote Serial Protocol server.)
It needs GDB to support ...
28
votes
Accepted
How does the Gameboy Link Cable work?
You'll need to manipulate the memory address 0xFF02, and shift the data (MSB first) into 0xFF01, as stated below. If there is no cable - ergo, no gameboy connected - then 0xFF is received, in 0xFF01.
...
27
votes
Do instruction exercisers exist for 8086 and 68K (and other) CPUs?
Throwing some things out there that might fit the bill:
6502: AllSuiteA which assembles into a single binary and exits, leaving a failure or success code in memory;
6502 and 65C02: Klaus Dormann's ...
Community wiki
26
votes
Accepted
Is there a seamless, Wine-like AmigaOS emulator for Linux, specifically for text-based programs?
A solution like that already exists: it's called vamos (Virtual AMiga OS) and emulates a 68k CPU and a bunch of libraries - enough to get terminal only programs (like compilers and assemblers) running:...
25
votes
Accepted
Are there runnable Multics systems available?
There are a number of ways to use Multics today.
One option is to run it locally under an emulator. The source code that's available should run (under emulation) on most Linux systems, Mac OS X, and ...
25
votes
Accepted
How to keep running DOS 16 bit applications when Windows 11 drops NTVDM
In absolute terms yes, migrating to a current accounting system would be better. However, that will not be easy.
Migrating away from a Windows NTVDM-based solution won’t be easy either, but there are ...
24
votes
Accepted
Emulate a text-mode DOS program using a Unix terminal
As ecm wrote, DOSEMU supports this, using -t or -dumb. This works with the original DOSEMU and DOSEMU2.
-dumb runs DOS programs in “dumb” terminal mode, where output goes to DOSEMU’s standard output ...
23
votes
NES cartridge ROM emulation with Arduino or Pi?
As cbmeeks said, you're much better off with a FPGA or CPLD. It's going to be nearly impossible to emulate an NES ROM with a microcontroller. A Raspberry Pi would be fast enough, but not with an ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
emulation × 181commodore-64 × 24
ms-dos × 10
nes × 10
zx-spectrum × 9
file-format × 9
software-recommendation × 9
hardware × 8
disk-image × 8
history × 7
programming × 7
z80 × 7
rom × 7
8080 × 7
mac-os-classic × 7
sheepshaver × 7
ibm-pc × 5
amiga × 5
graphics × 5
gaming × 5
game-cartridge × 5
game-boy × 5
apple-ii × 4
apple-macintosh × 4
nintendo × 4