SHALE

A Magnavox Odyssey 2 and Philips Videopac emulator, written from scratch around an Intel 8048 and an 8244/8245 display chip ported from MAME. The video chip is driven a scanline at a time and honours the beam, so the games that turn their objects off mid-frame to rewrite them, and the grid the console draws its playfields with, come out the way the hardware makes them rather than the way a whole-frame renderer would guess.

It needs no console ROM. The BIOS is emulated at the high level instead: a decompilation of the routines the games call, proven equivalent to the original before it was adopted. The copyrighted 1K system ROM and its 512-byte character generator are therefore never required and never shipped. Cartridges load as .bin or .rom, including the exec-ROM titles that answer a second ROM on the external bus.

Both consoles are covered: the NTSC Odyssey 2 and the PAL Videopac differ in their dot clock and their raster, and the region is taken from the cartridge or forced by hand. Sound is synthesised band-limited from the shift register that produces it. The console keyboard is mapped in full, and either controller can drive both ports for the many titles that only read one.

Available on Windows, Linux, macOS, Android, iOS, and WebAssembly. Shale is plain, portable C11 with no exotic dependencies, so a port to video game consoles is well within reach. Contact us if that is of interest.

Retro City Skyline

Shale in Action

Commercial games running unmodified on Shale, shown to demonstrate compatibility.

K.C. Munchkin! running on Shale
K.C. Munchkin! © 1981 Philips / Magnavox
Killer Bees! running on Shale
Killer Bees! © 1983 Philips / Magnavox
Quest for the Rings running on Shale
Quest for the Rings © 1981 Philips / Magnavox
Turtles running on Shale
Turtles © 1982 Philips / Magnavox

Shale Options

Third-Party Software