diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-11-07 15:25:47 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-11-07 15:25:47 +0300 |
commit | 1a2949743cb8d7a53f8a1afb77bdd2c6577ca252 (patch) | |
tree | 03f730b744318705f4ada2acf36d89344d6486d8 | |
parent | e40a82b54fe584f92179dc8a2b67338fa5804441 (diff) |
Music offsets autodetect via hexdump
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | warface.asm | 7 |
2 files changed, 10 insertions, 5 deletions
@@ -75,10 +75,11 @@ SPLITTER=tools/ImageSplitter.exe TILER=tools/NesTiler.exe TEXT_CONVERTER=tools/TextConverter.exe SOURCE=warface.asm -INCLUDES=main.asm clean.asm dimming.asm text.asm nametables.asm patterns.asm buttons.asm sprites.asm EXECUTABLE=warface.nes MUSIC=Warface-12.nsf MUSIC_BIN=music.bin +MUSIC_ASM=music.asm +INCLUDES=main.asm clean.asm dimming.asm text.asm nametables.asm patterns.asm buttons.asm sprites.asm $(MUSIC_ASM) TITLE_IMAGE_0=title_0.png TITLE_IMAGE_1=title_1.png @@ -231,7 +232,7 @@ $(MUSIC_BIN): build: $(EXECUTABLE) clean: - rm -f $(EXECUTABLE) *.lst *.nl *.png *.bin + rm -f $(EXECUTABLE) *.lst *.nl *.png *.bin $(MUSIC_ASM) run: $(EXECUTABLE) $(EMU) $(EXECUTABLE) @@ -304,6 +305,9 @@ $(TEXT_3_BIN): $(TEXT_3) $(SYMBOLS_PATTERN) $(SYMBOLS_PALETTE): $(SYMBOLS_IMAGE) $(TILER) -i0 $(SYMBOLS_IMAGE) --enable-palettes 0 --out-pattern-table0 $(SYMBOLS_PATTERN) --out-palette0 $(SYMBOLS_PALETTE) --bgcolor #000000 +$(MUSIC_ASM): $(MUSIC) + printf "NSF_LOAD_ADDR .equ `hexdump $(MUSIC) --skip 8 --length 2 --format '"$$%X"'`\nNSF_INIT_ADDR .equ `hexdump $(MUSIC) --skip 10 --length 2 --format '"$$%X"'`\nNSF_PLAY_ADDR .equ `hexdump $(MUSIC) --skip 12 --length 2 --format '"$$%X"'`" > music.asm + write: $(EXECUTABLE) tools\FamicomDumper.exe script --csfile tools\WriteWarface.cs --sound diff --git a/warface.asm b/warface.asm index b0778b2..11f3326 100644 --- a/warface.asm +++ b/warface.asm @@ -48,7 +48,8 @@ SYMBOL_COUNTER .rs 1 ; счтётчик напечатанных симво SPRITES .rs 256 ; тут хранятся спрайты
.bank 12 ; PRG банк #12, середина PRG
- .org $9152
+ .include "music.asm"
+ .org NSF_LOAD_ADDR
music:
.incbin "music.bin" ; Музыка
@@ -100,7 +101,7 @@ IRQ: lda #BANK(music)/2
sta $6000
; играем музыку
- jsr $A99C
+ jsr NSF_PLAY_ADDR
; читаем контроллер
lda #BANK(read_controller)/2
sta $6000
@@ -168,7 +169,7 @@ init_music: ; в регистре X задаётся регион: PAL или NTSC
ldx <CONSOLE_TYPE
; инициализируем музыкальный проигрыватель
- jsr $A999
+ jsr NSF_INIT_ADDR
pla
jsr select_prg_bank
rts
|