A Mini Retro Puzzle for DOS, PSP, 3DS, GBA and PSX
Global leaderboards: loonies.thp.io
A simple puzzle game. Initially it fit into just 8 KiB, then grew to 16 KiB and then 23 KiB, then 25 KiB. Now it's a 40 KiB executable for DOS (with an extra 52 KiB datafile), the 3DS version is 468 KiB (previously 242 KiB), the PSP version is 904 KiB (previously 640 KiB) and the new GBA port is 156 KiB for the multiboot (EWRAM, bootable from a GC link cable) version and 316 KiB for the cartridge version (with enhanced backgrounds). The PSX version is ~ 240 KiB for the EXE and ~ 16 MiB for the BIN (includes CDDA).
How to play: There are 2x2-blocks falling down the top, with two different colors. Use LEFT/RIGHT/DOWN to move the block and use UP to rotate it. Use SPACE to drop the block (it will fall fast until it lands).
- DOS: Start LOON8R62.EXE in the same folder that contains LOONIES8.DAT
- 3DS: Copy the file to "3ds/Loonies8192/Loonies8192.3dsx" on the SD card, creating folders as necessary (optionally also copy Loonies8192.smdh)
- PSP: Copy "EBOOT.PBP" and "PARAM.SFO" to PSP/GAME/Loonies8192 on your memory stick, creating folders as necessary (both files are needed)
- GBA: Load the multiboot ROM using gba-link-cable-rom-sender from a Wii or GameCube, or load the cartridge ROM with a flash cartridge
- PSX: Burn the CUE/BIN to a CD-R and use it in a modchipped PSX or PS2 or play the image directly in your favorite PSX emulator
For the 3DS, you need to be running the Homebrew Launcher, for the PSP you need to install Custom Firmware (CFW). For DOS, you just need a Retro PC or DOSBox, PCem or similar emulators that emulate a DOS VGA machine. For the GBA, you need a hacked Wii/GameCube, a Gamecube-to-GBA link cable and gba-link-cable-rom-sender or (easier) just a GBA flash cartridge. For the PSX, you need a modchip or perform the disc swap trick.
- DOS: LOON8R62.ZIP (ZIP, 78 KiB, with README)
- Web: archive.org/details/loon8r50 (older version; DOSBox)
- PSP, 3DS, GBA, PSX and the Sound Pack: see thp.itch.io
There's in-game help now on how to play the game. You can configure the language, soundtrack and difficulty level in the options menu. For DOS, the options menu also allows to choose between PC Speaker, OPL-2, MIDI and CDDA. For the GBA, DMG (GameBoy) sounds are used by default (this is currently the only sound option), for the PSP and 3DS, you can use PC Speaker (beep!) or MIDI (new software-based simple synthesizer) or CD-Audio (if the sound pack is installed). OPL-2 is not emulated/functional on PSP and 3DS for now.
Yes, it's called Loonies 8192 because the first public release of the game (r14) was only 8 KiB (8192 bytes), and that name stuck. Since then, the binary size grew, but only slightly and with added features. In order to visualize the different sizes, I made this handy diagram:
Note that the 3DS and PSP port were only introduced in r50 (January 2019), and the GBA port was introduced in r61 (March 2020). In case of r61, the game now ships with new pre-rendered background art that depends on the screen size (previous versions' backgrounds were generated at startup).
Also, the (16-bit) DOS version is compiled with Borland C++ 3.1 (from 1992) whereas the other versions are compiled with more recent versions of GCC for 32-bit CPUs and with more standard library code embedded.
DOS PSP 3DS GBA PSX --- --- --- --- --- Move ARROWS D-PAD D-PAD D-PAD D-PAD Drop SPACE X (CROSS) A A X (CROSS) Exit ESCAPE START START START START
By default, Loonies 8192 has synthesized sound built in, but it's possible to also use CD-quality audio files. Download the "Loonies 8192 Sound Pack", and put the WAV files on an Audio CD (for DOS) or in the game folders for PSP and 3DS to upgrade your sound experience to fully sampled 16-bit audio! The PSX CUE/BIN already contains CDDA audio (same as the Sound Pack).
In addition to the default English language, Loonies 8192 is now localized into German and French (thanks, Angie!) -- configurable in the options.
There are now local leaderboards (best 3 highscores) as well as global leaderboards (using QR codes). When you achieve a local high score, you can submit the score online by scanning the QR code with your mobile phone and a QR code reader app (some phones have it built into the camera app).
Here are some pictures from Vogons forum users that ran the game on their hardware, thanks to: Eleanor1967, amadeus777999 and Jo22. Also to the following people for testing: root42, K1n9_Duk3, Kamerat and blurks.
The GBA SP photo was done by Jonas (from the insideGadgets Discord), using the Multiboot ROM uploaded via a custom serial multiboot cable.
The last one is a Roland MT-32 attached via SBMIDI, as the latest version of Loonies 8192 has support for General MIDI via both MPU-401 (UART mode) and SBMIDI interfaces.
Of course, the point of this exercise is experiencing it on real hardware, but failing that, you can listen to two different renditions of the songs in this game here, one with OPL-2 music being played back by a Yamaha OPL-3 chip on a Sound Blaster 16 and the other with General MIDI music being played back by a Roland SCB-7 WaveBlaster daughterboard on the same SB16.
Live Coding Stream
root42 did a YouTube stream recently (May 2020) where we went through the code and looked at the DOS-specific implementation of Loonies: Live Let's Code: Virus Lockdown Coding #2!
You can watch a recording of the stream here:
Source Code Snapshot: r50
The source code for Loonies 8192 r50 (only DOS and SDL ports) is available under the terms of the GNU General Public License, version 2 from here:
- loonies-r50-src.zip (104 KiB)
- Reddit: dosgaming, vitahacks, 3dshacks, psxdev
- psxdev.net: Work Log, Homebrew
- r17: 12 MHz 80286 with Tseng ET4000. DOS 5.0 and AdLib card (OPL2)
- r19: 12 MHz 80286 with Tseng ET4000. DOS 5.0 and AdLib card (OPL2)
- r14 on a Schneider Tower AT; Specs: 286-10, OAK VGA, CT1350B, EMU386
- r15: Loonies for 8086
- r26 on a 286-10, OAK VGA, CT1350B, EMU386
- r27 with SB-MIDI/MT-32 (no channel mapping)
- r28 with SB-MIDI/CM-64 with General MIDI setting
- r27 with SB-MIDI/Casio CT-460 (just a test)
- r32 on a 80286@12MHz, AdLib OPL2
- r32 - Different modes on 286-10
- r33 on a Pentium 133 with MPU-401/DreamBlaster S1 (GM)
- r41 on a 16 MHz 286 PC
- r42 on a 286@12MHz with OPL2
- r44 review by Montie Mongoose
- r50 Source Code Tour -- Live Let's Code
- Loonies 8192 Soundtrack on SoundCloud