From 8d8dda40b0b457cb44647522ce55699c2c891e71 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 14 Jun 2023 16:56:30 -0400 Subject: [PATCH] sb: add initial back_off code --- games/sb/Makefile | 17 +- games/sb/asplode_graphics/Makefile | 13 +- games/sb/asplode_graphics/bob_bg.png | Bin 0 -> 19491 bytes games/sb/asplode_graphics/bob_sprites.png | Bin 0 -> 25894 bytes games/sb/asplode_sound/Makefile | 7 +- games/sb/asplode_sound/back_off.btc | 1 + games/sb/back_off.s | 557 ++++++++++++++++++++++ 7 files changed, 592 insertions(+), 3 deletions(-) create mode 100644 games/sb/asplode_graphics/bob_bg.png create mode 100644 games/sb/asplode_graphics/bob_sprites.png create mode 100644 games/sb/asplode_sound/back_off.btc create mode 100644 games/sb/back_off.s diff --git a/games/sb/Makefile b/games/sb/Makefile index 1672ebfc..78786420 100644 --- a/games/sb/Makefile +++ b/games/sb/Makefile @@ -12,7 +12,7 @@ all: sb.dsk #### -sb.dsk: QBOOT QLOAD TITLE DUCK_POND ROOF ASPLODE TARGET CLIFF RAT +sb.dsk: QBOOT QLOAD TITLE DUCK_POND ROOF ASPLODE BACK_OFF TARGET CLIFF RAT cp $(EMPTY_DISK) sb.dsk $(DOS33_RAW) sb.dsk 0 0 QBOOT 0 1 $(DOS33_RAW) sb.dsk 0 2 QBOOT 1 1 @@ -79,6 +79,21 @@ asplode_graphics/sb_title.hgr.zx02: asplode_sound/asplode.btc.zx02: cd asplode_sound && make + +#### + +BACK_OFF: back_off.o + ld65 -o BACK_OFF back_off.o -C $(LINKER_SCRIPTS)/apple2_6000.inc + +back_off.o: back_off.s zx02_optim.s \ + asplode_graphics/bob_bg.hgr.zx02 \ + asplode_graphics/sb_sprites.inc \ + asplode_sound/back_off.btc.zx02 \ + audio.s play_asplode.s asplode_head.s \ + hgr_sprite_big.s cycle_colors.s \ + zp.inc hardware.inc + ca65 -o back_off.o back_off.s -l back_off.lst + #### CLIFF: cliff.o diff --git a/games/sb/asplode_graphics/Makefile b/games/sb/asplode_graphics/Makefile index 4c2e71b1..7a1f1a7d 100644 --- a/games/sb/asplode_graphics/Makefile +++ b/games/sb/asplode_graphics/Makefile @@ -12,7 +12,9 @@ HGR_SPRITE = ../../../utils/hgr-utils/hgr_make_sprite all: sb_zone.hgr.zx02 sb_zone2.hgr.zx02 \ sb_combined.hgr.zx02 \ - sb_title.hgr.zx02 sb_sprites.inc + sb_title.hgr.zx02 sb_sprites.inc \ + bob_bg.hgr.zx02 + #### @@ -24,6 +26,15 @@ sb_combined.hgr.zx02: sb_zone.hgr sb_zone2.hgr sb_zone.hgr: sb_zone.png $(PNG_TO_HGR) sb_zone.png > sb_zone.hgr + +#### + +bob_bg.hgr.zx02: bob_bg.hgr + $(ZX02) bob_bg.hgr bob_bg.hgr.zx02 + +bob_bg.hgr: bob_bg.png + $(PNG_TO_HGR) bob_bg.png > bob_bg.hgr + #### sb_zone.hgr.zx02: sb_zone.hgr diff --git a/games/sb/asplode_graphics/bob_bg.png b/games/sb/asplode_graphics/bob_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0ef774c8734db9ac392b75a4b90f29cee71914 GIT binary patch literal 19491 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

35kCkBY8bMlJy}`M7B?qbl|;4GqqN@IpbzR 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 literal 0 HcmV?d00001 diff --git a/games/sb/asplode_graphics/bob_sprites.png b/games/sb/asplode_graphics/bob_sprites.png new file mode 100644 index 0000000000000000000000000000000000000000..86f09c9178ce79ab599ec74fc32f3695c8652fcd GIT binary patch literal 25894 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 asplode_sound.btc +back_off.btc.zx02: back_off.btc + $(ZX02) back_off.btc back_off.btc.zx02 + + + clean: rm -f *~ asplode_sound.btc diff --git a/games/sb/asplode_sound/back_off.btc b/games/sb/asplode_sound/back_off.btc new file mode 100644 index 00000000..a505b5b8 --- /dev/null +++ b/games/sb/asplode_sound/back_off.btc @@ -0,0 +1 @@ +ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª­Tªª­U*ª­RªªµTªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÕ*•ZµJªªªªªªª©Uªªªªªªªªªªªªªªªªªªªªªªªªªªªª­R•U«T¥UªªUjªªUZªª©UUUUUUUUUUUUUUUUUUUUUUUUVªJªÖªR«UUJµUUJ­UUTªªªªªªªªªªªªªªªªªªªªªªªª­RUZµR•ZªªUªªªUjªª¥VªªªªªªªªªªªªªªªªªªªªªªµIU«UIUVµRUVµT¥U­T¥UmU)UjÔ©Ujª©UZªÒJ¶µJJ­jªIkZª’ªÖª”ª­ª¤ª­V”ª«UTª«UYD¶Ú©IUµª‘U­j’U[V’•VÖ¤•V­T¥UªÒ•UjÕImU)*ÖÕI*Ö­JJµª©JªÖªJ«UURª­URª­Ui%mª©J«ZªI[ZªRšÖª’ª«Z¤ª«U¥*ªÕTªªµZI6ÕjJU­j’U­Z”•kZ¤•j¶©%Z­U)UjÔ©UVµH«kU)JÖÕI*µ­RJ­jªRª¶ªRªµjRªµURª«Z¢Mµª’U­j¤•µZ¥%kV¥)ª«UIjªÕ*ªª­*ªªªª«UIUmUIUªª©Uªš©UªªªUjªª•j¥UUª•UUUUUUUUUUUUV©*«ZªJ­UUJµTªª«UURªÕUUUU*ªµU*ªªªªªªªªªªªªµRUZÕRUZªª•ª¥j•jªª•Zªª¥Zª•Uªª•UZªª•UUUUUUZª¥*Öª¤ªÕUU+UJÕ*ÕUU*µUU*µUJªÕTªªªªªªªªªªªªªÕJUjÕRUjª©Uªª©VªªªUjªª•j¥iUjªªUZªª•ZªªªªªªªÔ¥VÕT¥Vªªªªªªªªªª©VªªªUªUUUUKUUUUUUUUUUVª¤«jª•*ÚÔ¤ªÚª©*µª©*­VªJ­UURªÕUR«UZ¤UÕª¤•­j¤•kZ¤•ZÕT•Zªµ)Zªªªªªªªªª«T•[UT•Uµ¥ÖµU%UµT¥Uªµ)UjªªUUZ©UUVª¤­ªª”ªÖª’VÕj¤ª­j¤ªµUUR­UU*µUUUUUUjJµªª•-Zª’­Vª”«ZªT«UUU*ÕUUUUUUUUUZ©JÚªªRµkJRµZªR«ZªR«UUTª«UTªª²ªªªª«T•mUT•jÕT•ZµU%V­U)V«Rªªªªªªªªªªªª«T•kUU%ZµT¥ZµUIV­UIUªª¥Vªª¥Uªª¥Uªª¥Ujªªª©Mjª©+j•YUj•ZUZ•URÕUURµT­J­¥*ª­TªÊ«TªªªªªÔ­T•Z­U%Zªµ)ªªª©jªª©Vªª©UªUUUªUUUUUUUUUUUUUUV©JµVªJµUZRµRÕRµUUR­UUR«U*ª«U*ª«U*ªªªªªªªªµUUÛUU%[Rµ)mRªªkRª©Vªª©Vªª©V²•©Uª•ªUª•ªUj•jªÔ’¶ªÔ’¶©j•Z¥V•V©V¤­iUT«U+T«U+TªÕ*ÔªµJªªµ*­UT•kUUjª¬¥j¥j¥Zªª¥Vªª¥V©VªUUUUUUUUUUUVª’­ªª’ªÚª’ªÖª”ªÚª•*µUU*µUU*ªÕU*ªªµU%ZÕU%V­U%U­UIUkUJUZªª¥Vªªªªªªªªª­UIZµUIUkUIUZÕJUZÕRUUªª•UUjUUUUUUUUV¤«UUTª­URU«UT•kUT¥jªª©UªªªªªªªªªªÕT•ªµT¥U­T•Uªª•Ujª¥UZVªUUUj•UUUUUUUj’«Zª’ªÖª’ªÕV”ªµUTªª«U*ªªµJªªªªªª­URVµUR©kURªªÕTªªÕUJª«UJªªµRªªªªªª«URUª«R–ª©ª•ªªª•Zªª•ZªªªªªUªªªªªªªªªªªªªªªª«UJU­UTªµJªª­UU*­UUUUUUUUU*­UUUUUUUUª•UUUUUUZ©RµUUUUUUU-UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUj•UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTÕUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTª«UU*ªÕTªªµTªªªªªªªªªªªªªªªªªªªªªªªªªªªªªUjªª¥UUªªUUªªUUªª•UVªªUUUUUUUUUUUUUUUUUZªUUjª”«Zª”«Vª•UUª¥UUUUUUUUUUUUUUUUUVª¥JÖª¥*µª¥*µj•KUUUUUUUUUUUUUUUUUUUUUUURªµUJªµUJªµUJª­U*ªªªªªªªªªªªªªªªªª«UJ•ZÕR•VµT¥V­R©Zªª•Vª©UUª©UUjªUUjªUVªªUU­R•U­R•U­T©Vªªªªªªªªªªªªªª¥VªªUZµJUZÕJUVÕJUZª©UZª©UUUUUUUUUUUU*µUTªÕ©JªÖªJªÖªR«V©R«UUR­UUUUUUUUUUUUUUUUUUUUU*­UU*ªµURªµUJª­UTªªµUJªªªªªªµJªª­Rªªªªªªªªªª•UZª©UUªª¥Ujª¥Ujª©UVªªUUUUUUUUUUUUUUUUUUUUUURª«UU*ª­UTª«UUJªÕUJª­URªªÕRª«URªªµTªª«Tªª«UUUUUUZ©U+UUUUUUU*ÕUU*«UUJªªªªªªª©UVªªUUVªªªªªªª•UZª©UUjª©Uªª©Ujª©UVªªUUUUUUUU*ªÕURª«UTª­UUUUUUUª¥JµUUJµUTª­UU*ªµURªªµRªªªªªªªªªªª­TªZµU)U­U)Uªª¥UjªªªªªªªªªUZª¥UVª¥UªªT­kJJ«j©J­Z¥UUUUUUUR­UUJªÕUJªµUJ«UT©kZ”•[ZR•kUJªªªªªªªªªªªªªªªªªªªªªª©UkU%UkU)U«TªªªªªªªªªªªªUZªªUUªªªªª¥U­R”µ­R•Uªª•UUUUUUUUZ©UUZª•UUª•Vª©RÖµ)*µª¥*µj¥UUUUUUUUUUU*­UU*ªÕUUUªTªÖªRªÖªRªÕURªªªªªªªªªªªªªªªªªªªªµU)UkUJUVªªUUjª•Ujª©UUªªUUUUUVª•UUª©UUª©UUªªªªªUV­JTµjªT­ZªT­Zª•*Õª¥UUUU*ÕUJªµUJªµU*ªµUUUUTª­UTªªÕU*ªÕU)VµU)U«U*ªªªªªÕRªªÕJª«UJª«UUUUU*«V¥*ZµU*V­U)U­U)UkUJUZª¥Ujª•Ujª¥UZª•UZªªª•UVªªUUjª¥Ujª•Ujª¥UZª©UU©UUZªU*ÖªUMVªUUZªªªªªªªª©UZªªUZª©UZªªUVªª•Uª¥UZª¥UVª©UVª©UZª©RÕ­*J­j©J«V¥UUUUUUUUUUªUUVª•UUUUUjU*Öª”ªµª”ªµUUJªµUUUUUUUUUUUUUUUUUUTª­j”ª­j”ª­UURª­UUUUUUUUUUUUUUUUUV•*­Z¥*«Z¥J«UURª­UUTªªªÕJª«UJªªªªªªª¥U«R•UkR•UZª©UUªª•UUUUUUUUUUUUUUUZ•*µª¤ª­ª•*­UUUSUUUJªªªªªªªªªªªªªªÕT©VµT•VµR•Uªªª•VªªUUUUUUT­UUR«UUUUUTªµª”ªµª•*µUUUUUUUUUUTª­UU*ªÕ¥JªÕU*ªµUJ«UT¥ZÖ”•UµR•VµRUVµR•UµR•U­JRµµRRµµRJ­­RJ­­RUZÕI*¶ÕI*­­I*­µI)­µJJ­mRR­j¥%kj¤¥kj¤•[j¤¥[Z¤¥­ª¤•[mI%[j©%[j¤•VÚ©%VÖ¥%VµR’µµRRµµRR­µRR­µRR¶Ö”J­µT’«ZÒ’«[T’«ZÔ¤ªÖª¤ªÕªRªÖª”ªÚª”ªÖª”ª¶ª•*ÚÕ%*µª©J­Z¥*­j©J«VªT«UURªÕU*«UU*«UU*«UUJªÕUJ«V©Tª­UU*«UU*«UU*«UU*ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¥ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¥ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª•ªªª¥Z•j•j¥UUUUUUUUUUUUUUUiUUUj¥VUUUV¥UUUUUUUUUUUUUUUUUUUUUUUUUJÕUUR­U5¥UU+T­UKTªªªµ*ªªªªªªZª«RªªVÒªª–ªUª–ª•ZUj¥j•UUV¥UU5eUUUUUªUi+iMjUZSVUj•V’Ö•V¥UUUiUU+U-UJÕ+URµJÕJµIµJ­QmJ[QZÊZÑVªUÔZªU´Vª•´–Ô¥¬•µ%­#t¥mEu)[ImI[IZ©VÉZªV©VªVª[R–ªVʪ´•ÒUª•²•ª•j•j’ÚTÚ¥j•V¤Ú¥Z©[JV©VªšªVªUªUª•ª•ª¥jUjUj•j•V¥VªVªªª•ªZª•ªª­Jªªªªªªªªªªªªªªªªªªªªªªªª•j•j¥jªª¥Z•V¥ZªªÒªª©jª–ªªª¥©Vªªªªªªªªªªªª©VªVªªªªªV¥ZªZªªÕ*ªª©j©jªª©Z•Z©j©j©U•UUUUUUUUUUUUUUUUUUUUUUUUT­U+UUUJÕ+U+UKUJµJ´ªªªªVªUªVªªª–ªªªªªªµJªªªªªªªª©jªªªªªªªªªªªªªª•j•j¥ªªª¥jªª©jª«Jªªª–ªVª•ªUª•ªUª•jUj¥YUUUUUUUUUUjUª•UKUUYKU*ÕKUJ­*µUUR´ª«RµUKT­UUjVª•Y-¥UZKURÖKiUUJÕUVRÕ*­RµUUTµUUUUUKU*ÕJÕ*Õ*µ*Õ*µ%µ*µJ´¥ªªµ*ÔªªªªªªªÒªªVªªÒªªVªªªªª–ªZªªªZšªªªªªªªªªª«JªªªÊªªªªªªªªªª–ªªªªªZªªªªªªªªªªª«JªªZªªªªªªªªªªª–ªªªªªªjªªªZ©jªªÊªªªªªZªªª–ªªªªÊªª¦ªªªªªªªªªªªªªªªªªªª´ªªªªªªªªªªªªªªªªªªªªªªªªª©jªªªjªªªªªªªªªªª«Jªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¥jªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¥ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª–©iZUUUV•ªªªªªªªªªªªªªªªªªªª©ZUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUURÕUUUUUUUU5UUUUUUUUUUUUUUUUUUUSSSRÒÒÒÒÔÕUTÔ´´´´µUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUKRªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¦ªªªªªªªªªªªªªªªªªªªªªªªªªªªª–ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU \ No newline at end of file diff --git a/games/sb/back_off.s b/games/sb/back_off.s new file mode 100644 index 00000000..a23d763c --- /dev/null +++ b/games/sb/back_off.s @@ -0,0 +1,557 @@ +; Strongbad Zone -- Back Off Ladies section +; +; by popular demand. Too lazy to try to fit it in with the +; main program so it gets loaded separately +; +; Yet Another HSR project +; +; by deater (Vince Weaver) + +.include "zp.inc" +.include "hardware.inc" + +div7_table = $400 +mod7_table = $500 +hposn_high = $600 +hposn_low = $700 + + +back_off_start: + + ;=================== + ; set graphics mode + ;=================== + + ; assume already in graphics mode + + ;==================== + ; set up tables + ;==================== + + ; assume tables already there + + ;========================== + ; Load Sound + ;=========================== + + lda SOUND_STATUS + and #SOUND_IN_LC + beq done_load_sound + + ; read/write RAM, use $d000 bank1 + bit $C083 + bit $C083 + + lda #sound_data + sta ZX0_src+1 + + lda #$D0 + + jsr full_decomp + + ; read ROM/no-write + bit $C082 + + +done_load_sound: + + ;================= + ; Load Background + ;================= + ; this is tricky as there's not enough room + ; so we are over-writing stuff carefully + +load_backgrounds: + + lda #bg1_data + sta ZX0_src+1 + + lda #$A0 + + jsr full_decomp + + ;=================== + ; set up variables +.if 0 + lda #16 + sta STRONGBAD_X + sta PLAYER_X + + lda #1 + sta STRONGBAD_DIR + sta BULLET_YDIR + + lda #SHIELD_DOWN + sta SHIELD_POSITION + sta SHIELD_COUNT + + lda #0 + sta BULLET_X_L + sta BULLET_X_VEL + sta HEAD_DAMAGE + + lda #$80 + sta BULLET_X_VEL_L + + lda #20 + sta BULLET_X + lda #0 + sta BULLET_Y +.endif + + + jsr do_back_off + + ;========================== + ; done game + ;========================== + +done_game: + lda #0 + sta WHICH_LOAD + rts + + + + +wait_until_keypress: + lda KEYPRESS ; 4 + bpl wait_until_keypress ; 3 + bit KEYRESET ; clear the keyboard buffer + rts + + + ;============================== + ; do the asplode routine + ;============================== + ; should move head to center + ; player explosion happens + ; do the "YOUR HEAD A SPLODE" animation + ; try to interleave the sound + ; in theory the background should pulse too but + ; that might be too much +do_back_off: + + lda #0 + sta FRAME + + lda #16 + sta STRONGBAD_X + +asplode_loop: + ;=================== + ; copy background + ;=================== + + lda #$a0 + jsr hgr_copy + + ;========================== + ; draw big head + ;========================== + + ldx HEAD_DAMAGE + lda head_sprites_l,X + sta INL + lda head_sprites_h,X + sta INH + lda #16 ; center + sta SPRITE_X + lda #36 + sta SPRITE_Y + jsr hgr_draw_sprite_big + + ;========================== + ; draw new sprite + ;========================== + + ldx FRAME + lda asplode_sprite_l,X + sta INL + lda asplode_sprite_h,X + sta INH + + + cpx #11 + bcs use_hardcoded_x + + ldy BULLET_X + dey + tya + + jmp asplode_it_x + +use_hardcoded_x: + lda asplode_sprite_x,X +asplode_it_x: + sta SPRITE_X + + lda asplode_sprite_y,X + sta SPRITE_Y + jsr hgr_draw_sprite_big + + ldx FRAME + cpx #17 + bcc done_extra_sprites + + ;========================== + ; draw your + ;========================== + + lda #your_sprite + sta INH + lda #8 + sta SPRITE_X + lda #133 + sta SPRITE_Y + jsr hgr_draw_sprite_big + + ldx FRAME + cpx #23 + bcc done_extra_sprites + + ;========================== + ; draw head + ;========================== + + lda #head_sprite + sta INH + lda #16 + sta SPRITE_X + lda #133 + sta SPRITE_Y + jsr hgr_draw_sprite_big + + ldx FRAME + cpx #29 + bcc done_extra_sprites + + ;========================== + ; draw A + ;========================== + + lda #a_sprite + sta INH + lda #22 + sta SPRITE_X + lda #133 + sta SPRITE_Y + jsr hgr_draw_sprite_big + +done_extra_sprites: + + + + jsr flip_page + + + ldx FRAME + + +sound_check_explode: + cpx #2 + bne sound_check_your + ; play sound + ldy #7 + bne do_play_asplode ; bra + +sound_check_your: + cpx #16 + bne sound_check_head + ; play sound + ldy #0 + beq do_play_asplode ; bra + +sound_check_head: + cpx #22 + bne sound_check_a + ldy #1 + bne do_play_asplode +sound_check_a: + cpx #28 + bne sound_check_splode + ldy #2 + bne do_play_asplode + +sound_check_splode: + cpx #34 + bne sound_check_done + ldy #3 + +do_play_asplode: + jsr play_asplode + +sound_check_done: + + inc FRAME + lda FRAME + cmp #35 + bcs done_asplode_head + + jmp asplode_loop + +done_asplode_head: + + lda #20 + jsr long_wait ; tail call + + ; reset things + + lda #0 + sta SHIELD_POSITION + sta BULLET_Y + sta SHIELD_COUNT + + lda #1 + sta BULLET_YDIR + + bit KEYRESET ; clear any keypresses during asplode + + rts + + +asplode_sprite_l: + ; begining explosion + .byte asploding1_sprite + .byte >asploding1_sprite + .byte >asploding2_sprite + .byte >asploding3_sprite + .byte >asploding4_sprite + .byte >asploding2_sprite + .byte >asploding3_sprite + .byte >asploding4_sprite + .byte >asploding2_sprite + .byte >asploding3_sprite + .byte >asploding4_sprite + ; your + .byte >your_sm_sprite + .byte >your_sm_sprite + .byte >your_med_sprite + .byte >your_med_sprite + .byte >your_sprite + .byte >your_sprite + ; head + .byte >head_sm_sprite + .byte >head_sm_sprite + .byte >head_med_sprite + .byte >head_med_sprite + .byte >head_sprite + .byte >head_sprite + ; a + .byte >a_sm_sprite + .byte >a_sm_sprite + .byte >a_med_sprite + .byte >a_med_sprite + .byte >a_sprite + .byte >a_sprite + ; splode + .byte >splode_sm_sprite + .byte >splode_sm_sprite + .byte >splode_med_sprite + .byte >splode_med_sprite + .byte >splode_sprite + .byte >splode_sprite + +asplode_sprite_x: + .byte 19 ; FIXME: adjust for current pos + .byte 19 + .byte 19 + .byte 19 + .byte 19 + .byte 19 + .byte 19 + .byte 19 + .byte 19 + .byte 19 + .byte 19 + ; your + .byte 18 + .byte 17 + .byte 14 + .byte 12 + .byte 9 + .byte 8 + ; head + .byte 18 + .byte 18 + .byte 17 + .byte 17 + .byte 16 + .byte 16 + ; a + .byte 19 + .byte 20 + .byte 20 + .byte 21 + .byte 22 + .byte 22 + ; splode + .byte 18 + .byte 20 + .byte 20 + .byte 21 + .byte 22 + .byte 24 + +asplode_sprite_y: + .byte 150 + .byte 150 + .byte 150 + .byte 150 + .byte 150 + .byte 150 + .byte 150 + .byte 150 + .byte 150 + .byte 150 + .byte 150 + ; your + .byte 80 + .byte 90 + .byte 100 + .byte 111 + .byte 122 + .byte 133 + ; head + .byte 80 + .byte 90 + .byte 100 + .byte 111 + .byte 122 + .byte 133 + ; a + .byte 80 + .byte 90 + .byte 100 + .byte 111 + .byte 122 + .byte 133 + ; splode + .byte 80 + .byte 90 + .byte 100 + .byte 111 + .byte 122 + .byte 133 + + +long_wait: + ldx #10 +long_wait_loop: + lda #255 + jsr WAIT + dex + bne long_wait_loop + rts + + + ;========== + ; flip page + ;========== +flip_page: + lda DRAW_PAGE + beq draw_page2 +draw_page1: + bit PAGE2 + lda #0 + + beq done_flip + +draw_page2: + bit PAGE1 + lda #$20 + +done_flip: + sta DRAW_PAGE + + rts + + + + .include "hgr_sprite_big.s" + .include "hgr_copy_fast.s" + .include "audio.s" + .include "play_asplode.s" + + .include "asplode_graphics/sb_sprites.inc" + + +shield_sprites_l: + .byte player_sprite,>shield_left_sprite + .byte >shield_center_sprite,>shield_right_sprite + + +head_sprites_l: + .byte big_head0_sprite,>big_head1_sprite,>big_head2_sprite + .byte >big_head3_sprite,>big_head4_sprite + + +bg1_data: + .incbin "asplode_graphics/bob_bg.hgr.zx02" + +sound_data: + .incbin "asplode_sound/back_off.btc.zx02" + + .include "zx02_optim.s" + + ; start at least 8k in? +