This is an update to the original 2020 mrneo240 Dreamcast port of Super Mario 64. It addresses the audio-visual issues that were present and adds VMU saving.
This repo does not include all assets necessary for compiling the game. A prior copy of the game is required to extract the assets. Specifically you will need to provide the US version.
Just use the CDI builder found here: https://colab.research.google.com/drive/1JsN-2JOu1tzzHKowCJJRgtL01XgejZTE
Nobody follows directions anyway. If you want to build it the real way, I'll leave the reset of the docs, but I know they'll go unread.
Fixed textures live in the psp/textures/ folder. copy these into textures/, overwrite the extracted ones, and rebuild
- Install the Dreamcast toolchain https://github.com/KallistiOS/KallistiOS/tree/master/utils/dc-chain.
- Install python3
- Place a Super Mario 64 ROM called
baserom.<VERSION>.z64into the repository's root directory for asset extraction, whereVERSIONcan beus,jp, oreu. Note: Only US supported - Run
make TARGET_DC=1 - This will produce an ELF ready to be loaded with dc-tool / dc-load.
- To make a CDI, run
make TARGET_DC=1 cdi. You needmkdcdiscinstalled and on your path.
sm64
├── actors: object behaviors, geo layout, and display lists
├── asm: handwritten assembly code, rom header
│ └── non_matchings: asm for non-matching sections
├── assets: animation and demo data
│ ├── anims: animation data
│ └── demos: demo data
├── bin: C files for ordering display lists and textures
├── build: output directory
├── data: behavior scripts, misc. data
├── doxygen: documentation infrastructure
├── enhancements: example source modifications
├── include: header files
├── levels: level scripts, geo layout, and display lists
├── lib: SDK library code
├── rsp: audio and Fast3D RSP assembly code
├── sound: sequences, sound samples, and sound banks
├── src: C source code for game
│ ├── audio: audio code
│ ├── buffers: stacks, heaps, and task buffers
│ ├── engine: script processing engines and utils
│ ├── game: behaviors and rest of game source
│ ├── goddard: Mario intro screen
│ ├── menu: title screen and file, act, and debug level selection menus
│ └── pc: port code, audio and video renderer
├── text: dialog, level names, act names
├── textures: skybox and generic texture data
└── tools: build tools
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Run clang-format on your code to ensure it meets the project's coding standards.