A Day at the Races

I’m not talking about the album by Queen or the film by the Marx Brothers, but about VIP Animal Race. It is a fun game for CHIP-8, programmed by Brian Hastle. Five different animals race against one another and you have to bet on the winning one. I don’t usually like to gamble, but today I made an exception 🙂

CHIP-OTTO running VIP Animal Race
CHIP-OTTO running VIP Animal Race (ZX Spectrum Next)

When, at the beginning of the 90’s, the CHIP-48 and SUPER-CHIP interpreters were coded for the HP 48SX graphing calculator, some incompatibilities (often referred to as quirks) with the original CHIP-8 interpreter were introduced. So, some games could not run on many modern interpreters, whose implementation is based on the SCHIP documentation. VIP Animal Race is one of these. There are some discussion pointing out the details (see this Kiwi8 issue).

Today, I finally overcame this problem in CHIP-OTTO, my CHIP-8/SCHIP interpreter for the ZX Spectrum Next, by adding a new bitmask configuration called Legacy compatibility flags. By setting some of the flags in the game configuration file, the way the interpreter executes some opcodes can be changed; in particular:

  • Bit 0: Shift operations (opcodes 8xy6, 8xyE):
    • 0: Vx is shifted
    • 1: Vy is shifted and the result is stored in Vx
  • Bit 1: load/store operations (opcodes Fx55, Fx65):
    • 0: I is incremented (I = I + x + 1)
    • 1: I is not incremented
  • Bit 2: memory overflow in opcode Fx1E
    • 0: if I > 0xFFF VF is set to 1; otherwise to 0
    • 1: VF is not altered

So, today I was finally able to run VIP Animal Race in CHIP-OTTO, as you can see in this video. There seem to be still some glitch, but the game is fully playable.

You can get your free updated CHIP-OTTO copy which includes the configuration for VIP Animal Race from the project page on itch.io: retrobits.itch.io/chip-otto.

Play responsibly!

Leggi in Italiano

Leave a comment

Your email address will not be published. Required fields are marked *