A curated list of awesome retro game development and reverse engineering resources, tools, docs, related projects all in an easy to use 'github pages' website. https://www.retroreversing.com/
The Build and deploy Pages workflow builds the R2, Pyre and Kaitai File Lab plugins with their npm lockfiles before building Jekyll.
It verifies the published plugin modules, workers, stylesheets, bundled MIPS/R5900 Pyre specs and Wasmer runtime against the built files before uploading the Pages artifact.
Generated dist/ directories remain ignored.
In the repository's Settings > Pages > Build and deployment, select GitHub Actions as the source. After the workflow is on the default branch, pushes to that branch deploy the site; it can also be run from the Actions tab. Branch-based Pages builds do not run the plugin build steps.
To build the plugins locally, run from the repository root:
for plugin in r2 pyre kaitai-viewer; do
npm ci --prefix "public/js/file-lab/plugins/$plugin" &&
npm run build --prefix "public/js/file-lab/plugins/$plugin" || exit 1
done
bundle exec jekyll build
node scripts/validate-file-lab-assets.mjs _siteAfter deploying, open /file-lab/, load an executable and check the R2 and Pyre views. PS2 EE ELF files use the bundled R5900 spec; IOP IRX modules use bundled MIPS32 specs.
R2 also requires the root coi-serviceworker.js to establish cross-origin isolation on /file-lab/, and both engines download external runtime assets.
Build validation checks the locally published assets; browser analysis verifies those runtime dependencies.
- Games with Debug Symbols
- Development Kits (Hardware)
- Software Development Kits
- Games Source Code
- Game Engines
- Game File Formats
- Game Console Hardware Architecture
- Nintendo Entertainment System
- Nintendo Game Boy
- Nintendo 64
- Nintendo Gamecube (Dolphin)
- Nintendo Wii
- Nintendo 3DS
- Nintendo WiiU
If you are looking to contribute but don't know where to start here are a few examples of posts that are up for grabs.
- TUME Map Editor - https://games.greggman.com/game/tume___the_universal_map_editor/
- Game Genie Guy - https://www.romhacking.net/forum/index.php?topic=17595.40
- Psy-Q CD Emulation Systems - https://web.archive.org/web/19970709125031/http://www.snsys.com:80/
- Deluxe Paint IV - https://www.youtube.com/watch?v=973fiFaSXqw (source code: http://www.computerhistory.org/atchm/electronic-arts-deluxepaint-early-source-code/)
- Aladdin Source Code - https://gamehistory.org/aladdin-source-code/
- SNASM2 PCI card - https://www.youtube.com/watch?v=zb2928JnKEg (https://assemblergames.com/threads/problems-installing-snasm2-pci-card.43990/page-5)
- Cross Products development kit for sega saturn - https://segaretro.org/Cross_Products
- Cross Products vs Psy-Q (SN Systems) - https://archive.org/stream/EDGE.N023.1995.08/EDGE.N023.1995.08-Escapade#page/n53/mode/2up/search/%22SN+Systems%22
- SN64 DEV KIT - https://web.archive.org/web/19970709125031/http://www.snsys.com:80/ Also - https://web.archive.org/web/19970709125031/http://www.snsys.com:80/
- Neon64: NES emulator for N64! - https://hcs64.com/neon64.html
- Book review of "Programming the Cell Processor" and Comparison of open source tools to SN Systems sdk here - https://archive.org/stream/GDM_February_2009#page/n39/mode/2up/search/%22SN+Systems%22
- Animal Crossing NES emulator - https://jamchamb.github.io/2018/07/11/animal-crossing-nes-emulator-hacks.html
- Klik & Play - https://web.archive.org/web/19990220223721/http://www.emf.net:80/%7Emikep/Knp/KNP.html
- Rebel Assault - https://github.com/Fortyseven/RA_1993
- 3DS Emulation in C++ - https://www.youtube.com/watch?v=1qGksJWsfow
- Jak and Daxter - http://www.codersnotes.com/notes/disassembling-jak/
- Video game Science - https://www.reddit.com/r/videogamescience/
- SegaRetro - https://segaretro.org
- Ultra64.ca - http://ultra64.ca
- Codeshop articles in Edge magazine (Aus)
- Super Famicom Development Wiki - https://wiki.superfamicom.org
- N64 Cart Images @ James S' Kingdom - https://sites.google.com/site/jamesskingdom/Home/electronics-by-james-s/inside-manufactured-products/nintendo-64-hardware-exposed
We only embed high-quality youtube videos related to the technical achievements in retro video games, here are some of the youtube channels we would like to support:
- Game Hut - https://www.youtube.com/channel/UCfVFSjHQ57zyxajhhRc7i0g
- KimJustice - Kim Justice - YouTube
- Modern Vintage Gamer - Modern Vintage Gamer - YouTube
- MrMario2011 - MrMario2011 - YouTube
- Hard4Games - Hard4Games - YouTube
- Video Game Story Time - https://www.youtube.com/channel/UCLWh30LMdJZam_4SKWuq0dA
Ruby 3.2 is end-of-life. Use Ruby 3.3.x for local development.
The easiest option on macOS is the prebuilt Homebrew formula:
brew install ruby@3.3If you prefer rbenv, install the same major version:
brew install rbenv ruby-build
rbenv install 3.3.12
rbenv local 3.3.12bundle installTo preview the site on your machine:
- Run
jekyll serve --livereloadfrom the project root. - Open http://localhost:4000 in your browser.
For faster local iteration while writing content:
- Run
jekyll serve --config _config.yml,_config.dev.yml --livereload - This disables redirect generation locally, which reduces rebuild fan-out.
BackstopJS is configured for a small set of representative pages and viewport sizes. Use it when changing CSS, layouts, includes, or page structures that could affect rendered output.
Install the npm dependencies first:
npm installStart the local Jekyll server in another terminal:
jekyll serve --config _config.yml,_config.dev.yml --livereloadCreate or update the approved screenshot baselines:
npm run backstop:referenceRun a visual regression check:
npm run backstop:testIf the differences are intentional, approve the new screenshots:
npm run backstop:approveBy default BackstopJS targets http://localhost:4000. To test a different preview URL, set BACKSTOP_BASE_URL:
BACKSTOP_BASE_URL=https://example-preview-url npm run backstop:test