https://github.com/open-ribbon/open-ribbon Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} open-ribbon / open-ribbon Public * Notifications * Fork 3 * Star 57 vib-ribbon decompilation (PAL version) discord.gg/n5tptbvgje 57 stars 3 forks Activity Star Notifications * Code * Issues 1 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights open-ribbon/open-ribbon This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 8 branches 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/o] Use Git or checkout with SVN using the web URL. [gh repo clone open-r] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @xPythh xPythh Update README.md ... f1ef344 Oct 6, 2023 Update README.md Added a custom banner for styling f1ef344 Git stats * 96 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows progress reporter rewrite (by @xPythh) August 29, 2023 14:11 bin Migrate some rodata (#21) August 31, 2023 00:06 config Rename SsUtReverbOff to SpuInit August 31, 2023 12:52 include Migrate some rodata (#21) August 31, 2023 00:06 src/game Match AudioSys__Unk05 August 31, 2023 18:44 tools tools: update submodules August 29, 2023 14:39 .gitattributes Initial commit August 10, 2023 17:39 .gitignore add permuter support August 14, 2023 20:55 .gitmodules add decomp-permuter August 14, 2023 18:19 Makefile Rename SsUtReverbOff to SpuInit August 31, 2023 12:52 README.md Update README.md October 7, 2023 00:25 diff_settings.py diff: fix baseimg path August 14, 2023 12:36 permuter_settings.toml Update Makefile to use gcc + add modern gcc warnings check (#4) August 19, 2023 10:36 sces028.sha Add everything August 11, 2023 13:05 View code Decompilation Progress General info How to build How to decompile Troubleshooting Not getting an "OK" on Ubuntu 22.04 Contributors README.md image WIP decompilation of PAL build of the PS1 game Vib-Ribbon (biburibo n). The objective is to produce a free and open-source reverse-engineered version of the game. Documentation about this game and project can be found here. Join our Discord server to discuss the project. Decompilation Progress File name Progress Description MAIN_T.EXE progress Title screen MAIN_K.EXE N/A Kiosk--Tutorial level MAIN_G.EXE N/A Main menu and gameplay SCES_028.73 N/A Module (.EXE) loader General info Vib-Ribbon was written in C++, which was uncommon for games in the 90s, especially on the PSX. However, due to current limitations, this decompilation is written in C. How to build Place all the necessary PSX executable files in the iso directory (e.g. MAIN_G.EXE) first. .bin/.cue files will not work; in that case, you will have to extract it manually from the binary yourself via a program such as binwalk. 1. Run make extract to generate the assembly files in the asm/ directory 2. Run make to compile the binaries in the build/ directory In case there are any changes in the config/ folder, you might need to run make clean to reset the extraction. Some non-matching functions are present in the source preprocessed by the macro NON_MATCHING. You can still compile the game binaries by running CPP_FLAGS=-DNON_MATCHING make. In theory, they might be logically equivalent in-game, but I cannot promise that. Few of them could match by tuning or changing the compiler. How to decompile 1. Run make clean extract all expected at least once 2. Look for a function which hasn't been successfully decompiled yet (eg. INCLUDE_ASM("asm/game/nonmatchings/4D58", VideoSys__FlipBuffer);) 3. Run FUNC=VideoSys__FlipBuffer FILE=VideoSys make decompile to dump the decompiled code on the console 4. Replace the INCLUDE_ASM(...); you targeted with the console output content 5. and invoke python3 ./tools/asm-differ/diff.py -mwo VideoSys__FlipBuffer You will probably have some differences from your compiled code to the original; keep refactoring the code and move variables around until you have a 100% match. There are a few tricks to make the process more streamlined: 1. Use decomp.me with the vib-ribbon preset. 2. The "context" section of decomp.me, is provided by the previous command make decompile as mentioned in the how to decompile. 3. Use decomp-permuter to solve some mismatches. 4. Use this and this guide to understand how some compiler patterns work. 5. Use the #ifndef NON_MATCHING if your code is logically equivalent but you cannot yet fully match it. Troubleshooting Not getting an "OK" on Ubuntu 22.04 Debian>=12 and Ubuntu>=22.04 uses binutils-mipsel-linux-gnu>=2.38 which, for some unknown reasons, it generates broken binaries. You need to downgrade to 2.34 or 2.35 with the following: curl -L -o binutils-mipsel-linux-gnu_2.35.2-2cross2_amd64.deb http://ftp.de.debian.org/debian/pool/main/b/binutils-mipsen/binutils-mipsel-linux-gnu_2.35.2-2cross2_amd64.deb dpkg -i binutils-mipsel-linux-gnu_2.35.2-2cross2_amd64.deb rm binutils-mipsel-linux-gnu_2.35.2-2cross2_amd64.deb Contributors Avatar Username [47796739] polybiusproxy [52961795] xPythh [22226349] mkst [6874747073] unclamped [70072571] sys128 [119765865] AnOpenSauceDev About vib-ribbon decompilation (PAL version) discord.gg/n5TPTBvGjE Topics playstation psx decompilation vib-ribbon vibribbon Resources Readme Activity Stars 57 stars Watchers 5 watching Forks 3 forks Report repository Contributors 5 * @xPythh * @polybiusproxy * @mkst * @AnOpenSauceDev * @sys128 Languages * C 97.0% * Makefile 1.4% * Python 1.4% * Other 0.2% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.