Skip to main content
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 ...
NobodyNada's user avatar
  • 5,474
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 ...
George Phillips's user avatar
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 ...
JeremyP's user avatar
  • 11.8k
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 -- ...
NobodyNada's user avatar
  • 5,474
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 ...
RETRAC's user avatar
  • 13.9k
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 ...
Stephen Kitt's user avatar
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 ...
Omar and Lorraine's user avatar
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 ...
520's user avatar
  • 596
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 ...
Stephen Kitt's user avatar
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. ...
Raffzahn's user avatar
  • 231k
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 — ...
Tommy's user avatar
  • 37.9k
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. ...
George Phillips's user avatar
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 ...
dirkt's user avatar
  • 29k
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 ...
Doc's user avatar
  • 441
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 ...
Stephen Kitt's user avatar
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. ...
bta's user avatar
  • 939
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 ...
Raffzahn's user avatar
  • 231k
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 ...
Mark's user avatar
  • 8,696
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 ...
Stephen Kitt's user avatar
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 ...
user3840170's user avatar
  • 23.3k
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 ...
supercat's user avatar
  • 38k
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 ...
ssokolow's user avatar
  • 7,133
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. ...
Greenonline's user avatar
  • 4,470
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 ...
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:...
Venner's user avatar
  • 1,694
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 ...
Alex Hajnal's user avatar
  • 9,420
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 ...
Stephen Kitt's user avatar
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 ...
Stephen Kitt's user avatar
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 ...
NobodyNada's user avatar
  • 5,474

Only top scored, non community-wiki answers of a minimum length are eligible