Skip to content
View schulerj89's full-sized avatar

Highlights

  • Pro

Block or report schulerj89

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
schulerj89/README.md

Josh Schuler

Reverse engineering · Native game ports · Engineering leadership

I reconstruct classic games as native C programs from disassembly, traces, and observed behavior—without embedding an emulator or distributing copyrighted game data. I bring 15+ years of software experience to the work, from architecture and delivery through implementation, verification, and release.

Portfolio · Native ports · Open-source contributions

Native game ports

ProjectWhat is being reconstructed
NBA All-Star ChallengeGame Boy → native C/Win32. Bank-aware Ghidra analysis, ROM-derived asset packs, deterministic parity manifests, and playable One-on-One, Free Throws, H-O-R-S-E, Accuracy Shootout, and Tournament modes.
Double DribbleNES → native C/Win32. Recovered title, audio, introduction, configuration, tip-off, possession, shooting, scoring, inbound, and free-throw behavior with trace-backed tests.
Tecmo NBA BasketballNES → native C/Win32. Playable preseason and season games, menus, presentation, court systems, team data, and a growing translation of the original CPU logic.

These are source-level preservation projects. Each one separates public code from user-owned ROM data, imports only validated local assets, and documents what is exact, approximated, or still missing.

How I work

  • Recover banked assembly and data structures with Ghidra, emulator traces, and focused scripts.
  • Translate behavior into legible C while preserving original state machines and fixed-point rules.
  • Compare native output against reproducible reference captures and deterministic regressions.
  • Keep legal and technical boundaries explicit: no ROMs, extracted assets, or embedded emulation.

Open source

I also contribute upstream framework and documentation improvements:

Beyond the ports

Campus Gridiron Dynasty is a 20-season college-football simulation built with React and TypeScript. My broader work spans systems programming, browser games, developer tooling, Go, Rust, TypeScript, and applied AI.

Pinned Loading

  1. all-star-challenge-c-portall-star-challenge-c-portPublic

    Native C/Win32 port of NBA All-Star Challenge for Game Boy, reconstructed from bank-aware disassembly, traces, and parity tests.

    C

  2. double-dribble-c-portdouble-dribble-c-portPublic

    Source-only native C/Win32 port of Double Dribble for NES, reconstructed from disassembly, emulator traces, and deterministic tests.

    C

  3. tecmo-basketball-porttecmo-basketball-portPublic

    Native C/Win32 port of Tecmo NBA Basketball for NES, rebuilding the game without embedding an emulator.

    C

  4. github-pagegithub-pagePublic

    Reverse-engineering and native game-port portfolio featuring Game Boy and NES reconstructions in C.

    CSS

  5. campus-gridiron-dynastycampus-gridiron-dynastyPublic

    A 20-season college football dynasty simulator built with React and TypeScript, deterministic systems, and cross-browser verification.

    TypeScript

  6. frameworkframeworkPublic

    Forked from laravel/framework

    The Laravel Framework.

    PHP