Shrek Movie · GBA Video Recomp
Shrek (GBA Video)
OriginGame Boy Advance
TechnologyStatic recompilation (native C/C++)
Available forWindows
View official projectAbout the project
Preview experimental de recompilación estática con GBARecomp. Reproducción completa del cartucho GBA Video compatible.
Official project information
This recompilation is a byproduct of developing gbarecomp — the games (and, apparently, movies) are the proving ground; the framework is the goal.
Static recompilation of Shrek Movie (Game Boy Advance Video, USA) to native
PC, built on gbarecomp with the shared
recomp-ui launcher.
Status — playable
Shrek boots, reaches the menu, and plays the movie in a responsive native PC window.
Shreknicalities
This is a 64 MiB GBA Video Movie Pak, twice the normal GBA ROM address
window. Its Matrix Memory cartridge controller pages compressed video data
through a small aperture. gbarecomp models that mapper natively, allowing the
player to reach the cartridge's second 32 MiB half.
The Movie Pak also copies and updates parts of its player while the film runs.
gbarecomp recompiles the stable BIOS and cartridge code ahead of time, then
safely follows the changing player code from live memory during playback. The
result preserves the original Movie Pak's behavior without freezing the host
window.
Generated translation is intentionally omitted from Git because it derives from the copyrighted ROM; the build tools regenerate it from your own dump.
Required inputs
| Input | Local path | SHA-1 |
|---|---|---|
Shrek Movie (USA, MSKE, revision 5) | roms/shrek_movie_usa.gba | 2dedea86ec289a0e31089299613d9f74cca03609 |
| Game Boy Advance BIOS | gbarecomp/bios/gba_bios.bin | 300c20df6731a33952ded8c436f7f186d25d3492 |
The runtime refuses unrecognized inputs. This repository contains neither file; you must supply your own legally dumped cartridge image and BIOS.
Quick start
- Clone this repository with its submodules.
- Place the verified ROM and BIOS at the paths above.
- Build using the instructions below.
- Run
build/ShrekMovieRecomp.exe. - Press A on Play, because we have somehow recompiled a movie.
recomp-ui provides the pre-boot launcher and in-game settings. It remembers
your local ROM and BIOS selections after the first launch.
Controls
| GBA button | Keyboard |
|---|---|
| D-Pad | Arrow keys |
| A / B | Z / X |
| L / R | A / S |
| Start | Enter |
| Select | Backspace |
Save states use Shift+F1–F9 to save and F1–F9 to load.
Building from source
Windows prerequisites: CMake 3.20+, Ninja, an MSYS2 MinGW64 compiler, and SDL2.
git clone --recurse-submodules https://github.com/mstan/ShrekGBAVideoRecomp.git
cd ShrekGBAVideoRecomp
cmake -S gbarecomp -B gbarecomp/build -G Ninja
cmake --build gbarecomp/build --target gba_recompile
# Generate the ignored ROM translation and recompiled BIOS output.
pwsh tools/regen.ps1
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --target ShrekMovieRecomp
The generated translation unit is large; expect the first build to take a while.
Playback validation
The headless smoke route runs 600 frames, validates static coverage and Matrix mapping, and captures a screenshot:
pwsh tools/test-playback.ps1
The opt-in complete-film route is:
pwsh tools/test-full-movie.ps1
The long route represents roughly the duration of the film at 60 GBA frames per second and is intentionally excluded from routine regression runs.
License
PolyForm Noncommercial 1.0.0 — see LICENSE. Third-party
components retain their own licenses.
Legal
This project contains no ROM, Nintendo BIOS, decoded movie frames, audio, or other cartridge content. You must supply your own legally dumped inputs.
Shrek and related names and artwork are trademarks or copyrights of their respective owners. Nintendo and Game Boy Advance are trademarks of Nintendo. This project is an unaffiliated, non-commercial preservation and research effort.
Built with gbarecomp, because the Game
Boy Advance was the best platform Shrek was released on.