Super Dodge Ball (super-super-dodgeball)
Super Dodge Ball
About the project
Super Dodge Ball es un videojuego de deportes publicado por Technōs Japan en 1990.
2 versions of Super Dodge Ball
You're viewing: Super Dodge Ball (super-super-dodgeball)
Official project information
Super Super Dodgeball
A native SNES port of the NES game Super Dodgeball.
Revision 1.2:
- MSU-1 Music tracks now supported
- (mostly) fixed the stats screen, I didn't even know it existed!
Generating the needed files
For copyright reasons I am not supplying any of the CHR ROM bytes. There's a go script included in the utilities/ directory that will extract the needed .asm files from a headered Super Dodge Ball rom with an md5 hash of 9c819e679f5fab4ef836761d31e98adc.
Simply run:
go run parseNesFileToBanks.go -in=Super\ Dodge\ Ball\ \(U\).nes
And 16 .asm files will be generated. You can ignore the bankx.asm ones. Copy the 8 chrom-tiles-X.asm to the /src directory.
Building
Prerequisites
Other Userful Tools I've used for this project
- Mesen2 - A fantastic emulator for development on a bunch of platforms
- HxD - A Hex Editor
- Visual Studio Code - Used as the development environment
Structure of the Project
-
bankX.asm- The NES memory PRG banks, there are 8 of them. This code is heavily edited/altered for the port -
chrom-tiles-X.asm- The NES CHR ROM banks, also 8 of them. These are untouched aside from converting them to the SNES tile format that we use. The go script takes care of that for you. -
2a03_xxxxx.asm- Sound emulation related code -
bank-snes.asm- All the code that runs in theA0bank, this is where we put most of our routines and logic that we need that is SNES specific. Also includes various included asm files:attributes.asm- dealing with tile and sprite attributeshardware-status-switches.asm- various useful methods to handle differences in hardware registershud-hdma.asm- HDMA logic for the player health bars and names to be shownintro_screen.asm- Title card that is shown at the start of the gamepalette_lookup.asmandpalette_updates.asm- palette logicsprites.asm- sprite conversion and DMA'ing
-
main.asm- the main file, root for the project -
vars.inc,registers.inc,macros.inc- helpful includes -
resetvector.asm- the reset vector code -
hirom.cfg- defines how our ROM is laid out, where each bank lives and how large they are
Building
- Update the
build.shfile with the location of your cc65 install - make sure you've extracted and copied the chr rom banks to
/src - run
build.sh - The output will be in
out/