mirror of
https://github.com/SplatooD/splatood.git
synced 2026-09-06 23:55:11 -05:00
Hello World
This commit is contained in:
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.nes
|
||||
*~
|
||||
game.s
|
||||
.DS_Store
|
||||
*.swp
|
||||
31
Makefile
Normal file
31
Makefile
Normal file
@@ -0,0 +1,31 @@
|
||||
ROM_CONFIG = nrom.cfg
|
||||
CRT_OBJ = crt0.o
|
||||
GAME_OBJ = game.o
|
||||
RUNTIME_LIB = runtime.lib
|
||||
|
||||
EXECUTABLE = splatood.nes
|
||||
|
||||
ASM = ca65
|
||||
CC = cc65
|
||||
LD = ld65
|
||||
|
||||
|
||||
all: $(EXECUTABLE) ${CRT_OBJ}
|
||||
|
||||
crt0.o: *.s
|
||||
|
||||
%.s: %.c *.h
|
||||
$(CC) -Oi $< --add-source
|
||||
|
||||
%.o: %.s
|
||||
$(ASM) $<
|
||||
|
||||
$(EXECUTABLE): $(GAME_OBJ) $(ROM_CONFIG) $(CRT_OBJ) $(RUNTIME_LIB)
|
||||
$(LD) -C $(ROM_CONFIG) -o $(EXECUTABLE) $(CRT_OBJ) $(GAME_OBJ) $(RUNTIME_LIB)
|
||||
|
||||
clean:
|
||||
rm -f game.s *.o *.nes
|
||||
|
||||
|
||||
.SECONDARY: # suppress removal of intermediate build files
|
||||
%.o: %.c # suppress built in rule to build .o from .c
|
||||
25
README.md
Normal file
25
README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# SplatooD: A Splatoon demake for NES
|
||||
|
||||

|
||||
|
||||
## Controls
|
||||
|
||||
D-pad to move, A to flick roller, START to pause. Menus accept D-pad to move cursor and START to select an item.
|
||||
|
||||
## Building
|
||||
|
||||
Install [cc65](ftp://ftp.musoftware.de/pub/uz/cc65/cc65-sources-2.13.3.tar.bz2) v2.13.3 or thereabouts and then run `make`.
|
||||
|
||||
Assets were created in NESST and Famitracker.
|
||||
|
||||
### Updating Strings
|
||||
|
||||
All strings in SplatooD are formatted as EBCDIC with an offset. Use the Python script in `util/ebcdic.py` to convert ASCII to appropriate arrays.
|
||||
|
||||
### Updating Nametable Headers
|
||||
|
||||
There is a tool to convert binary nametables into C headers in `util/bin-to-h.py`.
|
||||
|
||||
## Cartridge Details
|
||||
|
||||
We target an NROM256 cartridge with two 16kB PRG ROMs and one 8kB CHR ROM.
|
||||
BIN
art/bluefin.nam
Normal file
BIN
art/bluefin.nam
Normal file
Binary file not shown.
BIN
art/bluefin_depot_nametable.bmp
Normal file
BIN
art/bluefin_depot_nametable.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
art/bluefin_depot_nametable.nam
Normal file
BIN
art/bluefin_depot_nametable.nam
Normal file
Binary file not shown.
BIN
art/combined_chr.chr
Normal file
BIN
art/combined_chr.chr
Normal file
Binary file not shown.
BIN
art/combined_tiles.bmp
Normal file
BIN
art/combined_tiles.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
BIN
art/endgame.nam
Normal file
BIN
art/endgame.nam
Normal file
Binary file not shown.
BIN
art/inkling_tiles.bmp
Normal file
BIN
art/inkling_tiles.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
BIN
art/kelp_dome_nametable.bmp
Normal file
BIN
art/kelp_dome_nametable.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
art/kelp_dome_nametable.nam
Normal file
BIN
art/kelp_dome_nametable.nam
Normal file
Binary file not shown.
BIN
art/map_tiles.bmp
Normal file
BIN
art/map_tiles.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
1
art/palette.pal
Normal file
1
art/palette.pal
Normal file
@@ -0,0 +1 @@
|
||||
00!1$):
|
||||
BIN
art/saltspray_rig.bmp
Normal file
BIN
art/saltspray_rig.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
art/saltspray_rig.nam
Normal file
BIN
art/saltspray_rig.nam
Normal file
Binary file not shown.
BIN
art/test_map.nam
Normal file
BIN
art/test_map.nam
Normal file
Binary file not shown.
259
crt0.s
Normal file
259
crt0.s
Normal file
@@ -0,0 +1,259 @@
|
||||
; Startup code for cc65 and Shiru's NES library
|
||||
; based on code by Groepaz/Hitmen <groepaz@gmx.net>, Ullrich von Bassewitz <uz@cc65.org>
|
||||
|
||||
|
||||
FT_DPCM_OFF = $c000 ;$c000..$ffc0, 64-byte steps
|
||||
FT_SFX_STREAMS = 4 ;number of sound effects played at once, 1..4
|
||||
|
||||
.define FT_DPCM_ENABLE 1 ;undefine to exclude all DMC code
|
||||
.define FT_SFX_ENABLE 1 ;undefine to exclude all sound effects code
|
||||
|
||||
|
||||
|
||||
.export _exit,__STARTUP__:absolute=1
|
||||
.import initlib,push0,popa,popax,_main,zerobss,copydata
|
||||
|
||||
; Linker generated symbols
|
||||
.import __RAM_START__ ,__RAM_SIZE__
|
||||
.import __ROM0_START__ ,__ROM0_SIZE__
|
||||
.import __STARTUP_LOAD__,__STARTUP_RUN__,__STARTUP_SIZE__
|
||||
.import __CODE_LOAD__ ,__CODE_RUN__ ,__CODE_SIZE__
|
||||
.import __RODATA_LOAD__ ,__RODATA_RUN__ ,__RODATA_SIZE__
|
||||
.import NES_MAPPER,NES_PRG_BANKS,NES_CHR_BANKS,NES_MIRRORING
|
||||
.include "zeropage.inc"
|
||||
|
||||
|
||||
|
||||
FT_BASE_ADR =$0100 ;page in RAM, should be $xx00
|
||||
|
||||
.define FT_THREAD 1 ;undefine if you call sound effects in the same thread as sound update
|
||||
.define FT_PAL_SUPPORT 1 ;undefine to exclude PAL support
|
||||
.define FT_NTSC_SUPPORT 1 ;undefine to exclude NTSC support
|
||||
|
||||
|
||||
PPU_CTRL =$2000
|
||||
PPU_MASK =$2001
|
||||
PPU_STATUS =$2002
|
||||
PPU_OAM_ADDR=$2003
|
||||
PPU_OAM_DATA=$2004
|
||||
PPU_SCROLL =$2005
|
||||
PPU_ADDR =$2006
|
||||
PPU_DATA =$2007
|
||||
PPU_OAM_DMA =$4014
|
||||
PPU_FRAMECNT=$4017
|
||||
DMC_FREQ =$4010
|
||||
CTRL_PORT1 =$4016
|
||||
CTRL_PORT2 =$4017
|
||||
|
||||
OAM_BUF =$0200
|
||||
PAL_BUF =$01c0
|
||||
|
||||
|
||||
|
||||
.segment "ZEROPAGE"
|
||||
|
||||
NTSC_MODE: .res 1
|
||||
FRAME_CNT1: .res 1
|
||||
FRAME_CNT2: .res 1
|
||||
VRAM_UPDATE: .res 1
|
||||
NAME_UPD_ADR: .res 2
|
||||
NAME_UPD_ENABLE: .res 1
|
||||
PAL_UPDATE: .res 1
|
||||
PAL_BG_PTR: .res 2
|
||||
PAL_SPR_PTR: .res 2
|
||||
SCROLL_X: .res 1
|
||||
SCROLL_Y: .res 1
|
||||
SCROLL_X1: .res 1
|
||||
SCROLL_Y1: .res 1
|
||||
PAD_STATE: .res 2 ;one byte per controller
|
||||
PAD_STATEP: .res 2
|
||||
PAD_STATET: .res 2
|
||||
PPU_CTRL_VAR: .res 1
|
||||
PPU_CTRL_VAR1: .res 1
|
||||
PPU_MASK_VAR: .res 1
|
||||
RAND_SEED: .res 2
|
||||
FT_TEMP: .res 3
|
||||
|
||||
TEMP: .res 11
|
||||
|
||||
PAD_BUF =TEMP+1
|
||||
|
||||
PTR =TEMP ;word
|
||||
LEN =TEMP+2 ;word
|
||||
NEXTSPR =TEMP+4
|
||||
SCRX =TEMP+5
|
||||
SCRY =TEMP+6
|
||||
SRC =TEMP+7 ;word
|
||||
DST =TEMP+9 ;word
|
||||
|
||||
RLE_LOW =TEMP
|
||||
RLE_HIGH =TEMP+1
|
||||
RLE_TAG =TEMP+2
|
||||
RLE_BYTE =TEMP+3
|
||||
|
||||
|
||||
|
||||
.segment "HEADER"
|
||||
|
||||
.byte $4e,$45,$53,$1a
|
||||
.byte <NES_PRG_BANKS
|
||||
.byte <NES_CHR_BANKS
|
||||
.byte <NES_MIRRORING|(<NES_MAPPER<<4)
|
||||
.byte <NES_MAPPER&$f0
|
||||
.res 8,0
|
||||
|
||||
|
||||
|
||||
.segment "STARTUP"
|
||||
|
||||
start:
|
||||
_exit:
|
||||
|
||||
sei
|
||||
ldx #$ff
|
||||
txs
|
||||
inx
|
||||
stx PPU_MASK
|
||||
stx DMC_FREQ
|
||||
stx PPU_CTRL ;no NMI
|
||||
|
||||
initPPU:
|
||||
bit PPU_STATUS
|
||||
@1:
|
||||
bit PPU_STATUS
|
||||
bpl @1
|
||||
@2:
|
||||
bit PPU_STATUS
|
||||
bpl @2
|
||||
|
||||
clearPalette:
|
||||
lda #$3f
|
||||
sta PPU_ADDR
|
||||
stx PPU_ADDR
|
||||
lda #$0f
|
||||
ldx #$20
|
||||
@1:
|
||||
sta PPU_DATA
|
||||
dex
|
||||
bne @1
|
||||
|
||||
clearVRAM:
|
||||
txa
|
||||
ldy #$20
|
||||
sty PPU_ADDR
|
||||
sta PPU_ADDR
|
||||
ldy #$10
|
||||
@1:
|
||||
sta PPU_DATA
|
||||
inx
|
||||
bne @1
|
||||
dey
|
||||
bne @1
|
||||
|
||||
clearRAM:
|
||||
txa
|
||||
@1:
|
||||
sta $000,x
|
||||
sta $100,x
|
||||
sta $200,x
|
||||
sta $300,x
|
||||
sta $400,x
|
||||
sta $500,x
|
||||
sta $600,x
|
||||
sta $700,x
|
||||
inx
|
||||
bne @1
|
||||
|
||||
lda #4
|
||||
jsr _pal_bright
|
||||
jsr _pal_clear
|
||||
jsr _oam_clear
|
||||
|
||||
jsr zerobss
|
||||
jsr copydata
|
||||
|
||||
lda #<(__RAM_START__+__RAM_SIZE__)
|
||||
sta sp
|
||||
lda #>(__RAM_START__+__RAM_SIZE__)
|
||||
sta sp+1 ; Set argument stack ptr
|
||||
|
||||
jsr initlib
|
||||
|
||||
lda #%10000000
|
||||
sta <PPU_CTRL_VAR
|
||||
sta PPU_CTRL ;enable NMI
|
||||
lda #%00000110
|
||||
sta <PPU_MASK_VAR
|
||||
|
||||
waitSync3:
|
||||
lda <FRAME_CNT1
|
||||
@1:
|
||||
cmp <FRAME_CNT1
|
||||
beq @1
|
||||
|
||||
detectNTSC:
|
||||
ldx #52 ;blargg's code
|
||||
ldy #24
|
||||
@1:
|
||||
dex
|
||||
bne @1
|
||||
dey
|
||||
bne @1
|
||||
|
||||
lda PPU_STATUS
|
||||
and #$80
|
||||
sta <NTSC_MODE
|
||||
|
||||
jsr _ppu_off
|
||||
|
||||
lda #0
|
||||
ldx #0
|
||||
jsr _set_vram_update
|
||||
|
||||
ldx #<music_data
|
||||
ldy #>music_data
|
||||
lda <NTSC_MODE
|
||||
jsr FamiToneInit
|
||||
|
||||
.if(FT_SFX_ENABLE)
|
||||
ldx #<sounds_data
|
||||
ldy #>sounds_data
|
||||
jsr FamiToneSfxInit
|
||||
.endif
|
||||
|
||||
lda #$fd
|
||||
sta <RAND_SEED
|
||||
sta <RAND_SEED+1
|
||||
|
||||
lda #0
|
||||
sta PPU_SCROLL
|
||||
sta PPU_SCROLL
|
||||
|
||||
jmp _main ;no parameters
|
||||
|
||||
.include "neslib.s"
|
||||
|
||||
.segment "RODATA"
|
||||
|
||||
music_data:
|
||||
.include "music.s"
|
||||
|
||||
.if(FT_SFX_ENABLE)
|
||||
sounds_data:
|
||||
.include "sounds.s"
|
||||
.endif
|
||||
|
||||
.segment "SAMPLES"
|
||||
|
||||
;.incbin "music_dpcm.bin"
|
||||
|
||||
.segment "VECTORS"
|
||||
|
||||
.word nmi ;$fffa vblank nmi
|
||||
.word start ;$fffc reset
|
||||
.word irq ;$fffe irq / brk
|
||||
|
||||
|
||||
.segment "CHARS"
|
||||
|
||||
.incbin "tileset.chr"
|
||||
1236
famitone2.s
Normal file
1236
famitone2.s
Normal file
File diff suppressed because it is too large
Load Diff
40
levels/bluefin.h
Normal file
40
levels/bluefin.h
Normal file
@@ -0,0 +1,40 @@
|
||||
const unsigned char bluefin_depot[ 1024 ] = {
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x22,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x26,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x22,0x29,0x24,0x25,0x28,0x29,0x28,0x23,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x32,0x39,0x38,0x39,0x34,0x35,0x38,0x33,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x32,0x33,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x3c,0x3d,
|
||||
0x11,0x2b,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x10,0x2b,
|
||||
0x3a,0x3b,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x3a,0x3b,
|
||||
0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x22,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x26,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x22,0x29,0x24,0x25,0x28,0x29,0x28,0x23,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x32,0x39,0x38,0x39,0x34,0x35,0x38,0x33,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x32,0x33,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
|
||||
0xff,0xff,0x0f,0x0f,0x0f,0x0f,0xff,0xff,
|
||||
0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,
|
||||
0x3f,0x03,0x30,0x00,0x00,0xc0,0x0c,0xcf,
|
||||
0x13,0x33,0xc3,0xfc,0xf3,0x3c,0xcc,0x8c,
|
||||
0x33,0x03,0x33,0x0c,0x03,0xcc,0x0c,0xcc,
|
||||
0xff,0xf3,0x00,0x00,0x00,0x00,0xfc,0xff,
|
||||
0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,
|
||||
0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f };
|
||||
1
levels/endgame.h
Normal file
1
levels/endgame.h
Normal file
File diff suppressed because one or more lines are too long
40
levels/kelpdome.h
Normal file
40
levels/kelpdome.h
Normal file
@@ -0,0 +1,40 @@
|
||||
const unsigned char kelpdome[ 1024 ] = {
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,
|
||||
0x2c,0x2d,0x22,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x23,0x20,0x21,0x20,0x21,0x10,0x2b,0x20,0x21,
|
||||
0x3c,0x3d,0x26,0x35,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x34,0x27,0x30,0x31,0x30,0x31,0x3a,0x3b,0x30,0x31,
|
||||
0x2c,0x2d,0x36,0x37,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x3c,0x3d,0x26,0x37,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x32,0x33,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,
|
||||
0x2c,0x2d,0x36,0x37,0x20,0x21,0x22,0x23,0x20,0x21,0x22,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x3c,0x3d,0x26,0x37,0x30,0x31,0x32,0x33,0x30,0x31,0x26,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,
|
||||
0x2c,0x2d,0x36,0x37,0x20,0x21,0x20,0x21,0x20,0x21,0x36,0x25,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x23,0x20,0x21,0x20,0x21,0x22,0x28,0x29,0x23,0x2c,0x2d,
|
||||
0x3c,0x3d,0x26,0x37,0x30,0x31,0x30,0x31,0x30,0x31,0x32,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x34,0x27,0x30,0x31,0x30,0x31,0x32,0x38,0x34,0x27,0x3c,0x3d,
|
||||
0x2c,0x2d,0x36,0x37,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x2c,0x2d,
|
||||
0x3c,0x3d,0x26,0x37,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x27,0x3c,0x3d,
|
||||
0x2c,0x2d,0x36,0x37,0x20,0x21,0x22,0x28,0x29,0x28,0x29,0x23,0x20,0x21,0x22,0x28,0x29,0x23,0x20,0x21,0x26,0x25,0x28,0x29,0x28,0x23,0x20,0x21,0x26,0x27,0x2c,0x2d,
|
||||
0x3c,0x3d,0x26,0x37,0x30,0x31,0x32,0x38,0x39,0x38,0x34,0x27,0x30,0x31,0x32,0x38,0x39,0x33,0x30,0x31,0x32,0x38,0x39,0x38,0x39,0x33,0x30,0x31,0x36,0x27,0x3c,0x3d,
|
||||
0x2c,0x2d,0x36,0x37,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x2c,0x2d,
|
||||
0x3c,0x3d,0x26,0x37,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x27,0x3c,0x3d,
|
||||
0x2c,0x2d,0x36,0x25,0x28,0x23,0x20,0x21,0x20,0x21,0x26,0x25,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x2c,0x2d,
|
||||
0x3c,0x3d,0x32,0x38,0x39,0x33,0x30,0x31,0x30,0x31,0x32,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x34,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x27,0x3c,0x3d,
|
||||
0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x22,0x23,0x20,0x21,0x26,0x27,0x2c,0x2d,
|
||||
0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x32,0x33,0x30,0x31,0x32,0x33,0x30,0x31,0x36,0x27,0x3c,0x3d,
|
||||
0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x22,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x2c,0x2d,
|
||||
0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x26,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x27,0x3c,0x3d,
|
||||
0x20,0x21,0x11,0x2b,0x20,0x21,0x20,0x21,0x36,0x25,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x28,0x29,0x24,0x27,0x2c,0x2d,
|
||||
0x30,0x31,0x3a,0x3b,0x30,0x31,0x30,0x31,0x32,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x38,0x39,0x33,0x3c,0x3d,
|
||||
0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,
|
||||
0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
|
||||
0x33,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
|
||||
0x33,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,
|
||||
0x33,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,
|
||||
0x08,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xfc,
|
||||
0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f };
|
||||
40
levels/saltspray.h
Normal file
40
levels/saltspray.h
Normal file
@@ -0,0 +1,40 @@
|
||||
const unsigned char saltspray[ 1024 ] = {
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x10,0x2b,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3a,0x3b,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x22,0x28,0x29,0x23,0x20,0x21,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x26,0x35,0x34,0x27,0x30,0x31,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x36,0x25,0x24,0x37,0x20,0x21,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x32,0x38,0x39,0x33,0x30,0x31,
|
||||
0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,
|
||||
0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x22,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x26,0x27,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x20,
|
||||
0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x36,0x25,0x28,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x26,0x35,0x38,0x33,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x20,
|
||||
0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x20,0x21,0x36,0x37,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x30,0x31,0x32,0x33,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x20,
|
||||
0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x22,0x28,0x29,0x23,0x20,0x21,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x26,0x35,0x34,0x27,0x30,0x31,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x20,0x21,0x36,0x25,0x24,0x37,0x20,0x21,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x30,0x31,0x32,0x38,0x39,0x33,0x30,0x31,
|
||||
0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,
|
||||
0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,
|
||||
0x11,0x2b,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3a,0x3b,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
|
||||
0x1f,0xff,0x0f,0x0f,0xcf,0xff,0xff,0xff,
|
||||
0xf0,0xf0,0xcc,0x3f,0x0c,0xcf,0x00,0x00,
|
||||
0x0f,0xff,0x0c,0x33,0x00,0xcc,0x00,0x00,
|
||||
0x00,0x0f,0x03,0x33,0x00,0x00,0x00,0x00,
|
||||
0x00,0xff,0x03,0x33,0x00,0xc0,0x00,0x00,
|
||||
0xff,0xff,0xcc,0x33,0x00,0xcc,0x00,0x00,
|
||||
0x20,0xf0,0x0c,0x0f,0xcc,0xff,0xf0,0xf0,
|
||||
0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f };
|
||||
37
levels/splat_title.h
Normal file
37
levels/splat_title.h
Normal file
@@ -0,0 +1,37 @@
|
||||
const unsigned char splat_title[1024]={
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x06,0x00,0x07,0x08,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x0b,0x00,0x0c,0x0d,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x02,0x00,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x1a,0x1b,0x1c,0x1c,0x1c,0x1c,0x1d,0x1e,0x1f,0x20,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x03,0x21,0x22,0x23,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x26,0x27,0x28,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x29,0x2a,0x2b,0x2b,0x2c,0x2d,0x00,0x2e,0x2f,0x30,0x31,0x32,0x33,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1d,0x34,0x35,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x09,0x36,0x2b,0x2b,0x2b,0x2b,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x1c,0x1c,0x41,0x42,0x43,0x1c,0x1c,0x44,0x45,0x00,0x00,
|
||||
0x00,0x00,0x0e,0x02,0x00,0x46,0x47,0x2b,0x2b,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x1c,0x5a,0x5b,0x5c,0x5d,
|
||||
0x00,0x00,0x18,0x19,0x1a,0x5e,0x5f,0x2b,0x2b,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x02,0x73,0x74,0x75,
|
||||
0x00,0x00,0x00,0x25,0x1c,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x1c,0x8b,0x8c,0x8d,0x8e,0x00,
|
||||
0x30,0x31,0x8f,0x90,0x1c,0x1c,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x00,0x9e,0x9f,0xa0,0x1c,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0x00,
|
||||
0xa8,0x00,0x00,0xa9,0x1c,0x1c,0x1c,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0x00,0x00,0x00,
|
||||
0xba,0xbb,0xbc,0xbd,0x1c,0x1c,0x1c,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0x5b,0x5c,0x5d,0x00,0x00,0x00,0xc4,0xc5,0xc6,0xc7,0x00,0xc8,0xc9,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xca,0xcb,0xcc,0xcd,0xce,0x1c,0x1c,0xcf,0xd0,0xd1,0xd2,0xd3,0x02,0x73,0x74,0x75,0x00,0x00,0x00,0xd4,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xd7,0xd8,0x00,0xd9,0xda,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x8b,0x8c,0x8d,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x9e,0x9f,0xa0,0x1c,0x1c,0xdc,0xa3,0xa4,0xa5,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0xc4,0xc5,0xc6,0xc7,0x00,0xc8,0xc9,0x00,0x00,0x00,0xe0,0xe1,0xe2,0xe3,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0xd4,0xd5,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x00,0x00,0xe3,0xe4,0xe5,0xe1,0xe4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x06,0x00,0x07,0x08,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x0b,0x00,0x0c,0x0d,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x02,0x00,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x1a,0x1b,0x1c,0x1c,0x1c,0x1c,0x1d,0x1e,0x1f,0x20,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x26,0x27,0x28,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdd,0x30,0x31,0x8f,0x90,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1d,0x34,0x35,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xde,0xa8,0x00,0x00,0xa9,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x44,0x45,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdf,0xba,0xbb,0xbc,0xbd,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x5a,0x5b,0x5c,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xca,0xcb,0xcc,0xcd,0xce,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x72,0x02,0x73,0x74,
|
||||
|
||||
0x0,0x30,0x0,0x0,0x55,0x55,0x55,0x5d,0xc,0x0,0x0,0x4c,0x57,0x55,0x55,0xd5,0x0,0x0,0x0,0x4c,0x55,0x55,0x55,0x55,0x0,0x0,0x0,0x0,0x77,0x55,0x55,0xd5,0x0,0x0,0xc0,
|
||||
0xfc,0xff,0xff,0xbf,0xaa,0xc0,0xfc,0x3f,0xcf,0xaf,0xaa,0xaa,0xaa,0xcc,0x0,0x80,0xaf,0xaa,0xaa,0xaa,0xaa,0x0,0x0,0x8,0xa,0xa,0xa,0xa,0xa
|
||||
};
|
||||
|
||||
|
||||
40
levels/twofish.h
Normal file
40
levels/twofish.h
Normal file
@@ -0,0 +1,40 @@
|
||||
const unsigned char twofish[ 1024 ] = {
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x22,0x23,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x22,0x23,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x36,0x37,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x37,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x26,0x27,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x26,0x27,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x36,0x37,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x36,0x37,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x26,0x27,0x20,0x21,0x22,0x29,0x28,0x29,0x28,0x23,0x20,0x21,0x20,0x21,0x22,0x29,0x28,0x29,0x28,0x23,0x20,0x21,0x26,0x27,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x32,0x33,0x30,0x31,0x32,0x38,0x39,0x38,0x34,0x37,0x30,0x31,0x30,0x31,0x36,0x35,0x39,0x38,0x39,0x33,0x30,0x31,0x32,0x33,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x37,0x30,0x31,0x30,0x31,0x36,0x37,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x11,0x2b,0x26,0x27,0x20,0x21,0x20,0x21,0x26,0x27,0x10,0x2b,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3a,0x3b,0x36,0x37,0x30,0x31,0x30,0x31,0x36,0x37,0x3a,0x3b,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x36,0x37,0x30,0x31,0x30,0x31,0x36,0x37,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x22,0x23,0x20,0x21,0x22,0x29,0x28,0x29,0x24,0x27,0x20,0x21,0x20,0x21,0x26,0x25,0x28,0x29,0x28,0x23,0x20,0x21,0x22,0x23,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x36,0x37,0x30,0x31,0x32,0x38,0x39,0x38,0x39,0x33,0x30,0x31,0x30,0x31,0x32,0x38,0x39,0x38,0x39,0x33,0x30,0x31,0x36,0x37,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x26,0x27,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x20,0x21,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x20,0x21,0x26,0x27,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x36,0x37,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x30,0x31,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x30,0x31,0x36,0x37,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x26,0x27,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x26,0x27,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x32,0x33,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x32,0x33,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x20,0x21,0x2c,0x2d,
|
||||
0x3c,0x3d,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x30,0x31,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,0x2c,0x2d,
|
||||
0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,0x3c,0x3d,
|
||||
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0x33,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,
|
||||
0x33,0x00,0x0f,0x03,0x0c,0x0f,0x00,0xcc,
|
||||
0x33,0x00,0x40,0x00,0x00,0x20,0x00,0xcc,
|
||||
0x33,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,
|
||||
0x33,0x00,0x0f,0x03,0x0c,0x0f,0x00,0xcc,
|
||||
0xf3,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xfc,
|
||||
0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f };
|
||||
653
music.s
Normal file
653
music.s
Normal file
@@ -0,0 +1,653 @@
|
||||
;this file for FamiTone2 library generated by text2data tool
|
||||
|
||||
fork_music_data:
|
||||
.byte 7
|
||||
.word @instruments
|
||||
.word @samples-3
|
||||
.word @song0ch0,@song0ch1,@song0ch2,@song0ch3,@song0ch4,307,256
|
||||
.word @song1ch0,@song1ch1,@song1ch2,@song1ch3,@song1ch4,245,204
|
||||
.word @song2ch0,@song2ch1,@song2ch2,@song2ch3,@song2ch4,307,256
|
||||
.word @song3ch0,@song3ch1,@song3ch2,@song3ch3,@song3ch4,307,256
|
||||
.word @song4ch0,@song4ch1,@song4ch2,@song4ch3,@song4ch4,204,170
|
||||
.word @song5ch0,@song5ch1,@song5ch2,@song5ch3,@song5ch4,307,256
|
||||
.word @song6ch0,@song6ch1,@song6ch2,@song6ch3,@song6ch4,280,233
|
||||
|
||||
@instruments:
|
||||
.byte $30 ;instrument $00
|
||||
.word @env1,@env0,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $01
|
||||
.word @env2,@env13,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $02
|
||||
.word @env3,@env14,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $03
|
||||
.word @env4,@env15,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $04
|
||||
.word @env5,@env16,@env0
|
||||
.byte $00
|
||||
.byte $70 ;instrument $05
|
||||
.word @env6,@env17,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $06
|
||||
.word @env7,@env18,@env24
|
||||
.byte $00
|
||||
.byte $30 ;instrument $07
|
||||
.word @env8,@env0,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $08
|
||||
.word @env9,@env0,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $09
|
||||
.word @env9,@env0,@env0
|
||||
.byte $00
|
||||
.byte $70 ;instrument $0a
|
||||
.word @env9,@env0,@env0
|
||||
.byte $00
|
||||
.byte $b0 ;instrument $0b
|
||||
.word @env9,@env0,@env0
|
||||
.byte $00
|
||||
.byte $b0 ;instrument $0c
|
||||
.word @env9,@env0,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $0d
|
||||
.word @env10,@env0,@env0
|
||||
.byte $00
|
||||
.byte $70 ;instrument $0e
|
||||
.word @env10,@env0,@env0
|
||||
.byte $00
|
||||
.byte $70 ;instrument $0f
|
||||
.word @env11,@env0,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $10
|
||||
.word @env1,@env19,@env25
|
||||
.byte $00
|
||||
.byte $30 ;instrument $11
|
||||
.word @env1,@env20,@env0
|
||||
.byte $00
|
||||
.byte $b0 ;instrument $12
|
||||
.word @env9,@env21,@env0
|
||||
.byte $00
|
||||
.byte $30 ;instrument $14
|
||||
.word @env12,@env22,@env0
|
||||
.byte $00
|
||||
.byte $70 ;instrument $15
|
||||
.word @env5,@env23,@env0
|
||||
.byte $00
|
||||
.byte $b0 ;instrument $16
|
||||
.word @env5,@env23,@env0
|
||||
.byte $00
|
||||
.byte $70 ;instrument $17
|
||||
.word @env5,@env23,@env0
|
||||
.byte $00
|
||||
|
||||
@samples:
|
||||
@env0:
|
||||
.byte $c0,$00,$00
|
||||
@env1:
|
||||
.byte $cf,$00,$00
|
||||
@env2:
|
||||
.byte $c7,$c1,$c2,$c3,$c4,$c5,$c6,$c6,$c5,$02,$c4,$02,$c3,$02,$c2,$02
|
||||
.byte $c1,$02,$c0,$00,$12
|
||||
@env3:
|
||||
.byte $c7,$c4,$c2,$c1,$c1,$c0,$00,$05
|
||||
@env4:
|
||||
.byte $c9,$c6,$c5,$c4,$c3,$c3,$c2,$02,$c1,$03,$c0,$00,$0a
|
||||
@env5:
|
||||
.byte $c6,$c5,$c5,$c4,$c4,$c3,$c4,$c6,$c5,$c4,$c3,$c3,$c2,$00,$0c
|
||||
@env6:
|
||||
.byte $cb,$cb,$c8,$c7,$c5,$c5,$c1,$04,$c0,$00,$08
|
||||
@env7:
|
||||
.byte $cf,$06,$c0,$00,$02
|
||||
@env8:
|
||||
.byte $cf,$c0,$00,$01
|
||||
@env9:
|
||||
.byte $c4,$c7,$02,$c6,$c5,$00,$04
|
||||
@env10:
|
||||
.byte $c8,$c6,$02,$c5,$00,$03
|
||||
@env11:
|
||||
.byte $c4,$00,$00
|
||||
@env12:
|
||||
.byte $c7,$c7,$ca,$02,$c9,$c7,$c6,$c4,$c2,$00,$08
|
||||
@env13:
|
||||
.byte $c0,$c4,$00,$01
|
||||
@env14:
|
||||
.byte $c0,$c2,$c4,$00,$02
|
||||
@env15:
|
||||
.byte $c0,$c7,$c9,$cb,$00,$03
|
||||
@env16:
|
||||
.byte $c0,$c2,$05,$c0,$c2,$c4,$00,$05
|
||||
@env17:
|
||||
.byte $c0,$c4,$bc,$00,$02
|
||||
@env18:
|
||||
.byte $ea,$e3,$dd,$da,$d6,$d4,$d1,$00,$06
|
||||
@env19:
|
||||
.byte $c0,$bf,$be,$00,$02
|
||||
@env20:
|
||||
.byte $c0,$c1,$c1,$c2,$c2,$c3,$c3,$c4,$c4,$c5,$c5,$c6,$c6,$c7,$c7,$c8
|
||||
.byte $c8,$c9,$c9,$ca,$ca,$cb,$cb,$cc,$cc,$00,$18
|
||||
@env21:
|
||||
.byte $c0,$c0,$c7,$c7,$c0,$c0,$c7,$c7,$c0,$c0,$00,$09
|
||||
@env22:
|
||||
.byte $c0,$c3,$c8,$00,$00
|
||||
@env23:
|
||||
.byte $c0,$c0,$cc,$cc,$00,$00
|
||||
@env24:
|
||||
.byte $ac,$00,$00
|
||||
@env25:
|
||||
.byte $c0,$c0,$c1,$c2,$c4,$c7,$cc,$d1,$00,$07
|
||||
|
||||
|
||||
@song0ch0:
|
||||
.byte $fb,$04
|
||||
@song0ch0loop:
|
||||
@ref0:
|
||||
.byte $a0,$4a,$83,$00,$4a,$83,$00,$ef
|
||||
.byte $fd
|
||||
.word @song0ch0loop
|
||||
|
||||
@song0ch1:
|
||||
@song0ch1loop:
|
||||
@ref1:
|
||||
.byte $f9,$85
|
||||
.byte $fd
|
||||
.word @song0ch1loop
|
||||
|
||||
@song0ch2:
|
||||
@song0ch2loop:
|
||||
@ref2:
|
||||
.byte $f9,$85
|
||||
.byte $fd
|
||||
.word @song0ch2loop
|
||||
|
||||
@song0ch3:
|
||||
@song0ch3loop:
|
||||
@ref3:
|
||||
.byte $f9,$85
|
||||
.byte $fd
|
||||
.word @song0ch3loop
|
||||
|
||||
@song0ch4:
|
||||
@song0ch4loop:
|
||||
@ref4:
|
||||
.byte $f9,$85
|
||||
.byte $fd
|
||||
.word @song0ch4loop
|
||||
|
||||
|
||||
@song1ch0:
|
||||
.byte $fb,$04
|
||||
@song1ch0loop:
|
||||
@ref5:
|
||||
.byte $9c,$2d,$33,$37,$2c,$8b,$00,$9a,$28,$85,$28,$85,$34,$8f,$00,$9c
|
||||
.byte $2d,$33,$37,$2c,$8b,$00,$9a,$28,$85,$28,$85,$22,$91
|
||||
.byte $ff,$19
|
||||
.word @ref5
|
||||
.byte $ff,$19
|
||||
.word @ref5
|
||||
.byte $ff,$19
|
||||
.word @ref5
|
||||
@ref9:
|
||||
.byte $90,$49,$96,$4f,$53,$98,$48,$8b,$00,$90,$44,$85,$98,$44,$85,$92
|
||||
.byte $50,$8f,$00,$90,$49,$4f,$94,$53,$90,$48,$8b,$00,$44,$85,$98,$44
|
||||
.byte $85,$92,$3e,$87,$00,$87
|
||||
.byte $ff,$1b
|
||||
.word @ref9
|
||||
.byte $fd
|
||||
.word @song1ch0loop
|
||||
|
||||
@song1ch1:
|
||||
@song1ch1loop:
|
||||
@ref11:
|
||||
.byte $81,$9a,$2d,$33,$37,$2c,$89,$00,$9c,$1e,$85,$1e,$85,$12,$8f,$01
|
||||
.byte $9a,$2d,$33,$37,$2c,$89,$00,$9c,$1e,$85,$1e,$85,$18,$91
|
||||
.byte $ff,$1a
|
||||
.word @ref11
|
||||
@ref13:
|
||||
.byte $9e,$61,$5d,$59,$52,$a7,$00,$4f,$53,$61,$5d,$59,$52,$87,$00,$4d
|
||||
.byte $52,$93,$00,$a2,$60,$89
|
||||
@ref14:
|
||||
.byte $9e,$79,$75,$71,$6a,$a5,$01,$67,$6b,$79,$75,$71,$6a,$89,$65,$6a
|
||||
.byte $9f,$00
|
||||
@ref15:
|
||||
.byte $90,$31,$96,$37,$3b,$98,$30,$8b,$00,$90,$2c,$85,$98,$2c,$85,$92
|
||||
.byte $38,$8f,$00,$90,$31,$37,$94,$3b,$90,$30,$8b,$00,$2c,$85,$98,$2c
|
||||
.byte $85,$92,$26,$87,$00,$87
|
||||
.byte $ff,$1b
|
||||
.word @ref15
|
||||
.byte $fd
|
||||
.word @song1ch1loop
|
||||
|
||||
@song1ch2:
|
||||
@song1ch2loop:
|
||||
@ref17:
|
||||
.byte $00,$99,$80,$11,$01,$11,$01,$1c,$8f,$00,$9b,$11,$01,$11,$01,$0a
|
||||
.byte $8b,$00,$83
|
||||
@ref18:
|
||||
.byte $00,$99,$11,$01,$11,$01,$1c,$8f,$00,$9b,$11,$01,$11,$01,$0a,$8b
|
||||
.byte $00,$83
|
||||
@ref19:
|
||||
.byte $61,$5d,$59,$52,$a7,$00,$4f,$53,$61,$5d,$59,$52,$87,$00,$4d,$52
|
||||
.byte $93,$00,$a2,$52,$89
|
||||
@ref20:
|
||||
.byte $80,$79,$75,$71,$6a,$a5,$01,$67,$6b,$9e,$79,$80,$75,$71,$6a,$89
|
||||
.byte $65,$6a,$9f,$00
|
||||
@ref21:
|
||||
.byte $9e,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18
|
||||
.byte $00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14
|
||||
.byte $00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18
|
||||
.byte $00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14
|
||||
.byte $81
|
||||
@ref22:
|
||||
.byte $18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00
|
||||
.byte $14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00
|
||||
.byte $18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00
|
||||
.byte $14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$81
|
||||
.byte $fd
|
||||
.word @song1ch2loop
|
||||
|
||||
@song1ch3:
|
||||
@song1ch3loop:
|
||||
@ref23:
|
||||
.byte $82,$17,$84,$17,$8a,$0d,$84,$17,$82,$17,$84,$17,$8a,$0d,$84,$17
|
||||
.byte $82,$17,$84,$17,$8a,$0d,$84,$17,$82,$17,$84,$17,$8a,$0d,$84,$17
|
||||
.byte $82,$17,$84,$17,$8a,$0d,$84,$17,$82,$17,$84,$17,$8a,$0d,$84,$17
|
||||
.byte $82,$17,$84,$17,$8a,$0d,$84,$17,$82,$17,$84,$17,$8a,$0d,$8c,$16
|
||||
.byte $81
|
||||
.byte $ff,$21
|
||||
.word @ref23
|
||||
.byte $ff,$21
|
||||
.word @ref23
|
||||
.byte $ff,$21
|
||||
.word @ref23
|
||||
.byte $ff,$21
|
||||
.word @ref23
|
||||
.byte $ff,$21
|
||||
.word @ref23
|
||||
.byte $fd
|
||||
.word @song1ch3loop
|
||||
|
||||
@song1ch4:
|
||||
@song1ch4loop:
|
||||
@ref29:
|
||||
.byte $f9,$85
|
||||
@ref30:
|
||||
.byte $f9,$85
|
||||
@ref31:
|
||||
.byte $f9,$85
|
||||
@ref32:
|
||||
.byte $f9,$85
|
||||
@ref33:
|
||||
.byte $f9,$85
|
||||
@ref34:
|
||||
.byte $f9,$85
|
||||
.byte $fd
|
||||
.word @song1ch4loop
|
||||
|
||||
|
||||
@song2ch0:
|
||||
.byte $fb,$06
|
||||
@song2ch0loop:
|
||||
@ref35:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song2ch0loop
|
||||
|
||||
@song2ch1:
|
||||
@song2ch1loop:
|
||||
@ref36:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song2ch1loop
|
||||
|
||||
@song2ch2:
|
||||
@song2ch2loop:
|
||||
@ref37:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song2ch2loop
|
||||
|
||||
@song2ch3:
|
||||
@song2ch3loop:
|
||||
@ref38:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song2ch3loop
|
||||
|
||||
@song2ch4:
|
||||
@song2ch4loop:
|
||||
@ref39:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song2ch4loop
|
||||
|
||||
|
||||
@song3ch0:
|
||||
.byte $fb,$06
|
||||
@song3ch0loop:
|
||||
@ref40:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song3ch0loop
|
||||
|
||||
@song3ch1:
|
||||
@song3ch1loop:
|
||||
@ref41:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song3ch1loop
|
||||
|
||||
@song3ch2:
|
||||
@song3ch2loop:
|
||||
@ref42:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song3ch2loop
|
||||
|
||||
@song3ch3:
|
||||
@song3ch3loop:
|
||||
@ref43:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song3ch3loop
|
||||
|
||||
@song3ch4:
|
||||
@song3ch4loop:
|
||||
@ref44:
|
||||
.byte $00,$f9,$83
|
||||
.byte $fd
|
||||
.word @song3ch4loop
|
||||
|
||||
|
||||
@song4ch0:
|
||||
.byte $fb,$04
|
||||
@song4ch0loop:
|
||||
@ref45:
|
||||
.byte $94,$4a,$85,$01,$8e,$45,$94,$45,$92,$47,$01,$90,$41,$00,$9d
|
||||
@ref46:
|
||||
.byte $98,$4a,$85,$01,$8e,$45,$94,$45,$47,$01,$92,$41,$00,$89,$94,$3d
|
||||
.byte $92,$3d,$94,$41,$41,$00,$81
|
||||
@ref47:
|
||||
.byte $4e,$85,$01,$8e,$49,$94,$49,$92,$4b,$01,$90,$45,$00,$9d
|
||||
@ref48:
|
||||
.byte $98,$4e,$85,$01,$8e,$49,$94,$49,$4b,$01,$92,$45,$00,$91,$94,$51
|
||||
.byte $4f,$4c,$81
|
||||
.byte $fd
|
||||
.word @song4ch0loop
|
||||
|
||||
@song4ch1:
|
||||
@song4ch1loop:
|
||||
@ref49:
|
||||
.byte $96,$1a,$85,$01,$8e,$15,$96,$15,$17,$01,$11,$00,$9d
|
||||
@ref50:
|
||||
.byte $1a,$85,$01,$8e,$15,$96,$15,$17,$01,$11,$00,$89,$0d,$98,$0d,$96
|
||||
.byte $11,$11,$00,$81
|
||||
@ref51:
|
||||
.byte $1e,$85,$01,$8e,$19,$96,$19,$1b,$01,$15,$00,$9d
|
||||
@ref52:
|
||||
.byte $1e,$85,$01,$8e,$19,$96,$19,$1b,$01,$15,$00,$91,$94,$39,$37,$34
|
||||
.byte $81
|
||||
.byte $fd
|
||||
.word @song4ch1loop
|
||||
|
||||
@song4ch2:
|
||||
@song4ch2loop:
|
||||
@ref53:
|
||||
.byte $8c,$02,$85,$01,$8e,$2d,$8c,$03,$80,$2f,$01,$29,$8c,$02,$8d,$02
|
||||
.byte $8d
|
||||
@ref54:
|
||||
.byte $02,$85,$01,$8e,$2d,$8c,$03,$80,$2f,$01,$29,$8c,$02,$89,$80,$25
|
||||
.byte $8c,$03,$80,$29,$29,$00,$81
|
||||
@ref55:
|
||||
.byte $8c,$02,$85,$01,$8e,$31,$8c,$03,$80,$33,$01,$2d,$8c,$02,$8d,$02
|
||||
.byte $8d
|
||||
@ref56:
|
||||
.byte $02,$85,$01,$8e,$31,$8c,$03,$80,$33,$01,$2d,$8c,$02,$8d,$03,$94
|
||||
.byte $39,$37,$34,$81
|
||||
.byte $fd
|
||||
.word @song4ch2loop
|
||||
|
||||
@song4ch3:
|
||||
@song4ch3loop:
|
||||
@ref57:
|
||||
.byte $8e,$0c,$85,$8a,$15,$84,$17,$8e,$0d,$84,$17,$8a,$15,$84,$17,$8e
|
||||
.byte $0c,$85,$8a,$15,$84,$17,$8e,$0d,$86,$19,$8a,$15,$84,$16,$81
|
||||
.byte $ff,$11
|
||||
.word @ref57
|
||||
.byte $ff,$11
|
||||
.word @ref57
|
||||
.byte $ff,$11
|
||||
.word @ref57
|
||||
.byte $fd
|
||||
.word @song4ch3loop
|
||||
|
||||
@song4ch4:
|
||||
@song4ch4loop:
|
||||
@ref61:
|
||||
.byte $bf
|
||||
@ref62:
|
||||
.byte $bf
|
||||
@ref63:
|
||||
.byte $bf
|
||||
@ref64:
|
||||
.byte $bf
|
||||
.byte $fd
|
||||
.word @song4ch4loop
|
||||
|
||||
|
||||
@song5ch0:
|
||||
.byte $fb,$06
|
||||
@ref65:
|
||||
.byte $96,$38,$85,$01,$92,$35,$90,$38,$85,$01,$94,$34,$81
|
||||
@ref66:
|
||||
.byte $90,$38,$85,$01,$92,$35,$90,$39,$a4,$39,$94,$2f,$96,$34,$81
|
||||
@ref67:
|
||||
.byte $90,$38,$85,$01,$92,$35,$96,$38,$85,$01,$92,$34,$81
|
||||
@ref68:
|
||||
.byte $94,$39,$96,$3f,$43,$47,$38,$85,$01,$34,$81
|
||||
@ref69:
|
||||
.byte $38,$85,$01,$35,$38,$85,$01,$34,$81
|
||||
@ref70:
|
||||
.byte $38,$85,$01,$35,$39,$a4,$39,$96,$2f,$34,$81
|
||||
@ref71:
|
||||
.byte $39,$01,$39,$35,$2f,$01,$2f,$34,$81
|
||||
@ref72:
|
||||
.byte $39,$3f,$43,$47,$4d,$47,$43,$3e,$81
|
||||
@song5ch0loop:
|
||||
@ref73:
|
||||
.byte $92,$50,$4c,$46,$42,$46,$42,$3e,$38,$3e,$38,$34,$2e,$34,$2e,$2a
|
||||
.byte $26
|
||||
@ref74:
|
||||
.byte $50,$4c,$46,$42,$46,$42,$3e,$38,$3e,$38,$34,$2e,$34,$2e,$2a,$26
|
||||
.byte $ff,$10
|
||||
.word @ref74
|
||||
.byte $ff,$10
|
||||
.word @ref74
|
||||
.byte $fd
|
||||
.word @song5ch0loop
|
||||
|
||||
@song5ch1:
|
||||
@ref77:
|
||||
.byte $9e,$26,$8d,$2a,$8d
|
||||
@ref78:
|
||||
.byte $20,$9d
|
||||
@ref79:
|
||||
.byte $26,$8d,$2a,$8d
|
||||
@ref80:
|
||||
.byte $20,$8d,$1a,$8d
|
||||
@ref81:
|
||||
.byte $26,$8d,$2a,$8d
|
||||
@ref82:
|
||||
.byte $20,$9d
|
||||
@ref83:
|
||||
.byte $1a,$9d
|
||||
@ref84:
|
||||
.byte $18,$8d,$1c,$8d
|
||||
@song5ch1loop:
|
||||
@ref85:
|
||||
.byte $9a,$20,$83,$26,$83,$2b,$2e,$83,$34,$83,$38,$81
|
||||
@ref86:
|
||||
.byte $20,$83,$26,$83,$2b,$2e,$83,$34,$83,$38,$81
|
||||
.byte $ff,$0b
|
||||
.word @ref86
|
||||
@ref88:
|
||||
.byte $21,$21,$27,$2b,$2f,$2e,$34,$83,$38,$81
|
||||
.byte $fd
|
||||
.word @song5ch1loop
|
||||
|
||||
@song5ch2:
|
||||
@ref89:
|
||||
.byte $8c,$02,$9d
|
||||
@ref90:
|
||||
.byte $9b,$02,$81
|
||||
@ref91:
|
||||
.byte $02,$9d
|
||||
@ref92:
|
||||
.byte $97,$02,$02,$02,$02
|
||||
@ref93:
|
||||
.byte $02,$9d
|
||||
@ref94:
|
||||
.byte $9b,$02,$81
|
||||
@ref95:
|
||||
.byte $02,$9d
|
||||
.byte $ff,$05
|
||||
.word @ref92
|
||||
@song5ch2loop:
|
||||
@ref97:
|
||||
.byte $8c,$02,$85,$02,$85,$02,$85,$02,$85
|
||||
@ref98:
|
||||
.byte $02,$85,$02,$85,$02,$85,$02,$85
|
||||
.byte $ff,$08
|
||||
.word @ref98
|
||||
.byte $ff,$08
|
||||
.word @ref98
|
||||
.byte $fd
|
||||
.word @song5ch2loop
|
||||
|
||||
@song5ch3:
|
||||
@ref101:
|
||||
.byte $9f
|
||||
@ref102:
|
||||
.byte $9f
|
||||
@ref103:
|
||||
.byte $9f
|
||||
@ref104:
|
||||
.byte $9f
|
||||
@ref105:
|
||||
.byte $9f
|
||||
@ref106:
|
||||
.byte $9f
|
||||
@ref107:
|
||||
.byte $9f
|
||||
@ref108:
|
||||
.byte $9f
|
||||
@song5ch3loop:
|
||||
@ref109:
|
||||
.byte $83,$86,$1e,$85,$1e,$85,$1e,$85,$1e,$81
|
||||
@ref110:
|
||||
.byte $83,$1e,$85,$1e,$85,$1e,$85,$1e,$81
|
||||
.byte $ff,$09
|
||||
.word @ref110
|
||||
.byte $ff,$09
|
||||
.word @ref110
|
||||
.byte $fd
|
||||
.word @song5ch3loop
|
||||
|
||||
@song5ch4:
|
||||
@ref113:
|
||||
.byte $9f
|
||||
@ref114:
|
||||
.byte $9f
|
||||
@ref115:
|
||||
.byte $9f
|
||||
@ref116:
|
||||
.byte $9f
|
||||
@ref117:
|
||||
.byte $9f
|
||||
@ref118:
|
||||
.byte $9f
|
||||
@ref119:
|
||||
.byte $9f
|
||||
@ref120:
|
||||
.byte $9f
|
||||
@song5ch4loop:
|
||||
@ref121:
|
||||
.byte $9f
|
||||
@ref122:
|
||||
.byte $9f
|
||||
@ref123:
|
||||
.byte $9f
|
||||
@ref124:
|
||||
.byte $9f
|
||||
.byte $fd
|
||||
.word @song5ch4loop
|
||||
|
||||
|
||||
@song6ch0:
|
||||
@song6ch0loop:
|
||||
.byte $fb,$03
|
||||
@ref125:
|
||||
.byte $af
|
||||
@ref126:
|
||||
.byte $8f,$a6,$32,$8b,$a8,$42,$83,$aa,$42,$8d,$a8,$3e,$87,$aa,$3e,$83
|
||||
.byte $a8,$3e,$89,$a6,$32,$bd,$2e,$91,$a8,$34,$87,$34,$83,$34,$87,$aa
|
||||
.byte $34,$83,$a8,$3e,$89,$a6,$2e,$ad
|
||||
@ref127:
|
||||
.byte $8f,$32,$8b,$a8,$42,$83,$aa,$42,$8d,$a8,$3e,$87,$aa,$3e,$83,$a8
|
||||
.byte $3e,$89,$a6,$32,$bd,$2e,$91,$aa,$3e,$87,$3e,$83,$ac,$3e,$87,$a8
|
||||
.byte $42,$83,$46,$89,$a6,$2e,$ab
|
||||
.byte $fd
|
||||
.word @song6ch0loop
|
||||
|
||||
@song6ch1:
|
||||
@song6ch1loop:
|
||||
@ref128:
|
||||
.byte $af
|
||||
@ref129:
|
||||
.byte $8f,$a6,$32,$87,$a8,$42,$83,$aa,$42,$8d,$a8,$3e,$87,$aa,$3e,$83
|
||||
.byte $a8,$3e,$8d,$aa,$38,$ad,$00,$8d,$a6,$2e,$8d,$a8,$34,$87,$34,$83
|
||||
.byte $34,$87,$aa,$34,$83,$a8,$3e,$8d,$38,$ad
|
||||
@ref130:
|
||||
.byte $00,$8d,$a6,$32,$87,$a8,$42,$83,$42,$8d,$aa,$3e,$87,$a8,$3e,$83
|
||||
.byte $3e,$8d,$ac,$46,$ad,$00,$8d,$a6,$2e,$8d,$aa,$3e,$87,$3e,$83,$ac
|
||||
.byte $3e,$87,$a8,$42,$83,$46,$8d,$aa,$42,$9d,$00,$8b
|
||||
.byte $fd
|
||||
.word @song6ch1loop
|
||||
|
||||
@song6ch2:
|
||||
@song6ch2loop:
|
||||
@ref131:
|
||||
.byte $97,$8c,$02,$85,$02,$85,$02,$85
|
||||
@ref132:
|
||||
.byte $9f,$8c,$02,$bd,$02,$bd,$02,$bd,$02,$9d
|
||||
@ref133:
|
||||
.byte $9f,$02,$bd,$02,$bd,$02,$bd,$02,$9b
|
||||
.byte $fd
|
||||
.word @song6ch2loop
|
||||
|
||||
@song6ch3:
|
||||
@song6ch3loop:
|
||||
@ref134:
|
||||
.byte $8a,$18,$84,$14,$88,$18,$84,$14,$8a,$18,$84,$14,$88,$18,$84,$14
|
||||
.byte $8a,$18,$9d
|
||||
@ref135:
|
||||
.byte $82,$14,$8d,$84,$14,$9d,$14,$9d,$14,$9d,$14,$9d,$14,$9d,$14,$9d
|
||||
.byte $14,$9d,$14,$87,$8a,$16,$16,$81
|
||||
@ref136:
|
||||
.byte $16,$8d,$84,$14,$9d,$14,$9d,$14,$9d,$14,$9d,$14,$9d,$14,$10,$86
|
||||
.byte $15,$88,$11,$82,$14,$91,$84,$14,$9d,$14,$85,$8a,$16,$16,$81
|
||||
.byte $fd
|
||||
.word @song6ch3loop
|
||||
|
||||
@song6ch4:
|
||||
@song6ch4loop:
|
||||
@ref137:
|
||||
.byte $af
|
||||
@ref138:
|
||||
.byte $f9,$f9,$8b
|
||||
@ref139:
|
||||
.byte $f9,$f9,$89
|
||||
.byte $fd
|
||||
.word @song6ch4loop
|
||||
296
neslib.h
Normal file
296
neslib.h
Normal file
@@ -0,0 +1,296 @@
|
||||
//NES hardware-dependent functions by Shiru (shiru@mail.ru)
|
||||
//Feel free to do anything you want with this code, consider it Public Domain
|
||||
|
||||
//Versions history:
|
||||
// 030914 - minor fixes in the vram update system
|
||||
// 310814 - added vram_flush_update
|
||||
// 120414 - removed adr argument from vram_write and vram_read,
|
||||
// unrle_vram renamed to vram_unrle, with adr argument removed
|
||||
// 060414 - many fixes and improvements, including sequental VRAM updates
|
||||
// previous versions were created since mid-2011, there were many updates
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//set bg and spr palettes, data is 32 bytes array
|
||||
|
||||
void __fastcall__ pal_all(const char *data);
|
||||
|
||||
//set bg palette only, data is 16 bytes array
|
||||
|
||||
void __fastcall__ pal_bg(const char *data);
|
||||
|
||||
//set spr palette only, data is 16 bytes array
|
||||
|
||||
void __fastcall__ pal_spr(const char *data);
|
||||
|
||||
//set a palette entry, index is 0..31
|
||||
|
||||
void __fastcall__ pal_col(unsigned char index,unsigned char color);
|
||||
|
||||
//reset palette to $0f
|
||||
|
||||
void __fastcall__ pal_clear(void);
|
||||
|
||||
//set virtual bright both for sprites and background, 0 is black, 4 is normal, 8 is white
|
||||
|
||||
void __fastcall__ pal_bright(unsigned char bright);
|
||||
|
||||
//set virtual bright for sprites only
|
||||
|
||||
void __fastcall__ pal_spr_bright(unsigned char bright);
|
||||
|
||||
//set virtual bright for sprites background only
|
||||
|
||||
void __fastcall__ pal_bg_bright(unsigned char bright);
|
||||
|
||||
|
||||
|
||||
//wait actual TV frame, 50hz for PAL, 60hz for NTSC
|
||||
|
||||
void __fastcall__ ppu_wait_nmi(void);
|
||||
|
||||
//wait virtual frame, it is always 50hz, frame-to-frame in PAL, frameskip in NTSC
|
||||
|
||||
void __fastcall__ ppu_wait_frame(void);
|
||||
|
||||
//turn off rendering, nmi still enabled when rendering is disabled
|
||||
|
||||
void __fastcall__ ppu_off(void);
|
||||
|
||||
//turn on bg, spr
|
||||
|
||||
void __fastcall__ ppu_on_all(void);
|
||||
|
||||
//turn on bg only
|
||||
|
||||
void __fastcall__ ppu_on_bg(void);
|
||||
|
||||
//turn on spr only
|
||||
|
||||
void __fastcall__ ppu_on_spr(void);
|
||||
|
||||
//set PPU_MASK directly
|
||||
|
||||
void __fastcall__ ppu_mask(unsigned char mask);
|
||||
|
||||
//get current video system, 0 for PAL, not 0 for NTSC
|
||||
|
||||
unsigned char __fastcall__ ppu_system(void);
|
||||
|
||||
|
||||
|
||||
//clear OAM buffer, all the sprites are hidden
|
||||
|
||||
void __fastcall__ oam_clear(void);
|
||||
|
||||
//set sprite display mode, 0 for 8x8 sprites, 1 for 8x16 sprites
|
||||
|
||||
void __fastcall__ oam_size(unsigned char size);
|
||||
|
||||
//set sprite in OAM buffer, chrnum is tile, attr is attribute, sprid is offset in OAM in bytes
|
||||
//returns sprid+4, which is offset for a next sprite
|
||||
|
||||
unsigned char __fastcall__ oam_spr(unsigned char x,unsigned char y,unsigned char chrnum,unsigned char attr,unsigned char sprid);
|
||||
|
||||
//set metasprite in OAM buffer
|
||||
//meta sprite is a const unsigned char array, it contains four bytes per sprite
|
||||
//in order x offset, y offset, tile, attribute
|
||||
//x=128 is end of a meta sprite
|
||||
//returns sprid+4, which is offset for a next sprite
|
||||
|
||||
unsigned char __fastcall__ oam_meta_spr(unsigned char x,unsigned char y,unsigned char sprid,const unsigned char *data);
|
||||
|
||||
//hide all remaining sprites from given offset
|
||||
|
||||
void __fastcall__ oam_hide_rest(unsigned char sprid);
|
||||
|
||||
|
||||
|
||||
//play a music in FamiTone format
|
||||
|
||||
void __fastcall__ music_play(unsigned char song);
|
||||
|
||||
//stop music
|
||||
|
||||
void __fastcall__ music_stop(void);
|
||||
|
||||
//pause and unpause music
|
||||
|
||||
void __fastcall__ music_pause(unsigned char pause);
|
||||
|
||||
//play FamiTone sound effect on channel 0..3
|
||||
|
||||
void __fastcall__ sfx_play(unsigned char sound,unsigned char channel);
|
||||
|
||||
//play a DPCM sample, 1..63
|
||||
|
||||
void __fastcall__ sample_play(unsigned char sample);
|
||||
|
||||
|
||||
|
||||
//poll controller and return flags like PAD_LEFT etc, input is pad number (0 or 1)
|
||||
|
||||
unsigned char __fastcall__ pad_poll(unsigned char pad);
|
||||
|
||||
//poll controller in trigger mode, a flag is set only on button down, not hold
|
||||
//if you need to poll the pad in both normal and trigger mode, poll it in the
|
||||
//trigger mode for first, then use pad_state
|
||||
|
||||
unsigned char __fastcall__ pad_trigger(unsigned char pad);
|
||||
|
||||
//get previous pad state without polling ports
|
||||
|
||||
unsigned char __fastcall__ pad_state(unsigned char pad);
|
||||
|
||||
|
||||
//set scroll, including rhe top bits
|
||||
//it is always applied at beginning of a TV frame, not at the function call
|
||||
|
||||
void __fastcall__ scroll(unsigned int x,unsigned int y);
|
||||
|
||||
//set scroll after screen split invoked by the sprite 0 hit
|
||||
//warning: all CPU time between the function call and the actual split point will be wasted!
|
||||
//warning: the program loop has to fit into the frame time, ppu_wait_frame should not be used
|
||||
// otherwise empty frames without split will be inserted, resulting in jumpy screen
|
||||
//warning: only X scroll could be changed in this version
|
||||
|
||||
void __fastcall__ split(unsigned int x,unsigned int y);
|
||||
|
||||
|
||||
//select current chr bank for sprites, 0..1
|
||||
|
||||
void __fastcall__ bank_spr(unsigned char n);
|
||||
|
||||
//select current chr bank for background, 0..1
|
||||
|
||||
void __fastcall__ bank_bg(unsigned char n);
|
||||
|
||||
|
||||
|
||||
//get random number 0..255 or 0..65535
|
||||
|
||||
unsigned char __fastcall__ rand8(void);
|
||||
unsigned int __fastcall__ rand16(void);
|
||||
|
||||
//set random seed
|
||||
|
||||
void __fastcall__ set_rand(unsigned int seed);
|
||||
|
||||
|
||||
|
||||
//when display is enabled, vram access could only be done with this vram update system
|
||||
//the function sets a pointer to the update buffer that contains data and addresses
|
||||
//in a special format. It allows to write non-sequental bytes, as well as horizontal or
|
||||
//vertical nametable sequences.
|
||||
//buffer pointer could be changed during rendering, but it only takes effect on a new frame
|
||||
//number of transferred bytes is limited by vblank time
|
||||
//to disable updates, call this function with NULL pointer
|
||||
|
||||
//the update data format:
|
||||
// MSB, LSB, byte for a non-sequental write
|
||||
// MSB|NT_UPD_HORZ, LSB, LEN, [bytes] for a horizontal sequence
|
||||
// MSB|NT_UPD_VERT, LSB, LEN, [bytes] for a vertical sequence
|
||||
// NT_UPD_EOF to mark end of the buffer
|
||||
|
||||
//length of this data should be under 256 bytes
|
||||
|
||||
void __fastcall__ set_vram_update(unsigned char *buf);
|
||||
|
||||
//all following vram functions only work when display is disabled
|
||||
|
||||
//do a series of VRAM writes, the same format as for set_vram_update, but writes done right away
|
||||
|
||||
void __fastcall__ flush_vram_update(unsigned char *buf);
|
||||
|
||||
//set vram pointer to write operations if you need to write some data to vram
|
||||
|
||||
void __fastcall__ vram_adr(unsigned int adr);
|
||||
|
||||
//put a byte at current vram address, works only when rendering is turned off
|
||||
|
||||
void __fastcall__ vram_put(unsigned char n);
|
||||
|
||||
//fill a block with a byte at current vram address, works only when rendering is turned off
|
||||
|
||||
void __fastcall__ vram_fill(unsigned char n,unsigned int len);
|
||||
|
||||
//set vram autoincrement, 0 for +1 and not 0 for +32
|
||||
|
||||
void __fastcall__ vram_inc(unsigned char n);
|
||||
|
||||
//read a block from current address of vram, works only when rendering is turned off
|
||||
|
||||
void __fastcall__ vram_read(unsigned char *dst,unsigned int size);
|
||||
|
||||
//write a block to current address of vram, works only when rendering is turned off
|
||||
|
||||
void __fastcall__ vram_write(const unsigned char *src,unsigned int size);
|
||||
|
||||
|
||||
//unpack RLE data to current address of vram, mostly used for nametables
|
||||
|
||||
void __fastcall__ vram_unrle(const unsigned char *data);
|
||||
|
||||
|
||||
|
||||
//like a normal memcpy, but does not return anything
|
||||
|
||||
void __fastcall__ memcpy(void *dst,void *src,unsigned int len);
|
||||
|
||||
//like memset, but does not return anything
|
||||
|
||||
void __fastcall__ memfill(void *dst,unsigned char value,unsigned int len);
|
||||
|
||||
//delay for N frames
|
||||
|
||||
void __fastcall__ delay(unsigned char frames);
|
||||
|
||||
|
||||
|
||||
#define PAD_A 0x01
|
||||
#define PAD_B 0x02
|
||||
#define PAD_SELECT 0x04
|
||||
#define PAD_START 0x08
|
||||
#define PAD_UP 0x10
|
||||
#define PAD_DOWN 0x20
|
||||
#define PAD_LEFT 0x40
|
||||
#define PAD_RIGHT 0x80
|
||||
|
||||
#define OAM_FLIP_V 0x80
|
||||
#define OAM_FLIP_H 0x40
|
||||
#define OAM_BEHIND 0x20
|
||||
|
||||
#define MAX(x1,x2) ((x1)<(x2)?(x2):(x1))
|
||||
#define MIN(x1,x2) ((x1)<(x2)?(x1):(x2))
|
||||
|
||||
#define MASK_SPR 0x10
|
||||
#define MASK_BG 0x08
|
||||
#define MASK_EDGE_SPR 0x04
|
||||
#define MASK_EDGE_BG 0x02
|
||||
|
||||
#define NAMETABLE_A 0x2000
|
||||
#define NAMETABLE_B 0x2400
|
||||
#define NAMETABLE_C 0x2800
|
||||
#define NAMETABLE_D 0x2c00
|
||||
|
||||
#define NULL 0
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define NT_UPD_HORZ 0x40
|
||||
#define NT_UPD_VERT 0x80
|
||||
#define NT_UPD_EOF 0xff
|
||||
|
||||
//macro to calculate nametable address from X,Y in compile time
|
||||
|
||||
#define NTADR_A(x,y) (NAMETABLE_A|(((y)<<5)|(x)))
|
||||
#define NTADR_B(x,y) (NAMETABLE_B|(((y)<<5)|(x)))
|
||||
#define NTADR_C(x,y) (NAMETABLE_C|(((y)<<5)|(x)))
|
||||
#define NTADR_D(x,y) (NAMETABLE_D|(((y)<<5)|(x)))
|
||||
|
||||
//macro to get MSB and LSB
|
||||
|
||||
#define MSB(x) (((x)>>8))
|
||||
#define LSB(x) (((x)&0xff))
|
||||
59
nrom.cfg
Normal file
59
nrom.cfg
Normal file
@@ -0,0 +1,59 @@
|
||||
MEMORY {
|
||||
|
||||
ZP: start = $0000, size = $0100, type = rw, define = yes;
|
||||
HEADER: start = $0000, size = $0010, file = %O ,fill = yes;
|
||||
PRG: start = $8000, size = $7fc0, file = %O ,fill = yes, define = yes;
|
||||
DMC: start = $ffc0, size = $003a, file = %O, fill = yes;
|
||||
VECTORS: start = $fffa, size = $0006, file = %O, fill = yes;
|
||||
CHR: start = $0000, size = $2000, file = %O, fill = yes;
|
||||
RAM: start = $0300, size = $0500, define = yes;
|
||||
|
||||
# Use this definition instead if you going to use extra 8K RAM
|
||||
# RAM: start = $6000, size = $2000, define = yes;
|
||||
}
|
||||
|
||||
SEGMENTS {
|
||||
|
||||
HEADER: load = HEADER, type = ro;
|
||||
STARTUP: load = PRG, type = ro, define = yes;
|
||||
LOWCODE: load = PRG, type = ro, optional = yes;
|
||||
INIT: load = PRG, type = ro, define = yes, optional = yes;
|
||||
CODE: load = PRG, type = ro, define = yes;
|
||||
RODATA: load = PRG, type = ro, define = yes;
|
||||
DATA: load = PRG, run = RAM, type = rw, define = yes;
|
||||
VECTORS: load = VECTORS, type = rw;
|
||||
SAMPLES: load = DMC, type = rw;
|
||||
CHARS: load = CHR, type = rw;
|
||||
BSS: load = RAM, type = bss, define = yes;
|
||||
HEAP: load = RAM, type = bss, optional = yes;
|
||||
ZEROPAGE: load = ZP, type = zp;
|
||||
|
||||
}
|
||||
|
||||
FEATURES {
|
||||
|
||||
CONDES: segment = INIT,
|
||||
type = constructor,
|
||||
label = __CONSTRUCTOR_TABLE__,
|
||||
count = __CONSTRUCTOR_COUNT__;
|
||||
CONDES: segment = RODATA,
|
||||
type = destructor,
|
||||
label = __DESTRUCTOR_TABLE__,
|
||||
count = __DESTRUCTOR_COUNT__;
|
||||
CONDES: type = interruptor,
|
||||
segment = RODATA,
|
||||
label = __INTERRUPTOR_TABLE__,
|
||||
count = __INTERRUPTOR_COUNT__;
|
||||
|
||||
}
|
||||
|
||||
SYMBOLS {
|
||||
|
||||
__STACKSIZE__ = $0500; # 5 pages stack
|
||||
|
||||
NES_MAPPER = 0; # mapper number
|
||||
NES_PRG_BANKS = 2; # number of 16K PRG banks, change to 2 for NROM256
|
||||
NES_CHR_BANKS = 1; # number of 8K CHR banks
|
||||
NES_MIRRORING = 0; # 0 horizontal, 1 vertical, 8 four screen
|
||||
|
||||
}
|
||||
BIN
runtime.lib
Normal file
BIN
runtime.lib
Normal file
Binary file not shown.
BIN
sound/music.ftm
Normal file
BIN
sound/music.ftm
Normal file
Binary file not shown.
BIN
sound/sounds.ftm
Normal file
BIN
sound/sounds.ftm
Normal file
Binary file not shown.
52
sounds.s
Normal file
52
sounds.s
Normal file
@@ -0,0 +1,52 @@
|
||||
;this file for FamiTone2 libary generated by nsf2data tool
|
||||
|
||||
sounds:
|
||||
.word @sfx_ntsc_0,@sfx_pal_0
|
||||
.word @sfx_ntsc_1,@sfx_pal_1
|
||||
.word @sfx_ntsc_2,@sfx_pal_2
|
||||
.word @sfx_ntsc_3,@sfx_pal_3
|
||||
|
||||
@sfx_ntsc_0:
|
||||
.byte $80,$7f,$81,$ab,$82,$01,$04,$81,$3f,$04,$81,$1c,$04,$81,$d5,$82
|
||||
.byte $00,$04,$81,$9f,$04,$81,$8e,$04,$80,$74,$81,$ab,$82,$01,$04,$81
|
||||
.byte $3f,$04,$81,$1c,$04,$81,$d5,$82,$00,$04,$81,$9f,$04,$81,$8e,$04
|
||||
.byte $80,$71,$81,$ab,$82,$01,$04,$81,$3f,$04,$81,$1c,$04,$81,$d5,$82
|
||||
.byte $00,$04,$81,$9f,$04,$81,$8e,$04,$80,$30,$00
|
||||
@sfx_ntsc_1:
|
||||
.byte $80,$3f,$81,$ab,$82,$01,$01,$81,$3f,$01,$81,$2d,$01,$81,$1c,$01
|
||||
.byte $80,$32,$81,$ab,$01,$81,$3f,$01,$81,$2d,$01,$81,$1c,$01,$80,$30
|
||||
.byte $00
|
||||
@sfx_ntsc_2:
|
||||
.byte $80,$38,$81,$34,$82,$00,$01,$80,$3a,$81,$27,$01,$80,$3c,$81,$23
|
||||
.byte $01,$80,$3e,$81,$34,$01,$80,$3f,$81,$27,$01,$81,$23,$01,$81,$34
|
||||
.byte $01,$81,$27,$01,$80,$32,$81,$23,$01,$81,$34,$01,$81,$27,$01,$81
|
||||
.byte $23,$01,$81,$34,$01,$81,$27,$01,$81,$23,$01,$81,$34,$01,$81,$27
|
||||
.byte $01,$81,$23,$01,$81,$34,$01,$81,$27,$01,$81,$23,$01,$80,$30,$00
|
||||
@sfx_ntsc_3:
|
||||
.byte $83,$38,$84,$46,$85,$00,$01,$83,$3a,$84,$42,$01,$83,$3c,$84,$5e
|
||||
.byte $01,$83,$3e,$84,$46,$01,$83,$3f,$84,$42,$01,$84,$5e,$01,$84,$46
|
||||
.byte $01,$84,$42,$01,$83,$32,$84,$5e,$01,$84,$46,$01,$84,$42,$01,$84
|
||||
.byte $5e,$01,$84,$46,$01,$84,$42,$01,$84,$5e,$01,$84,$46,$01,$84,$42
|
||||
.byte $01,$84,$5e,$01,$84,$46,$01,$84,$42,$01,$84,$5e,$01,$83,$30,$00
|
||||
@sfx_pal_0:
|
||||
.byte $80,$7f,$81,$8c,$82,$01,$04,$81,$29,$03,$81,$08,$03,$81,$c6,$82
|
||||
.byte $00,$04,$81,$94,$03,$81,$84,$03,$80,$74,$81,$8c,$82,$01,$04,$81
|
||||
.byte $29,$03,$81,$08,$03,$81,$c6,$82,$00,$04,$81,$94,$03,$81,$84,$03
|
||||
.byte $80,$71,$81,$8c,$82,$01,$04,$81,$29,$03,$81,$08,$03,$81,$c6,$82
|
||||
.byte $00,$04,$81,$94,$03,$81,$84,$03,$80,$30,$00
|
||||
@sfx_pal_1:
|
||||
.byte $80,$3f,$81,$8c,$82,$01,$01,$81,$29,$01,$81,$18,$01,$81,$08,$01
|
||||
.byte $80,$32,$81,$8c,$01,$81,$29,$01,$81,$18,$01,$81,$08,$01,$80,$30
|
||||
.byte $00
|
||||
@sfx_pal_2:
|
||||
.byte $80,$38,$81,$31,$82,$00,$01,$80,$3a,$81,$24,$01,$80,$3c,$81,$20
|
||||
.byte $01,$80,$3e,$81,$31,$01,$80,$3f,$81,$24,$01,$81,$20,$01,$81,$31
|
||||
.byte $01,$81,$24,$01,$80,$32,$81,$20,$01,$81,$31,$01,$81,$24,$01,$81
|
||||
.byte $20,$01,$81,$31,$01,$81,$24,$01,$81,$20,$01,$81,$31,$01,$81,$24
|
||||
.byte $01,$81,$20,$01,$81,$31,$01,$81,$24,$01,$81,$20,$01,$80,$30,$00
|
||||
@sfx_pal_3:
|
||||
.byte $83,$38,$84,$41,$85,$00,$01,$83,$3a,$84,$3e,$01,$83,$3c,$84,$57
|
||||
.byte $01,$83,$3e,$84,$41,$01,$83,$3f,$84,$3e,$01,$84,$57,$01,$84,$41
|
||||
.byte $01,$84,$3e,$01,$83,$32,$84,$57,$01,$84,$41,$01,$84,$3e,$01,$84
|
||||
.byte $57,$01,$84,$41,$01,$84,$3e,$01,$84,$57,$01,$84,$41,$01,$84,$3e
|
||||
.byte $01,$84,$57,$01,$84,$41,$01,$84,$3e,$01,$84,$57,$01,$83,$30,$00
|
||||
BIN
tileset.chr
Normal file
BIN
tileset.chr
Normal file
Binary file not shown.
33
util/bin-to-h.py
Normal file
33
util/bin-to-h.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import sys
|
||||
|
||||
use_rle = False
|
||||
if "--rle" in sys.argv:
|
||||
use_rle = True
|
||||
|
||||
out = []
|
||||
|
||||
previous = "NO"
|
||||
count = 0
|
||||
|
||||
with open(sys.argv[1]) as f:
|
||||
x = f.read()
|
||||
for i in x:
|
||||
c = hex(ord(i))
|
||||
if len(c) == len('0x0'):
|
||||
c = c[:2] + '0' + c[2]
|
||||
if use_rle:
|
||||
if c == previous:
|
||||
count += 1
|
||||
else:
|
||||
if count:
|
||||
out.append( hex(count) )
|
||||
out.append( previous )
|
||||
count = 1
|
||||
previous = c
|
||||
else:
|
||||
out.append( c )
|
||||
if use_rle and count:
|
||||
out.append( hex(count) )
|
||||
out.append( previous )
|
||||
|
||||
print "const unsigned char __rename_me__[",len(out),"] = {",",".join(out),"};"
|
||||
26
util/credits.sh
Normal file
26
util/credits.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
function credit_line() {
|
||||
echo -n "const unsigned char credits_$1[] = ";
|
||||
echo "$2" | python ebcdic.py
|
||||
}
|
||||
|
||||
|
||||
# " "
|
||||
credit_line 0 " SplatooD"
|
||||
credit_line 1 " a Splatoon demake"
|
||||
credit_line 2 " Project Lead"
|
||||
credit_line 3 " John Carmackeral"
|
||||
credit_line 4 " Music"
|
||||
credit_line 5 " Nobuo Squidimatsu"
|
||||
credit_line 6 " Title & Postgame"
|
||||
credit_line 7 " Koji Ikarashi"
|
||||
credit_line 8 " Game Design"
|
||||
credit_line 9 " Squideo Kojima"
|
||||
credit_line 10 " Graphics"
|
||||
credit_line 11 " Squid Meier"
|
||||
credit_line 12 " Game Mechanics"
|
||||
credit_line 13 " American McGill"
|
||||
credit_line 14 " Splatoon (C) 2015"
|
||||
credit_line 15 " Nintendo"
|
||||
credit_line 16 " Thanks for playing!"
|
||||
|
||||
echo "const unsigned char * credits[] = {" credits_{0..16}, zero, zero, zero "};"
|
||||
9
util/ebcdic.py
Normal file
9
util/ebcdic.py
Normal file
@@ -0,0 +1,9 @@
|
||||
import codecs
|
||||
|
||||
out = []
|
||||
for i in codecs.encode(raw_input()):
|
||||
out.append(hex(ord(i)+0x80))
|
||||
|
||||
out.append("0x00");
|
||||
|
||||
print "{",",".join(out),"};"
|
||||
Reference in New Issue
Block a user