city41 / rotary-bobble

Puzzle Bobble with rotary controls
https://rotary-bobble.mattgreer.dev/
GNU General Public License v3.0
2 stars 0 forks source link
neo-geo neogeo rom-hack romhack

Rotary Bobble

A ROM hack, and matching controller, to add rotary controls to the Neo Geo game Puzzle Bobble

https://github.com/city41/rotary-bobble/assets/141159/24a6326e-b90c-4391-a242-a1e90e2c0111

Status

ROM Hack

The ROM hack is complete. It...

The complete patch is at src/patches/rotary-bobble.json

Controller

I have built a rough, but working, prototype using an Arduino Nano.

controller prototype

It uses transistors to control RLDU, B, C and D. It has normal push buttons for A, Select, Start.

I also had a prototype using a Raspberry Pi Pico, but always had a little bit of noise in the Pico's analog readings, causing a bit of jitter during gameplay. The Nano has no jitter and provides perfect controls.

For more info, check the src/pico and src/arduino folders.

IPS Patches

IPS patches are available in releases

  1. unzip pbobblen.zip
  2. patch d96-02.c5 with pbobblen.d96-02.c5.ips using an IPS patcher
  3. patch d96-03.c6 with pbobblen.d96-03.c6.ips using an IPS patcher
  4. patch d96-07.ep1 with pbobblen.d96-07.ep1.ips using an IPS patcher
  5. Make sure the three patched files keep the original name of the file they patched (overwrite it)
  6. zip the files back up into pbobblen.zip

NOTE: MAME will notice the ROM is different and not launch it from the UI. You must launch it from the command line if using MAME

Still To Do

How to hack on this

clownassembler

The 68k assember, clownassembler, was copied into clownassembler/ from https://github.com/Clownacy/clownassembler, it needs to be built with cd clownassembler && make. This is needed for creating patches.

To patch

only tested on x64 Ubuntu 22. You will need a recent version of Node, I am using 18.18.2

Set the env variable MAME_ROM_DIR to where you store your roms for MAME.

rotary-bobble.json is the main patch, and applies all changes. The patches in patches/individual can be applied instead to just do parts. They should be self explanatory from the file name and the description at the top of each patch.

Once patched, it will run in MAME if you start it on the command line. You can also run yarn to-neosd to create a .neo file. This requires neosdconv. I would prefer to use TerraOnion's NeoBuilder, but I've not gotten it to work properly.