Star Fox / Starwing source code, modified for ease-of-use and ROMhacking.
Go here to jump straight to the building instructions.
- H A M G E R - Wireframe shield meter color changing Super FX code
- Kandowontu - The Original Star Fox Guy, Lifesaver, Rumble System Programmer (Sequences), Rumble Effect Programmer/Polishing, Implemented several features (Mouse, Debug Mode/Crash Handler Restoration, Limit Removals, Easy Wireframes, other fixes and improvements)
- MrL314 - Texture Limit Removal Super FX Code
- Phonymike - Tools (mugconv, fontconv), ROM Header
- Randal Linden - Rumble Pad Designer, Rumble Pad Docs, Rumble System Programmer (Rumble Pad NMI Code)
- Repzilon - Misc. documentation
- SegaRetro92 - Texture/Palette Docs, General Graphics Stuff, Author of Several Graphics Tools, German Version GFX/Text Restoration
- Sunlit - Maintainer, Documentation, Toolchain Engineer, Rumble System Programmer ("Flat Rate" Rumble), Rumble Effect Programmer, Tool Author, German Version GFX/Text Restoration, Release Builder Script
- Uses GSU-2/Super FX 2 @21.4Mhz instead of MARIO Chip 1 @10.7Mhz
- Super FX MS1 high-speed multiply enabled (if 21mhz is enabled)
- FastROM support (Do not enable if you are targeting a real cartridge with a real MARIO/GSU-1/GSU-2 IC chip!)
- SNES Mouse support and "analog stick" support via the SNES mouse
- SNES Rumble Pad support and macros (see
SF\INC\RMBLMACS.INC
for macros)
- Very configurable out-of-the-box, see
SF\CONFIG\CONFIG.INC
for more info - Lots of free ROM space (2MB/16Mbit ROM)
- Bugfixes and improvements
- Build process optimized for speed
- Palettes and graphics crunched, textures interleaved, and fonts built at assembly
- Uses ARGLINK and ARGSFX from Star Fox 2 as linker and assembler instead of SL and SASM
- Easier creation of wireframe models (replace face3 and face4 with aface3 and aface4 in your shape file)
- Upload ROM directly to SNES and boot with QUsb2Snes and a SD2SNES/FXPak Pro flash cartridge
- Easily create patches for your ROMhack with
buildrelease.cmd
- 256 texture slots
- 250 faces/vertices limit for models
- All Starwing PAL and Germany text/GFX for PAL builds
- Kando and Randy were involved so you know it's good
Requirements: Microsoft Windows
Download repo as ZIP and extract somewhere, or clone the repo with git via the command line.
To build ROM, run build.cmd
.
To build ROM with Logging, run build to log.cmd
.
To clean, run clean.cmd
.
After building, a debug symbol map will be created at SYMBOLS.TXT
, and a bank space report at BANKS.CSV
.
NOTE: this was tested on WSL with Ubuntu installed. YMMV.
Requirements: Ubuntu (might work with other distros) snap, DOSBox-X, git
Install snapstore: sudo apt install snapd
Install DOSBOX-X from snap: sudo snap install dosbox-x
Clone repository: git clone https://github.com/Sunlitspace542/ultrastarfox
To build ROM, run make
.
To build ROM with logging, run make log
.
To clean, run make clean
.
After building, a debug symbol map will be created at SYMBOLS.TXT
, and a bank space report at BANKS.CSV
.
Uses USB2SNES-cli fork by Hyphen-ated. A prebuilt windows EXE is provided.
Download QUSB2SNES.
Extract it somewhere and run it. Set it up for an SD2SNES/FXPak Pro.
QUSB2SNES must be running in the background for uploading to function.
You can then run send2snes.cmd
or build and send to snes.cmd
to either upload the current ROM to the SNES or rebuild and upload the freshly built ROM.
PRs are welcome!
All changes to be submitted should be made to the main branch.
Argonaut 65816/Super FX Assembly Extension for VS Code
ArgSfx/SASM Assembler Manual
SNES Development Manual
fullsnes - SNES Hardware Specifications (by Nocash)
MSU-1 Documentation
65c816 Opcodes
65c816 Reference
Super FX (MARIO) Chip ASM Reference
EarthBound Music Editor (But for Star Fox)
Star Fox Music Programming Starter Kit (by livvy94)
- Optimize game where possible (We already have FastROM and 21Mhz SuperFX 2, can we go any further?)
- Annotate and document code (not so sure about doing this anymore)
- MAYBE: Disassemble all BIN files in SND directory, add documentation on custom music and the like
- Reimplement MSU-1 support using the driver I wrote for Star Fox CD
ultrastarfox
├── BIN: exe files needed to assemble game code
├── optionalstuff: optional graphics files
├── SF: Main source code is located here
│ ├── ASM: Main game code located here (65816)
│ ├── BANK: Bank data\ASM files
│ ├── CONFIG: Various game aspects can be configured here
│ ├── DATA: GFX files
│ │ └── COL: Palette files and Palette Packer
│ ├── EXT: .ext files needed by several .asm files
│ ├── INC: .inc files, arc tangent table
│ ├── MAPS: level scripts
│ ├── MARIO: .MC MARIO (SuperFX) ASM code
│ ├── MSG: Message files for English, Japanese, German, and French
│ ├── MSPRITES: contains interleaved FXGfx format textures
│ ├── PATH: contains all PATH language code (used for some object behaviors)
│ ├── SHAPES: contains all shape (model) files
│ ├── SND: sound/music data
│ └── STRAT: Code for Strategies (object behaviors)
├── TOOLS: tools such as PACKER and SHAPED
└── DOCS: .md format text files covering various aspects of Star Fox