From 92948570dbfc4333d222605a363497fcba5ea55b Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 29 Jul 2020 15:34:24 -0400 Subject: [PATCH] mist: selena: hook up more of antenna display --- mist/Makefile | 2 +- mist/default_save.s | 14 +- mist/graphics_selena/antenna_close_w.png | Bin 8638 -> 7707 bytes mist/graphics_selena/antenna_scenes.png | Bin 0 -> 952 bytes mist/leveldata_selena.inc | 2 +- mist/link_book_mist_dock.s | 4 +- mist/playthrough_save.inc | 13 + mist/selena.s | 90 ++++--- mist/selena_sound_puzzle.s | 320 +++++++++++++++++++++++ mist/zp.inc | 64 +++-- 10 files changed, 451 insertions(+), 58 deletions(-) create mode 100644 mist/graphics_selena/antenna_scenes.png create mode 100644 mist/selena_sound_puzzle.s diff --git a/mist/Makefile b/mist/Makefile index 607cbc8c..485bbaea 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -203,7 +203,7 @@ selena.o: selena.s zp.inc hardware.inc common_defines.inc \ keyboard.s \ draw_pointer.s \ speaker_beeps.s \ - selena_organ_puzzle.s \ + selena_organ_puzzle.s selena_sound_puzzle.s \ gr_copy.s audio.s text_print.s decompress_fast_v2.s ca65 -o selena.o selena.s -l selena.lst diff --git a/mist/default_save.s b/mist/default_save.s index def81b04..339eb42e 100644 --- a/mist/default_save.s +++ b/mist/default_save.s @@ -41,7 +41,7 @@ ; Selena .byte LOAD_SELENA ; WHICH_LOAD = $80 .byte DIRECTION_N ; DIRECTION = $81 -.byte SELENA_WALKWAY1 ; LOCATION = $82 +.byte SELENA_ANTENNA_STEPS ; LOCATION = $82 .endif @@ -121,5 +121,17 @@ .byte $00 ; HOLDING_ITEM = $C7 .byte $00 ; BOILER_VALVE = $C8 .byte $00 ; TRUNK_STATE = $C9 +.byte $00 ; SELENA_BUTTON_STATUS = $CA +.byte $00 ; SELENA_ANTENNA1 = $CB +.byte $00 ; SELENA_ANTENNA2 = $CC +.byte $00 ; SELENA_ANTENNA3 = $CD +.byte $00 ; SELENA_ANTENNA4 = $CE +.byte $00 ; SELENA_ANTENNA5 = $CF +.byte $00 ; SELENA_LOCK1 = $D0 +.byte $00 ; SELENA_LOCK2 = $D1 +.byte $00 ; SELENA_LOCK3 = $D2 +.byte $00 ; SELENA_LOCK4 = $D3 +.byte $00 ; SELENA_LOCK5 = $D4 +.byte $00 ; SELENA_ANTENNA_ACTIVE = $D5 .endif diff --git a/mist/graphics_selena/antenna_close_w.png b/mist/graphics_selena/antenna_close_w.png index ef0f685b28f751100a80857cd0e53f6fa6bd4e6e..bdf54cb7bdc5ed2b88f0110e2649a843803be0d6 100644 GIT binary patch delta 7595 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 N002ovPDHLkV1mtZt#1GT delta 8525 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 Hu0mjfEp}ce diff --git a/mist/graphics_selena/antenna_scenes.png b/mist/graphics_selena/antenna_scenes.png new file mode 100644 index 0000000000000000000000000000000000000000..20cf02e201af01bdaf681c242aec616c85b439dd GIT binary patch literal 952 zcmV;p14sOcP)EX>4Tx04R}tkv&MmKpe$iQ>7vm1v`i+M5s;{#ELj-6^c-y)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HI!Hs@X9CsG4P@ z;xRFkT@?eb2w)g}h+;%yraqTUCg3@~?&0I>U4&K9P8q>4rtTK|H-_ z>74h8L#!w%#OK8023?T&k?XR{Z=4Gb3p_Jqq*L?6A!4!6#&R38qM;H`5r-93qkJLb zvch?bvs$jQ<~{ifgE?(wnd>x%5XT~xkc0>sRg_SMg$S)0DJD|1AM@}JI{qZNWO9|j z$gzM5R7j2={11M2Yv!YqZc;D?biUa3$0!ik1sXNm{yw(t#tGnm2ClT0zfuQgK1r{& zwD1woyA51iw={VVxZD8-o^;8O9LY~p$mfCgGy0}1(0>bbuerT7_i_3Fq^YaK4RCM> zj1?$*-Q(R|?Y;ebrrF;Qz7ulA^${4!0000pP)t-s0002v9$;Wjz5hi00Ha`>oSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%000SaNLh0L02Fip02N>X zmRIYN00007bV*G`2jmAG6CoQ($YDSL000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2H zM@dakSAh-}0004FNkl3gMGp_y_xfDY408S1{)fzB@uvY@(pmB0E&3f(6>Nx3gYq!id+UUSvdo9 z=6SLQ_7W&!ph$962lsj}P^1Kv)FXQ>5OafUYTY{mS;{@Z`Z9!erm(GwNCK@;_75@rH17mE0y1e#5+(m*Mbpq57 zsGT9fy(M}I#JV*QXLJ$tL1iE&D2Th*5%lr3mr7L-mtKNCX4^5h0{wTL$;f)|Yx2;3 zl1^zukndf<82MnwbGQ?THQF8IPN6H<@g90`814yTx8*^V(@v4HDfXwq?xxrfpfsWhT+y^F232Oed!E)5{kP^umpzUCfqv|Llm!@*<>^lzK a``0i0dPzN?ObRvt0000187 = 30 degrees, so 12 images?) + +; #1 pool -- 153.4 +; #2 chasm -- 130.3 +; #3 clock -- 55.6 +; #4 crystals -- 15.0 +; #5 tunnel -- 212.2 + +; press sum button, goes to each in turn (on display and numbers, not yellow) +; 15, 153, 212, 130, 55 +; crystals, pool, tunnel, chasm, clock + + +; variables +; SELENA_BUTTON_STATUS (bitmask) +; SELENA_ANTENNA_ACTIVE 0..4 +; SELENA_ANTENNA1-5 (value 0..11 for each) +; SELENA_LOCK1-5 +; SELENA_SUB ???? + + +draw_antenna_panel: + + ; draw lit button + + lda SELENA_ANTENNA_ACTIVE + tay + + lda antenna_icon_xs,Y + sta XPOS + lda #34 + sta YPOS + tya + asl + tay + lda antenna_icons,Y + sta INL + lda antenna_icons+1,Y + sta INH + + jsr put_sprite_crop + + ; draw screen + + lda SELENA_ANTENNA_ACTIVE + tay + lda SELENA_ANTENNA1,Y + tay + + lda antenna_display_ys,Y + sta YPOS + lda #15 + sta XPOS + tya + asl + tay + lda antenna_display,Y + sta INL + lda antenna_display+1,Y + sta INH + + jsr put_sprite_crop + + + + ; print angle + + ; line 21 is at #$650 + + lda #$50 + sta OUTL + lda #$7 + clc + adc DRAW_PAGE + sta OUTH + ldy #17 + + lda SELENA_ANTENNA_ACTIVE + asl + asl ; multiply by 4 + tax + + lda antenna_angles,X + ora #$80 + sta (OUTL),Y + iny + lda antenna_angles+1,X + ora #$80 + sta (OUTL),Y + iny + lda antenna_angles+2,X + ora #$80 + sta (OUTL),Y + iny + iny ; skip decimal point + lda antenna_angles+3,X + ora #$80 + sta (OUTL),Y + + ; draw sound effect text + + +antenna_default_sound: + + lda #sound0_static + +antenna_print_sound: + sta OUTH + + jsr move_and_print + + rts + + + + +sound_names: + +sound0_static: + .byte 16,21,"[STATIC]",0 + +sound1_water: + .byte 12,21,"[RUNNING WATER]",0 + +sound2_flame: + .byte 13,21,"[ROARING FIRE]",0 + +sound3_clocks: + .byte 12,21,"[CLOCK TICKING]",0 + +sound4_crystals: + .byte 10,21,"[FLUTE-LIKE WHISTLE]",0 + +sound5_tunnel: + .byte 13,21,"[RUSHING WIND]",0 + + +antenna_angles: + .byte "0000" ; 0 = 0 + .byte "0150" ; 1 = 30 15.0 crystal + .byte "0556" ; 2 = 60 55.6 clock + .byte "0900" ; 3 = 90 + .byte "1303" ; 4 = 120 130.3 chasm + .byte "1534" ; 5 = 150 153.4 pool + .byte "1800" ; 6 = 180 + .byte "2122" ; 7 = 210 212.2 tunnel + .byte "2400" ; 8 = 240 + .byte "2700" ; 9 = 270 + .byte "3000" ; 10 = 300 + .byte "3300" ; 11 = 330 + +antenna_icon_xs: + .byte 8,13,18,23,27 + +antenna_icons: + .word icon_water_sprite + .word icon_flame_sprite + .word icon_clock_sprite + .word icon_crystal_sprite + .word icon_tunnel_sprite + +icon_water_sprite: + .byte 4,3 + .byte $dd,$dd,$d0,$dd + .byte $dd,$dd,$d0,$dd + .byte $0d,$d0,$0d,$d0 + +icon_flame_sprite: + .byte 4,3 + .byte $dd,$dd,$d0,$dd + .byte $d0,$0d,$dd,$d0 + .byte $dd,$dd,$d0,$0d + +icon_clock_sprite: + .byte 4,3 + .byte $d0,$dd,$0d,$dd + .byte $00,$dd,$dd,$0d + .byte $00,$d0,$dd,$0d + +icon_crystal_sprite: + .byte 3,3 + .byte $dd,$0d,$dd + .byte $dd,$00,$dd + .byte $dd,$d0,$dd + +icon_tunnel_sprite: + .byte 4,3 + .byte $d0,$0d,$dd,$0d + .byte $dd,$00,$00,$dd + .byte $0d,$00,$00,$0d + +antenna_display_ys: + .byte 4+6, 0+6, 0+6 + .byte 4+6, 2+6, 6+6 + .byte 10+6, 2+6, 8+6 + .byte 10+6,10+6,10+6 + +antenna_display: + .word antenna_display0_sprite + .word antenna_display1_sprite + .word antenna_display2_sprite + .word antenna_display3_sprite + .word antenna_display4_sprite + .word antenna_display5_sprite + .word antenna_display6_sprite + .word antenna_display7_sprite + .word antenna_display8_sprite + .word antenna_display9_sprite + .word antenna_display10_sprite + .word antenna_display11_sprite + +antenna_display0_sprite: + .byte 9,5 + .byte $66,$66,$66,$66,$66,$66,$56,$66,$66 + .byte $66,$b6,$66,$66,$66,$66,$55,$56,$86 + .byte $66,$bb,$66,$66,$99,$56,$85,$88,$88 + .byte $66,$bb,$55,$66,$85,$88,$88,$88,$88 + .byte $86,$8b,$85,$88,$88,$88,$88,$88,$88 + + +antenna_display1_sprite: + .byte 9,7 + .byte $66,$66,$66,$66,$66,$bb,$66,$66,$66 + .byte $66,$66,$66,$66,$66,$bb,$66,$66,$66 + .byte $86,$66,$66,$33,$56,$bb,$66,$66,$bb + .byte $88,$86,$56,$55,$55,$bb,$66,$66,$bb + .byte $88,$55,$55,$55,$55,$bb,$66,$66,$5b + .byte $55,$55,$55,$55,$55,$55,$66,$66,$55 + .byte $55,$55,$55,$85,$88,$65,$66,$66,$65 + +antenna_display2_sprite: + .byte 9,7 + .byte $66,$66,$66,$55,$55,$66,$56,$55,$66 + .byte $66,$66,$66,$44,$45,$66,$77,$77,$66 + .byte $66,$66,$66,$44,$44,$66,$55,$57,$66 + .byte $66,$66,$66,$44,$44,$66,$55,$55,$66 + .byte $66,$56,$66,$44,$d4,$77,$55,$55,$56 + .byte $56,$88,$86,$44,$11,$77,$55,$55,$55 + .byte $88,$88,$88,$87,$71,$87,$88,$88,$88 + +antenna_display3_sprite: + .byte 9,5 + .byte $56,$66,$66,$66,$66,$66,$66,$66,$66 + .byte $55,$57,$76,$66,$66,$66,$66,$66,$66 + .byte $55,$55,$57,$66,$77,$66,$66,$86,$66 + .byte $85,$55,$55,$57,$55,$57,$56,$88,$88 + .byte $88,$88,$85,$85,$85,$88,$85,$55,$55 + +antenna_display4_sprite: + .byte 9,6 + .byte $66,$66,$66,$66,$96,$96,$96,$66,$66 + .byte $66,$66,$66,$66,$59,$56,$59,$66,$66 + .byte $11,$11,$11,$11,$11,$44,$94,$91,$11 + .byte $11,$11,$11,$11,$11,$54,$44,$99,$11 + .byte $11,$88,$88,$11,$11,$55,$54,$54,$51 + .byte $81,$88,$88,$88,$85,$85,$85,$85,$85 + +antenna_display5_sprite: + .byte 9,4 + .byte $11,$66,$66,$66,$66,$66,$66,$66,$66 + .byte $11,$66,$66,$88,$88,$88,$88,$86,$66 + .byte $51,$55,$86,$88,$88,$88,$88,$88,$88 + .byte $85,$88,$88,$88,$88,$88,$88,$88,$88 + +antenna_display6_sprite: + .byte 9,2 + .byte $88,$66,$66,$66,$66,$66,$66,$66,$66 + .byte $88,$88,$66,$66,$66,$66,$66,$66,$66 + +antenna_display7_sprite: + .byte 9,6 + .byte $66,$66,$36,$66,$56,$66,$66,$66,$66 + .byte $66,$66,$3b,$66,$55,$66,$66,$66,$66 + .byte $66,$56,$53,$56,$44,$66,$66,$66,$66 + .byte $88,$88,$88,$88,$88,$88,$88,$88,$88 + .byte $88,$88,$88,$88,$88,$88,$88,$88,$88 + .byte $88,$88,$88,$88,$88,$88,$88,$88,$88 + +antenna_display8_sprite: + .byte 9,3 + .byte $88,$88,$88,$88,$88,$88,$55,$86,$58 + .byte $88,$88,$88,$88,$88,$88,$55,$55,$55 + .byte $88,$88,$88,$88,$88,$58,$55,$55,$55 + +antenna_display9_sprite: + .byte 9,2 + .byte $86,$66,$66,$66,$66,$66,$66,$66,$66 + .byte $88,$86,$86,$86,$66,$66,$66,$86,$88 + +antenna_display10_sprite: + .byte 9,2 + .byte $86,$86,$66,$66,$66,$66,$66,$66,$66 + .byte $88,$88,$88,$88,$88,$88,$86,$86,$86 + +antenna_display11_sprite: + .byte 9,2 + .byte $55,$86,$86,$86,$86,$86,$86,$86,$66 + .byte $88,$88,$88,$88,$88,$88,$88,$88,$88 + + + + diff --git a/mist/zp.inc b/mist/zp.inc index a79145c0..b0e3704d 100644 --- a/mist/zp.inc +++ b/mist/zp.inc @@ -64,7 +64,9 @@ ENVELOPE_SHAPE = $7D PATTERN_L = $7E PATTERN_H = $7F -; note: rest are up at $d0 +; note 70-7f also used by disk code + +; note: rest are up at $f0 ; We have to save/restore the following values ; when loading/storing from disk @@ -238,23 +240,34 @@ TRUNK_STATE = $C9 ; trunk state in stonsehip TRUNK_KEY_TAKEN = $04 TRUNK_HATCH_OPEN = $08 -END_OF_SAVE = $CA +SELENA_BUTTON_STATUS = $CA + SELENA_BUTTON1 = $01 + SELENA_BUTTON2 = $02 + SELENA_BUTTON3 = $04 + SELENA_BUTTON4 = $08 + SELENA_BUTTON5 = $10 + + +SELENA_ANTENNA1 = $CB +SELENA_ANTENNA2 = $CC +SELENA_ANTENNA3 = $CD +SELENA_ANTENNA4 = $CE +SELENA_ANTENNA5 = $CF + +SELENA_LOCK1 = $D0 +SELENA_LOCK2 = $D1 +SELENA_LOCK3 = $D2 +SELENA_LOCK4 = $D3 +SELENA_LOCK5 = $D4 + +SELENA_ANTENNA_ACTIVE = $D5 + +END_OF_SAVE = $D6 ; done game puzzle state -; rest of pt3_player -ORNAMENT_L = $D0 -ORNAMENT_H = $D1 -SAMPLE_L = $D2 -SAMPLE_H = $D3 -LOOP = $D4 -MB_VALUE = $D5 -MB_ADDR_L = $D6 -MB_ADDR_H = $D7 -DONE_PLAYING = $D8 -DONE_SONG = $D9 -PT3_TEMP = $DA + JOYSTICK_ENABLED= $DD @@ -273,14 +286,25 @@ LONG_FRAME = $E4 DISP_PAGE = $ED ; ALL DRAW_PAGE = $EE ; ALL +; rest of pt3_player +PT3_TEMP = $EF +ORNAMENT_L = $F0 +ORNAMENT_H = $F1 +SAMPLE_L = $F2 +SAMPLE_H = $F3 +LOOP = $F4 +MB_VALUE = $F5 +MB_ADDR_L = $F6 +MB_ADDR_H = $F7 +DONE_PLAYING = $F8 +DONE_SONG = $F9 -TINL = $F0 -TINH = $F1 -BINL = $F2 -BINH = $F3 +;TINL = $F0 +;TINH = $F1 +;BINL = $F2 +;BINH = $F3 +;SCROLL_COUNT = $F9 - -SCROLL_COUNT = $F9 TEMP = $FA TEMPY = $FB INL = $FC