GithubHelp home page GithubHelp logo

gota7 / bfbbdecomp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bfbbdecomp/bfbb

0.0 1.0 0.0 23.53 MB

Decompilation project for SpongeBob SquarePants: Battle for Bikini Bottom

Makefile 0.06% Assembly 64.82% Shell 0.01% C 0.97% C++ 33.97% Python 0.18% Objective-C 0.01% Dockerfile 0.01%

bfbbdecomp's Introduction

SpongeBob SquarePants: Battle for Bikini Bottom

OK chat on Discord

This repo contains a WIP decompilation of SpongeBob SquarePants: Battle for Bikini Bottom (US) for Nintendo GameCube.

It builds the following DOL:

main.dol: sha1: 306526d90b48e99894c3138f5fc8f2716d9fecf6

Progress

View our progress and answers to frequently asked questions on the project tracking website.

Join the discussion on the BFBB Decompilation Discord.

Building

Requirements

  • devkitPro
    • During installation, only the 'GameCube Development' component is required.
  • Python3 (pacman -S msys/python3)
  • gcc (pacman -S gcc)
  • Metrowerks CodeWarrior 2.0 and 2.7 compiler and linker for Embedded PowerPC (mwcceppc.exe and mwldeppc.exe)
    • These can be installed with CodeWarrior 2.0 and 2.7 for GameCube. Please obtain access to these tools on your own, or if you are interested in contributing, please join the BFBB Decompilation Discord and DM either Seil#3565 or mp#8248 for access.
  • A clean DOL of Battle for Bikini Bottom
    • This is usually named main.dol (or something similar) and must be extracted from the GameCube disc for the game. See this guide for instructions.

Instructions

  1. Copy your clean DOL of Battle for Bikini Bottom to the base working directory and rename it baserom.dol.
  2. Create a 2.0 and 2.7 folder in tools/mwcc_compiler.
  3. Copy the CW 2.0 mwcceppc.exe and mwldeppc.exe into the 2.0 folder.
  4. Copy the CW 2.7 mwcceppc.exe and mwldeppc.exe into the 2.7 folder.
  5. Run the make command.

Project Structure

bfbb
├── .github/workflows: build script for the website and CI
├── .vscode: settings and tasks for VS Code
├── asm: disassembled source code and linker code
│   ├── CodeWarrior: Metrowerks Standard Library and C/C++ Runtime
│   ├── Core: asm for src/Core
│   ├── Game: asm for src/Game
│   ├── ODEGdev: Debugger SDK
│   ├── bink: Bink SDK
│   ├── dolphin: Dolphin SDK
│   └── rwsdk: RenderWare SDK
├── docs: useful decompilation guides
├── dwarf: C++ definitions generated from the PS2 BFBB executable
├── include: global include headers
│   ├── CodeWarrior: C/C++ standard library
│   ├── dolphin: Dolphin SDK
│   ├── inline: utility inline asm macros
│   └── rwsdk: RenderWare SDK
├── src: decompiled C/C++ source code for BFBB
│   ├── Core: core game engine code
│   │   ├── p2: platform-specific code
│   │   └── x: game engine code
│   └── Game: game-specific code
├── tools: helper scripts and tools
│   ├── inlineasm: inserts raw assembly into C++ source code
│   ├── mwcc_compiler: Metrowerks compiler and linker
└   └── symbol_ripper: converts a mangled symbol name into a C++ function

Contributions

Contributions and PRs are welcome.

We recommend joining the BFBB Decompilation Discord as most of our discussion about this project occurs there. It's also the best place to get help if you need it.

Special Thanks

@Seil - Starting the project, working on tools, decompilation, support, etc. (too many things to list).

@mattbruv - Creating the project tracking website, inlineasm, decompilation.

@DarkRTA - Exporting datatypes for Ghidra, creating the formatting rules, splitting data files, improving the build process, decompilation.

@stravant - writing documentation, decompilation.

@mkst (conker) - Continuous Integration.

And to everyone else who has contributed to the project in any way.

bfbbdecomp's People

Contributors

1sdani avatar alexhdevries avatar darkrta avatar gota7 avatar joeyballentine avatar mattbruv avatar peb-adr avatar seilweiss avatar squareman avatar stravant avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.