This Romhack brings classic Game Boy Tetris to the Mega Duck console (a clone with various changes to make it incompatible with the GB).
It's a modified version of the dissasembly by vinheim3.
Most of the work for this port was in adapting the Tetris music and sfx driver to accommodate the shuffled APU register addresses and bit values. Changes for constants can be found in the hardware.inc
.
Available on itch io at https://bbbbbr.itch.io/mega-duck-patch-for-tetris-game-boy or at RHDN.
As with unmodified Tetris this is meant to run on a bare 32K cart with no save RAM and no MBC. For now Inside Gadgets and A2 Heaven are probably the only compatible flash cartridges. If needed there are 3D printable cart shells.
If the patched ROM is played in an emulator then most likely the music and sfx will sound incorrect to some degree. At this time all Mega Duck emulators I'm aware of do not handle NR32 correctly, some may lack other required changes.
- Install RGBDS v0.6.1
- set the environment var
RGBDS_PATH
(ex:export RGBDS_PATH= ~/rgbds/0.6.1/
) - optionally set:
UPS_PATCHTOOL_PATH
(ex:export UPS_PATCHTOOL_PATH= ~/ups_patch_tool/linux_ups_x64/ups
) - Run
make megaduck; make createpatchduck
within thedisasm
directory - The result will be
tetris.duck
in thedisasm/build_duck
directorytetris_megaduck_patch.ups
in thepatch
directory
Original Readme from: dissasembly by vinheim3.
- Place
tetris.gb
in thetools/
directory, andweb/
directory - Former is used for scripts, and
tools/cmp.sh
, and the latter for web visualisations
- Install RGBDS v0.6.1
- Run
make
within thedisasm
directory - Run
tools/cmp.sh
to compare built ROM against original ROM
- Start a web server within the
web/
directory, egpython3 -m http.server
- Navigate to the root page to see a list of game screens and sprites
disasm
code
- dissected and commented asm that runs the gamedata
- large blocks of data, layouts are in.bin
filesgfx
- pngs of 1bpp and 2bpp datainclude
- constants, hardware definitions, ram, macros and structsincludes.s
- imported definitions, excluding those that need building, eg ram
tools
- misc tools to help with disassemblyweb
- the html+js in 1 file to visualisedocs
- reference images, and flow .drawio
The project serves to describe everything that makes the game function as it does. Some things are not completely clear from the outset. If you need a full guide on a particular concept, eg sound engine, or some part of the disassembly needs further clarification, please feel free to raise an issue