LoopyDOOM is an unfinished port of the real DOOM engine to the 1995 Casio Loopy console, running at 8-15 FPS on hardware and requiring a separate flash cartridge.

Stars

37

7-day growth

No data

Forks

3

Open issues

0

License

GPL-2.0

Last updated

2026-07-10

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It is one of the few modern ports of a major game to this obscure Japanese console, using the actual engine (via PrBoom and GBADoom) with a custom hardware backend, and even supports the Loopy's built-in thermal printer.

Who it is for

  • Retro gaming enthusiasts and collectors
  • Homebrew developers interested in exotic hardware ports
  • DOOM port aficionados looking for unique target platforms
  • Hardware hackers and reverse engineers working with SH-1 systems

Use cases

  • Playing DOOM's first six shareware maps on a real Casio Loopy
  • Testing and experimenting with the Loopy's VDP, sound chip, and printer via a game engine
  • Learning how to port a complex C codebase to a constrained big-endian SH-1 system
  • Demonstrating the Loopy's capabilities at retro computing events

Strengths

  • Uses the genuine DOOM engine (id Software's source via PrBoom and GBADoom) rather than a reimplementation
  • Supports music (via uPD937 MIDI synth) and PCM sound effects (with additional hardware), plus a built-in screenshot printer
  • Includes build options for serial logging, dev warps, and disabling music/SFX to fit ROM constraints
  • Comes with a full build system and RP2040 firmware for optional SFX output

Considerations

  • Very low performance: roughly 8–15 FPS on real hardware, closer to a tech demo than a playable game
  • Requires a specific SH-1 big-endian GCC toolchain and the Floopy Drive flash cartridge to run on hardware
  • Sound effects need extra external hardware (RP2040, DAC, wiring) and the associated firmware; without it the game is only music

README quick start

LoopyDOOM

A sloppy unfinished port of DOOM to the Casio Loopy — a 1995 Japanese console built around a Hitachi SH-1 at 16 MHz, big-endian, with about 512 KB of RAM and a built-in thermal sticker printer. Requires the Floopy Drive flashcart if you want to run this on actual hardware.

This is the real engine, not a reimplementation: id's DOOM by way of PrBoom and GBADoom, with a new hardware backend for the Loopy's VDP, timers, gamepad, and sound chip.

Disclaimer: This is very unpolished. Really more of a tech demo than a finished product

Featured in https://www.youtube.com/watch?v=nDe06uY5C40

Status

MapsE1M1 – E1M6 (as much as I could fit in 4MB of ROM)
Video8bpp VDP bitmap layer, double-buffered
MusicuPD937 synth over SCI1 MIDI, all six maps
Sound effectsPCM, played by the cartridge's RP2040 — needs the companion firmware and a DAC
Screenshot printingOptions menu → prints the current frame on the console's thermal printer (if it doesn't jam, of course!!)
Performanceroughly 8-15 fps on hardware; runs way faster in LoopyMSE

Lineage

id Software's DOOMPrBoomGBADoom (doomhack) → LoopyDOOM.

The portable engine and much of the tree come from GBADoom. The Loopy hardware backend lives under platform/, the boot and link glue under boot/ and casloopy.ld, and the build-time WAD, music, and SFX bakers under tools/. HUD and menu graphics use Kippykip's GBADoom-custom lumps.

Requirements

  • An SH-1 big-endian sh-elf GCC toolchain (--target=sh-elf --with-cpu=m1 --with-endian=big). A Dreamcast SH-4 toolchain will not work: it is little-endian and rejects -m1. The SH-1 has no divide instruction, so GCC emits __sdivsi3 / __mulsi3 calls that must resolve from an -m1 -mb libgcc.
  • doom1.wad — the DOOM shareware IWAD.
  • gbadoom.wad — Kippykip's GBADoom lumps, for STGANUM09 (narrow HUD digits; the wide STTNUM font overruns the small status bar) and for M_ARUN / M_GAMMA (options-menu items GBADoom added). Without the latter two, the OPTIONS menu crashes in W_GetNumForName.
  • Python 3, for the bakers.

Neither WAD is distributed here. See NOTICE.

Build

LOOPY_TOOLCHAIN

Description

An unofficial DOOM port for the Casio Loopy based on GBADoom

Related repositories

Similar projects matched by category, topics, and programming language.

alecjacobson
Featured
alecjacobson GitHub avatar

alpha-wrap

A CGAL-free, MIT-licensed reimplementation of the Alpha Wrapping algorithm that takes a defective triangle soup and produces a watertight, manifold, outward-oriented mesh with controllable level of detail and tightness.

C++
5
hypervising
Featured
hypervising GitHub avatar

gta-enhanced-audio-queue-poc

A proof-of-concept tool that patches a synchronous three-slot audio queue in GTA V Enhanced, boosting frame rates from ~260 to ~499 FPS by removing coarse wait delays.

Design & Creative
3
ammaarreshi
ammaarreshi GitHub avatar

Generals-Mac-iOS-iPad

This repository ports Command & Conquer Generals: Zero Hour to run natively on Apple Silicon Macs, iPhones, and iPads without emulation, adding touch controls and modern rendering.

C++
1,523