Go Go Ackman Recompiled

Go Go Ackman Recompiled is a Windows and Linux port of the Super Nintendo Entertainment System game Go Go Ackman with widescreen support, rumble, and shader support.

README

Go Go Ackman Recompiled

A desktop port of the Snes game Go Go Ackman built with SNESRecomp, SDL3, and Dear ImGui. Available for Windows and Linux, including Flatpak packaging.

The original game ROM is supplied separately by the user. No ROM image is embedded in the executable.

Features

  • In-game menu - press Esc
  • Widescreen support - User can switch between widescreen and 4:3 in real time by pressing "u" or by enabling/disabling the option on the menu
  • Switch between 4:3 and 8:7 aspect ratio (both have widescreen support)
  • Vibration/rumble support
  • Shader support when "output method" is set to OpenGL (only .glsl and .glslp shaders are supported) - shader files go in the "shaders" folder
  • Turbo function - press Tab
  • Rewind function - press "r"
  • Support for the English translation by Ackman Translations and the Brazilian Portuguese translation by E2P Traduções
  • Mod support - mods use the native format for the snesrecomp framework (.snesmod) and go in the "mods" folder
  • MSU support (untested, should work)
  • Savestates up to 10 slots and autosave support, also support for saving and loading the savestate file under a custom name
  • Run-ahead support

Getting started

Launch AckmanRecomp.exe on Windows or AckmanRecomp-1.0-x86_64.flatpak on Linux. If the configured ROM cannot be found, the native file picker opens before the emulation core starts. Place your ROM in rom/ for convenient selection.

The supported unheadered Japanese ROM is 1,310,720 bytes, with SHA-256:

e8a33b6c8e15cf0aa60e9694471a51926fb97ad895d4714384c6abff28a33a1f

An optional 512-byte copier header is normalized during verification. A different revision requires separate analysis and validation.

Press Esc to open or close the menu. Q/E or LB/RB switch tabs; arrows/D-pad and Enter/gamepad A navigate and confirm. Fixed safety shortcuts also include Tab for turbo, R for rewind, and F12 for screenshots. Additional shortcuts are configurable in Hotkeys.

The overlay contains File, Game, Graphics, Audio, Controls, Hotkeys, Mods, and Shaders. Opening it pauses emulation. Driver, shader, and active-mod changes are applied together when it closes, through a cold boot that restores the emergency checkpoint. Changing only the selected shader while shaders remain disabled does not trigger a restart.

Compatible translations

In the software's menu, when clicking the "Open .ips file" button in the [Mods] tab, an embedded script will try to convert the selected .ips file into a .snesmod file (the native format the framework used in this project recognizes), but since it's an automated script, It's success is not guaranteed. However, I already tested it with some translations, and since they successfully converted, I embedded the code for the conversion for those specific files in the program's code. The translated confirmed working are the English translation made listed below

Use Mods → Load .ips file to convert a supported patch into a native package, then transfer it to Active. Activate one translation at a time. These hashes identify the IPS inputs, not the original ROM or generated package.

NameMD5 Hash of the .ips fileWhere to find it
English translation by Ackman Translations0dd930e3738524cc4f8a3d83326616a9https://www.romhacking.net/translations/363/
Brazilian Portuguese translation by E2P Traduções7cc729dde829946791d18a2b27e48da6https://romhackers.org/traducoes/console/super-nes/go-go-ackman-e2p-traducoes/

These hashes match src/ackman_translation.h and the supplied IPS files. The PT-BR converter applies the embedded English base before the Portuguese overlay in memory, producing one self-contained package. Unknown IPS files use a bounded native fallback; conversion alone does not establish gameplay compatibility. See translation conversion and native conversion.

Configuration and user files

All preferences use one config.ini. Gameplay mappings are separate from system hotkeys. The program creates factory defaults when the file is missing; existing user values are preserved.

DirectoryPurpose
rom/Default ROM picker location
saves/Save slots, custom states, and GGA1_autosave.sav
mods/Native .snesmod packages and MSU-1 packages
shaders/Recursive .glsl and .glslp discovery
screenshots/Opaque, compressed PNG captures
fallback/Circular recovery configuration backups

Flatpak stores writable files under $XDG_CONFIG_HOME, normally ~/.var/app/org.snesrecomp.AckmanRecomp/config/. Installed read-only assets reside under /app/share/org.snesrecomp.AckmanRecomp/. See Flatpak instructions.

Building and testing

Requirements include a C/C++17 toolchain, CMake, Python for build-time asset generation, Git, and SDL3. The framework revision is pinned by framework.lock; local integration patches are applied by the build pipeline. See the complete build guide for framework setup, ROM analysis, toolchain options, and generated sources.

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
ctest --test-dir build --output-on-failure

The current automated suite contains 14 CTests. Automated results do not replace physical gamepad, display, audio, or full-game validation. Older reports in docs/ retain their original dates and test counts as development history.

For a native Linux Flatpak bundle:

sh scripts/build_flatpak.sh
flatpak install --user "dist/AckmanRecomp-$(flatpak --default-arch).flatpak"
flatpak run org.snesrecomp.AckmanRecomp

Build on a Linux filesystem when using WSL; Windows-mounted volumes may not support the permission operations required by Flatpak tooling.

Documentation

Credits and third-party assets

  • SNESRecomp and its contributors provide the recompilation framework and runner.
  • SDL3 and Dear ImGui provide the desktop platform and interface foundations; NanoSVG rasterizes embedded vector assets.
  • Input glyphs are from Kenney Input Prompts, created by Kenney and distributed under CC0. The embedded keyboard, mouse, and controller prompts retain this attribution.
  • Open Sans provides the redistributable font fallback under the SIL Open Font License; its notice is included in assets/fonts/OFL.txt.
  • Translation credits belong to Ackman Translations and E2P Traduções / Sonic_Spin. Their original metadata and Readmes are retained in generated packages.

See third-party provenance and individual dependency notices. This project does not relicense the original game or its dependencies. ROMs, personal saves, and external MSU-1 audio assets are not part of the source distribution.

License and Acknowledgements

Code specific to this port is licensed under the PolyForm Noncommercial License 1.0.0, consistent with the SNESRecomp framework. It is source-available for noncommercial use; PolyForm Noncommercial is not an OSI-approved open-source license.

Distributed binaries include third-party code under the MIT, ISC and zlib licenses. Full copyright notices, license texts and asset acknowledgements, including Kenney Input Prompts (CC0 1.0 Universal), are provided in THIRD_PARTY_ATTRIBUTION.md. Include that file and LICENSE with every binary distribution.