{"id":21407282,"url":"https://github.com/mkst/esa","last_synced_at":"2025-07-14T00:33:35.813Z","repository":{"id":38028492,"uuid":"407670554","full_name":"mkst/esa","owner":"mkst","description":"Evo's Space Adventures for PSX. A proof of concept, matching PSX decompilation, leveraging tools from N64 decomp projects.","archived":false,"fork":false,"pushed_at":"2024-02-01T21:29:26.000Z","size":6496,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-02-02T22:09:29.845Z","etag":null,"topics":["decompilation","mips","psx","reverse-engineering"],"latest_commit_sha":null,"homepage":"","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}},"created_at":"2021-09-17T20:23:57.000Z","updated_at":"2023-11-09T13:41:25.000Z","dependencies_parsed_at":"2024-02-01T22:06:20.472Z","dependency_job_id":"b8f948c1-7998-4a37-86ed-20f6e6dbe88f","html_url":"https://github.com/mkst/esa","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fesa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fesa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fesa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkst%2Fesa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkst","download_url":"https://codeload.github.com/mkst/esa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225934012,"owners_count":17547728,"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","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":["decompilation","mips","psx","reverse-engineering"],"created_at":"2024-11-22T16:45:54.128Z","updated_at":"2024-11-22T16:45:54.597Z","avatar_url":"https://github.com/mkst.png","language":"C","funding_links":[],"categories":["Nintendo Wii","Game \u0026 Studio Tools"],"sub_categories":["Runecraft"],"readme":"# Evo's Space Adventures PSX\n\n![build](https://github.com/mkst/esa/workflows/build/badge.svg)\n![progress](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/mkst/esa/refs/heads/master/progress.esa.json\u0026query=total\u0026suffix=%25\u0026logo=github\u0026logoColor=959da5\u0026label=progress\u0026labelColor=353c43\u0026color=critical)\n\nA Proof-of-Concept, Work-in-Progress, decompilation of Evo's Space Adventure for the PlayStation 1.\n\nSee the [Wiki](https://github.com/mkst/esa/wiki) for more information.\n\n**Note:** To use this repository, you must already own a copy of the game.\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### Cloning\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/esa.git\n```\n\nNavigate into the freshly cloned repo\n\n```sh\ncd esa\n```\n\nCopy `esa.dat` from your ESA CDROM to the root of the repo and then you are ready to build.\n\n### Using Docker\n\nSpin up a container using the pre-built, ready-to-go, image:\n```sh\ndocker run --rm -ti -v $(pwd):/esa ghcr.io/mkst/esa:latest\n```\n\n### Common Steps\n\nExtract \u0026 disassemble the `esa.dat` executable:\n```sh\nmake extract\n```\n\nCompile back into `build/esa.dat`:\n```sh\nmake all --jobs\n```\n\n## Notes\n\n### Toolchain\n\nThis project uses gcc 2.92.2, GNU as, and `maspsx` in order to build a matching binary without the need to use the PSYQ toolchain. The `modern-aspsx` script is WIP and may not cover all required functionality.\n\n### Space Station Silicon Valley\n\nThis project only exists for two purposes; firstly to demonstrate that a PSX decompilation can be accelerated by using the tools that have been built for N64 decomp projects, and secondly (and more importantly) to help accelerate the existing [SSSV](https://github.com/mkst/sssv) decomp project.\n\nLarge chunks of code have been copy/pasted from the N64 version of the game and the PSX port, and therefore by working on both projects (with different compilers - IDO vs GCC) we are able to gain a little more insight than by decompiling SSSV alone.\n\nThat said, a lot of the functionality has been stripped away; the PSX port is a much more basic version of the game.\n\nFiles in this project have been named based on their SSSV counterparts.\n\n\n## Tools / Thanks\n\nUpon the shoulders of giants... This project would not be possible without these tools (+ more):\n\n- [asm-differ](https://github.com/simonlindholm/asm-differ); rapidly diff between source/target assembly\n- [binutils](https://www.gnu.org/software/binutils/); where we would we be without GNU.\n- [decomp-permuter](https://github.com/simonlindholm/decomp-permuter); tweaks code, rebuilds, scores; helpful for weird regalloc issues\n- [m2c](https://github.com/matt-kempster/m2c); assembly to C code translator\n- [modern-asn64](https://github.com/RocketRet/modern-asn64); proof that GNU as can be used to build PSYQ-compiled games!\n- [old-gcc](https://github.com/decompals/old-gcc); collection of old gcc versions that are ready to go\n- [splat](https://github.com/ethteck/splat); binary splitter/disassembler + more\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkst%2Fesa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkst%2Fesa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkst%2Fesa/lists"}