Yay, bump.
This page is really getting big with the previous code copypasta, but whatever.
I found this a while a go, and for some reason I don't know why I didn't post it earlier.
This comes from Rise of the Robots for the SNES:
EUROPE
Cuts off, but here's another portion from the same region/build:
Same thing. Here's more:
More:
MORE:
More:
The USA BETA version has some fragments as well, but besides that and the European version - these are the only two versions with source code references.
This page is really getting big with the previous code copypasta, but whatever.
I found this a while a go, and for some reason I don't know why I didn't post it earlier.
This comes from Rise of the Robots for the SNES:
EUROPE
CODE
lda >win_msg_table+2,x
sta results_win+window_text+2
!loop2: jsr wait_frame
ldy #results_win
jsr window_process
lda results_win+window_text
ora results_win+window_text+2
bne !loop2
rts
print_gmess: jsr gfx_mess
jsr check_gfx_mess
jsr wait_frame
rts
if cine
cine_list: dl wn_cb_mc
dl fly_mc
dl cn_ld_mc
dl ds_ld_mc
dl wn_cb_mc
dl cn_ap_mc
dl ds_ap_mc
dl wn_cb_mc
dl cn_cr_mc
dl ds_cr_mc
dl wn_cb_mc
dl cn_ml_mc
dl ds_ml_mc
dl wn_cb_mc
dl cn_jp_mc
dl ds_jp_mc
dl wn_cb_mc
dl cn_sp_mc
dl ds_sp_mc
dl 0
endif
end_sequence:
if en_sound!rom
jsr play_brian
endif
jsr clr_palette_2
lda #0
ldx #256
jsr fade_it
stz flash_palette
stz flash_colour
jsr clr_pal_buff
jsr death_hdma_on
jsr clear_screen
ldx #10
jsr delay
jsr wait_frame
jsr screen_off
stz nrg_dsp_flg
stz split_mode
lda #29
a08
sta w_bg1hofs
xba
sta w_bg1hofs
lda #$03
sta |w_tm
lda #(sc_1b_scrn/2)>>8
sta w_bg1sc
lda #(sc_2c_scrn/2)>>8
sta w_bg2sc
a16
jsr screen_on
lea window2_table,<a0
jsr init_windows
lea font_dat,<a0
jsr init_window_text
lea wind_mission,<a0
ldy #window_1
jsr create_window
lea mission_info,window_1+window_nexttext
jsr wait_log_finish
stz play_time
if en_which_logo<>1
jsr replay_up
endif
if cine
win_cine_r: lea cine_list,cine_list_ptr
win_cine: lda cine_list_ptr
ldx cine_list_ptr+2
sta a0
stx a0+2
ldy #2
lda [a0]
ora [a0],y
beq win_cine_r
lda [a0]
sta cine_add
lda [a0],y
sta cine_add+2
lda cine_list_ptr
clc
adc #4
sta cine_list_ptr
lda [cine_add]
sta cine_size
inc cine_add
inc cine_add
ldx #$200
stx charc_set
stz cine_count
lda #112
sta cine_pal_size
lea unpack_b1,<a1
win_loop:
lda cine_count
cmp cine_size
bcs end_win
lda [cine_add]
tax
inc cine_add
inc cine_add
lda [cine_add]
inc cine_add
inc cine_add
stx a0
sta a0+2
lda #sc_1b_scrn/2+7*32+8+3
sta d0
jsr cine_frame
jsr wait_frame
ldy #window_1
jsr window_process
inc play_time
inc cine_count
jmp win_loop
end_win:
jsr clr_palette_2
lda #16
ldx #112
jsr fade_it
lda #sc_1b_scrn/2+6*32
sta blit_dest
lda #12*32
sta blit_lenth
jsr clear_ppu
jmp win_cine
endif
!wloop: jsr wait_frame
bra !wloop
;*******************************************************************************
*****
;*
;* Game Message Process
;*
game_mess_process:
lda bouts_total
cmp bouts_selected
beq !no_final
cmp bout_number
bne !no_final
lda #0
bra !final
!no_final: lda bout_number
!final: asl
tax
lda >round_table,x
ldx #$40
jsr gfx_mess
jsr check_gfx_mess
jsr wait_frame
jsr game_mess
lda >rest_after_mess
sta rest
jmp game_loop_end
;*******************************************************************************
*****************
;*
;* Bout over process
;*
bout_over_process:
; jsr clear_top
jsr print_results
jsr bout_over_mess
no_game_mess:
jsr fade_screen_off
jsr screen_off
jsr hdma_off
jsr clear_sprites
jsr clear_screen
;****************************************************************************
;** Check here for replay
;**
ldx winner_amp
bne !player_won
;Last game was a draw
lda bout_number
cmp bouts_total
bra !not_next_opponent
!player_won:
lda robot_won,x
cmp bouts_toplay
bcc !not_next_opponent
ldx mission
dex
bne !new_select
lda dead_type
beq !dead
ldx players
dex
bne !dead
lda #robot_sup
cmp robot_opponent
bne !next_robot
jmp !new_robot
!next_robot:
inc robot_opponent
jmp !new_robot
!not_next_opponent:
jmp !new_bout
!dead:
jmp !new_game
!new_robot: lda #gs_new_robot
sta game_state
jmp game_loop_end
!new_bout: lda #gs_new_bout
sta game_state
jmp game_loop_end
!new_game: lda #gs_new_game
sta game_state
jmp game_loop_end
!new_select: lda #gs_new_select
sta game_state
jmp game_loop_end
;*******************************************************************************
*****
;*
;* Game over process
;*
;****************************************************
;* Print results
;RESULT (overall)=0 for
game_over_process:
stz result ;default to draw
jsr print_results ;print the result of last bout
teletype results_win,finalr_msg
lda robot_2+robot_won ;see who won overall
cmp robot_1+robot_won ;If there is a winner bypass draw
bne !not_draw
;******************************** OVERALL DRAW **********************************
teletype results_win,draw_msg
jsr game_end_mess ;fade to red etc.
lda #gs_new_game ;go play new game
sta game_state
jmp game_loop_end
;*******************************************************************************
*
!not_draw: ldy robot_2+robot_type ;decide who is the winner
lda #0
ldx robot_1+robot_won
cpx robot_2+robot_won
bcs !r0_win ;bypass if it is cyborg
ldy #0
lda robot_2+robot_type ;else get type of oppponent
bra !opp_win
!r0_win:
ldx #1 ;cyborg win result
stx result
bra !cont_win
!opp_win:
ldx #2 ;opponent win
stx result
!cont_win:
sty dead_type ;who is dead
asl
asl
tax
lda >winv_msg_table,x
sta results_win+window_text
lda >winv_msg_table+2,x
sta results_win+window_text+2
!loop3: jsr wait_frame
ldy #results_win
jsr window_process
lda results_win+window_text+2
ora results_win+window_text
bne !loop3
ldx mission ;decide on conditions to display GAME OVER
dex
bne !no_game_over ;Not if TRAINING
ldx players ;Not if 2 Player
dex
bne !no_game_over
lda result ;Not if Cyborg win
cmp #1
beq !no_game_over
teletype results_win,gameover_msg ;print GAME OVER
!no_game_over:
jsr game_end_mess ;Fade to red print message
jsr dead_frame ;Death cinematic
lda result
cmp #1 ;Cyborg victory
beq victory
;
;************************ Overall result draw or lose ***********************************
;
ldx mission ;if die on mission go back to intro screen
dex ;else go back to select screen
bne !ns
ldx players
dex
bne !ns
!ng: lda #gs_new_game
sta game_state
jmp game_loop_end
!ns:
lda #gs_new_select
sta game_state
jmp game_loop_end
;************************ Cyborg Victory *************************************************
victory:
ldx players ;2 Players - so select
dex
bne !new_select
ldx mission ;Training - so new game
dex
bne !new_select
lda robot_2+robot_type
cmp #robot_sup
bne !new_robot
;*******************************************************************************
*****
;
; M I S S I O N C O M P L E T E hurray , the end of the game
;
jsr end_sequence ;Victory
lda #gs_complete
sta game_state
jmp game_loop_end
!new_robot:
inc robot_opponent
lda #gs_new_robot
sta game_state
jmp game_loop_end
!new_game:
lda #gs_new_game
sta game_state
jmp game_loop_end
!new_select:
lda #gs_new_select
sta game_state
jmp game_loop_end
;*******************************************************************************
*****
set_scroll: jsr wait_frame
lda scroll_pos
a08
sta |w_bg2vofs
xba
sta |w_bg2vofs
a16
rts
init_new_robot:
jsr hdma_off
lda #1
sta tele_flag
lda #1
sta split_mode
jsr wait_frame
jsr clear_screen
jsr screen_off
lda #$0000
sta robot_2+robot_score
stz robot_1+robot_won
stz robot_2+robot_won
lda #1
sta bout_number
lda demo_mode
bne no_select
!sel_again: jsr select_screen
lda cancel_sel
bne !sel_again
no_select: jsr hdma_off
jsr wait_frame
lda players
sta players_g
lda bouts
sta bouts_g
lda timer
sta timer_g
lda difficulty
sta difficulty_g
lda demo_mode
beq !no_demo
lda #0
sta players_g
lda #1
sta bouts_g
lda #4
sta timer_g
lda #2
sta difficulty_g
!no_demo:
lda bouts_g
dec a
asl
tax
lda >bouts_table,x
sta bouts_total
sta bouts_selected
lsr
inc a
sta bouts_toplay
rts
init_bout:
jsr hdma_off
jsr clear_screen
jsr clear_sprites
jsr init_sprites
jsr init_robots
jsr init_background
jsr init_vars
jsr inipix
jsr init_energy
jsr init_schedule
jsr wait_frame
jsr wait_frame
jsr wait_frame
lda #sc_2n_scrn/2
sta wind_screen
lea window_table,<a0
jsr init_windows
lea font_dat,<a0
jsr init_window_text
lea robot1_window,<a0
ldy #window_1
jsr create_window
lea robot2_window,<a0
ldy #window_2
jsr create_window
; jsr players_won
jsr hdma_off
jsr para_init
jsr hdma_on
jsr fade_screen_on
jsr screen_on
jsr setup_collisions
lda #%01010010
sta m_cgadsub
lda #%10000010
sta m_cgswsel
a08
lda timer_value
sta timer_count
ldx timer_g
dex
lda >timer_table,x
sta timer_count+1
a16
lda >timer_table,x
and #$ff
sta timer_mode
lda #2
sta game_mode
lda #10
sta num_frames
if en_sound!rom
lda robot_opponent
asl
asl
tax
lda >robot_table,x
sta a2
lda >robot_table+2,x
sta a2+2
ldy #ri_music
lda [a2],y
jsr play_tune
endif
jsr wait_frame
a08
lda #%01010000
sta |w_cgadsub
lda #%10000010
sta |w_cgswsel
a16
lda #2
sta spr_blit_flag
stz shake
lda #4
sta sprite_blit_count
stz result
lda >rest_before_mess
sta rest
stz time_over_flag
rts
init_sprite_blit:
stz blit_oam
lda #0
ldx #4*8/2
ldy #0
!lp: sta blit_tables,y
iny
iny
dex
bne !lp
rts
;*******************************************************************************
********
;*
;* Pause
Pause_It:
lda game_mode
bne !exit
lda #but_start
bit |joy_0
bne !start_it
ldx players
dex
beq !exit
bit |joy_1
bne !start_it
bra !exit
!start_it:
jsr sprite_log_blit
lda #Pause_table&$ffff
ldx #$2
jsr gfx_mess
jsr check_gfx_mess
lda #but_start
jsr wait_button_down_up
lda #but_start
jsr wait_button_down_up
!exit:
rts
wait_button_down_up:
tax
!s0 jsr wait_frame
txa
ldy players
dey
beq !p11
bit |joy_1
bne !s1
!p11: bit |joy_0
beq !s0
!s1: jsr wait_frame
txa
ldy players
dey
beq !p12
bit |joy_1
bne !s1
!p12: bit |joy_0
bne !s1
rts
wbdu:
tax
!s0
lda |frame_count
!s0a: cmp |frame_count
beq !s0a
txa
bit |joy_0
bne !s1
bit |joy_1
beq !s0
!s1:
lda |frame_count
!s1a: cmp |frame_count
beq !s1a
txa
bit |joy_0
bne !s1
bit |joy_1
bne !s1
rts
make_joystick_config
ldx #j_config_1
ldy #0
!loop: lda 0,x
sta j_config,y
inx
inx
iny
iny
cpy #12
bcc !loop
rts
delay:
!wl: jsr wait_frame
dex
bne !wl
rts
gfx_mess_delay:
!wl: phx
jsr wait_frame
jsr clear_sprite_buf
jsr csp
jsr check_gfx_mess
jsr sprite_log_blit
plx
dex
bne !wl
rts
sect_2_exit:
jsr fade_screen_off
jsr vbl_vect_off
jsr screen_off
jsr hdma_off
jsr clear_sprites
!loop jmp !loop
which_logo:
if en_which_logo!rom
jml (logo_vect)
endif
rtl
check_timer_out:
lda timer_mode
beq cto_exit
lda game_mode
bne cto_exit
lda timer_count
cmp #2
bcs cto_exit
stz timer_count
ldy #robot_1
lda robot_1+robot_energylost
cmp robot_2+robot_energylost
bcs kill_game
ldy #robot_2
kill_game:
lda #1
sta time_over_flag
jsr end_bout
cto_exit:
rts
game_end_mess:
if en_sound!rom
jsr fade_tune
endif
lda #2000
sta |spr_blit_flag
stz nrg_dsp_flg
jsr wait_frame
jsr wait_frame
lea palette_str,<a0
lda #0
ldx #256
jsr copy_palette_2
ldx #256-16
ldy #16*2
!lp: lda palette_str2,y
and #%0000000000011111
sta palette_str2,y
iny
iny
dex
bne !lp
lda #16
ldx #256-16-16-16
jsr fade_it
jsr wait_frame
ldy #window_1
jsr create_window_matrix
jsr wait_frame
ldy #window_2
jsr create_window_matrix
stz nrg_dsp_flg
!loop1: jsr wait_frame
ldy #window_1
jsr window_process
ldy #window_2
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop1
stz game_mode
lda #4
sta game_mode
lda #1
sta num_frames
rts
bout_over_mess:
ldy #window_1
jsr create_window_matrix
jsr wait_frame
ldy #window_2
jsr create_window_matrix
stz nrg_dsp_flg
!loop1: jsr wait_frame
ldy #window_1
jsr window_process
ldy #window_2
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop1
lda #100
lda #end_time
sta num_frames
rts
game_mess:
!loop1: jsr wait_frame
ldy #window_1
jsr window_process
ldy #window_2
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop1
lda #r0a&$ffff
sta window_1+window_text
lda #r0a>>16
sta window_1+window_text+2
lda robot_opponent
inc a
asl
asl
tax
lda >plrtab,x
sta window_2+window_text
lda >plrtab+2,x
sta window_2+window_text+2
jsr print_windows
lda #scr_1_mess&$ffff
sta window_1+window_text
lda #scr_1_mess>>16
sta window_1+window_text+2
lda #scr_2_mess&$ffff
sta window_2+window_text
lda #scr_2_mess>>16
sta window_2+window_text+2
jsr print_windows
stz game_mode
lda #-1
sta nrg_dsp_flg
!exit:
jsr players_won
rts
print_windows:
!loop: jsr wait_frame
ldy #window_2
jsr window_process
ldy #window_1
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop
rts
set_win_lose_text:
phy
phx
tya
ldy #window_1
ldx #window_2
cmp #robot_1
beq !r1
ldy #window_2
ldx #window_1
!r1:
lda #player_matchlost&$ffff
sta window
sta results_win+window_text+2
!loop2: jsr wait_frame
ldy #results_win
jsr window_process
lda results_win+window_text
ora results_win+window_text+2
bne !loop2
rts
print_gmess: jsr gfx_mess
jsr check_gfx_mess
jsr wait_frame
rts
if cine
cine_list: dl wn_cb_mc
dl fly_mc
dl cn_ld_mc
dl ds_ld_mc
dl wn_cb_mc
dl cn_ap_mc
dl ds_ap_mc
dl wn_cb_mc
dl cn_cr_mc
dl ds_cr_mc
dl wn_cb_mc
dl cn_ml_mc
dl ds_ml_mc
dl wn_cb_mc
dl cn_jp_mc
dl ds_jp_mc
dl wn_cb_mc
dl cn_sp_mc
dl ds_sp_mc
dl 0
endif
end_sequence:
if en_sound!rom
jsr play_brian
endif
jsr clr_palette_2
lda #0
ldx #256
jsr fade_it
stz flash_palette
stz flash_colour
jsr clr_pal_buff
jsr death_hdma_on
jsr clear_screen
ldx #10
jsr delay
jsr wait_frame
jsr screen_off
stz nrg_dsp_flg
stz split_mode
lda #29
a08
sta w_bg1hofs
xba
sta w_bg1hofs
lda #$03
sta |w_tm
lda #(sc_1b_scrn/2)>>8
sta w_bg1sc
lda #(sc_2c_scrn/2)>>8
sta w_bg2sc
a16
jsr screen_on
lea window2_table,<a0
jsr init_windows
lea font_dat,<a0
jsr init_window_text
lea wind_mission,<a0
ldy #window_1
jsr create_window
lea mission_info,window_1+window_nexttext
jsr wait_log_finish
stz play_time
if en_which_logo<>1
jsr replay_up
endif
if cine
win_cine_r: lea cine_list,cine_list_ptr
win_cine: lda cine_list_ptr
ldx cine_list_ptr+2
sta a0
stx a0+2
ldy #2
lda [a0]
ora [a0],y
beq win_cine_r
lda [a0]
sta cine_add
lda [a0],y
sta cine_add+2
lda cine_list_ptr
clc
adc #4
sta cine_list_ptr
lda [cine_add]
sta cine_size
inc cine_add
inc cine_add
ldx #$200
stx charc_set
stz cine_count
lda #112
sta cine_pal_size
lea unpack_b1,<a1
win_loop:
lda cine_count
cmp cine_size
bcs end_win
lda [cine_add]
tax
inc cine_add
inc cine_add
lda [cine_add]
inc cine_add
inc cine_add
stx a0
sta a0+2
lda #sc_1b_scrn/2+7*32+8+3
sta d0
jsr cine_frame
jsr wait_frame
ldy #window_1
jsr window_process
inc play_time
inc cine_count
jmp win_loop
end_win:
jsr clr_palette_2
lda #16
ldx #112
jsr fade_it
lda #sc_1b_scrn/2+6*32
sta blit_dest
lda #12*32
sta blit_lenth
jsr clear_ppu
jmp win_cine
endif
!wloop: jsr wait_frame
bra !wloop
;*******************************************************************************
*****
;*
;* Game Message Process
;*
game_mess_process:
lda bouts_total
cmp bouts_selected
beq !no_final
cmp bout_number
bne !no_final
lda #0
bra !final
!no_final: lda bout_number
!final: asl
tax
lda >round_table,x
ldx #$40
jsr gfx_mess
jsr check_gfx_mess
jsr wait_frame
jsr game_mess
lda >rest_after_mess
sta rest
jmp game_loop_end
;*******************************************************************************
*****************
;*
;* Bout over process
;*
bout_over_process:
; jsr clear_top
jsr print_results
jsr bout_over_mess
no_game_mess:
jsr fade_screen_off
jsr screen_off
jsr hdma_off
jsr clear_sprites
jsr clear_screen
;****************************************************************************
;** Check here for replay
;**
ldx winner_amp
bne !player_won
;Last game was a draw
lda bout_number
cmp bouts_total
bra !not_next_opponent
!player_won:
lda robot_won,x
cmp bouts_toplay
bcc !not_next_opponent
ldx mission
dex
bne !new_select
lda dead_type
beq !dead
ldx players
dex
bne !dead
lda #robot_sup
cmp robot_opponent
bne !next_robot
jmp !new_robot
!next_robot:
inc robot_opponent
jmp !new_robot
!not_next_opponent:
jmp !new_bout
!dead:
jmp !new_game
!new_robot: lda #gs_new_robot
sta game_state
jmp game_loop_end
!new_bout: lda #gs_new_bout
sta game_state
jmp game_loop_end
!new_game: lda #gs_new_game
sta game_state
jmp game_loop_end
!new_select: lda #gs_new_select
sta game_state
jmp game_loop_end
;*******************************************************************************
*****
;*
;* Game over process
;*
;****************************************************
;* Print results
;RESULT (overall)=0 for
game_over_process:
stz result ;default to draw
jsr print_results ;print the result of last bout
teletype results_win,finalr_msg
lda robot_2+robot_won ;see who won overall
cmp robot_1+robot_won ;If there is a winner bypass draw
bne !not_draw
;******************************** OVERALL DRAW **********************************
teletype results_win,draw_msg
jsr game_end_mess ;fade to red etc.
lda #gs_new_game ;go play new game
sta game_state
jmp game_loop_end
;*******************************************************************************
*
!not_draw: ldy robot_2+robot_type ;decide who is the winner
lda #0
ldx robot_1+robot_won
cpx robot_2+robot_won
bcs !r0_win ;bypass if it is cyborg
ldy #0
lda robot_2+robot_type ;else get type of oppponent
bra !opp_win
!r0_win:
ldx #1 ;cyborg win result
stx result
bra !cont_win
!opp_win:
ldx #2 ;opponent win
stx result
!cont_win:
sty dead_type ;who is dead
asl
asl
tax
lda >winv_msg_table,x
sta results_win+window_text
lda >winv_msg_table+2,x
sta results_win+window_text+2
!loop3: jsr wait_frame
ldy #results_win
jsr window_process
lda results_win+window_text+2
ora results_win+window_text
bne !loop3
ldx mission ;decide on conditions to display GAME OVER
dex
bne !no_game_over ;Not if TRAINING
ldx players ;Not if 2 Player
dex
bne !no_game_over
lda result ;Not if Cyborg win
cmp #1
beq !no_game_over
teletype results_win,gameover_msg ;print GAME OVER
!no_game_over:
jsr game_end_mess ;Fade to red print message
jsr dead_frame ;Death cinematic
lda result
cmp #1 ;Cyborg victory
beq victory
;
;************************ Overall result draw or lose ***********************************
;
ldx mission ;if die on mission go back to intro screen
dex ;else go back to select screen
bne !ns
ldx players
dex
bne !ns
!ng: lda #gs_new_game
sta game_state
jmp game_loop_end
!ns:
lda #gs_new_select
sta game_state
jmp game_loop_end
;************************ Cyborg Victory *************************************************
victory:
ldx players ;2 Players - so select
dex
bne !new_select
ldx mission ;Training - so new game
dex
bne !new_select
lda robot_2+robot_type
cmp #robot_sup
bne !new_robot
;*******************************************************************************
*****
;
; M I S S I O N C O M P L E T E hurray , the end of the game
;
jsr end_sequence ;Victory
lda #gs_complete
sta game_state
jmp game_loop_end
!new_robot:
inc robot_opponent
lda #gs_new_robot
sta game_state
jmp game_loop_end
!new_game:
lda #gs_new_game
sta game_state
jmp game_loop_end
!new_select:
lda #gs_new_select
sta game_state
jmp game_loop_end
;*******************************************************************************
*****
set_scroll: jsr wait_frame
lda scroll_pos
a08
sta |w_bg2vofs
xba
sta |w_bg2vofs
a16
rts
init_new_robot:
jsr hdma_off
lda #1
sta tele_flag
lda #1
sta split_mode
jsr wait_frame
jsr clear_screen
jsr screen_off
lda #$0000
sta robot_2+robot_score
stz robot_1+robot_won
stz robot_2+robot_won
lda #1
sta bout_number
lda demo_mode
bne no_select
!sel_again: jsr select_screen
lda cancel_sel
bne !sel_again
no_select: jsr hdma_off
jsr wait_frame
lda players
sta players_g
lda bouts
sta bouts_g
lda timer
sta timer_g
lda difficulty
sta difficulty_g
lda demo_mode
beq !no_demo
lda #0
sta players_g
lda #1
sta bouts_g
lda #4
sta timer_g
lda #2
sta difficulty_g
!no_demo:
lda bouts_g
dec a
asl
tax
lda >bouts_table,x
sta bouts_total
sta bouts_selected
lsr
inc a
sta bouts_toplay
rts
init_bout:
jsr hdma_off
jsr clear_screen
jsr clear_sprites
jsr init_sprites
jsr init_robots
jsr init_background
jsr init_vars
jsr inipix
jsr init_energy
jsr init_schedule
jsr wait_frame
jsr wait_frame
jsr wait_frame
lda #sc_2n_scrn/2
sta wind_screen
lea window_table,<a0
jsr init_windows
lea font_dat,<a0
jsr init_window_text
lea robot1_window,<a0
ldy #window_1
jsr create_window
lea robot2_window,<a0
ldy #window_2
jsr create_window
; jsr players_won
jsr hdma_off
jsr para_init
jsr hdma_on
jsr fade_screen_on
jsr screen_on
jsr setup_collisions
lda #%01010010
sta m_cgadsub
lda #%10000010
sta m_cgswsel
a08
lda timer_value
sta timer_count
ldx timer_g
dex
lda >timer_table,x
sta timer_count+1
a16
lda >timer_table,x
and #$ff
sta timer_mode
lda #2
sta game_mode
lda #10
sta num_frames
if en_sound!rom
lda robot_opponent
asl
asl
tax
lda >robot_table,x
sta a2
lda >robot_table+2,x
sta a2+2
ldy #ri_music
lda [a2],y
jsr play_tune
endif
jsr wait_frame
a08
lda #%01010000
sta |w_cgadsub
lda #%10000010
sta |w_cgswsel
a16
lda #2
sta spr_blit_flag
stz shake
lda #4
sta sprite_blit_count
stz result
lda >rest_before_mess
sta rest
stz time_over_flag
rts
init_sprite_blit:
stz blit_oam
lda #0
ldx #4*8/2
ldy #0
!lp: sta blit_tables,y
iny
iny
dex
bne !lp
rts
;*******************************************************************************
********
;*
;* Pause
Pause_It:
lda game_mode
bne !exit
lda #but_start
bit |joy_0
bne !start_it
ldx players
dex
beq !exit
bit |joy_1
bne !start_it
bra !exit
!start_it:
jsr sprite_log_blit
lda #Pause_table&$ffff
ldx #$2
jsr gfx_mess
jsr check_gfx_mess
lda #but_start
jsr wait_button_down_up
lda #but_start
jsr wait_button_down_up
!exit:
rts
wait_button_down_up:
tax
!s0 jsr wait_frame
txa
ldy players
dey
beq !p11
bit |joy_1
bne !s1
!p11: bit |joy_0
beq !s0
!s1: jsr wait_frame
txa
ldy players
dey
beq !p12
bit |joy_1
bne !s1
!p12: bit |joy_0
bne !s1
rts
wbdu:
tax
!s0
lda |frame_count
!s0a: cmp |frame_count
beq !s0a
txa
bit |joy_0
bne !s1
bit |joy_1
beq !s0
!s1:
lda |frame_count
!s1a: cmp |frame_count
beq !s1a
txa
bit |joy_0
bne !s1
bit |joy_1
bne !s1
rts
make_joystick_config
ldx #j_config_1
ldy #0
!loop: lda 0,x
sta j_config,y
inx
inx
iny
iny
cpy #12
bcc !loop
rts
delay:
!wl: jsr wait_frame
dex
bne !wl
rts
gfx_mess_delay:
!wl: phx
jsr wait_frame
jsr clear_sprite_buf
jsr csp
jsr check_gfx_mess
jsr sprite_log_blit
plx
dex
bne !wl
rts
sect_2_exit:
jsr fade_screen_off
jsr vbl_vect_off
jsr screen_off
jsr hdma_off
jsr clear_sprites
!loop jmp !loop
which_logo:
if en_which_logo!rom
jml (logo_vect)
endif
rtl
check_timer_out:
lda timer_mode
beq cto_exit
lda game_mode
bne cto_exit
lda timer_count
cmp #2
bcs cto_exit
stz timer_count
ldy #robot_1
lda robot_1+robot_energylost
cmp robot_2+robot_energylost
bcs kill_game
ldy #robot_2
kill_game:
lda #1
sta time_over_flag
jsr end_bout
cto_exit:
rts
game_end_mess:
if en_sound!rom
jsr fade_tune
endif
lda #2000
sta |spr_blit_flag
stz nrg_dsp_flg
jsr wait_frame
jsr wait_frame
lea palette_str,<a0
lda #0
ldx #256
jsr copy_palette_2
ldx #256-16
ldy #16*2
!lp: lda palette_str2,y
and #%0000000000011111
sta palette_str2,y
iny
iny
dex
bne !lp
lda #16
ldx #256-16-16-16
jsr fade_it
jsr wait_frame
ldy #window_1
jsr create_window_matrix
jsr wait_frame
ldy #window_2
jsr create_window_matrix
stz nrg_dsp_flg
!loop1: jsr wait_frame
ldy #window_1
jsr window_process
ldy #window_2
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop1
stz game_mode
lda #4
sta game_mode
lda #1
sta num_frames
rts
bout_over_mess:
ldy #window_1
jsr create_window_matrix
jsr wait_frame
ldy #window_2
jsr create_window_matrix
stz nrg_dsp_flg
!loop1: jsr wait_frame
ldy #window_1
jsr window_process
ldy #window_2
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop1
lda #100
lda #end_time
sta num_frames
rts
game_mess:
!loop1: jsr wait_frame
ldy #window_1
jsr window_process
ldy #window_2
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop1
lda #r0a&$ffff
sta window_1+window_text
lda #r0a>>16
sta window_1+window_text+2
lda robot_opponent
inc a
asl
asl
tax
lda >plrtab,x
sta window_2+window_text
lda >plrtab+2,x
sta window_2+window_text+2
jsr print_windows
lda #scr_1_mess&$ffff
sta window_1+window_text
lda #scr_1_mess>>16
sta window_1+window_text+2
lda #scr_2_mess&$ffff
sta window_2+window_text
lda #scr_2_mess>>16
sta window_2+window_text+2
jsr print_windows
stz game_mode
lda #-1
sta nrg_dsp_flg
!exit:
jsr players_won
rts
print_windows:
!loop: jsr wait_frame
ldy #window_2
jsr window_process
ldy #window_1
jsr window_process
lda window_1+window_text
ora window_1+window_text+2
ora window_2+window_text
ora window_2+window_text+2
bne !loop
rts
set_win_lose_text:
phy
phx
tya
ldy #window_1
ldx #window_2
cmp #robot_1
beq !r1
ldy #window_2
ldx #window_1
!r1:
lda #player_matchlost&$ffff
sta window
Cuts off, but here's another portion from the same region/build:
CODE
rts
schedule_process:
lea schedule,<a1
ldx #sch_len
ldy #0
!loop: lda [a1],y
bne !s1
iny
iny
lda [a1],y
dey
dey
sta [a1],y
bra !s2
!s1: sec
sbc #1
sta [a1],y
!s2: iny
iny
iny
iny
dex
bne !loop
rts
init_robots:
; if en_sp1
lea robot_1,<a2
lda #Robot_Cyb
ldx #2
jsr irs
; endif
; if en_sp2
lea robot_2,<a2
lda robot_opponent
ldx difficulty_g
jsr irs
; endif
ldx players_g
bne !n1
lda robot_1+robot_flags
ora #1<<Bit_CPU
sta robot_1+robot_flags
!n1:
cpx #2
beq !n2
lda robot_2+robot_flags
ora #1<<Bit_CPU
sta robot_2+robot_flags
!n2:
rts
init_background:
if en_back
lda robot_2+robot_type
sta d8
lda #2
sta charc_set
lda #32
lda #0
clc
adc #sc_1n_scrn/2
sta d0
lda d8
clc
; adc #1
asl
asl
tax
lda >robot_table,x
sta a0
sta a4
lda >robot_table+2,x
sta a0+2
sta a4+2
ldy #ri_room
lda [a0],y
tax
iny
iny
lda [a0],y
stx a0
sta a0+2
stz d8+2
jsr back_frame
endif
rts
irs:
;Profile index
pha
txa
dec a
and #3
ldx #7
jsr mult_xa
clc
adc bout_number
dec a
ldx #6
jsr mult_xa
sta d4
pla
if 0
pha
ldx #(robot_parm_size)/2
lda #0
tay
!clp:
sta [a2],y
iny
iny
dex
bne !clp
pla
endif
ldy #robot_type
sta [a2],y
asl
asl
tax
lda >robot_table,x
sta a6
lda >robot_table+2,x
sta a6+2
ldy #ri_gfx
lda [a6],y
pha
iny
iny
lda [a6],y
ldy #robot_gfx+2
sta [a2],y
dey
dey
pla
sta [a2],y
ldx a2
cpx #robot_1
bne p2_set
p1_set:
lda #sjoy0
sta robot_joyval,x
ldy #ri_xstartl
lda [a6],y
sta robot_x,x
sta robot_x_origin,x
lda #robot_2
sta robot_other,x
lda #0
sta robot_other+2,x
lda #rob_gbuff_1&$ffff
sta robot_graphics,x
lda #rob_gbuff_1>>16
sta robot_graphics+2,x
lda #0
sta robot_overdelay,x
bra set_ok
p2_set:
lda #sjoy1
sta robot_joyval,x
ldy #ri_xstartr
lda [a6],y
s
schedule_process:
lea schedule,<a1
ldx #sch_len
ldy #0
!loop: lda [a1],y
bne !s1
iny
iny
lda [a1],y
dey
dey
sta [a1],y
bra !s2
!s1: sec
sbc #1
sta [a1],y
!s2: iny
iny
iny
iny
dex
bne !loop
rts
init_robots:
; if en_sp1
lea robot_1,<a2
lda #Robot_Cyb
ldx #2
jsr irs
; endif
; if en_sp2
lea robot_2,<a2
lda robot_opponent
ldx difficulty_g
jsr irs
; endif
ldx players_g
bne !n1
lda robot_1+robot_flags
ora #1<<Bit_CPU
sta robot_1+robot_flags
!n1:
cpx #2
beq !n2
lda robot_2+robot_flags
ora #1<<Bit_CPU
sta robot_2+robot_flags
!n2:
rts
init_background:
if en_back
lda robot_2+robot_type
sta d8
lda #2
sta charc_set
lda #32
lda #0
clc
adc #sc_1n_scrn/2
sta d0
lda d8
clc
; adc #1
asl
asl
tax
lda >robot_table,x
sta a0
sta a4
lda >robot_table+2,x
sta a0+2
sta a4+2
ldy #ri_room
lda [a0],y
tax
iny
iny
lda [a0],y
stx a0
sta a0+2
stz d8+2
jsr back_frame
endif
rts
irs:
;Profile index
pha
txa
dec a
and #3
ldx #7
jsr mult_xa
clc
adc bout_number
dec a
ldx #6
jsr mult_xa
sta d4
pla
if 0
pha
ldx #(robot_parm_size)/2
lda #0
tay
!clp:
sta [a2],y
iny
iny
dex
bne !clp
pla
endif
ldy #robot_type
sta [a2],y
asl
asl
tax
lda >robot_table,x
sta a6
lda >robot_table+2,x
sta a6+2
ldy #ri_gfx
lda [a6],y
pha
iny
iny
lda [a6],y
ldy #robot_gfx+2
sta [a2],y
dey
dey
pla
sta [a2],y
ldx a2
cpx #robot_1
bne p2_set
p1_set:
lda #sjoy0
sta robot_joyval,x
ldy #ri_xstartl
lda [a6],y
sta robot_x,x
sta robot_x_origin,x
lda #robot_2
sta robot_other,x
lda #0
sta robot_other+2,x
lda #rob_gbuff_1&$ffff
sta robot_graphics,x
lda #rob_gbuff_1>>16
sta robot_graphics+2,x
lda #0
sta robot_overdelay,x
bra set_ok
p2_set:
lda #sjoy1
sta robot_joyval,x
ldy #ri_xstartr
lda [a6],y
s
Same thing. Here's more:
CODE
;
ldx mission ;if die on mission go back to intro screen
dex ;else go back to select screen
bne !ns
ldx players
dex
bne !ns
!ng: lda #gs_new_game
sta game_state
jmp game_loop_end
!ns:
lda #gs_new_select
sta game_state
jmp game_loop_end
;************************ Cyborg Victory *************************************************
victory:
ldx players ;2 Players - so select
dex
bne !new_select
ldx mission ;Training - so new game
dex
bne !new_select
lda robot_2+robot_type
cmp #robot_sup
bne !new_robot
;*******************************************************************************
*****
;
; M I S S I O N C O M P L E T E hurray , the end of the game
;
jsr end_sequence ;Victory
lda #gs_complete
sta game_state
jmp game_loop_end
!new_robot:
inc robot_opponent
lda #gs_new_robot
sta game_state
jmp game_loop_end
!new_game:
lda #gs_new_game
sta game_state
jmp game_loop_end
!new_select:
lda #gs_new_select
sta game_state
jmp game_loop_end
;*******************************************************************************
*****
set_scroll: jsr wait_frame
lda scroll_pos
a08
sta |w_bg2vofs
xba
sta |w_bg2vofs
a16
rts
init_new_robot:
jsr hdma_off
lda #1
sta tele_flag
lda #1
sta split_mode
jsr wait_frame
jsr clear_screen
jsr screen_off
lda #$0000
sta robot_2+robot_score
stz robot_1+robot_won
stz robot_2+robot_won
lda #1
sta bout_number
lda demo_mode
bne no_select
!sel_again: jsr select_screen
lda cancel_sel
bne !sel_again
no_select: jsr hdma_off
jsr wait_frame
lda players
sta players_g
lda bouts
sta bouts_g
lda timer
sta timer_g
lda difficulty
sta difficulty_g
lda demo_mode
beq !no_demo
lda #0
sta play
ldx mission ;if die on mission go back to intro screen
dex ;else go back to select screen
bne !ns
ldx players
dex
bne !ns
!ng: lda #gs_new_game
sta game_state
jmp game_loop_end
!ns:
lda #gs_new_select
sta game_state
jmp game_loop_end
;************************ Cyborg Victory *************************************************
victory:
ldx players ;2 Players - so select
dex
bne !new_select
ldx mission ;Training - so new game
dex
bne !new_select
lda robot_2+robot_type
cmp #robot_sup
bne !new_robot
;*******************************************************************************
*****
;
; M I S S I O N C O M P L E T E hurray , the end of the game
;
jsr end_sequence ;Victory
lda #gs_complete
sta game_state
jmp game_loop_end
!new_robot:
inc robot_opponent
lda #gs_new_robot
sta game_state
jmp game_loop_end
!new_game:
lda #gs_new_game
sta game_state
jmp game_loop_end
!new_select:
lda #gs_new_select
sta game_state
jmp game_loop_end
;*******************************************************************************
*****
set_scroll: jsr wait_frame
lda scroll_pos
a08
sta |w_bg2vofs
xba
sta |w_bg2vofs
a16
rts
init_new_robot:
jsr hdma_off
lda #1
sta tele_flag
lda #1
sta split_mode
jsr wait_frame
jsr clear_screen
jsr screen_off
lda #$0000
sta robot_2+robot_score
stz robot_1+robot_won
stz robot_2+robot_won
lda #1
sta bout_number
lda demo_mode
bne no_select
!sel_again: jsr select_screen
lda cancel_sel
bne !sel_again
no_select: jsr hdma_off
jsr wait_frame
lda players
sta players_g
lda bouts
sta bouts_g
lda timer
sta timer_g
lda difficulty
sta difficulty_g
lda demo_mode
beq !no_demo
lda #0
sta play
More:
CODE
dec d0 ;any more shards to create ?
beq !exit ;end if not
!na: lda a4
clc
adc #shard_parm_size
sta a4
dec d1
beq !exit
jmp !lp
!exit:
rts
create_spark:
lda #no_sparks
sta d0
ldx #spark_buff
!spl:
lda spark_y,x
bne !not_clear
lda shard_coordx
sta spark_x,x
lda shard_coordy
sta spark_y,x
stz spark_frame,x
rts
!not_clear:
txa
clc
adc #spark_parm_size
tax
dec d0
bne !spl
rts
vert_on:
if en_vert
sei
a08
lda #%10110001
sta |w_nmitimen
a16
lda >htv
sta |w_htimel
cli
endif
rts
np_set:
ldx #max_dma_p
ldy #50
a08
lda r_stat78
a16
bit #1<<4
bne !pal
ldx #max_dma_n
ldy #60
!pal:
if en_ntsc
ldx #max_dma_n
ldy #60
endif
stx max_dma
sty timer_value
rts
vert_off:
if en_vert
jsr wait_frame
sei
a08
lda #%10000001
sta |w_nmitimen
a16
cli
endif
rts
;0978 266333
debug:
if en_debug
if rom=0
if 0
pv robot_2+robot_aioverride,0
pv robot_2+robot_aioverridemode,3
pv robot_2+robot_mode,6
pv robot_2+robot_int,9
pv robot_2+robot_motivation,12
pv robot_2+robot_speed,15
pv robot_2+robot_firepowerdelay,18
pv robot_2+robot_aitimer,21
pv robot_2+robot_aimoveaddr,24
pv robot_2+robot_aimoveaddr+2,27
pv robot_2+robot_aimoveaddr+4,30
endif
if 0
pv robot_2+robot_mode,0
pv robot_2+robot_frame,3
pv robot_2+robot_y,6
pv robot_2+robot_ymax,9
endif
if 1
pv robot_1+robot_frame,0
pv robot_2+robot_frame,3
pw cur_col_pos,6
pw cur_col_diff,11
pw cur_col_xy,16
pw cur_col_xy+2,21
pv robot_1+robot_cur_hit+2,26
pv robot_2+robot_cur_hit+2,29
endif
endif
endif
rts
reset_energy:
ldy a2
lda robot_type,y
asl
beq !exit ;end if not
!na: lda a4
clc
adc #shard_parm_size
sta a4
dec d1
beq !exit
jmp !lp
!exit:
rts
create_spark:
lda #no_sparks
sta d0
ldx #spark_buff
!spl:
lda spark_y,x
bne !not_clear
lda shard_coordx
sta spark_x,x
lda shard_coordy
sta spark_y,x
stz spark_frame,x
rts
!not_clear:
txa
clc
adc #spark_parm_size
tax
dec d0
bne !spl
rts
vert_on:
if en_vert
sei
a08
lda #%10110001
sta |w_nmitimen
a16
lda >htv
sta |w_htimel
cli
endif
rts
np_set:
ldx #max_dma_p
ldy #50
a08
lda r_stat78
a16
bit #1<<4
bne !pal
ldx #max_dma_n
ldy #60
!pal:
if en_ntsc
ldx #max_dma_n
ldy #60
endif
stx max_dma
sty timer_value
rts
vert_off:
if en_vert
jsr wait_frame
sei
a08
lda #%10000001
sta |w_nmitimen
a16
cli
endif
rts
;0978 266333
debug:
if en_debug
if rom=0
if 0
pv robot_2+robot_aioverride,0
pv robot_2+robot_aioverridemode,3
pv robot_2+robot_mode,6
pv robot_2+robot_int,9
pv robot_2+robot_motivation,12
pv robot_2+robot_speed,15
pv robot_2+robot_firepowerdelay,18
pv robot_2+robot_aitimer,21
pv robot_2+robot_aimoveaddr,24
pv robot_2+robot_aimoveaddr+2,27
pv robot_2+robot_aimoveaddr+4,30
endif
if 0
pv robot_2+robot_mode,0
pv robot_2+robot_frame,3
pv robot_2+robot_y,6
pv robot_2+robot_ymax,9
endif
if 1
pv robot_1+robot_frame,0
pv robot_2+robot_frame,3
pw cur_col_pos,6
pw cur_col_diff,11
pw cur_col_xy,16
pw cur_col_xy+2,21
pv robot_1+robot_cur_hit+2,26
pv robot_2+robot_cur_hit+2,29
endif
endif
endif
rts
reset_energy:
ldy a2
lda robot_type,y
asl
MORE:
CODE
SET16
lda #(MusicDriver&$ffff) ;download driver (24 bit address)
sta <SonyAddr lda #RamII
lda #MusicDriver>>16
sta <SonyAddr+2
jsr SONY_send
CLR16
lda #$82 ;DOWNLOAD data (music)
sta >APU_PORT0
SET16
lda mus_data
sta <SonyAddr
lda mus_data+2
sta <SonyAddr+2
jsr SONY_send
CLR16
lda #$82 ;DOWNLOAD data (samples)
sta >APU_PORT0
SET16
lda samp_1
sta <SonyAddr
lda samp_1+2
sta <SonyAddr+2
jsr SONY_send
CLR16
lda #$82 ;DOWNLOAD data (samples)
sta >APU_PORT0
SET16
lda samp_2
sta <SonyAddr
lda samp_2+2
sta <SonyAddr+2
jsr SONY_send
CLR16
sta >APU_PORT3
plp ;restore any interrupts
SET16
rts
;-----------------------------------------------------------------------------
SONY_send: jsr Boot_APU
CLR16
!wait0: lda >APU_PORT0 ;wait for handshake
bne !wait0
dec a
sta >APU_PORT2 ;acknowledge handshake
sta <callnum ;init call number to $FF
rts
;-------------------------------------------------------------------------------
; Once the Sound_Init routine has been called, the following routine can be
; used to download additional music data (or sample data with '#Musicdata'
; replaced by '#Samples') which is required for later levels of the game.
;-------------------------------------------------------------------------------
Send_Data:
stx mus_data
sta mus_data+2
send_mus_data:
CLR16
php
sei ;disable any other interrupts
S_D0: lda >APU_PORT0 ;latest value sent by SOUND CPU
cmp <callnum
bne S_D0 ;previous call still not finished
lda #$82 ;DOWNLOAD data (music)
sta >APU_PORT0
inc <callnum
lda <callnum
sta >APU_PORT3 ;forces a new call
SET16
lda mus_data
sta <SonyAddr
lda mus_data+2
sta <SonyAddr+2
jsr SONY_send
sta >AP
lda #(MusicDriver&$ffff) ;download driver (24 bit address)
sta <SonyAddr lda #RamII
lda #MusicDriver>>16
sta <SonyAddr+2
jsr SONY_send
CLR16
lda #$82 ;DOWNLOAD data (music)
sta >APU_PORT0
SET16
lda mus_data
sta <SonyAddr
lda mus_data+2
sta <SonyAddr+2
jsr SONY_send
CLR16
lda #$82 ;DOWNLOAD data (samples)
sta >APU_PORT0
SET16
lda samp_1
sta <SonyAddr
lda samp_1+2
sta <SonyAddr+2
jsr SONY_send
CLR16
lda #$82 ;DOWNLOAD data (samples)
sta >APU_PORT0
SET16
lda samp_2
sta <SonyAddr
lda samp_2+2
sta <SonyAddr+2
jsr SONY_send
CLR16
sta >APU_PORT3
plp ;restore any interrupts
SET16
rts
;-----------------------------------------------------------------------------
SONY_send: jsr Boot_APU
CLR16
!wait0: lda >APU_PORT0 ;wait for handshake
bne !wait0
dec a
sta >APU_PORT2 ;acknowledge handshake
sta <callnum ;init call number to $FF
rts
;-------------------------------------------------------------------------------
; Once the Sound_Init routine has been called, the following routine can be
; used to download additional music data (or sample data with '#Musicdata'
; replaced by '#Samples') which is required for later levels of the game.
;-------------------------------------------------------------------------------
Send_Data:
stx mus_data
sta mus_data+2
send_mus_data:
CLR16
php
sei ;disable any other interrupts
S_D0: lda >APU_PORT0 ;latest value sent by SOUND CPU
cmp <callnum
bne S_D0 ;previous call still not finished
lda #$82 ;DOWNLOAD data (music)
sta >APU_PORT0
inc <callnum
lda <callnum
sta >APU_PORT3 ;forces a new call
SET16
lda mus_data
sta <SonyAddr
lda mus_data+2
sta <SonyAddr+2
jsr SONY_send
sta >AP
More:
CODE
code: incbin abslogo.bin
endif
dr
hctab:
hct = 0
rept 6
dw hct,hct+$10
hct = hct+$43
endr
endif
dtune_time: dw 400
hit_scale:
dw $80
reverse_off: db $2f,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$2f
power_table:
dw robot_min_power-2
dw robot_mid_power-2
dw robot_max_power-2
sel_ts: dw %00000000
sel_adsub dw %01010010
sel_swel dw %00010010
option_table: dw 3,2,3,4,2,2,3
if en_sound!rom
music_table: dl music1,music1,music2,music3,music4,musict
endif
dr
hctab:
hct = 0
rept 6
dw hct,hct+$10
hct = hct+$43
endr
endif
dtune_time: dw 400
hit_scale:
dw $80
reverse_off: db $2f,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$2f
power_table:
dw robot_min_power-2
dw robot_mid_power-2
dw robot_max_power-2
sel_ts: dw %00000000
sel_adsub dw %01010010
sel_swel dw %00010010
option_table: dw 3,2,3,4,2,2,3
if en_sound!rom
music_table: dl music1,music1,music2,music3,music4,musict
The USA BETA version has some fragments as well, but besides that and the European version - these are the only two versions with source code references.


00
