tfv: more cycles annotations

This commit is contained in:
Vince Weaver 2017-11-23 23:57:30 -05:00
parent 91df570368
commit aff3b25264
3 changed files with 277 additions and 255 deletions

View File

@ -85,6 +85,16 @@ static unsigned char water_map[32]={
static int displayed=0; static int displayed=0;
struct cycle_counts {
int flying;
int getkey;
int page_flip;
int mode7;
int multiply;
int lookup_map;
int put_sprite;
} cycles;
static int lookup_map(int xx, int yy) { static int lookup_map(int xx, int yy) {
int color,offset; int color,offset;
@ -122,7 +132,7 @@ static int lookup_map(int xx, int yy) {
} }
cycles.lookup_map+=53;
return color; return color;
} }
@ -183,15 +193,7 @@ static unsigned char horizontal_lookup[7][16] = {
}; };
struct cycle_counts {
int flying;
int getkey;
int page_flip;
int mode7;
int multiply;
int lookup_map;
int put_sprite;
} cycles;
static void fixed_add(unsigned char x_i,unsigned char x_f, static void fixed_add(unsigned char x_i,unsigned char x_f,
@ -573,7 +575,7 @@ void draw_background_mode7(void) {
} }
// go through all points in this screen line // go through all points in this screen line
for (ram[SCREEN_X] = 0; ram[SCREEN_X] < LOWRES_W-1; ram[SCREEN_X]++) { for (ram[SCREEN_X] = 0; ram[SCREEN_X] < LOWRES_W; ram[SCREEN_X]++) {
// get a pixel from the tile and put it on the screen // get a pixel from the tile and put it on the screen
map_color=lookup_map(ram[SPACEX_I],ram[SPACEY_I]); map_color=lookup_map(ram[SPACEX_I],ram[SPACEY_I]);
@ -618,50 +620,43 @@ int flying(void) {
/************************************************/ /************************************************/
gr(); gr();
clear_bottom(PAGE0); /* jsr clear_screens */ clear_bottom(PAGE0);
clear_bottom(PAGE1); /* jsr set_gr_page0 */ clear_bottom(PAGE1);
ram[SHIPY]=20; /* lda #20 */ ram[SHIPY]=20;
/* sta SHIPY */ ram[TURNING]=0;
/* lda #0 */ ram[SPACEX_I]=0;
ram[TURNING]=0; /* sta TURNING */ ram[SPACEY_I]=0;
ram[SPACEX_I]=0; /* sta SPACEX_I */ ram[CX_I]=0;
ram[SPACEY_I]=0; /* sta SPACEY_I */ ram[CX_F]=0;
ram[CX_I]=0; /* sta CX_I */ ram[CY_I]=0;
ram[CX_F]=0; /* sta CX_F */ ram[CY_F]=0;
ram[CY_I]=0; /* sta CY_I */ ram[DRAW_SPLASH]=0;
ram[CY_F]=0; /* sta CY_F */ ram[SPEED]=0;
ram[DRAW_SPLASH]=0; /* sta DRAW_SPLASH */ ram[SPLASH_COUNT]=0;
ram[SPEED]=0; /* sta SPEED */ ram[OVER_WATER]=0;
ram[SPLASH_COUNT]=0; /* sta SPLASH_COUNT */
ram[OVER_WATER]=0; /* sta OVER_WATER */
/* lda #1 */ ram[ANGLE]=1; /* 1 so you can see island */
ram[ANGLE]=1; /* sta ANGLE */
/* lda #4 */ ram[SPACEZ_I]=4;
ram[SPACEZ_I]=4; /* sta SPACEZ_I */ ram[SPACEZ_F]=0x80; /* Z=4.5 */
/* lda #$80 */
ram[SPACEZ_F]=0x80; /* sta SPACEZ_F */
while(1) { while(1) {
memset(&cycles,0,sizeof(cycles)); memset(&cycles,0,sizeof(cycles));
cycles.flying+=6;
// lda SPLASH_COUNT 3
cycles.flying+=3;
// beq flying_keyboard nt2/3
cycles.flying+=3;
if (ram[SPLASH_COUNT]>0) { if (ram[SPLASH_COUNT]>0) {
cycles.flying--; cycles.flying--;
ram[SPLASH_COUNT]--; // dec SPLASH_COUNT 5 ram[SPLASH_COUNT]--;
cycles.flying+=5; cycles.flying+=5;
} }
ch=grsim_input(); // jsr get_key 6+40 ch=grsim_input();
cycles.getkey=46; cycles.getkey=46;
if ((ch=='q') || (ch==27)) break; cycles.flying+=3;
if ((ch=='q') || (ch==27)) break;
cycles.flying+=5;
if ((ch=='w') || (ch==APPLE_UP)) { if ((ch=='w') || (ch==APPLE_UP)) {
if (ram[SHIPY]>16) { if (ram[SHIPY]>16) {
ram[SHIPY]-=2; ram[SHIPY]-=2;
@ -669,6 +664,7 @@ int flying(void) {
} }
ram[SPLASH_COUNT]=0; ram[SPLASH_COUNT]=0;
} }
cycles.flying+=5;
if ((ch=='s') || (ch==APPLE_DOWN)) { if ((ch=='s') || (ch==APPLE_DOWN)) {
if (ram[SHIPY]<28) { if (ram[SHIPY]<28) {
ram[SHIPY]+=2; ram[SHIPY]+=2;
@ -678,6 +674,7 @@ int flying(void) {
ram[SPLASH_COUNT]=10; ram[SPLASH_COUNT]=10;
} }
} }
cycles.flying+=5;
if ((ch=='a') || (ch==APPLE_LEFT)) { if ((ch=='a') || (ch==APPLE_LEFT)) {
if ((ram[TURNING]>0) && (!(ram[TURNING]&0x80))) { if ((ram[TURNING]>0) && (!(ram[TURNING]&0x80))) {
ram[TURNING]=0; ram[TURNING]=0;
@ -689,6 +686,7 @@ int flying(void) {
if (ram[ANGLE]<0) ram[ANGLE]+=ANGLE_STEPS; if (ram[ANGLE]<0) ram[ANGLE]+=ANGLE_STEPS;
} }
} }
cycles.flying+=5;
if ((ch=='d') || (ch==APPLE_RIGHT)) { if ((ch=='d') || (ch==APPLE_RIGHT)) {
if (ram[TURNING]>128) { if (ram[TURNING]>128) {
ram[TURNING]=0; ram[TURNING]=0;
@ -700,24 +698,24 @@ int flying(void) {
} }
} }
cycles.flying+=5;
/* Used to be able to go backwards */ /* Used to be able to go backwards */
if (ch=='z') { if (ch=='z') {
if (ram[SPEED]<3) ram[SPEED]++; if (ram[SPEED]<3) ram[SPEED]++;
} }
cycles.flying+=5;
if (ch=='x') { if (ch=='x') {
if (ram[SPEED]>0) ram[SPEED]--; if (ram[SPEED]>0) ram[SPEED]--;
} }
cycles.flying+=5;
if (ch==' ') { if (ch==' ') {
ram[SPEED]=SPEED_STOPPED; ram[SPEED]=SPEED_STOPPED;
} }
cycles.flying+=5;
if (ch=='h') { if (ch=='h') {
print_help(); print_help();
} }
cycles.flying+=5;
/* Ending */ /* Ending */
if (ch==13) { if (ch==13) {
int landing_color,tx,ty; int landing_color,tx,ty;
@ -752,10 +750,12 @@ int flying(void) {
print_both_pages("NEED TO LAND ON GRASS!"); print_both_pages("NEED TO LAND ON GRASS!");
} }
} }
cycles.flying+=5;
// check_done:
cycles.flying+=14;
if (ram[SPEED]!=SPEED_STOPPED) { if (ram[SPEED]!=SPEED_STOPPED) {
cycles.flying--;
int ii; int ii;
@ -763,7 +763,7 @@ int flying(void) {
ram[DX_F] = fixed_sin_scale[(ram[ANGLE]+4)&0xf].f; // cos ram[DX_F] = fixed_sin_scale[(ram[ANGLE]+4)&0xf].f; // cos
ram[DY_I] = fixed_sin_scale[ram[ANGLE]&0xf].i; ram[DY_I] = fixed_sin_scale[ram[ANGLE]&0xf].i;
ram[DY_F] = fixed_sin_scale[ram[ANGLE]&0xf].f; ram[DY_F] = fixed_sin_scale[ram[ANGLE]&0xf].f;
cycles.flying+=54;
for(ii=0;ii<ram[SPEED];ii++) { for(ii=0;ii<ram[SPEED];ii++) {
fixed_add(ram[CX_I],ram[CX_F], fixed_add(ram[CX_I],ram[CX_F],
ram[DX_I],ram[DX_F], ram[DX_I],ram[DX_F],
@ -771,14 +771,16 @@ int flying(void) {
fixed_add(ram[CY_I],ram[CY_F], fixed_add(ram[CY_I],ram[CY_F],
ram[DY_I],ram[DY_F], ram[DY_I],ram[DY_F],
&ram[CY_I],&ram[CY_F]); &ram[CY_I],&ram[CY_F]);
cycles.flying+=45;
} }
cycles.flying--;
} }
draw_background_mode7(); draw_background_mode7();
cycles.flying+=6;
ram[DRAW_SPLASH]=0; ram[DRAW_SPLASH]=0;
cycles.flying+=11;
if (ram[SPEED]>0) { if (ram[SPEED]>0) {
if ((ram[SHIPY]>25) && (ram[TURNING]!=0)) { if ((ram[SHIPY]>25) && (ram[TURNING]!=0)) {
@ -794,32 +796,40 @@ int flying(void) {
if (ram[DRAW_SPLASH]) { if (ram[DRAW_SPLASH]) {
grsim_put_sprite(splash_forward, grsim_put_sprite(splash_forward,
CONST_SHIPX+1,ram[SHIPY]+9); CONST_SHIPX+1,ram[SHIPY]+9);
cycles.flying+=33;
} }
grsim_put_sprite(shadow_forward,CONST_SHIPX+3,31+ram[SPACEZ_I]); grsim_put_sprite(shadow_forward,CONST_SHIPX+3,31+ram[SPACEZ_I]);
grsim_put_sprite(ship_forward,CONST_SHIPX,ram[SHIPY]); grsim_put_sprite(ship_forward,CONST_SHIPX,ram[SHIPY]);
cycles.flying+=46;
} }
else if (ram[TURNING]>128) { else if (ram[TURNING]>128) {
if (ram[DRAW_SPLASH]) { if (ram[DRAW_SPLASH]) {
grsim_put_sprite(splash_left, grsim_put_sprite(splash_left,
CONST_SHIPX+1,36); CONST_SHIPX+1,36);
cycles.flying+=28;
} }
grsim_put_sprite(shadow_left,CONST_SHIPX+3,31+ram[SPACEZ_I]); grsim_put_sprite(shadow_left,CONST_SHIPX+3,31+ram[SPACEZ_I]);
grsim_put_sprite(ship_left,CONST_SHIPX,ram[SHIPY]); grsim_put_sprite(ship_left,CONST_SHIPX,ram[SHIPY]);
ram[TURNING]++; ram[TURNING]++;
cycles.flying+=48;
} }
else { else {
if (ram[DRAW_SPLASH]) { if (ram[DRAW_SPLASH]) {
grsim_put_sprite(splash_right, grsim_put_sprite(splash_right,
CONST_SHIPX+1,36); CONST_SHIPX+1,36);
cycles.flying+=28;
} }
grsim_put_sprite(shadow_right,CONST_SHIPX+3,31+ram[SPACEZ_I]); grsim_put_sprite(shadow_right,CONST_SHIPX+3,31+ram[SPACEZ_I]);
grsim_put_sprite(ship_right,CONST_SHIPX,ram[SHIPY]); grsim_put_sprite(ship_right,CONST_SHIPX,ram[SHIPY]);
ram[TURNING]--; ram[TURNING]--;
cycles.flying+=51;
} }
page_flip(); cycles.page_flip+=26; cycles.flying+=17;
page_flip(); cycles.page_flip+=26;
cycles.flying+=9;
iterations++; iterations++;
if (iterations==100) { if (iterations==100) {

View File

@ -4,6 +4,8 @@ mode7 speed fixes:
+ move multiply vars to zero page + move multiply vars to zero page
+ leave one of multiply results in accumulator at end? + leave one of multiply results in accumulator at end?
+ Skip key parsing if no key read
short term: short term:
longer term: longer term:

View File

@ -83,16 +83,15 @@ flying_start:
flying_loop: flying_loop:
lda SPLASH_COUNT lda SPLASH_COUNT ; 3
beq flying_keyboard beq flying_keyboard ; 2nt/3
dec SPLASH_COUNT ; decrement splash count dec SPLASH_COUNT ; decrement splash count ; 5
flying_keyboard: flying_keyboard:
jsr get_key ; get keypress ; 6
jsr get_key ; get keypress lda LASTKEY ; 3
lda LASTKEY
; cmp #('Q') ; if quit, then return ; cmp #('Q') ; if quit, then return
; bne skipskip ; bne skipskip
@ -100,8 +99,8 @@ flying_keyboard:
;skipskip: ;skipskip:
cmp #('W') cmp #('W') ; 2
bne check_down bne check_down ; 3/2nt
;=========== ;===========
; UP PRESSED ; UP PRESSED
@ -301,99 +300,98 @@ check_done:
;================ ;================
; Wrap the Angle ; Wrap the Angle
;================ ;================
; FIXME: only do this in right/left routine?
lda ANGLE lda ANGLE ; 3
and #$f and #$f ; 2
sta ANGLE sta ANGLE ; 3
;================ ;================
; Handle Movement ; Handle Movement
;================ ;================
speed_move: speed_move:
ldx SPEED ldx SPEED ; 3
beq draw_background beq draw_background ; 2nt/3
;=============
lda ANGLE ; dx.i=fixed_sin[(angle+4)&0xf].i; // cos() lda ANGLE ; dx.i=fixed_sin[(angle+4)&0xf].i; // cos() ; 3
clc clc ; 2
adc #4 adc #4 ; 2
and #$f and #$f ; 2
asl asl ; 2
tay tay ; 2
lda fixed_sin_scale,Y lda fixed_sin_scale,Y ; 4
sta DX_I sta DX_I ; 3
iny ; dx.f=fixed_sin[(angle+4)&0xf].f; // cos() iny ; dx.f=fixed_sin[(angle+4)&0xf].f; // cos() ; 2
lda fixed_sin_scale,Y lda fixed_sin_scale,Y ; 4
sta DX_F sta DX_F ; 3
lda ANGLE ; dy.i=fixed_sin[angle&0xf].i; // sin()
and #$f
asl
tay
lda fixed_sin_scale,Y
sta DY_I
iny ; dx.f=fixed_sin[angle&0xf].f; // sin()
lda fixed_sin_scale,Y
sta DY_F
lda ANGLE ; dy.i=fixed_sin[angle&0xf].i; // sin() ; 3
and #$f ; 2
asl ; 2
tay ; 2
lda fixed_sin_scale,Y ; 4
sta DY_I ; 3
iny ; dx.f=fixed_sin[angle&0xf].f; // sin() ; 2
lda fixed_sin_scale,Y ; 4
sta DY_F ; 3
;============
; 54
speed_loop: speed_loop:
clc ; fixed_add(&cx,&dx,&cx); clc ; fixed_add(&cx,&dx,&cx); ; 2
lda CX_F lda CX_F ; 3
adc DX_F adc DX_F ; 3
sta CX_F sta CX_F ; 3
lda CX_I lda CX_I ; 3
adc DX_I adc DX_I ; 3
sta CX_I sta CX_I ; 3
clc ; fixed_add(&cy,&dy,&cy); clc ; fixed_add(&cy,&dy,&cy); ; 2
lda CY_F lda CY_F ; 3
adc DY_F adc DY_F ; 3
sta CY_F sta CY_F ; 3
lda CY_I lda CY_I ; 3
adc DY_I adc DY_I ; 3
sta CY_I sta CY_I ; 3
dex
bne speed_loop
dex ; 2
bne speed_loop ; 2nt/3
;============
; 45
;==================== ;====================
; Draw the background ; Draw the background
;==================== ;====================
draw_background: draw_background:
jsr draw_background_mode7 jsr draw_background_mode7 ; 6
; lda #1
; sta OVER_WATER
; Calculate whether to draw the splash ; Calculate whether to draw the splash
lda #0 ; set splash drawing to 0 lda #0 ; set splash drawing to 0 ; 2
sta DRAW_SPLASH sta DRAW_SPLASH ; 3
lda SPEED ; if speed==0, no splash lda SPEED ; if speed==0, no splash ; 3
beq no_splash beq no_splash ; 2nt/3
lda TURNING lda TURNING ; 3
beq no_turning_splash beq no_turning_splash ; 2nt/3
lda SHIPY lda SHIPY ; 3
cmp #27 cmp #27 ; 2
bcc no_turning_splash ; blt if shipy<25 skip bcc no_turning_splash ; blt if shipy<25 skip ; 2nt/3
lda #1 lda #1 ; 2
sta SPLASH_COUNT sta SPLASH_COUNT ; 3
no_turning_splash: no_turning_splash:
lda OVER_WATER ; no splash if over land lda OVER_WATER ; no splash if over land ; 3
beq no_splash beq no_splash ; 2nt/3
lda SPLASH_COUNT ; no splash if splash_count expired lda SPLASH_COUNT ; no splash if splash_count expired ; 3
beq no_splash beq no_splash ; 2nt/3
lda #1 lda #1 ; 2
sta DRAW_SPLASH sta DRAW_SPLASH ; 3
no_splash: no_splash:
@ -401,146 +399,158 @@ no_splash:
; Draw the ship ; Draw the ship
;============== ;==============
clv clv ; 2
lda TURNING lda TURNING ; 3
beq draw_ship_forward beq draw_ship_forward ; 2nt/3
bpl draw_ship_right bpl draw_ship_right ; 2nt/3
bmi draw_ship_left ;; FIXME: optimize order bmi draw_ship_left ;; FIXME: optimize order ; 2nt/3
draw_ship_forward: draw_ship_forward:
lda DRAW_SPLASH lda DRAW_SPLASH ; 2
beq no_forward_splash beq no_forward_splash ; 2nt/3
; Draw Splash ; Draw Splash
lda #>splash_forward lda #>splash_forward ; 2
sta INH sta INH ; 3
lda #<splash_forward lda #<splash_forward ; 2
sta INL sta INL ; 3
lda #(SHIPX+1) lda #(SHIPX+1) ; 2
sta XPOS sta XPOS ; 3
clc clc ; 2
lda SHIPY lda SHIPY ; 3
adc #9 adc #9 ; 2
and #$fe ; make sure it's even and #$fe ; make sure it's even ; 2
sta YPOS sta YPOS ; 3
jsr put_sprite jsr put_sprite ; 6
;==========
; 33
no_forward_splash: no_forward_splash:
; Draw Shadow ; Draw Shadow
lda #>shadow_forward lda #>shadow_forward ; 2
sta INH sta INH ; 3
lda #<shadow_forward lda #<shadow_forward ; 2
sta INL sta INL ; 3
lda #(SHIPX+3) lda #(SHIPX+3) ; 2
sta XPOS sta XPOS ; 3
clc clc ; 2
lda SPACEZ_I lda SPACEZ_I ; 3
adc #31 adc #31 ; 2
and #$fe ; make sure it's even and #$fe ; make sure it's even ; 2
sta YPOS sta YPOS ; 3
jsr put_sprite jsr put_sprite ; 6
lda #>ship_forward
sta INH
lda #<ship_forward
sta INL
bvc draw_ship
lda #>ship_forward ; 2
sta INH ; 3
lda #<ship_forward ; 2
sta INL ; 3
bvc draw_ship ; 3
;===========
; 46
draw_ship_right: draw_ship_right:
lda DRAW_SPLASH lda DRAW_SPLASH ; 3
beq no_right_splash beq no_right_splash ; 2nt/3
; Draw Splash ; Draw Splash
lda #>splash_right lda #>splash_right ; 2
sta INH sta INH ; 3
lda #<splash_right lda #<splash_right ; 2
sta INL sta INL ; 3
lda #(SHIPX+1) lda #(SHIPX+1) ; 2
sta XPOS sta XPOS ; 3
clc clc ; 2
lda #36 lda #36 ; 2
sta YPOS sta YPOS ; 3
jsr put_sprite jsr put_sprite ; 6
;===========
; 28
no_right_splash: no_right_splash:
; Draw Shadow ; Draw Shadow
lda #>shadow_right lda #>shadow_right ; 2
sta INH sta INH ; 3
lda #<shadow_right lda #<shadow_right ; 2
sta INL sta INL ; 3
lda #(SHIPX+3) lda #(SHIPX+3) ; 2
sta XPOS sta XPOS ; 3
clc clc ; 2
lda SPACEZ_I lda SPACEZ_I ; 3
adc #31 adc #31 ; 2
and #$fe ; make sure it's even and #$fe ; make sure it's even ; 2
sta YPOS sta YPOS ; 3
jsr put_sprite jsr put_sprite ; 6
lda #>ship_right lda #>ship_right ; 2
sta INH sta INH ; 3
lda #<ship_right lda #<ship_right ; 2
sta INL sta INL ; 3
dec TURNING dec TURNING ; 5
bvc draw_ship
bvc draw_ship ; 3
;==========
; 51
draw_ship_left: draw_ship_left:
lda DRAW_SPLASH lda DRAW_SPLASH ; 3
beq no_left_splash beq no_left_splash ; 2nt/3
; Draw Splash ; Draw Splash
lda #>splash_left lda #>splash_left ; 2
sta INH sta INH ; 3
lda #<splash_left lda #<splash_left ; 2
sta INL sta INL ; 3
lda #(SHIPX+1) lda #(SHIPX+1) ; 2
sta XPOS sta XPOS ; 3
clc clc ; 2
lda #36 lda #36 ; 2
sta YPOS sta YPOS ; 3
jsr put_sprite jsr put_sprite ; 6
;===========
; 28
no_left_splash: no_left_splash:
; Draw Shadow ; Draw Shadow
lda #>shadow_left lda #>shadow_left ; 2
sta INH sta INH ; 3
lda #<shadow_left lda #<shadow_left ; 2
sta INL sta INL ; 3
lda #(SHIPX+3) lda #(SHIPX+3) ; 2
sta XPOS sta XPOS ; 3
clc clc ; 2
lda SPACEZ_I lda SPACEZ_I ; 3
adc #31 adc #31 ; 2
and #$fe ; make sure it's even and #$fe ; make sure it's even ; 2
sta YPOS sta YPOS ; 3
jsr put_sprite jsr put_sprite ; 6
lda #>ship_left lda #>ship_left ; 2
sta INH sta INH ; 3
lda #<ship_left lda #<ship_left ; 2
sta INL sta INL ; 3
inc TURNING inc TURNING ; 5
;==========
; 48
draw_ship: draw_ship:
lda #SHIPX lda #SHIPX ; 2
sta XPOS sta XPOS ; 3
lda SHIPY lda SHIPY ; 3
sta YPOS sta YPOS ; 3
jsr put_sprite jsr put_sprite ; 6
;===========
; 17
;================== ;==================
; flip pages ; flip pages
;================== ;==================
jsr page_flip jsr page_flip ; 6
;================== ;==================
; loop forever ; loop forever
;================== ;==================
jmp flying_loop jmp flying_loop ; 3
;=========================== ;===========================
@ -969,41 +979,41 @@ done_screeny:
; finds value in space_x.i,space_y.i ; finds value in space_x.i,space_y.i
; returns color in A ; returns color in A
lookup_map: lookup_map:
lda SPACEX_I lda SPACEX_I ; 3
and #MAP_MASK and #MAP_MASK ; 2
sta TEMPY sta TEMPY ; 3
lda SPACEY_I lda SPACEY_I ; 3
and #MAP_MASK ; wrap to 64x64 grid and #MAP_MASK ; wrap to 64x64 grid ; 2
asl asl ; 2
asl asl ; 2
asl ; multiply by 8 asl ; multiply by 8 ; 2
clc clc ; 2
adc TEMPY ; add in X value adc TEMPY ; add in X value ; 2
; (use OR instead?) ; (use OR instead?)
ldy SPACEX_I ldy SPACEX_I ; 3
cpy #$8 cpy #$8 ; 2
beq ocean_color ; bgt beq ocean_color ; bgt ; 2nt/3
bcs ocean_color bcs ocean_color ; 2nt/3
ldy SPACEY_I ldy SPACEY_I ; 3
cpy #$8 cpy #$8 ; 2
beq ocean_color ; bgt beq ocean_color ; bgt ; 2nt/3
bcs ocean_color bcs ocean_color ; 2nt/3
tay tay ; 2
lda flying_map,Y ; load from array lda flying_map,Y ; load from array ; 4
rts rts ; 6
ocean_color: ocean_color:
and #$1f and #$1f ; 2
tay tay ; 2
lda water_map,Y ; the color of the sea lda water_map,Y ; the color of the sea ; 4
rts rts ; 6
flying_map: flying_map:
.byte $22,$ff,$ff,$ff, $ff,$ff,$ff,$22 .byte $22,$ff,$ff,$ff, $ff,$ff,$ff,$22