mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-27 17:29:49 +00:00
arrival: some timing changes
This commit is contained in:
parent
3c9da970ac
commit
ea3d58133d
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
@ -5,7 +5,7 @@
|
|||||||
; Some zero-page action
|
; Some zero-page action
|
||||||
;TFV_X = 0
|
;TFV_X = 0
|
||||||
;TFV_Y = 1
|
;TFV_Y = 1
|
||||||
|
TFG_X = 2
|
||||||
|
|
||||||
arriving_there:
|
arriving_there:
|
||||||
|
|
||||||
@ -28,8 +28,8 @@ setup_arrival:
|
|||||||
lda #8
|
lda #8
|
||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
|
|
||||||
; lda #22
|
lda #22
|
||||||
; sta TFV_Y
|
sta TFG_X
|
||||||
|
|
||||||
;=============================
|
;=============================
|
||||||
; Load graphic page0
|
; Load graphic page0
|
||||||
@ -94,7 +94,7 @@ arloopB:dex ; 2
|
|||||||
|
|
||||||
|
|
||||||
;================================================
|
;================================================
|
||||||
; Leaving Loop
|
; Arrival Loop
|
||||||
;================================================
|
;================================================
|
||||||
; each scan line 65 cycles
|
; each scan line 65 cycles
|
||||||
; 1 cycle each byte (40cycles) + 25 for horizontal
|
; 1 cycle each byte (40cycles) + 25 for horizontal
|
||||||
@ -129,7 +129,7 @@ ar_begin_loop:
|
|||||||
|
|
||||||
inc FRAME ; 5
|
inc FRAME ; 5
|
||||||
lda FRAME ; 3
|
lda FRAME ; 3
|
||||||
cmp #12 ; 2
|
cmp #20 ; 2
|
||||||
bne ar_waste_12 ; 3
|
bne ar_waste_12 ; 3
|
||||||
;============
|
;============
|
||||||
; 13
|
; 13
|
||||||
@ -236,7 +236,7 @@ arloop7:dex ; 2
|
|||||||
; Draw the Field
|
; Draw the Field
|
||||||
;===============================
|
;===============================
|
||||||
draw_the_field:
|
draw_the_field:
|
||||||
jsr erase_field ; 6+1249
|
|
||||||
|
|
||||||
;===============================
|
;===============================
|
||||||
; Draw one of three states
|
; Draw one of three states
|
||||||
@ -258,8 +258,8 @@ draw_the_field:
|
|||||||
|
|
||||||
ar_jump_table:
|
ar_jump_table:
|
||||||
.word (ar_state0-1)
|
.word (ar_state0-1)
|
||||||
.word (ar_state2-1)
|
.word (ar_state0-1)
|
||||||
.word (ar_state4-1)
|
.word (ar_state0-1)
|
||||||
|
|
||||||
ar_back_from_jumptable:
|
ar_back_from_jumptable:
|
||||||
|
|
||||||
@ -270,18 +270,16 @@ ar_back_from_jumptable:
|
|||||||
|
|
||||||
; do_nothing should be 3640 (bottom of GR screen)
|
; do_nothing should be 3640 (bottom of GR screen)
|
||||||
; 4550 (vblank)
|
; 4550 (vblank)
|
||||||
; -1255 (clear yard)
|
|
||||||
; -23 (setup jump table)
|
; -23 (setup jump table)
|
||||||
; -5259 (in state code)
|
; -6237 (in state code)
|
||||||
; -10 keypress
|
; -10 keypress
|
||||||
; ===========
|
; ===========
|
||||||
; 1643
|
; 1920
|
||||||
|
|
||||||
|
; Try X=19 Y=19 cycles=1920
|
||||||
|
|
||||||
; Try X=163 Y=2 cycles=1643
|
ldy #19 ; 2
|
||||||
|
arloop1:ldx #19 ; 2
|
||||||
ldy #2 ; 2
|
|
||||||
arloop1:ldx #163 ; 2
|
|
||||||
arloop2:dex ; 2
|
arloop2:dex ; 2
|
||||||
bne arloop2 ; 2nt/3
|
bne arloop2 ; 2nt/3
|
||||||
dey ; 2
|
dey ; 2
|
||||||
@ -304,35 +302,35 @@ ar_all_done:
|
|||||||
;=====================
|
;=====================
|
||||||
; State0 : do nothing
|
; State0 : do nothing
|
||||||
;=====================
|
;=====================
|
||||||
; Delay 5259
|
; Delay 6237
|
||||||
; -2072
|
; -1524
|
||||||
; -3
|
; -3
|
||||||
;===========
|
;===========
|
||||||
; 3184
|
; 4710
|
||||||
|
|
||||||
ar_state0:
|
ar_state0:
|
||||||
|
|
||||||
|
; draw fs standing
|
||||||
; draw bird
|
lda #>tfg_stand_left ; 2
|
||||||
lda #>bird_stand_right_sprite ; 2
|
|
||||||
sta INH ; 3
|
sta INH ; 3
|
||||||
lda #<bird_stand_right_sprite ; 2
|
lda #<tfg_stand_left ; 2
|
||||||
sta INL ; 3
|
sta INL ; 3
|
||||||
|
|
||||||
lda #24 ; 2
|
lda #22 ; 2
|
||||||
sta XPOS ; 3
|
sta XPOS ; 3
|
||||||
lda #20 ; 2
|
lda #24 ; 2
|
||||||
sta YPOS ; 3
|
sta YPOS ; 3
|
||||||
|
|
||||||
jsr put_sprite ; 6
|
jsr put_sprite ; 6
|
||||||
;=========
|
;=========
|
||||||
; 26 + 2046 = 2072
|
; 26 + 1498 = 1524
|
||||||
|
|
||||||
|
; Try X=35 Y=26 cycles=4707R3
|
||||||
; Try X=211 Y=3 cycles=3184
|
; Try X=93 Y=10 cycles=4711
|
||||||
|
; Try X=53 Y=23 cycles=6234
|
||||||
ldy #3 ; 2
|
lda $0
|
||||||
arloopT:ldx #211 ; 2
|
ldy #26 ; 2
|
||||||
|
arloopT:ldx #35 ; 2
|
||||||
arloopU:dex ; 2
|
arloopU:dex ; 2
|
||||||
bne arloopU ; 2nt/3
|
bne arloopU ; 2nt/3
|
||||||
dey ; 2
|
dey ; 2
|
||||||
@ -345,15 +343,17 @@ arloopU:dex ; 2
|
|||||||
;======================================================
|
;======================================================
|
||||||
; State2 : draw walking
|
; State2 : draw walking
|
||||||
;======================================================
|
;======================================================
|
||||||
|
; 1255 = erase field
|
||||||
; 1490 = 1471+19 (draw tfv)
|
; 1490 = 1471+19 (draw tfv)
|
||||||
; 33 (draw susie)
|
; 33 (draw susie)
|
||||||
; 2072 (draw bird)
|
; 1519 (draw fs)
|
||||||
; 1661 (draw door)
|
; 1937 (draw falls)
|
||||||
; 3 (return)
|
; 3 (return)
|
||||||
;==========
|
;==========
|
||||||
; 5259
|
; 6237
|
||||||
|
.align $100
|
||||||
ar_state2:
|
ar_state2:
|
||||||
|
jsr erase_field ; 6+1249
|
||||||
|
|
||||||
lda TFV_X ; 3
|
lda TFV_X ; 3
|
||||||
sta XPOS ; 3
|
sta XPOS ; 3
|
||||||
@ -379,7 +379,7 @@ ar_stand:
|
|||||||
lda #34 ; 2
|
lda #34 ; 2
|
||||||
jsr delay_a ; 25+34 = 59
|
jsr delay_a ; 25+34 = 59
|
||||||
|
|
||||||
jmp ar_susie ; 3
|
jmp girl_walk ; 3
|
||||||
;=========
|
;=========
|
||||||
; 18 + 1392 = 1410
|
; 18 + 1392 = 1410
|
||||||
|
|
||||||
@ -395,6 +395,46 @@ ar_walk:
|
|||||||
; 16 + 1455 = 1471
|
; 16 + 1455 = 1471
|
||||||
|
|
||||||
|
|
||||||
|
; girl walk
|
||||||
|
girl_walk:
|
||||||
|
lda TFG_X ; 3
|
||||||
|
sta XPOS ; 3
|
||||||
|
lda #24 ; 2
|
||||||
|
sta YPOS ; 3
|
||||||
|
|
||||||
|
lda FRAMEH ; 3
|
||||||
|
and #$1 ; 2
|
||||||
|
beq arg_walk ; 3
|
||||||
|
;===========
|
||||||
|
; 19
|
||||||
|
|
||||||
|
|
||||||
|
arg_stand:
|
||||||
|
; draw fs standing ; -1
|
||||||
|
lda #>tfg_stand_left ; 2
|
||||||
|
sta INH ; 3
|
||||||
|
lda #<tfg_stand_left ; 2
|
||||||
|
sta INL ; 3
|
||||||
|
jsr put_sprite ; 6
|
||||||
|
|
||||||
|
lda $0 ; nop ; 3
|
||||||
|
|
||||||
|
jmp ar_susie ; 3
|
||||||
|
;=========
|
||||||
|
; 18 + 1498 = 1516
|
||||||
|
|
||||||
|
|
||||||
|
arg_walk:
|
||||||
|
; draw deater walking
|
||||||
|
lda #>tfg_walk_left ; 2
|
||||||
|
sta INH ; 3
|
||||||
|
lda #<tfg_walk_left ; 2
|
||||||
|
sta INL ; 3
|
||||||
|
jsr put_sprite ; 6
|
||||||
|
;=========
|
||||||
|
; 16 + 1503 = 1519
|
||||||
|
|
||||||
|
|
||||||
; draw susie
|
; draw susie
|
||||||
; 33 cycles
|
; 33 cycles
|
||||||
ar_susie:
|
ar_susie:
|
||||||
@ -419,44 +459,31 @@ ar_no_susie:
|
|||||||
; 19
|
; 19
|
||||||
ar_yes_susie:
|
ar_yes_susie:
|
||||||
lda #0 ; 2
|
lda #0 ; 2
|
||||||
sta $450,X ; 5
|
sta $4d0,X ; 5
|
||||||
sta $451,X ; 5
|
sta $4d1,X ; 5
|
||||||
lda #$0f ; 2
|
lda #$0f ; 2
|
||||||
sta $452,X ; 5
|
sta $4d2,X ; 5
|
||||||
ar_done_susie:
|
ar_done_susie:
|
||||||
;===========
|
;===========
|
||||||
; 19
|
; 19
|
||||||
|
|
||||||
|
|
||||||
; draw bird
|
|
||||||
lda #>bird_stand_right_sprite ; 2
|
ar_draw_wfall:
|
||||||
|
; draw minifalls
|
||||||
|
lda #>wfall_sprite ; 2
|
||||||
sta INH ; 3
|
sta INH ; 3
|
||||||
lda #<bird_stand_right_sprite ; 2
|
lda #<wfall_sprite ; 2
|
||||||
sta INL ; 3
|
sta INL ; 3
|
||||||
|
|
||||||
lda #24 ; 2
|
lda #0 ; 2
|
||||||
sta XPOS ; 3
|
|
||||||
lda #20 ; 2
|
|
||||||
sta YPOS ; 3
|
|
||||||
|
|
||||||
jsr put_sprite ; 6
|
|
||||||
;=========
|
|
||||||
; 26 + 2046 = 2072
|
|
||||||
ar_draw_door:
|
|
||||||
; draw door
|
|
||||||
lda #>door_sprite ; 2
|
|
||||||
sta INH ; 3
|
|
||||||
lda #<door_sprite ; 2
|
|
||||||
sta INL ; 3
|
|
||||||
|
|
||||||
lda #5 ; 2
|
|
||||||
sta XPOS ; 3
|
sta XPOS ; 3
|
||||||
lda #24 ; 2
|
lda #24 ; 2
|
||||||
sta YPOS ; 3
|
sta YPOS ; 3
|
||||||
|
|
||||||
jsr put_sprite ; 6
|
jsr put_sprite ; 6
|
||||||
;=========
|
;=========
|
||||||
; 26 + 1635 = 1661
|
; 26 + 1911 = 1937
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -527,7 +554,7 @@ arloopW:dex ; 2
|
|||||||
dey ; 2
|
dey ; 2
|
||||||
bne arloopV ; 2nt/3
|
bne arloopV ; 2nt/3
|
||||||
|
|
||||||
jmp ar_draw_door
|
jmp ar_draw_wfall
|
||||||
|
|
||||||
|
|
||||||
;======================
|
;======================
|
||||||
|
@ -108,21 +108,28 @@ tfv_walk_right:
|
|||||||
|
|
||||||
tfg_stand_left:
|
tfg_stand_left:
|
||||||
.byte $4,$6
|
.byte $4,$6
|
||||||
.byte $00,$b8,$88,$00
|
.byte $00,$b8,$88,$00 ; 00=2 0x=0 x0=0 xx=2
|
||||||
.byte $0B,$bb,$88,$00
|
.byte $0B,$bb,$88,$00 ; 00=1 0x=1 x0=0 xx=2
|
||||||
.byte $00,$00,$11,$88
|
.byte $00,$00,$11,$88 ; 00=2 0x=0 x0=0 xx=2
|
||||||
.byte $0B,$01,$11,$00
|
.byte $0B,$01,$11,$00 ; 00=1 0x=2 x0=0 xx=1
|
||||||
.byte $00,$11,$11,$10
|
.byte $00,$11,$11,$10 ; 00=1 0x=0 x0=1 xx=2
|
||||||
.byte $00,$81,$81,$01
|
.byte $00,$81,$81,$01 ; 00=1 0x=1 x0=0 xx=2
|
||||||
|
; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y
|
||||||
|
; = 33 + 6*52 + 30*8 + 64*4 + 69*1 + 54*11 - 6
|
||||||
|
; = 1498
|
||||||
|
|
||||||
tfg_walk_left:
|
tfg_walk_left:
|
||||||
.byte $4,$6
|
.byte $4,$6
|
||||||
.byte $00,$b8,$88,$00
|
.byte $00,$b8,$88,$00 ; 00=2 0x=0 x0=0 xx=2
|
||||||
.byte $0b,$bb,$88,$00
|
.byte $0b,$bb,$88,$00 ; 00=1 0x=1 x0=0 xx=2
|
||||||
.byte $00,$00,$11,$88
|
.byte $00,$00,$11,$88 ; 00=2 0x=0 x0=0 xx=2
|
||||||
.byte $b0,$01,$11,$00
|
.byte $b0,$01,$11,$00 ; 00=1 0x=1 x0=1 xx=1
|
||||||
.byte $00,$10,$11,$11
|
.byte $00,$10,$11,$11 ; 00=1 0x=0 x0=1 xx=2
|
||||||
.byte $00,$81,$01,$81
|
.byte $00,$81,$01,$81 ; 00=1 0x=1 x0=0 xx=2
|
||||||
|
; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y
|
||||||
|
; = 33 + 6*52 + 30*8 + 64*3 + 69*2 + 54*11 - 6
|
||||||
|
; = 1503
|
||||||
|
|
||||||
|
|
||||||
bird_stand_right_sprite:
|
bird_stand_right_sprite:
|
||||||
.byte $6,$7
|
.byte $6,$7
|
||||||
@ -171,3 +178,15 @@ door_sprite:
|
|||||||
; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y
|
; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y
|
||||||
; = 33 + 6*52 + 30*0 + 64*0 + 69*0 + 54*24 - 6
|
; = 33 + 6*52 + 30*0 + 64*0 + 69*0 + 54*24 - 6
|
||||||
; = 1635
|
; = 1635
|
||||||
|
|
||||||
|
wfall_sprite:
|
||||||
|
.byte $5, $6
|
||||||
|
.byte $57,$57,$57,$57,$00 ; 00=1 0x=0 x0=0 xx=4
|
||||||
|
.byte $66,$66,$55,$55,$00 ; 00=1 0x=0 x0=0 xx=4
|
||||||
|
.byte $55,$55,$66,$55,$57 ; 00=0 0x=0 x0=0 xx=5
|
||||||
|
.byte $75,$55,$66,$55,$55 ; 00=0 0x=0 x0=0 xx=5
|
||||||
|
.byte $75,$55,$66,$f5,$55 ; 00=0 0x=0 x0=0 xx=5
|
||||||
|
.byte $55,$77,$76,$76,$66 ; 00=0 0x=0 x0=0 xx=5
|
||||||
|
; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y
|
||||||
|
; = 33 + 6*52 + 30*2 + 64*0 + 69*0 + 54*28 - 6
|
||||||
|
; = 1911
|
||||||
|
Loading…
Reference in New Issue
Block a user