Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bbbbbr/megaduck-tetris-patch
A ROM patch for Game Boy Tetris so it can run on the MegaDuck
https://github.com/bbbbbr/megaduck-tetris-patch
megaduck tetris
Last synced: about 2 months ago
JSON representation
A ROM patch for Game Boy Tetris so it can run on the MegaDuck
- Host: GitHub
- URL: https://github.com/bbbbbr/megaduck-tetris-patch
- Owner: bbbbbr
- License: other
- Created: 2023-05-05T08:33:59.000Z (over 1 year ago)
- Default Branch: megaduck
- Last Pushed: 2024-09-12T19:17:24.000Z (4 months ago)
- Last Synced: 2024-09-13T08:59:20.491Z (4 months ago)
- Topics: megaduck, tetris
- Language: Assembly
- Homepage:
- Size: 1.44 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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`.
### Download
Available on itch io at https://bbbbbr.itch.io/mega-duck-patch-for-tetris-game-boy or at [RHDN](https://www.romhacking.net/hacks/7771/).### 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) and [A2 Heaven](http://www.a2heaven.com/webshop/index.php?rt=product/product&product_id=172) are probably the only compatible flash cartridges. If needed there are [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
* 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`)
* tool: https://github.com/rameshvarun/ups
* 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