diff --git a/games/lemm/hgr_tables.s b/games/lemm/hgr_tables.s index c201e699..0a13a02c 100644 --- a/games/lemm/hgr_tables.s +++ b/games/lemm/hgr_tables.s @@ -1,7 +1,12 @@ -div7_table = $bc00 -mod7_table = $bd00 -hposn_high = $be00 -hposn_low = $bf00 +;div7_table = $bc00 +;mod7_table = $bd00 +;hposn_high = $be00 +;hposn_low = $bf00 + +div7_table = $c00 +mod7_table = $d00 +hposn_high = $e00 +hposn_low = $f00 diff --git a/games/lemm/lemm.s b/games/lemm/lemm.s index 9c6513f0..63d905a4 100644 --- a/games/lemm/lemm.s +++ b/games/lemm/lemm.s @@ -160,6 +160,28 @@ mockingboard_notfound: skip_all_checks: + ;================================== + ; load sound into the language card + ; into $D000 set 1 + ;================================== + + ; read/write RAM, use $d000 bank1 + bit $C083 + bit $C083 + + lda #letsgo + sta getsrc_smc+2 + + lda #$D0 ; decompress to $D000 + + jsr decompress_lzsa2_fast + + ; read/write RAM, use $d000 bank2 + bit $C08b + bit $C08b + ;================================== ; load music into the language card @@ -169,8 +191,8 @@ skip_all_checks: ; switch in language card ; read/write RAM, $d000 bank 2 - lda $C083 - lda $C083 + lda $C08b + lda $C08b jsr mockingboard_patch ; patch to work in slots other than 4? @@ -322,11 +344,11 @@ config_string: .include "graphics/graphics_level1.inc" -;.include "graphics/graphics_level5.inc" +.include "graphics/graphics_level5.inc" .include "graphics/sprites.inc" -level5_lzsa: -level5_preview_lzsa: +;level5_lzsa: +;level5_preview_lzsa: music_parts_h: .byte >lemm5_part1_lzsa,>lemm5_part2_lzsa,>lemm5_part3_lzsa @@ -367,4 +389,4 @@ lemm6_part5_lzsa: .incbin "music/lemm6.part5.lzsa" letsgo: -.incbin "sounds/letsgo.btc" +.incbin "sounds/letsgo.btc.lz4" diff --git a/games/lemm/letsgo.s b/games/lemm/letsgo.s index 43727e58..70cffe3a 100644 --- a/games/lemm/letsgo.s +++ b/games/lemm/letsgo.s @@ -1,4 +1,4 @@ - +LETSGO = $D000 LETSGO_LENGTH = 14 play_letsgo: @@ -7,23 +7,27 @@ play_letsgo: ;beq done_link_noise ; switch in language card - ; read RAM, no write, $d000 bank 1 + ; read/write RAM $d000 bank 1 + + bit $C083 + bit $C083 - ; bit $C088 ; call the btc player - lda #letsgo + lda #>LETSGO sta BTC_H ldx #LETSGO_LENGTH ; 14 pages long??? jsr play_audio - ; restore rom, no write, $d000 bank 1 + ; read/write RAM, $d000 bank 2 + + bit $c08B + bit $c08B -; bit $c08A rts diff --git a/games/lemm/qboot.inc b/games/lemm/qboot.inc new file mode 100644 index 00000000..65fbf7dd --- /dev/null +++ b/games/lemm/qboot.inc @@ -0,0 +1,8 @@ +seek = $1126 +driveon = $119D +driveoff = $1122 +load_new = $11AB +load_address=$11C4 +load_track=load_address+1 +load_sector=load_address+2 +load_length=load_address+3 diff --git a/games/lemm/qload.s b/games/lemm/qload.s index 2ffe04c7..53d58b0c 100644 --- a/games/lemm/qload.s +++ b/games/lemm/qload.s @@ -217,7 +217,7 @@ sector_array: .byte 0 ; FIRST_SECTOR length_array: - .byte 92,159,157,145 ; MIST_TITLE,MIST,MECHE,SELENA + .byte 96,159,157,145 ; MIST_TITLE,MIST,MECHE,SELENA .byte 128, 20,158,135 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte 61, 31,159,109 ; CABIN,DENTIST,ARBOR,NIBEL .byte 20, 33, 27, 78 ; SHIP,GENERATOR,D'NI,SUB diff --git a/games/lemm/sounds/Makefile b/games/lemm/sounds/Makefile new file mode 100644 index 00000000..b8f381f1 --- /dev/null +++ b/games/lemm/sounds/Makefile @@ -0,0 +1,6 @@ +LZSA = ~/research/lzsa/lzsa/lzsa + +all: letsgo.btc.lz4 + +letsgo.btc.lz4: letsgo.btc + $(LZSA) -r -f2 letsgo.btc letsgo.btc.lz4