From 60c26bb3adc9d981e3451bb42aa468f341188c7b Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Sat, 21 May 2016 11:13:42 +1000 Subject: [PATCH] wip baloon bob --- 028.bs/.gitignore | 3 +- 028.bs/Makefile | 11 +- 028.bs/P6112-Options.i | 2 +- 028.bs/assets/baloonMask.png | Bin 0 -> 1423 bytes 028.bs/background.s | 30 ++- 028.bs/background.tmx | 2 +- 028.bs/baloon.s | 254 ++++++++++++++++++++++++++ 028.bs/blit.s | 5 +- 028.bs/game1.s | 18 +- 028.bs/image.s | 16 +- 028.bs/levels/level1.1_foreground.tmx | 24 +++ 028.bs/music.s | 6 +- 028.bs/sound.s | 16 -- 13 files changed, 344 insertions(+), 43 deletions(-) create mode 100644 028.bs/assets/baloonMask.png create mode 100644 028.bs/baloon.s create mode 100644 028.bs/levels/level1.1_foreground.tmx diff --git a/028.bs/.gitignore b/028.bs/.gitignore index cba566b..234c096 100644 --- a/028.bs/.gitignore +++ b/028.bs/.gitignore @@ -1,4 +1,3 @@ -assets/P61.placeholder -assets/P61.song1 +assets/P61.* bin save \ No newline at end of file diff --git a/028.bs/Makefile b/028.bs/Makefile index ab7f9a2..b0e59d2 100644 --- a/028.bs/Makefile +++ b/028.bs/Makefile @@ -12,7 +12,7 @@ BASE_ADDRESS=4000 # note: this must be high enough not to conflict with MFMbufE BOOTBLOCK_ASM=alpine_bootblock.s -OBJS=out/init.o out/utils.o out/image.o out/blit.o out/joystick.o out/player.o out/items.o out/blitmtext.o out/blitmtext85.o out/blittext.o out/music.o out/P6112-Play.o out/splash.o out/background.o out/sound.o out/trackloader.o out/disk.o out/counter.o out/map.o out/message.o out/menu.o out/credits.o +OBJS=out/init.o out/utils.o out/image.o out/blit.o out/joystick.o out/player.o out/items.o out/blitmtext.o out/blitmtext85.o out/blittext.o out/music.o out/P6112-Play.o out/splash.o out/background.o out/sound.o out/trackloader.o out/disk.o out/counter.o out/map.o out/message.o out/menu.o out/credits.o out/baloon.o IMAGES=foreground.png \ background.png \ @@ -71,11 +71,12 @@ IMAGES=foreground.png \ font8x8.png\ font8x85.png\ splash.png\ - splashSave.png + splashSave.png\ + baloonMask.png IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin)) -VASM_EXTRA_ARGS=-DTIMING_TEST=0 -DSFX=1 +VASM_EXTRA_ARGS=-DTIMING_TEST=0 -DSFX=1 -DBALOON_BOB=1 LINKER_OPTIONS=-T link.script.x @@ -196,6 +197,10 @@ out/splashSave.bin: assets/splash.png out/splash.bin ../tools/croppa/out/croppa --input=assets/splash.png --output=out/splashSave.png --width=96 --height=64 --rows=1 --cols=1 --dx=0 --dy=0 --x=112 --y=150 $(IMAGECON) --input out/splashSave.png $(IMAGECON_ARGS) --output-bitplanes --output-grey-palette-asm --output-palette-asm --output-palette --output out/splashSave --colors=32 --output-copperlist --full-color-palette-file --use-palette=out/splash.pal +out/baloonMask.bin: assets/background.png + #../tools/croppa/out/croppa --input=assets/background.png --output=out/baloonMask.png --width=48 --height=32 --rows=1 --cols=1 --dx=0 --dy=0 --x=0 --y=64 + $(IMAGECON) --input assets/baloonMask.png $(IMAGECON_ARGS) --output-mask --output out/baloonMask --colors=8 --transparent-color=0,0,0 --output-png --palette-offset=8 + out/splash.bin: assets/splash.png $(IMAGECON) --input $< $(IMAGECON_ARGS) --output-bitplanes --output-grey-palette-asm --output-palette-asm --output-palette --output out/splash --colors=32 --output-copperlist --full-color-palette-file diff --git a/028.bs/P6112-Options.i b/028.bs/P6112-Options.i index 8391268..e65ded3 100644 --- a/028.bs/P6112-Options.i +++ b/028.bs/P6112-Options.i @@ -5,7 +5,7 @@ P61mode =2 ;Try other modes ONLY IF there are no Fxx commands >= 20. ;; --- options common to all P61modes --- -usecode=$800940D;$9409;$8000 ;CHANGE! to the USE hexcode from P61con for a big +usecode=-1;$8000 ;CHANGE! to the USE hexcode from P61con for a big ;CPU-time gain! (See module usecodes at end of source) ;Multiple songs, single playroutine? Just "OR" the ;usecodes together! diff --git a/028.bs/assets/baloonMask.png b/028.bs/assets/baloonMask.png new file mode 100644 index 0000000000000000000000000000000000000000..73b6d9bd1183fdc5a93442bd8e3684e824f11eb1 GIT binary patch literal 1423 zcmV;A1#tR_P)4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%R zJxN4CR9Fe^SW61RFc3}EwbyVFa4qB(9wHa;99|%Y@D>HvLKYrIG}U$(V>;&35CSQL zPNy&Pdt(^eF~*)|RePG`LJP02PuAYJF6X*KSMWK%W#68Uuw24{jR+P>MoAW1vvs!EIvzN>NB4$LYTBAuNGr8&DDg z-b=ueUsc~iO0z!hmQpTa$7O^}0B;CQCTGw% zF7E_zJ7EKJa?ZBFKFL!E1F!0YAOFi4+s1Z2{G|+9rkxCa`?Ws0Fgu}sUHGVDR0v@g zfw^=)pbUzr1Tw@CZPNQUfISRf8SGOj=a&cU+m@3UILI>_R>>=hfhpkNlWE$x;5~_f d1>=Y|^#av8VLMYT>nQ*L002ovPDHLkV1igMrk4N! literal 0 HcmV?d00001 diff --git a/028.bs/background.s b/028.bs/background.s index 39655f7..4254892 100644 --- a/028.bs/background.s +++ b/028.bs/background.s @@ -4,8 +4,8 @@ xdef RenderNextBackgroundFrame xdef backgroundScrollX xdef backgroundOnscreen - xdef backgroundOffscreen - + xdef backgroundOffscreen + xdef backgroundTilemap InitialiseBackground: move.l #0,backgroundScrollX @@ -32,10 +32,21 @@ RenderBackgroundTile: add.l d0,a0 lea backgroundTilemap,a1 add.l #BITPLANE_WIDTH_BYTES-2,a0 ; dest - add.w (a2),a1 ; source tile + move.w (a2),d0 ; source tile + add.w d0,a1 move.l backgroundScrollX,d2 lsr.b #BACKGROUND_SCROLL_SHIFT_CONVERT,d2 ; convert to pixels andi.w #$f,d2 ; find the shift component + + + if BALOON_BOB=1 + cmp.w #$306,d0 + bne .dontTriggerBaloon + move.w d2,d0 + jsr TriggerBaloon +.dontTriggerBaloon: + endif + jsr BlitBackgroundTile cmp.l #backgroundBitplanes1,backgroundOffscreen bne .offsetSub @@ -57,10 +68,15 @@ RenderNextBackgroundFrame: bne .skip move.l #0,backgroundScrollX .skip: - bsr RenderBackgroundTile + + if BALOON_BOB=1 + jsr RenderBaloon + endif + bsr RenderBackgroundTile + rts - - + + backgroundScrollX: dc.l 0 backgroundTilemap: @@ -72,6 +88,7 @@ backgroundOnscreen: dc.l backgroundBitplanes1 backgroundOffscreen: dc.l backgroundBitplanes2 + section .bss backgroundBitplanes1: @@ -81,5 +98,4 @@ backgroundBitplanes2: ds.b IMAGESIZE ds.b LINESIZE*10 - \ No newline at end of file diff --git a/028.bs/background.tmx b/028.bs/background.tmx index 118866e..764a531 100644 --- a/028.bs/background.tmx +++ b/028.bs/background.tmx @@ -5,7 +5,7 @@ - eJztmslqxDAMhlPoHFrodIEuh+7tYbq8//NVhQoGN14k/ZacMIfvEEKwtctydtM07ZS8EK+G76M5IU4N358RW+KcuBhAHolsR8C1vPWw+YP9j597raeV74P4BKx/XHmfs6XVLpfElWGf18QNcUvcAe2ByDtS2Sy6lehhzta1te6TZ44H9r/9+NiA6Wnn3kTv+4F4JJ6IZ8F3tdzNds/VAI98LdGtVg9aO7LvvhHvU//4sMpXoqctLftOc5KX30nI1QCPvNDTJ6xreceHxpdaic7xa9wrwnctNpViPeelsO9+Ed9TfHxE23JJfnfgP7k6WDt35oiuH5p4R8xD0HkmEo0s3vK39JM1H46YYbKeouLDOvvQErWullKPopEFJX9rnCH6SdQMM4V9v6SnNfRXvZDmWml9W/LdTmucjdxPsu/PvYvur5YAIteWeodeeRGFtne3MMp9akR8eM4zDiwTa05CzQfZd0frr7Txv4bY87gbiagJnqD6uVH7q5HuB7zv8lCyS/dt6Wm8dBT1/1VU/cidZT3Oc63nYu9YRcku3belp2ldy1rfEbaQ5IFR64cWyeyo9VyMjlXr/U2rfUf+b2NOJ6yXUt7SrJP2kqU8kNan6PqxBrzPPNF3N8j/1eeInOel9Snnu+jY+OUH2JqqXQ== + eJztmsluAjEMhqdSObTqLnU5dN9EC+//fDUqlkbpZCa2/9gZyuETIAGO4zXOLLuuWyp5IV4Nv4/miDg2/P6UOCPOiYsG9JHodgCU5b0Piy3sf/y5ljytfl/Et0Huevt6OPG9nC2tdrkkrgTfT9d5TdwQt8Qd0B6IvCPVzbK3kn0YsvWUrPvkM8cD+18/PhZgato55Rn8f5Z1nwDkPxCPxJNQt6nczXbP1QCPfC3ZW+0+aO3IvvtGvHe4+Pjsvf/o/adVvzFq2tKy7jQnefmdhFwN8MhnNX3CKqtWfOTqh8aXSvGqTQjmslaE7+ZsiqirKdZzXgr77qr77dGj4yPalnPyuz1/ydXBqXNnjuj6oYl3zTxkDZDbKhpdvPUv6SenfDhihsn7FBUf1tlHCUN13EMukrG+U6MLSv/SOEP0k9YZZg72/bF92oX+qhbSXCutb3O+2ymNs5b7yY3v585C0f3VHEDk2rHeoVZeRKHt3S20cp8aER+WGdWe/4E1J6Hmg+y7rfVX2vjfhdjzuBvhmlBjxtoCqH6u1f6qpfsB77s8lO7SdVt6Gq89inr+Kqp+5M6yHue50nOxd6yidJeu29LTlMqy1neELSR5oNX6oUUyOyo9F6Nj1fo8a6l9W35uY2hPeF/G8pZGTjpfGMsDaX2Krh+7gPeZJ/ruBvm8+hCR87y0PuV8Fx0bG34AHDOqDg== diff --git a/028.bs/baloon.s b/028.bs/baloon.s new file mode 100644 index 0000000..2d4187e --- /dev/null +++ b/028.bs/baloon.s @@ -0,0 +1,254 @@ + include "includes.i" + + if BALOON_BOB=1 + + xdef RenderBaloon + xdef baloonSaveOffscreen + xdef baloonSaveOnscreen + xdef baloonLastSaveOffscreen + xdef baloonLastSaveOnscreen + xdef DisableBaloon + xdef EnableBaloon + xdef TriggerBaloon + +BALOON_BLIT_WIDTH_BYTES equ 6 +BALOON_BLIT_WIDTH_WORDS equ BALOON_BLIT_WIDTH_BYTES/2 + +DisableBaloon: + bsr RestoreBaloonBackground + move.w #0,baloonsEnabled + move.l baloonStartX,baloonX + rts + +EnableBaloon: + move.w #1,baloonsEnabled + rts + +TriggerBaloon: + cmp.w #1,baloonsEnabled + bne .skip + ;; d0.w - y tile index + lsl.w #4,d0 + move.l #0,baloonLastSaveOffscreen + move.l #0,baloonLastSaveOnscreen + move.w d0,baloonY + move.l baloonStartX,baloonX + move.w #2,baloonsEnabled +.skip: + rts + +RestoreBaloonBackground: + bsr RestorePreviousBaloonBackground + move.l baloonSaveOffscreen,a0 + move.l baloonSaveOnscreen,baloonSaveOffscreen + move.l a0,baloonSaveOnscreen + + move.l baloonLastSaveOffscreen,a0 + move.l baloonLastSaveOnscreen,baloonLastSaveOffscreen + move.l a0,baloonLastSaveOnscreen + bsr RestorePreviousBaloonBackground + rts + + + +RestorePreviousBaloonBackground: + cmp.l #0,baloonLastSaveOffscreen + beq .skip + + move.l baloonX,d2 + add.l #16< + + + + + + + + + + eJxzZ2RgqGKCYEckNgi7o/HJlasD8p2AOAwLTa5cJZqdWUCx30CcC2SbM6Gqz8JhBiE5dDuQ3SOLZg9IjhMqhkwXQ/XtJMEfYWj2gMzIhco9h4rFMyFomD+UgWxDIOaHqofpw+cPcuIDZE8kE2n+oEV8RONJg9SSAwC2JUt4 + + + + + eJxjYBgFo2AU4AIAAyAAAQ== + + + + + eJxjYBgYIIVHjpEM8xihmBuHPDMSW5oMN8HsQKYJqWUhQh0x9sGAABZ5RjQ5GJ+XBHPRAQcR9rARMIMcwE8DMykFAFiPAMk= + + + diff --git a/028.bs/music.s b/028.bs/music.s index 9b4949d..f0eb8e2 100644 --- a/028.bs/music.s +++ b/028.bs/music.s @@ -23,10 +23,6 @@ module section .noload cnop 0,512 diskmodule: - if SFX=1 - incbin "assets/P61.placeholder" - else - incbin "assets/P61.song1" - endif + incbin "assets/P61.jmd-songA" cnop 0,512 enddiskmodule: \ No newline at end of file diff --git a/028.bs/sound.s b/028.bs/sound.s index 7b964c7..99dd1bc 100644 --- a/028.bs/sound.s +++ b/028.bs/sound.s @@ -30,7 +30,6 @@ PlayNextSound: xdef PlayChachingSound xdef PlayWhooshSound xdef PlayYaySound - xdef PlayZapSound PlayJumpSound: lea jump(pc),a1 @@ -82,16 +81,6 @@ PlayYaySound: move.w #(DMAF_AUD3|DMAF_SETCLR),DMACON(a6) rts -PlayZapSound: - KillSound - lea zap,a1 - move.l a1,AUD3LCH(a6) - move.w #124,AUD3PER(a6) - move.w #64,AUD3VOL(a6) - move.w #(endZap-zap)/2,AUD3LEN(a6) ;Set length in words - move.w #(DMAF_AUD3|DMAF_SETCLR),DMACON(a6) - rts - align 4 jump: incbin "out/jump.raw" @@ -112,11 +101,6 @@ endWhoosh: yay: incbin "out/yay.raw" endYay: -zap: - ;; incbin "out/zap.raw" - incbin "out/yay.raw" -endZap: - align 4 align 2 emptySound: