Back to Projects

Mario Tennis GBC — Level-Up System RE

Reverse engineered from the USA ROM

The four RPG characters (Alex, Harry, Nina, Kate) each have 11 substats shown on a 1-10 scale. On level-up you pick a category (Spin, Power, Control, Speed) to invest in. Stats are not stored directly; they are recomputed from your category investments and each character's hidden threshold table every time the game recalculates. The "stat decay" community players observe is a natural consequence of this formula, not a separate mechanic.

Level 1
Category Substat Value
How it works: Each category's intermediate = (pts_in_category × 5) − total_pts. The displayed stat = 1 + (number of the character's 9 thresholds that the intermediate strictly exceeds). Equipment bonuses apply after, clamped to [1, 10]. Yellow = maxed at 10.

Objective

Configure options above and click Find Best Build.
How it works: Exhaustive search over all point distributions (Spin, Power, Control, Speed) summing to max level − 1. C(N+3, 3) combinations — at max level 50 that is ~23,000 combinations, instant in JS. The optimizer finds the allocation that maximises your chosen objective. Max total stats sums all 11 displayed values. Max weakest stat maximises the minimum displayed value (balanced build). Weighted uses per-substat weights you configure.

Best builds at max level (99) for every character, searched across all 21 equipment combinations (7 rackets × 3 shoes). Max Total Stats shows the build that maximises the sum of all 11 displayed values. Max Weakest Stat shows the build that maximises the lowest displayed stat — the most balanced option available. Both total and weakest values are shown for every build.

Results are fixed at level 99 (98 points). Equipment is searched exhaustively — the combination shown is guaranteed optimal for that objective and character.