Josh Schuler / Reverse engineering

Old school.
New code.

Bringing basketball classics back to life.
Native ports. Recovered behavior. Same obsession.

Get into the game

Currently rebuilding NBA Live ’95 & ’97

Independent game preservationScroll to explore From 8-bit to 32-bit
GAME BOY NES SUPER NINTENDO PLAYSTATION NATIVE CODE

The starting lineup05

Real games. Rebuilt from the inside.

PlayStation → C / C++NBA Live 97 native Team Rosters screen for the Chicago Bulls
Native build · Team Rosters
02 / CURRENT FOCUSIn progress

NBA Live ’97

PlayStation / Recovered C + C++ host

From MIPS routines to a native frontend: menus, rules, user profiles, rosters, player portraits, and original audio. The next era of the same preservation work.

Frontend reconstruction is underway. Playable basketball is not yet implemented.

Game Boy → Native COriginal NBA All-Star Challenge Game Boy one-on-one gameplay with Jordan and Ainge
Original game reference · One-on-One160 × 144 roots
03 / COMPLETED PORTComplete

NBA All-Star Challenge

Game Boy / C99 / SDL 3

Five modes, one native codebase. One-on-One, Free Throws, H-O-R-S-E, Accuracy Shootout, and Tournament—rebuilt with a software renderer and cross-platform SDL host.

Completion scope

Completed single-player behavioral port, not cycle-accurate emulation. Two-player input and music beyond the title/menu theme remain outside the completed scope. See the repository for the current fidelity notes.

Back to the 8-bit roots.

The NES projects that started the journey.

Original Double Dribble NES halftime show on the basketball court

04 / NES · C · WIN32

Double Dribble

Recovering title-to-court flow, audio, shooting, scoring, and inbounds.

Image: original game reference
Tecmo Presents opening screen with its pixel-art mascot

05 / NES · C · WIN32

Tecmo NBA Basketball

Preseason and season flows, team data, and a native ten-player court.

Image: opening presentation

Beyond my own repositories

Small changes.
Shared progress.

Contributing upstream matters, too. A few merged improvements to the frameworks and documentation other developers rely on.

The person behind the ports

Curiosity, all the
way down.

I’m Josh Schuler, an engineering leader and hands-on builder with 15+ years of software experience.

Classic games are where I get closest to the details: understanding how an old machine made something work, then expressing that behavior in code someone can read, test, and maintain.

My process is straightforward: inspect the original, recover the behavior, and compare the result. I keep verified work, approximations, and open questions separate.

More of my work on GitHub