Skip to content
On This Day:

Game Boy · Complete

Tetris - Patched for the Mega Duck Console

By bbbbbr

Tetris · All hacks & resources →

About this project

Tetris for the Mega Duck
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: https://github.com/vinheim3/tetris-gb-disasm.

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.

The patch is in UPS format.

Playing on console hardware:
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 has the only compatible flash cartridge, it can be used with OEM shells or 3D printable cart shells: https://github.com/bbbbbr/megaduck_cartridge_shell.

Playing on console emulators:
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.

Original game requirements

Database match: Tetris (World) (Rev 1)
Database: No-Intro: Game Boy/Color (v. 20210227-015730)
File/ROM SHA-1: 74591CC9501AF93873F9A5D3EB12DA12C0723BBC
File/ROM CRC32: 46DF91AD

Creator credits

bbbbbr
Hacking
ASM Patching for Mega Duck

RELEASE 1.0

Readme & instructions

README.md

Tetris for the Mega Duck 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](https://github.com/vinheim3/tetris-gb-disasm). ![Tetris on the Mega Duck screenshot](info/megaduck_tetris_patched_001.jpg) ![Tetris on the Mega Duck screenshot](info/megaduck_tetris_patched_002.jpg) 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`.

Read moreRead less
# Tetris for the Mega Duck
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](https://github.com/vinheim3/tetris-gb-disasm).

![Tetris on the Mega Duck screenshot](info/megaduck_tetris_patched_001.jpg)
![Tetris on the Mega Duck screenshot](info/megaduck_tetris_patched_002.jpg)

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`.

### Playing on console hardware:
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](https://shop.insidegadgets.com/product/megaduck-32kb-flash-cart) has the only compatible flash cartridge, it can be used with OEM shells or [3D printable cart shells](https://github.com/bbbbbr/megaduck_cartridge_shell).

### Playing on console emulators:
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.

### Building
* Install RGBDS v0.6.1
* Run `make megaduck; make createpatchduck` within the `disasm` directory
* The result will be
  * `tetris.duck` in the `disasm/build_duck` directory
  * `tetris_megaduck_patch.ups` in the `patch` directory

--------------------------------

# Original Readme from: [dissasembly by vinheim3](https://github.com/vinheim3/tetris-gb-disasm).

--------------------------------

# Common
* Place `tetris.gb` in the `tools/` directory, and `web/` directory
* Former is used for scripts, and `tools/cmp.sh`, and the latter for web visualisations

# Building
* Install RGBDS v0.6.1
* Run `make` within the `disasm` directory
* Run `tools/cmp.sh` to compare built ROM against original ROM

# Web
* Start a web server within the `web/` directory, eg `python3 -m http.server`
* Navigate to the root page to see a list of game screens and sprites

# Project Structure
* `disasm`
  * `code` - dissected and commented asm that runs the game
  * `data` - large blocks of data, layouts are in `.bin` files
  * `gfx` - pngs of 1bpp and 2bpp data
  * `include` - constants, hardware definitions, ram, macros and structs
  * `includes.s` - imported definitions, excluding those that need building, eg ram
* `tools` - misc tools to help with disassembly
* `web` - the html+js in 1 file to visualise
  * `docs` - reference images, and flow .drawio

# Note on improvements
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

Download README.md ↓

FROM THE COMMUNITY

Player reviews

0 reviews
No ratings yet

Played this project? Tell other players how it holds up.

Your take on Tetris - Patched for the Mega Duck Console

Spam has been overwhelming. To help us approve your review, sign up and introduce yourself in the Introductions forum so we know you’re not a bot.

Sign in with your Retro Replay account to rate this project and share your experience.

Sign in to review