ootw: move earthquake framebuffer really high

This commit is contained in:
Vince Weaver 2019-03-18 21:29:32 -04:00
parent 858e622814
commit e1b13a9526
6 changed files with 71 additions and 11 deletions

View File

@ -43,9 +43,10 @@ Ootw Memory map:
04-07 GR page0
08-0b GR page1
0c-0f background ($c00 = disk load buffer)
10-13 earthquake background (shifted) background
10-13 background overlay
14-16 loader
17-bf program-data (42.25k)
17-bf program-data (41.25k)
bc-bf earthquake background (shifted)
c0-cf I/O
d0-ff ROM

View File

@ -9,11 +9,13 @@ TODO:
movement -- note these are hard due to limitations of the Apple II keyboard
+ running: Missing one running frame
+ ability to jump
+ ability to run+jump
+ ability to kick while crouching
+ ability to shoot
sprites_to_draw:
+ physicist jumping
+ physicist crouch-kicking
+ physicist run+jumping
+ physicist swimming
+ physicist getting out of pool
+ beast tripping

View File

@ -55,7 +55,7 @@ no_shake:
jsr gr_copy_to_current
jmp done_shake
shake_shake:
jsr gr_copy_to_current_1000
jsr gr_copy_to_current_BC00
done_shake:
rts
@ -89,3 +89,60 @@ no_boulder:
rts
;=========================================================
; gr_copy_to_current, 40x48 version
;=========================================================
; copy $BC00 to DRAW_PAGE
gr_copy_to_current_BC00:
lda DRAW_PAGE ; 3
clc ; 2
adc #$4 ; 2
sta gr_copy_line_BC+5 ; 4
sta gr_copy_line_BC+11 ; 4
adc #$1 ; 2
sta gr_copy_line_BC+17 ; 4
sta gr_copy_line_BC+23 ; 4
adc #$1 ; 2
sta gr_copy_line_BC+29 ; 4
sta gr_copy_line_BC+35 ; 4
adc #$1 ; 2
sta gr_copy_line_BC+41 ; 4
sta gr_copy_line_BC+47 ; 4
;===========
; 45
ldy #119 ; for early ones, copy 120 bytes ; 2
gr_copy_line_BC:
lda $BC00,Y ; load a byte (self modified) ; 4
sta $400,Y ; store a byte (self modified) ; 5
lda $BC80,Y ; load a byte (self modified) ; 4
sta $480,Y ; store a byte (self modified) ; 5
lda $BD00,Y ; load a byte (self modified) ; 4
sta $500,Y ; store a byte (self modified) ; 5
lda $BD80,Y ; load a byte (self modified) ; 4
sta $580,Y ; store a byte (self modified) ; 5
lda $BE00,Y ; load a byte (self modified) ; 4
sta $600,Y ; store a byte (self modified) ; 5
lda $BE80,Y ; load a byte (self modified) ; 4
sta $680,Y ; store a byte (self modified) ; 5
lda $BF00,Y ; load a byte (self modified) ; 4
sta $700,Y ; store a byte (self modified) ; 5
lda $BF80,Y ; load a byte (self modified) ; 4
sta $780,Y ; store a byte (self modified) ; 5
dey ; decrement pointer ; 2
bpl gr_copy_line_BC ; ; 2nt/3
rts ; 6

View File

@ -1,8 +1,8 @@
;=========================================================
; gr_make_quake
;=========================================================
; Take image in 0xc00
; Copy to 0x1000
; Take image in $c00
; Copy to $BC00
; Actually copy lines 2..41 to 0..39
gr_make_quake:
@ -12,7 +12,7 @@ make_quake_loop:
sta OUTL
lda gr_offsets+1,x
clc
adc #$C
adc #$B8
sta OUTH
inx
@ -43,7 +43,7 @@ quake_clear_bottom:
sta OUTL
lda gr_offsets+1,x
clc
adc #$C
adc #$B8
sta OUTH
inx

View File

@ -25,12 +25,12 @@ ootw_cavern:
sta RIGHT_LIMIT
;=============================
; Load backgrounds to $c00 / $1000
; Load background to $c00
jsr cavern_load_background
;================================
; Load quake background to $1000
; Load quake background to $BC00
jsr gr_make_quake

View File

@ -52,7 +52,7 @@ load_swing_bg:
jsr load_rle_gr
;================================
; Load quake background to $1000
; Load quake background to $BC00
jsr gr_make_quake