22

In the mid-90s, there was an ISA expansion card called “Datel Action Replay” that could be inserted into almost any PC-compatible machine (e.g. 80286). By pressing a button on a device (plugged into the port at the back) user would enter a menu and use cheat codes (usually shared in magazines) or search for new ones.

enter image description here

I understand that it's necessary to use hardware in some cases (e.g. action replay for an 8-bit console such as the NES) but for the PC it's less obvious. AFAIK, using a TSR that would check for a specific hotkey could also work. Screen grabbers worked that way.

Is it a kind of copy protection (e.g., the software can't run without the corresponding card) or does it provide additional functionality that wouldn't be possible without it (e.g., extra RAM)?

3 Answers 3

24

Disclaimer: I always managed with Turbo Debug on games, which relied exclusively on software, and only used the amiga version of Action Replay.

That said, the hardware Action Replay on PC gives it some edge over pure software solutions

  • the monitor program is in ROM on the card so it doesn't waste precious memory. It also has RAM of its own.
  • freezer/unfreezer features require extra memory to save the PC memory
  • slow motion & more generally interrupt generation is probably much easier from a dedicated card
  • some programs could detect a software TSR program and apply defensive code on it. It's more difficult with a hardware monitor (even if not impossible).

I remember that a few games could not load Turbo Debug and the game itself because of low memory. That would make hacking of the game very difficult. This limitation doesn't exist with a card with its own ROM and RAM.

This card was less interesting on PC than on Amiga (even if the amiga had software monitors) because on the Amiga it has the ability to snoop write-only register values (needed for freeze & picture capture feature) and generate NMI interrupts (to enter the monitor when interrupts are off, which happen a lot on amiga, not so much on PC). I don't remember having any issues interrupting a game with Turbo Debug, as games generally used the OS, and PC architecture doesn't have all those write-only registers.

12

Jean-François Fabre’s answer mentions a number of advantages of a hardware solution over software, but I think it’s worth expanding on the main reason (IMO): hardware can reliably generate an interrupt which will get the attention of software running on the system.

As you mention, screenshot TSRs would grab a hot key and rely on that; but it’s not unheard of for games, especially early ones, to grab all keyboard input for themselves. This can happen even without anti-debugger considerations; a game developer might want to do this to reduce input latency, avoid problems with the BIOS keyboard buffer, or to avoid TSRs such as Sidekick trying to pop up over the game. Intercepting keyboard input would obviously prevent a hot key-based solution from working; the Action Replay card relied instead on a hardware interrupt, which games wouldn’t have any reason to intercept except as an active effort to disable Action Replay.

Even with a hardware-based solution, Action Replay needed software (shipped in ROM and as drivers); for it to work, it had to be able to interrupt the normal flow of execution. It would be possible to develop a fully hardware-based device, in a similar vein to in-circuit emulators, but that would have been more expensive — the device would need its own CPU on the card.

As Jean-François says, Action Replay worked fine using a regular IRQ on the PC; if it hadn’t, the card could have used a non-maskable interrupt (as was the case on the Amiga).

A later version of Action Replay was published for Windows PCs, without an ISA card.

11
  • 4
    "grab all keyboard input for themselves" you probably refer to games that setup a keyboard interrupt handler but don't bother to call the previous one that was setup before.
    – tigrou
    Commented May 30 at 8:12
  • 1
    Yes, that’s exactly it. Commented May 30 at 8:14
  • If it requires a hardware interrupt, which are a scarce resource on an 8-bit ISA bus anyway, why bother with an ISA card only for getting an interrupt. You can get a hardware interrupt with a push button on LPT interface or second mouse on second COM interface if you have them free. Only NMI would require a custom interface card. For 386 CPUs, the VM86 mode could have been used for virtualization so the game could not prevent interrupts, assuming it did run under VM86 mode anyway.
    – Justme
    Commented May 30 at 11:36
  • 1
    Fair point @Justme, but note that I said that “hardware can reliably generate an interrupt”, not that that required a card. Using hardware rather than software allows hardware interrupts to be used; having a card specifically (rather than a dongle, as used later on) enables other features, like the option ROM and the onboard memory. Commented May 30 at 11:42
  • @StephenKitt I can't help thinking that a game that wants to disable hardware interrupts or redefine the vectors for hardware interrupts can do it and thus any hardware interrupt that the game does not want to happen won't happen. Including the NMI which is maskable on PCs.
    – Justme
    Commented May 30 at 14:17
4

I understand that it's necessary to use hardware in some cases (e.g. action replay for an 8-bit console such as the NES) but for the PC it's less obvious.

It's needed for the very same reason as it was for 8-bit home computers - after all, the original was developed (or better licenced IIRC) for the C64. Consoles only came later.

AFAIK, using a TSR that would check for a specific hotkey could also work. Screen grabbers worked that way.

If they work.

The PC is an open system. A game can hook any and all vectors, and thus disable a previous loaded TSR. Only hardware can really enable stopping and manipulating of any game due the ability to bypass all handlers installed by the game.

Is it a kind of copy protection (e.g., the software can't run without the corresponding card) or does it provide additional functionality that wouldn't be possible without it (e.g., extra RAM)?

It does, as the wiki entry mentions, offer screen grabber, trainer, and slowdown features.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .