MAGIC FLOOR
This is a freeware sample for the nocash debuggers and A22i assembler.
Magic Floor / Download
For ZX81, ACE, 2K6, SNES, BSX, NSS, SuperDisc, NES, PC10, GBA, NDS, DSi, and e-Reader
Copyright (c) 2002-2016 by Martin Korth

In this game, you are a boulder, and yesterday you've
discovered a hidden underground hall in your magic cellar! At the first glance it appeared
to be just empty, but at closer look it turned out to be having a
very funny bewitched floor...

The floor cells are made of four shades of
brightness. The magic floor gives you one
point when moving from a darker field to a
field of next higher brightness, or when
moving from the brightest to darkest color.
Arrow symbols show up to indicate your
tracks, you may repeat these moves again,
but no further points are given. You can
move freely between fields of same
brightness. Other moves are not possible.

Today you've decided to play with your new floor, and to see
how many points you can get! Cursor-keys are used to move around, hold down the
A-button to jump to a more distant field.

AMT630A Version (Mini TFT "car rearview" monitor)
Magic Floor / AMT630A version
This is a firmware hack for AMT630A based TFT screens, probably the first ever homebrew game for a TFT screen, and very most likely the first ever game specifically for the undocumented AMT630A hardware. The AMT630A video chip contains a 8052 microprocessor with Composite input, OSD hardware, TFT output, ADC button input, PWM, timers, with firmware on an external SPI FLASH chip. The OSD hardware is capable of 16-color graphics (although without hardware support for moving sprites, and memory limits are making it difficult to get a fullscreen picture; the game tiles are drawn as 24x8pix font, which matches best for 24x24pix floor cells). The 3-button controls are using Menu to toggle horizontal/vertical direction, and tapping/holding Minus+Plus for short/long moves, which is working surprisingly well. Alongsides, the binary contains complete new firmware replacement, fixing several issues from the original Engels firmware (painfully bright backlight, annoying gui timeouts, lacking power saving mode, missing C64 compatibility, and, more or less fixed: PAL60 support). Current version is for 3.5 inch 320x240pix 4:3 screens and 4.3/5.0 inch 480x272pix 16:9 screens (to support other hardware, I would still need firmware dumps from other displays). download amt630a version
Magic Floor / AMT630A version
Magic Floor / AMT630A version
Magic Floor / AMT630A version

GBA, Multiboot, NDS, DSi, and e-Reader versions
The GBA version, dating back to 2002, has been the original incarnation of the Magic Floor game, it's working as GBA cartridge, and can be also played via 'xboo' Multiboot upload. It has been intended to make some small sample source code that barely allows to move a sprite... which somehow ended up becoming a fairly unique and not too boring game concept, despite - or because - of the minimalistic game rules (although, until 2016, the GBA version supported only a single fixed map, lacking logic for creating different maps and to compute dead ends & maximum number of moves). Magic Floor / original GBA version

The eReader version can be printed as dotcode, and then scanned with the GBA eReader. This version is tightly squeezed to 2Kbyte size (the limit for a single dotcode; for not exceeding that limit, the instructions are meant to be printed on the card, instead of including them in the binary).
Magic Floor / DSi bootmenu
The DSi version features a fully working DSi cart header, compatible with the DSi bootmenu (working when patching the emulated BIOS to support unencrypted RSA signatures, and it should also work on real hardware when having Nintendo's private key). Also works on NDS.
Magic Floor / dotcode snippet

ZX81 Version
This is just a simple straight ZX81 hires-game, working on any ZX81 with 16Kbyte hires-compatible RAM expansion (older incompatible expansions can be upgraded to hires-support by adding a resistor and two diodes). The four floor colors are drawn via dithering. Text is drawn via the ZX81 BIOS charset converted to bold form. download zx/ace version
Magic Floor / ZX81 version

Jupiter Ace Version
Magic Floor / Jupiter Ace version
The ACE version has some differences to the ZX81 Magic Floor version: The picture is drawn to 1K BG Tile Memory (rather than as 6K Bitmap), the player sprite is drawn/moved by manipulating two BG tiles at the player location. The sound engine is using some PWM to produce noise and a simple volume envelope (it doesn't sound too well though). And it's the first-ever directly autostarting ACE file (not using the older autostarting trick that required to load a separate commandline file into Pad memory). download zx/ace version

Atari 2600 Version
The Atari 2600 video hardware is barely containing enough memory to display a half scanline. For displaying bigger pictures one needs to manipulate the video registers, carefully timed in sync with the cathode ray beam. The game here is using hatched background to simulate four different BG colors, and displays & mirrors the arrow symbols to the desired locations. Looks simple, but it's more or less scratching the limits of the hardware. It's also the first-ever Atari 2600 game with flicker-free 24-column text, soft-scrolling, and, well, rotated by 90 degrees, but anyways: it's more text than ever seen on the console. download atari 2600 version
Magic Floor / Atari 2600 title screen
Magic Floor / Atari 2600 game screen

NES Version
This version is using a larger cell size of 4x4 tiles (to match up with the NES color attribute resolution), and it's the first-ever single-chip NES cartridge (without any video ROM or video RAM) (instead, it's using the console's built-in 2K name table RAM; as 1K name table plus 1K CHR RAM). download nes/pc10 version
Magic Floor / NES version
NES nocash single chip PCB, component side
NES nocash single chip PCB, solder side

Playchoice 10 Version (NES based arcade cabinet)
This is basically same as the NES version, but with some PC10 specific features: It's the first-ever homebrew PC10 game (with working title and instruction screen). And the first-ever PC10 game with less than four memory chips (works without CHR-ROM, like the NES version, and additionally works without decryption key PROM, resulting in only two memory chips: PRG-ROM and INST-ROM). And the first-ever PC10 game that does autostart when money is inserted (and displays demo mode otherwise). And, it's more or less matched to the glitchy (NES-incompatible) PC10 color palette. Works with Single- and Dual-Monitor BIOSes. download nes/pc10 version (wasn't yet tested on real PC10 hardware, but it should be working, hopefully)
Magic Floor / PC10 version, Single Monitor
Magic Floor / PC10 version, Dual Monitor


SNES Version
Nothing too special here. I just wrote it to get familar with the SNES hardware. One slightly special programming trick is that it is producing sounds without actually uploading any program code to the sound processor (instead, it's uploading byte-pairs directly to the sound I/O ports). download snes/bsx/nss/cdrom version

Nintendo Super System Version (SNES based arcade cabinet)
Magic Floor / BSX Satellite Download Center
This is the first-ever homebrew NSS game. Basically same as the SNES version, but with some NSS specific features: Skill Mode (game ends via Game Over flag when solving it), DIP-Switch support (floor size selection), working INST-ROM (with Title and OSD instruction screen). And, it's the first-ever NSS game that works without decryption key PROM (the PROM is completely bypassed by software; it works without PROM, as well as with any PROM with don't care content). It's also the first-ever NSS game with automatic Game/Demo-Mode detection (with dimmed brightness in demo mode, and autostart in game mode). download snes/bsx/nss/cdrom version

Satellaview BSX Version (SNES based satellite receiver with flash carts)
This is mostly same as the normal SNES version. Special features are a BSX specific header (which is different than normal SNES headers), a function for returning control to the BSX BIOS (without completely rebooting the BIOS). With that features, it could be considered being the first-ever homebrew BSX game. It's also the first-ever game that was available as simulated satellite download file in a SNES emulator. download snes/bsx/nss/cdrom version
Magic Floor / BSX Satellite Download Center
Magic Floor / BSX Version

Sony Super Disc SFX-100 CDROM Version (playstation prototype)
Also mostly same as the normal SNES version. Special features consist of the Super Disc volume descriptor, a custom bootsector for loading the actual game, some useless SRAM grafitti, and a reset option for loading a different disc. And, this is the first-ever game being released for the Super Disc console. download snes/bsx/nss/cdrom version
Magic Floor / CDROM Loading Screen
Magic Floor / CDROM Game Menu

Gameboy Version - Libbet the Boulder Girl by tepples
This is the first ever Magic Floor port made by somebody else. After it almost became a running joke that I am porting the game to each and every system - now other people are starting to do it, too!
For the gameboy, tepples has added a couple of details that make the game more beautiful: Animated boulder sprites, slightly altered the story, demo mode, and doors to next room that open up when solving 90% of the current floor. download on nesdev
Magic Floor / gameboy version
Magic Floor / gameboy demo

download gba/multiboot/nds/dsi/e-reader version
download snes/bsx/nss/cdrom version
download nes/pc10 version
download atari 2600 version
download zx/ace version
download amt630a version
download gameboy version on nesdev
All game versions are also working in no$xxx emulators, all versions (except ace/pc10) are tested on real hardware.
donate
home