Galaxian is now in the games archive. It's a native C11/SDL2 port of the 1979 Namco arcade game for Linux handhelds through PortMaster, Linux desktops, the Steam Deck, Windows and macOS. Release 0.2.2 is on GitHub.
// THE GAME
Kazunori Sawano designed Galaxian for Namco in 1979, and Midway brought it to North America. A swarm of aliens sways across the top of the screen while small groups peel off to dive at your Galaxip and shoot. The yellow Flagships come down with red escorts, and taking out the escorts before the Flagship is worth the most. It was one of the first arcade games in full RGB colour, with sprites and a starfield scrolling behind them. Its sequel, Galaga, followed in 1981.
// THE PORT
Galaxian came first, and the Galaga port was built on it. There's an emulated Galaxian board, with a Z80, the memory map, video (tiles with per-column scroll, sprites, shells, the starfield and the cocktail flip) and the watchdog. It's checked against MAME cycle for cycle and pixel for pixel, and runs with --emulate. By default, though, the game runs in C. The ROM program is rewritten routine by routine against the same addresses: the swarm's sway, the dives and attack waves, the hit tests, scoring, the sound sequencer and the demo's pilot. Run alone, the C game equals the board frame for frame through scripted games. The sound is a model of the board's discrete circuit, measured from MAME's output.
GFX ........ 8 presets, from classic pixels to HD glow with CRT scanlines (F3/F4/F5)
PADS ....... every connected pad drives the one control panel, as on the upright
OPERATOR ... F2 opens the DIP switches over a paused game: coinage, bonus ship, lives, cabinet
SAVES ...... settings in galaxian.cfg, the high score in galaxian.hiscore
PACKAGES ... Linux x86_64/aarch64, PortMaster, Windows, macOS
The main loop sleeps until the next frame is due, so it uses little CPU on handhelds and doesn't draw extra frames on 120/144 Hz displays.
// YOUR ROM SET
No ROM data is included. You need your own MAME galaxian set (galaxian.zip). The game finds it next to the program or through --rom. Files are matched by CRC. On the first run, the graphics, palette and tables it needs are extracted to assets/.
git clone https://github.com/monkeyx-net/galaxian.git
cd galaxian
cmake -S . -B build && cmake --build build -j
build/galaxian --windowed --rom /path/to/galaxian.zipSee the Galaxian game page for the full controls, or get the source on GitHub.