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 createpatchduckwithin thedisasmdirectory - The result will be
tetris.duckin thedisasm/build_duckdirectorytetris_megaduck_patch.upsin thepatchdirectory
Original Readme from: dissasembly by vinheim3.
- Place
tetris.gbin 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
makewithin thedisasmdirectory - Run
tools/cmp.shto 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
disasmcode- dissected and commented asm that runs the gamedata- large blocks of data, layouts are in.binfilesgfx- 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