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 0000000..73b6d9b
Binary files /dev/null and b/028.bs/assets/baloonMask.png differ
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<
+
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: