Hi again! Two weeks of work on **MTenn3D**, my 3D remake of Mario Tennis for the Game Boy Color, built with Claude Code. It went from version 0.10 to **0.35.90**, and there's an Android build you can install and try (link at the bottom).
**The big one: no emulator anymore**
- The whole cartridge is now ported to JavaScript, about 4,480 routines: the story engine, text, every menu, the matches, the mini-games and drills, and the story scripts.
- Every part is checked against the original: recordings of real play run on both, and the game state is compared frame by frame.
- Since 0.35.72 there's no emulated Game Boy at all. No CPU, no emulated hardware: the picture comes from the app's own renderer and the sound from its own synthesiser. Your ROM only supplies the graphics, music and text.
**The campus in 3D**
- Trees, bushes, palms and potted plants are 3D and sway in the wind. Fences, glass walls, furniture, fountains and flower beds stand up too, and the Training Center has its own indoor lighting.
- New ground detail: dense grass, mown in stripes on the school grounds, stone kerbs along the paths and grit on the dirt.
- The road by the cafΓ© now has hills and a little town on the horizon, and joins the courtyard seamlessly (pic 3).
- Lighting with time of day: shadows, night lamps, floodlights, a soft tilt-shift blur.
- Voxel sprites are the default, with rounded characters and detailed sprites that change expression.
**Matches and stadiums**
- Every court has a 3D stadium in its own style, and the finals are played in a giant stadium.
- A walk-out intro before each match, a crowd that reacts with banners and sound, ball kids, line judges, a TV crane and flags in the wind.
- Weather can turn mid-match (rain, puddles, umbrellas), floodlights come on bank by bank, and the courts wear and keep ball marks.
- TV replays of long rallies, line calls on close bounces, a rally counter, changeover stats, a momentum bar ("ON FIRE") and a trophy ceremony.
- A new TV-style pause: a broadcast score bar while the camera moves round the stadium and closes in on each player (pic 2).
**Gameplay**
- **STAMINA**, a fifth stat you train at level-up. Running and swinging tire you (charged shots most of all), with a stamina bar for each player.
- Optional Enhanced and 120 Hz physics, and analog stick support.
- **TOUR+**: rankings, rivals, training, equipment, a day schedule and sponsors. After a ranking win you see yourself climb the ladder past the player you beat.
- The level-up screen shows what a point actually does in real units: serve speed in km/h, running speed, how wide you can aim (pic 4). The EXP screen shows each player's next levels and what they cost.
**Menus and looks**
- Every menu uses one new ball-wheel style with HD fonts, and the options are inside the game.
- The character creator has redrawn portraits and new hairstyles (afro, puffs, cornrows, locs, box braids, fade).
- The VS screen shows close-ups of the players' faces, and there's a new title screen with the venues flying by behind PRESS START.
**On phones**
- Android app with a portrait layout, support for folding phones and 120 Hz screens, a resolution scaler for slower phones, and run-ahead to cut input lag.
**Try it**
The Android APK is in the repo's releases folder, and it contains **no game data**. On first start you pick your own legal dump of *Mario Tennis* (USA) for Game Boy Color. The app checks it (SHA-1 starting `414ba583`), keeps it on your phone and never uploads it.
- Download the APK: https://github.com/akeem000-ship-it/re-skill/tree/claude/re-skill-reverse-engineer-p4564i/projects/mario-tennis-gbc/releases
- The code and the full changelog: https://github.com/akeem000-ship-it/re-skill/tree/claude/re-skill-reverse-engineer-p4564i/projects/mario-tennis-gbc
Bug reports are very welcome. The app has a REC button, and a recording or a screenshot of anything that looks off helps a lot.