{"id":13696972,"url":"https://github.com/mkst/sssv","last_synced_at":"2025-08-20T20:33:11.025Z","repository":{"id":37892950,"uuid":"338258341","full_name":"mkst/sssv","owner":"mkst","description":"WIP Space Station Silicon Valley N64 Decomp","archived":false,"fork":false,"pushed_at":"2025-05-17T08:28:42.000Z","size":12601,"stargazers_count":48,"open_issues_count":1,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-17T09:29:59.938Z","etag":null,"topics":["decomp","decompilation","n64","rnc"],"latest_commit_sha":null,"homepage":"https://sssv.deco.mp/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-12T08:10:52.000Z","updated_at":"2025-05-17T08:28:48.000Z","dependencies_parsed_at":"2024-07-14T12:22:26.599Z","dependency_job_id":"90afcb4e-e7b1-47df-b721-f7e9e0bd00c2","html_url":"https://github.com/mkst/sssv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mkst/sssv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fsssv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fsssv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fsssv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fsssv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkst","download_url":"https://codeload.github.com/mkst/sssv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fsssv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271378699,"owners_count":24749197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decomp","decompilation","n64","rnc"],"created_at":"2024-08-02T18:00:50.779Z","updated_at":"2025-08-20T20:33:10.844Z","avatar_url":"https://github.com/mkst.png","language":"C","funding_links":[],"categories":["Nintendo Wii","Game \u0026 Studio Tools","[↑](#table-of-contents) Disassemblies / Decompilations / Source Code","Reverse Engineering"],"sub_categories":["Rare","Famicom Disk System","Projects"],"readme":"# Space Station Silicon Valley N64\n\n![build](https://github.com/mkst/sssv/workflows/build/badge.svg)\n![progress](https://img.shields.io/badge/dynamic/json?color=blue\u0026label=us\u0026query=$.message\u0026logo=github\u0026logoColor=white\u0026link=https://github.com/mkst/sssv\u0026url=https%3A%2F%2Fsssv.deco.mp%2Fus.json)\n\nA work-in-progress decompilation of the **Space Station Silicon Valley** game for the Nintendo 64.\n\n\u003e **Note:** You must legally own a copy of the original game to use this repository.\n\nCheck out the [wiki](https://github.com/mkst/sssv/wiki/) for more detailed information.\n\n# Building\n\nThe instructions below assume that you will be using `Ubuntu 22.04`; either natively, via [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10), or via [Docker](https://docs.docker.com/get-docker/).\nPlease check the [packages.txt](packages.txt) and [requirements.txt](requirements.txt) for the  prerequisite Linux and Python packages respectively.\n\n## Natively\n\nClone the repository; note the `--recursive` flag to fetch submodules at the same time:\n\n```sh\ngit clone --recursive git@github.com:mkst/sssv.git\n```\n\nNavigate into the freshly cloned repo\n\n```sh\ncd sssv\n```\n\nPlace the **US 1.0** SSSV ROM in the root of this repository, name it `baserom.us.z64`, and then run the first `make` command to extract the ROM:\n\n```sh\nmake extract\n```\n\nNow build the ROM:\n\n```sh\nmake --jobs\n```\n\nIf you did everything correctly, you'll be greeted with the following:\n\n```sh\nbuild/sssv.us.z64: OK\n```\n\n## Docker\n\nClone this repository, place the `baserom.us.z64` at its root, and then run the Docker image via:\n\n```sh\ndocker run --rm -ti -v $(pwd):/sssv ghcr.io/mkst/sssv:latest\n```\n\nFrom here you can run the `make extract` and `make --jobs` commands.\n\n## Building `EU` Version\n\nPlace `baserom.eu.z64` in the root of the repository, and suffix each `make` command with `VERSION=eu`. Note that whilst this will build the EU ROM, minimal effort has been made to decompile this version.\n\n## Building `NON_MATCHING` Version\n\nA number of functions within the ROM have been decompiled to a state where they are functionally equivalent, but are not a byte-perfect match. Progress is approximately **11%** ahead of the fully matching build. In order to build/test the non-matching, pass `NON_MATCHING=1` to the `make` commands.\n\n# ROM Versions\n\nThere are 5 known versions of the ROM:\n\n| Country Code      | CRC1/CRC2           | ROM SHA1                                   | Notes           | Version |\n|:------------------|:-------------------:|:------------------------------------------:|:----------------|:-------:|\n| E - North America | `BFE23884/EF48EAAF` | `e5e09205aa743a9e5043a42df72adc379c746b0b` | US 1.0          | `1.37`  |\n| J - Japanese      | `BFE23884/EF48EAAF` | `7320f08474c011fc7781093bf1a6818c37ce51e2` | JP (Unreleased) | `1.37`  |\n| E - North America | `FC70E272/08FFE7AA` | `c968bba6a90db9ecbd957e910684a80726b0497d` | US 1.1          | `1.37`  |\n| P - European      | `FC70E272/08FFE7AA` | `23710541bb3394072740b0f0236a7cb1a7d41531` | EU              | `1.37`  |\n| ???               | ???                 | ???                                        | [NES World](http://www.nesworld.com/prototype-details.php?system=n64\u0026data=124) | `1.26B` |\n\nOnly US and EU versions were released to the public. If you are in possession of a beta/prototype ROM, please let me know - `mkst#4741`.\n\n# ROM Info\n\n## Layout\n\nThe layout of the ROM is work-in-progress. Three sections of code have been identified along with a mix of compressed and non-compressed data.\n\n### Main\n\nThis is the code that is loaded when the ROM first starts up, it is responsible for spawning the various game threads, handling controller input, playing sound effects etc. Also includes the `libultra` library code.\n\n### Overlay1\n\nThis is the code for the language select, intro cinematics and not much else.\n\n**Note:** In the EU ROM this section is compiled without optimisation!\n\n### Overlay2\n\nOverlay2 contains the core Space Station Silicon Valley game logic.\n\n## Compression\n\nUses [RNC](https://segaretro.org/Rob_Northen_compression) for a number of assets.\n\nCompression is almost completely matching; 261/263 files match after compression. `rnc_461900` and `rnc_63DC20` are still a problem.\n\nIn order to decompress the game assets run `make decompress` after you have performed the `make extract` step. This will be done automatically when matching compression has been figured out.\n\n# Repo layout\n\n```\nasm/             ; assembly files split by splat (not checked in)\nassets/          ; binary files split by splat (not checked in)\nbuild/           ; build folder (not checked in)\ninclude/\n  2.0I/          ; libultra 2.0I headers\nlib/libultra.a   ; libultra 2.0I static library\nsrc.{us|eu})/\n  core/          ; core code\n  data/          ; game data e.g. DisplayLists, Vtx + more\n  libultra/      ; custom libultra code\n  sssv/          ; game code\ntools/\n  ido5.3_recomp/ ; static recompilation of IDO 5.3 compiler\n  splat_ext      ; custom splat extensions\n```\n\n# Tools\n\n - [asm-processor](https://github.com/simonlindholm/asm-processor); allows `GLOBAL_ASM` pragma - replacing assembly inside C files\n - [asm-differ](https://github.com/simonlindholm/asm-differ); rapidly diff between source/target assembly\n - [decomp-permuter](https://github.com/simonlindholm/decomp-permuter); tweaks code, rebuilds, scores; helpful for weird regalloc issues\n - [ido-static-recomp](https://github.com/Emill/ido-static-recomp); no need to use qemu-irix anymore!\n - [m2c](https://github.com/matt-kempster/m2c); assembly to C code translator\n - [rnc_propack_source](https://github.com/lab313ru/rnc_propack_source); open-source compressor/decompressor for RNC file format\n - [splat](https://github.com/ethteck/splat); successor to n64split\n\n# Useful Links\n - [SSSV at TCRF](https://tcrf.net/Space_Station_Silicon_Valley_(Nintendo_64))\n - [SSSV at romhacking.net](http://datacrystal.romhacking.net/wiki/Space_Station_Silicon_Valley_(Nintendo_64))\n - [Music video based on SSSV Prototype build](https://www.youtube.com/watch?v=IAJ4OT6-5GU)\n - [ScriptHawk lua for SSSV](https://github.com/Isotarge/ScriptHawk/blob/master/games/sssv.lua)\n - [EverDrive Forum thread](https://krikzz.com/forum/index.php?topic=6946.0)\n - [NESWORLD Prototype ROM](http://nesworld.com/prototype-details.php?system=n64\u0026data=124)\n - [Magazine scans of reviews of SSSV](https://www.nintendo64ever.com/Tests-Nintendo-64-Game,321,Space-Station-Silicon-Valley,1.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkst%2Fsssv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkst%2Fsssv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkst%2Fsssv/lists"}