mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-03 07:29:37 +00:00
31585 lines
1.9 MiB
31585 lines
1.9 MiB
Loading link script "pacman.ld"
|
|
Resolved forward reference game_playable to game_playable
|
|
Resolved forward reference phase to phase
|
|
Resolved forward reference pacman_wins to pacman_wins
|
|
Resolved forward reference music_play_next to music_play_next
|
|
Resolved forward reference music_play_next to music_play_next
|
|
Resolved forward reference music_play_next to music_play_next
|
|
Resolved forward reference phase to phase
|
|
Resolved forward reference IRQ_SCREEN_TOP_LINE to IRQ_SCREEN_TOP_LINE
|
|
Resolved forward reference irq_screen_top to __interrupt(hardware_clobber) void irq_screen_top()
|
|
Resolved forward reference music_play_next to music_play_next
|
|
Resolved forward reference music_play_next to music_play_next
|
|
Resolved forward reference music_play_next to music_play_next
|
|
Resolved forward reference pacman_wins to pacman_wins
|
|
Resolved forward reference pacman_lives to pacman_lives
|
|
Resolved forward reference pill_count to pill_count
|
|
Resolved forward reference phase to phase
|
|
Resolved forward reference game_playable to game_playable
|
|
Resolved forward reference IRQ_SCREEN_TOP_LINE to IRQ_SCREEN_TOP_LINE
|
|
Resolved forward reference irq_screen_top to __interrupt(hardware_clobber) void irq_screen_top()
|
|
Resolved forward reference pacman_lives to pacman_lives
|
|
Resolved forward reference pacman_wins to pacman_wins
|
|
Resolved forward reference LEFT to LEFT
|
|
Resolved forward reference RIGHT to RIGHT
|
|
Resolved forward reference UP to UP
|
|
Resolved forward reference DOWN to DOWN
|
|
Resolved forward reference ABS to ABS
|
|
Resolved forward reference ABS to ABS
|
|
Resolved forward reference ABS to ABS
|
|
Resolved forward reference ABS to ABS
|
|
Resolved forward reference ABS to ABS
|
|
Resolved forward reference ABS to ABS
|
|
Resolved forward reference ABS to ABS
|
|
Resolved forward reference ABS to ABS
|
|
Setting inferred volatile on symbol affected by address-of: logic_tile_ptr in logic_tile_ptr
|
|
Setting inferred volatile on symbol affected by address-of: byteboozer_decrunch::crunched in asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch }
|
|
Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx)
|
|
Inlined call call SEI
|
|
Inlined call splash_run::$17 = call toDd00(SCREENS_1)
|
|
Inlined call splash_run::$18 = call toD018(SCREENS_1, SCREENS_1)
|
|
Inlined call call CLI
|
|
Inlined call call SEI
|
|
Inlined call call CLI
|
|
Inlined call irq_screen_top::$0 = call toD018(SCREENS_1, SCREENS_1)
|
|
Inlined call irq_screen_top::$5 = call toDd00(SCREENS_2)
|
|
Inlined call irq_screen_top::$4 = call toDd00(SCREENS_1)
|
|
Inlined call call __init
|
|
Eliminating unused variable with no statement memcpy::$0
|
|
Eliminating unused variable with no statement memset::$2
|
|
Eliminating unused variable with no statement init_render_index::$4
|
|
Eliminating unused variable with no statement render::$0
|
|
Eliminating unused variable with no statement render::$4
|
|
Eliminating unused variable with no statement render::$5
|
|
Eliminating unused variable with no statement render::$6
|
|
Eliminating unused variable with no statement render::$7
|
|
Eliminating unused variable with no statement render_tiles::$1
|
|
Eliminating unused variable with no statement render_tiles::$3
|
|
Eliminating unused variable with no statement render_tiles::$7
|
|
Eliminating unused variable with no statement render_tiles::$8
|
|
Eliminating unused variable with no statement render_tiles::$9
|
|
Eliminating unused variable with no statement render_tiles::$11
|
|
Eliminating unused variable with no statement level_tile_get::$4
|
|
Eliminating unused variable with no statement level_tile_directions::$4
|
|
Eliminating unused variable with no statement init_sprite_pointers::$3
|
|
Eliminating unused variable with no statement game_logic::$16
|
|
Eliminating unused variable with no statement game_logic::$24
|
|
Eliminating unused variable with no statement game_logic::$30
|
|
Eliminating unused variable with no statement game_logic::$36
|
|
Eliminating unused variable with no statement game_logic::$42
|
|
Eliminating unused variable with no statement game_logic::$59
|
|
Eliminating unused variable with no statement game_logic::$60
|
|
Eliminating unused variable with no statement game_logic::$61
|
|
Eliminating unused variable with no statement game_logic::$112
|
|
Eliminating unused variable with no statement game_logic::$113
|
|
Eliminating unused variable with no statement game_logic::$114
|
|
Eliminating unused variable with no statement game_logic::$133
|
|
Eliminating unused variable with no statement game_logic::$134
|
|
Eliminating unused variable with no statement game_logic::$135
|
|
Eliminating unused variable with no statement game_logic::$154
|
|
Eliminating unused variable with no statement game_logic::$155
|
|
Eliminating unused variable with no statement game_logic::$156
|
|
Eliminating unused variable with no statement game_logic::$175
|
|
Eliminating unused variable with no statement game_logic::$176
|
|
Eliminating unused variable with no statement game_logic::$177
|
|
Eliminating unused variable with no statement game_logic::$196
|
|
Eliminating unused variable with no statement game_logic::$197
|
|
Eliminating unused variable with no statement game_logic::$198
|
|
Eliminating unused variable with no statement game_logic::$201
|
|
Eliminating unused variable with no statement choose_direction::$0
|
|
Eliminating unused variable with no statement choose_direction::$1
|
|
Eliminating unused variable with no statement choose_direction::$11
|
|
Eliminating unused variable with no statement choose_direction::$15
|
|
Eliminating unused variable with no statement choose_direction::$19
|
|
Eliminating unused variable with no statement choose_direction::$23
|
|
Calling convention STACK_CALL adding prepare/execute/finalize for call *musicInit
|
|
Calling convention STACK_CALL adding prepare/execute/finalize for call *musicPlay
|
|
Calling convention STACK_CALL adding prepare/execute/finalize for call *musicInit
|
|
Calling convention STACK_CALL adding prepare/execute/finalize for call *musicPlay
|
|
|
|
CONTROL FLOW GRAPH SSA
|
|
|
|
void * memcpy(void *destination , void *source , unsigned int num)
|
|
memcpy: scope:[memcpy] from splash_run::@35
|
|
memcpy::num#1 = phi( splash_run::@35/memcpy::num#0 )
|
|
memcpy::destination#1 = phi( splash_run::@35/memcpy::destination#0 )
|
|
memcpy::source#1 = phi( splash_run::@35/memcpy::source#0 )
|
|
memcpy::src#0 = ((char *)) memcpy::source#1
|
|
memcpy::dst#0 = ((char *)) memcpy::destination#1
|
|
memcpy::$2 = (char *)memcpy::source#1
|
|
memcpy::src_end#0 = memcpy::$2 + memcpy::num#1
|
|
to:memcpy::@1
|
|
memcpy::@1: scope:[memcpy] from memcpy memcpy::@2
|
|
memcpy::destination#3 = phi( memcpy/memcpy::destination#1, memcpy::@2/memcpy::destination#4 )
|
|
memcpy::dst#3 = phi( memcpy/memcpy::dst#0, memcpy::@2/memcpy::dst#1 )
|
|
memcpy::src_end#1 = phi( memcpy/memcpy::src_end#0, memcpy::@2/memcpy::src_end#2 )
|
|
memcpy::src#2 = phi( memcpy/memcpy::src#0, memcpy::@2/memcpy::src#1 )
|
|
memcpy::$1 = memcpy::src#2 != memcpy::src_end#1
|
|
if(memcpy::$1) goto memcpy::@2
|
|
to:memcpy::@3
|
|
memcpy::@2: scope:[memcpy] from memcpy::@1
|
|
memcpy::destination#4 = phi( memcpy::@1/memcpy::destination#3 )
|
|
memcpy::src_end#2 = phi( memcpy::@1/memcpy::src_end#1 )
|
|
memcpy::dst#2 = phi( memcpy::@1/memcpy::dst#3 )
|
|
memcpy::src#3 = phi( memcpy::@1/memcpy::src#2 )
|
|
*memcpy::dst#2 = *memcpy::src#3
|
|
memcpy::dst#1 = ++ memcpy::dst#2
|
|
memcpy::src#1 = ++ memcpy::src#3
|
|
to:memcpy::@1
|
|
memcpy::@3: scope:[memcpy] from memcpy::@1
|
|
memcpy::destination#2 = phi( memcpy::@1/memcpy::destination#3 )
|
|
memcpy::return#0 = memcpy::destination#2
|
|
to:memcpy::@return
|
|
memcpy::@return: scope:[memcpy] from memcpy::@3
|
|
memcpy::return#3 = phi( memcpy::@3/memcpy::return#0 )
|
|
memcpy::return#1 = memcpy::return#3
|
|
return
|
|
to:@return
|
|
|
|
void * memset(void *str , char c , unsigned int num)
|
|
memset: scope:[memset] from splash_run::@19 splash_run::@26 splash_run::@27 splash_run::@31 splash_run::@37
|
|
memset::c#8 = phi( splash_run::@19/memset::c#0, splash_run::@26/memset::c#1, splash_run::@27/memset::c#2, splash_run::@31/memset::c#3, splash_run::@37/memset::c#4 )
|
|
memset::str#7 = phi( splash_run::@19/memset::str#0, splash_run::@26/memset::str#1, splash_run::@27/memset::str#2, splash_run::@31/memset::str#3, splash_run::@37/memset::str#4 )
|
|
memset::num#5 = phi( splash_run::@19/memset::num#0, splash_run::@26/memset::num#1, splash_run::@27/memset::num#2, splash_run::@31/memset::num#3, splash_run::@37/memset::num#4 )
|
|
memset::$0 = memset::num#5 > 0
|
|
memset::$1 = ! memset::$0
|
|
if(memset::$1) goto memset::@1
|
|
to:memset::@2
|
|
memset::@1: scope:[memset] from memset memset::@3
|
|
memset::str#5 = phi( memset/memset::str#7, memset::@3/memset::str#8 )
|
|
memset::return#0 = memset::str#5
|
|
to:memset::@return
|
|
memset::@2: scope:[memset] from memset
|
|
memset::c#7 = phi( memset/memset::c#8 )
|
|
memset::num#6 = phi( memset/memset::num#5 )
|
|
memset::str#6 = phi( memset/memset::str#7 )
|
|
memset::$4 = (char *)memset::str#6
|
|
memset::end#0 = memset::$4 + memset::num#6
|
|
memset::dst#0 = ((char *)) memset::str#6
|
|
to:memset::@3
|
|
memset::@3: scope:[memset] from memset::@2 memset::@4
|
|
memset::c#6 = phi( memset::@2/memset::c#7, memset::@4/memset::c#5 )
|
|
memset::str#8 = phi( memset::@2/memset::str#6, memset::@4/memset::str#9 )
|
|
memset::end#1 = phi( memset::@2/memset::end#0, memset::@4/memset::end#2 )
|
|
memset::dst#2 = phi( memset::@2/memset::dst#0, memset::@4/memset::dst#1 )
|
|
memset::$3 = memset::dst#2 != memset::end#1
|
|
if(memset::$3) goto memset::@4
|
|
to:memset::@1
|
|
memset::@4: scope:[memset] from memset::@3
|
|
memset::str#9 = phi( memset::@3/memset::str#8 )
|
|
memset::end#2 = phi( memset::@3/memset::end#1 )
|
|
memset::dst#3 = phi( memset::@3/memset::dst#2 )
|
|
memset::c#5 = phi( memset::@3/memset::c#6 )
|
|
*memset::dst#3 = memset::c#5
|
|
memset::dst#1 = ++ memset::dst#3
|
|
to:memset::@3
|
|
memset::@return: scope:[memset] from memset::@1
|
|
memset::return#7 = phi( memset::@1/memset::return#0 )
|
|
memset::return#1 = memset::return#7
|
|
return
|
|
to:@return
|
|
|
|
void byteboozer_decrunch(char * volatile crunched)
|
|
byteboozer_decrunch: scope:[byteboozer_decrunch] from done_run::@2 done_run::@4 gameplay_run::@6 splash_run::@23 splash_run::@24 splash_run::@29 splash_run::@33 splash_run::@36
|
|
asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch }
|
|
to:byteboozer_decrunch::@return
|
|
byteboozer_decrunch::@return: scope:[byteboozer_decrunch] from byteboozer_decrunch
|
|
return
|
|
to:@return
|
|
|
|
void merge_code(char *dest_code , char *raster_code , char *logic_code)
|
|
merge_code: scope:[merge_code] from splash_run::@25
|
|
merge_code::logic_code#20 = phi( splash_run::@25/merge_code::logic_code#6 )
|
|
merge_code::dest_code#19 = phi( splash_run::@25/merge_code::dest_code#7 )
|
|
merge_code::raster_code#7 = phi( splash_run::@25/merge_code::raster_code#3 )
|
|
to:merge_code::@1
|
|
merge_code::@1: scope:[merge_code] from merge_code merge_code::@10 merge_code::@2
|
|
merge_code::logic_code#19 = phi( merge_code/merge_code::logic_code#20, merge_code::@10/merge_code::logic_code#21, merge_code::@2/merge_code::logic_code#22 )
|
|
merge_code::dest_code#14 = phi( merge_code/merge_code::dest_code#19, merge_code::@10/merge_code::dest_code#20, merge_code::@2/merge_code::dest_code#0 )
|
|
merge_code::raster_code#4 = phi( merge_code/merge_code::raster_code#7, merge_code::@10/merge_code::raster_code#8, merge_code::@2/merge_code::raster_code#0 )
|
|
merge_code::$0 = *merge_code::raster_code#4 != merge_code::RASTER_END
|
|
if(merge_code::$0) goto merge_code::@2
|
|
to:merge_code::@3
|
|
merge_code::@2: scope:[merge_code] from merge_code::@1
|
|
merge_code::logic_code#22 = phi( merge_code::@1/merge_code::logic_code#19 )
|
|
merge_code::dest_code#8 = phi( merge_code::@1/merge_code::dest_code#14 )
|
|
merge_code::raster_code#5 = phi( merge_code::@1/merge_code::raster_code#4 )
|
|
*merge_code::dest_code#8 = *merge_code::raster_code#5
|
|
merge_code::dest_code#0 = ++ merge_code::dest_code#8
|
|
merge_code::raster_code#0 = ++ merge_code::raster_code#5
|
|
to:merge_code::@1
|
|
merge_code::@3: scope:[merge_code] from merge_code::@1
|
|
merge_code::dest_code#23 = phi( merge_code::@1/merge_code::dest_code#14 )
|
|
merge_code::logic_code#18 = phi( merge_code::@1/merge_code::logic_code#19 )
|
|
merge_code::raster_code#6 = phi( merge_code::@1/merge_code::raster_code#4 )
|
|
merge_code::raster_code#1 = ++ merge_code::raster_code#6
|
|
merge_code::cycle_budget#0 = *merge_code::raster_code#1
|
|
merge_code::raster_code#2 = ++ merge_code::raster_code#1
|
|
merge_code::$1 = merge_code::cycle_budget#0 == merge_code::RASTER_EXIT
|
|
merge_code::$2 = ! merge_code::$1
|
|
if(merge_code::$2) goto merge_code::@4
|
|
to:merge_code::@14
|
|
merge_code::@4: scope:[merge_code] from merge_code::@3 merge_code::@8
|
|
merge_code::dest_code#26 = phi( merge_code::@3/merge_code::dest_code#23, merge_code::@8/merge_code::dest_code#27 )
|
|
merge_code::raster_code#11 = phi( merge_code::@3/merge_code::raster_code#2, merge_code::@8/merge_code::raster_code#13 )
|
|
merge_code::logic_code#17 = phi( merge_code::@3/merge_code::logic_code#18, merge_code::@8/merge_code::logic_code#2 )
|
|
merge_code::cycle_budget#4 = phi( merge_code::@3/merge_code::cycle_budget#0, merge_code::@8/merge_code::cycle_budget#1 )
|
|
merge_code::$3 = merge_code::cycle_budget#4 > 0
|
|
if(merge_code::$3) goto merge_code::@5
|
|
to:merge_code::@10
|
|
merge_code::@5: scope:[merge_code] from merge_code::@4
|
|
merge_code::dest_code#25 = phi( merge_code::@4/merge_code::dest_code#26 )
|
|
merge_code::raster_code#12 = phi( merge_code::@4/merge_code::raster_code#11 )
|
|
merge_code::cycle_budget#5 = phi( merge_code::@4/merge_code::cycle_budget#4 )
|
|
merge_code::logic_code#7 = phi( merge_code::@4/merge_code::logic_code#17 )
|
|
merge_code::logic_cycles#0 = *merge_code::logic_code#7
|
|
merge_code::$4 = merge_code::logic_cycles#0 != merge_code::LOGIC_EXIT
|
|
merge_code::$5 = merge_code::cycle_budget#5 - 1
|
|
merge_code::$6 = merge_code::logic_cycles#0 < merge_code::$5
|
|
merge_code::$7 = merge_code::logic_cycles#0 == merge_code::cycle_budget#5
|
|
merge_code::$8 = merge_code::$6 || merge_code::$7
|
|
merge_code::$9 = merge_code::$4 && merge_code::$8
|
|
merge_code::$10 = ! merge_code::$9
|
|
if(merge_code::$10) goto merge_code::@10
|
|
to:merge_code::@9
|
|
merge_code::@9: scope:[merge_code] from merge_code::@5
|
|
merge_code::raster_code#17 = phi( merge_code::@5/merge_code::raster_code#12 )
|
|
merge_code::logic_cycles#4 = phi( merge_code::@5/merge_code::logic_cycles#0 )
|
|
merge_code::cycle_budget#13 = phi( merge_code::@5/merge_code::cycle_budget#5 )
|
|
merge_code::dest_code#21 = phi( merge_code::@5/merge_code::dest_code#25 )
|
|
merge_code::logic_code#8 = phi( merge_code::@5/merge_code::logic_code#7 )
|
|
merge_code::logic_code#0 = ++ merge_code::logic_code#8
|
|
to:merge_code::@6
|
|
merge_code::@6: scope:[merge_code] from merge_code::@7 merge_code::@9
|
|
merge_code::raster_code#15 = phi( merge_code::@7/merge_code::raster_code#16, merge_code::@9/merge_code::raster_code#17 )
|
|
merge_code::logic_cycles#2 = phi( merge_code::@7/merge_code::logic_cycles#3, merge_code::@9/merge_code::logic_cycles#4 )
|
|
merge_code::cycle_budget#11 = phi( merge_code::@7/merge_code::cycle_budget#12, merge_code::@9/merge_code::cycle_budget#13 )
|
|
merge_code::dest_code#15 = phi( merge_code::@7/merge_code::dest_code#1, merge_code::@9/merge_code::dest_code#21 )
|
|
merge_code::logic_code#9 = phi( merge_code::@7/merge_code::logic_code#1, merge_code::@9/merge_code::logic_code#0 )
|
|
merge_code::$11 = *merge_code::logic_code#9 != merge_code::LOGIC_END
|
|
if(merge_code::$11) goto merge_code::@7
|
|
to:merge_code::@8
|
|
merge_code::@7: scope:[merge_code] from merge_code::@6
|
|
merge_code::raster_code#16 = phi( merge_code::@6/merge_code::raster_code#15 )
|
|
merge_code::logic_cycles#3 = phi( merge_code::@6/merge_code::logic_cycles#2 )
|
|
merge_code::cycle_budget#12 = phi( merge_code::@6/merge_code::cycle_budget#11 )
|
|
merge_code::dest_code#9 = phi( merge_code::@6/merge_code::dest_code#15 )
|
|
merge_code::logic_code#10 = phi( merge_code::@6/merge_code::logic_code#9 )
|
|
*merge_code::dest_code#9 = *merge_code::logic_code#10
|
|
merge_code::dest_code#1 = ++ merge_code::dest_code#9
|
|
merge_code::logic_code#1 = ++ merge_code::logic_code#10
|
|
to:merge_code::@6
|
|
merge_code::@8: scope:[merge_code] from merge_code::@6
|
|
merge_code::dest_code#27 = phi( merge_code::@6/merge_code::dest_code#15 )
|
|
merge_code::raster_code#13 = phi( merge_code::@6/merge_code::raster_code#15 )
|
|
merge_code::logic_cycles#1 = phi( merge_code::@6/merge_code::logic_cycles#2 )
|
|
merge_code::cycle_budget#6 = phi( merge_code::@6/merge_code::cycle_budget#11 )
|
|
merge_code::logic_code#11 = phi( merge_code::@6/merge_code::logic_code#9 )
|
|
merge_code::logic_code#2 = ++ merge_code::logic_code#11
|
|
merge_code::cycle_budget#1 = merge_code::cycle_budget#6 - merge_code::logic_cycles#1
|
|
to:merge_code::@4
|
|
merge_code::@10: scope:[merge_code] from merge_code::@12 merge_code::@13 merge_code::@4 merge_code::@5
|
|
merge_code::logic_code#21 = phi( merge_code::@12/merge_code::logic_code#23, merge_code::@13/merge_code::logic_code#24, merge_code::@4/merge_code::logic_code#17, merge_code::@5/merge_code::logic_code#7 )
|
|
merge_code::dest_code#20 = phi( merge_code::@12/merge_code::dest_code#3, merge_code::@13/merge_code::dest_code#4, merge_code::@4/merge_code::dest_code#26, merge_code::@5/merge_code::dest_code#25 )
|
|
merge_code::raster_code#8 = phi( merge_code::@12/merge_code::raster_code#9, merge_code::@13/merge_code::raster_code#10, merge_code::@4/merge_code::raster_code#11, merge_code::@5/merge_code::raster_code#12 )
|
|
merge_code::cycle_budget#7 = phi( merge_code::@12/merge_code::cycle_budget#2, merge_code::@13/merge_code::cycle_budget#3, merge_code::@4/merge_code::cycle_budget#4, merge_code::@5/merge_code::cycle_budget#5 )
|
|
merge_code::$12 = merge_code::cycle_budget#7 > 0
|
|
if(merge_code::$12) goto merge_code::@11
|
|
to:merge_code::@1
|
|
merge_code::@11: scope:[merge_code] from merge_code::@10
|
|
merge_code::logic_code#25 = phi( merge_code::@10/merge_code::logic_code#21 )
|
|
merge_code::raster_code#14 = phi( merge_code::@10/merge_code::raster_code#8 )
|
|
merge_code::dest_code#16 = phi( merge_code::@10/merge_code::dest_code#20 )
|
|
merge_code::cycle_budget#8 = phi( merge_code::@10/merge_code::cycle_budget#7 )
|
|
merge_code::$13 = merge_code::cycle_budget#8 == 3
|
|
if(merge_code::$13) goto merge_code::@12
|
|
to:merge_code::@13
|
|
merge_code::@12: scope:[merge_code] from merge_code::@11
|
|
merge_code::logic_code#23 = phi( merge_code::@11/merge_code::logic_code#25 )
|
|
merge_code::raster_code#9 = phi( merge_code::@11/merge_code::raster_code#14 )
|
|
merge_code::cycle_budget#9 = phi( merge_code::@11/merge_code::cycle_budget#8 )
|
|
merge_code::dest_code#10 = phi( merge_code::@11/merge_code::dest_code#16 )
|
|
*merge_code::dest_code#10 = $24
|
|
merge_code::dest_code#2 = ++ merge_code::dest_code#10
|
|
*merge_code::dest_code#2 = $ea
|
|
merge_code::dest_code#3 = ++ merge_code::dest_code#2
|
|
merge_code::cycle_budget#2 = merge_code::cycle_budget#9 - 3
|
|
to:merge_code::@10
|
|
merge_code::@13: scope:[merge_code] from merge_code::@11
|
|
merge_code::logic_code#24 = phi( merge_code::@11/merge_code::logic_code#25 )
|
|
merge_code::raster_code#10 = phi( merge_code::@11/merge_code::raster_code#14 )
|
|
merge_code::cycle_budget#10 = phi( merge_code::@11/merge_code::cycle_budget#8 )
|
|
merge_code::dest_code#11 = phi( merge_code::@11/merge_code::dest_code#16 )
|
|
*merge_code::dest_code#11 = $ea
|
|
merge_code::dest_code#4 = ++ merge_code::dest_code#11
|
|
merge_code::cycle_budget#3 = merge_code::cycle_budget#10 - 2
|
|
to:merge_code::@10
|
|
merge_code::@14: scope:[merge_code] from merge_code::@19 merge_code::@3
|
|
merge_code::dest_code#17 = phi( merge_code::@19/merge_code::dest_code#22, merge_code::@3/merge_code::dest_code#23 )
|
|
merge_code::logic_code#12 = phi( merge_code::@19/merge_code::logic_code#5, merge_code::@3/merge_code::logic_code#18 )
|
|
merge_code::$14 = *merge_code::logic_code#12 != merge_code::LOGIC_EXIT
|
|
if(merge_code::$14) goto merge_code::@15
|
|
to:merge_code::@16
|
|
merge_code::@15: scope:[merge_code] from merge_code::@14
|
|
merge_code::dest_code#24 = phi( merge_code::@14/merge_code::dest_code#17 )
|
|
merge_code::logic_code#13 = phi( merge_code::@14/merge_code::logic_code#12 )
|
|
merge_code::logic_code#3 = ++ merge_code::logic_code#13
|
|
to:merge_code::@17
|
|
merge_code::@16: scope:[merge_code] from merge_code::@14
|
|
merge_code::dest_code#12 = phi( merge_code::@14/merge_code::dest_code#17 )
|
|
*merge_code::dest_code#12 = $60
|
|
merge_code::dest_code#5 = ++ merge_code::dest_code#12
|
|
to:merge_code::@return
|
|
merge_code::@17: scope:[merge_code] from merge_code::@15 merge_code::@18
|
|
merge_code::dest_code#18 = phi( merge_code::@15/merge_code::dest_code#24, merge_code::@18/merge_code::dest_code#6 )
|
|
merge_code::logic_code#14 = phi( merge_code::@15/merge_code::logic_code#3, merge_code::@18/merge_code::logic_code#4 )
|
|
merge_code::$15 = *merge_code::logic_code#14 != merge_code::LOGIC_END
|
|
if(merge_code::$15) goto merge_code::@18
|
|
to:merge_code::@19
|
|
merge_code::@18: scope:[merge_code] from merge_code::@17
|
|
merge_code::dest_code#13 = phi( merge_code::@17/merge_code::dest_code#18 )
|
|
merge_code::logic_code#15 = phi( merge_code::@17/merge_code::logic_code#14 )
|
|
*merge_code::dest_code#13 = *merge_code::logic_code#15
|
|
merge_code::dest_code#6 = ++ merge_code::dest_code#13
|
|
merge_code::logic_code#4 = ++ merge_code::logic_code#15
|
|
to:merge_code::@17
|
|
merge_code::@19: scope:[merge_code] from merge_code::@17
|
|
merge_code::dest_code#22 = phi( merge_code::@17/merge_code::dest_code#18 )
|
|
merge_code::logic_code#16 = phi( merge_code::@17/merge_code::logic_code#14 )
|
|
merge_code::logic_code#5 = ++ merge_code::logic_code#16
|
|
to:merge_code::@14
|
|
merge_code::@return: scope:[merge_code] from merge_code::@16
|
|
return
|
|
to:@return
|
|
|
|
void pacman_sound_init()
|
|
pacman_sound_init: scope:[pacman_sound_init] from gameplay_run::@19
|
|
*((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = $f
|
|
*((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_FREQ) = 0
|
|
*((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = 0
|
|
*((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = 0
|
|
*((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = 0
|
|
*((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = $f0
|
|
to:pacman_sound_init::@return
|
|
pacman_sound_init::@return: scope:[pacman_sound_init] from pacman_sound_init
|
|
return
|
|
to:@return
|
|
|
|
void pacman_sound_play()
|
|
pacman_sound_play: scope:[pacman_sound_play] from irq_screen_top::@10
|
|
pacman_sound_play::$4 = 0 != pacman_ch1_enabled
|
|
pacman_sound_play::$0 = ! pacman_sound_play::$4
|
|
if(pacman_sound_play::$0) goto pacman_sound_play::@return
|
|
to:pacman_sound_play::@1
|
|
pacman_sound_play::@1: scope:[pacman_sound_play] from pacman_sound_play
|
|
*SID_CH1_FREQ_HI = PACMAN_CH1_FREQ_HI[pacman_ch1_idx]
|
|
*((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = PACMAN_CH1_CONTROL[pacman_ch1_idx]
|
|
pacman_ch1_idx = ++ pacman_ch1_idx
|
|
pacman_sound_play::$1 = sizeof PACMAN_CH1_FREQ_HI
|
|
pacman_sound_play::$2 = pacman_ch1_idx == pacman_sound_play::$1
|
|
pacman_sound_play::$3 = ! pacman_sound_play::$2
|
|
if(pacman_sound_play::$3) goto pacman_sound_play::@return
|
|
to:pacman_sound_play::@2
|
|
pacman_sound_play::@2: scope:[pacman_sound_play] from pacman_sound_play::@1
|
|
pacman_ch1_idx = 0
|
|
pacman_ch1_enabled = 0
|
|
to:pacman_sound_play::@return
|
|
pacman_sound_play::@return: scope:[pacman_sound_play] from pacman_sound_play pacman_sound_play::@1 pacman_sound_play::@2
|
|
return
|
|
to:@return
|
|
|
|
void init_render_index()
|
|
init_render_index: scope:[init_render_index] from splash_run::@28
|
|
init_render_index::render_index#0 = RENDER_INDEX
|
|
init_render_index::x_col#0 = 0
|
|
to:init_render_index::@1
|
|
init_render_index::@1: scope:[init_render_index] from init_render_index init_render_index::@7
|
|
init_render_index::render_index#7 = phi( init_render_index/init_render_index::render_index#0, init_render_index::@7/init_render_index::render_index#1 )
|
|
init_render_index::x_col#2 = phi( init_render_index/init_render_index::x_col#0, init_render_index::@7/init_render_index::x_col#1 )
|
|
init_render_index::$0 = init_render_index::x_col#2 < $1a
|
|
if(init_render_index::$0) goto init_render_index::@2
|
|
to:init_render_index::@3
|
|
init_render_index::@2: scope:[init_render_index] from init_render_index::@1
|
|
init_render_index::render_index#5 = phi( init_render_index::@1/init_render_index::render_index#7 )
|
|
init_render_index::x_col#3 = phi( init_render_index::@1/init_render_index::x_col#2 )
|
|
init_render_index::render_ypos_table#0 = RENDER_YPOS
|
|
init_render_index::ypos_inc_offset#0 = 0
|
|
init_render_index::$1 = init_render_index::x_col#3 >= $18
|
|
init_render_index::$2 = ! init_render_index::$1
|
|
if(init_render_index::$2) goto init_render_index::@4
|
|
to:init_render_index::@10
|
|
init_render_index::@3: scope:[init_render_index] from init_render_index::@1
|
|
(RENDER_INDEX+$18*$100)[RENDER_OFFSET_YPOS_INC] = 0
|
|
(RENDER_INDEX+$19*$100)[RENDER_OFFSET_YPOS_INC] = 0
|
|
to:init_render_index::@return
|
|
init_render_index::@4: scope:[init_render_index] from init_render_index::@10 init_render_index::@2
|
|
init_render_index::ypos_inc_offset#7 = phi( init_render_index::@10/init_render_index::ypos_inc_offset#1, init_render_index::@2/init_render_index::ypos_inc_offset#0 )
|
|
init_render_index::render_ypos_table#4 = phi( init_render_index::@10/init_render_index::render_ypos_table#1, init_render_index::@2/init_render_index::render_ypos_table#0 )
|
|
init_render_index::x_col#4 = phi( init_render_index::@10/init_render_index::x_col#6, init_render_index::@2/init_render_index::x_col#3 )
|
|
init_render_index::render_index#2 = phi( init_render_index::@10/init_render_index::render_index#4, init_render_index::@2/init_render_index::render_index#5 )
|
|
init_render_index::render_index_xcol#0 = init_render_index::render_index#2
|
|
init_render_index::$9 = init_render_index::x_col#4 * SIZEOF_POINTER
|
|
init_render_index::canvas_xcol#0 = RENDER_XCOLS[init_render_index::$9]
|
|
init_render_index::y_pos#0 = 0
|
|
to:init_render_index::@5
|
|
init_render_index::@10: scope:[init_render_index] from init_render_index::@2
|
|
init_render_index::x_col#6 = phi( init_render_index::@2/init_render_index::x_col#3 )
|
|
init_render_index::render_index#4 = phi( init_render_index::@2/init_render_index::render_index#5 )
|
|
init_render_index::render_ypos_table#1 = RENDER_YPOS_9TH
|
|
init_render_index::ypos_inc_offset#1 = $b
|
|
to:init_render_index::@4
|
|
init_render_index::@5: scope:[init_render_index] from init_render_index::@4 init_render_index::@8
|
|
init_render_index::x_col#7 = phi( init_render_index::@4/init_render_index::x_col#4, init_render_index::@8/init_render_index::x_col#8 )
|
|
init_render_index::render_index#6 = phi( init_render_index::@4/init_render_index::render_index#2, init_render_index::@8/init_render_index::render_index#8 )
|
|
init_render_index::ypos_inc_offset#6 = phi( init_render_index::@4/init_render_index::ypos_inc_offset#7, init_render_index::@8/init_render_index::ypos_inc_offset#8 )
|
|
init_render_index::render_index_xcol#4 = phi( init_render_index::@4/init_render_index::render_index_xcol#0, init_render_index::@8/init_render_index::render_index_xcol#1 )
|
|
init_render_index::render_ypos_table#3 = phi( init_render_index::@4/init_render_index::render_ypos_table#4, init_render_index::@8/init_render_index::render_ypos_table#5 )
|
|
init_render_index::canvas_xcol#2 = phi( init_render_index::@4/init_render_index::canvas_xcol#0, init_render_index::@8/init_render_index::canvas_xcol#3 )
|
|
init_render_index::y_pos#2 = phi( init_render_index::@4/init_render_index::y_pos#0, init_render_index::@8/init_render_index::y_pos#1 )
|
|
init_render_index::$3 = init_render_index::y_pos#2 < $94
|
|
if(init_render_index::$3) goto init_render_index::@6
|
|
to:init_render_index::@7
|
|
init_render_index::@6: scope:[init_render_index] from init_render_index::@5
|
|
init_render_index::x_col#9 = phi( init_render_index::@5/init_render_index::x_col#7 )
|
|
init_render_index::render_index#9 = phi( init_render_index::@5/init_render_index::render_index#6 )
|
|
init_render_index::ypos_inc_offset#4 = phi( init_render_index::@5/init_render_index::ypos_inc_offset#6 )
|
|
init_render_index::render_index_xcol#2 = phi( init_render_index::@5/init_render_index::render_index_xcol#4 )
|
|
init_render_index::render_ypos_table#2 = phi( init_render_index::@5/init_render_index::render_ypos_table#3 )
|
|
init_render_index::canvas_xcol#1 = phi( init_render_index::@5/init_render_index::canvas_xcol#2 )
|
|
init_render_index::y_pos#3 = phi( init_render_index::@5/init_render_index::y_pos#2 )
|
|
init_render_index::$11 = (unsigned int)init_render_index::y_pos#3
|
|
init_render_index::$10 = init_render_index::$11 * SIZEOF_UNSIGNED_INT
|
|
init_render_index::canvas#0 = init_render_index::canvas_xcol#1 + init_render_index::render_ypos_table#2[init_render_index::$10]
|
|
init_render_index::$5 = byte0 init_render_index::canvas#0
|
|
init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_LO] = init_render_index::$5
|
|
init_render_index::$6 = byte1 init_render_index::canvas#0
|
|
init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_HI] = init_render_index::$6
|
|
init_render_index::render_index_xcol#2[RENDER_OFFSET_YPOS_INC] = init_render_index::ypos_inc_offset#4
|
|
init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#4 + 2
|
|
init_render_index::$7 = init_render_index::ypos_inc_offset#2 >= $17
|
|
init_render_index::$8 = ! init_render_index::$7
|
|
if(init_render_index::$8) goto init_render_index::@8
|
|
to:init_render_index::@9
|
|
init_render_index::@7: scope:[init_render_index] from init_render_index::@5
|
|
init_render_index::x_col#5 = phi( init_render_index::@5/init_render_index::x_col#7 )
|
|
init_render_index::render_index#3 = phi( init_render_index::@5/init_render_index::render_index#6 )
|
|
init_render_index::render_index#1 = init_render_index::render_index#3 + $100
|
|
init_render_index::x_col#1 = ++ init_render_index::x_col#5
|
|
to:init_render_index::@1
|
|
init_render_index::@8: scope:[init_render_index] from init_render_index::@6 init_render_index::@9
|
|
init_render_index::x_col#8 = phi( init_render_index::@6/init_render_index::x_col#9, init_render_index::@9/init_render_index::x_col#10 )
|
|
init_render_index::render_index#8 = phi( init_render_index::@6/init_render_index::render_index#9, init_render_index::@9/init_render_index::render_index#10 )
|
|
init_render_index::ypos_inc_offset#8 = phi( init_render_index::@6/init_render_index::ypos_inc_offset#2, init_render_index::@9/init_render_index::ypos_inc_offset#3 )
|
|
init_render_index::render_ypos_table#5 = phi( init_render_index::@6/init_render_index::render_ypos_table#2, init_render_index::@9/init_render_index::render_ypos_table#6 )
|
|
init_render_index::canvas_xcol#3 = phi( init_render_index::@6/init_render_index::canvas_xcol#1, init_render_index::@9/init_render_index::canvas_xcol#4 )
|
|
init_render_index::y_pos#4 = phi( init_render_index::@6/init_render_index::y_pos#3, init_render_index::@9/init_render_index::y_pos#5 )
|
|
init_render_index::render_index_xcol#3 = phi( init_render_index::@6/init_render_index::render_index_xcol#2, init_render_index::@9/init_render_index::render_index_xcol#5 )
|
|
init_render_index::render_index_xcol#1 = ++ init_render_index::render_index_xcol#3
|
|
init_render_index::y_pos#1 = init_render_index::y_pos#4 + 2
|
|
to:init_render_index::@5
|
|
init_render_index::@9: scope:[init_render_index] from init_render_index::@6
|
|
init_render_index::x_col#10 = phi( init_render_index::@6/init_render_index::x_col#9 )
|
|
init_render_index::render_index#10 = phi( init_render_index::@6/init_render_index::render_index#9 )
|
|
init_render_index::render_ypos_table#6 = phi( init_render_index::@6/init_render_index::render_ypos_table#2 )
|
|
init_render_index::canvas_xcol#4 = phi( init_render_index::@6/init_render_index::canvas_xcol#1 )
|
|
init_render_index::y_pos#5 = phi( init_render_index::@6/init_render_index::y_pos#3 )
|
|
init_render_index::render_index_xcol#5 = phi( init_render_index::@6/init_render_index::render_index_xcol#2 )
|
|
init_render_index::ypos_inc_offset#5 = phi( init_render_index::@6/init_render_index::ypos_inc_offset#2 )
|
|
init_render_index::ypos_inc_offset#3 = init_render_index::ypos_inc_offset#5 - $15
|
|
to:init_render_index::@8
|
|
init_render_index::@return: scope:[init_render_index] from init_render_index::@3
|
|
return
|
|
to:@return
|
|
|
|
void render(char xcol , char ypos , char pixels)
|
|
render: scope:[render] from done_run::@15 splash_show::@4
|
|
render::pixels#4 = phi( done_run::@15/render::pixels#0, splash_show::@4/render::pixels#1 )
|
|
render::xcol#2 = phi( done_run::@15/render::xcol#0, splash_show::@4/render::xcol#1 )
|
|
render::ypos#2 = phi( done_run::@15/render::ypos#0, splash_show::@4/render::ypos#1 )
|
|
render::ytile#0 = render::ypos#2 / 4
|
|
render::$1 = byte1 RENDER_INDEX + render::xcol#2
|
|
render::$2 = render::ytile#0 * 2
|
|
render::$3 = render::$1 w= render::$2
|
|
render::render_index_xcol#0 = (char *)render::$3
|
|
render::canvas_offset#0 = render::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= render::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
|
render::canvas1#0 = SPRITES_1 + render::canvas_offset#0
|
|
render::canvas2#0 = SPRITES_2 + render::canvas_offset#0
|
|
render::ypos_inc_offset#0 = render::render_index_xcol#0[RENDER_OFFSET_YPOS_INC]
|
|
render::ypix#0 = render::ypos#2 & 3
|
|
render::i#0 = 0
|
|
to:render::@1
|
|
render::@1: scope:[render] from render render::@2
|
|
render::pixels#3 = phi( render/render::pixels#4, render::@2/render::pixels#5 )
|
|
render::canvas2#4 = phi( render/render::canvas2#0, render::@2/render::canvas2#1 )
|
|
render::ypos_inc_offset#3 = phi( render/render::ypos_inc_offset#0, render::@2/render::ypos_inc_offset#1 )
|
|
render::canvas1#4 = phi( render/render::canvas1#0, render::@2/render::canvas1#1 )
|
|
render::ypix#1 = phi( render/render::ypix#0, render::@2/render::ypix#2 )
|
|
render::i#2 = phi( render/render::i#0, render::@2/render::i#1 )
|
|
render::$8 = render::i#2 < render::ypix#1
|
|
if(render::$8) goto render::@2
|
|
to:render::@3
|
|
render::@2: scope:[render] from render::@1
|
|
render::pixels#5 = phi( render::@1/render::pixels#3 )
|
|
render::ypix#2 = phi( render::@1/render::ypix#1 )
|
|
render::i#3 = phi( render::@1/render::i#2 )
|
|
render::canvas2#2 = phi( render::@1/render::canvas2#4 )
|
|
render::ypos_inc_offset#2 = phi( render::@1/render::ypos_inc_offset#3 )
|
|
render::canvas1#2 = phi( render::@1/render::canvas1#4 )
|
|
render::canvas1#1 = render::canvas1#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2]
|
|
render::canvas2#1 = render::canvas2#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2]
|
|
render::ypos_inc_offset#1 = ++ render::ypos_inc_offset#2
|
|
render::i#1 = ++ render::i#3
|
|
to:render::@1
|
|
render::@3: scope:[render] from render::@1
|
|
render::canvas2#3 = phi( render::@1/render::canvas2#4 )
|
|
render::canvas1#3 = phi( render::@1/render::canvas1#4 )
|
|
render::pixels#2 = phi( render::@1/render::pixels#3 )
|
|
*render::canvas1#3 = render::pixels#2
|
|
*render::canvas2#3 = render::pixels#2
|
|
to:render::@return
|
|
render::@return: scope:[render] from render::@3
|
|
return
|
|
to:@return
|
|
|
|
void render_tiles(char xcol , char ytile , char tile_left , char tile_right)
|
|
render_tiles: scope:[render_tiles] from level_show::@8
|
|
render_tiles::ytile#1 = phi( level_show::@8/render_tiles::ytile#0 )
|
|
render_tiles::xcol#1 = phi( level_show::@8/render_tiles::xcol#0 )
|
|
render_tiles::tile_right#1 = phi( level_show::@8/render_tiles::tile_right#0 )
|
|
render_tiles::tile_left#1 = phi( level_show::@8/render_tiles::tile_left#0 )
|
|
render_tiles::$0 = render_tiles::tile_left#1 * 4
|
|
render_tiles::tile_left_pixels#0 = TILES_LEFT + render_tiles::$0
|
|
render_tiles::$2 = render_tiles::tile_right#1 * 4
|
|
render_tiles::tile_right_pixels#0 = TILES_RIGHT + render_tiles::$2
|
|
render_tiles::$4 = byte1 RENDER_INDEX + render_tiles::xcol#1
|
|
render_tiles::$5 = render_tiles::ytile#1 * 2
|
|
render_tiles::$6 = render_tiles::$4 w= render_tiles::$5
|
|
render_tiles::render_index_xcol#0 = (char *)render_tiles::$6
|
|
render_tiles::canvas_offset#0 = render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
|
render_tiles::canvas1#0 = SPRITES_1 + render_tiles::canvas_offset#0
|
|
render_tiles::canvas2#0 = SPRITES_2 + render_tiles::canvas_offset#0
|
|
render_tiles::ypos_inc_offset#0 = render_tiles::render_index_xcol#0[RENDER_OFFSET_YPOS_INC]
|
|
render_tiles::y#0 = 0
|
|
to:render_tiles::@1
|
|
render_tiles::@1: scope:[render_tiles] from render_tiles render_tiles::@2
|
|
render_tiles::ypos_inc_offset#3 = phi( render_tiles/render_tiles::ypos_inc_offset#0, render_tiles::@2/render_tiles::ypos_inc_offset#1 )
|
|
render_tiles::canvas2#3 = phi( render_tiles/render_tiles::canvas2#0, render_tiles::@2/render_tiles::canvas2#1 )
|
|
render_tiles::canvas1#3 = phi( render_tiles/render_tiles::canvas1#0, render_tiles::@2/render_tiles::canvas1#1 )
|
|
render_tiles::tile_right_pixels#2 = phi( render_tiles/render_tiles::tile_right_pixels#0, render_tiles::@2/render_tiles::tile_right_pixels#1 )
|
|
render_tiles::tile_left_pixels#2 = phi( render_tiles/render_tiles::tile_left_pixels#0, render_tiles::@2/render_tiles::tile_left_pixels#1 )
|
|
render_tiles::y#2 = phi( render_tiles/render_tiles::y#0, render_tiles::@2/render_tiles::y#1 )
|
|
render_tiles::$10 = render_tiles::y#2 < 4
|
|
if(render_tiles::$10) goto render_tiles::@2
|
|
to:render_tiles::@return
|
|
render_tiles::@2: scope:[render_tiles] from render_tiles::@1
|
|
render_tiles::ypos_inc_offset#2 = phi( render_tiles::@1/render_tiles::ypos_inc_offset#3 )
|
|
render_tiles::canvas2#2 = phi( render_tiles::@1/render_tiles::canvas2#3 )
|
|
render_tiles::canvas1#2 = phi( render_tiles::@1/render_tiles::canvas1#3 )
|
|
render_tiles::tile_right_pixels#1 = phi( render_tiles::@1/render_tiles::tile_right_pixels#2 )
|
|
render_tiles::y#3 = phi( render_tiles::@1/render_tiles::y#2 )
|
|
render_tiles::tile_left_pixels#1 = phi( render_tiles::@1/render_tiles::tile_left_pixels#2 )
|
|
render_tiles::pixels#0 = render_tiles::tile_left_pixels#1[render_tiles::y#3] | render_tiles::tile_right_pixels#1[render_tiles::y#3]
|
|
*render_tiles::canvas1#2 = render_tiles::pixels#0
|
|
*render_tiles::canvas2#2 = render_tiles::pixels#0
|
|
render_tiles::canvas1#1 = render_tiles::canvas1#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2]
|
|
render_tiles::canvas2#1 = render_tiles::canvas2#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2]
|
|
render_tiles::ypos_inc_offset#1 = ++ render_tiles::ypos_inc_offset#2
|
|
render_tiles::y#1 = ++ render_tiles::y#3
|
|
to:render_tiles::@1
|
|
render_tiles::@return: scope:[render_tiles] from render_tiles::@1
|
|
return
|
|
to:@return
|
|
|
|
void init_bobs_restore()
|
|
init_bobs_restore: scope:[init_bobs_restore] from splash_run::@32
|
|
init_bobs_restore::bob_restore#0 = bobs_restore
|
|
init_bobs_restore::bob#0 = 0
|
|
to:init_bobs_restore::@1
|
|
init_bobs_restore::@1: scope:[init_bobs_restore] from init_bobs_restore init_bobs_restore::@6
|
|
init_bobs_restore::bob_restore#6 = phi( init_bobs_restore/init_bobs_restore::bob_restore#0, init_bobs_restore::@6/init_bobs_restore::bob_restore#1 )
|
|
init_bobs_restore::bob#2 = phi( init_bobs_restore/init_bobs_restore::bob#0, init_bobs_restore::@6/init_bobs_restore::bob#1 )
|
|
init_bobs_restore::$0 = init_bobs_restore::bob#2 < NUM_BOBS*2
|
|
if(init_bobs_restore::$0) goto init_bobs_restore::@2
|
|
to:init_bobs_restore::@3
|
|
init_bobs_restore::@2: scope:[init_bobs_restore] from init_bobs_restore::@1
|
|
init_bobs_restore::bob#5 = phi( init_bobs_restore::@1/init_bobs_restore::bob#2 )
|
|
init_bobs_restore::bob_restore#5 = phi( init_bobs_restore::@1/init_bobs_restore::bob_restore#6 )
|
|
init_bobs_restore::i#0 = 0
|
|
to:init_bobs_restore::@4
|
|
init_bobs_restore::@3: scope:[init_bobs_restore] from init_bobs_restore::@1
|
|
logic_tile_ptr = LEVEL_TILES+$40*$12+$c
|
|
logic_tile_xcol = $c
|
|
logic_tile_yfine = $23
|
|
to:init_bobs_restore::@return
|
|
init_bobs_restore::@4: scope:[init_bobs_restore] from init_bobs_restore::@2 init_bobs_restore::@5
|
|
init_bobs_restore::bob#4 = phi( init_bobs_restore::@2/init_bobs_restore::bob#5, init_bobs_restore::@5/init_bobs_restore::bob#6 )
|
|
init_bobs_restore::bob_restore#4 = phi( init_bobs_restore::@2/init_bobs_restore::bob_restore#5, init_bobs_restore::@5/init_bobs_restore::bob_restore#2 )
|
|
init_bobs_restore::i#2 = phi( init_bobs_restore::@2/init_bobs_restore::i#0, init_bobs_restore::@5/init_bobs_restore::i#1 )
|
|
init_bobs_restore::$1 = init_bobs_restore::i#2 < SIZE_BOB_RESTORE
|
|
if(init_bobs_restore::$1) goto init_bobs_restore::@5
|
|
to:init_bobs_restore::@6
|
|
init_bobs_restore::@5: scope:[init_bobs_restore] from init_bobs_restore::@4
|
|
init_bobs_restore::bob#6 = phi( init_bobs_restore::@4/init_bobs_restore::bob#4 )
|
|
init_bobs_restore::i#3 = phi( init_bobs_restore::@4/init_bobs_restore::i#2 )
|
|
init_bobs_restore::bob_restore#2 = phi( init_bobs_restore::@4/init_bobs_restore::bob_restore#4 )
|
|
init_bobs_restore::bob_restore#2[init_bobs_restore::i#3] = 0
|
|
init_bobs_restore::i#1 = ++ init_bobs_restore::i#3
|
|
to:init_bobs_restore::@4
|
|
init_bobs_restore::@6: scope:[init_bobs_restore] from init_bobs_restore::@4
|
|
init_bobs_restore::bob#3 = phi( init_bobs_restore::@4/init_bobs_restore::bob#4 )
|
|
init_bobs_restore::bob_restore#3 = phi( init_bobs_restore::@4/init_bobs_restore::bob_restore#4 )
|
|
init_bobs_restore::$2 = byte0 init_bobs_restore::CANVAS_HIDDEN
|
|
init_bobs_restore::bob_restore#3[0] = init_bobs_restore::$2
|
|
init_bobs_restore::$3 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
init_bobs_restore::bob_restore#3[1] = init_bobs_restore::$3
|
|
init_bobs_restore::$4 = byte0 init_bobs_restore::CANVAS_HIDDEN
|
|
init_bobs_restore::bob_restore#3[3] = init_bobs_restore::$4
|
|
init_bobs_restore::$5 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
init_bobs_restore::bob_restore#3[4] = init_bobs_restore::$5
|
|
init_bobs_restore::bob_restore#1 = init_bobs_restore::bob_restore#3 + SIZE_BOB_RESTORE
|
|
init_bobs_restore::bob#1 = ++ init_bobs_restore::bob#3
|
|
to:init_bobs_restore::@1
|
|
init_bobs_restore::@return: scope:[init_bobs_restore] from init_bobs_restore::@3
|
|
return
|
|
to:@return
|
|
|
|
void main()
|
|
main: scope:[main] from __start::@1
|
|
call splash_run
|
|
to:main::@2
|
|
main::@2: scope:[main] from main
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@2 main::@4
|
|
call gameplay_run
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@1
|
|
call done_run
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@3
|
|
to:main::@1
|
|
main::@return: scope:[main] from
|
|
return
|
|
to:@return
|
|
|
|
void done_run()
|
|
done_run: scope:[done_run] from main::@3
|
|
game_playable = 0
|
|
phase = 0
|
|
done_run::i#0 = 0
|
|
to:done_run::@5
|
|
done_run::@5: scope:[done_run] from done_run done_run::@6
|
|
done_run::i#2 = phi( done_run/done_run::i#0, done_run::@6/done_run::i#1 )
|
|
done_run::$1 = done_run::i#2 < $2f
|
|
if(done_run::$1) goto done_run::@6
|
|
to:done_run::@7
|
|
done_run::@6: scope:[done_run] from done_run::@5
|
|
done_run::i#3 = phi( done_run::@5/done_run::i#2 )
|
|
((char *)SID)[done_run::i#3] = 0
|
|
done_run::i#1 = ++ done_run::i#3
|
|
to:done_run::@5
|
|
done_run::@7: scope:[done_run] from done_run::@5
|
|
done_run::i1#0 = 0
|
|
to:done_run::@8
|
|
done_run::@8: scope:[done_run] from done_run::@7 done_run::@9
|
|
done_run::i1#2 = phi( done_run::@7/done_run::i1#0, done_run::@9/done_run::i1#1 )
|
|
done_run::$2 = done_run::i1#2 < 4
|
|
if(done_run::$2) goto done_run::@9
|
|
to:done_run::@10
|
|
done_run::@9: scope:[done_run] from done_run::@8
|
|
done_run::i1#3 = phi( done_run::@8/done_run::i1#2 )
|
|
bobs_xcol[done_run::i1#3] = $a
|
|
bobs_yfine[done_run::i1#3] = $2d
|
|
bobs_bob_id[done_run::i1#3] = 0
|
|
done_run::i1#1 = ++ done_run::i1#3
|
|
to:done_run::@8
|
|
done_run::@10: scope:[done_run] from done_run::@8
|
|
asm { lda#0 }
|
|
callexecute *musicInit
|
|
to:done_run::@1
|
|
done_run::@1: scope:[done_run] from done_run::@10
|
|
done_run::$12 = 0 != pacman_wins
|
|
if(done_run::$12) goto done_run::@2
|
|
to:done_run::@4
|
|
done_run::@2: scope:[done_run] from done_run::@1
|
|
byteboozer_decrunch::crunched = WIN_GFX_CRUNCHED
|
|
call byteboozer_decrunch
|
|
to:done_run::@21
|
|
done_run::@21: scope:[done_run] from done_run::@2
|
|
to:done_run::@3
|
|
done_run::@4: scope:[done_run] from done_run::@1
|
|
byteboozer_decrunch::crunched = GAMEOVER_GFX_CRUNCHED
|
|
call byteboozer_decrunch
|
|
to:done_run::@22
|
|
done_run::@22: scope:[done_run] from done_run::@4
|
|
to:done_run::@3
|
|
done_run::@3: scope:[done_run] from done_run::@21 done_run::@22
|
|
done_run::gfx#0 = WIN_GFX
|
|
done_run::xcol#0 = 0
|
|
to:done_run::@11
|
|
done_run::@11: scope:[done_run] from done_run::@16 done_run::@3
|
|
done_run::gfx#6 = phi( done_run::@16/done_run::gfx#7, done_run::@3/done_run::gfx#0 )
|
|
done_run::xcol#2 = phi( done_run::@16/done_run::xcol#1, done_run::@3/done_run::xcol#0 )
|
|
done_run::$5 = done_run::xcol#2 < $19
|
|
if(done_run::$5) goto done_run::@12
|
|
to:done_run::@13
|
|
done_run::@12: scope:[done_run] from done_run::@11
|
|
done_run::xcol#6 = phi( done_run::@11/done_run::xcol#2 )
|
|
done_run::gfx#4 = phi( done_run::@11/done_run::gfx#6 )
|
|
done_run::ypos#0 = 0
|
|
to:done_run::@14
|
|
done_run::@13: scope:[done_run] from done_run::@11
|
|
music_play_next = 0
|
|
to:done_run::@17
|
|
done_run::@14: scope:[done_run] from done_run::@12 done_run::@23
|
|
done_run::xcol#5 = phi( done_run::@12/done_run::xcol#6, done_run::@23/done_run::xcol#7 )
|
|
done_run::gfx#3 = phi( done_run::@12/done_run::gfx#4, done_run::@23/done_run::gfx#5 )
|
|
done_run::ypos#2 = phi( done_run::@12/done_run::ypos#0, done_run::@23/done_run::ypos#1 )
|
|
done_run::$6 = done_run::ypos#2 < $19
|
|
if(done_run::$6) goto done_run::@15
|
|
to:done_run::@16
|
|
done_run::@15: scope:[done_run] from done_run::@14
|
|
done_run::ypos#3 = phi( done_run::@14/done_run::ypos#2 )
|
|
done_run::xcol#3 = phi( done_run::@14/done_run::xcol#5 )
|
|
done_run::gfx#2 = phi( done_run::@14/done_run::gfx#3 )
|
|
done_run::pixels#0 = *done_run::gfx#2
|
|
done_run::gfx#1 = ++ done_run::gfx#2
|
|
render::xcol#0 = done_run::xcol#3
|
|
render::ypos#0 = done_run::ypos#3
|
|
render::pixels#0 = done_run::pixels#0
|
|
call render
|
|
to:done_run::@23
|
|
done_run::@23: scope:[done_run] from done_run::@15
|
|
done_run::xcol#7 = phi( done_run::@15/done_run::xcol#3 )
|
|
done_run::gfx#5 = phi( done_run::@15/done_run::gfx#1 )
|
|
done_run::ypos#4 = phi( done_run::@15/done_run::ypos#3 )
|
|
done_run::ypos#1 = ++ done_run::ypos#4
|
|
to:done_run::@14
|
|
done_run::@16: scope:[done_run] from done_run::@14
|
|
done_run::gfx#7 = phi( done_run::@14/done_run::gfx#3 )
|
|
done_run::xcol#4 = phi( done_run::@14/done_run::xcol#5 )
|
|
done_run::xcol#1 = ++ done_run::xcol#4
|
|
to:done_run::@11
|
|
done_run::@17: scope:[done_run] from done_run::@13 done_run::@18 done_run::@19
|
|
call joyfire
|
|
joyfire::return#0 = joyfire::return#4
|
|
to:done_run::@24
|
|
done_run::@24: scope:[done_run] from done_run::@17
|
|
joyfire::return#5 = phi( done_run::@17/joyfire::return#0 )
|
|
done_run::$8 = joyfire::return#5
|
|
done_run::$13 = 0 != done_run::$8
|
|
done_run::$9 = ! done_run::$13
|
|
if(done_run::$9) goto done_run::@18
|
|
to:done_run::@return
|
|
done_run::@18: scope:[done_run] from done_run::@24
|
|
done_run::$14 = 0 != music_play_next
|
|
done_run::$10 = ! done_run::$14
|
|
if(done_run::$10) goto done_run::@17
|
|
to:done_run::@20
|
|
done_run::@20: scope:[done_run] from done_run::@18
|
|
callexecute *musicPlay
|
|
to:done_run::@19
|
|
done_run::@19: scope:[done_run] from done_run::@20
|
|
music_play_next = 0
|
|
to:done_run::@17
|
|
done_run::@return: scope:[done_run] from done_run::@24
|
|
return
|
|
to:@return
|
|
|
|
void splash_run()
|
|
splash_run: scope:[splash_run] from main
|
|
to:splash_run::SEI1
|
|
splash_run::SEI1: scope:[splash_run] from splash_run
|
|
asm { sei }
|
|
to:splash_run::@19
|
|
splash_run::@19: scope:[splash_run] from splash_run::SEI1
|
|
*((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR
|
|
*PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
*PROCPORT = PROCPORT_RAM_ALL
|
|
memset::str#0 = (void *)(char *)$4000
|
|
memset::c#0 = 0
|
|
memset::num#0 = $c00
|
|
call memset
|
|
memset::return#2 = memset::return#1
|
|
to:splash_run::@23
|
|
splash_run::@23: scope:[splash_run] from splash_run::@19
|
|
byteboozer_decrunch::crunched = RASTER_CODE_CRUNCHED
|
|
call byteboozer_decrunch
|
|
to:splash_run::@24
|
|
splash_run::@24: scope:[splash_run] from splash_run::@23
|
|
byteboozer_decrunch::crunched = LOGIC_CODE_CRUNCHED
|
|
call byteboozer_decrunch
|
|
to:splash_run::@25
|
|
splash_run::@25: scope:[splash_run] from splash_run::@24
|
|
merge_code::dest_code#7 = RASTER_CODE
|
|
merge_code::raster_code#3 = RASTER_CODE_UNMERGED
|
|
merge_code::logic_code#6 = LOGIC_CODE_UNMERGED
|
|
call merge_code
|
|
to:splash_run::@26
|
|
splash_run::@26: scope:[splash_run] from splash_run::@25
|
|
memset::str#1 = (void *)BANK_1+$2000
|
|
memset::c#1 = 0
|
|
memset::num#1 = $1fff
|
|
call memset
|
|
memset::return#3 = memset::return#1
|
|
to:splash_run::@27
|
|
splash_run::@27: scope:[splash_run] from splash_run::@26
|
|
memset::str#2 = (void *)BANK_2
|
|
memset::c#2 = 0
|
|
memset::num#2 = $3fff
|
|
call memset
|
|
memset::return#4 = memset::return#1
|
|
to:splash_run::@28
|
|
splash_run::@28: scope:[splash_run] from splash_run::@27
|
|
call init_render_index
|
|
to:splash_run::@29
|
|
splash_run::@29: scope:[splash_run] from splash_run::@28
|
|
byteboozer_decrunch::crunched = SPLASH_CRUNCHED
|
|
call byteboozer_decrunch
|
|
to:splash_run::@30
|
|
splash_run::@30: scope:[splash_run] from splash_run::@29
|
|
call splash_show
|
|
to:splash_run::@31
|
|
splash_run::@31: scope:[splash_run] from splash_run::@30
|
|
memset::str#3 = (void *)BANK_1
|
|
memset::c#3 = 0
|
|
memset::num#3 = $1fff
|
|
call memset
|
|
memset::return#5 = memset::return#1
|
|
to:splash_run::@32
|
|
splash_run::@32: scope:[splash_run] from splash_run::@31
|
|
call init_bobs_restore
|
|
to:splash_run::@33
|
|
splash_run::@33: scope:[splash_run] from splash_run::@32
|
|
byteboozer_decrunch::crunched = BOB_GRAPHICS_CRUNCHED
|
|
call byteboozer_decrunch
|
|
to:splash_run::@34
|
|
splash_run::@34: scope:[splash_run] from splash_run::@33
|
|
call init_sprite_pointers
|
|
to:splash_run::@35
|
|
splash_run::@35: scope:[splash_run] from splash_run::@34
|
|
memcpy::destination#0 = (void *)INTRO_MUSIC_CRUNCHED_UPPER
|
|
memcpy::source#0 = (void *)INTRO_MUSIC_CRUNCHED
|
|
memcpy::num#0 = INTRO_MUSIC_CRUNCHED_SIZE
|
|
call memcpy
|
|
memcpy::return#2 = memcpy::return#1
|
|
to:splash_run::@36
|
|
splash_run::@36: scope:[splash_run] from splash_run::@35
|
|
byteboozer_decrunch::crunched = INTRO_MUSIC_CRUNCHED_UPPER
|
|
call byteboozer_decrunch
|
|
to:splash_run::@37
|
|
splash_run::@37: scope:[splash_run] from splash_run::@36
|
|
memset::str#4 = (void *)INTRO_MUSIC_CRUNCHED_UPPER
|
|
memset::c#4 = 0
|
|
memset::num#4 = INTRO_MUSIC_CRUNCHED_SIZE
|
|
call memset
|
|
memset::return#6 = memset::return#1
|
|
to:splash_run::@38
|
|
splash_run::@38: scope:[splash_run] from splash_run::@37
|
|
*PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
*PROCPORT = PROCPORT_RAM_IO
|
|
splash_run::msb#0 = 0
|
|
splash_run::i#0 = 0
|
|
to:splash_run::@2
|
|
splash_run::@2: scope:[splash_run] from splash_run::@38 splash_run::@5
|
|
splash_run::msb#6 = phi( splash_run::@38/splash_run::msb#0, splash_run::@5/splash_run::msb#8 )
|
|
splash_run::i#2 = phi( splash_run::@38/splash_run::i#0, splash_run::@5/splash_run::i#1 )
|
|
splash_run::$22 = splash_run::i#2 < 8
|
|
if(splash_run::$22) goto splash_run::@3
|
|
to:splash_run::@4
|
|
splash_run::@3: scope:[splash_run] from splash_run::@2
|
|
splash_run::msb#3 = phi( splash_run::@2/splash_run::msb#6 )
|
|
splash_run::i#3 = phi( splash_run::@2/splash_run::i#2 )
|
|
splash_run::$23 = splash_run::i#3 * 2
|
|
SPRITES_YPOS[splash_run::$23] = 7
|
|
splash_run::$34 = splash_run::i#3 * SIZEOF_UNSIGNED_INT
|
|
splash_run::xpos#0 = splash_run::sprites_xpos[splash_run::$34]
|
|
splash_run::$24 = splash_run::i#3 * 2
|
|
SPRITES_XPOS[splash_run::$24] = (char)splash_run::xpos#0
|
|
splash_run::msb#1 = splash_run::msb#3 / 2
|
|
splash_run::$25 = byte1 splash_run::xpos#0
|
|
splash_run::$35 = 0 != splash_run::$25
|
|
splash_run::$26 = ! splash_run::$35
|
|
if(splash_run::$26) goto splash_run::@5
|
|
to:splash_run::@6
|
|
splash_run::@4: scope:[splash_run] from splash_run::@2
|
|
splash_run::msb#13 = phi( splash_run::@2/splash_run::msb#6 )
|
|
splash_run::toDd001_gfx#0 = SCREENS_1
|
|
to:splash_run::toDd001
|
|
splash_run::toDd001: scope:[splash_run] from splash_run::@4
|
|
splash_run::msb#12 = phi( splash_run::@4/splash_run::msb#13 )
|
|
splash_run::toDd001_gfx#1 = phi( splash_run::@4/splash_run::toDd001_gfx#0 )
|
|
splash_run::toDd001_$0 = byte1 (unsigned int)splash_run::toDd001_gfx#1
|
|
splash_run::toDd001_$1 = splash_run::toDd001_$0 / $40
|
|
splash_run::toDd001_$2 = 3 ^ splash_run::toDd001_$1
|
|
splash_run::toDd001_return#0 = splash_run::toDd001_$2
|
|
to:splash_run::toDd001_@return
|
|
splash_run::toDd001_@return: scope:[splash_run] from splash_run::toDd001
|
|
splash_run::msb#11 = phi( splash_run::toDd001/splash_run::msb#12 )
|
|
splash_run::toDd001_return#2 = phi( splash_run::toDd001/splash_run::toDd001_return#0 )
|
|
splash_run::toDd001_return#1 = splash_run::toDd001_return#2
|
|
to:splash_run::@20
|
|
splash_run::@20: scope:[splash_run] from splash_run::toDd001_@return
|
|
splash_run::msb#10 = phi( splash_run::toDd001_@return/splash_run::msb#11 )
|
|
splash_run::toDd001_return#3 = phi( splash_run::toDd001_@return/splash_run::toDd001_return#1 )
|
|
splash_run::$17 = splash_run::toDd001_return#3
|
|
*((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = splash_run::$17
|
|
canvas_base_hi = byte1 SPRITES_2
|
|
bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE
|
|
splash_run::toD0181_screen#0 = SCREENS_1
|
|
splash_run::toD0181_gfx#0 = SCREENS_1
|
|
to:splash_run::toD0181
|
|
splash_run::toD0181: scope:[splash_run] from splash_run::@20
|
|
splash_run::msb#9 = phi( splash_run::@20/splash_run::msb#10 )
|
|
splash_run::toD0181_gfx#1 = phi( splash_run::@20/splash_run::toD0181_gfx#0 )
|
|
splash_run::toD0181_screen#1 = phi( splash_run::@20/splash_run::toD0181_screen#0 )
|
|
splash_run::toD0181_$7 = (unsigned int)splash_run::toD0181_screen#1
|
|
splash_run::toD0181_$0 = splash_run::toD0181_$7 & $3fff
|
|
splash_run::toD0181_$1 = splash_run::toD0181_$0 * 4
|
|
splash_run::toD0181_$2 = byte1 splash_run::toD0181_$1
|
|
splash_run::toD0181_$3 = byte1 (unsigned int)splash_run::toD0181_gfx#1
|
|
splash_run::toD0181_$4 = splash_run::toD0181_$3 / 4
|
|
splash_run::toD0181_$5 = splash_run::toD0181_$4 & $f
|
|
splash_run::toD0181_$6 = splash_run::toD0181_$2 | splash_run::toD0181_$5
|
|
splash_run::toD0181_return#0 = splash_run::toD0181_$6
|
|
to:splash_run::toD0181_@return
|
|
splash_run::toD0181_@return: scope:[splash_run] from splash_run::toD0181
|
|
splash_run::msb#7 = phi( splash_run::toD0181/splash_run::msb#9 )
|
|
splash_run::toD0181_return#2 = phi( splash_run::toD0181/splash_run::toD0181_return#0 )
|
|
splash_run::toD0181_return#1 = splash_run::toD0181_return#2
|
|
to:splash_run::@21
|
|
splash_run::@21: scope:[splash_run] from splash_run::toD0181_@return
|
|
splash_run::msb#4 = phi( splash_run::toD0181_@return/splash_run::msb#7 )
|
|
splash_run::toD0181_return#3 = phi( splash_run::toD0181_@return/splash_run::toD0181_return#1 )
|
|
splash_run::$18 = splash_run::toD0181_return#3
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = splash_run::$18
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB) = splash_run::msb#4
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = $ff
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED
|
|
top_sprites_mc = 3
|
|
side_sprites_mc = 0
|
|
bottom_sprites_mc = 3
|
|
top_sprites_color = YELLOW
|
|
side_sprites_color = BLUE
|
|
bottom_sprites_color = YELLOW
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc
|
|
splash_run::i1#0 = 0
|
|
to:splash_run::@7
|
|
splash_run::@5: scope:[splash_run] from splash_run::@3 splash_run::@6
|
|
splash_run::msb#8 = phi( splash_run::@3/splash_run::msb#1, splash_run::@6/splash_run::msb#2 )
|
|
splash_run::i#4 = phi( splash_run::@3/splash_run::i#3, splash_run::@6/splash_run::i#5 )
|
|
splash_run::i#1 = ++ splash_run::i#4
|
|
to:splash_run::@2
|
|
splash_run::@6: scope:[splash_run] from splash_run::@3
|
|
splash_run::i#5 = phi( splash_run::@3/splash_run::i#3 )
|
|
splash_run::msb#5 = phi( splash_run::@3/splash_run::msb#1 )
|
|
splash_run::msb#2 = splash_run::msb#5 | $80
|
|
to:splash_run::@5
|
|
splash_run::@7: scope:[splash_run] from splash_run::@21 splash_run::@8
|
|
splash_run::i1#2 = phi( splash_run::@21/splash_run::i1#0, splash_run::@8/splash_run::i1#1 )
|
|
splash_run::$27 = splash_run::i1#2 < 8
|
|
if(splash_run::$27) goto splash_run::@8
|
|
to:splash_run::@9
|
|
splash_run::@8: scope:[splash_run] from splash_run::@7
|
|
splash_run::i1#3 = phi( splash_run::@7/splash_run::i1#2 )
|
|
SPRITES_COLOR[splash_run::i1#3] = top_sprites_color
|
|
splash_run::i1#1 = ++ splash_run::i1#3
|
|
to:splash_run::@7
|
|
splash_run::@9: scope:[splash_run] from splash_run::@7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 8
|
|
splash_run::i2#0 = 0
|
|
to:splash_run::@10
|
|
splash_run::@10: scope:[splash_run] from splash_run::@11 splash_run::@9
|
|
splash_run::i2#2 = phi( splash_run::@11/splash_run::i2#1, splash_run::@9/splash_run::i2#0 )
|
|
splash_run::$28 = splash_run::i2#2 < 4
|
|
if(splash_run::$28) goto splash_run::@11
|
|
to:splash_run::@12
|
|
splash_run::@11: scope:[splash_run] from splash_run::@10
|
|
splash_run::i2#3 = phi( splash_run::@10/splash_run::i2#2 )
|
|
bobs_xcol[splash_run::i2#3] = $a
|
|
bobs_yfine[splash_run::i2#3] = $2d
|
|
bobs_bob_id[splash_run::i2#3] = 0
|
|
splash_run::i2#1 = ++ splash_run::i2#3
|
|
to:splash_run::@10
|
|
splash_run::@12: scope:[splash_run] from splash_run::@10
|
|
asm { lda#1 staINTRO_MUSIC+$69 }
|
|
asm { lda#0 }
|
|
callexecute *musicInit
|
|
to:splash_run::@1
|
|
splash_run::@1: scope:[splash_run] from splash_run::@12
|
|
phase = 0
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
to:splash_run::@13
|
|
splash_run::@13: scope:[splash_run] from splash_run::@1 splash_run::@13
|
|
splash_run::$29 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fa
|
|
if(splash_run::$29) goto splash_run::@13
|
|
to:splash_run::@14
|
|
splash_run::@14: scope:[splash_run] from splash_run::@13
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE
|
|
*HARDWARE_IRQ = &irq_screen_top
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER
|
|
asm { ldaCIA1_INTERRUPT }
|
|
*IRQ_STATUS = $f
|
|
to:splash_run::CLI1
|
|
splash_run::CLI1: scope:[splash_run] from splash_run::@14
|
|
asm { cli }
|
|
to:splash_run::@22
|
|
splash_run::@22: scope:[splash_run] from splash_run::CLI1
|
|
call joyinit
|
|
to:splash_run::@39
|
|
splash_run::@39: scope:[splash_run] from splash_run::@22
|
|
music_play_next = 0
|
|
to:splash_run::@15
|
|
splash_run::@15: scope:[splash_run] from splash_run::@16 splash_run::@17 splash_run::@39
|
|
call joyfire
|
|
joyfire::return#1 = joyfire::return#4
|
|
to:splash_run::@40
|
|
splash_run::@40: scope:[splash_run] from splash_run::@15
|
|
joyfire::return#6 = phi( splash_run::@15/joyfire::return#1 )
|
|
splash_run::$30 = joyfire::return#6
|
|
splash_run::$36 = 0 != splash_run::$30
|
|
splash_run::$31 = ! splash_run::$36
|
|
if(splash_run::$31) goto splash_run::@16
|
|
to:splash_run::@return
|
|
splash_run::@16: scope:[splash_run] from splash_run::@40
|
|
splash_run::$37 = 0 != music_play_next
|
|
splash_run::$32 = ! splash_run::$37
|
|
if(splash_run::$32) goto splash_run::@15
|
|
to:splash_run::@18
|
|
splash_run::@18: scope:[splash_run] from splash_run::@16
|
|
callexecute *musicPlay
|
|
to:splash_run::@17
|
|
splash_run::@17: scope:[splash_run] from splash_run::@18
|
|
music_play_next = 0
|
|
to:splash_run::@15
|
|
splash_run::@return: scope:[splash_run] from splash_run::@40
|
|
return
|
|
to:@return
|
|
|
|
void gameplay_run()
|
|
gameplay_run: scope:[gameplay_run] from main::@1
|
|
to:gameplay_run::SEI1
|
|
gameplay_run::SEI1: scope:[gameplay_run] from gameplay_run
|
|
asm { sei }
|
|
to:gameplay_run::@14
|
|
gameplay_run::@14: scope:[gameplay_run] from gameplay_run::SEI1
|
|
gameplay_run::i#0 = 0
|
|
to:gameplay_run::@1
|
|
gameplay_run::@1: scope:[gameplay_run] from gameplay_run::@14 gameplay_run::@2
|
|
gameplay_run::i#2 = phi( gameplay_run::@14/gameplay_run::i#0, gameplay_run::@2/gameplay_run::i#1 )
|
|
gameplay_run::$8 = gameplay_run::i#2 < $2f
|
|
if(gameplay_run::$8) goto gameplay_run::@2
|
|
to:gameplay_run::@3
|
|
gameplay_run::@2: scope:[gameplay_run] from gameplay_run::@1
|
|
gameplay_run::i#3 = phi( gameplay_run::@1/gameplay_run::i#2 )
|
|
((char *)SID)[gameplay_run::i#3] = 0
|
|
gameplay_run::i#1 = ++ gameplay_run::i#3
|
|
to:gameplay_run::@1
|
|
gameplay_run::@3: scope:[gameplay_run] from gameplay_run::@1
|
|
pacman_wins = 0
|
|
pacman_lives = 3
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLACK
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = BLACK
|
|
gameplay_run::i1#0 = 0
|
|
to:gameplay_run::@4
|
|
gameplay_run::@4: scope:[gameplay_run] from gameplay_run::@3 gameplay_run::@5
|
|
gameplay_run::i1#2 = phi( gameplay_run::@3/gameplay_run::i1#0, gameplay_run::@5/gameplay_run::i1#1 )
|
|
gameplay_run::$9 = gameplay_run::i1#2 < 8
|
|
if(gameplay_run::$9) goto gameplay_run::@5
|
|
to:gameplay_run::@6
|
|
gameplay_run::@5: scope:[gameplay_run] from gameplay_run::@4
|
|
gameplay_run::i1#3 = phi( gameplay_run::@4/gameplay_run::i1#2 )
|
|
SPRITES_COLOR[gameplay_run::i1#3] = BLACK
|
|
gameplay_run::i1#1 = ++ gameplay_run::i1#3
|
|
to:gameplay_run::@4
|
|
gameplay_run::@6: scope:[gameplay_run] from gameplay_run::@4
|
|
byteboozer_decrunch::crunched = LEVEL_TILES_CRUNCHED
|
|
call byteboozer_decrunch
|
|
to:gameplay_run::@15
|
|
gameplay_run::@15: scope:[gameplay_run] from gameplay_run::@6
|
|
call init_level_tile_directions
|
|
to:gameplay_run::@16
|
|
gameplay_run::@16: scope:[gameplay_run] from gameplay_run::@15
|
|
call init_sprite_pointers
|
|
to:gameplay_run::@17
|
|
gameplay_run::@17: scope:[gameplay_run] from gameplay_run::@16
|
|
call level_show
|
|
level_show::return#0 = level_show::return#2
|
|
to:gameplay_run::@18
|
|
gameplay_run::@18: scope:[gameplay_run] from gameplay_run::@17
|
|
level_show::return#3 = phi( gameplay_run::@17/level_show::return#0 )
|
|
gameplay_run::$4 = level_show::return#3
|
|
pill_count = gameplay_run::$4
|
|
top_sprites_mc = $ff
|
|
side_sprites_mc = $ff
|
|
bottom_sprites_mc = $ff
|
|
top_sprites_color = YELLOW
|
|
side_sprites_color = YELLOW
|
|
bottom_sprites_color = YELLOW
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc
|
|
gameplay_run::i2#0 = 0
|
|
to:gameplay_run::@7
|
|
gameplay_run::@7: scope:[gameplay_run] from gameplay_run::@18 gameplay_run::@8
|
|
gameplay_run::i2#2 = phi( gameplay_run::@18/gameplay_run::i2#0, gameplay_run::@8/gameplay_run::i2#1 )
|
|
gameplay_run::$10 = gameplay_run::i2#2 < 8
|
|
if(gameplay_run::$10) goto gameplay_run::@8
|
|
to:gameplay_run::@9
|
|
gameplay_run::@8: scope:[gameplay_run] from gameplay_run::@7
|
|
gameplay_run::i2#3 = phi( gameplay_run::@7/gameplay_run::i2#2 )
|
|
SPRITES_COLOR[gameplay_run::i2#3] = top_sprites_color
|
|
gameplay_run::i2#1 = ++ gameplay_run::i2#3
|
|
to:gameplay_run::@7
|
|
gameplay_run::@9: scope:[gameplay_run] from gameplay_run::@7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED
|
|
phase = 1
|
|
call spawn_all
|
|
to:gameplay_run::@19
|
|
gameplay_run::@19: scope:[gameplay_run] from gameplay_run::@9
|
|
call pacman_sound_init
|
|
to:gameplay_run::@20
|
|
gameplay_run::@20: scope:[gameplay_run] from gameplay_run::@19
|
|
game_playable = 1
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
to:gameplay_run::@10
|
|
gameplay_run::@10: scope:[gameplay_run] from gameplay_run::@10 gameplay_run::@20
|
|
gameplay_run::$11 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fb
|
|
if(gameplay_run::$11) goto gameplay_run::@10
|
|
to:gameplay_run::@11
|
|
gameplay_run::@11: scope:[gameplay_run] from gameplay_run::@10 gameplay_run::@11
|
|
gameplay_run::$12 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fa
|
|
if(gameplay_run::$12) goto gameplay_run::@11
|
|
to:gameplay_run::@12
|
|
gameplay_run::@12: scope:[gameplay_run] from gameplay_run::@11
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE
|
|
*HARDWARE_IRQ = &irq_screen_top
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER
|
|
asm { ldaCIA1_INTERRUPT }
|
|
*IRQ_STATUS = $f
|
|
to:gameplay_run::CLI1
|
|
gameplay_run::CLI1: scope:[gameplay_run] from gameplay_run::@12
|
|
asm { cli }
|
|
to:gameplay_run::@13
|
|
gameplay_run::@13: scope:[gameplay_run] from gameplay_run::@13 gameplay_run::CLI1
|
|
gameplay_run::$13 = pacman_lives == 0
|
|
gameplay_run::$14 = pacman_wins || gameplay_run::$13
|
|
gameplay_run::$15 = ! gameplay_run::$14
|
|
if(gameplay_run::$15) goto gameplay_run::@13
|
|
to:gameplay_run::@return
|
|
gameplay_run::@return: scope:[gameplay_run] from gameplay_run::@13
|
|
return
|
|
to:@return
|
|
|
|
void joyinit()
|
|
joyinit: scope:[joyinit] from splash_run::@22
|
|
*((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 0
|
|
to:joyinit::@return
|
|
joyinit::@return: scope:[joyinit] from joyinit
|
|
return
|
|
to:@return
|
|
|
|
char joyfire()
|
|
joyfire: scope:[joyfire] from done_run::@17 splash_run::@15
|
|
joyfire::$0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $10
|
|
joyfire::$1 = joyfire::$0 == 0
|
|
if(joyfire::$1) goto joyfire::@1
|
|
to:joyfire::@2
|
|
joyfire::@1: scope:[joyfire] from joyfire
|
|
joyfire::return#2 = 1
|
|
to:joyfire::@return
|
|
joyfire::@2: scope:[joyfire] from joyfire
|
|
joyfire::return#3 = 0
|
|
to:joyfire::@return
|
|
joyfire::@return: scope:[joyfire] from joyfire::@1 joyfire::@2
|
|
joyfire::return#7 = phi( joyfire::@1/joyfire::return#2, joyfire::@2/joyfire::return#3 )
|
|
joyfire::return#4 = joyfire::return#7
|
|
return
|
|
to:@return
|
|
|
|
void splash_show()
|
|
splash_show: scope:[splash_show] from splash_run::@30
|
|
splash_show::splash#0 = SPLASH
|
|
splash_show::xcol#0 = 0
|
|
to:splash_show::@1
|
|
splash_show::@1: scope:[splash_show] from splash_show splash_show::@5
|
|
splash_show::splash#6 = phi( splash_show/splash_show::splash#0, splash_show::@5/splash_show::splash#7 )
|
|
splash_show::xcol#2 = phi( splash_show/splash_show::xcol#0, splash_show::@5/splash_show::xcol#1 )
|
|
splash_show::$0 = splash_show::xcol#2 < $19
|
|
if(splash_show::$0) goto splash_show::@2
|
|
to:splash_show::@return
|
|
splash_show::@2: scope:[splash_show] from splash_show::@1
|
|
splash_show::xcol#6 = phi( splash_show::@1/splash_show::xcol#2 )
|
|
splash_show::splash#4 = phi( splash_show::@1/splash_show::splash#6 )
|
|
splash_show::ypos#0 = 0
|
|
to:splash_show::@3
|
|
splash_show::@3: scope:[splash_show] from splash_show::@2 splash_show::@6
|
|
splash_show::xcol#5 = phi( splash_show::@2/splash_show::xcol#6, splash_show::@6/splash_show::xcol#7 )
|
|
splash_show::splash#3 = phi( splash_show::@2/splash_show::splash#4, splash_show::@6/splash_show::splash#5 )
|
|
splash_show::ypos#2 = phi( splash_show::@2/splash_show::ypos#0, splash_show::@6/splash_show::ypos#1 )
|
|
splash_show::$1 = splash_show::ypos#2 < $93
|
|
if(splash_show::$1) goto splash_show::@4
|
|
to:splash_show::@5
|
|
splash_show::@4: scope:[splash_show] from splash_show::@3
|
|
splash_show::ypos#3 = phi( splash_show::@3/splash_show::ypos#2 )
|
|
splash_show::xcol#3 = phi( splash_show::@3/splash_show::xcol#5 )
|
|
splash_show::splash#2 = phi( splash_show::@3/splash_show::splash#3 )
|
|
splash_show::pixels#0 = *splash_show::splash#2
|
|
splash_show::splash#1 = ++ splash_show::splash#2
|
|
render::xcol#1 = splash_show::xcol#3
|
|
render::ypos#1 = splash_show::ypos#3
|
|
render::pixels#1 = splash_show::pixels#0
|
|
call render
|
|
to:splash_show::@6
|
|
splash_show::@6: scope:[splash_show] from splash_show::@4
|
|
splash_show::xcol#7 = phi( splash_show::@4/splash_show::xcol#3 )
|
|
splash_show::splash#5 = phi( splash_show::@4/splash_show::splash#1 )
|
|
splash_show::ypos#4 = phi( splash_show::@4/splash_show::ypos#3 )
|
|
splash_show::ypos#1 = ++ splash_show::ypos#4
|
|
to:splash_show::@3
|
|
splash_show::@5: scope:[splash_show] from splash_show::@3
|
|
splash_show::splash#7 = phi( splash_show::@3/splash_show::splash#3 )
|
|
splash_show::xcol#4 = phi( splash_show::@3/splash_show::xcol#5 )
|
|
splash_show::xcol#1 = ++ splash_show::xcol#4
|
|
to:splash_show::@1
|
|
splash_show::@return: scope:[splash_show] from splash_show::@1
|
|
return
|
|
to:@return
|
|
|
|
unsigned int level_show()
|
|
level_show: scope:[level_show] from gameplay_run::@17
|
|
level_show::count#0 = 0
|
|
level_show::level#0 = LEVEL_TILES
|
|
level_show::ytile#0 = 0
|
|
to:level_show::@1
|
|
level_show::@1: scope:[level_show] from level_show level_show::@6
|
|
level_show::level#9 = phi( level_show/level_show::level#0, level_show::@6/level_show::level#1 )
|
|
level_show::count#6 = phi( level_show/level_show::count#0, level_show::@6/level_show::count#9 )
|
|
level_show::ytile#2 = phi( level_show/level_show::ytile#0, level_show::@6/level_show::ytile#1 )
|
|
level_show::$0 = level_show::ytile#2 < $25
|
|
if(level_show::$0) goto level_show::@2
|
|
to:level_show::@3
|
|
level_show::@2: scope:[level_show] from level_show::@1
|
|
level_show::count#12 = phi( level_show::@1/level_show::count#6 )
|
|
level_show::ytile#9 = phi( level_show::@1/level_show::ytile#2 )
|
|
level_show::level#8 = phi( level_show::@1/level_show::level#9 )
|
|
level_show::xcol#0 = 0
|
|
level_show::xtile#0 = 0
|
|
to:level_show::@4
|
|
level_show::@3: scope:[level_show] from level_show::@1
|
|
level_show::count#3 = phi( level_show::@1/level_show::count#6 )
|
|
level_show::return#1 = level_show::count#3
|
|
to:level_show::@return
|
|
level_show::@4: scope:[level_show] from level_show::@11 level_show::@2
|
|
level_show::count#10 = phi( level_show::@11/level_show::count#11, level_show::@2/level_show::count#12 )
|
|
level_show::ytile#5 = phi( level_show::@11/level_show::ytile#8, level_show::@2/level_show::ytile#9 )
|
|
level_show::xtile#5 = phi( level_show::@11/level_show::xtile#7, level_show::@2/level_show::xtile#0 )
|
|
level_show::level#5 = phi( level_show::@11/level_show::level#7, level_show::@2/level_show::level#8 )
|
|
level_show::xcol#2 = phi( level_show::@11/level_show::xcol#1, level_show::@2/level_show::xcol#0 )
|
|
level_show::$1 = level_show::xcol#2 < $19
|
|
if(level_show::$1) goto level_show::@5
|
|
to:level_show::@6
|
|
level_show::@5: scope:[level_show] from level_show::@4
|
|
level_show::ytile#10 = phi( level_show::@4/level_show::ytile#5 )
|
|
level_show::xcol#7 = phi( level_show::@4/level_show::xcol#2 )
|
|
level_show::count#7 = phi( level_show::@4/level_show::count#10 )
|
|
level_show::xtile#3 = phi( level_show::@4/level_show::xtile#5 )
|
|
level_show::level#2 = phi( level_show::@4/level_show::level#5 )
|
|
level_show::tile_left#0 = level_show::level#2[level_show::xtile#3]
|
|
level_show::xtile#1 = ++ level_show::xtile#3
|
|
level_show::$2 = TILES_TYPE[level_show::tile_left#0] == PILL
|
|
level_show::$3 = ! level_show::$2
|
|
if(level_show::$3) goto level_show::@7
|
|
to:level_show::@9
|
|
level_show::@6: scope:[level_show] from level_show::@4
|
|
level_show::count#9 = phi( level_show::@4/level_show::count#10 )
|
|
level_show::ytile#3 = phi( level_show::@4/level_show::ytile#5 )
|
|
level_show::level#3 = phi( level_show::@4/level_show::level#5 )
|
|
level_show::level#1 = level_show::level#3 + $40
|
|
level_show::ytile#1 = ++ level_show::ytile#3
|
|
to:level_show::@1
|
|
level_show::@7: scope:[level_show] from level_show::@5 level_show::@9
|
|
level_show::count#8 = phi( level_show::@5/level_show::count#7, level_show::@9/level_show::count#1 )
|
|
level_show::tile_left#3 = phi( level_show::@5/level_show::tile_left#0, level_show::@9/level_show::tile_left#4 )
|
|
level_show::ytile#7 = phi( level_show::@5/level_show::ytile#10, level_show::@9/level_show::ytile#11 )
|
|
level_show::xcol#6 = phi( level_show::@5/level_show::xcol#7, level_show::@9/level_show::xcol#8 )
|
|
level_show::xtile#4 = phi( level_show::@5/level_show::xtile#1, level_show::@9/level_show::xtile#6 )
|
|
level_show::level#4 = phi( level_show::@5/level_show::level#2, level_show::@9/level_show::level#6 )
|
|
level_show::tile_right#0 = level_show::level#4[level_show::xtile#4]
|
|
level_show::xtile#2 = ++ level_show::xtile#4
|
|
level_show::$4 = TILES_TYPE[level_show::tile_right#0] == PILL
|
|
level_show::$5 = ! level_show::$4
|
|
if(level_show::$5) goto level_show::@8
|
|
to:level_show::@10
|
|
level_show::@9: scope:[level_show] from level_show::@5
|
|
level_show::tile_left#4 = phi( level_show::@5/level_show::tile_left#0 )
|
|
level_show::ytile#11 = phi( level_show::@5/level_show::ytile#10 )
|
|
level_show::xcol#8 = phi( level_show::@5/level_show::xcol#7 )
|
|
level_show::xtile#6 = phi( level_show::@5/level_show::xtile#1 )
|
|
level_show::level#6 = phi( level_show::@5/level_show::level#2 )
|
|
level_show::count#4 = phi( level_show::@5/level_show::count#7 )
|
|
level_show::count#1 = ++ level_show::count#4
|
|
to:level_show::@7
|
|
level_show::@8: scope:[level_show] from level_show::@10 level_show::@7
|
|
level_show::count#13 = phi( level_show::@10/level_show::count#2, level_show::@7/level_show::count#8 )
|
|
level_show::xtile#8 = phi( level_show::@10/level_show::xtile#9, level_show::@7/level_show::xtile#2 )
|
|
level_show::level#10 = phi( level_show::@10/level_show::level#11, level_show::@7/level_show::level#4 )
|
|
level_show::tile_right#1 = phi( level_show::@10/level_show::tile_right#2, level_show::@7/level_show::tile_right#0 )
|
|
level_show::tile_left#1 = phi( level_show::@10/level_show::tile_left#2, level_show::@7/level_show::tile_left#3 )
|
|
level_show::ytile#4 = phi( level_show::@10/level_show::ytile#6, level_show::@7/level_show::ytile#7 )
|
|
level_show::xcol#3 = phi( level_show::@10/level_show::xcol#5, level_show::@7/level_show::xcol#6 )
|
|
render_tiles::xcol#0 = level_show::xcol#3
|
|
render_tiles::ytile#0 = level_show::ytile#4
|
|
render_tiles::tile_left#0 = level_show::tile_left#1
|
|
render_tiles::tile_right#0 = level_show::tile_right#1
|
|
call render_tiles
|
|
to:level_show::@11
|
|
level_show::@11: scope:[level_show] from level_show::@8
|
|
level_show::count#11 = phi( level_show::@8/level_show::count#13 )
|
|
level_show::ytile#8 = phi( level_show::@8/level_show::ytile#4 )
|
|
level_show::xtile#7 = phi( level_show::@8/level_show::xtile#8 )
|
|
level_show::level#7 = phi( level_show::@8/level_show::level#10 )
|
|
level_show::xcol#4 = phi( level_show::@8/level_show::xcol#3 )
|
|
level_show::xcol#1 = ++ level_show::xcol#4
|
|
to:level_show::@4
|
|
level_show::@10: scope:[level_show] from level_show::@7
|
|
level_show::xtile#9 = phi( level_show::@7/level_show::xtile#2 )
|
|
level_show::level#11 = phi( level_show::@7/level_show::level#4 )
|
|
level_show::tile_right#2 = phi( level_show::@7/level_show::tile_right#0 )
|
|
level_show::tile_left#2 = phi( level_show::@7/level_show::tile_left#3 )
|
|
level_show::ytile#6 = phi( level_show::@7/level_show::ytile#7 )
|
|
level_show::xcol#5 = phi( level_show::@7/level_show::xcol#6 )
|
|
level_show::count#5 = phi( level_show::@7/level_show::count#8 )
|
|
level_show::count#2 = ++ level_show::count#5
|
|
to:level_show::@8
|
|
level_show::@return: scope:[level_show] from level_show::@3
|
|
level_show::return#4 = phi( level_show::@3/level_show::return#1 )
|
|
level_show::return#2 = level_show::return#4
|
|
return
|
|
to:@return
|
|
|
|
char level_tile_get(char xtile , char ytile)
|
|
level_tile_get: scope:[level_tile_get] from init_level_tile_directions::@4 init_level_tile_directions::@6 init_level_tile_directions::@7 init_level_tile_directions::@8
|
|
level_tile_get::ytile#4 = phi( init_level_tile_directions::@4/level_tile_get::ytile#0, init_level_tile_directions::@6/level_tile_get::ytile#1, init_level_tile_directions::@7/level_tile_get::ytile#2, init_level_tile_directions::@8/level_tile_get::ytile#3 )
|
|
level_tile_get::xtile#4 = phi( init_level_tile_directions::@4/level_tile_get::xtile#0, init_level_tile_directions::@6/level_tile_get::xtile#1, init_level_tile_directions::@7/level_tile_get::xtile#2, init_level_tile_directions::@8/level_tile_get::xtile#3 )
|
|
level_tile_get::$0 = level_tile_get::xtile#4 > $31
|
|
level_tile_get::$1 = level_tile_get::ytile#4 > $24
|
|
level_tile_get::$2 = level_tile_get::$0 || level_tile_get::$1
|
|
level_tile_get::$3 = ! level_tile_get::$2
|
|
if(level_tile_get::$3) goto level_tile_get::@1
|
|
to:level_tile_get::@2
|
|
level_tile_get::@1: scope:[level_tile_get] from level_tile_get
|
|
level_tile_get::xtile#5 = phi( level_tile_get/level_tile_get::xtile#4 )
|
|
level_tile_get::ytile#5 = phi( level_tile_get/level_tile_get::ytile#4 )
|
|
level_tile_get::$5 = level_tile_get::ytile#5 * SIZEOF_UNSIGNED_INT
|
|
level_tile_get::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[level_tile_get::$5]
|
|
level_tile_get::return#0 = level_tile_get::ytiles#0[level_tile_get::xtile#5]
|
|
to:level_tile_get::@return
|
|
level_tile_get::@2: scope:[level_tile_get] from level_tile_get
|
|
level_tile_get::return#1 = 0
|
|
to:level_tile_get::@return
|
|
level_tile_get::@return: scope:[level_tile_get] from level_tile_get::@1 level_tile_get::@2
|
|
level_tile_get::return#7 = phi( level_tile_get::@1/level_tile_get::return#0, level_tile_get::@2/level_tile_get::return#1 )
|
|
level_tile_get::return#2 = level_tile_get::return#7
|
|
return
|
|
to:@return
|
|
|
|
char level_tile_directions(char xtile , char ytile)
|
|
level_tile_directions: scope:[level_tile_directions] from game_logic::@102 game_logic::@120 game_logic::@138 game_logic::@151 game_logic::@84
|
|
level_tile_directions::ytile#5 = phi( game_logic::@102/level_tile_directions::ytile#1, game_logic::@120/level_tile_directions::ytile#2, game_logic::@138/level_tile_directions::ytile#3, game_logic::@151/level_tile_directions::ytile#4, game_logic::@84/level_tile_directions::ytile#0 )
|
|
level_tile_directions::xtile#5 = phi( game_logic::@102/level_tile_directions::xtile#1, game_logic::@120/level_tile_directions::xtile#2, game_logic::@138/level_tile_directions::xtile#3, game_logic::@151/level_tile_directions::xtile#4, game_logic::@84/level_tile_directions::xtile#0 )
|
|
level_tile_directions::$0 = level_tile_directions::xtile#5 > $31
|
|
level_tile_directions::$1 = level_tile_directions::ytile#5 > $24
|
|
level_tile_directions::$2 = level_tile_directions::$0 || level_tile_directions::$1
|
|
level_tile_directions::$3 = ! level_tile_directions::$2
|
|
if(level_tile_directions::$3) goto level_tile_directions::@1
|
|
to:level_tile_directions::@2
|
|
level_tile_directions::@1: scope:[level_tile_directions] from level_tile_directions
|
|
level_tile_directions::xtile#6 = phi( level_tile_directions/level_tile_directions::xtile#5 )
|
|
level_tile_directions::ytile#6 = phi( level_tile_directions/level_tile_directions::ytile#5 )
|
|
level_tile_directions::$5 = level_tile_directions::ytile#6 * SIZEOF_UNSIGNED_INT
|
|
level_tile_directions::ytiles#0 = LEVEL_TILES_DIRECTIONS + LEVEL_YTILE_OFFSET[level_tile_directions::$5]
|
|
level_tile_directions::return#0 = level_tile_directions::ytiles#0[level_tile_directions::xtile#6]
|
|
to:level_tile_directions::@return
|
|
level_tile_directions::@2: scope:[level_tile_directions] from level_tile_directions
|
|
level_tile_directions::return#1 = 0
|
|
to:level_tile_directions::@return
|
|
level_tile_directions::@return: scope:[level_tile_directions] from level_tile_directions::@1 level_tile_directions::@2
|
|
level_tile_directions::return#8 = phi( level_tile_directions::@1/level_tile_directions::return#0, level_tile_directions::@2/level_tile_directions::return#1 )
|
|
level_tile_directions::return#2 = level_tile_directions::return#8
|
|
return
|
|
to:@return
|
|
|
|
void init_level_tile_directions()
|
|
init_level_tile_directions: scope:[init_level_tile_directions] from gameplay_run::@15
|
|
init_level_tile_directions::directions#0 = LEVEL_TILES_DIRECTIONS
|
|
init_level_tile_directions::ytile#0 = 0
|
|
to:init_level_tile_directions::@1
|
|
init_level_tile_directions::@1: scope:[init_level_tile_directions] from init_level_tile_directions init_level_tile_directions::@5
|
|
init_level_tile_directions::directions#9 = phi( init_level_tile_directions/init_level_tile_directions::directions#0, init_level_tile_directions::@5/init_level_tile_directions::directions#1 )
|
|
init_level_tile_directions::ytile#2 = phi( init_level_tile_directions/init_level_tile_directions::ytile#0, init_level_tile_directions::@5/init_level_tile_directions::ytile#1 )
|
|
init_level_tile_directions::$0 = init_level_tile_directions::ytile#2 < $25
|
|
if(init_level_tile_directions::$0) goto init_level_tile_directions::@2
|
|
to:init_level_tile_directions::@return
|
|
init_level_tile_directions::@2: scope:[init_level_tile_directions] from init_level_tile_directions::@1
|
|
init_level_tile_directions::directions#7 = phi( init_level_tile_directions::@1/init_level_tile_directions::directions#9 )
|
|
init_level_tile_directions::ytile#15 = phi( init_level_tile_directions::@1/init_level_tile_directions::ytile#2 )
|
|
init_level_tile_directions::xtile#0 = 0
|
|
to:init_level_tile_directions::@3
|
|
init_level_tile_directions::@3: scope:[init_level_tile_directions] from init_level_tile_directions::@2 init_level_tile_directions::@9
|
|
init_level_tile_directions::directions#4 = phi( init_level_tile_directions::@2/init_level_tile_directions::directions#7, init_level_tile_directions::@9/init_level_tile_directions::directions#3 )
|
|
init_level_tile_directions::ytile#8 = phi( init_level_tile_directions::@2/init_level_tile_directions::ytile#15, init_level_tile_directions::@9/init_level_tile_directions::ytile#16 )
|
|
init_level_tile_directions::xtile#2 = phi( init_level_tile_directions::@2/init_level_tile_directions::xtile#0, init_level_tile_directions::@9/init_level_tile_directions::xtile#1 )
|
|
init_level_tile_directions::$1 = init_level_tile_directions::xtile#2 < $32
|
|
if(init_level_tile_directions::$1) goto init_level_tile_directions::@4
|
|
to:init_level_tile_directions::@5
|
|
init_level_tile_directions::@4: scope:[init_level_tile_directions] from init_level_tile_directions::@3
|
|
init_level_tile_directions::directions#18 = phi( init_level_tile_directions::@3/init_level_tile_directions::directions#4 )
|
|
init_level_tile_directions::ytile#3 = phi( init_level_tile_directions::@3/init_level_tile_directions::ytile#8 )
|
|
init_level_tile_directions::xtile#3 = phi( init_level_tile_directions::@3/init_level_tile_directions::xtile#2 )
|
|
init_level_tile_directions::open_directions#0 = 0
|
|
init_level_tile_directions::$2 = init_level_tile_directions::xtile#3 - 1
|
|
level_tile_get::xtile#0 = init_level_tile_directions::$2
|
|
level_tile_get::ytile#0 = init_level_tile_directions::ytile#3
|
|
call level_tile_get
|
|
level_tile_get::return#3 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@14
|
|
init_level_tile_directions::@14: scope:[init_level_tile_directions] from init_level_tile_directions::@4
|
|
init_level_tile_directions::directions#17 = phi( init_level_tile_directions::@4/init_level_tile_directions::directions#18 )
|
|
init_level_tile_directions::open_directions#10 = phi( init_level_tile_directions::@4/init_level_tile_directions::open_directions#0 )
|
|
init_level_tile_directions::ytile#10 = phi( init_level_tile_directions::@4/init_level_tile_directions::ytile#3 )
|
|
init_level_tile_directions::xtile#9 = phi( init_level_tile_directions::@4/init_level_tile_directions::xtile#3 )
|
|
level_tile_get::return#8 = phi( init_level_tile_directions::@4/level_tile_get::return#3 )
|
|
init_level_tile_directions::$3 = level_tile_get::return#8
|
|
init_level_tile_directions::$4 = TILES_TYPE[init_level_tile_directions::$3] != WALL
|
|
init_level_tile_directions::$5 = ! init_level_tile_directions::$4
|
|
if(init_level_tile_directions::$5) goto init_level_tile_directions::@6
|
|
to:init_level_tile_directions::@10
|
|
init_level_tile_directions::@5: scope:[init_level_tile_directions] from init_level_tile_directions::@3
|
|
init_level_tile_directions::ytile#4 = phi( init_level_tile_directions::@3/init_level_tile_directions::ytile#8 )
|
|
init_level_tile_directions::directions#2 = phi( init_level_tile_directions::@3/init_level_tile_directions::directions#4 )
|
|
init_level_tile_directions::directions#1 = init_level_tile_directions::directions#2 + $40
|
|
init_level_tile_directions::ytile#1 = ++ init_level_tile_directions::ytile#4
|
|
to:init_level_tile_directions::@1
|
|
init_level_tile_directions::@6: scope:[init_level_tile_directions] from init_level_tile_directions::@10 init_level_tile_directions::@14
|
|
init_level_tile_directions::directions#15 = phi( init_level_tile_directions::@10/init_level_tile_directions::directions#16, init_level_tile_directions::@14/init_level_tile_directions::directions#17 )
|
|
init_level_tile_directions::open_directions#14 = phi( init_level_tile_directions::@10/init_level_tile_directions::open_directions#1, init_level_tile_directions::@14/init_level_tile_directions::open_directions#10 )
|
|
init_level_tile_directions::ytile#5 = phi( init_level_tile_directions::@10/init_level_tile_directions::ytile#9, init_level_tile_directions::@14/init_level_tile_directions::ytile#10 )
|
|
init_level_tile_directions::xtile#4 = phi( init_level_tile_directions::@10/init_level_tile_directions::xtile#8, init_level_tile_directions::@14/init_level_tile_directions::xtile#9 )
|
|
init_level_tile_directions::$6 = init_level_tile_directions::xtile#4 + 1
|
|
level_tile_get::xtile#1 = init_level_tile_directions::$6
|
|
level_tile_get::ytile#1 = init_level_tile_directions::ytile#5
|
|
call level_tile_get
|
|
level_tile_get::return#4 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@15
|
|
init_level_tile_directions::@15: scope:[init_level_tile_directions] from init_level_tile_directions::@6
|
|
init_level_tile_directions::directions#14 = phi( init_level_tile_directions::@6/init_level_tile_directions::directions#15 )
|
|
init_level_tile_directions::open_directions#11 = phi( init_level_tile_directions::@6/init_level_tile_directions::open_directions#14 )
|
|
init_level_tile_directions::xtile#11 = phi( init_level_tile_directions::@6/init_level_tile_directions::xtile#4 )
|
|
init_level_tile_directions::ytile#12 = phi( init_level_tile_directions::@6/init_level_tile_directions::ytile#5 )
|
|
level_tile_get::return#9 = phi( init_level_tile_directions::@6/level_tile_get::return#4 )
|
|
init_level_tile_directions::$7 = level_tile_get::return#9
|
|
init_level_tile_directions::$8 = TILES_TYPE[init_level_tile_directions::$7] != WALL
|
|
init_level_tile_directions::$9 = ! init_level_tile_directions::$8
|
|
if(init_level_tile_directions::$9) goto init_level_tile_directions::@7
|
|
to:init_level_tile_directions::@11
|
|
init_level_tile_directions::@10: scope:[init_level_tile_directions] from init_level_tile_directions::@14
|
|
init_level_tile_directions::directions#16 = phi( init_level_tile_directions::@14/init_level_tile_directions::directions#17 )
|
|
init_level_tile_directions::ytile#9 = phi( init_level_tile_directions::@14/init_level_tile_directions::ytile#10 )
|
|
init_level_tile_directions::xtile#8 = phi( init_level_tile_directions::@14/init_level_tile_directions::xtile#9 )
|
|
init_level_tile_directions::open_directions#5 = phi( init_level_tile_directions::@14/init_level_tile_directions::open_directions#10 )
|
|
init_level_tile_directions::open_directions#1 = init_level_tile_directions::open_directions#5 | LEFT
|
|
to:init_level_tile_directions::@6
|
|
init_level_tile_directions::@7: scope:[init_level_tile_directions] from init_level_tile_directions::@11 init_level_tile_directions::@15
|
|
init_level_tile_directions::directions#12 = phi( init_level_tile_directions::@11/init_level_tile_directions::directions#13, init_level_tile_directions::@15/init_level_tile_directions::directions#14 )
|
|
init_level_tile_directions::open_directions#15 = phi( init_level_tile_directions::@11/init_level_tile_directions::open_directions#2, init_level_tile_directions::@15/init_level_tile_directions::open_directions#11 )
|
|
init_level_tile_directions::xtile#5 = phi( init_level_tile_directions::@11/init_level_tile_directions::xtile#10, init_level_tile_directions::@15/init_level_tile_directions::xtile#11 )
|
|
init_level_tile_directions::ytile#6 = phi( init_level_tile_directions::@11/init_level_tile_directions::ytile#11, init_level_tile_directions::@15/init_level_tile_directions::ytile#12 )
|
|
init_level_tile_directions::$10 = init_level_tile_directions::ytile#6 - 1
|
|
level_tile_get::xtile#2 = init_level_tile_directions::xtile#5
|
|
level_tile_get::ytile#2 = init_level_tile_directions::$10
|
|
call level_tile_get
|
|
level_tile_get::return#5 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@16
|
|
init_level_tile_directions::@16: scope:[init_level_tile_directions] from init_level_tile_directions::@7
|
|
init_level_tile_directions::directions#11 = phi( init_level_tile_directions::@7/init_level_tile_directions::directions#12 )
|
|
init_level_tile_directions::open_directions#12 = phi( init_level_tile_directions::@7/init_level_tile_directions::open_directions#15 )
|
|
init_level_tile_directions::xtile#13 = phi( init_level_tile_directions::@7/init_level_tile_directions::xtile#5 )
|
|
init_level_tile_directions::ytile#14 = phi( init_level_tile_directions::@7/init_level_tile_directions::ytile#6 )
|
|
level_tile_get::return#10 = phi( init_level_tile_directions::@7/level_tile_get::return#5 )
|
|
init_level_tile_directions::$11 = level_tile_get::return#10
|
|
init_level_tile_directions::$12 = TILES_TYPE[init_level_tile_directions::$11] != WALL
|
|
init_level_tile_directions::$13 = ! init_level_tile_directions::$12
|
|
if(init_level_tile_directions::$13) goto init_level_tile_directions::@8
|
|
to:init_level_tile_directions::@12
|
|
init_level_tile_directions::@11: scope:[init_level_tile_directions] from init_level_tile_directions::@15
|
|
init_level_tile_directions::directions#13 = phi( init_level_tile_directions::@15/init_level_tile_directions::directions#14 )
|
|
init_level_tile_directions::xtile#10 = phi( init_level_tile_directions::@15/init_level_tile_directions::xtile#11 )
|
|
init_level_tile_directions::ytile#11 = phi( init_level_tile_directions::@15/init_level_tile_directions::ytile#12 )
|
|
init_level_tile_directions::open_directions#6 = phi( init_level_tile_directions::@15/init_level_tile_directions::open_directions#11 )
|
|
init_level_tile_directions::open_directions#2 = init_level_tile_directions::open_directions#6 | RIGHT
|
|
to:init_level_tile_directions::@7
|
|
init_level_tile_directions::@8: scope:[init_level_tile_directions] from init_level_tile_directions::@12 init_level_tile_directions::@16
|
|
init_level_tile_directions::directions#8 = phi( init_level_tile_directions::@12/init_level_tile_directions::directions#10, init_level_tile_directions::@16/init_level_tile_directions::directions#11 )
|
|
init_level_tile_directions::open_directions#16 = phi( init_level_tile_directions::@12/init_level_tile_directions::open_directions#3, init_level_tile_directions::@16/init_level_tile_directions::open_directions#12 )
|
|
init_level_tile_directions::xtile#6 = phi( init_level_tile_directions::@12/init_level_tile_directions::xtile#12, init_level_tile_directions::@16/init_level_tile_directions::xtile#13 )
|
|
init_level_tile_directions::ytile#7 = phi( init_level_tile_directions::@12/init_level_tile_directions::ytile#13, init_level_tile_directions::@16/init_level_tile_directions::ytile#14 )
|
|
init_level_tile_directions::$14 = init_level_tile_directions::ytile#7 + 1
|
|
level_tile_get::xtile#3 = init_level_tile_directions::xtile#6
|
|
level_tile_get::ytile#3 = init_level_tile_directions::$14
|
|
call level_tile_get
|
|
level_tile_get::return#6 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@17
|
|
init_level_tile_directions::@17: scope:[init_level_tile_directions] from init_level_tile_directions::@8
|
|
init_level_tile_directions::ytile#18 = phi( init_level_tile_directions::@8/init_level_tile_directions::ytile#7 )
|
|
init_level_tile_directions::xtile#15 = phi( init_level_tile_directions::@8/init_level_tile_directions::xtile#6 )
|
|
init_level_tile_directions::directions#6 = phi( init_level_tile_directions::@8/init_level_tile_directions::directions#8 )
|
|
init_level_tile_directions::open_directions#13 = phi( init_level_tile_directions::@8/init_level_tile_directions::open_directions#16 )
|
|
level_tile_get::return#11 = phi( init_level_tile_directions::@8/level_tile_get::return#6 )
|
|
init_level_tile_directions::$15 = level_tile_get::return#11
|
|
init_level_tile_directions::$16 = TILES_TYPE[init_level_tile_directions::$15] != WALL
|
|
init_level_tile_directions::$17 = ! init_level_tile_directions::$16
|
|
if(init_level_tile_directions::$17) goto init_level_tile_directions::@9
|
|
to:init_level_tile_directions::@13
|
|
init_level_tile_directions::@12: scope:[init_level_tile_directions] from init_level_tile_directions::@16
|
|
init_level_tile_directions::directions#10 = phi( init_level_tile_directions::@16/init_level_tile_directions::directions#11 )
|
|
init_level_tile_directions::xtile#12 = phi( init_level_tile_directions::@16/init_level_tile_directions::xtile#13 )
|
|
init_level_tile_directions::ytile#13 = phi( init_level_tile_directions::@16/init_level_tile_directions::ytile#14 )
|
|
init_level_tile_directions::open_directions#7 = phi( init_level_tile_directions::@16/init_level_tile_directions::open_directions#12 )
|
|
init_level_tile_directions::open_directions#3 = init_level_tile_directions::open_directions#7 | UP
|
|
to:init_level_tile_directions::@8
|
|
init_level_tile_directions::@9: scope:[init_level_tile_directions] from init_level_tile_directions::@13 init_level_tile_directions::@17
|
|
init_level_tile_directions::ytile#16 = phi( init_level_tile_directions::@13/init_level_tile_directions::ytile#17, init_level_tile_directions::@17/init_level_tile_directions::ytile#18 )
|
|
init_level_tile_directions::xtile#7 = phi( init_level_tile_directions::@13/init_level_tile_directions::xtile#14, init_level_tile_directions::@17/init_level_tile_directions::xtile#15 )
|
|
init_level_tile_directions::directions#3 = phi( init_level_tile_directions::@13/init_level_tile_directions::directions#5, init_level_tile_directions::@17/init_level_tile_directions::directions#6 )
|
|
init_level_tile_directions::open_directions#8 = phi( init_level_tile_directions::@13/init_level_tile_directions::open_directions#4, init_level_tile_directions::@17/init_level_tile_directions::open_directions#13 )
|
|
init_level_tile_directions::directions#3[init_level_tile_directions::xtile#7] = init_level_tile_directions::open_directions#8
|
|
init_level_tile_directions::xtile#1 = ++ init_level_tile_directions::xtile#7
|
|
to:init_level_tile_directions::@3
|
|
init_level_tile_directions::@13: scope:[init_level_tile_directions] from init_level_tile_directions::@17
|
|
init_level_tile_directions::ytile#17 = phi( init_level_tile_directions::@17/init_level_tile_directions::ytile#18 )
|
|
init_level_tile_directions::xtile#14 = phi( init_level_tile_directions::@17/init_level_tile_directions::xtile#15 )
|
|
init_level_tile_directions::directions#5 = phi( init_level_tile_directions::@17/init_level_tile_directions::directions#6 )
|
|
init_level_tile_directions::open_directions#9 = phi( init_level_tile_directions::@17/init_level_tile_directions::open_directions#13 )
|
|
init_level_tile_directions::open_directions#4 = init_level_tile_directions::open_directions#9 | DOWN
|
|
to:init_level_tile_directions::@9
|
|
init_level_tile_directions::@return: scope:[init_level_tile_directions] from init_level_tile_directions::@1
|
|
return
|
|
to:@return
|
|
|
|
void init_sprite_pointers()
|
|
init_sprite_pointers: scope:[init_sprite_pointers] from gameplay_run::@16 splash_run::@34
|
|
init_sprite_pointers::sprites_ptr_1#0 = SCREENS_1+OFFSET_SPRITE_PTRS
|
|
init_sprite_pointers::sprites_ptr_2#0 = SCREENS_2+OFFSET_SPRITE_PTRS
|
|
init_sprite_pointers::screen#0 = 0
|
|
to:init_sprite_pointers::@1
|
|
init_sprite_pointers::@1: scope:[init_sprite_pointers] from init_sprite_pointers init_sprite_pointers::@5
|
|
init_sprite_pointers::sprites_ptr_2#6 = phi( init_sprite_pointers/init_sprite_pointers::sprites_ptr_2#0, init_sprite_pointers::@5/init_sprite_pointers::sprites_ptr_2#1 )
|
|
init_sprite_pointers::sprites_ptr_1#6 = phi( init_sprite_pointers/init_sprite_pointers::sprites_ptr_1#0, init_sprite_pointers::@5/init_sprite_pointers::sprites_ptr_1#1 )
|
|
init_sprite_pointers::screen#2 = phi( init_sprite_pointers/init_sprite_pointers::screen#0, init_sprite_pointers::@5/init_sprite_pointers::screen#1 )
|
|
init_sprite_pointers::$0 = init_sprite_pointers::screen#2 < $e
|
|
if(init_sprite_pointers::$0) goto init_sprite_pointers::@2
|
|
to:init_sprite_pointers::@return
|
|
init_sprite_pointers::@2: scope:[init_sprite_pointers] from init_sprite_pointers::@1
|
|
init_sprite_pointers::sprites_ptr_2#5 = phi( init_sprite_pointers::@1/init_sprite_pointers::sprites_ptr_2#6 )
|
|
init_sprite_pointers::sprites_ptr_1#5 = phi( init_sprite_pointers::@1/init_sprite_pointers::sprites_ptr_1#6 )
|
|
init_sprite_pointers::screen#6 = phi( init_sprite_pointers::@1/init_sprite_pointers::screen#2 )
|
|
init_sprite_pointers::sprite#0 = 0
|
|
to:init_sprite_pointers::@3
|
|
init_sprite_pointers::@3: scope:[init_sprite_pointers] from init_sprite_pointers::@2 init_sprite_pointers::@4
|
|
init_sprite_pointers::sprites_ptr_2#4 = phi( init_sprite_pointers::@2/init_sprite_pointers::sprites_ptr_2#5, init_sprite_pointers::@4/init_sprite_pointers::sprites_ptr_2#2 )
|
|
init_sprite_pointers::sprites_ptr_1#4 = phi( init_sprite_pointers::@2/init_sprite_pointers::sprites_ptr_1#5, init_sprite_pointers::@4/init_sprite_pointers::sprites_ptr_1#2 )
|
|
init_sprite_pointers::screen#5 = phi( init_sprite_pointers::@2/init_sprite_pointers::screen#6, init_sprite_pointers::@4/init_sprite_pointers::screen#3 )
|
|
init_sprite_pointers::sprite#2 = phi( init_sprite_pointers::@2/init_sprite_pointers::sprite#0, init_sprite_pointers::@4/init_sprite_pointers::sprite#1 )
|
|
init_sprite_pointers::$1 = init_sprite_pointers::sprite#2 < 8
|
|
if(init_sprite_pointers::$1) goto init_sprite_pointers::@4
|
|
to:init_sprite_pointers::@5
|
|
init_sprite_pointers::@4: scope:[init_sprite_pointers] from init_sprite_pointers::@3
|
|
init_sprite_pointers::sprites_ptr_2#2 = phi( init_sprite_pointers::@3/init_sprite_pointers::sprites_ptr_2#4 )
|
|
init_sprite_pointers::sprites_ptr_1#2 = phi( init_sprite_pointers::@3/init_sprite_pointers::sprites_ptr_1#4 )
|
|
init_sprite_pointers::sprite#3 = phi( init_sprite_pointers::@3/init_sprite_pointers::sprite#2 )
|
|
init_sprite_pointers::screen#3 = phi( init_sprite_pointers::@3/init_sprite_pointers::screen#5 )
|
|
init_sprite_pointers::$2 = init_sprite_pointers::SPRITE_ID_0 + init_sprite_pointers::screen#3
|
|
init_sprite_pointers::sprite_id#0 = init_sprite_pointers::$2 + init_sprite_pointers::sprites_id[init_sprite_pointers::sprite#3]
|
|
init_sprite_pointers::sprites_ptr_1#2[init_sprite_pointers::sprite#3] = init_sprite_pointers::sprite_id#0
|
|
init_sprite_pointers::sprites_ptr_2#2[init_sprite_pointers::sprite#3] = init_sprite_pointers::sprite_id#0
|
|
init_sprite_pointers::sprite#1 = ++ init_sprite_pointers::sprite#3
|
|
to:init_sprite_pointers::@3
|
|
init_sprite_pointers::@5: scope:[init_sprite_pointers] from init_sprite_pointers::@3
|
|
init_sprite_pointers::screen#4 = phi( init_sprite_pointers::@3/init_sprite_pointers::screen#5 )
|
|
init_sprite_pointers::sprites_ptr_2#3 = phi( init_sprite_pointers::@3/init_sprite_pointers::sprites_ptr_2#4 )
|
|
init_sprite_pointers::sprites_ptr_1#3 = phi( init_sprite_pointers::@3/init_sprite_pointers::sprites_ptr_1#4 )
|
|
init_sprite_pointers::sprites_ptr_1#1 = init_sprite_pointers::sprites_ptr_1#3 + $400
|
|
init_sprite_pointers::sprites_ptr_2#1 = init_sprite_pointers::sprites_ptr_2#3 + $400
|
|
init_sprite_pointers::screen#1 = ++ init_sprite_pointers::screen#4
|
|
to:init_sprite_pointers::@1
|
|
init_sprite_pointers::@return: scope:[init_sprite_pointers] from init_sprite_pointers::@1
|
|
return
|
|
to:@return
|
|
|
|
__interrupt(hardware_clobber) void irq_screen_top()
|
|
irq_screen_top: scope:[irq_screen_top] from
|
|
kickasm( uses HARDWARE_IRQ uses RASTER uses IRQ_STATUS uses IRQ_RASTER uses VICII_CONTROL1 uses VICII_RSEL uses VICII_MEMORY) {{ // Stabilize the raster by using the double IRQ method
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// Set-up IRQ for the next line
|
|
inc RASTER
|
|
// Point IRQ to almost stable code
|
|
lda #<stable
|
|
sta HARDWARE_IRQ
|
|
lda #>stable
|
|
sta HARDWARE_IRQ+1
|
|
tsx // Save stack pointer
|
|
cli // Reenable interrupts
|
|
// Wait for new IRQ using NOP's to ensure minimal jitter when it hits
|
|
.fill 15, NOP
|
|
.align $20
|
|
stable:
|
|
txs // Restore stack pointer
|
|
ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles)
|
|
!: dex
|
|
bne !-
|
|
nop
|
|
lda RASTER
|
|
cmp RASTER
|
|
bne !+ // And correct the last cycle of potential jitter
|
|
!:
|
|
// Raster is now completely stable! (Line 0x007 cycle 7)
|
|
}}
|
|
asm { jsrRASTER_CODE }
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = 7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = 7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = 7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = 7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = 7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = 7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = 7
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = 7
|
|
irq_screen_top::toD0181_screen#0 = SCREENS_1
|
|
irq_screen_top::toD0181_gfx#0 = SCREENS_1
|
|
to:irq_screen_top::toD0181
|
|
irq_screen_top::toD0181: scope:[irq_screen_top] from irq_screen_top
|
|
irq_screen_top::toD0181_gfx#1 = phi( irq_screen_top/irq_screen_top::toD0181_gfx#0 )
|
|
irq_screen_top::toD0181_screen#1 = phi( irq_screen_top/irq_screen_top::toD0181_screen#0 )
|
|
irq_screen_top::toD0181_$7 = (unsigned int)irq_screen_top::toD0181_screen#1
|
|
irq_screen_top::toD0181_$0 = irq_screen_top::toD0181_$7 & $3fff
|
|
irq_screen_top::toD0181_$1 = irq_screen_top::toD0181_$0 * 4
|
|
irq_screen_top::toD0181_$2 = byte1 irq_screen_top::toD0181_$1
|
|
irq_screen_top::toD0181_$3 = byte1 (unsigned int)irq_screen_top::toD0181_gfx#1
|
|
irq_screen_top::toD0181_$4 = irq_screen_top::toD0181_$3 / 4
|
|
irq_screen_top::toD0181_$5 = irq_screen_top::toD0181_$4 & $f
|
|
irq_screen_top::toD0181_$6 = irq_screen_top::toD0181_$2 | irq_screen_top::toD0181_$5
|
|
irq_screen_top::toD0181_return#0 = irq_screen_top::toD0181_$6
|
|
to:irq_screen_top::toD0181_@return
|
|
irq_screen_top::toD0181_@return: scope:[irq_screen_top] from irq_screen_top::toD0181
|
|
irq_screen_top::toD0181_return#2 = phi( irq_screen_top::toD0181/irq_screen_top::toD0181_return#0 )
|
|
irq_screen_top::toD0181_return#1 = irq_screen_top::toD0181_return#2
|
|
to:irq_screen_top::@7
|
|
irq_screen_top::@7: scope:[irq_screen_top] from irq_screen_top::toD0181_@return
|
|
irq_screen_top::toD0181_return#3 = phi( irq_screen_top::toD0181_@return/irq_screen_top::toD0181_return#1 )
|
|
irq_screen_top::$0 = irq_screen_top::toD0181_return#3
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = irq_screen_top::$0
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR) = top_sprites_color
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR) = top_sprites_color
|
|
irq_screen_top::$1 = frame + 1
|
|
irq_screen_top::$2 = irq_screen_top::$1 & 1
|
|
frame = irq_screen_top::$2
|
|
irq_screen_top::$8 = 0 != frame
|
|
if(irq_screen_top::$8) goto irq_screen_top::@1
|
|
to:irq_screen_top::@5
|
|
irq_screen_top::@1: scope:[irq_screen_top] from irq_screen_top::@7
|
|
irq_screen_top::toDd001_gfx#0 = SCREENS_2
|
|
to:irq_screen_top::toDd001
|
|
irq_screen_top::toDd001: scope:[irq_screen_top] from irq_screen_top::@1
|
|
irq_screen_top::toDd001_gfx#1 = phi( irq_screen_top::@1/irq_screen_top::toDd001_gfx#0 )
|
|
irq_screen_top::toDd001_$0 = byte1 (unsigned int)irq_screen_top::toDd001_gfx#1
|
|
irq_screen_top::toDd001_$1 = irq_screen_top::toDd001_$0 / $40
|
|
irq_screen_top::toDd001_$2 = 3 ^ irq_screen_top::toDd001_$1
|
|
irq_screen_top::toDd001_return#0 = irq_screen_top::toDd001_$2
|
|
to:irq_screen_top::toDd001_@return
|
|
irq_screen_top::toDd001_@return: scope:[irq_screen_top] from irq_screen_top::toDd001
|
|
irq_screen_top::toDd001_return#2 = phi( irq_screen_top::toDd001/irq_screen_top::toDd001_return#0 )
|
|
irq_screen_top::toDd001_return#1 = irq_screen_top::toDd001_return#2
|
|
to:irq_screen_top::@8
|
|
irq_screen_top::@8: scope:[irq_screen_top] from irq_screen_top::toDd001_@return
|
|
irq_screen_top::toDd001_return#3 = phi( irq_screen_top::toDd001_@return/irq_screen_top::toDd001_return#1 )
|
|
irq_screen_top::$5 = irq_screen_top::toDd001_return#3
|
|
*((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = irq_screen_top::$5
|
|
canvas_base_hi = byte1 SPRITES_1
|
|
bobs_restore_base = 0
|
|
to:irq_screen_top::@2
|
|
irq_screen_top::@5: scope:[irq_screen_top] from irq_screen_top::@7
|
|
irq_screen_top::toDd002_gfx#0 = SCREENS_1
|
|
to:irq_screen_top::toDd002
|
|
irq_screen_top::toDd002: scope:[irq_screen_top] from irq_screen_top::@5
|
|
irq_screen_top::toDd002_gfx#1 = phi( irq_screen_top::@5/irq_screen_top::toDd002_gfx#0 )
|
|
irq_screen_top::toDd002_$0 = byte1 (unsigned int)irq_screen_top::toDd002_gfx#1
|
|
irq_screen_top::toDd002_$1 = irq_screen_top::toDd002_$0 / $40
|
|
irq_screen_top::toDd002_$2 = 3 ^ irq_screen_top::toDd002_$1
|
|
irq_screen_top::toDd002_return#0 = irq_screen_top::toDd002_$2
|
|
to:irq_screen_top::toDd002_@return
|
|
irq_screen_top::toDd002_@return: scope:[irq_screen_top] from irq_screen_top::toDd002
|
|
irq_screen_top::toDd002_return#2 = phi( irq_screen_top::toDd002/irq_screen_top::toDd002_return#0 )
|
|
irq_screen_top::toDd002_return#1 = irq_screen_top::toDd002_return#2
|
|
to:irq_screen_top::@9
|
|
irq_screen_top::@9: scope:[irq_screen_top] from irq_screen_top::toDd002_@return
|
|
irq_screen_top::toDd002_return#3 = phi( irq_screen_top::toDd002_@return/irq_screen_top::toDd002_return#1 )
|
|
irq_screen_top::$4 = irq_screen_top::toDd002_return#3
|
|
*((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = irq_screen_top::$4
|
|
canvas_base_hi = byte1 SPRITES_2
|
|
bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE
|
|
to:irq_screen_top::@2
|
|
irq_screen_top::@2: scope:[irq_screen_top] from irq_screen_top::@8 irq_screen_top::@9
|
|
irq_screen_top::$3 = phase == 0
|
|
if(irq_screen_top::$3) goto irq_screen_top::@3
|
|
to:irq_screen_top::@6
|
|
irq_screen_top::@3: scope:[irq_screen_top] from irq_screen_top::@2
|
|
music_play_next = 1
|
|
to:irq_screen_top::@4
|
|
irq_screen_top::@6: scope:[irq_screen_top] from irq_screen_top::@2
|
|
call game_logic
|
|
to:irq_screen_top::@10
|
|
irq_screen_top::@10: scope:[irq_screen_top] from irq_screen_top::@6
|
|
call pacman_sound_play
|
|
to:irq_screen_top::@11
|
|
irq_screen_top::@11: scope:[irq_screen_top] from irq_screen_top::@10
|
|
to:irq_screen_top::@4
|
|
irq_screen_top::@4: scope:[irq_screen_top] from irq_screen_top::@11 irq_screen_top::@3
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER
|
|
*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE
|
|
*HARDWARE_IRQ = &irq_screen_top
|
|
to:irq_screen_top::@return
|
|
irq_screen_top::@return: scope:[irq_screen_top] from irq_screen_top::@4
|
|
return
|
|
to:@return
|
|
|
|
void game_logic()
|
|
game_logic: scope:[game_logic] from irq_screen_top::@6
|
|
game_logic::$0 = game_playable == 0
|
|
game_logic::$1 = ! game_logic::$0
|
|
if(game_logic::$1) goto game_logic::@1
|
|
to:game_logic::@return
|
|
game_logic::@1: scope:[game_logic] from game_logic
|
|
game_logic::$2 = game_logic_substep + 1
|
|
game_logic::$3 = game_logic::$2 & 7
|
|
game_logic_substep = game_logic::$3
|
|
game_logic::$4 = game_logic_substep == 0
|
|
if(game_logic::$4) goto game_logic::@2
|
|
to:game_logic::@8
|
|
game_logic::@return: scope:[game_logic] from game_logic game_logic::@100 game_logic::@105 game_logic::@106 game_logic::@107 game_logic::@108 game_logic::@114 game_logic::@115 game_logic::@118 game_logic::@123 game_logic::@124 game_logic::@125 game_logic::@126 game_logic::@13 game_logic::@132 game_logic::@133 game_logic::@136 game_logic::@141 game_logic::@142 game_logic::@143 game_logic::@149 game_logic::@150 game_logic::@154 game_logic::@155 game_logic::@156 game_logic::@157 game_logic::@158 game_logic::@159 game_logic::@161 game_logic::@163 game_logic::@165 game_logic::@167 game_logic::@44 game_logic::@54 game_logic::@55 game_logic::@56 game_logic::@57 game_logic::@66 game_logic::@72 game_logic::@78 game_logic::@79 game_logic::@82 game_logic::@87 game_logic::@88 game_logic::@89 game_logic::@90 game_logic::@96 game_logic::@97
|
|
return
|
|
to:@return
|
|
game_logic::@2: scope:[game_logic] from game_logic::@1
|
|
game_logic::$188 = pacman_direction == RIGHT
|
|
if(game_logic::$188) goto game_logic::@144
|
|
to:game_logic::@40
|
|
game_logic::@8: scope:[game_logic] from game_logic::@1
|
|
game_logic::$5 = game_logic_substep == 1
|
|
if(game_logic::$5) goto game_logic::@3
|
|
to:game_logic::@9
|
|
game_logic::@3: scope:[game_logic] from game_logic::@8
|
|
game_logic::$211 = 0 != ghost1_respawn
|
|
if(game_logic::$211) goto game_logic::@126
|
|
to:game_logic::@35
|
|
game_logic::@9: scope:[game_logic] from game_logic::@8
|
|
game_logic::$6 = game_logic_substep == 2
|
|
if(game_logic::$6) goto game_logic::@4
|
|
to:game_logic::@10
|
|
game_logic::@4: scope:[game_logic] from game_logic::@9
|
|
game_logic::$212 = 0 != ghost2_respawn
|
|
if(game_logic::$212) goto game_logic::@108
|
|
to:game_logic::@30
|
|
game_logic::@10: scope:[game_logic] from game_logic::@9
|
|
game_logic::$7 = game_logic_substep == 4
|
|
if(game_logic::$7) goto game_logic::@5
|
|
to:game_logic::@11
|
|
game_logic::@5: scope:[game_logic] from game_logic::@10
|
|
game_logic::$213 = 0 != ghost3_respawn
|
|
if(game_logic::$213) goto game_logic::@90
|
|
to:game_logic::@25
|
|
game_logic::@11: scope:[game_logic] from game_logic::@10
|
|
game_logic::$8 = game_logic_substep == 5
|
|
if(game_logic::$8) goto game_logic::@6
|
|
to:game_logic::@12
|
|
game_logic::@6: scope:[game_logic] from game_logic::@11
|
|
game_logic::$214 = 0 != ghost4_respawn
|
|
if(game_logic::$214) goto game_logic::@72
|
|
to:game_logic::@20
|
|
game_logic::@12: scope:[game_logic] from game_logic::@11
|
|
game_logic::$9 = game_logic_substep == 6
|
|
if(game_logic::$9) goto game_logic::@7
|
|
to:game_logic::@13
|
|
game_logic::@7: scope:[game_logic] from game_logic::@12
|
|
ghosts_mode_count = ++ ghosts_mode_count
|
|
game_logic::do_reverse#0 = 0
|
|
game_logic::$48 = ghosts_mode == SCATTER
|
|
if(game_logic::$48) goto game_logic::@45
|
|
to:game_logic::@16
|
|
game_logic::@13: scope:[game_logic] from game_logic::@12
|
|
game_logic::$10 = game_logic_substep == 3
|
|
game_logic::$11 = game_logic_substep == 7
|
|
game_logic::$12 = game_logic::$10 || game_logic::$11
|
|
game_logic::$13 = ! game_logic::$12
|
|
if(game_logic::$13) goto game_logic::@return
|
|
to:game_logic::@14
|
|
game_logic::@14: scope:[game_logic] from game_logic::@13
|
|
game_logic::$14 = anim_frame_idx + 1
|
|
game_logic::$15 = game_logic::$14 & 3
|
|
anim_frame_idx = game_logic::$15
|
|
game_logic::pacman_bob_xfine#0 = pacman_xfine - 1
|
|
game_logic::$17 = game_logic::pacman_bob_xfine#0 / 4
|
|
bobs_xcol[0] = game_logic::$17
|
|
game_logic::$18 = pacman_yfine - 1
|
|
bobs_yfine[0] = game_logic::$18
|
|
game_logic::$19 = pacman_direction | anim_frame_idx
|
|
game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3
|
|
game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20
|
|
bobs_bob_id[0] = game_logic::$21
|
|
game_logic::ghost_frame_idx#0 = anim_frame_idx
|
|
game_logic::$22 = ghosts_mode == FRIGHTENED
|
|
game_logic::$23 = ! game_logic::$22
|
|
if(game_logic::$23) goto game_logic::@44
|
|
to:game_logic::@15
|
|
game_logic::@44: scope:[game_logic] from game_logic::@14 game_logic::@15
|
|
game_logic::ghost_frame_idx#2 = phi( game_logic::@14/game_logic::ghost_frame_idx#0, game_logic::@15/game_logic::ghost_frame_idx#1 )
|
|
game_logic::ghost1_bob_xfine#0 = ghost1_xfine - 1
|
|
game_logic::$25 = game_logic::ghost1_bob_xfine#0 / 4
|
|
bobs_xcol[1] = game_logic::$25
|
|
game_logic::$26 = ghost1_yfine - 1
|
|
bobs_yfine[1] = game_logic::$26
|
|
game_logic::$27 = ghost1_direction | game_logic::ghost_frame_idx#2
|
|
game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3
|
|
game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28
|
|
bobs_bob_id[1] = game_logic::$29
|
|
game_logic::ghost2_bob_xfine#0 = ghost2_xfine - 1
|
|
game_logic::$31 = game_logic::ghost2_bob_xfine#0 / 4
|
|
bobs_xcol[2] = game_logic::$31
|
|
game_logic::$32 = ghost2_yfine - 1
|
|
bobs_yfine[2] = game_logic::$32
|
|
game_logic::$33 = ghost2_direction | game_logic::ghost_frame_idx#2
|
|
game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3
|
|
game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34
|
|
bobs_bob_id[2] = game_logic::$35
|
|
game_logic::ghost3_bob_xfine#0 = ghost3_xfine - 1
|
|
game_logic::$37 = game_logic::ghost3_bob_xfine#0 / 4
|
|
bobs_xcol[3] = game_logic::$37
|
|
game_logic::$38 = ghost3_yfine - 1
|
|
bobs_yfine[3] = game_logic::$38
|
|
game_logic::$39 = ghost3_direction | game_logic::ghost_frame_idx#2
|
|
game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3
|
|
game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40
|
|
bobs_bob_id[3] = game_logic::$41
|
|
game_logic::ghost4_bob_xfine#0 = ghost4_xfine - 1
|
|
game_logic::$43 = game_logic::ghost4_bob_xfine#0 / 4
|
|
bobs_xcol[4] = game_logic::$43
|
|
game_logic::$44 = ghost4_yfine - 1
|
|
bobs_yfine[4] = game_logic::$44
|
|
game_logic::$45 = ghost4_direction | game_logic::ghost_frame_idx#2
|
|
game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3
|
|
game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46
|
|
bobs_bob_id[4] = game_logic::$47
|
|
to:game_logic::@return
|
|
game_logic::@15: scope:[game_logic] from game_logic::@14
|
|
game_logic::ghost_frame_idx#3 = phi( game_logic::@14/game_logic::ghost_frame_idx#0 )
|
|
game_logic::ghost_frame_idx#1 = game_logic::ghost_frame_idx#3 | $40
|
|
to:game_logic::@44
|
|
game_logic::@45: scope:[game_logic] from game_logic::@7
|
|
game_logic::do_reverse#7 = phi( game_logic::@7/game_logic::do_reverse#0 )
|
|
game_logic::$56 = ghosts_mode_count > $32
|
|
game_logic::$57 = ! game_logic::$56
|
|
if(game_logic::$57) goto game_logic::@47
|
|
to:game_logic::@59
|
|
game_logic::@16: scope:[game_logic] from game_logic::@7
|
|
game_logic::do_reverse#9 = phi( game_logic::@7/game_logic::do_reverse#0 )
|
|
game_logic::$49 = ghosts_mode == CHASE
|
|
if(game_logic::$49) goto game_logic::@46
|
|
to:game_logic::@17
|
|
game_logic::@46: scope:[game_logic] from game_logic::@16
|
|
game_logic::do_reverse#8 = phi( game_logic::@16/game_logic::do_reverse#9 )
|
|
game_logic::$54 = ghosts_mode_count > $96
|
|
game_logic::$55 = ! game_logic::$54
|
|
if(game_logic::$55) goto game_logic::@47
|
|
to:game_logic::@58
|
|
game_logic::@17: scope:[game_logic] from game_logic::@16
|
|
game_logic::do_reverse#5 = phi( game_logic::@16/game_logic::do_reverse#9 )
|
|
game_logic::$50 = ghosts_mode == FRIGHTENED
|
|
game_logic::$51 = ! game_logic::$50
|
|
if(game_logic::$51) goto game_logic::@47
|
|
to:game_logic::@18
|
|
game_logic::@18: scope:[game_logic] from game_logic::@17
|
|
game_logic::do_reverse#6 = phi( game_logic::@17/game_logic::do_reverse#5 )
|
|
game_logic::$52 = ghosts_mode_count > $32
|
|
game_logic::$53 = ! game_logic::$52
|
|
if(game_logic::$53) goto game_logic::@47
|
|
to:game_logic::@19
|
|
game_logic::@19: scope:[game_logic] from game_logic::@18
|
|
ghosts_mode = CHASE
|
|
ghosts_mode_count = 0
|
|
game_logic::do_reverse#1 = 1
|
|
to:game_logic::@47
|
|
game_logic::@58: scope:[game_logic] from game_logic::@46
|
|
ghosts_mode = SCATTER
|
|
ghosts_mode_count = 0
|
|
game_logic::do_reverse#2 = 1
|
|
to:game_logic::@47
|
|
game_logic::@47: scope:[game_logic] from game_logic::@17 game_logic::@18 game_logic::@19 game_logic::@45 game_logic::@46 game_logic::@58 game_logic::@59
|
|
game_logic::do_reverse#4 = phi( game_logic::@17/game_logic::do_reverse#5, game_logic::@18/game_logic::do_reverse#6, game_logic::@19/game_logic::do_reverse#1, game_logic::@45/game_logic::do_reverse#7, game_logic::@46/game_logic::do_reverse#8, game_logic::@58/game_logic::do_reverse#2, game_logic::@59/game_logic::do_reverse#3 )
|
|
game_logic::$219 = 0 != game_logic::do_reverse#4
|
|
game_logic::$58 = ! game_logic::$219
|
|
if(game_logic::$58) goto game_logic::@48
|
|
to:game_logic::@60
|
|
game_logic::@59: scope:[game_logic] from game_logic::@45
|
|
ghosts_mode = CHASE
|
|
ghosts_mode_count = 0
|
|
game_logic::do_reverse#3 = 1
|
|
to:game_logic::@47
|
|
game_logic::@48: scope:[game_logic] from game_logic::@47 game_logic::@60
|
|
game_logic::pacman_xtile#0 = pacman_xfine / 2
|
|
game_logic::pacman_ytile#0 = pacman_yfine / 2
|
|
game_logic::$210 = game_logic::pacman_ytile#0 * SIZEOF_UNSIGNED_INT
|
|
game_logic::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[game_logic::$210]
|
|
game_logic::tile_id#0 = game_logic::ytiles#0[game_logic::pacman_xtile#0]
|
|
game_logic::$62 = TILES_TYPE[game_logic::tile_id#0] == PILL
|
|
if(game_logic::$62) goto game_logic::@49
|
|
to:game_logic::@61
|
|
game_logic::@60: scope:[game_logic] from game_logic::@47
|
|
ghost1_reverse = 1
|
|
ghost2_reverse = 1
|
|
ghost3_reverse = 1
|
|
ghost4_reverse = 1
|
|
to:game_logic::@48
|
|
game_logic::@49: scope:[game_logic] from game_logic::@48
|
|
game_logic::pacman_ytile#1 = phi( game_logic::@48/game_logic::pacman_ytile#0 )
|
|
game_logic::pacman_xtile#1 = phi( game_logic::@48/game_logic::pacman_xtile#0 )
|
|
game_logic::ytiles#1 = phi( game_logic::@48/game_logic::ytiles#0 )
|
|
game_logic::ytiles#1[game_logic::pacman_xtile#1] = EMPTY
|
|
game_logic::$69 = game_logic::pacman_xtile#1 / 2
|
|
logic_tile_xcol = game_logic::$69
|
|
game_logic::$70 = game_logic::pacman_xtile#1 & $fe
|
|
game_logic::$71 = game_logic::ytiles#1 + game_logic::$70
|
|
logic_tile_ptr = game_logic::$71
|
|
game_logic::$72 = game_logic::pacman_ytile#1 * 2
|
|
logic_tile_yfine = game_logic::$72
|
|
pill_count = -- pill_count
|
|
game_logic::$73 = pill_count == 0
|
|
game_logic::$74 = ! game_logic::$73
|
|
if(game_logic::$74) goto game_logic::@50
|
|
to:game_logic::@63
|
|
game_logic::@61: scope:[game_logic] from game_logic::@48
|
|
game_logic::pacman_ytile#3 = phi( game_logic::@48/game_logic::pacman_ytile#0 )
|
|
game_logic::pacman_xtile#3 = phi( game_logic::@48/game_logic::pacman_xtile#0 )
|
|
game_logic::ytiles#3 = phi( game_logic::@48/game_logic::ytiles#0 )
|
|
game_logic::tile_id#1 = phi( game_logic::@48/game_logic::tile_id#0 )
|
|
game_logic::$63 = TILES_TYPE[game_logic::tile_id#1] == POWERUP
|
|
game_logic::$64 = ! game_logic::$63
|
|
if(game_logic::$64) goto game_logic::@50
|
|
to:game_logic::@62
|
|
game_logic::@62: scope:[game_logic] from game_logic::@61
|
|
game_logic::pacman_ytile#2 = phi( game_logic::@61/game_logic::pacman_ytile#3 )
|
|
game_logic::pacman_xtile#2 = phi( game_logic::@61/game_logic::pacman_xtile#3 )
|
|
game_logic::ytiles#2 = phi( game_logic::@61/game_logic::ytiles#3 )
|
|
game_logic::ytiles#2[game_logic::pacman_xtile#2] = EMPTY
|
|
game_logic::$65 = game_logic::pacman_xtile#2 / 2
|
|
logic_tile_xcol = game_logic::$65
|
|
game_logic::$66 = game_logic::pacman_xtile#2 & $fe
|
|
game_logic::$67 = game_logic::ytiles#2 + game_logic::$66
|
|
logic_tile_ptr = game_logic::$67
|
|
game_logic::$68 = game_logic::pacman_ytile#2 * 2
|
|
logic_tile_yfine = game_logic::$68
|
|
ghosts_mode = FRIGHTENED
|
|
ghosts_mode_count = 0
|
|
to:game_logic::@50
|
|
game_logic::@50: scope:[game_logic] from game_logic::@49 game_logic::@61 game_logic::@62 game_logic::@63
|
|
game_logic::$75 = pacman_xfine - ghost1_xfine
|
|
game_logic::$76 = ABS[game_logic::$75] < 2
|
|
game_logic::$77 = pacman_yfine - ghost1_yfine
|
|
game_logic::$78 = ABS[game_logic::$77] < 2
|
|
game_logic::$79 = game_logic::$76 && game_logic::$78
|
|
if(game_logic::$79) goto game_logic::@51
|
|
to:game_logic::@64
|
|
game_logic::@63: scope:[game_logic] from game_logic::@49
|
|
pacman_wins = 1
|
|
to:game_logic::@50
|
|
game_logic::@51: scope:[game_logic] from game_logic::@50
|
|
game_logic::$102 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$102) goto game_logic::@57
|
|
to:game_logic::@71
|
|
game_logic::@64: scope:[game_logic] from game_logic::@50
|
|
game_logic::$80 = pacman_xfine - ghost2_xfine
|
|
game_logic::$81 = ABS[game_logic::$80] < 2
|
|
game_logic::$82 = pacman_yfine - ghost2_yfine
|
|
game_logic::$83 = ABS[game_logic::$82] < 2
|
|
game_logic::$84 = game_logic::$81 && game_logic::$83
|
|
if(game_logic::$84) goto game_logic::@52
|
|
to:game_logic::@65
|
|
game_logic::@52: scope:[game_logic] from game_logic::@64
|
|
game_logic::$100 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$100) goto game_logic::@56
|
|
to:game_logic::@70
|
|
game_logic::@65: scope:[game_logic] from game_logic::@64
|
|
game_logic::$85 = pacman_xfine - ghost3_xfine
|
|
game_logic::$86 = ABS[game_logic::$85] < 2
|
|
game_logic::$87 = pacman_yfine - ghost3_yfine
|
|
game_logic::$88 = ABS[game_logic::$87] < 2
|
|
game_logic::$89 = game_logic::$86 && game_logic::$88
|
|
if(game_logic::$89) goto game_logic::@53
|
|
to:game_logic::@66
|
|
game_logic::@53: scope:[game_logic] from game_logic::@65
|
|
game_logic::$98 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$98) goto game_logic::@55
|
|
to:game_logic::@69
|
|
game_logic::@66: scope:[game_logic] from game_logic::@65
|
|
game_logic::$90 = pacman_xfine - ghost4_xfine
|
|
game_logic::$91 = ABS[game_logic::$90] < 2
|
|
game_logic::$92 = pacman_yfine - ghost4_yfine
|
|
game_logic::$93 = ABS[game_logic::$92] < 2
|
|
game_logic::$94 = game_logic::$91 && game_logic::$93
|
|
game_logic::$95 = ! game_logic::$94
|
|
if(game_logic::$95) goto game_logic::@return
|
|
to:game_logic::@67
|
|
game_logic::@67: scope:[game_logic] from game_logic::@66
|
|
game_logic::$96 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$96) goto game_logic::@54
|
|
to:game_logic::@68
|
|
game_logic::@54: scope:[game_logic] from game_logic::@67
|
|
ghost4_direction = STOP
|
|
ghost4_xfine = $32
|
|
ghost4_yfine = $23
|
|
ghost4_substep = 0
|
|
ghost4_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@68: scope:[game_logic] from game_logic::@67
|
|
pacman_lives = -- pacman_lives
|
|
call spawn_all
|
|
to:game_logic::@156
|
|
game_logic::@156: scope:[game_logic] from game_logic::@68
|
|
to:game_logic::@return
|
|
game_logic::@55: scope:[game_logic] from game_logic::@53
|
|
ghost3_direction = STOP
|
|
ghost3_xfine = $32
|
|
ghost3_yfine = $23
|
|
ghost3_substep = 0
|
|
ghost3_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@69: scope:[game_logic] from game_logic::@53
|
|
pacman_lives = -- pacman_lives
|
|
call spawn_all
|
|
to:game_logic::@157
|
|
game_logic::@157: scope:[game_logic] from game_logic::@69
|
|
to:game_logic::@return
|
|
game_logic::@56: scope:[game_logic] from game_logic::@52
|
|
ghost2_direction = STOP
|
|
ghost2_xfine = $32
|
|
ghost2_yfine = $23
|
|
ghost2_substep = 0
|
|
ghost2_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@70: scope:[game_logic] from game_logic::@52
|
|
pacman_lives = -- pacman_lives
|
|
call spawn_all
|
|
to:game_logic::@158
|
|
game_logic::@158: scope:[game_logic] from game_logic::@70
|
|
to:game_logic::@return
|
|
game_logic::@57: scope:[game_logic] from game_logic::@51
|
|
ghost1_direction = STOP
|
|
ghost1_xfine = $32
|
|
ghost1_yfine = $23
|
|
ghost1_substep = 0
|
|
ghost1_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@71: scope:[game_logic] from game_logic::@51
|
|
pacman_lives = -- pacman_lives
|
|
call spawn_all
|
|
to:game_logic::@159
|
|
game_logic::@159: scope:[game_logic] from game_logic::@71
|
|
to:game_logic::@return
|
|
game_logic::@72: scope:[game_logic] from game_logic::@6
|
|
ghost4_respawn = -- ghost4_respawn
|
|
game_logic::$123 = ghost4_respawn == 0
|
|
game_logic::$124 = ! game_logic::$123
|
|
if(game_logic::$124) goto game_logic::@return
|
|
to:game_logic::@89
|
|
game_logic::@20: scope:[game_logic] from game_logic::@6
|
|
game_logic::$104 = ghost4_direction == RIGHT
|
|
if(game_logic::$104) goto game_logic::@73
|
|
to:game_logic::@21
|
|
game_logic::@73: scope:[game_logic] from game_logic::@20
|
|
ghost4_xfine = ++ ghost4_xfine
|
|
to:game_logic::@76
|
|
game_logic::@21: scope:[game_logic] from game_logic::@20
|
|
game_logic::$105 = ghost4_direction == DOWN
|
|
if(game_logic::$105) goto game_logic::@74
|
|
to:game_logic::@22
|
|
game_logic::@74: scope:[game_logic] from game_logic::@21
|
|
ghost4_yfine = ++ ghost4_yfine
|
|
to:game_logic::@76
|
|
game_logic::@22: scope:[game_logic] from game_logic::@21
|
|
game_logic::$106 = ghost4_direction == LEFT
|
|
if(game_logic::$106) goto game_logic::@75
|
|
to:game_logic::@23
|
|
game_logic::@75: scope:[game_logic] from game_logic::@22
|
|
ghost4_xfine = -- ghost4_xfine
|
|
to:game_logic::@76
|
|
game_logic::@23: scope:[game_logic] from game_logic::@22
|
|
game_logic::$107 = ghost4_direction == UP
|
|
game_logic::$108 = ! game_logic::$107
|
|
if(game_logic::$108) goto game_logic::@76
|
|
to:game_logic::@24
|
|
game_logic::@24: scope:[game_logic] from game_logic::@23
|
|
ghost4_yfine = -- ghost4_yfine
|
|
to:game_logic::@76
|
|
game_logic::@76: scope:[game_logic] from game_logic::@23 game_logic::@24 game_logic::@73 game_logic::@74 game_logic::@75
|
|
game_logic::$109 = ghost4_substep == 0
|
|
game_logic::$110 = ghost4_direction != STOP
|
|
game_logic::$111 = game_logic::$109 && game_logic::$110
|
|
if(game_logic::$111) goto game_logic::@77
|
|
to:game_logic::@83
|
|
game_logic::@77: scope:[game_logic] from game_logic::@76
|
|
ghost4_substep = 1
|
|
game_logic::$120 = ghost4_xfine == 1
|
|
if(game_logic::$120) goto game_logic::@82
|
|
to:game_logic::@87
|
|
game_logic::@83: scope:[game_logic] from game_logic::@76
|
|
ghost4_substep = 0
|
|
game_logic::$215 = 0 != ghost4_reverse
|
|
if(game_logic::$215) goto game_logic::@78
|
|
to:game_logic::@84
|
|
game_logic::@78: scope:[game_logic] from game_logic::@83
|
|
ghost4_direction = DIRECTION_REVERSE[ghost4_direction]
|
|
ghost4_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@84: scope:[game_logic] from game_logic::@83
|
|
game_logic::ghost4_xtile#0 = ghost4_xfine / 2
|
|
game_logic::ghost4_ytile#0 = ghost4_yfine / 2
|
|
level_tile_directions::xtile#0 = game_logic::ghost4_xtile#0
|
|
level_tile_directions::ytile#0 = game_logic::ghost4_ytile#0
|
|
call level_tile_directions
|
|
level_tile_directions::return#3 = level_tile_directions::return#2
|
|
to:game_logic::@160
|
|
game_logic::@160: scope:[game_logic] from game_logic::@84
|
|
game_logic::ghost4_ytile#5 = phi( game_logic::@84/game_logic::ghost4_ytile#0 )
|
|
game_logic::ghost4_xtile#5 = phi( game_logic::@84/game_logic::ghost4_xtile#0 )
|
|
level_tile_directions::return#9 = phi( game_logic::@84/level_tile_directions::return#3 )
|
|
game_logic::open_directions#0 = level_tile_directions::return#9
|
|
game_logic::open_directions#1 = game_logic::open_directions#0 & DIRECTION_ELIMINATE[ghost4_direction]
|
|
game_logic::$115 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$115) goto game_logic::@79
|
|
to:game_logic::@85
|
|
game_logic::@79: scope:[game_logic] from game_logic::@160
|
|
game_logic::open_directions#2 = phi( game_logic::@160/game_logic::open_directions#1 )
|
|
ghost4_direction = DIRECTION_SINGLE[game_logic::open_directions#2]
|
|
to:game_logic::@return
|
|
game_logic::@85: scope:[game_logic] from game_logic::@160
|
|
game_logic::ghost4_ytile#4 = phi( game_logic::@160/game_logic::ghost4_ytile#5 )
|
|
game_logic::ghost4_xtile#4 = phi( game_logic::@160/game_logic::ghost4_xtile#5 )
|
|
game_logic::open_directions#6 = phi( game_logic::@160/game_logic::open_directions#1 )
|
|
game_logic::target_xtile#0 = 0
|
|
game_logic::target_ytile#0 = 0
|
|
game_logic::$116 = ghosts_mode == SCATTER
|
|
if(game_logic::$116) goto game_logic::@80
|
|
to:game_logic::@86
|
|
game_logic::@80: scope:[game_logic] from game_logic::@85
|
|
game_logic::ghost4_ytile#2 = phi( game_logic::@85/game_logic::ghost4_ytile#4 )
|
|
game_logic::ghost4_xtile#2 = phi( game_logic::@85/game_logic::ghost4_xtile#4 )
|
|
game_logic::open_directions#4 = phi( game_logic::@85/game_logic::open_directions#6 )
|
|
game_logic::target_xtile#1 = 2
|
|
game_logic::target_ytile#1 = 2
|
|
to:game_logic::@81
|
|
game_logic::@86: scope:[game_logic] from game_logic::@85
|
|
game_logic::ghost4_ytile#3 = phi( game_logic::@85/game_logic::ghost4_ytile#4 )
|
|
game_logic::ghost4_xtile#3 = phi( game_logic::@85/game_logic::ghost4_xtile#4 )
|
|
game_logic::open_directions#5 = phi( game_logic::@85/game_logic::open_directions#6 )
|
|
game_logic::$117 = pacman_xfine / 2
|
|
game_logic::target_xtile#2 = game_logic::$117
|
|
game_logic::$118 = pacman_yfine / 2
|
|
game_logic::target_ytile#2 = game_logic::$118
|
|
to:game_logic::@81
|
|
game_logic::@81: scope:[game_logic] from game_logic::@80 game_logic::@86
|
|
game_logic::target_ytile#3 = phi( game_logic::@80/game_logic::target_ytile#1, game_logic::@86/game_logic::target_ytile#2 )
|
|
game_logic::target_xtile#3 = phi( game_logic::@80/game_logic::target_xtile#1, game_logic::@86/game_logic::target_xtile#2 )
|
|
game_logic::ghost4_ytile#1 = phi( game_logic::@80/game_logic::ghost4_ytile#2, game_logic::@86/game_logic::ghost4_ytile#3 )
|
|
game_logic::ghost4_xtile#1 = phi( game_logic::@80/game_logic::ghost4_xtile#2, game_logic::@86/game_logic::ghost4_xtile#3 )
|
|
game_logic::open_directions#3 = phi( game_logic::@80/game_logic::open_directions#4, game_logic::@86/game_logic::open_directions#5 )
|
|
choose_direction::open_directions#0 = game_logic::open_directions#3
|
|
choose_direction::ghost_xtile#0 = game_logic::ghost4_xtile#1
|
|
choose_direction::ghost_ytile#0 = game_logic::ghost4_ytile#1
|
|
choose_direction::target_xtile#0 = game_logic::target_xtile#3
|
|
choose_direction::target_ytile#0 = game_logic::target_ytile#3
|
|
call choose_direction
|
|
choose_direction::return#0 = choose_direction::return#5
|
|
to:game_logic::@161
|
|
game_logic::@161: scope:[game_logic] from game_logic::@81
|
|
choose_direction::return#6 = phi( game_logic::@81/choose_direction::return#0 )
|
|
game_logic::$119 = choose_direction::return#6
|
|
ghost4_direction = game_logic::$119
|
|
to:game_logic::@return
|
|
game_logic::@82: scope:[game_logic] from game_logic::@77
|
|
ghost4_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@87: scope:[game_logic] from game_logic::@77
|
|
game_logic::$121 = ghost4_xfine == $61
|
|
game_logic::$122 = ! game_logic::$121
|
|
if(game_logic::$122) goto game_logic::@return
|
|
to:game_logic::@88
|
|
game_logic::@88: scope:[game_logic] from game_logic::@87
|
|
ghost4_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@89: scope:[game_logic] from game_logic::@72
|
|
ghost4_direction = RIGHT
|
|
ghost4_xfine = 2
|
|
ghost4_yfine = 2
|
|
ghost4_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@90: scope:[game_logic] from game_logic::@5
|
|
ghost3_respawn = -- ghost3_respawn
|
|
game_logic::$144 = ghost3_respawn == 0
|
|
game_logic::$145 = ! game_logic::$144
|
|
if(game_logic::$145) goto game_logic::@return
|
|
to:game_logic::@107
|
|
game_logic::@25: scope:[game_logic] from game_logic::@5
|
|
game_logic::$125 = ghost3_direction == RIGHT
|
|
if(game_logic::$125) goto game_logic::@91
|
|
to:game_logic::@26
|
|
game_logic::@91: scope:[game_logic] from game_logic::@25
|
|
ghost3_xfine = ++ ghost3_xfine
|
|
to:game_logic::@94
|
|
game_logic::@26: scope:[game_logic] from game_logic::@25
|
|
game_logic::$126 = ghost3_direction == DOWN
|
|
if(game_logic::$126) goto game_logic::@92
|
|
to:game_logic::@27
|
|
game_logic::@92: scope:[game_logic] from game_logic::@26
|
|
ghost3_yfine = ++ ghost3_yfine
|
|
to:game_logic::@94
|
|
game_logic::@27: scope:[game_logic] from game_logic::@26
|
|
game_logic::$127 = ghost3_direction == LEFT
|
|
if(game_logic::$127) goto game_logic::@93
|
|
to:game_logic::@28
|
|
game_logic::@93: scope:[game_logic] from game_logic::@27
|
|
ghost3_xfine = -- ghost3_xfine
|
|
to:game_logic::@94
|
|
game_logic::@28: scope:[game_logic] from game_logic::@27
|
|
game_logic::$128 = ghost3_direction == UP
|
|
game_logic::$129 = ! game_logic::$128
|
|
if(game_logic::$129) goto game_logic::@94
|
|
to:game_logic::@29
|
|
game_logic::@29: scope:[game_logic] from game_logic::@28
|
|
ghost3_yfine = -- ghost3_yfine
|
|
to:game_logic::@94
|
|
game_logic::@94: scope:[game_logic] from game_logic::@28 game_logic::@29 game_logic::@91 game_logic::@92 game_logic::@93
|
|
game_logic::$130 = ghost3_substep == 0
|
|
game_logic::$131 = ghost3_direction != STOP
|
|
game_logic::$132 = game_logic::$130 && game_logic::$131
|
|
if(game_logic::$132) goto game_logic::@95
|
|
to:game_logic::@101
|
|
game_logic::@95: scope:[game_logic] from game_logic::@94
|
|
ghost3_substep = 1
|
|
game_logic::$141 = ghost3_xfine == 1
|
|
if(game_logic::$141) goto game_logic::@100
|
|
to:game_logic::@105
|
|
game_logic::@101: scope:[game_logic] from game_logic::@94
|
|
ghost3_substep = 0
|
|
game_logic::$216 = 0 != ghost3_reverse
|
|
if(game_logic::$216) goto game_logic::@96
|
|
to:game_logic::@102
|
|
game_logic::@96: scope:[game_logic] from game_logic::@101
|
|
ghost3_direction = DIRECTION_REVERSE[ghost3_direction]
|
|
ghost3_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@102: scope:[game_logic] from game_logic::@101
|
|
game_logic::ghost3_xtile#0 = ghost3_xfine / 2
|
|
game_logic::ghost3_ytile#0 = ghost3_yfine / 2
|
|
level_tile_directions::xtile#1 = game_logic::ghost3_xtile#0
|
|
level_tile_directions::ytile#1 = game_logic::ghost3_ytile#0
|
|
call level_tile_directions
|
|
level_tile_directions::return#4 = level_tile_directions::return#2
|
|
to:game_logic::@162
|
|
game_logic::@162: scope:[game_logic] from game_logic::@102
|
|
game_logic::ghost3_ytile#5 = phi( game_logic::@102/game_logic::ghost3_ytile#0 )
|
|
game_logic::ghost3_xtile#5 = phi( game_logic::@102/game_logic::ghost3_xtile#0 )
|
|
level_tile_directions::return#10 = phi( game_logic::@102/level_tile_directions::return#4 )
|
|
game_logic::open_directions1#0 = level_tile_directions::return#10
|
|
game_logic::open_directions1#1 = game_logic::open_directions1#0 & DIRECTION_ELIMINATE[ghost3_direction]
|
|
game_logic::$136 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$136) goto game_logic::@97
|
|
to:game_logic::@103
|
|
game_logic::@97: scope:[game_logic] from game_logic::@162
|
|
game_logic::open_directions1#2 = phi( game_logic::@162/game_logic::open_directions1#1 )
|
|
ghost3_direction = DIRECTION_SINGLE[game_logic::open_directions1#2]
|
|
to:game_logic::@return
|
|
game_logic::@103: scope:[game_logic] from game_logic::@162
|
|
game_logic::ghost3_ytile#4 = phi( game_logic::@162/game_logic::ghost3_ytile#5 )
|
|
game_logic::ghost3_xtile#4 = phi( game_logic::@162/game_logic::ghost3_xtile#5 )
|
|
game_logic::open_directions1#6 = phi( game_logic::@162/game_logic::open_directions1#1 )
|
|
game_logic::target_xtile1#0 = 0
|
|
game_logic::target_ytile1#0 = 0
|
|
game_logic::$137 = ghosts_mode == SCATTER
|
|
if(game_logic::$137) goto game_logic::@98
|
|
to:game_logic::@104
|
|
game_logic::@98: scope:[game_logic] from game_logic::@103
|
|
game_logic::ghost3_ytile#3 = phi( game_logic::@103/game_logic::ghost3_ytile#4 )
|
|
game_logic::ghost3_xtile#3 = phi( game_logic::@103/game_logic::ghost3_xtile#4 )
|
|
game_logic::open_directions1#5 = phi( game_logic::@103/game_logic::open_directions1#6 )
|
|
game_logic::target_xtile1#1 = 2
|
|
game_logic::target_ytile1#1 = 2
|
|
to:game_logic::@99
|
|
game_logic::@104: scope:[game_logic] from game_logic::@103
|
|
game_logic::ghost3_ytile#2 = phi( game_logic::@103/game_logic::ghost3_ytile#4 )
|
|
game_logic::ghost3_xtile#2 = phi( game_logic::@103/game_logic::ghost3_xtile#4 )
|
|
game_logic::open_directions1#4 = phi( game_logic::@103/game_logic::open_directions1#6 )
|
|
game_logic::$138 = pacman_xfine / 2
|
|
game_logic::target_xtile1#2 = game_logic::$138
|
|
game_logic::$139 = pacman_yfine / 2
|
|
game_logic::target_ytile1#2 = game_logic::$139
|
|
to:game_logic::@99
|
|
game_logic::@99: scope:[game_logic] from game_logic::@104 game_logic::@98
|
|
game_logic::target_ytile1#3 = phi( game_logic::@104/game_logic::target_ytile1#2, game_logic::@98/game_logic::target_ytile1#1 )
|
|
game_logic::target_xtile1#3 = phi( game_logic::@104/game_logic::target_xtile1#2, game_logic::@98/game_logic::target_xtile1#1 )
|
|
game_logic::ghost3_ytile#1 = phi( game_logic::@104/game_logic::ghost3_ytile#2, game_logic::@98/game_logic::ghost3_ytile#3 )
|
|
game_logic::ghost3_xtile#1 = phi( game_logic::@104/game_logic::ghost3_xtile#2, game_logic::@98/game_logic::ghost3_xtile#3 )
|
|
game_logic::open_directions1#3 = phi( game_logic::@104/game_logic::open_directions1#4, game_logic::@98/game_logic::open_directions1#5 )
|
|
choose_direction::open_directions#1 = game_logic::open_directions1#3
|
|
choose_direction::ghost_xtile#1 = game_logic::ghost3_xtile#1
|
|
choose_direction::ghost_ytile#1 = game_logic::ghost3_ytile#1
|
|
choose_direction::target_xtile#1 = game_logic::target_xtile1#3
|
|
choose_direction::target_ytile#1 = game_logic::target_ytile1#3
|
|
call choose_direction
|
|
choose_direction::return#1 = choose_direction::return#5
|
|
to:game_logic::@163
|
|
game_logic::@163: scope:[game_logic] from game_logic::@99
|
|
choose_direction::return#7 = phi( game_logic::@99/choose_direction::return#1 )
|
|
game_logic::$140 = choose_direction::return#7
|
|
ghost3_direction = game_logic::$140
|
|
to:game_logic::@return
|
|
game_logic::@100: scope:[game_logic] from game_logic::@95
|
|
ghost3_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@105: scope:[game_logic] from game_logic::@95
|
|
game_logic::$142 = ghost3_xfine == $61
|
|
game_logic::$143 = ! game_logic::$142
|
|
if(game_logic::$143) goto game_logic::@return
|
|
to:game_logic::@106
|
|
game_logic::@106: scope:[game_logic] from game_logic::@105
|
|
ghost3_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@107: scope:[game_logic] from game_logic::@90
|
|
ghost3_direction = UP
|
|
ghost3_xfine = 2
|
|
ghost3_yfine = $46
|
|
ghost3_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@108: scope:[game_logic] from game_logic::@4
|
|
ghost2_respawn = -- ghost2_respawn
|
|
game_logic::$165 = ghost2_respawn == 0
|
|
game_logic::$166 = ! game_logic::$165
|
|
if(game_logic::$166) goto game_logic::@return
|
|
to:game_logic::@125
|
|
game_logic::@30: scope:[game_logic] from game_logic::@4
|
|
game_logic::$146 = ghost2_direction == RIGHT
|
|
if(game_logic::$146) goto game_logic::@109
|
|
to:game_logic::@31
|
|
game_logic::@109: scope:[game_logic] from game_logic::@30
|
|
ghost2_xfine = ++ ghost2_xfine
|
|
to:game_logic::@112
|
|
game_logic::@31: scope:[game_logic] from game_logic::@30
|
|
game_logic::$147 = ghost2_direction == DOWN
|
|
if(game_logic::$147) goto game_logic::@110
|
|
to:game_logic::@32
|
|
game_logic::@110: scope:[game_logic] from game_logic::@31
|
|
ghost2_yfine = ++ ghost2_yfine
|
|
to:game_logic::@112
|
|
game_logic::@32: scope:[game_logic] from game_logic::@31
|
|
game_logic::$148 = ghost2_direction == LEFT
|
|
if(game_logic::$148) goto game_logic::@111
|
|
to:game_logic::@33
|
|
game_logic::@111: scope:[game_logic] from game_logic::@32
|
|
ghost2_xfine = -- ghost2_xfine
|
|
to:game_logic::@112
|
|
game_logic::@33: scope:[game_logic] from game_logic::@32
|
|
game_logic::$149 = ghost2_direction == UP
|
|
game_logic::$150 = ! game_logic::$149
|
|
if(game_logic::$150) goto game_logic::@112
|
|
to:game_logic::@34
|
|
game_logic::@34: scope:[game_logic] from game_logic::@33
|
|
ghost2_yfine = -- ghost2_yfine
|
|
to:game_logic::@112
|
|
game_logic::@112: scope:[game_logic] from game_logic::@109 game_logic::@110 game_logic::@111 game_logic::@33 game_logic::@34
|
|
game_logic::$151 = ghost2_substep == 0
|
|
game_logic::$152 = ghost2_direction != STOP
|
|
game_logic::$153 = game_logic::$151 && game_logic::$152
|
|
if(game_logic::$153) goto game_logic::@113
|
|
to:game_logic::@119
|
|
game_logic::@113: scope:[game_logic] from game_logic::@112
|
|
ghost2_substep = 1
|
|
game_logic::$162 = ghost2_xfine == 1
|
|
if(game_logic::$162) goto game_logic::@118
|
|
to:game_logic::@123
|
|
game_logic::@119: scope:[game_logic] from game_logic::@112
|
|
ghost2_substep = 0
|
|
game_logic::$217 = 0 != ghost2_reverse
|
|
if(game_logic::$217) goto game_logic::@114
|
|
to:game_logic::@120
|
|
game_logic::@114: scope:[game_logic] from game_logic::@119
|
|
ghost2_direction = DIRECTION_REVERSE[ghost2_direction]
|
|
ghost2_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@120: scope:[game_logic] from game_logic::@119
|
|
game_logic::ghost2_xtile#0 = ghost2_xfine / 2
|
|
game_logic::ghost2_ytile#0 = ghost2_yfine / 2
|
|
level_tile_directions::xtile#2 = game_logic::ghost2_xtile#0
|
|
level_tile_directions::ytile#2 = game_logic::ghost2_ytile#0
|
|
call level_tile_directions
|
|
level_tile_directions::return#5 = level_tile_directions::return#2
|
|
to:game_logic::@164
|
|
game_logic::@164: scope:[game_logic] from game_logic::@120
|
|
game_logic::ghost2_ytile#5 = phi( game_logic::@120/game_logic::ghost2_ytile#0 )
|
|
game_logic::ghost2_xtile#5 = phi( game_logic::@120/game_logic::ghost2_xtile#0 )
|
|
level_tile_directions::return#11 = phi( game_logic::@120/level_tile_directions::return#5 )
|
|
game_logic::open_directions2#0 = level_tile_directions::return#11
|
|
game_logic::open_directions2#1 = game_logic::open_directions2#0 & DIRECTION_ELIMINATE[ghost2_direction]
|
|
game_logic::$157 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$157) goto game_logic::@115
|
|
to:game_logic::@121
|
|
game_logic::@115: scope:[game_logic] from game_logic::@164
|
|
game_logic::open_directions2#2 = phi( game_logic::@164/game_logic::open_directions2#1 )
|
|
ghost2_direction = DIRECTION_SINGLE[game_logic::open_directions2#2]
|
|
to:game_logic::@return
|
|
game_logic::@121: scope:[game_logic] from game_logic::@164
|
|
game_logic::ghost2_ytile#4 = phi( game_logic::@164/game_logic::ghost2_ytile#5 )
|
|
game_logic::ghost2_xtile#4 = phi( game_logic::@164/game_logic::ghost2_xtile#5 )
|
|
game_logic::open_directions2#6 = phi( game_logic::@164/game_logic::open_directions2#1 )
|
|
game_logic::target_xtile2#0 = 0
|
|
game_logic::target_ytile2#0 = 0
|
|
game_logic::$158 = ghosts_mode == SCATTER
|
|
if(game_logic::$158) goto game_logic::@116
|
|
to:game_logic::@122
|
|
game_logic::@116: scope:[game_logic] from game_logic::@121
|
|
game_logic::ghost2_ytile#2 = phi( game_logic::@121/game_logic::ghost2_ytile#4 )
|
|
game_logic::ghost2_xtile#2 = phi( game_logic::@121/game_logic::ghost2_xtile#4 )
|
|
game_logic::open_directions2#4 = phi( game_logic::@121/game_logic::open_directions2#6 )
|
|
game_logic::target_xtile2#1 = 2
|
|
game_logic::target_ytile2#1 = 2
|
|
to:game_logic::@117
|
|
game_logic::@122: scope:[game_logic] from game_logic::@121
|
|
game_logic::ghost2_ytile#3 = phi( game_logic::@121/game_logic::ghost2_ytile#4 )
|
|
game_logic::ghost2_xtile#3 = phi( game_logic::@121/game_logic::ghost2_xtile#4 )
|
|
game_logic::open_directions2#5 = phi( game_logic::@121/game_logic::open_directions2#6 )
|
|
game_logic::$159 = pacman_xfine / 2
|
|
game_logic::target_xtile2#2 = game_logic::$159
|
|
game_logic::$160 = pacman_yfine / 2
|
|
game_logic::target_ytile2#2 = game_logic::$160
|
|
to:game_logic::@117
|
|
game_logic::@117: scope:[game_logic] from game_logic::@116 game_logic::@122
|
|
game_logic::target_ytile2#3 = phi( game_logic::@116/game_logic::target_ytile2#1, game_logic::@122/game_logic::target_ytile2#2 )
|
|
game_logic::target_xtile2#3 = phi( game_logic::@116/game_logic::target_xtile2#1, game_logic::@122/game_logic::target_xtile2#2 )
|
|
game_logic::ghost2_ytile#1 = phi( game_logic::@116/game_logic::ghost2_ytile#2, game_logic::@122/game_logic::ghost2_ytile#3 )
|
|
game_logic::ghost2_xtile#1 = phi( game_logic::@116/game_logic::ghost2_xtile#2, game_logic::@122/game_logic::ghost2_xtile#3 )
|
|
game_logic::open_directions2#3 = phi( game_logic::@116/game_logic::open_directions2#4, game_logic::@122/game_logic::open_directions2#5 )
|
|
choose_direction::open_directions#2 = game_logic::open_directions2#3
|
|
choose_direction::ghost_xtile#2 = game_logic::ghost2_xtile#1
|
|
choose_direction::ghost_ytile#2 = game_logic::ghost2_ytile#1
|
|
choose_direction::target_xtile#2 = game_logic::target_xtile2#3
|
|
choose_direction::target_ytile#2 = game_logic::target_ytile2#3
|
|
call choose_direction
|
|
choose_direction::return#2 = choose_direction::return#5
|
|
to:game_logic::@165
|
|
game_logic::@165: scope:[game_logic] from game_logic::@117
|
|
choose_direction::return#8 = phi( game_logic::@117/choose_direction::return#2 )
|
|
game_logic::$161 = choose_direction::return#8
|
|
ghost2_direction = game_logic::$161
|
|
to:game_logic::@return
|
|
game_logic::@118: scope:[game_logic] from game_logic::@113
|
|
ghost2_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@123: scope:[game_logic] from game_logic::@113
|
|
game_logic::$163 = ghost2_xfine == $61
|
|
game_logic::$164 = ! game_logic::$163
|
|
if(game_logic::$164) goto game_logic::@return
|
|
to:game_logic::@124
|
|
game_logic::@124: scope:[game_logic] from game_logic::@123
|
|
ghost2_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@125: scope:[game_logic] from game_logic::@108
|
|
ghost2_direction = LEFT
|
|
ghost2_xfine = $60
|
|
ghost2_yfine = $46
|
|
ghost2_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@126: scope:[game_logic] from game_logic::@3
|
|
ghost1_respawn = -- ghost1_respawn
|
|
game_logic::$186 = ghost1_respawn == 0
|
|
game_logic::$187 = ! game_logic::$186
|
|
if(game_logic::$187) goto game_logic::@return
|
|
to:game_logic::@143
|
|
game_logic::@35: scope:[game_logic] from game_logic::@3
|
|
game_logic::$167 = ghost1_direction == RIGHT
|
|
if(game_logic::$167) goto game_logic::@127
|
|
to:game_logic::@36
|
|
game_logic::@127: scope:[game_logic] from game_logic::@35
|
|
ghost1_xfine = ++ ghost1_xfine
|
|
to:game_logic::@130
|
|
game_logic::@36: scope:[game_logic] from game_logic::@35
|
|
game_logic::$168 = ghost1_direction == DOWN
|
|
if(game_logic::$168) goto game_logic::@128
|
|
to:game_logic::@37
|
|
game_logic::@128: scope:[game_logic] from game_logic::@36
|
|
ghost1_yfine = ++ ghost1_yfine
|
|
to:game_logic::@130
|
|
game_logic::@37: scope:[game_logic] from game_logic::@36
|
|
game_logic::$169 = ghost1_direction == LEFT
|
|
if(game_logic::$169) goto game_logic::@129
|
|
to:game_logic::@38
|
|
game_logic::@129: scope:[game_logic] from game_logic::@37
|
|
ghost1_xfine = -- ghost1_xfine
|
|
to:game_logic::@130
|
|
game_logic::@38: scope:[game_logic] from game_logic::@37
|
|
game_logic::$170 = ghost1_direction == UP
|
|
game_logic::$171 = ! game_logic::$170
|
|
if(game_logic::$171) goto game_logic::@130
|
|
to:game_logic::@39
|
|
game_logic::@39: scope:[game_logic] from game_logic::@38
|
|
ghost1_yfine = -- ghost1_yfine
|
|
to:game_logic::@130
|
|
game_logic::@130: scope:[game_logic] from game_logic::@127 game_logic::@128 game_logic::@129 game_logic::@38 game_logic::@39
|
|
game_logic::$172 = ghost1_substep == 0
|
|
game_logic::$173 = ghost1_direction != STOP
|
|
game_logic::$174 = game_logic::$172 && game_logic::$173
|
|
if(game_logic::$174) goto game_logic::@131
|
|
to:game_logic::@137
|
|
game_logic::@131: scope:[game_logic] from game_logic::@130
|
|
ghost1_substep = 1
|
|
game_logic::$183 = ghost1_xfine == 1
|
|
if(game_logic::$183) goto game_logic::@136
|
|
to:game_logic::@141
|
|
game_logic::@137: scope:[game_logic] from game_logic::@130
|
|
ghost1_substep = 0
|
|
game_logic::$218 = 0 != ghost1_reverse
|
|
if(game_logic::$218) goto game_logic::@132
|
|
to:game_logic::@138
|
|
game_logic::@132: scope:[game_logic] from game_logic::@137
|
|
ghost1_direction = DIRECTION_REVERSE[ghost1_direction]
|
|
ghost1_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@138: scope:[game_logic] from game_logic::@137
|
|
game_logic::ghost1_xtile#0 = ghost1_xfine / 2
|
|
game_logic::ghost1_ytile#0 = ghost1_yfine / 2
|
|
level_tile_directions::xtile#3 = game_logic::ghost1_xtile#0
|
|
level_tile_directions::ytile#3 = game_logic::ghost1_ytile#0
|
|
call level_tile_directions
|
|
level_tile_directions::return#6 = level_tile_directions::return#2
|
|
to:game_logic::@166
|
|
game_logic::@166: scope:[game_logic] from game_logic::@138
|
|
game_logic::ghost1_ytile#5 = phi( game_logic::@138/game_logic::ghost1_ytile#0 )
|
|
game_logic::ghost1_xtile#5 = phi( game_logic::@138/game_logic::ghost1_xtile#0 )
|
|
level_tile_directions::return#12 = phi( game_logic::@138/level_tile_directions::return#6 )
|
|
game_logic::open_directions3#0 = level_tile_directions::return#12
|
|
game_logic::open_directions3#1 = game_logic::open_directions3#0 & DIRECTION_ELIMINATE[ghost1_direction]
|
|
game_logic::$178 = ghosts_mode == FRIGHTENED
|
|
if(game_logic::$178) goto game_logic::@133
|
|
to:game_logic::@139
|
|
game_logic::@133: scope:[game_logic] from game_logic::@166
|
|
game_logic::open_directions3#2 = phi( game_logic::@166/game_logic::open_directions3#1 )
|
|
ghost1_direction = DIRECTION_SINGLE[game_logic::open_directions3#2]
|
|
to:game_logic::@return
|
|
game_logic::@139: scope:[game_logic] from game_logic::@166
|
|
game_logic::ghost1_ytile#4 = phi( game_logic::@166/game_logic::ghost1_ytile#5 )
|
|
game_logic::ghost1_xtile#4 = phi( game_logic::@166/game_logic::ghost1_xtile#5 )
|
|
game_logic::open_directions3#6 = phi( game_logic::@166/game_logic::open_directions3#1 )
|
|
game_logic::target_xtile3#0 = 0
|
|
game_logic::target_ytile3#0 = 0
|
|
game_logic::$179 = ghosts_mode == SCATTER
|
|
if(game_logic::$179) goto game_logic::@134
|
|
to:game_logic::@140
|
|
game_logic::@134: scope:[game_logic] from game_logic::@139
|
|
game_logic::ghost1_ytile#2 = phi( game_logic::@139/game_logic::ghost1_ytile#4 )
|
|
game_logic::ghost1_xtile#2 = phi( game_logic::@139/game_logic::ghost1_xtile#4 )
|
|
game_logic::open_directions3#4 = phi( game_logic::@139/game_logic::open_directions3#6 )
|
|
game_logic::target_xtile3#1 = 2
|
|
game_logic::target_ytile3#1 = 2
|
|
to:game_logic::@135
|
|
game_logic::@140: scope:[game_logic] from game_logic::@139
|
|
game_logic::ghost1_ytile#3 = phi( game_logic::@139/game_logic::ghost1_ytile#4 )
|
|
game_logic::ghost1_xtile#3 = phi( game_logic::@139/game_logic::ghost1_xtile#4 )
|
|
game_logic::open_directions3#5 = phi( game_logic::@139/game_logic::open_directions3#6 )
|
|
game_logic::$180 = pacman_xfine / 2
|
|
game_logic::target_xtile3#2 = game_logic::$180
|
|
game_logic::$181 = pacman_yfine / 2
|
|
game_logic::target_ytile3#2 = game_logic::$181
|
|
to:game_logic::@135
|
|
game_logic::@135: scope:[game_logic] from game_logic::@134 game_logic::@140
|
|
game_logic::target_ytile3#3 = phi( game_logic::@134/game_logic::target_ytile3#1, game_logic::@140/game_logic::target_ytile3#2 )
|
|
game_logic::target_xtile3#3 = phi( game_logic::@134/game_logic::target_xtile3#1, game_logic::@140/game_logic::target_xtile3#2 )
|
|
game_logic::ghost1_ytile#1 = phi( game_logic::@134/game_logic::ghost1_ytile#2, game_logic::@140/game_logic::ghost1_ytile#3 )
|
|
game_logic::ghost1_xtile#1 = phi( game_logic::@134/game_logic::ghost1_xtile#2, game_logic::@140/game_logic::ghost1_xtile#3 )
|
|
game_logic::open_directions3#3 = phi( game_logic::@134/game_logic::open_directions3#4, game_logic::@140/game_logic::open_directions3#5 )
|
|
choose_direction::open_directions#3 = game_logic::open_directions3#3
|
|
choose_direction::ghost_xtile#3 = game_logic::ghost1_xtile#1
|
|
choose_direction::ghost_ytile#3 = game_logic::ghost1_ytile#1
|
|
choose_direction::target_xtile#3 = game_logic::target_xtile3#3
|
|
choose_direction::target_ytile#3 = game_logic::target_ytile3#3
|
|
call choose_direction
|
|
choose_direction::return#3 = choose_direction::return#5
|
|
to:game_logic::@167
|
|
game_logic::@167: scope:[game_logic] from game_logic::@135
|
|
choose_direction::return#9 = phi( game_logic::@135/choose_direction::return#3 )
|
|
game_logic::$182 = choose_direction::return#9
|
|
ghost1_direction = game_logic::$182
|
|
to:game_logic::@return
|
|
game_logic::@136: scope:[game_logic] from game_logic::@131
|
|
ghost1_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@141: scope:[game_logic] from game_logic::@131
|
|
game_logic::$184 = ghost1_xfine == $61
|
|
game_logic::$185 = ! game_logic::$184
|
|
if(game_logic::$185) goto game_logic::@return
|
|
to:game_logic::@142
|
|
game_logic::@142: scope:[game_logic] from game_logic::@141
|
|
ghost1_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@143: scope:[game_logic] from game_logic::@126
|
|
ghost1_direction = DOWN
|
|
ghost1_xfine = $60
|
|
ghost1_yfine = 2
|
|
ghost1_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@144: scope:[game_logic] from game_logic::@2
|
|
pacman_xfine = ++ pacman_xfine
|
|
to:game_logic::@147
|
|
game_logic::@40: scope:[game_logic] from game_logic::@2
|
|
game_logic::$189 = pacman_direction == DOWN
|
|
if(game_logic::$189) goto game_logic::@145
|
|
to:game_logic::@41
|
|
game_logic::@145: scope:[game_logic] from game_logic::@40
|
|
pacman_yfine = ++ pacman_yfine
|
|
to:game_logic::@147
|
|
game_logic::@41: scope:[game_logic] from game_logic::@40
|
|
game_logic::$190 = pacman_direction == LEFT
|
|
if(game_logic::$190) goto game_logic::@146
|
|
to:game_logic::@42
|
|
game_logic::@146: scope:[game_logic] from game_logic::@41
|
|
pacman_xfine = -- pacman_xfine
|
|
to:game_logic::@147
|
|
game_logic::@42: scope:[game_logic] from game_logic::@41
|
|
game_logic::$191 = pacman_direction == UP
|
|
game_logic::$192 = ! game_logic::$191
|
|
if(game_logic::$192) goto game_logic::@147
|
|
to:game_logic::@43
|
|
game_logic::@43: scope:[game_logic] from game_logic::@42
|
|
pacman_yfine = -- pacman_yfine
|
|
to:game_logic::@147
|
|
game_logic::@147: scope:[game_logic] from game_logic::@144 game_logic::@145 game_logic::@146 game_logic::@42 game_logic::@43
|
|
game_logic::$193 = pacman_substep == 0
|
|
game_logic::$194 = pacman_direction != STOP
|
|
game_logic::$195 = game_logic::$193 && game_logic::$194
|
|
if(game_logic::$195) goto game_logic::@148
|
|
to:game_logic::@151
|
|
game_logic::@148: scope:[game_logic] from game_logic::@147
|
|
pacman_substep = 1
|
|
pacman_ch1_enabled = 1
|
|
game_logic::$207 = pacman_xfine == 1
|
|
if(game_logic::$207) goto game_logic::@150
|
|
to:game_logic::@154
|
|
game_logic::@151: scope:[game_logic] from game_logic::@147
|
|
pacman_substep = 0
|
|
game_logic::pacman_xtile1#0 = pacman_xfine / 2
|
|
game_logic::pacman_ytile1#0 = pacman_yfine / 2
|
|
level_tile_directions::xtile#4 = game_logic::pacman_xtile1#0
|
|
level_tile_directions::ytile#4 = game_logic::pacman_ytile1#0
|
|
call level_tile_directions
|
|
level_tile_directions::return#7 = level_tile_directions::return#2
|
|
to:game_logic::@168
|
|
game_logic::@168: scope:[game_logic] from game_logic::@151
|
|
level_tile_directions::return#13 = phi( game_logic::@151/level_tile_directions::return#7 )
|
|
game_logic::open_directions4#0 = level_tile_directions::return#13
|
|
game_logic::$199 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $f
|
|
game_logic::$200 = game_logic::$199 ^ $f
|
|
game_logic::joy_directions#0 = game_logic::$200 * 4
|
|
game_logic::$202 = game_logic::joy_directions#0 != 0
|
|
game_logic::$203 = ! game_logic::$202
|
|
if(game_logic::$203) goto game_logic::@149
|
|
to:game_logic::@152
|
|
game_logic::@149: scope:[game_logic] from game_logic::@152 game_logic::@153 game_logic::@168
|
|
game_logic::open_directions4#1 = phi( game_logic::@152/game_logic::open_directions4#2, game_logic::@153/game_logic::open_directions4#3, game_logic::@168/game_logic::open_directions4#0 )
|
|
pacman_direction = pacman_direction & game_logic::open_directions4#1
|
|
to:game_logic::@return
|
|
game_logic::@152: scope:[game_logic] from game_logic::@168
|
|
game_logic::open_directions4#2 = phi( game_logic::@168/game_logic::open_directions4#0 )
|
|
game_logic::joy_directions#1 = phi( game_logic::@168/game_logic::joy_directions#0 )
|
|
game_logic::$204 = game_logic::joy_directions#1 & game_logic::open_directions4#2
|
|
game_logic::new_direction#0 = DIRECTION_SINGLE[game_logic::$204]
|
|
game_logic::$205 = game_logic::new_direction#0 != 0
|
|
game_logic::$206 = ! game_logic::$205
|
|
if(game_logic::$206) goto game_logic::@149
|
|
to:game_logic::@153
|
|
game_logic::@153: scope:[game_logic] from game_logic::@152
|
|
game_logic::open_directions4#3 = phi( game_logic::@152/game_logic::open_directions4#2 )
|
|
game_logic::new_direction#1 = phi( game_logic::@152/game_logic::new_direction#0 )
|
|
pacman_direction = game_logic::new_direction#1
|
|
to:game_logic::@149
|
|
game_logic::@150: scope:[game_logic] from game_logic::@148
|
|
pacman_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@154: scope:[game_logic] from game_logic::@148
|
|
game_logic::$208 = pacman_xfine == $61
|
|
game_logic::$209 = ! game_logic::$208
|
|
if(game_logic::$209) goto game_logic::@return
|
|
to:game_logic::@155
|
|
game_logic::@155: scope:[game_logic] from game_logic::@154
|
|
pacman_xfine = 1
|
|
to:game_logic::@return
|
|
|
|
char choose_direction(char open_directions , char ghost_xtile , char ghost_ytile , char target_xtile , char target_ytile)
|
|
choose_direction: scope:[choose_direction] from game_logic::@117 game_logic::@135 game_logic::@81 game_logic::@99
|
|
choose_direction::open_directions#4 = phi( game_logic::@117/choose_direction::open_directions#2, game_logic::@135/choose_direction::open_directions#3, game_logic::@81/choose_direction::open_directions#0, game_logic::@99/choose_direction::open_directions#1 )
|
|
choose_direction::target_ytile#4 = phi( game_logic::@117/choose_direction::target_ytile#2, game_logic::@135/choose_direction::target_ytile#3, game_logic::@81/choose_direction::target_ytile#0, game_logic::@99/choose_direction::target_ytile#1 )
|
|
choose_direction::ghost_ytile#4 = phi( game_logic::@117/choose_direction::ghost_ytile#2, game_logic::@135/choose_direction::ghost_ytile#3, game_logic::@81/choose_direction::ghost_ytile#0, game_logic::@99/choose_direction::ghost_ytile#1 )
|
|
choose_direction::target_xtile#4 = phi( game_logic::@117/choose_direction::target_xtile#2, game_logic::@135/choose_direction::target_xtile#3, game_logic::@81/choose_direction::target_xtile#0, game_logic::@99/choose_direction::target_xtile#1 )
|
|
choose_direction::ghost_xtile#4 = phi( game_logic::@117/choose_direction::ghost_xtile#2, game_logic::@135/choose_direction::ghost_xtile#3, game_logic::@81/choose_direction::ghost_xtile#0, game_logic::@99/choose_direction::ghost_xtile#1 )
|
|
choose_direction::xdiff#0 = choose_direction::ghost_xtile#4 - choose_direction::target_xtile#4
|
|
choose_direction::ydiff#0 = choose_direction::ghost_ytile#4 - choose_direction::target_ytile#4
|
|
choose_direction::direction#0 = STOP
|
|
choose_direction::dist_min#0 = $ff
|
|
choose_direction::$2 = choose_direction::open_directions#4 & UP
|
|
choose_direction::$26 = 0 != choose_direction::$2
|
|
choose_direction::$3 = ! choose_direction::$26
|
|
if(choose_direction::$3) goto choose_direction::@1
|
|
to:choose_direction::@5
|
|
choose_direction::@1: scope:[choose_direction] from choose_direction choose_direction::@5 choose_direction::@6
|
|
choose_direction::direction#10 = phi( choose_direction/choose_direction::direction#0, choose_direction::@5/choose_direction::direction#12, choose_direction::@6/choose_direction::direction#1 )
|
|
choose_direction::dist_min#9 = phi( choose_direction/choose_direction::dist_min#0, choose_direction::@5/choose_direction::dist_min#5, choose_direction::@6/choose_direction::dist_min#1 )
|
|
choose_direction::xdiff#5 = phi( choose_direction/choose_direction::xdiff#0, choose_direction::@5/choose_direction::xdiff#1, choose_direction::@6/choose_direction::xdiff#8 )
|
|
choose_direction::ydiff#5 = phi( choose_direction/choose_direction::ydiff#0, choose_direction::@5/choose_direction::ydiff#1, choose_direction::@6/choose_direction::ydiff#8 )
|
|
choose_direction::open_directions#5 = phi( choose_direction/choose_direction::open_directions#4, choose_direction::@5/choose_direction::open_directions#8, choose_direction::@6/choose_direction::open_directions#9 )
|
|
choose_direction::$4 = choose_direction::open_directions#5 & DOWN
|
|
choose_direction::$27 = 0 != choose_direction::$4
|
|
choose_direction::$5 = ! choose_direction::$27
|
|
if(choose_direction::$5) goto choose_direction::@2
|
|
to:choose_direction::@7
|
|
choose_direction::@5: scope:[choose_direction] from choose_direction
|
|
choose_direction::direction#12 = phi( choose_direction/choose_direction::direction#0 )
|
|
choose_direction::open_directions#8 = phi( choose_direction/choose_direction::open_directions#4 )
|
|
choose_direction::dist_min#5 = phi( choose_direction/choose_direction::dist_min#0 )
|
|
choose_direction::xdiff#1 = phi( choose_direction/choose_direction::xdiff#0 )
|
|
choose_direction::ydiff#1 = phi( choose_direction/choose_direction::ydiff#0 )
|
|
choose_direction::$10 = choose_direction::ydiff#1 - 1
|
|
choose_direction::dist_up#0 = ABS[choose_direction::xdiff#1] + ABS[choose_direction::$10]
|
|
choose_direction::$12 = choose_direction::dist_up#0 < choose_direction::dist_min#5
|
|
choose_direction::$13 = ! choose_direction::$12
|
|
if(choose_direction::$13) goto choose_direction::@1
|
|
to:choose_direction::@6
|
|
choose_direction::@6: scope:[choose_direction] from choose_direction::@5
|
|
choose_direction::xdiff#8 = phi( choose_direction::@5/choose_direction::xdiff#1 )
|
|
choose_direction::ydiff#8 = phi( choose_direction::@5/choose_direction::ydiff#1 )
|
|
choose_direction::open_directions#9 = phi( choose_direction::@5/choose_direction::open_directions#8 )
|
|
choose_direction::dist_up#1 = phi( choose_direction::@5/choose_direction::dist_up#0 )
|
|
choose_direction::direction#1 = UP
|
|
choose_direction::dist_min#1 = choose_direction::dist_up#1
|
|
to:choose_direction::@1
|
|
choose_direction::@2: scope:[choose_direction] from choose_direction::@1 choose_direction::@7 choose_direction::@8
|
|
choose_direction::direction#8 = phi( choose_direction::@1/choose_direction::direction#10, choose_direction::@7/choose_direction::direction#11, choose_direction::@8/choose_direction::direction#2 )
|
|
choose_direction::dist_min#10 = phi( choose_direction::@1/choose_direction::dist_min#9, choose_direction::@7/choose_direction::dist_min#6, choose_direction::@8/choose_direction::dist_min#2 )
|
|
choose_direction::ydiff#6 = phi( choose_direction::@1/choose_direction::ydiff#5, choose_direction::@7/choose_direction::ydiff#2, choose_direction::@8/choose_direction::ydiff#9 )
|
|
choose_direction::xdiff#6 = phi( choose_direction::@1/choose_direction::xdiff#5, choose_direction::@7/choose_direction::xdiff#2, choose_direction::@8/choose_direction::xdiff#9 )
|
|
choose_direction::open_directions#6 = phi( choose_direction::@1/choose_direction::open_directions#5, choose_direction::@7/choose_direction::open_directions#10, choose_direction::@8/choose_direction::open_directions#11 )
|
|
choose_direction::$6 = choose_direction::open_directions#6 & LEFT
|
|
choose_direction::$28 = 0 != choose_direction::$6
|
|
choose_direction::$7 = ! choose_direction::$28
|
|
if(choose_direction::$7) goto choose_direction::@3
|
|
to:choose_direction::@9
|
|
choose_direction::@7: scope:[choose_direction] from choose_direction::@1
|
|
choose_direction::direction#11 = phi( choose_direction::@1/choose_direction::direction#10 )
|
|
choose_direction::open_directions#10 = phi( choose_direction::@1/choose_direction::open_directions#5 )
|
|
choose_direction::dist_min#6 = phi( choose_direction::@1/choose_direction::dist_min#9 )
|
|
choose_direction::xdiff#2 = phi( choose_direction::@1/choose_direction::xdiff#5 )
|
|
choose_direction::ydiff#2 = phi( choose_direction::@1/choose_direction::ydiff#5 )
|
|
choose_direction::$14 = choose_direction::ydiff#2 + 1
|
|
choose_direction::dist_down#0 = ABS[choose_direction::xdiff#2] + ABS[choose_direction::$14]
|
|
choose_direction::$16 = choose_direction::dist_down#0 < choose_direction::dist_min#6
|
|
choose_direction::$17 = ! choose_direction::$16
|
|
if(choose_direction::$17) goto choose_direction::@2
|
|
to:choose_direction::@8
|
|
choose_direction::@8: scope:[choose_direction] from choose_direction::@7
|
|
choose_direction::ydiff#9 = phi( choose_direction::@7/choose_direction::ydiff#2 )
|
|
choose_direction::xdiff#9 = phi( choose_direction::@7/choose_direction::xdiff#2 )
|
|
choose_direction::open_directions#11 = phi( choose_direction::@7/choose_direction::open_directions#10 )
|
|
choose_direction::dist_down#1 = phi( choose_direction::@7/choose_direction::dist_down#0 )
|
|
choose_direction::direction#2 = DOWN
|
|
choose_direction::dist_min#2 = choose_direction::dist_down#1
|
|
to:choose_direction::@2
|
|
choose_direction::@3: scope:[choose_direction] from choose_direction::@10 choose_direction::@2 choose_direction::@9
|
|
choose_direction::dist_min#11 = phi( choose_direction::@10/choose_direction::dist_min#3, choose_direction::@2/choose_direction::dist_min#10, choose_direction::@9/choose_direction::dist_min#7 )
|
|
choose_direction::ydiff#7 = phi( choose_direction::@10/choose_direction::ydiff#10, choose_direction::@2/choose_direction::ydiff#6, choose_direction::@9/choose_direction::ydiff#3 )
|
|
choose_direction::xdiff#7 = phi( choose_direction::@10/choose_direction::xdiff#10, choose_direction::@2/choose_direction::xdiff#6, choose_direction::@9/choose_direction::xdiff#3 )
|
|
choose_direction::direction#7 = phi( choose_direction::@10/choose_direction::direction#3, choose_direction::@2/choose_direction::direction#8, choose_direction::@9/choose_direction::direction#9 )
|
|
choose_direction::open_directions#7 = phi( choose_direction::@10/choose_direction::open_directions#12, choose_direction::@2/choose_direction::open_directions#6, choose_direction::@9/choose_direction::open_directions#13 )
|
|
choose_direction::$8 = choose_direction::open_directions#7 & RIGHT
|
|
choose_direction::$29 = 0 != choose_direction::$8
|
|
choose_direction::$9 = ! choose_direction::$29
|
|
if(choose_direction::$9) goto choose_direction::@4
|
|
to:choose_direction::@11
|
|
choose_direction::@9: scope:[choose_direction] from choose_direction::@2
|
|
choose_direction::direction#9 = phi( choose_direction::@2/choose_direction::direction#8 )
|
|
choose_direction::open_directions#13 = phi( choose_direction::@2/choose_direction::open_directions#6 )
|
|
choose_direction::dist_min#7 = phi( choose_direction::@2/choose_direction::dist_min#10 )
|
|
choose_direction::ydiff#3 = phi( choose_direction::@2/choose_direction::ydiff#6 )
|
|
choose_direction::xdiff#3 = phi( choose_direction::@2/choose_direction::xdiff#6 )
|
|
choose_direction::$18 = choose_direction::xdiff#3 - 1
|
|
choose_direction::dist_left#0 = ABS[choose_direction::$18] + ABS[choose_direction::ydiff#3]
|
|
choose_direction::$20 = choose_direction::dist_left#0 < choose_direction::dist_min#7
|
|
choose_direction::$21 = ! choose_direction::$20
|
|
if(choose_direction::$21) goto choose_direction::@3
|
|
to:choose_direction::@10
|
|
choose_direction::@10: scope:[choose_direction] from choose_direction::@9
|
|
choose_direction::ydiff#10 = phi( choose_direction::@9/choose_direction::ydiff#3 )
|
|
choose_direction::xdiff#10 = phi( choose_direction::@9/choose_direction::xdiff#3 )
|
|
choose_direction::open_directions#12 = phi( choose_direction::@9/choose_direction::open_directions#13 )
|
|
choose_direction::dist_left#1 = phi( choose_direction::@9/choose_direction::dist_left#0 )
|
|
choose_direction::direction#3 = LEFT
|
|
choose_direction::dist_min#3 = choose_direction::dist_left#1
|
|
to:choose_direction::@3
|
|
choose_direction::@4: scope:[choose_direction] from choose_direction::@11 choose_direction::@12 choose_direction::@3
|
|
choose_direction::direction#5 = phi( choose_direction::@11/choose_direction::direction#6, choose_direction::@12/choose_direction::direction#4, choose_direction::@3/choose_direction::direction#7 )
|
|
choose_direction::return#4 = choose_direction::direction#5
|
|
to:choose_direction::@return
|
|
choose_direction::@11: scope:[choose_direction] from choose_direction::@3
|
|
choose_direction::direction#6 = phi( choose_direction::@3/choose_direction::direction#7 )
|
|
choose_direction::dist_min#8 = phi( choose_direction::@3/choose_direction::dist_min#11 )
|
|
choose_direction::ydiff#4 = phi( choose_direction::@3/choose_direction::ydiff#7 )
|
|
choose_direction::xdiff#4 = phi( choose_direction::@3/choose_direction::xdiff#7 )
|
|
choose_direction::$22 = choose_direction::xdiff#4 + 1
|
|
choose_direction::dist_right#0 = ABS[choose_direction::$22] + ABS[choose_direction::ydiff#4]
|
|
choose_direction::$24 = choose_direction::dist_right#0 < choose_direction::dist_min#8
|
|
choose_direction::$25 = ! choose_direction::$24
|
|
if(choose_direction::$25) goto choose_direction::@4
|
|
to:choose_direction::@12
|
|
choose_direction::@12: scope:[choose_direction] from choose_direction::@11
|
|
choose_direction::dist_right#1 = phi( choose_direction::@11/choose_direction::dist_right#0 )
|
|
choose_direction::direction#4 = RIGHT
|
|
choose_direction::dist_min#4 = choose_direction::dist_right#1
|
|
to:choose_direction::@4
|
|
choose_direction::@return: scope:[choose_direction] from choose_direction::@4
|
|
choose_direction::return#10 = phi( choose_direction::@4/choose_direction::return#4 )
|
|
choose_direction::return#5 = choose_direction::return#10
|
|
return
|
|
to:@return
|
|
|
|
void spawn_all()
|
|
spawn_all: scope:[spawn_all] from game_logic::@68 game_logic::@69 game_logic::@70 game_logic::@71 gameplay_run::@9
|
|
ghosts_mode_count = 0
|
|
pacman_substep = 0
|
|
ghost1_substep = 0
|
|
ghost2_substep = 0
|
|
ghost3_substep = 0
|
|
ghost4_substep = 0
|
|
pacman_direction = STOP
|
|
ghost1_direction = STOP
|
|
ghost2_direction = STOP
|
|
ghost3_direction = STOP
|
|
ghost4_direction = STOP
|
|
pacman_xfine = $32
|
|
ghost1_xfine = $32
|
|
ghost2_xfine = $32
|
|
ghost3_xfine = $32
|
|
ghost4_xfine = $32
|
|
ghost1_yfine = $23
|
|
ghost2_yfine = $23
|
|
ghost3_yfine = $23
|
|
ghost4_yfine = $23
|
|
pacman_yfine = $3e
|
|
ghost1_respawn = $a
|
|
ghost2_respawn = $14
|
|
ghost3_respawn = $1e
|
|
ghost4_respawn = $28
|
|
to:spawn_all::@return
|
|
spawn_all::@return: scope:[spawn_all] from spawn_all
|
|
return
|
|
to:@return
|
|
|
|
void __start()
|
|
__start: scope:[__start] from
|
|
to:__start::__init1
|
|
__start::__init1: scope:[__start] from __start
|
|
pacman_ch1_enabled = 0
|
|
pacman_ch1_idx = 0
|
|
logic_tile_ptr = (volatile char *) 0
|
|
logic_tile_xcol = 0
|
|
logic_tile_yfine = 0
|
|
logic_tile_left_idx = 0
|
|
logic_tile_right_idx = 0
|
|
left_render_index_xcol = (char *) 0
|
|
left_canvas = (char *) 0
|
|
left_ypos_inc_offset = 0
|
|
rigt_render_index_xcol = (char *) 0
|
|
rigt_canvas = (char *) 0
|
|
rigt_ypos_inc_offset = 0
|
|
canvas_base_hi = 0
|
|
bobs_restore_base = 0
|
|
top_sprites_color = 0
|
|
top_sprites_mc = 0
|
|
side_sprites_color = 0
|
|
side_sprites_mc = 0
|
|
bottom_sprites_color = 0
|
|
bottom_sprites_mc = 0
|
|
pill_count = 0
|
|
pacman_wins = 0
|
|
pacman_lives = 3
|
|
music_play_next = 0
|
|
phase = 0
|
|
frame = 0
|
|
anim_frame_idx = 0
|
|
pacman_xfine = $2d
|
|
pacman_yfine = $23
|
|
pacman_direction = STOP
|
|
pacman_substep = 0
|
|
ghosts_mode = 1
|
|
ghosts_mode_count = 0
|
|
ghost1_xfine = $2d
|
|
ghost1_yfine = $23
|
|
ghost1_direction = STOP
|
|
ghost1_substep = 0
|
|
ghost1_reverse = 0
|
|
ghost1_respawn = 0
|
|
ghost2_xfine = $2d
|
|
ghost2_yfine = $23
|
|
ghost2_direction = STOP
|
|
ghost2_substep = 0
|
|
ghost2_reverse = 0
|
|
ghost2_respawn = 0
|
|
ghost3_xfine = $2d
|
|
ghost3_yfine = $23
|
|
ghost3_direction = STOP
|
|
ghost3_substep = 0
|
|
ghost3_reverse = 0
|
|
ghost3_respawn = 0
|
|
ghost4_xfine = $2d
|
|
ghost4_yfine = $23
|
|
ghost4_direction = STOP
|
|
ghost4_substep = 0
|
|
ghost4_reverse = 0
|
|
ghost4_respawn = 0
|
|
game_logic_substep = 0
|
|
game_playable = 0
|
|
to:__start::@1
|
|
__start::@1: scope:[__start] from __start::__init1
|
|
call main
|
|
to:__start::@2
|
|
__start::@2: scope:[__start] from __start::@1
|
|
to:__start::@return
|
|
__start::@return: scope:[__start] from __start::@2
|
|
return
|
|
to:@return
|
|
|
|
SYMBOL TABLE SSA
|
|
__constant char ABS[$100] = kickasm {{ .for(var i=0;i<$100;i++) {
|
|
.var x = (i<$80)?i:($100-i);
|
|
.byte abs(x)
|
|
}
|
|
}}
|
|
__constant char ABS_POST[1] = { 0 }
|
|
__constant char ABS_PRE[1] = { 1 }
|
|
__constant char * const BANK_1 = (char *)$4000
|
|
__constant char * const BANK_2 = (char *)$c000
|
|
__constant const char BLACK = 0
|
|
__constant const char BLUE = 6
|
|
__constant char BOB_GRAPHICS_CRUNCHED[] = kickasm( uses BOB_MASK_LEFT) {{ .modify B2() {
|
|
.pc = BOB_MASK_LEFT "BOB GRAPHICS TABLES"
|
|
.var bobs_pic = LoadPicture("pacman-bobs.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// TABLE char BOB_MASK_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_MASK_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,24+scroll*6+row)
|
|
.for(var blue=0; blue<8;blue++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,48+scroll*6+row)
|
|
}
|
|
}
|
|
}}
|
|
__constant char * const BOB_MASK_LEFT = (char *)$5400
|
|
__constant char * const BOB_MASK_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*6
|
|
__constant char * const BOB_PIXEL_LEFT = BOB_MASK_LEFT+BOB_ROW_SIZE*$c
|
|
__constant char * const BOB_PIXEL_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*$12
|
|
__constant const char BOB_ROW_SIZE = $80
|
|
__constant char * const BORDER_COLOR = (char *)$d020
|
|
__constant char BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc
|
|
#import "byteboozer_decrunch.asm"
|
|
}}
|
|
__constant char CHASE = 0
|
|
__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00
|
|
__constant char * const CIA1_INTERRUPT = (char *)$dc0d
|
|
__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00
|
|
__constant const char CIA_INTERRUPT_CLEAR = $7f
|
|
__constant char DIRECTION::DOWN = 8
|
|
__constant char DIRECTION::LEFT = $10
|
|
__constant char DIRECTION::RIGHT = $20
|
|
__constant char DIRECTION::STOP = 0
|
|
__constant char DIRECTION::UP = 4
|
|
__constant char DIRECTION_ELIMINATE[$21] = { $ff, 0, 0, 0, $f7, 0, 0, 0, $fb, 0, 0, 0, 0, 0, 0, 0, $df, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $ef }
|
|
__constant char DIRECTION_REVERSE[$21] = { 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, $20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $10 }
|
|
__constant char DIRECTION_SINGLE[$40] = { 0, 0, 0, 0, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $20, $20, $20, $20, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4 }
|
|
__constant char DOWN = 8
|
|
__constant char EMPTY = 0
|
|
__constant char FRIGHTENED = 2
|
|
__constant char * const GAMEOVER_GFX = (char *)$a700
|
|
__constant char GAMEOVER_GFX_CRUNCHED[] = kickasm( uses GAMEOVER_GFX) {{ .modify B2() {
|
|
.pc = GAMEOVER_GFX "GAMEOVER GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_gameover = LoadPicture("pacman-gameover.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_gameover.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}}
|
|
__constant char GHOSTS_MODE::CHASE = 0
|
|
__constant char GHOSTS_MODE::FRIGHTENED = 2
|
|
__constant char GHOSTS_MODE::SCATTER = 1
|
|
__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe
|
|
__constant char * const INTRO_MUSIC = (char *)$3000
|
|
__constant char INTRO_MUSIC_CRUNCHED[] = kickasm( uses INTRO_MUSIC) {{ .modify B2() {
|
|
.pc = INTRO_MUSIC "INTRO MUSIC"
|
|
.const music = LoadBinary("pacman-2chn-simpler.prg", BF_C64FILE)
|
|
.fill music.getSize(), music.get(i)
|
|
}
|
|
}}
|
|
__constant const unsigned int INTRO_MUSIC_CRUNCHED_SIZE = $600
|
|
__constant char * const INTRO_MUSIC_CRUNCHED_UPPER = (char *)$a700
|
|
__constant const char IRQ_RASTER = 1
|
|
__constant const char IRQ_SCREEN_TOP_LINE = 5
|
|
__constant char * const IRQ_STATUS = (char *)$d019
|
|
__constant char LEFT = $10
|
|
__constant char * const LEVEL_TILES = (char *)$4800
|
|
__constant char LEVEL_TILES_CRUNCHED[] = kickasm( uses LEVEL_TILES) {{ .modify B2() {
|
|
.pc = LEVEL_TILES "LEVEL TILE GRAPHICS"
|
|
.var pic_level = LoadPicture("pacman-tiled.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// Maps the tile pixels (a 16 bit number) to the tile ID
|
|
.var TILESET = Hashtable()
|
|
// Maps the tile ID to the pixels (a 16 bit number)
|
|
.var TILESET_BY_ID = Hashtable()
|
|
// Tile ID 0 is empty
|
|
.eval TILESET.put(0, 0)
|
|
.eval TILESET_BY_ID.put(0, 0)
|
|
|
|
.align $100
|
|
// TABLE LEVEL_TILES[64*37]
|
|
// The level is 50 tiles * 37 tiles. The first tile line are special half-tiles (where only the last 2 pixel rows are shown).
|
|
// The level data is organized as 37 rows of 64 bytes containing tile IDs. (the last 14 are unused to achieve 64-byte alignment)
|
|
.for(var ytile=0; ytile<37; ytile++) {
|
|
.for(var xtile=0; xtile<50; xtile++) {
|
|
// Find the tile pixels (4x4 px - 16 bits)
|
|
.var pixels = 0;
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = pic_level.getMulticolorByte(xtile/2,ytile*4+i)
|
|
.if((xtile&1)==0) {
|
|
// left nibble
|
|
.eval pix = floor(pix / $10)
|
|
} else {
|
|
// right nibble
|
|
.eval pix = pix & $0f
|
|
}
|
|
.eval pixels = pixels*$10 + pix
|
|
}
|
|
.var tile_id = 0
|
|
.if(TILESET.containsKey(pixels)) {
|
|
.eval tile_id = TILESET.get(pixels)
|
|
} else {
|
|
.eval tile_id = TILESET.keys().size()
|
|
.eval TILESET.put(pixels, tile_id)
|
|
.eval TILESET_BY_ID.put(tile_id, pixels)
|
|
// .print "tile "+tile_id+" : "+toHexString(pixels,4)
|
|
}
|
|
// Output the tile ID
|
|
.byte tile_id
|
|
}
|
|
.fill 14, 0
|
|
}
|
|
|
|
.align $100
|
|
// TABLE char TILES_LEFT[0x80]
|
|
// The left tile graphics. A tile is 4x4 px. The left tiles contain tile graphics for the 4 left bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix<<4
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
|
|
.align $80
|
|
// TABLE char TILES_RIGHT[0x80]
|
|
// The right tile graphics. A tile is 4x4 px. The right tiles contain tile graphics for the 4 right bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
.align $80
|
|
// TABLE char TILES_TYPE[0x20]
|
|
// 0: empty (all black), 1:pill, 2:powerup, 4: wall (contains blue pixels)
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.var tile_type = 0
|
|
.if(pixels==$0220) .eval tile_type=1 // 1:pill
|
|
.if(pixels==$aaaa) .eval tile_type=2 // 2:powerup
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
// Detect wall - any blue pixels (%01)
|
|
.if( (pix&%0100)==%0100) .eval tile_type = 4; // 4:wall
|
|
.if( (pix&%0001)==%0001) .eval tile_type = 4; // 4:wall
|
|
.eval pixels = pixels << 4
|
|
}
|
|
.byte tile_type
|
|
//.print "tile "+tile_id+" gfx "+toHexString(TILESET_BY_ID.get(tile_id),4) + " type "+tile_type
|
|
}
|
|
|
|
}
|
|
}}
|
|
__constant char * const LEVEL_TILES_DIRECTIONS = (char *)$3e00
|
|
__constant unsigned int LEVEL_YTILE_OFFSET[$25] = { 0, $40, $80, $c0, $100, $140, $180, $1c0, $200, $240, $280, $2c0, $300, $340, $380, $3c0, $400, $440, $480, $4c0, $500, $540, $580, $5c0, $600, $640, $680, $6c0, $700, $740, $780, $7c0, $800, $840, $880, $8c0, $900 }
|
|
__constant char LOGIC_CODE_CRUNCHED[] = kickasm( uses bobs_xcol uses bobs_yfine uses bobs_bob_id uses bobs_restore uses RENDER_INDEX uses RENDER_OFFSET_CANVAS_LO uses RENDER_OFFSET_CANVAS_HI uses RENDER_OFFSET_YPOS_INC uses SIZE_BOB_RESTORE uses BOB_ROW_SIZE uses NUM_BOBS uses left_render_index_xcol uses left_canvas uses left_ypos_inc_offset uses rigt_render_index_xcol uses rigt_canvas uses rigt_ypos_inc_offset uses BOB_MASK_LEFT uses BOB_PIXEL_LEFT uses BOB_MASK_RIGT uses BOB_PIXEL_RIGT uses canvas_base_hi uses bobs_restore_base uses RENDER_YPOS_INC uses logic_tile_ptr uses logic_tile_xcol uses logic_tile_yfine uses logic_tile_left_idx uses logic_tile_right_idx) {{ .macro LOGIC_BEGIN(cycles) {
|
|
.byte cycles
|
|
}
|
|
.macro LOGIC_END() {
|
|
.byte $ff
|
|
}
|
|
.modify B2() {
|
|
.pc = LOGIC_CODE_UNMERGED "LOGIC CODE UNMERGED"
|
|
LOGIC_BEGIN(2)
|
|
clc
|
|
LOGIC_END()
|
|
|
|
// ******************************************
|
|
// Restores the canvas under the rendered bobs
|
|
// ******************************************
|
|
|
|
.for(var bob=NUM_BOBS-1;bob>=0; bob--) {
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// char * volatile left_canvas = *((char**)&bob_restore[0]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = bob_restore[2];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
// char * volatile rigt_canvas = *((char**)&bob_restore[3]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
sta.z rigt_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
// char rigt_ypos_inc_offset = bob_restore[5];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
sta.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Restore Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// *left_canvas = bob_restore[6] ;
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// *rigt_canvas = bob_restore[7];
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
|
|
// ******************************************
|
|
// Render two tiles on the canvas
|
|
// ******************************************
|
|
|
|
// y==0 from bob restore
|
|
LOGIC_BEGIN(12)
|
|
// char tile_left_idx = 4 * logic_tile_ptr[0];
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_left_idx
|
|
LOGIC_END()
|
|
// char logic_tile_right_idx = 4 * logic_tile_ptr[1];
|
|
LOGIC_BEGIN(2)
|
|
iny
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(12)
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_right_idx
|
|
LOGIC_END()
|
|
// char * render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, ytile*2 };
|
|
LOGIC_BEGIN(8)
|
|
lda #>RENDER_INDEX
|
|
adc logic_tile_xcol
|
|
sta.z left_render_index_xcol+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(6)
|
|
lda logic_tile_yfine
|
|
sta.z left_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// unsigned int canvas_offset = {render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] };
|
|
// char * left_canvas = canvas_base_hi*$100 + canvas_offset;
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(11)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = render_index_xcol[RENDER_OFFSET_YPOS_INC];
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Render Tile Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<4;row++) {
|
|
|
|
// *left_canvas = tile_left_pixels[y] | tile_right_pixels[y];
|
|
LOGIC_BEGIN(3)
|
|
ldx logic_tile_left_idx
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(17)
|
|
lda TILES_LEFT+row,x
|
|
ldx logic_tile_right_idx
|
|
ora TILES_RIGHT+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
}
|
|
|
|
// ******************************************
|
|
// Renders the BOBs at the given positions
|
|
// ******************************************
|
|
|
|
.for(var bob=0;bob<NUM_BOBS; bob++) {
|
|
// char * left_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, yfine };
|
|
// char * rigt_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol+1, yfine };
|
|
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(14)
|
|
lda #>RENDER_INDEX
|
|
adc bobs_xcol+bob
|
|
sta.z left_render_index_xcol+1
|
|
adc #1
|
|
sta.z rigt_render_index_xcol+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_yfine+bob
|
|
sta.z left_render_index_xcol
|
|
sta.z rigt_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// char * left_canvas = (char*){ left_render_index_xcol[85], left_render_index_xcol[0] };
|
|
// bob_restore[0] = <left_canvas; bob_restore[1] = >left_canvas;
|
|
// char * rigt_canvas = (char*){ rigt_render_index_xcol[85], rigt_render_index_xcol[0] };
|
|
// bob_restore[3] = <rigt_canvas; bob_restore[4] = >rigt_canvas;
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (rigt_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z rigt_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
LOGIC_END()
|
|
|
|
// char left_ypos_inc_offset = left_render_index_xcol[170];
|
|
// bob_restore[2] = left_ypos_inc_offset;
|
|
// char rigt_ypos_inc_offset = rigt_render_index_xcol[170];
|
|
// bob_restore[5] = rigt_ypos_inc_offset;
|
|
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
LOGIC_END()
|
|
|
|
// Render Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// bob_restore[6] = *left_canvas;
|
|
// *left_canvas = *left_canvas & BOB_MASK_LEFT_0[bob_id] | BOB_PIXEL_LEFT_0[bob_id];
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (left_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (rigt_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(4)
|
|
ldx bobs_bob_id+bob
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(19)
|
|
lda (left_canvas),y
|
|
and BOB_MASK_LEFT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_LEFT+row*BOB_ROW_SIZE,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// bob_restore[7] = *rigt_canvas;
|
|
// *rigt_canvas = *rigt_canvas & BOB_MASK_RIGT_0[bob_id] | BOB_PIXEL_RIGT_0[bob_id];
|
|
LOGIC_BEGIN(19)
|
|
lda (rigt_canvas),y
|
|
and BOB_MASK_RIGT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_RIGT+row*BOB_ROW_SIZE,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
//LOGIC_BEGIN(6)
|
|
//lda #0
|
|
//sta $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(0) // end of logic code
|
|
}
|
|
}}
|
|
__constant char * const LOGIC_CODE_UNMERGED = (char *)$e000
|
|
__constant const char NUM_BOBS = 5
|
|
__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8
|
|
__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0
|
|
__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR = $27
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y = 1
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR = $28
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y = 3
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y = 5
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y = 7
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y = 9
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y = $b
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y = $d
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y = $f
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X = $1d
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC = $1c
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1 = $25
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2 = $26
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB = $10
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY = 5
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL = 4
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_FREQ = 0
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH = 2
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE = 6
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18
|
|
__constant char PACMAN_CH1_CONTROL[] = { $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0, $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0 }
|
|
__constant char PACMAN_CH1_FREQ_HI[] = { $23, $1d, $1a, $17, $15, $12, 0, 0, 0, 0, 0, $19, $1a, $1c, $1d, $20, $23, 0, 0, 0, 0, 0 }
|
|
__constant char PILL = 1
|
|
__constant char POWERUP = 2
|
|
__constant char * const PROCPORT = (char *)1
|
|
__constant char * const PROCPORT_DDR = (char *)0
|
|
__constant const char PROCPORT_DDR_MEMORY_MASK = 7
|
|
__constant const char PROCPORT_RAM_ALL = 0
|
|
__constant const char PROCPORT_RAM_IO = 5
|
|
__constant char * const RASTER = (char *)$d012
|
|
__constant char * const RASTER_CODE = (char *)$8000
|
|
__constant char RASTER_CODE_CRUNCHED[] = kickasm( uses VICII_CONTROL2 uses BORDER_COLOR uses RASTER_CODE_UNMERGED uses side_sprites_color uses side_sprites_mc uses bottom_sprites_color uses bottom_sprites_mc) {{ .macro RASTER_CYCLES(cycles) {
|
|
.byte $ff, cycles
|
|
}
|
|
.modify B2() {
|
|
.pc = RASTER_CODE_UNMERGED "RASTER CODE UNMERGED"
|
|
RASTER_CYCLES(29)
|
|
// Line 7 cycle 44
|
|
// Raster Line
|
|
.var raster_line = 7
|
|
// Line in the sprite
|
|
.var sprite_line = 20
|
|
// Current sprite ypos
|
|
.var sprite_ypos = 7
|
|
// Current sprite screen (graphics bank not important since sprite layout in the banks is identical)
|
|
.var sprite_screen = SCREENS_1
|
|
.var available_cycles = 0;
|
|
.for(var i=0;i<293;i++) {
|
|
// Line cycle count
|
|
.var line_cycles = 46
|
|
.if(raster_line>=70 && raster_line<238) {
|
|
// Only 2 sprites on these lines - so more cycles available
|
|
.eval line_cycles = 58
|
|
}
|
|
// Create 9th sprite by moving sprite 0
|
|
.if(mod(raster_line,2)==0) {
|
|
lda #$6f
|
|
sta $d000
|
|
} else {
|
|
lda #$e7
|
|
sta $d000
|
|
}
|
|
.eval line_cycles -= 6;
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
.eval line_cycles -= 12;
|
|
.eval raster_line++
|
|
.eval sprite_line++
|
|
.if(sprite_line==21) {
|
|
.eval sprite_line = 0
|
|
.eval sprite_ypos += 21
|
|
}
|
|
// Set sprite single-color mode on splash
|
|
.if(raster_line==53) {
|
|
lda side_sprites_mc
|
|
sta $d01c
|
|
lda side_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
}
|
|
// Set sprite multi-color mode on splash
|
|
.if(raster_line==248) {
|
|
lda bottom_sprites_mc
|
|
sta $d01c
|
|
lda bottom_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
//.print "raster:"+raster_line+" multi-color"
|
|
}
|
|
// Open top border
|
|
.if(raster_line==55) {
|
|
lda #VICII_RSEL|VICII_ECM|VICII_BMM|7
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" top border rsel=1"
|
|
}
|
|
// Open bottom border
|
|
.if(raster_line==250) {
|
|
lda #VICII_ECM|VICII_BMM|7 // DEN=0, RSEL=0
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" bottom border rsel=0"
|
|
}
|
|
// Move sprites down
|
|
.if(sprite_line>=2 && sprite_line<=9) {
|
|
.if(sprite_ypos<300) {
|
|
.var sprite_id = sprite_line-2
|
|
.if(sprite_id==0 || sprite_id==1 || sprite_ypos<=55 || sprite_ypos>=(246-21)) {
|
|
lda #sprite_ypos
|
|
sta SPRITES_YPOS+2*sprite_id
|
|
.eval line_cycles -= 6;
|
|
//.print "raster:"+raster_line+" sprite:"+sprite_id+" ypos:"+sprite_ypos
|
|
}
|
|
}
|
|
}
|
|
// Change sprite data
|
|
.if(sprite_line==20) {
|
|
.eval sprite_screen += $400
|
|
lda #sprite_screen/$40
|
|
sta VICII_MEMORY
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" sprite data $"+toHexString(sprite_screen)
|
|
}
|
|
// Spend the rest of the cycles on NOPS
|
|
.if(line_cycles<0 || line_cycles==1) .error "Too many cycles spent on line "+raster_line
|
|
.if(line_cycles>0) {
|
|
//.print "raster:"+raster_line+" cycles $"+toHexString(line_cycles)
|
|
RASTER_CYCLES(line_cycles)
|
|
.eval line_cycles -= line_cycles
|
|
.eval available_cycles += line_cycles
|
|
}
|
|
}
|
|
//.print "Available cycles: "+available_cycles
|
|
|
|
lda #$6f
|
|
sta $d000
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
RASTER_CYCLES(00) // End of raster code
|
|
}
|
|
}}
|
|
__constant char * const RASTER_CODE_UNMERGED = (char *)$6000
|
|
__constant const char RED = 2
|
|
__constant char * const RENDER_INDEX = (char *)$b600
|
|
__constant const char RENDER_OFFSET_CANVAS_HI = $50
|
|
__constant const char RENDER_OFFSET_CANVAS_LO = 0
|
|
__constant const char RENDER_OFFSET_YPOS_INC = $a0
|
|
__constant char *RENDER_XCOLS[$1a] = { 0, 1, 2, $400, $401, $402, $800, $801, $802, $c00, $c01, $c02, $1000, $1001, $1002, $1400, $1401, $1402, $1800, $1801, $1802, $1c00, $1c01, $1c02, 0, 0 }
|
|
__constant unsigned int RENDER_YPOS[$95] = { (unsigned int)0+0, (unsigned int)0+0, (unsigned int)0+0, (unsigned int)0+6, (unsigned int)0+$c, (unsigned int)0+$12, (unsigned int)0+$18, (unsigned int)0+$1e, (unsigned int)0+$24, (unsigned int)0+$2a, (unsigned int)0+$30, (unsigned int)0+$36, (unsigned int)0+$3c, (unsigned int)$40+3, (unsigned int)$40+9, (unsigned int)$40+$f, (unsigned int)$40+$15, (unsigned int)$40+$1b, (unsigned int)$40+$21, (unsigned int)$40+$27, (unsigned int)$40+$2d, (unsigned int)$40+$33, (unsigned int)$40+$39, (unsigned int)$80+0, (unsigned int)$80+6, (unsigned int)$80+$c, (unsigned int)$80+$12, (unsigned int)$80+$18, (unsigned int)$80+$1e, (unsigned int)$80+$24, (unsigned int)$80+$2a, (unsigned int)$80+$30, (unsigned int)$80+$36, (unsigned int)$80+$3c, (unsigned int)$c0+3, (unsigned int)$c0+9, (unsigned int)$c0+$f, (unsigned int)$c0+$15, (unsigned int)$c0+$1b, (unsigned int)$c0+$21, (unsigned int)$c0+$27, (unsigned int)$c0+$2d, (unsigned int)$c0+$33, (unsigned int)$c0+$39, (unsigned int)$100+0, (unsigned int)$100+6, (unsigned int)$100+$c, (unsigned int)$100+$12, (unsigned int)$100+$18, (unsigned int)$100+$1e, (unsigned int)$100+$24, (unsigned int)$100+$2a, (unsigned int)$100+$30, (unsigned int)$100+$36, (unsigned int)$100+$3c, (unsigned int)$140+3, (unsigned int)$140+9, (unsigned int)$140+$f, (unsigned int)$140+$15, (unsigned int)$140+$1b, (unsigned int)$140+$21, (unsigned int)$140+$27, (unsigned int)$140+$2d, (unsigned int)$140+$33, (unsigned int)$140+$39, (unsigned int)$180+0, (unsigned int)$180+6, (unsigned int)$180+$c, (unsigned int)$180+$12, (unsigned int)$180+$18, (unsigned int)$180+$1e, (unsigned int)$180+$24, (unsigned int)$180+$2a, (unsigned int)$180+$30, (unsigned int)$180+$36, (unsigned int)$180+$3c, (unsigned int)$1c0+3, (unsigned int)$1c0+9, (unsigned int)$1c0+$f, (unsigned int)$1c0+$15, (unsigned int)$1c0+$1b, (unsigned int)$1c0+$21, (unsigned int)$1c0+$27, (unsigned int)$1c0+$2d, (unsigned int)$1c0+$33, (unsigned int)$1c0+$39, (unsigned int)$200+0, (unsigned int)$200+6, (unsigned int)$200+$c, (unsigned int)$200+$12, (unsigned int)$200+$18, (unsigned int)$200+$1e, (unsigned int)$200+$24, (unsigned int)$200+$2a, (unsigned int)$200+$30, (unsigned int)$200+$36, (unsigned int)$200+$3c, (unsigned int)$240+3, (unsigned int)$240+9, (unsigned int)$240+$f, (unsigned int)$240+$15, (unsigned int)$240+$1b, (unsigned int)$240+$21, (unsigned int)$240+$27, (unsigned int)$240+$2d, (unsigned int)$240+$33, (unsigned int)$240+$39, (unsigned int)$280+0, (unsigned int)$280+6, (unsigned int)$280+$c, (unsigned int)$280+$12, (unsigned int)$280+$18, (unsigned int)$280+$1e, (unsigned int)$280+$24, (unsigned int)$280+$2a, (unsigned int)$280+$30, (unsigned int)$280+$36, (unsigned int)$280+$3c, (unsigned int)$2c0+3, (unsigned int)$2c0+9, (unsigned int)$2c0+$f, (unsigned int)$2c0+$15, (unsigned int)$2c0+$1b, (unsigned int)$2c0+$21, (unsigned int)$2c0+$27, (unsigned int)$2c0+$2d, (unsigned int)$2c0+$33, (unsigned int)$2c0+$39, (unsigned int)$300+0, (unsigned int)$300+6, (unsigned int)$300+$c, (unsigned int)$300+$12, (unsigned int)$300+$18, (unsigned int)$300+$1e, (unsigned int)$300+$24, (unsigned int)$300+$2a, (unsigned int)$300+$30, (unsigned int)$300+$36, (unsigned int)$300+$3c, (unsigned int)$340+3, (unsigned int)$340+9, (unsigned int)$340+$f, (unsigned int)$340+$15, (unsigned int)$340+$1b, (unsigned int)$340+$21, (unsigned int)$340+$27, (unsigned int)$340+$2d, (unsigned int)$340+$33, (unsigned int)$340+$39 }
|
|
__constant unsigned int RENDER_YPOS_9TH[$95] = { (unsigned int)0+3, (unsigned int)0+3, (unsigned int)0+3, (unsigned int)0+9, (unsigned int)0+$f, (unsigned int)0+$15, (unsigned int)0+$1b, (unsigned int)0+$21, (unsigned int)0+$27, (unsigned int)0+$2d, (unsigned int)0+$33, (unsigned int)0+$39, (unsigned int)$40+0, (unsigned int)$40+6, (unsigned int)$40+$c, (unsigned int)$40+$12, (unsigned int)$40+$18, (unsigned int)$40+$1e, (unsigned int)$40+$24, (unsigned int)$40+$2a, (unsigned int)$40+$30, (unsigned int)$40+$36, (unsigned int)$40+$3c, (unsigned int)$80+3, (unsigned int)$80+9, (unsigned int)$80+$f, (unsigned int)$80+$15, (unsigned int)$80+$1b, (unsigned int)$80+$21, (unsigned int)$80+$27, (unsigned int)$80+$2d, (unsigned int)$80+$33, (unsigned int)$80+$39, (unsigned int)$c0+0, (unsigned int)$c0+6, (unsigned int)$c0+$c, (unsigned int)$c0+$12, (unsigned int)$c0+$18, (unsigned int)$c0+$1e, (unsigned int)$c0+$24, (unsigned int)$c0+$2a, (unsigned int)$c0+$30, (unsigned int)$c0+$36, (unsigned int)$c0+$3c, (unsigned int)$100+3, (unsigned int)$100+9, (unsigned int)$100+$f, (unsigned int)$100+$15, (unsigned int)$100+$1b, (unsigned int)$100+$21, (unsigned int)$100+$27, (unsigned int)$100+$2d, (unsigned int)$100+$33, (unsigned int)$100+$39, (unsigned int)$140+0, (unsigned int)$140+6, (unsigned int)$140+$c, (unsigned int)$140+$12, (unsigned int)$140+$18, (unsigned int)$140+$1e, (unsigned int)$140+$24, (unsigned int)$140+$2a, (unsigned int)$140+$30, (unsigned int)$140+$36, (unsigned int)$140+$3c, (unsigned int)$180+3, (unsigned int)$180+9, (unsigned int)$180+$f, (unsigned int)$180+$15, (unsigned int)$180+$1b, (unsigned int)$180+$21, (unsigned int)$180+$27, (unsigned int)$180+$2d, (unsigned int)$180+$33, (unsigned int)$180+$39, (unsigned int)$1c0+0, (unsigned int)$1c0+6, (unsigned int)$1c0+$c, (unsigned int)$1c0+$12, (unsigned int)$1c0+$18, (unsigned int)$1c0+$1e, (unsigned int)$1c0+$24, (unsigned int)$1c0+$2a, (unsigned int)$1c0+$30, (unsigned int)$1c0+$36, (unsigned int)$1c0+$3c, (unsigned int)$200+3, (unsigned int)$200+9, (unsigned int)$200+$f, (unsigned int)$200+$15, (unsigned int)$200+$1b, (unsigned int)$200+$21, (unsigned int)$200+$27, (unsigned int)$200+$2d, (unsigned int)$200+$33, (unsigned int)$200+$39, (unsigned int)$240+0, (unsigned int)$240+6, (unsigned int)$240+$c, (unsigned int)$240+$12, (unsigned int)$240+$18, (unsigned int)$240+$1e, (unsigned int)$240+$24, (unsigned int)$240+$2a, (unsigned int)$240+$30, (unsigned int)$240+$36, (unsigned int)$240+$3c, (unsigned int)$280+3, (unsigned int)$280+9, (unsigned int)$280+$f, (unsigned int)$280+$15, (unsigned int)$280+$1b, (unsigned int)$280+$21, (unsigned int)$280+$27, (unsigned int)$280+$2d, (unsigned int)$280+$33, (unsigned int)$280+$39, (unsigned int)$2c0+0, (unsigned int)$2c0+6, (unsigned int)$2c0+$c, (unsigned int)$2c0+$12, (unsigned int)$2c0+$18, (unsigned int)$2c0+$1e, (unsigned int)$2c0+$24, (unsigned int)$2c0+$2a, (unsigned int)$2c0+$30, (unsigned int)$2c0+$36, (unsigned int)$2c0+$3c, (unsigned int)$300+3, (unsigned int)$300+9, (unsigned int)$300+$f, (unsigned int)$300+$15, (unsigned int)$300+$1b, (unsigned int)$300+$21, (unsigned int)$300+$27, (unsigned int)$300+$2d, (unsigned int)$300+$33, (unsigned int)$300+$39, (unsigned int)$340+0, (unsigned int)$340+6, (unsigned int)$340+$c, (unsigned int)$340+$12, (unsigned int)$340+$18, (unsigned int)$340+$1e, (unsigned int)$340+$24, (unsigned int)$340+$2a, (unsigned int)$340+$30, (unsigned int)$340+$36, (unsigned int)$340+$3c }
|
|
__constant char RENDER_YPOS_INC[$a0] = { 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7 }
|
|
__constant char RIGHT = $20
|
|
__constant char SCATTER = 1
|
|
__constant char * const SCREENS_1 = (char *)$4000
|
|
__constant char * const SCREENS_2 = (char *)$c000
|
|
__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *)$d400
|
|
__constant char * const SID_CH1_FREQ_HI = (char *)$d401
|
|
__constant char SIZEOF_POINTER = 2
|
|
__constant char SIZEOF_UNSIGNED_INT = 2
|
|
__constant const char SIZE_BOB_RESTORE = $12
|
|
__constant char * const SPLASH = (char *)$4000
|
|
__constant char SPLASH_CRUNCHED[] = kickasm( uses SPLASH) {{ .modify B2() {
|
|
.pc = SPLASH "SPLASH SCREEN" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_splash_mc = LoadPicture("pacman-splash.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// 0:BLACK, 1:YELLOW
|
|
.var pic_splash_yellow = LoadPicture("pacman-splash.png", List().add($000000, $bfce72))
|
|
// 0:BLACK, 1:BLUE
|
|
.var pic_splash_blue = LoadPicture("pacman-splash.png", List().add($000000, $352879))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<147; ypos++) {
|
|
.if(ypos>25 && ypos<123) {
|
|
// Sprites in the sides are in single color blue on splash screen
|
|
.byte pic_splash_blue.getSinglecolorByte(xcol,ypos)
|
|
} else .if(xcol>2 && xcol<21) {
|
|
// Sprites 2-7 are in single color yellow on splash screen
|
|
.byte pic_splash_yellow.getSinglecolorByte(xcol,ypos)
|
|
} else {
|
|
// Sprites 0&1 are in multi color on splash screen
|
|
.byte pic_splash_mc.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}}
|
|
__constant char * const SPRITES_1 = (char *)$6000
|
|
__constant char * const SPRITES_2 = (char *)$e000
|
|
__constant char * const SPRITES_COLOR = (char *)$d027
|
|
__constant char * const SPRITES_XPOS = (char *)$d000
|
|
__constant char * const SPRITES_YPOS = (char *)$d001
|
|
__constant char STOP = 0
|
|
__constant char * const TILES_LEFT = LEVEL_TILES+$a00
|
|
__constant char * const TILES_RIGHT = LEVEL_TILES+$a80
|
|
__constant char * const TILES_TYPE = LEVEL_TILES+$b00
|
|
__constant char TILE_TYPE::EMPTY = 0
|
|
__constant char TILE_TYPE::PILL = 1
|
|
__constant char TILE_TYPE::POWERUP = 2
|
|
__constant char TILE_TYPE::WALL = 4
|
|
__constant char UP = 4
|
|
__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000
|
|
__constant const char VICII_BMM = $20
|
|
__constant char * const VICII_CONTROL1 = (char *)$d011
|
|
__constant char * const VICII_CONTROL2 = (char *)$d016
|
|
__constant const char VICII_DEN = $10
|
|
__constant const char VICII_ECM = $40
|
|
__constant char * const VICII_MEMORY = (char *)$d018
|
|
__constant const char VICII_RSEL = 8
|
|
__constant const char VICII_RST8 = $80
|
|
__constant char WALL = 4
|
|
__constant char * const WIN_GFX = (char *)$a700
|
|
__constant char WIN_GFX_CRUNCHED[] = kickasm( uses WIN_GFX) {{ .modify B2() {
|
|
.pc = WIN_GFX "WIN GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_win = LoadPicture("pacman-win.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_win.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}}
|
|
__constant const char YELLOW = 7
|
|
void __start()
|
|
__loadstore volatile char anim_frame_idx
|
|
__constant char bobs_bob_id[NUM_BOBS] = { 0, 0, 0, 0, 0 }
|
|
__constant char bobs_restore[NUM_BOBS*SIZE_BOB_RESTORE*2] = { fill( NUM_BOBS*SIZE_BOB_RESTORE*2, 0) }
|
|
__loadstore volatile char bobs_restore_base
|
|
__constant char bobs_xcol[NUM_BOBS] = { $a, $a, $a, $a, $a }
|
|
__constant char bobs_yfine[NUM_BOBS] = { $2d, $2d, $2d, $2d, $2d }
|
|
__loadstore volatile char bottom_sprites_color
|
|
__loadstore volatile char bottom_sprites_mc
|
|
void byteboozer_decrunch(char * volatile crunched)
|
|
__loadstore char * volatile byteboozer_decrunch::crunched
|
|
__loadstore volatile char canvas_base_hi
|
|
char choose_direction(char open_directions , char ghost_xtile , char ghost_ytile , char target_xtile , char target_ytile)
|
|
number choose_direction::$10
|
|
bool choose_direction::$12
|
|
bool choose_direction::$13
|
|
number choose_direction::$14
|
|
bool choose_direction::$16
|
|
bool choose_direction::$17
|
|
number choose_direction::$18
|
|
char choose_direction::$2
|
|
bool choose_direction::$20
|
|
bool choose_direction::$21
|
|
number choose_direction::$22
|
|
bool choose_direction::$24
|
|
bool choose_direction::$25
|
|
bool choose_direction::$26
|
|
bool choose_direction::$27
|
|
bool choose_direction::$28
|
|
bool choose_direction::$29
|
|
bool choose_direction::$3
|
|
char choose_direction::$4
|
|
bool choose_direction::$5
|
|
char choose_direction::$6
|
|
bool choose_direction::$7
|
|
char choose_direction::$8
|
|
bool choose_direction::$9
|
|
char choose_direction::direction
|
|
char choose_direction::direction#0
|
|
char choose_direction::direction#1
|
|
char choose_direction::direction#10
|
|
char choose_direction::direction#11
|
|
char choose_direction::direction#12
|
|
char choose_direction::direction#2
|
|
char choose_direction::direction#3
|
|
char choose_direction::direction#4
|
|
char choose_direction::direction#5
|
|
char choose_direction::direction#6
|
|
char choose_direction::direction#7
|
|
char choose_direction::direction#8
|
|
char choose_direction::direction#9
|
|
char choose_direction::dist_down
|
|
char choose_direction::dist_down#0
|
|
char choose_direction::dist_down#1
|
|
char choose_direction::dist_left
|
|
char choose_direction::dist_left#0
|
|
char choose_direction::dist_left#1
|
|
char choose_direction::dist_min
|
|
char choose_direction::dist_min#0
|
|
char choose_direction::dist_min#1
|
|
char choose_direction::dist_min#10
|
|
char choose_direction::dist_min#11
|
|
char choose_direction::dist_min#2
|
|
char choose_direction::dist_min#3
|
|
char choose_direction::dist_min#4
|
|
char choose_direction::dist_min#5
|
|
char choose_direction::dist_min#6
|
|
char choose_direction::dist_min#7
|
|
char choose_direction::dist_min#8
|
|
char choose_direction::dist_min#9
|
|
char choose_direction::dist_right
|
|
char choose_direction::dist_right#0
|
|
char choose_direction::dist_right#1
|
|
char choose_direction::dist_up
|
|
char choose_direction::dist_up#0
|
|
char choose_direction::dist_up#1
|
|
char choose_direction::ghost_xtile
|
|
char choose_direction::ghost_xtile#0
|
|
char choose_direction::ghost_xtile#1
|
|
char choose_direction::ghost_xtile#2
|
|
char choose_direction::ghost_xtile#3
|
|
char choose_direction::ghost_xtile#4
|
|
char choose_direction::ghost_ytile
|
|
char choose_direction::ghost_ytile#0
|
|
char choose_direction::ghost_ytile#1
|
|
char choose_direction::ghost_ytile#2
|
|
char choose_direction::ghost_ytile#3
|
|
char choose_direction::ghost_ytile#4
|
|
char choose_direction::open_directions
|
|
char choose_direction::open_directions#0
|
|
char choose_direction::open_directions#1
|
|
char choose_direction::open_directions#10
|
|
char choose_direction::open_directions#11
|
|
char choose_direction::open_directions#12
|
|
char choose_direction::open_directions#13
|
|
char choose_direction::open_directions#2
|
|
char choose_direction::open_directions#3
|
|
char choose_direction::open_directions#4
|
|
char choose_direction::open_directions#5
|
|
char choose_direction::open_directions#6
|
|
char choose_direction::open_directions#7
|
|
char choose_direction::open_directions#8
|
|
char choose_direction::open_directions#9
|
|
char choose_direction::return
|
|
char choose_direction::return#0
|
|
char choose_direction::return#1
|
|
char choose_direction::return#10
|
|
char choose_direction::return#2
|
|
char choose_direction::return#3
|
|
char choose_direction::return#4
|
|
char choose_direction::return#5
|
|
char choose_direction::return#6
|
|
char choose_direction::return#7
|
|
char choose_direction::return#8
|
|
char choose_direction::return#9
|
|
char choose_direction::target_xtile
|
|
char choose_direction::target_xtile#0
|
|
char choose_direction::target_xtile#1
|
|
char choose_direction::target_xtile#2
|
|
char choose_direction::target_xtile#3
|
|
char choose_direction::target_xtile#4
|
|
char choose_direction::target_ytile
|
|
char choose_direction::target_ytile#0
|
|
char choose_direction::target_ytile#1
|
|
char choose_direction::target_ytile#2
|
|
char choose_direction::target_ytile#3
|
|
char choose_direction::target_ytile#4
|
|
char choose_direction::xdiff
|
|
char choose_direction::xdiff#0
|
|
char choose_direction::xdiff#1
|
|
char choose_direction::xdiff#10
|
|
char choose_direction::xdiff#2
|
|
char choose_direction::xdiff#3
|
|
char choose_direction::xdiff#4
|
|
char choose_direction::xdiff#5
|
|
char choose_direction::xdiff#6
|
|
char choose_direction::xdiff#7
|
|
char choose_direction::xdiff#8
|
|
char choose_direction::xdiff#9
|
|
char choose_direction::ydiff
|
|
char choose_direction::ydiff#0
|
|
char choose_direction::ydiff#1
|
|
char choose_direction::ydiff#10
|
|
char choose_direction::ydiff#2
|
|
char choose_direction::ydiff#3
|
|
char choose_direction::ydiff#4
|
|
char choose_direction::ydiff#5
|
|
char choose_direction::ydiff#6
|
|
char choose_direction::ydiff#7
|
|
char choose_direction::ydiff#8
|
|
char choose_direction::ydiff#9
|
|
void done_run()
|
|
bool done_run::$1
|
|
bool done_run::$10
|
|
bool done_run::$12
|
|
bool done_run::$13
|
|
bool done_run::$14
|
|
bool done_run::$2
|
|
bool done_run::$5
|
|
bool done_run::$6
|
|
char done_run::$8
|
|
bool done_run::$9
|
|
char *done_run::gfx
|
|
char *done_run::gfx#0
|
|
char *done_run::gfx#1
|
|
char *done_run::gfx#2
|
|
char *done_run::gfx#3
|
|
char *done_run::gfx#4
|
|
char *done_run::gfx#5
|
|
char *done_run::gfx#6
|
|
char *done_run::gfx#7
|
|
char done_run::i
|
|
char done_run::i#0
|
|
char done_run::i#1
|
|
char done_run::i#2
|
|
char done_run::i#3
|
|
char done_run::i1
|
|
char done_run::i1#0
|
|
char done_run::i1#1
|
|
char done_run::i1#2
|
|
char done_run::i1#3
|
|
char done_run::pixels
|
|
char done_run::pixels#0
|
|
char done_run::xcol
|
|
char done_run::xcol#0
|
|
char done_run::xcol#1
|
|
char done_run::xcol#2
|
|
char done_run::xcol#3
|
|
char done_run::xcol#4
|
|
char done_run::xcol#5
|
|
char done_run::xcol#6
|
|
char done_run::xcol#7
|
|
char done_run::ypos
|
|
char done_run::ypos#0
|
|
char done_run::ypos#1
|
|
char done_run::ypos#2
|
|
char done_run::ypos#3
|
|
char done_run::ypos#4
|
|
__loadstore volatile char frame
|
|
void game_logic()
|
|
bool game_logic::$0
|
|
bool game_logic::$1
|
|
bool game_logic::$10
|
|
bool game_logic::$100
|
|
bool game_logic::$102
|
|
bool game_logic::$104
|
|
bool game_logic::$105
|
|
bool game_logic::$106
|
|
bool game_logic::$107
|
|
bool game_logic::$108
|
|
bool game_logic::$109
|
|
bool game_logic::$11
|
|
bool game_logic::$110
|
|
bool game_logic::$111
|
|
bool game_logic::$115
|
|
bool game_logic::$116
|
|
number game_logic::$117
|
|
number game_logic::$118
|
|
char game_logic::$119
|
|
bool game_logic::$12
|
|
bool game_logic::$120
|
|
bool game_logic::$121
|
|
bool game_logic::$122
|
|
bool game_logic::$123
|
|
bool game_logic::$124
|
|
bool game_logic::$125
|
|
bool game_logic::$126
|
|
bool game_logic::$127
|
|
bool game_logic::$128
|
|
bool game_logic::$129
|
|
bool game_logic::$13
|
|
bool game_logic::$130
|
|
bool game_logic::$131
|
|
bool game_logic::$132
|
|
bool game_logic::$136
|
|
bool game_logic::$137
|
|
number game_logic::$138
|
|
number game_logic::$139
|
|
number game_logic::$14
|
|
char game_logic::$140
|
|
bool game_logic::$141
|
|
bool game_logic::$142
|
|
bool game_logic::$143
|
|
bool game_logic::$144
|
|
bool game_logic::$145
|
|
bool game_logic::$146
|
|
bool game_logic::$147
|
|
bool game_logic::$148
|
|
bool game_logic::$149
|
|
number game_logic::$15
|
|
bool game_logic::$150
|
|
bool game_logic::$151
|
|
bool game_logic::$152
|
|
bool game_logic::$153
|
|
bool game_logic::$157
|
|
bool game_logic::$158
|
|
number game_logic::$159
|
|
number game_logic::$160
|
|
char game_logic::$161
|
|
bool game_logic::$162
|
|
bool game_logic::$163
|
|
bool game_logic::$164
|
|
bool game_logic::$165
|
|
bool game_logic::$166
|
|
bool game_logic::$167
|
|
bool game_logic::$168
|
|
bool game_logic::$169
|
|
number game_logic::$17
|
|
bool game_logic::$170
|
|
bool game_logic::$171
|
|
bool game_logic::$172
|
|
bool game_logic::$173
|
|
bool game_logic::$174
|
|
bool game_logic::$178
|
|
bool game_logic::$179
|
|
number game_logic::$18
|
|
number game_logic::$180
|
|
number game_logic::$181
|
|
char game_logic::$182
|
|
bool game_logic::$183
|
|
bool game_logic::$184
|
|
bool game_logic::$185
|
|
bool game_logic::$186
|
|
bool game_logic::$187
|
|
bool game_logic::$188
|
|
bool game_logic::$189
|
|
char game_logic::$19
|
|
bool game_logic::$190
|
|
bool game_logic::$191
|
|
bool game_logic::$192
|
|
bool game_logic::$193
|
|
bool game_logic::$194
|
|
bool game_logic::$195
|
|
number game_logic::$199
|
|
number game_logic::$2
|
|
number game_logic::$20
|
|
number game_logic::$200
|
|
bool game_logic::$202
|
|
bool game_logic::$203
|
|
char game_logic::$204
|
|
bool game_logic::$205
|
|
bool game_logic::$206
|
|
bool game_logic::$207
|
|
bool game_logic::$208
|
|
bool game_logic::$209
|
|
number game_logic::$21
|
|
char game_logic::$210
|
|
bool game_logic::$211
|
|
bool game_logic::$212
|
|
bool game_logic::$213
|
|
bool game_logic::$214
|
|
bool game_logic::$215
|
|
bool game_logic::$216
|
|
bool game_logic::$217
|
|
bool game_logic::$218
|
|
bool game_logic::$219
|
|
bool game_logic::$22
|
|
bool game_logic::$23
|
|
number game_logic::$25
|
|
number game_logic::$26
|
|
char game_logic::$27
|
|
number game_logic::$28
|
|
number game_logic::$29
|
|
number game_logic::$3
|
|
number game_logic::$31
|
|
number game_logic::$32
|
|
char game_logic::$33
|
|
number game_logic::$34
|
|
number game_logic::$35
|
|
number game_logic::$37
|
|
number game_logic::$38
|
|
char game_logic::$39
|
|
bool game_logic::$4
|
|
number game_logic::$40
|
|
number game_logic::$41
|
|
number game_logic::$43
|
|
number game_logic::$44
|
|
char game_logic::$45
|
|
number game_logic::$46
|
|
number game_logic::$47
|
|
bool game_logic::$48
|
|
bool game_logic::$49
|
|
bool game_logic::$5
|
|
bool game_logic::$50
|
|
bool game_logic::$51
|
|
bool game_logic::$52
|
|
bool game_logic::$53
|
|
bool game_logic::$54
|
|
bool game_logic::$55
|
|
bool game_logic::$56
|
|
bool game_logic::$57
|
|
bool game_logic::$58
|
|
bool game_logic::$6
|
|
bool game_logic::$62
|
|
bool game_logic::$63
|
|
bool game_logic::$64
|
|
number game_logic::$65
|
|
number game_logic::$66
|
|
char *game_logic::$67
|
|
number game_logic::$68
|
|
number game_logic::$69
|
|
bool game_logic::$7
|
|
number game_logic::$70
|
|
char *game_logic::$71
|
|
number game_logic::$72
|
|
bool game_logic::$73
|
|
bool game_logic::$74
|
|
char game_logic::$75
|
|
bool game_logic::$76
|
|
char game_logic::$77
|
|
bool game_logic::$78
|
|
bool game_logic::$79
|
|
bool game_logic::$8
|
|
char game_logic::$80
|
|
bool game_logic::$81
|
|
char game_logic::$82
|
|
bool game_logic::$83
|
|
bool game_logic::$84
|
|
char game_logic::$85
|
|
bool game_logic::$86
|
|
char game_logic::$87
|
|
bool game_logic::$88
|
|
bool game_logic::$89
|
|
bool game_logic::$9
|
|
char game_logic::$90
|
|
bool game_logic::$91
|
|
char game_logic::$92
|
|
bool game_logic::$93
|
|
bool game_logic::$94
|
|
bool game_logic::$95
|
|
bool game_logic::$96
|
|
bool game_logic::$98
|
|
char game_logic::do_reverse
|
|
char game_logic::do_reverse#0
|
|
char game_logic::do_reverse#1
|
|
char game_logic::do_reverse#2
|
|
char game_logic::do_reverse#3
|
|
char game_logic::do_reverse#4
|
|
char game_logic::do_reverse#5
|
|
char game_logic::do_reverse#6
|
|
char game_logic::do_reverse#7
|
|
char game_logic::do_reverse#8
|
|
char game_logic::do_reverse#9
|
|
char game_logic::ghost1_bob_xfine
|
|
char game_logic::ghost1_bob_xfine#0
|
|
char game_logic::ghost1_xtile
|
|
char game_logic::ghost1_xtile#0
|
|
char game_logic::ghost1_xtile#1
|
|
char game_logic::ghost1_xtile#2
|
|
char game_logic::ghost1_xtile#3
|
|
char game_logic::ghost1_xtile#4
|
|
char game_logic::ghost1_xtile#5
|
|
char game_logic::ghost1_ytile
|
|
char game_logic::ghost1_ytile#0
|
|
char game_logic::ghost1_ytile#1
|
|
char game_logic::ghost1_ytile#2
|
|
char game_logic::ghost1_ytile#3
|
|
char game_logic::ghost1_ytile#4
|
|
char game_logic::ghost1_ytile#5
|
|
char game_logic::ghost2_bob_xfine
|
|
char game_logic::ghost2_bob_xfine#0
|
|
char game_logic::ghost2_xtile
|
|
char game_logic::ghost2_xtile#0
|
|
char game_logic::ghost2_xtile#1
|
|
char game_logic::ghost2_xtile#2
|
|
char game_logic::ghost2_xtile#3
|
|
char game_logic::ghost2_xtile#4
|
|
char game_logic::ghost2_xtile#5
|
|
char game_logic::ghost2_ytile
|
|
char game_logic::ghost2_ytile#0
|
|
char game_logic::ghost2_ytile#1
|
|
char game_logic::ghost2_ytile#2
|
|
char game_logic::ghost2_ytile#3
|
|
char game_logic::ghost2_ytile#4
|
|
char game_logic::ghost2_ytile#5
|
|
char game_logic::ghost3_bob_xfine
|
|
char game_logic::ghost3_bob_xfine#0
|
|
char game_logic::ghost3_xtile
|
|
char game_logic::ghost3_xtile#0
|
|
char game_logic::ghost3_xtile#1
|
|
char game_logic::ghost3_xtile#2
|
|
char game_logic::ghost3_xtile#3
|
|
char game_logic::ghost3_xtile#4
|
|
char game_logic::ghost3_xtile#5
|
|
char game_logic::ghost3_ytile
|
|
char game_logic::ghost3_ytile#0
|
|
char game_logic::ghost3_ytile#1
|
|
char game_logic::ghost3_ytile#2
|
|
char game_logic::ghost3_ytile#3
|
|
char game_logic::ghost3_ytile#4
|
|
char game_logic::ghost3_ytile#5
|
|
char game_logic::ghost4_bob_xfine
|
|
char game_logic::ghost4_bob_xfine#0
|
|
char game_logic::ghost4_xtile
|
|
char game_logic::ghost4_xtile#0
|
|
char game_logic::ghost4_xtile#1
|
|
char game_logic::ghost4_xtile#2
|
|
char game_logic::ghost4_xtile#3
|
|
char game_logic::ghost4_xtile#4
|
|
char game_logic::ghost4_xtile#5
|
|
char game_logic::ghost4_ytile
|
|
char game_logic::ghost4_ytile#0
|
|
char game_logic::ghost4_ytile#1
|
|
char game_logic::ghost4_ytile#2
|
|
char game_logic::ghost4_ytile#3
|
|
char game_logic::ghost4_ytile#4
|
|
char game_logic::ghost4_ytile#5
|
|
char game_logic::ghost_frame_idx
|
|
char game_logic::ghost_frame_idx#0
|
|
char game_logic::ghost_frame_idx#1
|
|
char game_logic::ghost_frame_idx#2
|
|
char game_logic::ghost_frame_idx#3
|
|
char game_logic::joy_directions
|
|
char game_logic::joy_directions#0
|
|
char game_logic::joy_directions#1
|
|
char game_logic::new_direction
|
|
char game_logic::new_direction#0
|
|
char game_logic::new_direction#1
|
|
char game_logic::open_directions
|
|
char game_logic::open_directions#0
|
|
char game_logic::open_directions#1
|
|
char game_logic::open_directions#2
|
|
char game_logic::open_directions#3
|
|
char game_logic::open_directions#4
|
|
char game_logic::open_directions#5
|
|
char game_logic::open_directions#6
|
|
char game_logic::open_directions1
|
|
char game_logic::open_directions1#0
|
|
char game_logic::open_directions1#1
|
|
char game_logic::open_directions1#2
|
|
char game_logic::open_directions1#3
|
|
char game_logic::open_directions1#4
|
|
char game_logic::open_directions1#5
|
|
char game_logic::open_directions1#6
|
|
char game_logic::open_directions2
|
|
char game_logic::open_directions2#0
|
|
char game_logic::open_directions2#1
|
|
char game_logic::open_directions2#2
|
|
char game_logic::open_directions2#3
|
|
char game_logic::open_directions2#4
|
|
char game_logic::open_directions2#5
|
|
char game_logic::open_directions2#6
|
|
char game_logic::open_directions3
|
|
char game_logic::open_directions3#0
|
|
char game_logic::open_directions3#1
|
|
char game_logic::open_directions3#2
|
|
char game_logic::open_directions3#3
|
|
char game_logic::open_directions3#4
|
|
char game_logic::open_directions3#5
|
|
char game_logic::open_directions3#6
|
|
char game_logic::open_directions4
|
|
char game_logic::open_directions4#0
|
|
char game_logic::open_directions4#1
|
|
char game_logic::open_directions4#2
|
|
char game_logic::open_directions4#3
|
|
char game_logic::pacman_bob_xfine
|
|
char game_logic::pacman_bob_xfine#0
|
|
char game_logic::pacman_xtile
|
|
char game_logic::pacman_xtile#0
|
|
char game_logic::pacman_xtile#1
|
|
char game_logic::pacman_xtile#2
|
|
char game_logic::pacman_xtile#3
|
|
char game_logic::pacman_xtile1
|
|
char game_logic::pacman_xtile1#0
|
|
char game_logic::pacman_ytile
|
|
char game_logic::pacman_ytile#0
|
|
char game_logic::pacman_ytile#1
|
|
char game_logic::pacman_ytile#2
|
|
char game_logic::pacman_ytile#3
|
|
char game_logic::pacman_ytile1
|
|
char game_logic::pacman_ytile1#0
|
|
char game_logic::target_xtile
|
|
char game_logic::target_xtile#0
|
|
char game_logic::target_xtile#1
|
|
char game_logic::target_xtile#2
|
|
char game_logic::target_xtile#3
|
|
char game_logic::target_xtile1
|
|
char game_logic::target_xtile1#0
|
|
char game_logic::target_xtile1#1
|
|
char game_logic::target_xtile1#2
|
|
char game_logic::target_xtile1#3
|
|
char game_logic::target_xtile2
|
|
char game_logic::target_xtile2#0
|
|
char game_logic::target_xtile2#1
|
|
char game_logic::target_xtile2#2
|
|
char game_logic::target_xtile2#3
|
|
char game_logic::target_xtile3
|
|
char game_logic::target_xtile3#0
|
|
char game_logic::target_xtile3#1
|
|
char game_logic::target_xtile3#2
|
|
char game_logic::target_xtile3#3
|
|
char game_logic::target_ytile
|
|
char game_logic::target_ytile#0
|
|
char game_logic::target_ytile#1
|
|
char game_logic::target_ytile#2
|
|
char game_logic::target_ytile#3
|
|
char game_logic::target_ytile1
|
|
char game_logic::target_ytile1#0
|
|
char game_logic::target_ytile1#1
|
|
char game_logic::target_ytile1#2
|
|
char game_logic::target_ytile1#3
|
|
char game_logic::target_ytile2
|
|
char game_logic::target_ytile2#0
|
|
char game_logic::target_ytile2#1
|
|
char game_logic::target_ytile2#2
|
|
char game_logic::target_ytile2#3
|
|
char game_logic::target_ytile3
|
|
char game_logic::target_ytile3#0
|
|
char game_logic::target_ytile3#1
|
|
char game_logic::target_ytile3#2
|
|
char game_logic::target_ytile3#3
|
|
char game_logic::tile_id
|
|
char game_logic::tile_id#0
|
|
char game_logic::tile_id#1
|
|
char *game_logic::ytiles
|
|
char *game_logic::ytiles#0
|
|
char *game_logic::ytiles#1
|
|
char *game_logic::ytiles#2
|
|
char *game_logic::ytiles#3
|
|
__loadstore volatile char game_logic_substep
|
|
__loadstore volatile char game_playable
|
|
void gameplay_run()
|
|
bool gameplay_run::$10
|
|
bool gameplay_run::$11
|
|
bool gameplay_run::$12
|
|
bool gameplay_run::$13
|
|
bool gameplay_run::$14
|
|
bool gameplay_run::$15
|
|
unsigned int gameplay_run::$4
|
|
bool gameplay_run::$8
|
|
bool gameplay_run::$9
|
|
char gameplay_run::i
|
|
char gameplay_run::i#0
|
|
char gameplay_run::i#1
|
|
char gameplay_run::i#2
|
|
char gameplay_run::i#3
|
|
char gameplay_run::i1
|
|
char gameplay_run::i1#0
|
|
char gameplay_run::i1#1
|
|
char gameplay_run::i1#2
|
|
char gameplay_run::i1#3
|
|
char gameplay_run::i2
|
|
char gameplay_run::i2#0
|
|
char gameplay_run::i2#1
|
|
char gameplay_run::i2#2
|
|
char gameplay_run::i2#3
|
|
__loadstore volatile char ghost1_direction
|
|
__loadstore volatile char ghost1_respawn
|
|
__loadstore volatile char ghost1_reverse
|
|
__loadstore volatile char ghost1_substep
|
|
__loadstore volatile char ghost1_xfine
|
|
__loadstore volatile char ghost1_yfine
|
|
__loadstore volatile char ghost2_direction
|
|
__loadstore volatile char ghost2_respawn
|
|
__loadstore volatile char ghost2_reverse
|
|
__loadstore volatile char ghost2_substep
|
|
__loadstore volatile char ghost2_xfine
|
|
__loadstore volatile char ghost2_yfine
|
|
__loadstore volatile char ghost3_direction
|
|
__loadstore volatile char ghost3_respawn
|
|
__loadstore volatile char ghost3_reverse
|
|
__loadstore volatile char ghost3_substep
|
|
__loadstore volatile char ghost3_xfine
|
|
__loadstore volatile char ghost3_yfine
|
|
__loadstore volatile char ghost4_direction
|
|
__loadstore volatile char ghost4_respawn
|
|
__loadstore volatile char ghost4_reverse
|
|
__loadstore volatile char ghost4_substep
|
|
__loadstore volatile char ghost4_xfine
|
|
__loadstore volatile char ghost4_yfine
|
|
__constant char ghost_frames[] = { 0, 0, 0, 0, $3c, $40, $3c, $40, $34, $38, $34, $38, 0, 0, 0, 0, $2c, $30, $2c, $30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $24, $28, $24, $28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $5c, $60, $5c, $60, $54, $58, $54, $58, 0, 0, 0, 0, $4c, $50, $4c, $50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $44, $48, $44, $48 }
|
|
__loadstore volatile char ghosts_mode
|
|
__loadstore volatile char ghosts_mode_count
|
|
void init_bobs_restore()
|
|
bool init_bobs_restore::$0
|
|
bool init_bobs_restore::$1
|
|
char init_bobs_restore::$2
|
|
char init_bobs_restore::$3
|
|
char init_bobs_restore::$4
|
|
char init_bobs_restore::$5
|
|
__constant char *init_bobs_restore::CANVAS_HIDDEN = (char *)$ea00
|
|
char init_bobs_restore::bob
|
|
char init_bobs_restore::bob#0
|
|
char init_bobs_restore::bob#1
|
|
char init_bobs_restore::bob#2
|
|
char init_bobs_restore::bob#3
|
|
char init_bobs_restore::bob#4
|
|
char init_bobs_restore::bob#5
|
|
char init_bobs_restore::bob#6
|
|
char *init_bobs_restore::bob_restore
|
|
char *init_bobs_restore::bob_restore#0
|
|
char *init_bobs_restore::bob_restore#1
|
|
char *init_bobs_restore::bob_restore#2
|
|
char *init_bobs_restore::bob_restore#3
|
|
char *init_bobs_restore::bob_restore#4
|
|
char *init_bobs_restore::bob_restore#5
|
|
char *init_bobs_restore::bob_restore#6
|
|
char init_bobs_restore::i
|
|
char init_bobs_restore::i#0
|
|
char init_bobs_restore::i#1
|
|
char init_bobs_restore::i#2
|
|
char init_bobs_restore::i#3
|
|
void init_level_tile_directions()
|
|
bool init_level_tile_directions::$0
|
|
bool init_level_tile_directions::$1
|
|
number init_level_tile_directions::$10
|
|
char init_level_tile_directions::$11
|
|
bool init_level_tile_directions::$12
|
|
bool init_level_tile_directions::$13
|
|
number init_level_tile_directions::$14
|
|
char init_level_tile_directions::$15
|
|
bool init_level_tile_directions::$16
|
|
bool init_level_tile_directions::$17
|
|
number init_level_tile_directions::$2
|
|
char init_level_tile_directions::$3
|
|
bool init_level_tile_directions::$4
|
|
bool init_level_tile_directions::$5
|
|
number init_level_tile_directions::$6
|
|
char init_level_tile_directions::$7
|
|
bool init_level_tile_directions::$8
|
|
bool init_level_tile_directions::$9
|
|
char *init_level_tile_directions::directions
|
|
char *init_level_tile_directions::directions#0
|
|
char *init_level_tile_directions::directions#1
|
|
char *init_level_tile_directions::directions#10
|
|
char *init_level_tile_directions::directions#11
|
|
char *init_level_tile_directions::directions#12
|
|
char *init_level_tile_directions::directions#13
|
|
char *init_level_tile_directions::directions#14
|
|
char *init_level_tile_directions::directions#15
|
|
char *init_level_tile_directions::directions#16
|
|
char *init_level_tile_directions::directions#17
|
|
char *init_level_tile_directions::directions#18
|
|
char *init_level_tile_directions::directions#2
|
|
char *init_level_tile_directions::directions#3
|
|
char *init_level_tile_directions::directions#4
|
|
char *init_level_tile_directions::directions#5
|
|
char *init_level_tile_directions::directions#6
|
|
char *init_level_tile_directions::directions#7
|
|
char *init_level_tile_directions::directions#8
|
|
char *init_level_tile_directions::directions#9
|
|
char init_level_tile_directions::open_directions
|
|
char init_level_tile_directions::open_directions#0
|
|
char init_level_tile_directions::open_directions#1
|
|
char init_level_tile_directions::open_directions#10
|
|
char init_level_tile_directions::open_directions#11
|
|
char init_level_tile_directions::open_directions#12
|
|
char init_level_tile_directions::open_directions#13
|
|
char init_level_tile_directions::open_directions#14
|
|
char init_level_tile_directions::open_directions#15
|
|
char init_level_tile_directions::open_directions#16
|
|
char init_level_tile_directions::open_directions#2
|
|
char init_level_tile_directions::open_directions#3
|
|
char init_level_tile_directions::open_directions#4
|
|
char init_level_tile_directions::open_directions#5
|
|
char init_level_tile_directions::open_directions#6
|
|
char init_level_tile_directions::open_directions#7
|
|
char init_level_tile_directions::open_directions#8
|
|
char init_level_tile_directions::open_directions#9
|
|
char init_level_tile_directions::xtile
|
|
char init_level_tile_directions::xtile#0
|
|
char init_level_tile_directions::xtile#1
|
|
char init_level_tile_directions::xtile#10
|
|
char init_level_tile_directions::xtile#11
|
|
char init_level_tile_directions::xtile#12
|
|
char init_level_tile_directions::xtile#13
|
|
char init_level_tile_directions::xtile#14
|
|
char init_level_tile_directions::xtile#15
|
|
char init_level_tile_directions::xtile#2
|
|
char init_level_tile_directions::xtile#3
|
|
char init_level_tile_directions::xtile#4
|
|
char init_level_tile_directions::xtile#5
|
|
char init_level_tile_directions::xtile#6
|
|
char init_level_tile_directions::xtile#7
|
|
char init_level_tile_directions::xtile#8
|
|
char init_level_tile_directions::xtile#9
|
|
char init_level_tile_directions::ytile
|
|
char init_level_tile_directions::ytile#0
|
|
char init_level_tile_directions::ytile#1
|
|
char init_level_tile_directions::ytile#10
|
|
char init_level_tile_directions::ytile#11
|
|
char init_level_tile_directions::ytile#12
|
|
char init_level_tile_directions::ytile#13
|
|
char init_level_tile_directions::ytile#14
|
|
char init_level_tile_directions::ytile#15
|
|
char init_level_tile_directions::ytile#16
|
|
char init_level_tile_directions::ytile#17
|
|
char init_level_tile_directions::ytile#18
|
|
char init_level_tile_directions::ytile#2
|
|
char init_level_tile_directions::ytile#3
|
|
char init_level_tile_directions::ytile#4
|
|
char init_level_tile_directions::ytile#5
|
|
char init_level_tile_directions::ytile#6
|
|
char init_level_tile_directions::ytile#7
|
|
char init_level_tile_directions::ytile#8
|
|
char init_level_tile_directions::ytile#9
|
|
void init_render_index()
|
|
bool init_render_index::$0
|
|
bool init_render_index::$1
|
|
unsigned int init_render_index::$10
|
|
unsigned int init_render_index::$11
|
|
bool init_render_index::$2
|
|
bool init_render_index::$3
|
|
char init_render_index::$5
|
|
char init_render_index::$6
|
|
bool init_render_index::$7
|
|
bool init_render_index::$8
|
|
char init_render_index::$9
|
|
char *init_render_index::canvas
|
|
char *init_render_index::canvas#0
|
|
char *init_render_index::canvas_xcol
|
|
char *init_render_index::canvas_xcol#0
|
|
char *init_render_index::canvas_xcol#1
|
|
char *init_render_index::canvas_xcol#2
|
|
char *init_render_index::canvas_xcol#3
|
|
char *init_render_index::canvas_xcol#4
|
|
char *init_render_index::render_index
|
|
char *init_render_index::render_index#0
|
|
char *init_render_index::render_index#1
|
|
char *init_render_index::render_index#10
|
|
char *init_render_index::render_index#2
|
|
char *init_render_index::render_index#3
|
|
char *init_render_index::render_index#4
|
|
char *init_render_index::render_index#5
|
|
char *init_render_index::render_index#6
|
|
char *init_render_index::render_index#7
|
|
char *init_render_index::render_index#8
|
|
char *init_render_index::render_index#9
|
|
char *init_render_index::render_index_xcol
|
|
char *init_render_index::render_index_xcol#0
|
|
char *init_render_index::render_index_xcol#1
|
|
char *init_render_index::render_index_xcol#2
|
|
char *init_render_index::render_index_xcol#3
|
|
char *init_render_index::render_index_xcol#4
|
|
char *init_render_index::render_index_xcol#5
|
|
unsigned int *init_render_index::render_ypos_table
|
|
unsigned int *init_render_index::render_ypos_table#0
|
|
unsigned int *init_render_index::render_ypos_table#1
|
|
unsigned int *init_render_index::render_ypos_table#2
|
|
unsigned int *init_render_index::render_ypos_table#3
|
|
unsigned int *init_render_index::render_ypos_table#4
|
|
unsigned int *init_render_index::render_ypos_table#5
|
|
unsigned int *init_render_index::render_ypos_table#6
|
|
char init_render_index::x_col
|
|
char init_render_index::x_col#0
|
|
char init_render_index::x_col#1
|
|
char init_render_index::x_col#10
|
|
char init_render_index::x_col#2
|
|
char init_render_index::x_col#3
|
|
char init_render_index::x_col#4
|
|
char init_render_index::x_col#5
|
|
char init_render_index::x_col#6
|
|
char init_render_index::x_col#7
|
|
char init_render_index::x_col#8
|
|
char init_render_index::x_col#9
|
|
char init_render_index::y_pos
|
|
char init_render_index::y_pos#0
|
|
char init_render_index::y_pos#1
|
|
char init_render_index::y_pos#2
|
|
char init_render_index::y_pos#3
|
|
char init_render_index::y_pos#4
|
|
char init_render_index::y_pos#5
|
|
char init_render_index::ypos_inc_offset
|
|
char init_render_index::ypos_inc_offset#0
|
|
char init_render_index::ypos_inc_offset#1
|
|
char init_render_index::ypos_inc_offset#2
|
|
char init_render_index::ypos_inc_offset#3
|
|
char init_render_index::ypos_inc_offset#4
|
|
char init_render_index::ypos_inc_offset#5
|
|
char init_render_index::ypos_inc_offset#6
|
|
char init_render_index::ypos_inc_offset#7
|
|
char init_render_index::ypos_inc_offset#8
|
|
void init_sprite_pointers()
|
|
bool init_sprite_pointers::$0
|
|
bool init_sprite_pointers::$1
|
|
char init_sprite_pointers::$2
|
|
__constant const char init_sprite_pointers::SPRITE_ID_0 = (char)SPRITES_1&$3fff/$40
|
|
char init_sprite_pointers::screen
|
|
char init_sprite_pointers::screen#0
|
|
char init_sprite_pointers::screen#1
|
|
char init_sprite_pointers::screen#2
|
|
char init_sprite_pointers::screen#3
|
|
char init_sprite_pointers::screen#4
|
|
char init_sprite_pointers::screen#5
|
|
char init_sprite_pointers::screen#6
|
|
char init_sprite_pointers::sprite
|
|
char init_sprite_pointers::sprite#0
|
|
char init_sprite_pointers::sprite#1
|
|
char init_sprite_pointers::sprite#2
|
|
char init_sprite_pointers::sprite#3
|
|
char init_sprite_pointers::sprite_id
|
|
char init_sprite_pointers::sprite_id#0
|
|
__constant char init_sprite_pointers::sprites_id[] = { 0, $70, $60, $50, $40, $30, $20, $10 }
|
|
char *init_sprite_pointers::sprites_ptr_1
|
|
char *init_sprite_pointers::sprites_ptr_1#0
|
|
char *init_sprite_pointers::sprites_ptr_1#1
|
|
char *init_sprite_pointers::sprites_ptr_1#2
|
|
char *init_sprite_pointers::sprites_ptr_1#3
|
|
char *init_sprite_pointers::sprites_ptr_1#4
|
|
char *init_sprite_pointers::sprites_ptr_1#5
|
|
char *init_sprite_pointers::sprites_ptr_1#6
|
|
char *init_sprite_pointers::sprites_ptr_2
|
|
char *init_sprite_pointers::sprites_ptr_2#0
|
|
char *init_sprite_pointers::sprites_ptr_2#1
|
|
char *init_sprite_pointers::sprites_ptr_2#2
|
|
char *init_sprite_pointers::sprites_ptr_2#3
|
|
char *init_sprite_pointers::sprites_ptr_2#4
|
|
char *init_sprite_pointers::sprites_ptr_2#5
|
|
char *init_sprite_pointers::sprites_ptr_2#6
|
|
__interrupt(hardware_clobber) void irq_screen_top()
|
|
char irq_screen_top::$0
|
|
number irq_screen_top::$1
|
|
number irq_screen_top::$2
|
|
bool irq_screen_top::$3
|
|
char irq_screen_top::$4
|
|
char irq_screen_top::$5
|
|
bool irq_screen_top::$8
|
|
number irq_screen_top::toD0181_$0
|
|
number irq_screen_top::toD0181_$1
|
|
char irq_screen_top::toD0181_$2
|
|
char irq_screen_top::toD0181_$3
|
|
number irq_screen_top::toD0181_$4
|
|
number irq_screen_top::toD0181_$5
|
|
number irq_screen_top::toD0181_$6
|
|
unsigned int irq_screen_top::toD0181_$7
|
|
char *irq_screen_top::toD0181_gfx
|
|
char *irq_screen_top::toD0181_gfx#0
|
|
char *irq_screen_top::toD0181_gfx#1
|
|
char irq_screen_top::toD0181_return
|
|
char irq_screen_top::toD0181_return#0
|
|
char irq_screen_top::toD0181_return#1
|
|
char irq_screen_top::toD0181_return#2
|
|
char irq_screen_top::toD0181_return#3
|
|
char *irq_screen_top::toD0181_screen
|
|
char *irq_screen_top::toD0181_screen#0
|
|
char *irq_screen_top::toD0181_screen#1
|
|
char irq_screen_top::toDd001_$0
|
|
number irq_screen_top::toDd001_$1
|
|
number irq_screen_top::toDd001_$2
|
|
char *irq_screen_top::toDd001_gfx
|
|
char *irq_screen_top::toDd001_gfx#0
|
|
char *irq_screen_top::toDd001_gfx#1
|
|
char irq_screen_top::toDd001_return
|
|
char irq_screen_top::toDd001_return#0
|
|
char irq_screen_top::toDd001_return#1
|
|
char irq_screen_top::toDd001_return#2
|
|
char irq_screen_top::toDd001_return#3
|
|
char irq_screen_top::toDd002_$0
|
|
number irq_screen_top::toDd002_$1
|
|
number irq_screen_top::toDd002_$2
|
|
char *irq_screen_top::toDd002_gfx
|
|
char *irq_screen_top::toDd002_gfx#0
|
|
char *irq_screen_top::toDd002_gfx#1
|
|
char irq_screen_top::toDd002_return
|
|
char irq_screen_top::toDd002_return#0
|
|
char irq_screen_top::toDd002_return#1
|
|
char irq_screen_top::toDd002_return#2
|
|
char irq_screen_top::toDd002_return#3
|
|
char joyfire()
|
|
number joyfire::$0
|
|
bool joyfire::$1
|
|
char joyfire::return
|
|
char joyfire::return#0
|
|
char joyfire::return#1
|
|
char joyfire::return#2
|
|
char joyfire::return#3
|
|
char joyfire::return#4
|
|
char joyfire::return#5
|
|
char joyfire::return#6
|
|
char joyfire::return#7
|
|
void joyinit()
|
|
__loadstore char * volatile left_canvas
|
|
__loadstore char * volatile left_render_index_xcol
|
|
__loadstore volatile char left_ypos_inc_offset
|
|
unsigned int level_show()
|
|
bool level_show::$0
|
|
bool level_show::$1
|
|
bool level_show::$2
|
|
bool level_show::$3
|
|
bool level_show::$4
|
|
bool level_show::$5
|
|
unsigned int level_show::count
|
|
unsigned int level_show::count#0
|
|
unsigned int level_show::count#1
|
|
unsigned int level_show::count#10
|
|
unsigned int level_show::count#11
|
|
unsigned int level_show::count#12
|
|
unsigned int level_show::count#13
|
|
unsigned int level_show::count#2
|
|
unsigned int level_show::count#3
|
|
unsigned int level_show::count#4
|
|
unsigned int level_show::count#5
|
|
unsigned int level_show::count#6
|
|
unsigned int level_show::count#7
|
|
unsigned int level_show::count#8
|
|
unsigned int level_show::count#9
|
|
char *level_show::level
|
|
char *level_show::level#0
|
|
char *level_show::level#1
|
|
char *level_show::level#10
|
|
char *level_show::level#11
|
|
char *level_show::level#2
|
|
char *level_show::level#3
|
|
char *level_show::level#4
|
|
char *level_show::level#5
|
|
char *level_show::level#6
|
|
char *level_show::level#7
|
|
char *level_show::level#8
|
|
char *level_show::level#9
|
|
unsigned int level_show::return
|
|
unsigned int level_show::return#0
|
|
unsigned int level_show::return#1
|
|
unsigned int level_show::return#2
|
|
unsigned int level_show::return#3
|
|
unsigned int level_show::return#4
|
|
char level_show::tile_left
|
|
char level_show::tile_left#0
|
|
char level_show::tile_left#1
|
|
char level_show::tile_left#2
|
|
char level_show::tile_left#3
|
|
char level_show::tile_left#4
|
|
char level_show::tile_right
|
|
char level_show::tile_right#0
|
|
char level_show::tile_right#1
|
|
char level_show::tile_right#2
|
|
char level_show::xcol
|
|
char level_show::xcol#0
|
|
char level_show::xcol#1
|
|
char level_show::xcol#2
|
|
char level_show::xcol#3
|
|
char level_show::xcol#4
|
|
char level_show::xcol#5
|
|
char level_show::xcol#6
|
|
char level_show::xcol#7
|
|
char level_show::xcol#8
|
|
char level_show::xtile
|
|
char level_show::xtile#0
|
|
char level_show::xtile#1
|
|
char level_show::xtile#2
|
|
char level_show::xtile#3
|
|
char level_show::xtile#4
|
|
char level_show::xtile#5
|
|
char level_show::xtile#6
|
|
char level_show::xtile#7
|
|
char level_show::xtile#8
|
|
char level_show::xtile#9
|
|
char level_show::ytile
|
|
char level_show::ytile#0
|
|
char level_show::ytile#1
|
|
char level_show::ytile#10
|
|
char level_show::ytile#11
|
|
char level_show::ytile#2
|
|
char level_show::ytile#3
|
|
char level_show::ytile#4
|
|
char level_show::ytile#5
|
|
char level_show::ytile#6
|
|
char level_show::ytile#7
|
|
char level_show::ytile#8
|
|
char level_show::ytile#9
|
|
char level_tile_directions(char xtile , char ytile)
|
|
bool level_tile_directions::$0
|
|
bool level_tile_directions::$1
|
|
bool level_tile_directions::$2
|
|
bool level_tile_directions::$3
|
|
char level_tile_directions::$5
|
|
char level_tile_directions::return
|
|
char level_tile_directions::return#0
|
|
char level_tile_directions::return#1
|
|
char level_tile_directions::return#10
|
|
char level_tile_directions::return#11
|
|
char level_tile_directions::return#12
|
|
char level_tile_directions::return#13
|
|
char level_tile_directions::return#2
|
|
char level_tile_directions::return#3
|
|
char level_tile_directions::return#4
|
|
char level_tile_directions::return#5
|
|
char level_tile_directions::return#6
|
|
char level_tile_directions::return#7
|
|
char level_tile_directions::return#8
|
|
char level_tile_directions::return#9
|
|
char level_tile_directions::xtile
|
|
char level_tile_directions::xtile#0
|
|
char level_tile_directions::xtile#1
|
|
char level_tile_directions::xtile#2
|
|
char level_tile_directions::xtile#3
|
|
char level_tile_directions::xtile#4
|
|
char level_tile_directions::xtile#5
|
|
char level_tile_directions::xtile#6
|
|
char level_tile_directions::ytile
|
|
char level_tile_directions::ytile#0
|
|
char level_tile_directions::ytile#1
|
|
char level_tile_directions::ytile#2
|
|
char level_tile_directions::ytile#3
|
|
char level_tile_directions::ytile#4
|
|
char level_tile_directions::ytile#5
|
|
char level_tile_directions::ytile#6
|
|
char *level_tile_directions::ytiles
|
|
char *level_tile_directions::ytiles#0
|
|
char level_tile_get(char xtile , char ytile)
|
|
bool level_tile_get::$0
|
|
bool level_tile_get::$1
|
|
bool level_tile_get::$2
|
|
bool level_tile_get::$3
|
|
char level_tile_get::$5
|
|
char level_tile_get::return
|
|
char level_tile_get::return#0
|
|
char level_tile_get::return#1
|
|
char level_tile_get::return#10
|
|
char level_tile_get::return#11
|
|
char level_tile_get::return#2
|
|
char level_tile_get::return#3
|
|
char level_tile_get::return#4
|
|
char level_tile_get::return#5
|
|
char level_tile_get::return#6
|
|
char level_tile_get::return#7
|
|
char level_tile_get::return#8
|
|
char level_tile_get::return#9
|
|
char level_tile_get::xtile
|
|
char level_tile_get::xtile#0
|
|
char level_tile_get::xtile#1
|
|
char level_tile_get::xtile#2
|
|
char level_tile_get::xtile#3
|
|
char level_tile_get::xtile#4
|
|
char level_tile_get::xtile#5
|
|
char level_tile_get::ytile
|
|
char level_tile_get::ytile#0
|
|
char level_tile_get::ytile#1
|
|
char level_tile_get::ytile#2
|
|
char level_tile_get::ytile#3
|
|
char level_tile_get::ytile#4
|
|
char level_tile_get::ytile#5
|
|
char *level_tile_get::ytiles
|
|
char *level_tile_get::ytiles#0
|
|
__loadstore volatile char logic_tile_left_idx
|
|
__loadstore volatile char * volatile logic_tile_ptr
|
|
__loadstore volatile char logic_tile_right_idx
|
|
__loadstore volatile char logic_tile_xcol
|
|
__loadstore volatile char logic_tile_yfine
|
|
void main()
|
|
void * memcpy(void *destination , void *source , unsigned int num)
|
|
bool memcpy::$1
|
|
char *memcpy::$2
|
|
void *memcpy::destination
|
|
void *memcpy::destination#0
|
|
void *memcpy::destination#1
|
|
void *memcpy::destination#2
|
|
void *memcpy::destination#3
|
|
void *memcpy::destination#4
|
|
char *memcpy::dst
|
|
char *memcpy::dst#0
|
|
char *memcpy::dst#1
|
|
char *memcpy::dst#2
|
|
char *memcpy::dst#3
|
|
unsigned int memcpy::num
|
|
unsigned int memcpy::num#0
|
|
unsigned int memcpy::num#1
|
|
void *memcpy::return
|
|
void *memcpy::return#0
|
|
void *memcpy::return#1
|
|
void *memcpy::return#2
|
|
void *memcpy::return#3
|
|
void *memcpy::source
|
|
void *memcpy::source#0
|
|
void *memcpy::source#1
|
|
char *memcpy::src
|
|
char *memcpy::src#0
|
|
char *memcpy::src#1
|
|
char *memcpy::src#2
|
|
char *memcpy::src#3
|
|
char *memcpy::src_end
|
|
char *memcpy::src_end#0
|
|
char *memcpy::src_end#1
|
|
char *memcpy::src_end#2
|
|
void * memset(void *str , char c , unsigned int num)
|
|
bool memset::$0
|
|
bool memset::$1
|
|
bool memset::$3
|
|
char *memset::$4
|
|
char memset::c
|
|
char memset::c#0
|
|
char memset::c#1
|
|
char memset::c#2
|
|
char memset::c#3
|
|
char memset::c#4
|
|
char memset::c#5
|
|
char memset::c#6
|
|
char memset::c#7
|
|
char memset::c#8
|
|
char *memset::dst
|
|
char *memset::dst#0
|
|
char *memset::dst#1
|
|
char *memset::dst#2
|
|
char *memset::dst#3
|
|
char *memset::end
|
|
char *memset::end#0
|
|
char *memset::end#1
|
|
char *memset::end#2
|
|
unsigned int memset::num
|
|
unsigned int memset::num#0
|
|
unsigned int memset::num#1
|
|
unsigned int memset::num#2
|
|
unsigned int memset::num#3
|
|
unsigned int memset::num#4
|
|
unsigned int memset::num#5
|
|
unsigned int memset::num#6
|
|
void *memset::return
|
|
void *memset::return#0
|
|
void *memset::return#1
|
|
void *memset::return#2
|
|
void *memset::return#3
|
|
void *memset::return#4
|
|
void *memset::return#5
|
|
void *memset::return#6
|
|
void *memset::return#7
|
|
void *memset::str
|
|
void *memset::str#0
|
|
void *memset::str#1
|
|
void *memset::str#2
|
|
void *memset::str#3
|
|
void *memset::str#4
|
|
void *memset::str#5
|
|
void *memset::str#6
|
|
void *memset::str#7
|
|
void *memset::str#8
|
|
void *memset::str#9
|
|
void merge_code(char *dest_code , char *raster_code , char *logic_code)
|
|
bool merge_code::$0
|
|
bool merge_code::$1
|
|
bool merge_code::$10
|
|
bool merge_code::$11
|
|
bool merge_code::$12
|
|
bool merge_code::$13
|
|
bool merge_code::$14
|
|
bool merge_code::$15
|
|
bool merge_code::$2
|
|
bool merge_code::$3
|
|
bool merge_code::$4
|
|
number merge_code::$5
|
|
bool merge_code::$6
|
|
bool merge_code::$7
|
|
bool merge_code::$8
|
|
bool merge_code::$9
|
|
__constant const char merge_code::LOGIC_END = $ff
|
|
__constant const char merge_code::LOGIC_EXIT = 0
|
|
__constant const char merge_code::RASTER_END = $ff
|
|
__constant const char merge_code::RASTER_EXIT = 0
|
|
char merge_code::cycle_budget
|
|
char merge_code::cycle_budget#0
|
|
char merge_code::cycle_budget#1
|
|
char merge_code::cycle_budget#10
|
|
char merge_code::cycle_budget#11
|
|
char merge_code::cycle_budget#12
|
|
char merge_code::cycle_budget#13
|
|
char merge_code::cycle_budget#2
|
|
char merge_code::cycle_budget#3
|
|
char merge_code::cycle_budget#4
|
|
char merge_code::cycle_budget#5
|
|
char merge_code::cycle_budget#6
|
|
char merge_code::cycle_budget#7
|
|
char merge_code::cycle_budget#8
|
|
char merge_code::cycle_budget#9
|
|
char *merge_code::dest_code
|
|
char *merge_code::dest_code#0
|
|
char *merge_code::dest_code#1
|
|
char *merge_code::dest_code#10
|
|
char *merge_code::dest_code#11
|
|
char *merge_code::dest_code#12
|
|
char *merge_code::dest_code#13
|
|
char *merge_code::dest_code#14
|
|
char *merge_code::dest_code#15
|
|
char *merge_code::dest_code#16
|
|
char *merge_code::dest_code#17
|
|
char *merge_code::dest_code#18
|
|
char *merge_code::dest_code#19
|
|
char *merge_code::dest_code#2
|
|
char *merge_code::dest_code#20
|
|
char *merge_code::dest_code#21
|
|
char *merge_code::dest_code#22
|
|
char *merge_code::dest_code#23
|
|
char *merge_code::dest_code#24
|
|
char *merge_code::dest_code#25
|
|
char *merge_code::dest_code#26
|
|
char *merge_code::dest_code#27
|
|
char *merge_code::dest_code#3
|
|
char *merge_code::dest_code#4
|
|
char *merge_code::dest_code#5
|
|
char *merge_code::dest_code#6
|
|
char *merge_code::dest_code#7
|
|
char *merge_code::dest_code#8
|
|
char *merge_code::dest_code#9
|
|
char *merge_code::logic_code
|
|
char *merge_code::logic_code#0
|
|
char *merge_code::logic_code#1
|
|
char *merge_code::logic_code#10
|
|
char *merge_code::logic_code#11
|
|
char *merge_code::logic_code#12
|
|
char *merge_code::logic_code#13
|
|
char *merge_code::logic_code#14
|
|
char *merge_code::logic_code#15
|
|
char *merge_code::logic_code#16
|
|
char *merge_code::logic_code#17
|
|
char *merge_code::logic_code#18
|
|
char *merge_code::logic_code#19
|
|
char *merge_code::logic_code#2
|
|
char *merge_code::logic_code#20
|
|
char *merge_code::logic_code#21
|
|
char *merge_code::logic_code#22
|
|
char *merge_code::logic_code#23
|
|
char *merge_code::logic_code#24
|
|
char *merge_code::logic_code#25
|
|
char *merge_code::logic_code#3
|
|
char *merge_code::logic_code#4
|
|
char *merge_code::logic_code#5
|
|
char *merge_code::logic_code#6
|
|
char *merge_code::logic_code#7
|
|
char *merge_code::logic_code#8
|
|
char *merge_code::logic_code#9
|
|
char merge_code::logic_cycles
|
|
char merge_code::logic_cycles#0
|
|
char merge_code::logic_cycles#1
|
|
char merge_code::logic_cycles#2
|
|
char merge_code::logic_cycles#3
|
|
char merge_code::logic_cycles#4
|
|
char *merge_code::raster_code
|
|
char *merge_code::raster_code#0
|
|
char *merge_code::raster_code#1
|
|
char *merge_code::raster_code#10
|
|
char *merge_code::raster_code#11
|
|
char *merge_code::raster_code#12
|
|
char *merge_code::raster_code#13
|
|
char *merge_code::raster_code#14
|
|
char *merge_code::raster_code#15
|
|
char *merge_code::raster_code#16
|
|
char *merge_code::raster_code#17
|
|
char *merge_code::raster_code#2
|
|
char *merge_code::raster_code#3
|
|
char *merge_code::raster_code#4
|
|
char *merge_code::raster_code#5
|
|
char *merge_code::raster_code#6
|
|
char *merge_code::raster_code#7
|
|
char *merge_code::raster_code#8
|
|
char *merge_code::raster_code#9
|
|
__constant void (* const musicInit)() = (void (*)())INTRO_MUSIC+0
|
|
__constant void (* const musicPlay)() = (void (*)())INTRO_MUSIC+6
|
|
__loadstore volatile char music_play_next
|
|
__loadstore volatile char pacman_ch1_enabled
|
|
__loadstore volatile char pacman_ch1_idx
|
|
__loadstore volatile char pacman_direction
|
|
__constant char pacman_frames[] = { 8, 8, 8, 8, 8, $18, $14, $18, 8, $20, $1c, $20, 0, 0, 0, 0, 8, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, $c, $10, $c }
|
|
__loadstore volatile char pacman_lives
|
|
void pacman_sound_init()
|
|
void pacman_sound_play()
|
|
bool pacman_sound_play::$0
|
|
unsigned int pacman_sound_play::$1
|
|
bool pacman_sound_play::$2
|
|
bool pacman_sound_play::$3
|
|
bool pacman_sound_play::$4
|
|
__loadstore volatile char pacman_substep
|
|
__loadstore volatile char pacman_wins
|
|
__loadstore volatile char pacman_xfine
|
|
__loadstore volatile char pacman_yfine
|
|
__loadstore volatile char phase
|
|
__loadstore volatile unsigned int pill_count
|
|
void render(char xcol , char ypos , char pixels)
|
|
char render::$1
|
|
number render::$2
|
|
unsigned int render::$3
|
|
bool render::$8
|
|
char *render::canvas1
|
|
char *render::canvas1#0
|
|
char *render::canvas1#1
|
|
char *render::canvas1#2
|
|
char *render::canvas1#3
|
|
char *render::canvas1#4
|
|
char *render::canvas2
|
|
char *render::canvas2#0
|
|
char *render::canvas2#1
|
|
char *render::canvas2#2
|
|
char *render::canvas2#3
|
|
char *render::canvas2#4
|
|
unsigned int render::canvas_offset
|
|
unsigned int render::canvas_offset#0
|
|
char render::i
|
|
char render::i#0
|
|
char render::i#1
|
|
char render::i#2
|
|
char render::i#3
|
|
char render::pixels
|
|
char render::pixels#0
|
|
char render::pixels#1
|
|
char render::pixels#2
|
|
char render::pixels#3
|
|
char render::pixels#4
|
|
char render::pixels#5
|
|
char *render::render_index_xcol
|
|
char *render::render_index_xcol#0
|
|
char render::xcol
|
|
char render::xcol#0
|
|
char render::xcol#1
|
|
char render::xcol#2
|
|
char render::ypix
|
|
char render::ypix#0
|
|
char render::ypix#1
|
|
char render::ypix#2
|
|
char render::ypos
|
|
char render::ypos#0
|
|
char render::ypos#1
|
|
char render::ypos#2
|
|
char render::ypos_inc_offset
|
|
char render::ypos_inc_offset#0
|
|
char render::ypos_inc_offset#1
|
|
char render::ypos_inc_offset#2
|
|
char render::ypos_inc_offset#3
|
|
char render::ytile
|
|
char render::ytile#0
|
|
void render_tiles(char xcol , char ytile , char tile_left , char tile_right)
|
|
number render_tiles::$0
|
|
bool render_tiles::$10
|
|
number render_tiles::$2
|
|
char render_tiles::$4
|
|
number render_tiles::$5
|
|
unsigned int render_tiles::$6
|
|
char *render_tiles::canvas1
|
|
char *render_tiles::canvas1#0
|
|
char *render_tiles::canvas1#1
|
|
char *render_tiles::canvas1#2
|
|
char *render_tiles::canvas1#3
|
|
char *render_tiles::canvas2
|
|
char *render_tiles::canvas2#0
|
|
char *render_tiles::canvas2#1
|
|
char *render_tiles::canvas2#2
|
|
char *render_tiles::canvas2#3
|
|
unsigned int render_tiles::canvas_offset
|
|
unsigned int render_tiles::canvas_offset#0
|
|
char render_tiles::pixels
|
|
char render_tiles::pixels#0
|
|
char *render_tiles::render_index_xcol
|
|
char *render_tiles::render_index_xcol#0
|
|
char render_tiles::tile_left
|
|
char render_tiles::tile_left#0
|
|
char render_tiles::tile_left#1
|
|
char *render_tiles::tile_left_pixels
|
|
char *render_tiles::tile_left_pixels#0
|
|
char *render_tiles::tile_left_pixels#1
|
|
char *render_tiles::tile_left_pixels#2
|
|
char render_tiles::tile_right
|
|
char render_tiles::tile_right#0
|
|
char render_tiles::tile_right#1
|
|
char *render_tiles::tile_right_pixels
|
|
char *render_tiles::tile_right_pixels#0
|
|
char *render_tiles::tile_right_pixels#1
|
|
char *render_tiles::tile_right_pixels#2
|
|
char render_tiles::xcol
|
|
char render_tiles::xcol#0
|
|
char render_tiles::xcol#1
|
|
char render_tiles::y
|
|
char render_tiles::y#0
|
|
char render_tiles::y#1
|
|
char render_tiles::y#2
|
|
char render_tiles::y#3
|
|
char render_tiles::ypos_inc_offset
|
|
char render_tiles::ypos_inc_offset#0
|
|
char render_tiles::ypos_inc_offset#1
|
|
char render_tiles::ypos_inc_offset#2
|
|
char render_tiles::ypos_inc_offset#3
|
|
char render_tiles::ytile
|
|
char render_tiles::ytile#0
|
|
char render_tiles::ytile#1
|
|
__loadstore char * volatile rigt_canvas
|
|
__loadstore char * volatile rigt_render_index_xcol
|
|
__loadstore volatile char rigt_ypos_inc_offset
|
|
__loadstore volatile char side_sprites_color
|
|
__loadstore volatile char side_sprites_mc
|
|
void spawn_all()
|
|
void splash_run()
|
|
char splash_run::$17
|
|
char splash_run::$18
|
|
bool splash_run::$22
|
|
number splash_run::$23
|
|
number splash_run::$24
|
|
char splash_run::$25
|
|
bool splash_run::$26
|
|
bool splash_run::$27
|
|
bool splash_run::$28
|
|
bool splash_run::$29
|
|
char splash_run::$30
|
|
bool splash_run::$31
|
|
bool splash_run::$32
|
|
char splash_run::$34
|
|
bool splash_run::$35
|
|
bool splash_run::$36
|
|
bool splash_run::$37
|
|
char splash_run::i
|
|
char splash_run::i#0
|
|
char splash_run::i#1
|
|
char splash_run::i#2
|
|
char splash_run::i#3
|
|
char splash_run::i#4
|
|
char splash_run::i#5
|
|
char splash_run::i1
|
|
char splash_run::i1#0
|
|
char splash_run::i1#1
|
|
char splash_run::i1#2
|
|
char splash_run::i1#3
|
|
char splash_run::i2
|
|
char splash_run::i2#0
|
|
char splash_run::i2#1
|
|
char splash_run::i2#2
|
|
char splash_run::i2#3
|
|
char splash_run::msb
|
|
char splash_run::msb#0
|
|
char splash_run::msb#1
|
|
char splash_run::msb#10
|
|
char splash_run::msb#11
|
|
char splash_run::msb#12
|
|
char splash_run::msb#13
|
|
char splash_run::msb#2
|
|
char splash_run::msb#3
|
|
char splash_run::msb#4
|
|
char splash_run::msb#5
|
|
char splash_run::msb#6
|
|
char splash_run::msb#7
|
|
char splash_run::msb#8
|
|
char splash_run::msb#9
|
|
__constant unsigned int splash_run::sprites_xpos[] = { $1e7, $13f, $10f, $df, $af, $7f, $4f, $1f }
|
|
number splash_run::toD0181_$0
|
|
number splash_run::toD0181_$1
|
|
char splash_run::toD0181_$2
|
|
char splash_run::toD0181_$3
|
|
number splash_run::toD0181_$4
|
|
number splash_run::toD0181_$5
|
|
number splash_run::toD0181_$6
|
|
unsigned int splash_run::toD0181_$7
|
|
char *splash_run::toD0181_gfx
|
|
char *splash_run::toD0181_gfx#0
|
|
char *splash_run::toD0181_gfx#1
|
|
char splash_run::toD0181_return
|
|
char splash_run::toD0181_return#0
|
|
char splash_run::toD0181_return#1
|
|
char splash_run::toD0181_return#2
|
|
char splash_run::toD0181_return#3
|
|
char *splash_run::toD0181_screen
|
|
char *splash_run::toD0181_screen#0
|
|
char *splash_run::toD0181_screen#1
|
|
char splash_run::toDd001_$0
|
|
number splash_run::toDd001_$1
|
|
number splash_run::toDd001_$2
|
|
char *splash_run::toDd001_gfx
|
|
char *splash_run::toDd001_gfx#0
|
|
char *splash_run::toDd001_gfx#1
|
|
char splash_run::toDd001_return
|
|
char splash_run::toDd001_return#0
|
|
char splash_run::toDd001_return#1
|
|
char splash_run::toDd001_return#2
|
|
char splash_run::toDd001_return#3
|
|
unsigned int splash_run::xpos
|
|
unsigned int splash_run::xpos#0
|
|
void splash_show()
|
|
bool splash_show::$0
|
|
bool splash_show::$1
|
|
char splash_show::pixels
|
|
char splash_show::pixels#0
|
|
char *splash_show::splash
|
|
char *splash_show::splash#0
|
|
char *splash_show::splash#1
|
|
char *splash_show::splash#2
|
|
char *splash_show::splash#3
|
|
char *splash_show::splash#4
|
|
char *splash_show::splash#5
|
|
char *splash_show::splash#6
|
|
char *splash_show::splash#7
|
|
char splash_show::xcol
|
|
char splash_show::xcol#0
|
|
char splash_show::xcol#1
|
|
char splash_show::xcol#2
|
|
char splash_show::xcol#3
|
|
char splash_show::xcol#4
|
|
char splash_show::xcol#5
|
|
char splash_show::xcol#6
|
|
char splash_show::xcol#7
|
|
char splash_show::ypos
|
|
char splash_show::ypos#0
|
|
char splash_show::ypos#1
|
|
char splash_show::ypos#2
|
|
char splash_show::ypos#3
|
|
char splash_show::ypos#4
|
|
__loadstore volatile char top_sprites_color
|
|
__loadstore volatile char top_sprites_mc
|
|
|
|
Adding number conversion cast (unumber) $a00 in
|
|
Adding number conversion cast (unumber) $a80 in
|
|
Adding number conversion cast (unumber) $b00 in
|
|
Adding number conversion cast (unumber) BOB_ROW_SIZE*6 in
|
|
Adding number conversion cast (unumber) 6 in
|
|
Adding number conversion cast (unumber) BOB_ROW_SIZE*$c in
|
|
Adding number conversion cast (unumber) $c in
|
|
Adding number conversion cast (unumber) BOB_ROW_SIZE*$12 in
|
|
Adding number conversion cast (unumber) $12 in
|
|
Adding number conversion cast (unumber) 2 in
|
|
Adding number conversion cast (unumber) 0 in
|
|
Adding number conversion cast (unumber) 6 in
|
|
Adding number conversion cast (unumber) $3fff in
|
|
Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#5 > 0
|
|
Adding number conversion cast (unumber) 0 in merge_code::$3 = merge_code::cycle_budget#4 > 0
|
|
Adding number conversion cast (unumber) 1 in merge_code::$5 = merge_code::cycle_budget#5 - 1
|
|
Adding number conversion cast (unumber) merge_code::$5 in merge_code::$5 = merge_code::cycle_budget#5 - (unumber)1
|
|
Adding number conversion cast (unumber) 0 in merge_code::$12 = merge_code::cycle_budget#7 > 0
|
|
Adding number conversion cast (unumber) 3 in merge_code::$13 = merge_code::cycle_budget#8 == 3
|
|
Adding number conversion cast (unumber) $24 in *merge_code::dest_code#10 = $24
|
|
Adding number conversion cast (unumber) $ea in *merge_code::dest_code#2 = $ea
|
|
Adding number conversion cast (unumber) 3 in merge_code::cycle_budget#2 = merge_code::cycle_budget#9 - 3
|
|
Adding number conversion cast (unumber) $ea in *merge_code::dest_code#11 = $ea
|
|
Adding number conversion cast (unumber) 2 in merge_code::cycle_budget#3 = merge_code::cycle_budget#10 - 2
|
|
Adding number conversion cast (unumber) $60 in *merge_code::dest_code#12 = $60
|
|
Adding number conversion cast (unumber) $f in *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = $f
|
|
Adding number conversion cast (unumber) 0 in *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_FREQ) = 0
|
|
Adding number conversion cast (unumber) 0 in *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = 0
|
|
Adding number conversion cast (unumber) 0 in *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = 0
|
|
Adding number conversion cast (unumber) 0 in *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = 0
|
|
Adding number conversion cast (unumber) $f0 in *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = $f0
|
|
Adding number conversion cast (unumber) 0 in pacman_sound_play::$4 = 0 != pacman_ch1_enabled
|
|
Adding number conversion cast (unumber) 0 in pacman_ch1_idx = 0
|
|
Adding number conversion cast (unumber) 0 in pacman_ch1_enabled = 0
|
|
Adding number conversion cast (unumber) $1a in init_render_index::$0 = init_render_index::x_col#2 < $1a
|
|
Adding number conversion cast (unumber) $18 in init_render_index::$1 = init_render_index::x_col#3 >= $18
|
|
Adding number conversion cast (unumber) 0 in (RENDER_INDEX+$18*$100)[RENDER_OFFSET_YPOS_INC] = 0
|
|
Adding number conversion cast (unumber) $18*$100 in (RENDER_INDEX+$18*$100)[RENDER_OFFSET_YPOS_INC] = ((unumber)) 0
|
|
Adding number conversion cast (unumber) 0 in (RENDER_INDEX+$19*$100)[RENDER_OFFSET_YPOS_INC] = 0
|
|
Adding number conversion cast (unumber) $19*$100 in (RENDER_INDEX+$19*$100)[RENDER_OFFSET_YPOS_INC] = ((unumber)) 0
|
|
Adding number conversion cast (unumber) $b in init_render_index::ypos_inc_offset#1 = $b
|
|
Adding number conversion cast (unumber) $94 in init_render_index::$3 = init_render_index::y_pos#2 < $94
|
|
Adding number conversion cast (unumber) 2 in init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#4 + 2
|
|
Adding number conversion cast (unumber) $17 in init_render_index::$7 = init_render_index::ypos_inc_offset#2 >= $17
|
|
Adding number conversion cast (unumber) $100 in init_render_index::render_index#1 = init_render_index::render_index#3 + $100
|
|
Adding number conversion cast (unumber) 2 in init_render_index::y_pos#1 = init_render_index::y_pos#4 + 2
|
|
Adding number conversion cast (unumber) $15 in init_render_index::ypos_inc_offset#3 = init_render_index::ypos_inc_offset#5 - $15
|
|
Adding number conversion cast (unumber) 4 in render::ytile#0 = render::ypos#2 / 4
|
|
Adding number conversion cast (unumber) 2 in render::$2 = render::ytile#0 * 2
|
|
Adding number conversion cast (unumber) render::$2 in render::$2 = render::ytile#0 * (unumber)2
|
|
Adding number conversion cast (unumber) 3 in render::ypix#0 = render::ypos#2 & 3
|
|
Adding number conversion cast (unumber) 4 in render_tiles::$0 = render_tiles::tile_left#1 * 4
|
|
Adding number conversion cast (unumber) render_tiles::$0 in render_tiles::$0 = render_tiles::tile_left#1 * (unumber)4
|
|
Adding number conversion cast (unumber) 4 in render_tiles::$2 = render_tiles::tile_right#1 * 4
|
|
Adding number conversion cast (unumber) render_tiles::$2 in render_tiles::$2 = render_tiles::tile_right#1 * (unumber)4
|
|
Adding number conversion cast (unumber) 2 in render_tiles::$5 = render_tiles::ytile#1 * 2
|
|
Adding number conversion cast (unumber) render_tiles::$5 in render_tiles::$5 = render_tiles::ytile#1 * (unumber)2
|
|
Adding number conversion cast (unumber) 4 in render_tiles::$10 = render_tiles::y#2 < 4
|
|
Adding number conversion cast (unumber) NUM_BOBS*2 in init_bobs_restore::$0 = init_bobs_restore::bob#2 < NUM_BOBS*2
|
|
Adding number conversion cast (unumber) 2 in init_bobs_restore::$0 = init_bobs_restore::bob#2 < (unumber)NUM_BOBS*2
|
|
Adding number conversion cast (unumber) $c in logic_tile_ptr = LEVEL_TILES+$40*$12+$c
|
|
Adding number conversion cast (unumber) $40*$12 in logic_tile_ptr = LEVEL_TILES+$40*$12+(unumber)$c
|
|
Adding number conversion cast (unumber) $c in logic_tile_xcol = $c
|
|
Adding number conversion cast (unumber) $23 in logic_tile_yfine = $23
|
|
Adding number conversion cast (unumber) 0 in init_bobs_restore::bob_restore#2[init_bobs_restore::i#3] = 0
|
|
Adding number conversion cast (unumber) 0 in init_bobs_restore::bob_restore#3[0] = init_bobs_restore::$2
|
|
Adding number conversion cast (unumber) 1 in init_bobs_restore::bob_restore#3[1] = init_bobs_restore::$3
|
|
Adding number conversion cast (unumber) 3 in init_bobs_restore::bob_restore#3[3] = init_bobs_restore::$4
|
|
Adding number conversion cast (unumber) 4 in init_bobs_restore::bob_restore#3[4] = init_bobs_restore::$5
|
|
Adding number conversion cast (unumber) 0 in game_playable = 0
|
|
Adding number conversion cast (unumber) 0 in phase = 0
|
|
Adding number conversion cast (unumber) $2f in done_run::$1 = done_run::i#2 < $2f
|
|
Adding number conversion cast (unumber) 0 in ((char *)SID)[done_run::i#3] = 0
|
|
Adding number conversion cast (unumber) 4 in done_run::$2 = done_run::i1#2 < 4
|
|
Adding number conversion cast (unumber) $a in bobs_xcol[done_run::i1#3] = $a
|
|
Adding number conversion cast (unumber) $2d in bobs_yfine[done_run::i1#3] = $2d
|
|
Adding number conversion cast (unumber) 0 in bobs_bob_id[done_run::i1#3] = 0
|
|
Adding number conversion cast (unumber) 0 in done_run::$12 = 0 != pacman_wins
|
|
Adding number conversion cast (unumber) $19 in done_run::$5 = done_run::xcol#2 < $19
|
|
Adding number conversion cast (unumber) 0 in music_play_next = 0
|
|
Adding number conversion cast (unumber) $19 in done_run::$6 = done_run::ypos#2 < $19
|
|
Adding number conversion cast (unumber) 0 in done_run::$13 = 0 != done_run::$8
|
|
Adding number conversion cast (unumber) 0 in done_run::$14 = 0 != music_play_next
|
|
Adding number conversion cast (unumber) 0 in music_play_next = 0
|
|
Adding number conversion cast (unumber) 0 in memset::c#0 = 0
|
|
Adding number conversion cast (unumber) $c00 in memset::num#0 = $c00
|
|
Adding number conversion cast (unumber) $2000 in memset::str#1 = (void *)BANK_1+$2000
|
|
Adding number conversion cast (unumber) 0 in memset::c#1 = 0
|
|
Adding number conversion cast (unumber) $1fff in memset::num#1 = $1fff
|
|
Adding number conversion cast (unumber) 0 in memset::c#2 = 0
|
|
Adding number conversion cast (unumber) $3fff in memset::num#2 = $3fff
|
|
Adding number conversion cast (unumber) 0 in memset::c#3 = 0
|
|
Adding number conversion cast (unumber) $1fff in memset::num#3 = $1fff
|
|
Adding number conversion cast (unumber) 0 in memset::c#4 = 0
|
|
Adding number conversion cast (unumber) 8 in splash_run::$22 = splash_run::i#2 < 8
|
|
Adding number conversion cast (unumber) 2 in splash_run::$23 = splash_run::i#3 * 2
|
|
Adding number conversion cast (unumber) splash_run::$23 in splash_run::$23 = splash_run::i#3 * (unumber)2
|
|
Adding number conversion cast (unumber) 7 in SPRITES_YPOS[splash_run::$23] = 7
|
|
Adding number conversion cast (unumber) 2 in splash_run::$24 = splash_run::i#3 * 2
|
|
Adding number conversion cast (unumber) splash_run::$24 in splash_run::$24 = splash_run::i#3 * (unumber)2
|
|
Adding number conversion cast (unumber) 2 in splash_run::msb#1 = splash_run::msb#3 / 2
|
|
Adding number conversion cast (unumber) 0 in splash_run::$35 = 0 != splash_run::$25
|
|
Adding number conversion cast (unumber) $40 in splash_run::toDd001_$1 = splash_run::toDd001_$0 / $40
|
|
Adding number conversion cast (unumber) splash_run::toDd001_$1 in splash_run::toDd001_$1 = splash_run::toDd001_$0 / (unumber)$40
|
|
Adding number conversion cast (unumber) 3 in splash_run::toDd001_$2 = 3 ^ splash_run::toDd001_$1
|
|
Adding number conversion cast (unumber) splash_run::toDd001_$2 in splash_run::toDd001_$2 = (unumber)3 ^ splash_run::toDd001_$1
|
|
Adding number conversion cast (unumber) $3fff in splash_run::toD0181_$0 = splash_run::toD0181_$7 & $3fff
|
|
Adding number conversion cast (unumber) splash_run::toD0181_$0 in splash_run::toD0181_$0 = splash_run::toD0181_$7 & (unumber)$3fff
|
|
Adding number conversion cast (unumber) 4 in splash_run::toD0181_$1 = splash_run::toD0181_$0 * 4
|
|
Adding number conversion cast (unumber) splash_run::toD0181_$1 in splash_run::toD0181_$1 = splash_run::toD0181_$0 * (unumber)4
|
|
Adding number conversion cast (unumber) 4 in splash_run::toD0181_$4 = splash_run::toD0181_$3 / 4
|
|
Adding number conversion cast (unumber) splash_run::toD0181_$4 in splash_run::toD0181_$4 = splash_run::toD0181_$3 / (unumber)4
|
|
Adding number conversion cast (unumber) $f in splash_run::toD0181_$5 = splash_run::toD0181_$4 & $f
|
|
Adding number conversion cast (unumber) splash_run::toD0181_$5 in splash_run::toD0181_$5 = splash_run::toD0181_$4 & (unumber)$f
|
|
Adding number conversion cast (unumber) splash_run::toD0181_$6 in splash_run::toD0181_$6 = splash_run::toD0181_$2 | splash_run::toD0181_$5
|
|
Adding number conversion cast (unumber) $ff in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff
|
|
Adding number conversion cast (unumber) $ff in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = $ff
|
|
Adding number conversion cast (unumber) 3 in top_sprites_mc = 3
|
|
Adding number conversion cast (unumber) 0 in side_sprites_mc = 0
|
|
Adding number conversion cast (unumber) 3 in bottom_sprites_mc = 3
|
|
Adding number conversion cast (unumber) $80 in splash_run::msb#2 = splash_run::msb#5 | $80
|
|
Adding number conversion cast (unumber) 8 in splash_run::$27 = splash_run::i1#2 < 8
|
|
Adding number conversion cast (unumber) 8 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 8
|
|
Adding number conversion cast (unumber) 4 in splash_run::$28 = splash_run::i2#2 < 4
|
|
Adding number conversion cast (unumber) $a in bobs_xcol[splash_run::i2#3] = $a
|
|
Adding number conversion cast (unumber) $2d in bobs_yfine[splash_run::i2#3] = $2d
|
|
Adding number conversion cast (unumber) 0 in bobs_bob_id[splash_run::i2#3] = 0
|
|
Adding number conversion cast (unumber) 0 in phase = 0
|
|
Adding number conversion cast (unumber) $fa in splash_run::$29 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fa
|
|
Adding number conversion cast (unumber) $f in *IRQ_STATUS = $f
|
|
Adding number conversion cast (unumber) 0 in music_play_next = 0
|
|
Adding number conversion cast (unumber) 0 in splash_run::$36 = 0 != splash_run::$30
|
|
Adding number conversion cast (unumber) 0 in splash_run::$37 = 0 != music_play_next
|
|
Adding number conversion cast (unumber) 0 in music_play_next = 0
|
|
Adding number conversion cast (unumber) $2f in gameplay_run::$8 = gameplay_run::i#2 < $2f
|
|
Adding number conversion cast (unumber) 0 in ((char *)SID)[gameplay_run::i#3] = 0
|
|
Adding number conversion cast (unumber) 0 in pacman_wins = 0
|
|
Adding number conversion cast (unumber) 3 in pacman_lives = 3
|
|
Adding number conversion cast (unumber) 8 in gameplay_run::$9 = gameplay_run::i1#2 < 8
|
|
Adding number conversion cast (unumber) $ff in top_sprites_mc = $ff
|
|
Adding number conversion cast (unumber) $ff in side_sprites_mc = $ff
|
|
Adding number conversion cast (unumber) $ff in bottom_sprites_mc = $ff
|
|
Adding number conversion cast (unumber) 8 in gameplay_run::$10 = gameplay_run::i2#2 < 8
|
|
Adding number conversion cast (unumber) 1 in phase = 1
|
|
Adding number conversion cast (unumber) 1 in game_playable = 1
|
|
Adding number conversion cast (unumber) $fb in gameplay_run::$11 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fb
|
|
Adding number conversion cast (unumber) $fa in gameplay_run::$12 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fa
|
|
Adding number conversion cast (unumber) $f in *IRQ_STATUS = $f
|
|
Adding number conversion cast (unumber) 0 in gameplay_run::$13 = pacman_lives == 0
|
|
Adding number conversion cast (unumber) 0 in *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 0
|
|
Adding number conversion cast (unumber) $10 in joyfire::$0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $10
|
|
Adding number conversion cast (unumber) joyfire::$0 in joyfire::$0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & (unumber)$10
|
|
Adding number conversion cast (unumber) 0 in joyfire::$1 = joyfire::$0 == 0
|
|
Adding number conversion cast (unumber) 1 in joyfire::return#2 = 1
|
|
Adding number conversion cast (unumber) 0 in joyfire::return#3 = 0
|
|
Adding number conversion cast (unumber) $19 in splash_show::$0 = splash_show::xcol#2 < $19
|
|
Adding number conversion cast (unumber) $93 in splash_show::$1 = splash_show::ypos#2 < $93
|
|
Adding number conversion cast (unumber) $25 in level_show::$0 = level_show::ytile#2 < $25
|
|
Adding number conversion cast (unumber) $19 in level_show::$1 = level_show::xcol#2 < $19
|
|
Adding number conversion cast (unumber) $40 in level_show::level#1 = level_show::level#3 + $40
|
|
Adding number conversion cast (unumber) $31 in level_tile_get::$0 = level_tile_get::xtile#4 > $31
|
|
Adding number conversion cast (unumber) $24 in level_tile_get::$1 = level_tile_get::ytile#4 > $24
|
|
Adding number conversion cast (unumber) 0 in level_tile_get::return#1 = 0
|
|
Adding number conversion cast (unumber) $31 in level_tile_directions::$0 = level_tile_directions::xtile#5 > $31
|
|
Adding number conversion cast (unumber) $24 in level_tile_directions::$1 = level_tile_directions::ytile#5 > $24
|
|
Adding number conversion cast (unumber) 0 in level_tile_directions::return#1 = 0
|
|
Adding number conversion cast (unumber) $25 in init_level_tile_directions::$0 = init_level_tile_directions::ytile#2 < $25
|
|
Adding number conversion cast (unumber) $32 in init_level_tile_directions::$1 = init_level_tile_directions::xtile#2 < $32
|
|
Adding number conversion cast (unumber) 1 in init_level_tile_directions::$2 = init_level_tile_directions::xtile#3 - 1
|
|
Adding number conversion cast (unumber) init_level_tile_directions::$2 in init_level_tile_directions::$2 = init_level_tile_directions::xtile#3 - (unumber)1
|
|
Adding number conversion cast (unumber) $40 in init_level_tile_directions::directions#1 = init_level_tile_directions::directions#2 + $40
|
|
Adding number conversion cast (unumber) 1 in init_level_tile_directions::$6 = init_level_tile_directions::xtile#4 + 1
|
|
Adding number conversion cast (unumber) init_level_tile_directions::$6 in init_level_tile_directions::$6 = init_level_tile_directions::xtile#4 + (unumber)1
|
|
Adding number conversion cast (unumber) 1 in init_level_tile_directions::$10 = init_level_tile_directions::ytile#6 - 1
|
|
Adding number conversion cast (unumber) init_level_tile_directions::$10 in init_level_tile_directions::$10 = init_level_tile_directions::ytile#6 - (unumber)1
|
|
Adding number conversion cast (unumber) 1 in init_level_tile_directions::$14 = init_level_tile_directions::ytile#7 + 1
|
|
Adding number conversion cast (unumber) init_level_tile_directions::$14 in init_level_tile_directions::$14 = init_level_tile_directions::ytile#7 + (unumber)1
|
|
Adding number conversion cast (unumber) $e in init_sprite_pointers::$0 = init_sprite_pointers::screen#2 < $e
|
|
Adding number conversion cast (unumber) 8 in init_sprite_pointers::$1 = init_sprite_pointers::sprite#2 < 8
|
|
Adding number conversion cast (unumber) $400 in init_sprite_pointers::sprites_ptr_1#1 = init_sprite_pointers::sprites_ptr_1#3 + $400
|
|
Adding number conversion cast (unumber) $400 in init_sprite_pointers::sprites_ptr_2#1 = init_sprite_pointers::sprites_ptr_2#3 + $400
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = 7
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = 7
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = 7
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = 7
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = 7
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = 7
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = 7
|
|
Adding number conversion cast (unumber) 7 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = 7
|
|
Adding number conversion cast (unumber) $3fff in irq_screen_top::toD0181_$0 = irq_screen_top::toD0181_$7 & $3fff
|
|
Adding number conversion cast (unumber) irq_screen_top::toD0181_$0 in irq_screen_top::toD0181_$0 = irq_screen_top::toD0181_$7 & (unumber)$3fff
|
|
Adding number conversion cast (unumber) 4 in irq_screen_top::toD0181_$1 = irq_screen_top::toD0181_$0 * 4
|
|
Adding number conversion cast (unumber) irq_screen_top::toD0181_$1 in irq_screen_top::toD0181_$1 = irq_screen_top::toD0181_$0 * (unumber)4
|
|
Adding number conversion cast (unumber) 4 in irq_screen_top::toD0181_$4 = irq_screen_top::toD0181_$3 / 4
|
|
Adding number conversion cast (unumber) irq_screen_top::toD0181_$4 in irq_screen_top::toD0181_$4 = irq_screen_top::toD0181_$3 / (unumber)4
|
|
Adding number conversion cast (unumber) $f in irq_screen_top::toD0181_$5 = irq_screen_top::toD0181_$4 & $f
|
|
Adding number conversion cast (unumber) irq_screen_top::toD0181_$5 in irq_screen_top::toD0181_$5 = irq_screen_top::toD0181_$4 & (unumber)$f
|
|
Adding number conversion cast (unumber) irq_screen_top::toD0181_$6 in irq_screen_top::toD0181_$6 = irq_screen_top::toD0181_$2 | irq_screen_top::toD0181_$5
|
|
Adding number conversion cast (unumber) 1 in irq_screen_top::$1 = frame + 1
|
|
Adding number conversion cast (unumber) irq_screen_top::$1 in irq_screen_top::$1 = frame + (unumber)1
|
|
Adding number conversion cast (unumber) 1 in irq_screen_top::$2 = irq_screen_top::$1 & 1
|
|
Adding number conversion cast (unumber) irq_screen_top::$2 in irq_screen_top::$2 = irq_screen_top::$1 & (unumber)1
|
|
Adding number conversion cast (unumber) 0 in irq_screen_top::$8 = 0 != frame
|
|
Adding number conversion cast (unumber) $40 in irq_screen_top::toDd001_$1 = irq_screen_top::toDd001_$0 / $40
|
|
Adding number conversion cast (unumber) irq_screen_top::toDd001_$1 in irq_screen_top::toDd001_$1 = irq_screen_top::toDd001_$0 / (unumber)$40
|
|
Adding number conversion cast (unumber) 3 in irq_screen_top::toDd001_$2 = 3 ^ irq_screen_top::toDd001_$1
|
|
Adding number conversion cast (unumber) irq_screen_top::toDd001_$2 in irq_screen_top::toDd001_$2 = (unumber)3 ^ irq_screen_top::toDd001_$1
|
|
Adding number conversion cast (unumber) 0 in bobs_restore_base = 0
|
|
Adding number conversion cast (unumber) $40 in irq_screen_top::toDd002_$1 = irq_screen_top::toDd002_$0 / $40
|
|
Adding number conversion cast (unumber) irq_screen_top::toDd002_$1 in irq_screen_top::toDd002_$1 = irq_screen_top::toDd002_$0 / (unumber)$40
|
|
Adding number conversion cast (unumber) 3 in irq_screen_top::toDd002_$2 = 3 ^ irq_screen_top::toDd002_$1
|
|
Adding number conversion cast (unumber) irq_screen_top::toDd002_$2 in irq_screen_top::toDd002_$2 = (unumber)3 ^ irq_screen_top::toDd002_$1
|
|
Adding number conversion cast (unumber) 0 in irq_screen_top::$3 = phase == 0
|
|
Adding number conversion cast (unumber) 1 in music_play_next = 1
|
|
Adding number conversion cast (unumber) 0 in game_logic::$0 = game_playable == 0
|
|
Adding number conversion cast (unumber) 1 in game_logic::$2 = game_logic_substep + 1
|
|
Adding number conversion cast (unumber) game_logic::$2 in game_logic::$2 = game_logic_substep + (unumber)1
|
|
Adding number conversion cast (unumber) 7 in game_logic::$3 = game_logic::$2 & 7
|
|
Adding number conversion cast (unumber) game_logic::$3 in game_logic::$3 = game_logic::$2 & (unumber)7
|
|
Adding number conversion cast (unumber) 0 in game_logic::$4 = game_logic_substep == 0
|
|
Adding number conversion cast (unumber) 1 in game_logic::$5 = game_logic_substep == 1
|
|
Adding number conversion cast (unumber) 0 in game_logic::$211 = 0 != ghost1_respawn
|
|
Adding number conversion cast (unumber) 2 in game_logic::$6 = game_logic_substep == 2
|
|
Adding number conversion cast (unumber) 0 in game_logic::$212 = 0 != ghost2_respawn
|
|
Adding number conversion cast (unumber) 4 in game_logic::$7 = game_logic_substep == 4
|
|
Adding number conversion cast (unumber) 0 in game_logic::$213 = 0 != ghost3_respawn
|
|
Adding number conversion cast (unumber) 5 in game_logic::$8 = game_logic_substep == 5
|
|
Adding number conversion cast (unumber) 0 in game_logic::$214 = 0 != ghost4_respawn
|
|
Adding number conversion cast (unumber) 6 in game_logic::$9 = game_logic_substep == 6
|
|
Adding number conversion cast (unumber) 3 in game_logic::$10 = game_logic_substep == 3
|
|
Adding number conversion cast (unumber) 7 in game_logic::$11 = game_logic_substep == 7
|
|
Adding number conversion cast (unumber) 1 in game_logic::$14 = anim_frame_idx + 1
|
|
Adding number conversion cast (unumber) game_logic::$14 in game_logic::$14 = anim_frame_idx + (unumber)1
|
|
Adding number conversion cast (unumber) 3 in game_logic::$15 = game_logic::$14 & 3
|
|
Adding number conversion cast (unumber) game_logic::$15 in game_logic::$15 = game_logic::$14 & (unumber)3
|
|
Adding number conversion cast (unumber) 1 in game_logic::pacman_bob_xfine#0 = pacman_xfine - 1
|
|
Adding number conversion cast (unumber) 4 in game_logic::$17 = game_logic::pacman_bob_xfine#0 / 4
|
|
Adding number conversion cast (unumber) game_logic::$17 in game_logic::$17 = game_logic::pacman_bob_xfine#0 / (unumber)4
|
|
Adding number conversion cast (unumber) 0 in bobs_xcol[0] = game_logic::$17
|
|
Adding number conversion cast (unumber) 1 in game_logic::$18 = pacman_yfine - 1
|
|
Adding number conversion cast (unumber) game_logic::$18 in game_logic::$18 = pacman_yfine - (unumber)1
|
|
Adding number conversion cast (unumber) 0 in bobs_yfine[0] = game_logic::$18
|
|
Adding number conversion cast (unumber) 3 in game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3
|
|
Adding number conversion cast (unumber) game_logic::$20 in game_logic::$20 = game_logic::pacman_bob_xfine#0 & (unumber)3
|
|
Adding number conversion cast (unumber) game_logic::$21 in game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20
|
|
Adding number conversion cast (unumber) 0 in bobs_bob_id[0] = game_logic::$21
|
|
Adding number conversion cast (unumber) 1 in game_logic::ghost1_bob_xfine#0 = ghost1_xfine - 1
|
|
Adding number conversion cast (unumber) 4 in game_logic::$25 = game_logic::ghost1_bob_xfine#0 / 4
|
|
Adding number conversion cast (unumber) game_logic::$25 in game_logic::$25 = game_logic::ghost1_bob_xfine#0 / (unumber)4
|
|
Adding number conversion cast (unumber) 1 in bobs_xcol[1] = game_logic::$25
|
|
Adding number conversion cast (unumber) 1 in game_logic::$26 = ghost1_yfine - 1
|
|
Adding number conversion cast (unumber) game_logic::$26 in game_logic::$26 = ghost1_yfine - (unumber)1
|
|
Adding number conversion cast (unumber) 1 in bobs_yfine[1] = game_logic::$26
|
|
Adding number conversion cast (unumber) 3 in game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3
|
|
Adding number conversion cast (unumber) game_logic::$28 in game_logic::$28 = game_logic::ghost1_bob_xfine#0 & (unumber)3
|
|
Adding number conversion cast (unumber) game_logic::$29 in game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28
|
|
Adding number conversion cast (unumber) 1 in bobs_bob_id[1] = game_logic::$29
|
|
Adding number conversion cast (unumber) 1 in game_logic::ghost2_bob_xfine#0 = ghost2_xfine - 1
|
|
Adding number conversion cast (unumber) 4 in game_logic::$31 = game_logic::ghost2_bob_xfine#0 / 4
|
|
Adding number conversion cast (unumber) game_logic::$31 in game_logic::$31 = game_logic::ghost2_bob_xfine#0 / (unumber)4
|
|
Adding number conversion cast (unumber) 2 in bobs_xcol[2] = game_logic::$31
|
|
Adding number conversion cast (unumber) 1 in game_logic::$32 = ghost2_yfine - 1
|
|
Adding number conversion cast (unumber) game_logic::$32 in game_logic::$32 = ghost2_yfine - (unumber)1
|
|
Adding number conversion cast (unumber) 2 in bobs_yfine[2] = game_logic::$32
|
|
Adding number conversion cast (unumber) 3 in game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3
|
|
Adding number conversion cast (unumber) game_logic::$34 in game_logic::$34 = game_logic::ghost2_bob_xfine#0 & (unumber)3
|
|
Adding number conversion cast (unumber) game_logic::$35 in game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34
|
|
Adding number conversion cast (unumber) 2 in bobs_bob_id[2] = game_logic::$35
|
|
Adding number conversion cast (unumber) 1 in game_logic::ghost3_bob_xfine#0 = ghost3_xfine - 1
|
|
Adding number conversion cast (unumber) 4 in game_logic::$37 = game_logic::ghost3_bob_xfine#0 / 4
|
|
Adding number conversion cast (unumber) game_logic::$37 in game_logic::$37 = game_logic::ghost3_bob_xfine#0 / (unumber)4
|
|
Adding number conversion cast (unumber) 3 in bobs_xcol[3] = game_logic::$37
|
|
Adding number conversion cast (unumber) 1 in game_logic::$38 = ghost3_yfine - 1
|
|
Adding number conversion cast (unumber) game_logic::$38 in game_logic::$38 = ghost3_yfine - (unumber)1
|
|
Adding number conversion cast (unumber) 3 in bobs_yfine[3] = game_logic::$38
|
|
Adding number conversion cast (unumber) 3 in game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3
|
|
Adding number conversion cast (unumber) game_logic::$40 in game_logic::$40 = game_logic::ghost3_bob_xfine#0 & (unumber)3
|
|
Adding number conversion cast (unumber) game_logic::$41 in game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40
|
|
Adding number conversion cast (unumber) 3 in bobs_bob_id[3] = game_logic::$41
|
|
Adding number conversion cast (unumber) 1 in game_logic::ghost4_bob_xfine#0 = ghost4_xfine - 1
|
|
Adding number conversion cast (unumber) 4 in game_logic::$43 = game_logic::ghost4_bob_xfine#0 / 4
|
|
Adding number conversion cast (unumber) game_logic::$43 in game_logic::$43 = game_logic::ghost4_bob_xfine#0 / (unumber)4
|
|
Adding number conversion cast (unumber) 4 in bobs_xcol[4] = game_logic::$43
|
|
Adding number conversion cast (unumber) 1 in game_logic::$44 = ghost4_yfine - 1
|
|
Adding number conversion cast (unumber) game_logic::$44 in game_logic::$44 = ghost4_yfine - (unumber)1
|
|
Adding number conversion cast (unumber) 4 in bobs_yfine[4] = game_logic::$44
|
|
Adding number conversion cast (unumber) 3 in game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3
|
|
Adding number conversion cast (unumber) game_logic::$46 in game_logic::$46 = game_logic::ghost4_bob_xfine#0 & (unumber)3
|
|
Adding number conversion cast (unumber) game_logic::$47 in game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46
|
|
Adding number conversion cast (unumber) 4 in bobs_bob_id[4] = game_logic::$47
|
|
Adding number conversion cast (unumber) $40 in game_logic::ghost_frame_idx#1 = game_logic::ghost_frame_idx#3 | $40
|
|
Adding number conversion cast (unumber) $32 in game_logic::$56 = ghosts_mode_count > $32
|
|
Adding number conversion cast (unumber) $96 in game_logic::$54 = ghosts_mode_count > $96
|
|
Adding number conversion cast (unumber) $32 in game_logic::$52 = ghosts_mode_count > $32
|
|
Adding number conversion cast (unumber) 0 in ghosts_mode_count = 0
|
|
Adding number conversion cast (unumber) 1 in game_logic::do_reverse#1 = 1
|
|
Adding number conversion cast (unumber) 0 in ghosts_mode_count = 0
|
|
Adding number conversion cast (unumber) 1 in game_logic::do_reverse#2 = 1
|
|
Adding number conversion cast (unumber) 0 in game_logic::$219 = 0 != game_logic::do_reverse#4
|
|
Adding number conversion cast (unumber) 0 in ghosts_mode_count = 0
|
|
Adding number conversion cast (unumber) 1 in game_logic::do_reverse#3 = 1
|
|
Adding number conversion cast (unumber) 2 in game_logic::pacman_xtile#0 = pacman_xfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::pacman_ytile#0 = pacman_yfine / 2
|
|
Adding number conversion cast (unumber) 1 in ghost1_reverse = 1
|
|
Adding number conversion cast (unumber) 1 in ghost2_reverse = 1
|
|
Adding number conversion cast (unumber) 1 in ghost3_reverse = 1
|
|
Adding number conversion cast (unumber) 1 in ghost4_reverse = 1
|
|
Adding number conversion cast (unumber) 2 in game_logic::$69 = game_logic::pacman_xtile#1 / 2
|
|
Adding number conversion cast (unumber) game_logic::$69 in game_logic::$69 = game_logic::pacman_xtile#1 / (unumber)2
|
|
Adding number conversion cast (unumber) $fe in game_logic::$70 = game_logic::pacman_xtile#1 & $fe
|
|
Adding number conversion cast (unumber) game_logic::$70 in game_logic::$70 = game_logic::pacman_xtile#1 & (unumber)$fe
|
|
Adding number conversion cast (unumber) 2 in game_logic::$72 = game_logic::pacman_ytile#1 * 2
|
|
Adding number conversion cast (unumber) game_logic::$72 in game_logic::$72 = game_logic::pacman_ytile#1 * (unumber)2
|
|
Adding number conversion cast (unumber) 0 in game_logic::$73 = pill_count == 0
|
|
Adding number conversion cast (unumber) 2 in game_logic::$65 = game_logic::pacman_xtile#2 / 2
|
|
Adding number conversion cast (unumber) game_logic::$65 in game_logic::$65 = game_logic::pacman_xtile#2 / (unumber)2
|
|
Adding number conversion cast (unumber) $fe in game_logic::$66 = game_logic::pacman_xtile#2 & $fe
|
|
Adding number conversion cast (unumber) game_logic::$66 in game_logic::$66 = game_logic::pacman_xtile#2 & (unumber)$fe
|
|
Adding number conversion cast (unumber) 2 in game_logic::$68 = game_logic::pacman_ytile#2 * 2
|
|
Adding number conversion cast (unumber) game_logic::$68 in game_logic::$68 = game_logic::pacman_ytile#2 * (unumber)2
|
|
Adding number conversion cast (unumber) 0 in ghosts_mode_count = 0
|
|
Adding number conversion cast (unumber) 2 in game_logic::$76 = ABS[game_logic::$75] < 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$78 = ABS[game_logic::$77] < 2
|
|
Adding number conversion cast (unumber) 1 in pacman_wins = 1
|
|
Adding number conversion cast (unumber) 2 in game_logic::$81 = ABS[game_logic::$80] < 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$83 = ABS[game_logic::$82] < 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$86 = ABS[game_logic::$85] < 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$88 = ABS[game_logic::$87] < 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$91 = ABS[game_logic::$90] < 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$93 = ABS[game_logic::$92] < 2
|
|
Adding number conversion cast (unumber) $32 in ghost4_xfine = $32
|
|
Adding number conversion cast (unumber) $23 in ghost4_yfine = $23
|
|
Adding number conversion cast (unumber) 0 in ghost4_substep = 0
|
|
Adding number conversion cast (unumber) $32 in ghost4_respawn = $32
|
|
Adding number conversion cast (unumber) $32 in ghost3_xfine = $32
|
|
Adding number conversion cast (unumber) $23 in ghost3_yfine = $23
|
|
Adding number conversion cast (unumber) 0 in ghost3_substep = 0
|
|
Adding number conversion cast (unumber) $32 in ghost3_respawn = $32
|
|
Adding number conversion cast (unumber) $32 in ghost2_xfine = $32
|
|
Adding number conversion cast (unumber) $23 in ghost2_yfine = $23
|
|
Adding number conversion cast (unumber) 0 in ghost2_substep = 0
|
|
Adding number conversion cast (unumber) $32 in ghost2_respawn = $32
|
|
Adding number conversion cast (unumber) $32 in ghost1_xfine = $32
|
|
Adding number conversion cast (unumber) $23 in ghost1_yfine = $23
|
|
Adding number conversion cast (unumber) 0 in ghost1_substep = 0
|
|
Adding number conversion cast (unumber) $32 in ghost1_respawn = $32
|
|
Adding number conversion cast (unumber) 0 in game_logic::$123 = ghost4_respawn == 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$109 = ghost4_substep == 0
|
|
Adding number conversion cast (unumber) 1 in ghost4_substep = 1
|
|
Adding number conversion cast (unumber) 1 in game_logic::$120 = ghost4_xfine == 1
|
|
Adding number conversion cast (unumber) 0 in ghost4_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$215 = 0 != ghost4_reverse
|
|
Adding number conversion cast (unumber) 0 in ghost4_reverse = 0
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost4_xtile#0 = ghost4_xfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost4_ytile#0 = ghost4_yfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_xtile#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_ytile#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$117 = pacman_xfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$117 in game_logic::$117 = pacman_xfine / (unumber)2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$118 = pacman_yfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$118 in game_logic::$118 = pacman_yfine / (unumber)2
|
|
Adding number conversion cast (unumber) $61 in ghost4_xfine = $61
|
|
Adding number conversion cast (unumber) $61 in game_logic::$121 = ghost4_xfine == $61
|
|
Adding number conversion cast (unumber) 1 in ghost4_xfine = 1
|
|
Adding number conversion cast (unumber) 2 in ghost4_xfine = 2
|
|
Adding number conversion cast (unumber) 2 in ghost4_yfine = 2
|
|
Adding number conversion cast (unumber) 0 in ghost4_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$144 = ghost3_respawn == 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$130 = ghost3_substep == 0
|
|
Adding number conversion cast (unumber) 1 in ghost3_substep = 1
|
|
Adding number conversion cast (unumber) 1 in game_logic::$141 = ghost3_xfine == 1
|
|
Adding number conversion cast (unumber) 0 in ghost3_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$216 = 0 != ghost3_reverse
|
|
Adding number conversion cast (unumber) 0 in ghost3_reverse = 0
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost3_xtile#0 = ghost3_xfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost3_ytile#0 = ghost3_yfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_xtile1#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_ytile1#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$138 = pacman_xfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$138 in game_logic::$138 = pacman_xfine / (unumber)2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$139 = pacman_yfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$139 in game_logic::$139 = pacman_yfine / (unumber)2
|
|
Adding number conversion cast (unumber) $61 in ghost3_xfine = $61
|
|
Adding number conversion cast (unumber) $61 in game_logic::$142 = ghost3_xfine == $61
|
|
Adding number conversion cast (unumber) 1 in ghost3_xfine = 1
|
|
Adding number conversion cast (unumber) 2 in ghost3_xfine = 2
|
|
Adding number conversion cast (unumber) $46 in ghost3_yfine = $46
|
|
Adding number conversion cast (unumber) 0 in ghost3_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$165 = ghost2_respawn == 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$151 = ghost2_substep == 0
|
|
Adding number conversion cast (unumber) 1 in ghost2_substep = 1
|
|
Adding number conversion cast (unumber) 1 in game_logic::$162 = ghost2_xfine == 1
|
|
Adding number conversion cast (unumber) 0 in ghost2_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$217 = 0 != ghost2_reverse
|
|
Adding number conversion cast (unumber) 0 in ghost2_reverse = 0
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost2_xtile#0 = ghost2_xfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost2_ytile#0 = ghost2_yfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_xtile2#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_ytile2#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$159 = pacman_xfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$159 in game_logic::$159 = pacman_xfine / (unumber)2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$160 = pacman_yfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$160 in game_logic::$160 = pacman_yfine / (unumber)2
|
|
Adding number conversion cast (unumber) $61 in ghost2_xfine = $61
|
|
Adding number conversion cast (unumber) $61 in game_logic::$163 = ghost2_xfine == $61
|
|
Adding number conversion cast (unumber) 1 in ghost2_xfine = 1
|
|
Adding number conversion cast (unumber) $60 in ghost2_xfine = $60
|
|
Adding number conversion cast (unumber) $46 in ghost2_yfine = $46
|
|
Adding number conversion cast (unumber) 0 in ghost2_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$186 = ghost1_respawn == 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$172 = ghost1_substep == 0
|
|
Adding number conversion cast (unumber) 1 in ghost1_substep = 1
|
|
Adding number conversion cast (unumber) 1 in game_logic::$183 = ghost1_xfine == 1
|
|
Adding number conversion cast (unumber) 0 in ghost1_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$218 = 0 != ghost1_reverse
|
|
Adding number conversion cast (unumber) 0 in ghost1_reverse = 0
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost1_xtile#0 = ghost1_xfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::ghost1_ytile#0 = ghost1_yfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_xtile3#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::target_ytile3#1 = 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$180 = pacman_xfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$180 in game_logic::$180 = pacman_xfine / (unumber)2
|
|
Adding number conversion cast (unumber) 2 in game_logic::$181 = pacman_yfine / 2
|
|
Adding number conversion cast (unumber) game_logic::$181 in game_logic::$181 = pacman_yfine / (unumber)2
|
|
Adding number conversion cast (unumber) $61 in ghost1_xfine = $61
|
|
Adding number conversion cast (unumber) $61 in game_logic::$184 = ghost1_xfine == $61
|
|
Adding number conversion cast (unumber) 1 in ghost1_xfine = 1
|
|
Adding number conversion cast (unumber) $60 in ghost1_xfine = $60
|
|
Adding number conversion cast (unumber) 2 in ghost1_yfine = 2
|
|
Adding number conversion cast (unumber) 0 in ghost1_substep = 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$193 = pacman_substep == 0
|
|
Adding number conversion cast (unumber) 1 in pacman_substep = 1
|
|
Adding number conversion cast (unumber) 1 in pacman_ch1_enabled = 1
|
|
Adding number conversion cast (unumber) 1 in game_logic::$207 = pacman_xfine == 1
|
|
Adding number conversion cast (unumber) 0 in pacman_substep = 0
|
|
Adding number conversion cast (unumber) 2 in game_logic::pacman_xtile1#0 = pacman_xfine / 2
|
|
Adding number conversion cast (unumber) 2 in game_logic::pacman_ytile1#0 = pacman_yfine / 2
|
|
Adding number conversion cast (unumber) $f in game_logic::$199 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $f
|
|
Adding number conversion cast (unumber) game_logic::$199 in game_logic::$199 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & (unumber)$f
|
|
Adding number conversion cast (unumber) $f in game_logic::$200 = game_logic::$199 ^ $f
|
|
Adding number conversion cast (unumber) game_logic::$200 in game_logic::$200 = game_logic::$199 ^ (unumber)$f
|
|
Adding number conversion cast (unumber) 4 in game_logic::joy_directions#0 = game_logic::$200 * 4
|
|
Adding number conversion cast (unumber) 0 in game_logic::$202 = game_logic::joy_directions#0 != 0
|
|
Adding number conversion cast (unumber) 0 in game_logic::$205 = game_logic::new_direction#0 != 0
|
|
Adding number conversion cast (unumber) $61 in pacman_xfine = $61
|
|
Adding number conversion cast (unumber) $61 in game_logic::$208 = pacman_xfine == $61
|
|
Adding number conversion cast (unumber) 1 in pacman_xfine = 1
|
|
Adding number conversion cast (unumber) 0 in choose_direction::$26 = 0 != choose_direction::$2
|
|
Adding number conversion cast (unumber) 0 in choose_direction::$27 = 0 != choose_direction::$4
|
|
Adding number conversion cast (unumber) 1 in choose_direction::$10 = choose_direction::ydiff#1 - 1
|
|
Adding number conversion cast (unumber) choose_direction::$10 in choose_direction::$10 = choose_direction::ydiff#1 - (unumber)1
|
|
Adding number conversion cast (unumber) 0 in choose_direction::$28 = 0 != choose_direction::$6
|
|
Adding number conversion cast (unumber) 1 in choose_direction::$14 = choose_direction::ydiff#2 + 1
|
|
Adding number conversion cast (unumber) choose_direction::$14 in choose_direction::$14 = choose_direction::ydiff#2 + (unumber)1
|
|
Adding number conversion cast (unumber) 0 in choose_direction::$29 = 0 != choose_direction::$8
|
|
Adding number conversion cast (unumber) 1 in choose_direction::$18 = choose_direction::xdiff#3 - 1
|
|
Adding number conversion cast (unumber) choose_direction::$18 in choose_direction::$18 = choose_direction::xdiff#3 - (unumber)1
|
|
Adding number conversion cast (unumber) 1 in choose_direction::$22 = choose_direction::xdiff#4 + 1
|
|
Adding number conversion cast (unumber) choose_direction::$22 in choose_direction::$22 = choose_direction::xdiff#4 + (unumber)1
|
|
Adding number conversion cast (unumber) 0 in ghosts_mode_count = 0
|
|
Adding number conversion cast (unumber) 0 in pacman_substep = 0
|
|
Adding number conversion cast (unumber) 0 in ghost1_substep = 0
|
|
Adding number conversion cast (unumber) 0 in ghost2_substep = 0
|
|
Adding number conversion cast (unumber) 0 in ghost3_substep = 0
|
|
Adding number conversion cast (unumber) 0 in ghost4_substep = 0
|
|
Adding number conversion cast (unumber) $32 in pacman_xfine = $32
|
|
Adding number conversion cast (unumber) $32 in ghost1_xfine = $32
|
|
Adding number conversion cast (unumber) $32 in ghost2_xfine = $32
|
|
Adding number conversion cast (unumber) $32 in ghost3_xfine = $32
|
|
Adding number conversion cast (unumber) $32 in ghost4_xfine = $32
|
|
Adding number conversion cast (unumber) $23 in ghost1_yfine = $23
|
|
Adding number conversion cast (unumber) $23 in ghost2_yfine = $23
|
|
Adding number conversion cast (unumber) $23 in ghost3_yfine = $23
|
|
Adding number conversion cast (unumber) $23 in ghost4_yfine = $23
|
|
Adding number conversion cast (unumber) $3e in pacman_yfine = $3e
|
|
Adding number conversion cast (unumber) $a in ghost1_respawn = $a
|
|
Adding number conversion cast (unumber) $14 in ghost2_respawn = $14
|
|
Adding number conversion cast (unumber) $1e in ghost3_respawn = $1e
|
|
Adding number conversion cast (unumber) $28 in ghost4_respawn = $28
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Adding number conversion cast (unumber) $40 in
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Inlining cast memcpy::src#0 = (char *)memcpy::source#1
|
|
Inlining cast memcpy::dst#0 = (char *)memcpy::destination#1
|
|
Inlining cast memset::dst#0 = (char *)memset::str#6
|
|
Inlining cast *merge_code::dest_code#10 = (unumber)$24
|
|
Inlining cast *merge_code::dest_code#2 = (unumber)$ea
|
|
Inlining cast *merge_code::dest_code#11 = (unumber)$ea
|
|
Inlining cast *merge_code::dest_code#12 = (unumber)$60
|
|
Inlining cast *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = (unumber)$f
|
|
Inlining cast *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_FREQ) = (unumber)0
|
|
Inlining cast *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = (unumber)0
|
|
Inlining cast *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = (unumber)0
|
|
Inlining cast *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = (unumber)0
|
|
Inlining cast *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = (unumber)$f0
|
|
Inlining cast pacman_ch1_idx = (unumber)0
|
|
Inlining cast pacman_ch1_enabled = (unumber)0
|
|
Inlining cast (RENDER_INDEX+(unumber)$18*$100)[RENDER_OFFSET_YPOS_INC] = (unumber)0
|
|
Inlining cast (RENDER_INDEX+(unumber)$19*$100)[RENDER_OFFSET_YPOS_INC] = (unumber)0
|
|
Inlining cast init_render_index::ypos_inc_offset#1 = (unumber)$b
|
|
Inlining cast logic_tile_xcol = (unumber)$c
|
|
Inlining cast logic_tile_yfine = (unumber)$23
|
|
Inlining cast init_bobs_restore::bob_restore#2[init_bobs_restore::i#3] = (unumber)0
|
|
Inlining cast game_playable = (unumber)0
|
|
Inlining cast phase = (unumber)0
|
|
Inlining cast ((char *)SID)[done_run::i#3] = (unumber)0
|
|
Inlining cast bobs_xcol[done_run::i1#3] = (unumber)$a
|
|
Inlining cast bobs_yfine[done_run::i1#3] = (unumber)$2d
|
|
Inlining cast bobs_bob_id[done_run::i1#3] = (unumber)0
|
|
Inlining cast music_play_next = (unumber)0
|
|
Inlining cast music_play_next = (unumber)0
|
|
Inlining cast memset::c#0 = (unumber)0
|
|
Inlining cast memset::num#0 = (unumber)$c00
|
|
Inlining cast memset::c#1 = (unumber)0
|
|
Inlining cast memset::num#1 = (unumber)$1fff
|
|
Inlining cast memset::c#2 = (unumber)0
|
|
Inlining cast memset::num#2 = (unumber)$3fff
|
|
Inlining cast memset::c#3 = (unumber)0
|
|
Inlining cast memset::num#3 = (unumber)$1fff
|
|
Inlining cast memset::c#4 = (unumber)0
|
|
Inlining cast SPRITES_YPOS[splash_run::$23] = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)$ff
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = (unumber)$ff
|
|
Inlining cast top_sprites_mc = (unumber)3
|
|
Inlining cast side_sprites_mc = (unumber)0
|
|
Inlining cast bottom_sprites_mc = (unumber)3
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = (unumber)8
|
|
Inlining cast bobs_xcol[splash_run::i2#3] = (unumber)$a
|
|
Inlining cast bobs_yfine[splash_run::i2#3] = (unumber)$2d
|
|
Inlining cast bobs_bob_id[splash_run::i2#3] = (unumber)0
|
|
Inlining cast phase = (unumber)0
|
|
Inlining cast *IRQ_STATUS = (unumber)$f
|
|
Inlining cast music_play_next = (unumber)0
|
|
Inlining cast music_play_next = (unumber)0
|
|
Inlining cast ((char *)SID)[gameplay_run::i#3] = (unumber)0
|
|
Inlining cast pacman_wins = (unumber)0
|
|
Inlining cast pacman_lives = (unumber)3
|
|
Inlining cast top_sprites_mc = (unumber)$ff
|
|
Inlining cast side_sprites_mc = (unumber)$ff
|
|
Inlining cast bottom_sprites_mc = (unumber)$ff
|
|
Inlining cast phase = (unumber)1
|
|
Inlining cast game_playable = (unumber)1
|
|
Inlining cast *IRQ_STATUS = (unumber)$f
|
|
Inlining cast *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)0
|
|
Inlining cast joyfire::return#2 = (unumber)1
|
|
Inlining cast joyfire::return#3 = (unumber)0
|
|
Inlining cast level_tile_get::return#1 = (unumber)0
|
|
Inlining cast level_tile_directions::return#1 = (unumber)0
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = (unumber)7
|
|
Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = (unumber)7
|
|
Inlining cast bobs_restore_base = (unumber)0
|
|
Inlining cast music_play_next = (unumber)1
|
|
Inlining cast ghosts_mode_count = (unumber)0
|
|
Inlining cast game_logic::do_reverse#1 = (unumber)1
|
|
Inlining cast ghosts_mode_count = (unumber)0
|
|
Inlining cast game_logic::do_reverse#2 = (unumber)1
|
|
Inlining cast ghosts_mode_count = (unumber)0
|
|
Inlining cast game_logic::do_reverse#3 = (unumber)1
|
|
Inlining cast ghost1_reverse = (unumber)1
|
|
Inlining cast ghost2_reverse = (unumber)1
|
|
Inlining cast ghost3_reverse = (unumber)1
|
|
Inlining cast ghost4_reverse = (unumber)1
|
|
Inlining cast ghosts_mode_count = (unumber)0
|
|
Inlining cast pacman_wins = (unumber)1
|
|
Inlining cast ghost4_xfine = (unumber)$32
|
|
Inlining cast ghost4_yfine = (unumber)$23
|
|
Inlining cast ghost4_substep = (unumber)0
|
|
Inlining cast ghost4_respawn = (unumber)$32
|
|
Inlining cast ghost3_xfine = (unumber)$32
|
|
Inlining cast ghost3_yfine = (unumber)$23
|
|
Inlining cast ghost3_substep = (unumber)0
|
|
Inlining cast ghost3_respawn = (unumber)$32
|
|
Inlining cast ghost2_xfine = (unumber)$32
|
|
Inlining cast ghost2_yfine = (unumber)$23
|
|
Inlining cast ghost2_substep = (unumber)0
|
|
Inlining cast ghost2_respawn = (unumber)$32
|
|
Inlining cast ghost1_xfine = (unumber)$32
|
|
Inlining cast ghost1_yfine = (unumber)$23
|
|
Inlining cast ghost1_substep = (unumber)0
|
|
Inlining cast ghost1_respawn = (unumber)$32
|
|
Inlining cast ghost4_substep = (unumber)1
|
|
Inlining cast ghost4_substep = (unumber)0
|
|
Inlining cast ghost4_reverse = (unumber)0
|
|
Inlining cast game_logic::target_xtile#1 = (unumber)2
|
|
Inlining cast game_logic::target_ytile#1 = (unumber)2
|
|
Inlining cast ghost4_xfine = (unumber)$61
|
|
Inlining cast ghost4_xfine = (unumber)1
|
|
Inlining cast ghost4_xfine = (unumber)2
|
|
Inlining cast ghost4_yfine = (unumber)2
|
|
Inlining cast ghost4_substep = (unumber)0
|
|
Inlining cast ghost3_substep = (unumber)1
|
|
Inlining cast ghost3_substep = (unumber)0
|
|
Inlining cast ghost3_reverse = (unumber)0
|
|
Inlining cast game_logic::target_xtile1#1 = (unumber)2
|
|
Inlining cast game_logic::target_ytile1#1 = (unumber)2
|
|
Inlining cast ghost3_xfine = (unumber)$61
|
|
Inlining cast ghost3_xfine = (unumber)1
|
|
Inlining cast ghost3_xfine = (unumber)2
|
|
Inlining cast ghost3_yfine = (unumber)$46
|
|
Inlining cast ghost3_substep = (unumber)0
|
|
Inlining cast ghost2_substep = (unumber)1
|
|
Inlining cast ghost2_substep = (unumber)0
|
|
Inlining cast ghost2_reverse = (unumber)0
|
|
Inlining cast game_logic::target_xtile2#1 = (unumber)2
|
|
Inlining cast game_logic::target_ytile2#1 = (unumber)2
|
|
Inlining cast ghost2_xfine = (unumber)$61
|
|
Inlining cast ghost2_xfine = (unumber)1
|
|
Inlining cast ghost2_xfine = (unumber)$60
|
|
Inlining cast ghost2_yfine = (unumber)$46
|
|
Inlining cast ghost2_substep = (unumber)0
|
|
Inlining cast ghost1_substep = (unumber)1
|
|
Inlining cast ghost1_substep = (unumber)0
|
|
Inlining cast ghost1_reverse = (unumber)0
|
|
Inlining cast game_logic::target_xtile3#1 = (unumber)2
|
|
Inlining cast game_logic::target_ytile3#1 = (unumber)2
|
|
Inlining cast ghost1_xfine = (unumber)$61
|
|
Inlining cast ghost1_xfine = (unumber)1
|
|
Inlining cast ghost1_xfine = (unumber)$60
|
|
Inlining cast ghost1_yfine = (unumber)2
|
|
Inlining cast ghost1_substep = (unumber)0
|
|
Inlining cast pacman_substep = (unumber)1
|
|
Inlining cast pacman_ch1_enabled = (unumber)1
|
|
Inlining cast pacman_substep = (unumber)0
|
|
Inlining cast pacman_xfine = (unumber)$61
|
|
Inlining cast pacman_xfine = (unumber)1
|
|
Inlining cast ghosts_mode_count = (unumber)0
|
|
Inlining cast pacman_substep = (unumber)0
|
|
Inlining cast ghost1_substep = (unumber)0
|
|
Inlining cast ghost2_substep = (unumber)0
|
|
Inlining cast ghost3_substep = (unumber)0
|
|
Inlining cast ghost4_substep = (unumber)0
|
|
Inlining cast pacman_xfine = (unumber)$32
|
|
Inlining cast ghost1_xfine = (unumber)$32
|
|
Inlining cast ghost2_xfine = (unumber)$32
|
|
Inlining cast ghost3_xfine = (unumber)$32
|
|
Inlining cast ghost4_xfine = (unumber)$32
|
|
Inlining cast ghost1_yfine = (unumber)$23
|
|
Inlining cast ghost2_yfine = (unumber)$23
|
|
Inlining cast ghost3_yfine = (unumber)$23
|
|
Inlining cast ghost4_yfine = (unumber)$23
|
|
Inlining cast pacman_yfine = (unumber)$3e
|
|
Inlining cast ghost1_respawn = (unumber)$a
|
|
Inlining cast ghost2_respawn = (unumber)$14
|
|
Inlining cast ghost3_respawn = (unumber)$1e
|
|
Inlining cast ghost4_respawn = (unumber)$28
|
|
Successful SSA optimization Pass2InlineCast
|
|
Simplifying constant pointer cast (char *) 53248
|
|
Simplifying constant pointer cast (char *) 53249
|
|
Simplifying constant pointer cast (char *) 53287
|
|
Simplifying constant pointer cast (char *) 53266
|
|
Simplifying constant pointer cast (char *) 53280
|
|
Simplifying constant pointer cast (char *) 53265
|
|
Simplifying constant pointer cast (char *) 53270
|
|
Simplifying constant pointer cast (char *) 53272
|
|
Simplifying constant pointer cast (char *) 53273
|
|
Simplifying constant pointer cast (char *) 54273
|
|
Simplifying constant pointer cast (char *) 0
|
|
Simplifying constant pointer cast (char *) 1
|
|
Simplifying constant pointer cast (struct MOS6581_SID *) 54272
|
|
Simplifying constant pointer cast (struct MOS6569_VICII *) 53248
|
|
Simplifying constant pointer cast (struct MOS6526_CIA *) 56320
|
|
Simplifying constant pointer cast (struct MOS6526_CIA *) 56576
|
|
Simplifying constant pointer cast (char *) 56333
|
|
Simplifying constant pointer cast (void (**)()) 65534
|
|
Simplifying constant pointer cast (char *) 16384
|
|
Simplifying constant pointer cast (char *) 24576
|
|
Simplifying constant pointer cast (char *) 16384
|
|
Simplifying constant pointer cast (char *) 49152
|
|
Simplifying constant pointer cast (char *) 57344
|
|
Simplifying constant pointer cast (char *) 49152
|
|
Simplifying constant pointer cast (char *) 57344
|
|
Simplifying constant pointer cast (char *) 24576
|
|
Simplifying constant pointer cast (char *) 32768
|
|
Simplifying constant pointer cast (char *) 16384
|
|
Simplifying constant pointer cast (char *) 42752
|
|
Simplifying constant pointer cast (char *) 42752
|
|
Simplifying constant pointer cast (char *) 18432
|
|
Simplifying constant integer cast $a00
|
|
Simplifying constant integer cast $a80
|
|
Simplifying constant integer cast $b00
|
|
Simplifying constant pointer cast (char *) 15872
|
|
Simplifying constant pointer cast (char *) 21504
|
|
Simplifying constant integer cast BOB_ROW_SIZE*(unumber)6
|
|
Simplifying constant integer cast 6
|
|
Simplifying constant integer cast BOB_ROW_SIZE*(unumber)$c
|
|
Simplifying constant integer cast $c
|
|
Simplifying constant integer cast BOB_ROW_SIZE*(unumber)$12
|
|
Simplifying constant integer cast $12
|
|
Simplifying constant pointer cast (char *) 46592
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant pointer cast (char *) 59904
|
|
Simplifying constant pointer cast (char *) 42752
|
|
Simplifying constant pointer cast (char *) 12288
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 6
|
|
Simplifying constant integer cast $3fff
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast $24
|
|
Simplifying constant integer cast $ea
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast $ea
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $60
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $f0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $1a
|
|
Simplifying constant integer cast $18
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $b
|
|
Simplifying constant integer cast $94
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $17
|
|
Simplifying constant integer cast $100
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $15
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast NUM_BOBS*(unumber)2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $c
|
|
Simplifying constant integer cast $c
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $2f
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast $a
|
|
Simplifying constant integer cast $2d
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $19
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $19
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant pointer cast (char *) 16384
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $c00
|
|
Simplifying constant integer cast $2000
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $1fff
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $3fff
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $1fff
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast $3fff
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast $80
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast $a
|
|
Simplifying constant integer cast $2d
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $fa
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $2f
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast $ff
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $fb
|
|
Simplifying constant integer cast $fa
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $10
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $19
|
|
Simplifying constant integer cast $93
|
|
Simplifying constant integer cast $25
|
|
Simplifying constant integer cast $19
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast $31
|
|
Simplifying constant integer cast $24
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $31
|
|
Simplifying constant integer cast $24
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $25
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $e
|
|
Simplifying constant integer cast 8
|
|
Simplifying constant integer cast $400
|
|
Simplifying constant integer cast $400
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast $3fff
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 5
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 6
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $96
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $fe
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $fe
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $46
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $60
|
|
Simplifying constant integer cast $46
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $60
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast 2
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast 4
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast $61
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $32
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast $23
|
|
Simplifying constant integer cast $3e
|
|
Simplifying constant integer cast $a
|
|
Simplifying constant integer cast $14
|
|
Simplifying constant integer cast $1e
|
|
Simplifying constant integer cast $28
|
|
Successful SSA optimization PassNCastSimplification
|
|
Finalized unsigned number type (unsigned int) $a00
|
|
Finalized unsigned number type (unsigned int) $a80
|
|
Finalized unsigned number type (unsigned int) $b00
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $3fff
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (char) $ea
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) $ea
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $60
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $f0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $1a
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $b
|
|
Finalized unsigned number type (char) $94
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $17
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $2f
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) $a
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $19
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $19
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (unsigned int) $c00
|
|
Finalized unsigned number type (unsigned int) $2000
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (unsigned int) $1fff
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (unsigned int) $3fff
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (unsigned int) $1fff
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $3fff
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) $ff
|
|
Finalized unsigned number type (char) $ff
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) $a
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $fa
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $2f
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (char) $ff
|
|
Finalized unsigned number type (char) $ff
|
|
Finalized unsigned number type (char) $ff
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) $fb
|
|
Finalized unsigned number type (char) $fa
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $10
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $19
|
|
Finalized unsigned number type (char) $93
|
|
Finalized unsigned number type (char) $25
|
|
Finalized unsigned number type (char) $19
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $31
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $31
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $25
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) $e
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (unsigned int) $400
|
|
Finalized unsigned number type (unsigned int) $400
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (unsigned int) $3fff
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 5
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 7
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $96
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $fe
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $fe
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $46
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) $60
|
|
Finalized unsigned number type (char) $46
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) $60
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) $61
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $32
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) $23
|
|
Finalized unsigned number type (char) $3e
|
|
Finalized unsigned number type (char) $a
|
|
Finalized unsigned number type (char) $14
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (char) $28
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Inferred type updated to char in merge_code::$5 = merge_code::cycle_budget#5 - 1
|
|
Inferred type updated to char in render::$2 = render::ytile#0 * 2
|
|
Inferred type updated to char in render_tiles::$0 = render_tiles::tile_left#1 * 4
|
|
Inferred type updated to char in render_tiles::$2 = render_tiles::tile_right#1 * 4
|
|
Inferred type updated to char in render_tiles::$5 = render_tiles::ytile#1 * 2
|
|
Inferred type updated to char in splash_run::$23 = splash_run::i#3 * 2
|
|
Inferred type updated to char in splash_run::$24 = splash_run::i#3 * 2
|
|
Inferred type updated to char in splash_run::toDd001_$1 = splash_run::toDd001_$0 / $40
|
|
Inferred type updated to char in splash_run::toDd001_$2 = 3 ^ splash_run::toDd001_$1
|
|
Inferred type updated to unsigned int in splash_run::toD0181_$0 = splash_run::toD0181_$7 & $3fff
|
|
Inferred type updated to unsigned int in splash_run::toD0181_$1 = splash_run::toD0181_$0 * 4
|
|
Inferred type updated to char in splash_run::toD0181_$4 = splash_run::toD0181_$3 / 4
|
|
Inferred type updated to char in splash_run::toD0181_$5 = splash_run::toD0181_$4 & $f
|
|
Inferred type updated to char in splash_run::toD0181_$6 = splash_run::toD0181_$2 | splash_run::toD0181_$5
|
|
Inferred type updated to char in joyfire::$0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $10
|
|
Inferred type updated to char in init_level_tile_directions::$2 = init_level_tile_directions::xtile#3 - 1
|
|
Inferred type updated to char in init_level_tile_directions::$6 = init_level_tile_directions::xtile#4 + 1
|
|
Inferred type updated to char in init_level_tile_directions::$10 = init_level_tile_directions::ytile#6 - 1
|
|
Inferred type updated to char in init_level_tile_directions::$14 = init_level_tile_directions::ytile#7 + 1
|
|
Inferred type updated to unsigned int in irq_screen_top::toD0181_$0 = irq_screen_top::toD0181_$7 & $3fff
|
|
Inferred type updated to unsigned int in irq_screen_top::toD0181_$1 = irq_screen_top::toD0181_$0 * 4
|
|
Inferred type updated to char in irq_screen_top::toD0181_$4 = irq_screen_top::toD0181_$3 / 4
|
|
Inferred type updated to char in irq_screen_top::toD0181_$5 = irq_screen_top::toD0181_$4 & $f
|
|
Inferred type updated to char in irq_screen_top::toD0181_$6 = irq_screen_top::toD0181_$2 | irq_screen_top::toD0181_$5
|
|
Inferred type updated to char in irq_screen_top::$1 = frame + 1
|
|
Inferred type updated to char in irq_screen_top::$2 = irq_screen_top::$1 & 1
|
|
Inferred type updated to char in irq_screen_top::toDd001_$1 = irq_screen_top::toDd001_$0 / $40
|
|
Inferred type updated to char in irq_screen_top::toDd001_$2 = 3 ^ irq_screen_top::toDd001_$1
|
|
Inferred type updated to char in irq_screen_top::toDd002_$1 = irq_screen_top::toDd002_$0 / $40
|
|
Inferred type updated to char in irq_screen_top::toDd002_$2 = 3 ^ irq_screen_top::toDd002_$1
|
|
Inferred type updated to char in game_logic::$2 = game_logic_substep + 1
|
|
Inferred type updated to char in game_logic::$3 = game_logic::$2 & 7
|
|
Inferred type updated to char in game_logic::$14 = anim_frame_idx + 1
|
|
Inferred type updated to char in game_logic::$15 = game_logic::$14 & 3
|
|
Inferred type updated to char in game_logic::$17 = game_logic::pacman_bob_xfine#0 / 4
|
|
Inferred type updated to char in game_logic::$18 = pacman_yfine - 1
|
|
Inferred type updated to char in game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3
|
|
Inferred type updated to char in game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20
|
|
Inferred type updated to char in game_logic::$25 = game_logic::ghost1_bob_xfine#0 / 4
|
|
Inferred type updated to char in game_logic::$26 = ghost1_yfine - 1
|
|
Inferred type updated to char in game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3
|
|
Inferred type updated to char in game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28
|
|
Inferred type updated to char in game_logic::$31 = game_logic::ghost2_bob_xfine#0 / 4
|
|
Inferred type updated to char in game_logic::$32 = ghost2_yfine - 1
|
|
Inferred type updated to char in game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3
|
|
Inferred type updated to char in game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34
|
|
Inferred type updated to char in game_logic::$37 = game_logic::ghost3_bob_xfine#0 / 4
|
|
Inferred type updated to char in game_logic::$38 = ghost3_yfine - 1
|
|
Inferred type updated to char in game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3
|
|
Inferred type updated to char in game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40
|
|
Inferred type updated to char in game_logic::$43 = game_logic::ghost4_bob_xfine#0 / 4
|
|
Inferred type updated to char in game_logic::$44 = ghost4_yfine - 1
|
|
Inferred type updated to char in game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3
|
|
Inferred type updated to char in game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46
|
|
Inferred type updated to char in game_logic::$69 = game_logic::pacman_xtile#1 / 2
|
|
Inferred type updated to char in game_logic::$70 = game_logic::pacman_xtile#1 & $fe
|
|
Inferred type updated to char in game_logic::$72 = game_logic::pacman_ytile#1 * 2
|
|
Inferred type updated to char in game_logic::$65 = game_logic::pacman_xtile#2 / 2
|
|
Inferred type updated to char in game_logic::$66 = game_logic::pacman_xtile#2 & $fe
|
|
Inferred type updated to char in game_logic::$68 = game_logic::pacman_ytile#2 * 2
|
|
Inferred type updated to char in game_logic::$117 = pacman_xfine / 2
|
|
Inferred type updated to char in game_logic::$118 = pacman_yfine / 2
|
|
Inferred type updated to char in game_logic::$138 = pacman_xfine / 2
|
|
Inferred type updated to char in game_logic::$139 = pacman_yfine / 2
|
|
Inferred type updated to char in game_logic::$159 = pacman_xfine / 2
|
|
Inferred type updated to char in game_logic::$160 = pacman_yfine / 2
|
|
Inferred type updated to char in game_logic::$180 = pacman_xfine / 2
|
|
Inferred type updated to char in game_logic::$181 = pacman_yfine / 2
|
|
Inferred type updated to char in game_logic::$199 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $f
|
|
Inferred type updated to char in game_logic::$200 = game_logic::$199 ^ $f
|
|
Inferred type updated to char in choose_direction::$10 = choose_direction::ydiff#1 - 1
|
|
Inferred type updated to char in choose_direction::$14 = choose_direction::ydiff#2 + 1
|
|
Inferred type updated to char in choose_direction::$18 = choose_direction::xdiff#3 - 1
|
|
Inferred type updated to char in choose_direction::$22 = choose_direction::xdiff#4 + 1
|
|
Inversing boolean not [19] memset::$1 = memset::num#5 <= 0 from [18] memset::$0 = memset::num#5 > 0
|
|
Inversing boolean not [51] merge_code::$2 = merge_code::cycle_budget#0 != merge_code::RASTER_EXIT from [50] merge_code::$1 = merge_code::cycle_budget#0 == merge_code::RASTER_EXIT
|
|
Inversing boolean not [120] pacman_sound_play::$0 = 0 == pacman_ch1_enabled from [119] pacman_sound_play::$4 = 0 != pacman_ch1_enabled
|
|
Inversing boolean not [127] pacman_sound_play::$3 = pacman_ch1_idx != pacman_sound_play::$1 from [126] pacman_sound_play::$2 = pacman_ch1_idx == pacman_sound_play::$1
|
|
Inversing boolean not [141] init_render_index::$2 = init_render_index::x_col#3 < $18 from [140] init_render_index::$1 = init_render_index::x_col#3 >= $18
|
|
Inversing boolean not [167] init_render_index::$8 = init_render_index::ypos_inc_offset#2 < $17 from [166] init_render_index::$7 = init_render_index::ypos_inc_offset#2 >= $17
|
|
Inversing boolean not [313] done_run::$9 = 0 == done_run::$8 from [312] done_run::$13 = 0 != done_run::$8
|
|
Inversing boolean not [316] done_run::$10 = 0 == music_play_next from [315] done_run::$14 = 0 != music_play_next
|
|
Inversing boolean not [390] splash_run::$26 = 0 == splash_run::$25 from [389] splash_run::$35 = 0 != splash_run::$25
|
|
Inversing boolean not [479] splash_run::$31 = 0 == splash_run::$30 from [478] splash_run::$36 = 0 != splash_run::$30
|
|
Inversing boolean not [482] splash_run::$32 = 0 == music_play_next from [481] splash_run::$37 = 0 != music_play_next
|
|
Inversing boolean not [602] level_show::$3 = TILES_TYPE[level_show::tile_left#0] != PILL from [601] level_show::$2 = TILES_TYPE[level_show::tile_left#0] == PILL
|
|
Inversing boolean not [611] level_show::$5 = TILES_TYPE[level_show::tile_right#0] != PILL from [610] level_show::$4 = TILES_TYPE[level_show::tile_right#0] == PILL
|
|
Inversing boolean not [676] init_level_tile_directions::$5 = TILES_TYPE[init_level_tile_directions::$3] == WALL from [675] init_level_tile_directions::$4 = TILES_TYPE[init_level_tile_directions::$3] != WALL
|
|
Inversing boolean not [690] init_level_tile_directions::$9 = TILES_TYPE[init_level_tile_directions::$7] == WALL from [689] init_level_tile_directions::$8 = TILES_TYPE[init_level_tile_directions::$7] != WALL
|
|
Inversing boolean not [703] init_level_tile_directions::$13 = TILES_TYPE[init_level_tile_directions::$11] == WALL from [702] init_level_tile_directions::$12 = TILES_TYPE[init_level_tile_directions::$11] != WALL
|
|
Inversing boolean not [716] init_level_tile_directions::$17 = TILES_TYPE[init_level_tile_directions::$15] == WALL from [715] init_level_tile_directions::$16 = TILES_TYPE[init_level_tile_directions::$15] != WALL
|
|
Inversing boolean not [819] game_logic::$1 = game_playable != 0 from [818] game_logic::$0 = game_playable == 0
|
|
Inversing boolean not [870] game_logic::$23 = ghosts_mode != FRIGHTENED from [869] game_logic::$22 = ghosts_mode == FRIGHTENED
|
|
Inversing boolean not [913] game_logic::$57 = ghosts_mode_count <= $32 from [912] game_logic::$56 = ghosts_mode_count > $32
|
|
Inversing boolean not [920] game_logic::$55 = ghosts_mode_count <= $96 from [919] game_logic::$54 = ghosts_mode_count > $96
|
|
Inversing boolean not [924] game_logic::$51 = ghosts_mode != FRIGHTENED from [923] game_logic::$50 = ghosts_mode == FRIGHTENED
|
|
Inversing boolean not [928] game_logic::$53 = ghosts_mode_count <= $32 from [927] game_logic::$52 = ghosts_mode_count > $32
|
|
Inversing boolean not [938] game_logic::$58 = 0 == game_logic::do_reverse#4 from [937] game_logic::$219 = 0 != game_logic::do_reverse#4
|
|
Inversing boolean not [965] game_logic::$74 = pill_count != 0 from [964] game_logic::$73 = pill_count == 0
|
|
Inversing boolean not [969] game_logic::$64 = TILES_TYPE[game_logic::tile_id#1] != POWERUP from [968] game_logic::$63 = TILES_TYPE[game_logic::tile_id#1] == POWERUP
|
|
Inversing boolean not [1046] game_logic::$124 = ghost4_respawn != 0 from [1045] game_logic::$123 = ghost4_respawn == 0
|
|
Inversing boolean not [1058] game_logic::$108 = ghost4_direction != UP from [1057] game_logic::$107 = ghost4_direction == UP
|
|
Inversing boolean not [1112] game_logic::$122 = ghost4_xfine != $61 from [1111] game_logic::$121 = ghost4_xfine == $61
|
|
Inversing boolean not [1121] game_logic::$145 = ghost3_respawn != 0 from [1120] game_logic::$144 = ghost3_respawn == 0
|
|
Inversing boolean not [1133] game_logic::$129 = ghost3_direction != UP from [1132] game_logic::$128 = ghost3_direction == UP
|
|
Inversing boolean not [1187] game_logic::$143 = ghost3_xfine != $61 from [1186] game_logic::$142 = ghost3_xfine == $61
|
|
Inversing boolean not [1196] game_logic::$166 = ghost2_respawn != 0 from [1195] game_logic::$165 = ghost2_respawn == 0
|
|
Inversing boolean not [1208] game_logic::$150 = ghost2_direction != UP from [1207] game_logic::$149 = ghost2_direction == UP
|
|
Inversing boolean not [1262] game_logic::$164 = ghost2_xfine != $61 from [1261] game_logic::$163 = ghost2_xfine == $61
|
|
Inversing boolean not [1271] game_logic::$187 = ghost1_respawn != 0 from [1270] game_logic::$186 = ghost1_respawn == 0
|
|
Inversing boolean not [1283] game_logic::$171 = ghost1_direction != UP from [1282] game_logic::$170 = ghost1_direction == UP
|
|
Inversing boolean not [1337] game_logic::$185 = ghost1_xfine != $61 from [1336] game_logic::$184 = ghost1_xfine == $61
|
|
Inversing boolean not [1352] game_logic::$192 = pacman_direction != UP from [1351] game_logic::$191 = pacman_direction == UP
|
|
Inversing boolean not [1376] game_logic::$203 = game_logic::joy_directions#0 == 0 from [1375] game_logic::$202 = game_logic::joy_directions#0 != 0
|
|
Inversing boolean not [1384] game_logic::$206 = game_logic::new_direction#0 == 0 from [1383] game_logic::$205 = game_logic::new_direction#0 != 0
|
|
Inversing boolean not [1390] game_logic::$209 = pacman_xfine != $61 from [1389] game_logic::$208 = pacman_xfine == $61
|
|
Inversing boolean not [1400] choose_direction::$3 = 0 == choose_direction::$2 from [1399] choose_direction::$26 = 0 != choose_direction::$2
|
|
Inversing boolean not [1405] choose_direction::$5 = 0 == choose_direction::$4 from [1404] choose_direction::$27 = 0 != choose_direction::$4
|
|
Inversing boolean not [1411] choose_direction::$13 = choose_direction::dist_up#0 >= choose_direction::dist_min#5 from [1410] choose_direction::$12 = choose_direction::dist_up#0 < choose_direction::dist_min#5
|
|
Inversing boolean not [1419] choose_direction::$7 = 0 == choose_direction::$6 from [1418] choose_direction::$28 = 0 != choose_direction::$6
|
|
Inversing boolean not [1425] choose_direction::$17 = choose_direction::dist_down#0 >= choose_direction::dist_min#6 from [1424] choose_direction::$16 = choose_direction::dist_down#0 < choose_direction::dist_min#6
|
|
Inversing boolean not [1433] choose_direction::$9 = 0 == choose_direction::$8 from [1432] choose_direction::$29 = 0 != choose_direction::$8
|
|
Inversing boolean not [1439] choose_direction::$21 = choose_direction::dist_left#0 >= choose_direction::dist_min#7 from [1438] choose_direction::$20 = choose_direction::dist_left#0 < choose_direction::dist_min#7
|
|
Inversing boolean not [1450] choose_direction::$25 = choose_direction::dist_right#0 >= choose_direction::dist_min#8 from [1449] choose_direction::$24 = choose_direction::dist_right#0 < choose_direction::dist_min#8
|
|
Successful SSA optimization Pass2UnaryNotSimplification
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Alias memcpy::src#2 = memcpy::src#3
|
|
Alias memcpy::dst#2 = memcpy::dst#3
|
|
Alias memcpy::src_end#1 = memcpy::src_end#2
|
|
Alias memcpy::destination#2 = memcpy::destination#4 memcpy::destination#3 memcpy::return#0 memcpy::return#3 memcpy::return#1
|
|
Alias memset::return#0 = memset::str#5 memset::return#7 memset::return#1
|
|
Alias memset::str#6 = memset::str#7
|
|
Alias memset::num#5 = memset::num#6
|
|
Alias memset::c#7 = memset::c#8
|
|
Alias memset::c#5 = memset::c#6
|
|
Alias memset::dst#2 = memset::dst#3
|
|
Alias memset::end#1 = memset::end#2
|
|
Alias memset::str#8 = memset::str#9
|
|
Alias merge_code::raster_code#4 = merge_code::raster_code#5 merge_code::raster_code#6
|
|
Alias merge_code::dest_code#14 = merge_code::dest_code#8 merge_code::dest_code#23
|
|
Alias merge_code::logic_code#18 = merge_code::logic_code#22 merge_code::logic_code#19
|
|
Alias merge_code::logic_code#17 = merge_code::logic_code#7 merge_code::logic_code#8
|
|
Alias merge_code::cycle_budget#13 = merge_code::cycle_budget#5 merge_code::cycle_budget#4
|
|
Alias merge_code::raster_code#11 = merge_code::raster_code#12 merge_code::raster_code#17
|
|
Alias merge_code::dest_code#21 = merge_code::dest_code#25 merge_code::dest_code#26
|
|
Alias merge_code::logic_cycles#0 = merge_code::logic_cycles#4
|
|
Alias merge_code::logic_code#10 = merge_code::logic_code#9 merge_code::logic_code#11
|
|
Alias merge_code::dest_code#15 = merge_code::dest_code#9 merge_code::dest_code#27
|
|
Alias merge_code::cycle_budget#11 = merge_code::cycle_budget#12 merge_code::cycle_budget#6
|
|
Alias merge_code::logic_cycles#1 = merge_code::logic_cycles#3 merge_code::logic_cycles#2
|
|
Alias merge_code::raster_code#13 = merge_code::raster_code#16 merge_code::raster_code#15
|
|
Alias merge_code::cycle_budget#10 = merge_code::cycle_budget#8 merge_code::cycle_budget#7 merge_code::cycle_budget#9
|
|
Alias merge_code::dest_code#10 = merge_code::dest_code#16 merge_code::dest_code#20 merge_code::dest_code#11
|
|
Alias merge_code::raster_code#10 = merge_code::raster_code#14 merge_code::raster_code#8 merge_code::raster_code#9
|
|
Alias merge_code::logic_code#21 = merge_code::logic_code#25 merge_code::logic_code#23 merge_code::logic_code#24
|
|
Alias merge_code::logic_code#12 = merge_code::logic_code#13
|
|
Alias merge_code::dest_code#12 = merge_code::dest_code#24 merge_code::dest_code#17
|
|
Alias merge_code::logic_code#14 = merge_code::logic_code#15 merge_code::logic_code#16
|
|
Alias merge_code::dest_code#13 = merge_code::dest_code#18 merge_code::dest_code#22
|
|
Alias init_render_index::x_col#2 = init_render_index::x_col#3 init_render_index::x_col#6
|
|
Alias init_render_index::render_index#4 = init_render_index::render_index#5 init_render_index::render_index#7
|
|
Alias init_render_index::render_index_xcol#0 = init_render_index::render_index#2
|
|
Alias init_render_index::y_pos#2 = init_render_index::y_pos#3 init_render_index::y_pos#5
|
|
Alias init_render_index::canvas_xcol#1 = init_render_index::canvas_xcol#2 init_render_index::canvas_xcol#4
|
|
Alias init_render_index::render_ypos_table#2 = init_render_index::render_ypos_table#3 init_render_index::render_ypos_table#6
|
|
Alias init_render_index::render_index_xcol#2 = init_render_index::render_index_xcol#4 init_render_index::render_index_xcol#5
|
|
Alias init_render_index::ypos_inc_offset#4 = init_render_index::ypos_inc_offset#6
|
|
Alias init_render_index::render_index#10 = init_render_index::render_index#9 init_render_index::render_index#6 init_render_index::render_index#3
|
|
Alias init_render_index::x_col#10 = init_render_index::x_col#9 init_render_index::x_col#7 init_render_index::x_col#5
|
|
Alias init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#5
|
|
Alias render::canvas1#2 = render::canvas1#4 render::canvas1#3
|
|
Alias render::ypos_inc_offset#2 = render::ypos_inc_offset#3
|
|
Alias render::canvas2#2 = render::canvas2#4 render::canvas2#3
|
|
Alias render::i#2 = render::i#3
|
|
Alias render::ypix#1 = render::ypix#2
|
|
Alias render::pixels#2 = render::pixels#5 render::pixels#3
|
|
Alias render_tiles::tile_left_pixels#1 = render_tiles::tile_left_pixels#2
|
|
Alias render_tiles::y#2 = render_tiles::y#3
|
|
Alias render_tiles::tile_right_pixels#1 = render_tiles::tile_right_pixels#2
|
|
Alias render_tiles::canvas1#2 = render_tiles::canvas1#3
|
|
Alias render_tiles::canvas2#2 = render_tiles::canvas2#3
|
|
Alias render_tiles::ypos_inc_offset#2 = render_tiles::ypos_inc_offset#3
|
|
Alias init_bobs_restore::bob_restore#5 = init_bobs_restore::bob_restore#6
|
|
Alias init_bobs_restore::bob#2 = init_bobs_restore::bob#5
|
|
Alias init_bobs_restore::bob_restore#2 = init_bobs_restore::bob_restore#4 init_bobs_restore::bob_restore#3
|
|
Alias init_bobs_restore::i#2 = init_bobs_restore::i#3
|
|
Alias init_bobs_restore::bob#3 = init_bobs_restore::bob#6 init_bobs_restore::bob#4
|
|
Alias done_run::i#2 = done_run::i#3
|
|
Alias done_run::i1#2 = done_run::i1#3
|
|
Alias done_run::gfx#4 = done_run::gfx#6
|
|
Alias done_run::xcol#2 = done_run::xcol#6
|
|
Alias done_run::gfx#2 = done_run::gfx#3 done_run::gfx#7
|
|
Alias done_run::xcol#3 = done_run::xcol#5 done_run::xcol#7 done_run::xcol#4
|
|
Alias done_run::ypos#2 = done_run::ypos#3 done_run::ypos#4
|
|
Alias done_run::gfx#1 = done_run::gfx#5
|
|
Alias joyfire::return#0 = joyfire::return#5
|
|
Alias splash_run::i#2 = splash_run::i#3 splash_run::i#5
|
|
Alias splash_run::msb#10 = splash_run::msb#3 splash_run::msb#6 splash_run::msb#13 splash_run::msb#12 splash_run::msb#11 splash_run::msb#9 splash_run::msb#7 splash_run::msb#4
|
|
Alias splash_run::toDd001_gfx#0 = splash_run::toDd001_gfx#1
|
|
Alias splash_run::toDd001_return#0 = splash_run::toDd001_$2 splash_run::toDd001_return#2 splash_run::toDd001_return#1 splash_run::toDd001_return#3 splash_run::$17
|
|
Alias splash_run::toD0181_screen#0 = splash_run::toD0181_screen#1
|
|
Alias splash_run::toD0181_gfx#0 = splash_run::toD0181_gfx#1
|
|
Alias splash_run::toD0181_return#0 = splash_run::toD0181_$6 splash_run::toD0181_return#2 splash_run::toD0181_return#1 splash_run::toD0181_return#3 splash_run::$18
|
|
Alias splash_run::msb#1 = splash_run::msb#5
|
|
Alias splash_run::i1#2 = splash_run::i1#3
|
|
Alias splash_run::i2#2 = splash_run::i2#3
|
|
Alias joyfire::return#1 = joyfire::return#6
|
|
Alias gameplay_run::i#2 = gameplay_run::i#3
|
|
Alias gameplay_run::i1#2 = gameplay_run::i1#3
|
|
Alias level_show::return#0 = level_show::return#3
|
|
Alias gameplay_run::i2#2 = gameplay_run::i2#3
|
|
Alias joyfire::return#4 = joyfire::return#7
|
|
Alias splash_show::splash#4 = splash_show::splash#6
|
|
Alias splash_show::xcol#2 = splash_show::xcol#6
|
|
Alias splash_show::splash#2 = splash_show::splash#3 splash_show::splash#7
|
|
Alias splash_show::xcol#3 = splash_show::xcol#5 splash_show::xcol#7 splash_show::xcol#4
|
|
Alias splash_show::ypos#2 = splash_show::ypos#3 splash_show::ypos#4
|
|
Alias splash_show::splash#1 = splash_show::splash#5
|
|
Alias level_show::level#8 = level_show::level#9
|
|
Alias level_show::ytile#2 = level_show::ytile#9
|
|
Alias level_show::count#12 = level_show::count#6 level_show::count#3 level_show::return#1 level_show::return#4 level_show::return#2
|
|
Alias level_show::level#2 = level_show::level#5 level_show::level#3 level_show::level#6
|
|
Alias level_show::xtile#3 = level_show::xtile#5
|
|
Alias level_show::count#10 = level_show::count#7 level_show::count#9 level_show::count#4
|
|
Alias level_show::xcol#2 = level_show::xcol#7 level_show::xcol#8
|
|
Alias level_show::ytile#10 = level_show::ytile#5 level_show::ytile#3 level_show::ytile#11
|
|
Alias level_show::xtile#1 = level_show::xtile#6
|
|
Alias level_show::tile_left#0 = level_show::tile_left#4
|
|
Alias level_show::xcol#3 = level_show::xcol#4
|
|
Alias level_show::level#10 = level_show::level#7
|
|
Alias level_show::xtile#7 = level_show::xtile#8
|
|
Alias level_show::ytile#4 = level_show::ytile#8
|
|
Alias level_show::count#11 = level_show::count#13
|
|
Alias level_show::count#5 = level_show::count#8
|
|
Alias level_show::xcol#5 = level_show::xcol#6
|
|
Alias level_show::ytile#6 = level_show::ytile#7
|
|
Alias level_show::tile_left#2 = level_show::tile_left#3
|
|
Alias level_show::tile_right#0 = level_show::tile_right#2
|
|
Alias level_show::level#11 = level_show::level#4
|
|
Alias level_show::xtile#2 = level_show::xtile#9
|
|
Alias level_tile_get::ytile#4 = level_tile_get::ytile#5
|
|
Alias level_tile_get::xtile#4 = level_tile_get::xtile#5
|
|
Alias level_tile_get::return#2 = level_tile_get::return#7
|
|
Alias level_tile_directions::ytile#5 = level_tile_directions::ytile#6
|
|
Alias level_tile_directions::xtile#5 = level_tile_directions::xtile#6
|
|
Alias level_tile_directions::return#2 = level_tile_directions::return#8
|
|
Alias init_level_tile_directions::ytile#15 = init_level_tile_directions::ytile#2
|
|
Alias init_level_tile_directions::directions#7 = init_level_tile_directions::directions#9
|
|
Alias init_level_tile_directions::xtile#2 = init_level_tile_directions::xtile#3 init_level_tile_directions::xtile#9 init_level_tile_directions::xtile#8
|
|
Alias init_level_tile_directions::ytile#10 = init_level_tile_directions::ytile#3 init_level_tile_directions::ytile#8 init_level_tile_directions::ytile#4 init_level_tile_directions::ytile#9
|
|
Alias init_level_tile_directions::directions#16 = init_level_tile_directions::directions#18 init_level_tile_directions::directions#4 init_level_tile_directions::directions#17 init_level_tile_directions::directions#2
|
|
Alias level_tile_get::xtile#0 = init_level_tile_directions::$2
|
|
Alias level_tile_get::return#3 = level_tile_get::return#8
|
|
Alias init_level_tile_directions::open_directions#0 = init_level_tile_directions::open_directions#10 init_level_tile_directions::open_directions#5
|
|
Alias level_tile_get::xtile#1 = init_level_tile_directions::$6
|
|
Alias level_tile_get::return#4 = level_tile_get::return#9
|
|
Alias init_level_tile_directions::ytile#11 = init_level_tile_directions::ytile#12 init_level_tile_directions::ytile#5
|
|
Alias init_level_tile_directions::xtile#10 = init_level_tile_directions::xtile#11 init_level_tile_directions::xtile#4
|
|
Alias init_level_tile_directions::open_directions#11 = init_level_tile_directions::open_directions#14 init_level_tile_directions::open_directions#6
|
|
Alias init_level_tile_directions::directions#13 = init_level_tile_directions::directions#14 init_level_tile_directions::directions#15
|
|
Alias level_tile_get::ytile#2 = init_level_tile_directions::$10
|
|
Alias level_tile_get::return#10 = level_tile_get::return#5
|
|
Alias init_level_tile_directions::ytile#13 = init_level_tile_directions::ytile#14 init_level_tile_directions::ytile#6
|
|
Alias init_level_tile_directions::xtile#12 = init_level_tile_directions::xtile#13 init_level_tile_directions::xtile#5
|
|
Alias init_level_tile_directions::open_directions#12 = init_level_tile_directions::open_directions#15 init_level_tile_directions::open_directions#7
|
|
Alias init_level_tile_directions::directions#10 = init_level_tile_directions::directions#11 init_level_tile_directions::directions#12
|
|
Alias level_tile_get::ytile#3 = init_level_tile_directions::$14
|
|
Alias level_tile_get::return#11 = level_tile_get::return#6
|
|
Alias init_level_tile_directions::open_directions#13 = init_level_tile_directions::open_directions#16 init_level_tile_directions::open_directions#9
|
|
Alias init_level_tile_directions::directions#5 = init_level_tile_directions::directions#6 init_level_tile_directions::directions#8
|
|
Alias init_level_tile_directions::xtile#14 = init_level_tile_directions::xtile#15 init_level_tile_directions::xtile#6
|
|
Alias init_level_tile_directions::ytile#17 = init_level_tile_directions::ytile#18 init_level_tile_directions::ytile#7
|
|
Alias init_sprite_pointers::screen#2 = init_sprite_pointers::screen#6
|
|
Alias init_sprite_pointers::sprites_ptr_1#5 = init_sprite_pointers::sprites_ptr_1#6
|
|
Alias init_sprite_pointers::sprites_ptr_2#5 = init_sprite_pointers::sprites_ptr_2#6
|
|
Alias init_sprite_pointers::screen#3 = init_sprite_pointers::screen#5 init_sprite_pointers::screen#4
|
|
Alias init_sprite_pointers::sprite#2 = init_sprite_pointers::sprite#3
|
|
Alias init_sprite_pointers::sprites_ptr_1#2 = init_sprite_pointers::sprites_ptr_1#4 init_sprite_pointers::sprites_ptr_1#3
|
|
Alias init_sprite_pointers::sprites_ptr_2#2 = init_sprite_pointers::sprites_ptr_2#4 init_sprite_pointers::sprites_ptr_2#3
|
|
Alias irq_screen_top::toD0181_screen#0 = irq_screen_top::toD0181_screen#1
|
|
Alias irq_screen_top::toD0181_gfx#0 = irq_screen_top::toD0181_gfx#1
|
|
Alias irq_screen_top::toD0181_return#0 = irq_screen_top::toD0181_$6 irq_screen_top::toD0181_return#2 irq_screen_top::toD0181_return#1 irq_screen_top::toD0181_return#3 irq_screen_top::$0
|
|
Alias irq_screen_top::toDd001_gfx#0 = irq_screen_top::toDd001_gfx#1
|
|
Alias irq_screen_top::toDd001_return#0 = irq_screen_top::toDd001_$2 irq_screen_top::toDd001_return#2 irq_screen_top::toDd001_return#1 irq_screen_top::toDd001_return#3 irq_screen_top::$5
|
|
Alias irq_screen_top::toDd002_gfx#0 = irq_screen_top::toDd002_gfx#1
|
|
Alias irq_screen_top::toDd002_return#0 = irq_screen_top::toDd002_$2 irq_screen_top::toDd002_return#2 irq_screen_top::toDd002_return#1 irq_screen_top::toDd002_return#3 irq_screen_top::$4
|
|
Alias game_logic::ghost_frame_idx#0 = game_logic::ghost_frame_idx#3
|
|
Alias game_logic::do_reverse#0 = game_logic::do_reverse#7 game_logic::do_reverse#9 game_logic::do_reverse#8 game_logic::do_reverse#5 game_logic::do_reverse#6
|
|
Alias game_logic::ytiles#0 = game_logic::ytiles#1 game_logic::ytiles#3 game_logic::ytiles#2
|
|
Alias game_logic::pacman_xtile#0 = game_logic::pacman_xtile#1 game_logic::pacman_xtile#3 game_logic::pacman_xtile#2
|
|
Alias game_logic::pacman_ytile#0 = game_logic::pacman_ytile#1 game_logic::pacman_ytile#3 game_logic::pacman_ytile#2
|
|
Alias game_logic::tile_id#0 = game_logic::tile_id#1
|
|
Alias level_tile_directions::return#3 = level_tile_directions::return#9
|
|
Alias game_logic::ghost4_xtile#0 = game_logic::ghost4_xtile#5 game_logic::ghost4_xtile#4 game_logic::ghost4_xtile#2 game_logic::ghost4_xtile#3
|
|
Alias game_logic::ghost4_ytile#0 = game_logic::ghost4_ytile#5 game_logic::ghost4_ytile#4 game_logic::ghost4_ytile#2 game_logic::ghost4_ytile#3
|
|
Alias game_logic::open_directions#1 = game_logic::open_directions#2 game_logic::open_directions#6 game_logic::open_directions#4 game_logic::open_directions#5
|
|
Alias game_logic::target_xtile#2 = game_logic::$117
|
|
Alias game_logic::target_ytile#2 = game_logic::$118
|
|
Alias choose_direction::return#0 = choose_direction::return#6
|
|
Alias level_tile_directions::return#10 = level_tile_directions::return#4
|
|
Alias game_logic::ghost3_xtile#0 = game_logic::ghost3_xtile#5 game_logic::ghost3_xtile#4 game_logic::ghost3_xtile#3 game_logic::ghost3_xtile#2
|
|
Alias game_logic::ghost3_ytile#0 = game_logic::ghost3_ytile#5 game_logic::ghost3_ytile#4 game_logic::ghost3_ytile#3 game_logic::ghost3_ytile#2
|
|
Alias game_logic::open_directions1#1 = game_logic::open_directions1#2 game_logic::open_directions1#6 game_logic::open_directions1#5 game_logic::open_directions1#4
|
|
Alias game_logic::target_xtile1#2 = game_logic::$138
|
|
Alias game_logic::target_ytile1#2 = game_logic::$139
|
|
Alias choose_direction::return#1 = choose_direction::return#7
|
|
Alias level_tile_directions::return#11 = level_tile_directions::return#5
|
|
Alias game_logic::ghost2_xtile#0 = game_logic::ghost2_xtile#5 game_logic::ghost2_xtile#4 game_logic::ghost2_xtile#2 game_logic::ghost2_xtile#3
|
|
Alias game_logic::ghost2_ytile#0 = game_logic::ghost2_ytile#5 game_logic::ghost2_ytile#4 game_logic::ghost2_ytile#2 game_logic::ghost2_ytile#3
|
|
Alias game_logic::open_directions2#1 = game_logic::open_directions2#2 game_logic::open_directions2#6 game_logic::open_directions2#4 game_logic::open_directions2#5
|
|
Alias game_logic::target_xtile2#2 = game_logic::$159
|
|
Alias game_logic::target_ytile2#2 = game_logic::$160
|
|
Alias choose_direction::return#2 = choose_direction::return#8
|
|
Alias level_tile_directions::return#12 = level_tile_directions::return#6
|
|
Alias game_logic::ghost1_xtile#0 = game_logic::ghost1_xtile#5 game_logic::ghost1_xtile#4 game_logic::ghost1_xtile#2 game_logic::ghost1_xtile#3
|
|
Alias game_logic::ghost1_ytile#0 = game_logic::ghost1_ytile#5 game_logic::ghost1_ytile#4 game_logic::ghost1_ytile#2 game_logic::ghost1_ytile#3
|
|
Alias game_logic::open_directions3#1 = game_logic::open_directions3#2 game_logic::open_directions3#6 game_logic::open_directions3#4 game_logic::open_directions3#5
|
|
Alias game_logic::target_xtile3#2 = game_logic::$180
|
|
Alias game_logic::target_ytile3#2 = game_logic::$181
|
|
Alias choose_direction::return#3 = choose_direction::return#9
|
|
Alias level_tile_directions::return#13 = level_tile_directions::return#7
|
|
Alias game_logic::joy_directions#0 = game_logic::joy_directions#1
|
|
Alias game_logic::open_directions4#0 = game_logic::open_directions4#2 game_logic::open_directions4#3
|
|
Alias game_logic::new_direction#0 = game_logic::new_direction#1
|
|
Alias choose_direction::ydiff#0 = choose_direction::ydiff#1 choose_direction::ydiff#8
|
|
Alias choose_direction::xdiff#0 = choose_direction::xdiff#1 choose_direction::xdiff#8
|
|
Alias choose_direction::dist_min#0 = choose_direction::dist_min#5
|
|
Alias choose_direction::open_directions#4 = choose_direction::open_directions#8 choose_direction::open_directions#9
|
|
Alias choose_direction::direction#0 = choose_direction::direction#12
|
|
Alias choose_direction::dist_up#0 = choose_direction::dist_up#1 choose_direction::dist_min#1
|
|
Alias choose_direction::ydiff#2 = choose_direction::ydiff#5 choose_direction::ydiff#9
|
|
Alias choose_direction::xdiff#2 = choose_direction::xdiff#5 choose_direction::xdiff#9
|
|
Alias choose_direction::dist_min#6 = choose_direction::dist_min#9
|
|
Alias choose_direction::open_directions#10 = choose_direction::open_directions#5 choose_direction::open_directions#11
|
|
Alias choose_direction::direction#10 = choose_direction::direction#11
|
|
Alias choose_direction::dist_down#0 = choose_direction::dist_down#1 choose_direction::dist_min#2
|
|
Alias choose_direction::xdiff#10 = choose_direction::xdiff#3 choose_direction::xdiff#6
|
|
Alias choose_direction::ydiff#10 = choose_direction::ydiff#3 choose_direction::ydiff#6
|
|
Alias choose_direction::dist_min#10 = choose_direction::dist_min#7
|
|
Alias choose_direction::open_directions#12 = choose_direction::open_directions#13 choose_direction::open_directions#6
|
|
Alias choose_direction::direction#8 = choose_direction::direction#9
|
|
Alias choose_direction::dist_left#0 = choose_direction::dist_left#1 choose_direction::dist_min#3
|
|
Alias choose_direction::return#10 = choose_direction::return#4 choose_direction::direction#5 choose_direction::return#5
|
|
Alias choose_direction::xdiff#4 = choose_direction::xdiff#7
|
|
Alias choose_direction::ydiff#4 = choose_direction::ydiff#7
|
|
Alias choose_direction::dist_min#11 = choose_direction::dist_min#8
|
|
Alias choose_direction::direction#6 = choose_direction::direction#7
|
|
Alias choose_direction::dist_right#0 = choose_direction::dist_right#1 choose_direction::dist_min#4
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Alias init_render_index::render_index_xcol#0 = init_render_index::render_index#4
|
|
Alias init_render_index::x_col#2 = init_render_index::x_col#4
|
|
Alias init_render_index::render_index_xcol#2 = init_render_index::render_index_xcol#3
|
|
Alias init_render_index::y_pos#2 = init_render_index::y_pos#4
|
|
Alias init_render_index::canvas_xcol#1 = init_render_index::canvas_xcol#3
|
|
Alias init_render_index::render_ypos_table#2 = init_render_index::render_ypos_table#5
|
|
Alias init_render_index::render_index#10 = init_render_index::render_index#8
|
|
Alias init_render_index::x_col#10 = init_render_index::x_col#8
|
|
Alias splash_run::i#2 = splash_run::i#4
|
|
Alias level_show::level#10 = level_show::level#11 level_show::level#2
|
|
Alias level_show::xtile#1 = level_show::xtile#4
|
|
Alias level_show::xcol#2 = level_show::xcol#5 level_show::xcol#3
|
|
Alias level_show::ytile#10 = level_show::ytile#6 level_show::ytile#4
|
|
Alias level_show::tile_left#0 = level_show::tile_left#2 level_show::tile_left#1
|
|
Alias level_show::tile_right#0 = level_show::tile_right#1
|
|
Alias level_show::xtile#2 = level_show::xtile#7
|
|
Alias init_level_tile_directions::xtile#10 = init_level_tile_directions::xtile#2 init_level_tile_directions::xtile#12 init_level_tile_directions::xtile#14 init_level_tile_directions::xtile#7
|
|
Alias init_level_tile_directions::ytile#10 = init_level_tile_directions::ytile#11 init_level_tile_directions::ytile#13 init_level_tile_directions::ytile#17 init_level_tile_directions::ytile#16
|
|
Alias init_level_tile_directions::directions#10 = init_level_tile_directions::directions#13 init_level_tile_directions::directions#16 init_level_tile_directions::directions#5 init_level_tile_directions::directions#3
|
|
Alias game_logic::open_directions#1 = game_logic::open_directions#3
|
|
Alias game_logic::ghost4_xtile#0 = game_logic::ghost4_xtile#1
|
|
Alias game_logic::ghost4_ytile#0 = game_logic::ghost4_ytile#1
|
|
Alias game_logic::open_directions1#1 = game_logic::open_directions1#3
|
|
Alias game_logic::ghost3_xtile#0 = game_logic::ghost3_xtile#1
|
|
Alias game_logic::ghost3_ytile#0 = game_logic::ghost3_ytile#1
|
|
Alias game_logic::open_directions2#1 = game_logic::open_directions2#3
|
|
Alias game_logic::ghost2_xtile#0 = game_logic::ghost2_xtile#1
|
|
Alias game_logic::ghost2_ytile#0 = game_logic::ghost2_ytile#1
|
|
Alias game_logic::open_directions3#1 = game_logic::open_directions3#3
|
|
Alias game_logic::ghost1_xtile#0 = game_logic::ghost1_xtile#1
|
|
Alias game_logic::ghost1_ytile#0 = game_logic::ghost1_ytile#1
|
|
Alias game_logic::open_directions4#0 = game_logic::open_directions4#1
|
|
Alias choose_direction::open_directions#10 = choose_direction::open_directions#4 choose_direction::open_directions#12 choose_direction::open_directions#7
|
|
Alias choose_direction::ydiff#0 = choose_direction::ydiff#2 choose_direction::ydiff#10 choose_direction::ydiff#4
|
|
Alias choose_direction::xdiff#0 = choose_direction::xdiff#2 choose_direction::xdiff#10 choose_direction::xdiff#4
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Identical Phi Values memcpy::source#1 memcpy::source#0
|
|
Identical Phi Values memcpy::destination#1 memcpy::destination#0
|
|
Identical Phi Values memcpy::num#1 memcpy::num#0
|
|
Identical Phi Values memcpy::src_end#1 memcpy::src_end#0
|
|
Identical Phi Values memcpy::destination#2 memcpy::destination#1
|
|
Identical Phi Values memset::end#1 memset::end#0
|
|
Identical Phi Values memset::str#8 memset::str#6
|
|
Identical Phi Values memset::c#5 memset::c#7
|
|
Identical Phi Values merge_code::raster_code#7 merge_code::raster_code#3
|
|
Identical Phi Values merge_code::dest_code#19 merge_code::dest_code#7
|
|
Identical Phi Values merge_code::logic_code#20 merge_code::logic_code#6
|
|
Identical Phi Values merge_code::cycle_budget#11 merge_code::cycle_budget#13
|
|
Identical Phi Values merge_code::logic_cycles#1 merge_code::logic_cycles#0
|
|
Identical Phi Values merge_code::raster_code#13 merge_code::raster_code#11
|
|
Identical Phi Values merge_code::raster_code#10 merge_code::raster_code#11
|
|
Identical Phi Values merge_code::logic_code#21 merge_code::logic_code#17
|
|
Identical Phi Values init_render_index::canvas_xcol#1 init_render_index::canvas_xcol#0
|
|
Identical Phi Values init_render_index::render_ypos_table#2 init_render_index::render_ypos_table#4
|
|
Identical Phi Values init_render_index::render_index#10 init_render_index::render_index_xcol#0
|
|
Identical Phi Values init_render_index::x_col#10 init_render_index::x_col#2
|
|
Identical Phi Values render::ypix#1 render::ypix#0
|
|
Identical Phi Values render::pixels#2 render::pixels#4
|
|
Identical Phi Values render_tiles::tile_left#1 render_tiles::tile_left#0
|
|
Identical Phi Values render_tiles::tile_right#1 render_tiles::tile_right#0
|
|
Identical Phi Values render_tiles::xcol#1 render_tiles::xcol#0
|
|
Identical Phi Values render_tiles::ytile#1 render_tiles::ytile#0
|
|
Identical Phi Values render_tiles::tile_left_pixels#1 render_tiles::tile_left_pixels#0
|
|
Identical Phi Values render_tiles::tile_right_pixels#1 render_tiles::tile_right_pixels#0
|
|
Identical Phi Values init_bobs_restore::bob_restore#2 init_bobs_restore::bob_restore#5
|
|
Identical Phi Values init_bobs_restore::bob#3 init_bobs_restore::bob#2
|
|
Identical Phi Values done_run::xcol#3 done_run::xcol#2
|
|
Identical Phi Values splash_show::xcol#3 splash_show::xcol#2
|
|
Identical Phi Values level_show::level#10 level_show::level#8
|
|
Identical Phi Values level_show::ytile#10 level_show::ytile#2
|
|
Identical Phi Values init_level_tile_directions::ytile#10 init_level_tile_directions::ytile#15
|
|
Identical Phi Values init_level_tile_directions::directions#10 init_level_tile_directions::directions#7
|
|
Identical Phi Values init_sprite_pointers::screen#3 init_sprite_pointers::screen#2
|
|
Identical Phi Values init_sprite_pointers::sprites_ptr_1#2 init_sprite_pointers::sprites_ptr_1#5
|
|
Identical Phi Values init_sprite_pointers::sprites_ptr_2#2 init_sprite_pointers::sprites_ptr_2#5
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Identical Phi Values memset::return#0 memset::str#6
|
|
Identical Phi Values merge_code::raster_code#11 merge_code::raster_code#2
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Identified duplicate assignment right side [385] splash_run::$24 = splash_run::i#2 * 2
|
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
|
Simple Condition memcpy::$1 [7] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
|
|
Simple Condition memset::$1 [14] if(memset::num#5<=0) goto memset::@1
|
|
Simple Condition memset::$3 [21] if(memset::dst#2!=memset::end#0) goto memset::@4
|
|
Simple Condition merge_code::$0 [30] if(*merge_code::raster_code#4!=merge_code::RASTER_END) goto merge_code::@2
|
|
Simple Condition merge_code::$2 [38] if(merge_code::cycle_budget#0!=merge_code::RASTER_EXIT) goto merge_code::@4
|
|
Simple Condition merge_code::$3 [41] if(merge_code::cycle_budget#13>0) goto merge_code::@5
|
|
Simple Condition merge_code::$11 [54] if(*merge_code::logic_code#10!=merge_code::LOGIC_END) goto merge_code::@7
|
|
Simple Condition merge_code::$12 [62] if(merge_code::cycle_budget#10>0) goto merge_code::@11
|
|
Simple Condition merge_code::$13 [64] if(merge_code::cycle_budget#10==3) goto merge_code::@12
|
|
Simple Condition merge_code::$14 [75] if(*merge_code::logic_code#12!=merge_code::LOGIC_EXIT) goto merge_code::@15
|
|
Simple Condition merge_code::$15 [81] if(*merge_code::logic_code#14!=merge_code::LOGIC_END) goto merge_code::@18
|
|
Simple Condition pacman_sound_play::$0 [95] if(0==pacman_ch1_enabled) goto pacman_sound_play::@return
|
|
Simple Condition pacman_sound_play::$3 [101] if(pacman_ch1_idx!=pacman_sound_play::$1) goto pacman_sound_play::@return
|
|
Simple Condition init_render_index::$0 [109] if(init_render_index::x_col#2<$1a) goto init_render_index::@2
|
|
Simple Condition init_render_index::$2 [113] if(init_render_index::x_col#2<$18) goto init_render_index::@4
|
|
Simple Condition init_render_index::$3 [124] if(init_render_index::y_pos#2<$94) goto init_render_index::@6
|
|
Simple Condition init_render_index::$8 [135] if(init_render_index::ypos_inc_offset#2<$17) goto init_render_index::@8
|
|
Simple Condition render::$8 [157] if(render::i#2<render::ypix#0) goto render::@2
|
|
Simple Condition render_tiles::$10 [181] if(render_tiles::y#2<4) goto render_tiles::@2
|
|
Simple Condition init_bobs_restore::$0 [194] if(init_bobs_restore::bob#2<NUM_BOBS*2) goto init_bobs_restore::@2
|
|
Simple Condition init_bobs_restore::$1 [201] if(init_bobs_restore::i#2<SIZE_BOB_RESTORE) goto init_bobs_restore::@5
|
|
Simple Condition done_run::$1 [224] if(done_run::i#2<$2f) goto done_run::@6
|
|
Simple Condition done_run::$2 [230] if(done_run::i1#2<4) goto done_run::@9
|
|
Simple Condition done_run::$12 [238] if(0!=pacman_wins) goto done_run::@2
|
|
Simple Condition done_run::$5 [247] if(done_run::xcol#2<$19) goto done_run::@12
|
|
Simple Condition done_run::$6 [252] if(done_run::ypos#2<$19) goto done_run::@15
|
|
Simple Condition done_run::$9 [265] if(0==done_run::$8) goto done_run::@18
|
|
Simple Condition done_run::$10 [267] if(0==music_play_next) goto done_run::@17
|
|
Simple Condition splash_run::$22 [329] if(splash_run::i#2<8) goto splash_run::@3
|
|
Simple Condition splash_run::$26 [339] if(0==splash_run::$25) goto splash_run::@5
|
|
Simple Condition splash_run::$27 [378] if(splash_run::i1#2<8) goto splash_run::@8
|
|
Simple Condition splash_run::$28 [385] if(splash_run::i2#2<4) goto splash_run::@11
|
|
Simple Condition splash_run::$29 [396] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto splash_run::@13
|
|
Simple Condition splash_run::$31 [410] if(0==splash_run::$30) goto splash_run::@16
|
|
Simple Condition splash_run::$32 [412] if(0==music_play_next) goto splash_run::@15
|
|
Simple Condition gameplay_run::$8 [420] if(gameplay_run::i#2<$2f) goto gameplay_run::@2
|
|
Simple Condition gameplay_run::$9 [430] if(gameplay_run::i1#2<8) goto gameplay_run::@5
|
|
Simple Condition gameplay_run::$10 [451] if(gameplay_run::i2#2<8) goto gameplay_run::@8
|
|
Simple Condition gameplay_run::$11 [462] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fb) goto gameplay_run::@10
|
|
Simple Condition gameplay_run::$12 [464] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto gameplay_run::@11
|
|
Simple Condition joyfire::$1 [481] if(joyfire::$0==0) goto joyfire::@1
|
|
Simple Condition splash_show::$0 [490] if(splash_show::xcol#2<$19) goto splash_show::@2
|
|
Simple Condition splash_show::$1 [494] if(splash_show::ypos#2<$93) goto splash_show::@4
|
|
Simple Condition level_show::$0 [509] if(level_show::ytile#2<$25) goto level_show::@2
|
|
Simple Condition level_show::$1 [514] if(level_show::xcol#2<$19) goto level_show::@5
|
|
Simple Condition level_show::$3 [518] if(TILES_TYPE[level_show::tile_left#0]!=PILL) goto level_show::@7
|
|
Simple Condition level_show::$5 [525] if(TILES_TYPE[level_show::tile_right#0]!=PILL) goto level_show::@8
|
|
Simple Condition init_level_tile_directions::$0 [564] if(init_level_tile_directions::ytile#15<$25) goto init_level_tile_directions::@2
|
|
Simple Condition init_level_tile_directions::$1 [568] if(init_level_tile_directions::xtile#10<$32) goto init_level_tile_directions::@4
|
|
Simple Condition init_level_tile_directions::$5 [576] if(TILES_TYPE[init_level_tile_directions::$3]==WALL) goto init_level_tile_directions::@6
|
|
Simple Condition init_level_tile_directions::$9 [586] if(TILES_TYPE[init_level_tile_directions::$7]==WALL) goto init_level_tile_directions::@7
|
|
Simple Condition init_level_tile_directions::$13 [595] if(TILES_TYPE[init_level_tile_directions::$11]==WALL) goto init_level_tile_directions::@8
|
|
Simple Condition init_level_tile_directions::$17 [604] if(TILES_TYPE[init_level_tile_directions::$15]==WALL) goto init_level_tile_directions::@9
|
|
Simple Condition init_sprite_pointers::$0 [616] if(init_sprite_pointers::screen#2<$e) goto init_sprite_pointers::@2
|
|
Simple Condition init_sprite_pointers::$1 [620] if(init_sprite_pointers::sprite#2<8) goto init_sprite_pointers::@4
|
|
Simple Condition irq_screen_top::$8 [658] if(0!=frame) goto irq_screen_top::@1
|
|
Simple Condition irq_screen_top::$3 [674] if(phase==0) goto irq_screen_top::@3
|
|
Simple Condition game_logic::$1 [683] if(game_playable!=0) goto game_logic::@1
|
|
Simple Condition game_logic::$4 [688] if(game_logic_substep==0) goto game_logic::@2
|
|
Simple Condition game_logic::$188 [691] if(pacman_direction==RIGHT) goto game_logic::@144
|
|
Simple Condition game_logic::$5 [693] if(game_logic_substep==1) goto game_logic::@3
|
|
Simple Condition game_logic::$211 [695] if(0!=ghost1_respawn) goto game_logic::@126
|
|
Simple Condition game_logic::$6 [697] if(game_logic_substep==2) goto game_logic::@4
|
|
Simple Condition game_logic::$212 [699] if(0!=ghost2_respawn) goto game_logic::@108
|
|
Simple Condition game_logic::$7 [701] if(game_logic_substep==4) goto game_logic::@5
|
|
Simple Condition game_logic::$213 [703] if(0!=ghost3_respawn) goto game_logic::@90
|
|
Simple Condition game_logic::$8 [705] if(game_logic_substep==5) goto game_logic::@6
|
|
Simple Condition game_logic::$214 [707] if(0!=ghost4_respawn) goto game_logic::@72
|
|
Simple Condition game_logic::$9 [709] if(game_logic_substep==6) goto game_logic::@7
|
|
Simple Condition game_logic::$48 [713] if(ghosts_mode==SCATTER) goto game_logic::@45
|
|
Simple Condition game_logic::$23 [733] if(ghosts_mode!=FRIGHTENED) goto game_logic::@44
|
|
Simple Condition game_logic::$57 [773] if(ghosts_mode_count<=$32) goto game_logic::@47
|
|
Simple Condition game_logic::$49 [775] if(ghosts_mode==CHASE) goto game_logic::@46
|
|
Simple Condition game_logic::$55 [777] if(ghosts_mode_count<=$96) goto game_logic::@47
|
|
Simple Condition game_logic::$51 [779] if(ghosts_mode!=FRIGHTENED) goto game_logic::@47
|
|
Simple Condition game_logic::$53 [781] if(ghosts_mode_count<=$32) goto game_logic::@47
|
|
Simple Condition game_logic::$58 [790] if(0==game_logic::do_reverse#4) goto game_logic::@48
|
|
Simple Condition game_logic::$62 [800] if(TILES_TYPE[game_logic::tile_id#0]==PILL) goto game_logic::@49
|
|
Simple Condition game_logic::$74 [815] if(pill_count!=0) goto game_logic::@50
|
|
Simple Condition game_logic::$64 [817] if(TILES_TYPE[game_logic::tile_id#0]!=POWERUP) goto game_logic::@50
|
|
Simple Condition game_logic::$102 [836] if(ghosts_mode==FRIGHTENED) goto game_logic::@57
|
|
Simple Condition game_logic::$100 [844] if(ghosts_mode==FRIGHTENED) goto game_logic::@56
|
|
Simple Condition game_logic::$98 [852] if(ghosts_mode==FRIGHTENED) goto game_logic::@55
|
|
Simple Condition game_logic::$96 [861] if(ghosts_mode==FRIGHTENED) goto game_logic::@54
|
|
Simple Condition game_logic::$124 [892] if(ghost4_respawn!=0) goto game_logic::@return
|
|
Simple Condition game_logic::$104 [894] if(ghost4_direction==RIGHT) goto game_logic::@73
|
|
Simple Condition game_logic::$105 [897] if(ghost4_direction==DOWN) goto game_logic::@74
|
|
Simple Condition game_logic::$106 [900] if(ghost4_direction==LEFT) goto game_logic::@75
|
|
Simple Condition game_logic::$108 [903] if(ghost4_direction!=UP) goto game_logic::@76
|
|
Simple Condition game_logic::$120 [911] if(ghost4_xfine==1) goto game_logic::@82
|
|
Simple Condition game_logic::$215 [914] if(0!=ghost4_reverse) goto game_logic::@78
|
|
Simple Condition game_logic::$115 [926] if(ghosts_mode==FRIGHTENED) goto game_logic::@79
|
|
Simple Condition game_logic::$116 [931] if(ghosts_mode==SCATTER) goto game_logic::@80
|
|
Simple Condition game_logic::$122 [948] if(ghost4_xfine!=$61) goto game_logic::@return
|
|
Simple Condition game_logic::$145 [956] if(ghost3_respawn!=0) goto game_logic::@return
|
|
Simple Condition game_logic::$125 [958] if(ghost3_direction==RIGHT) goto game_logic::@91
|
|
Simple Condition game_logic::$126 [961] if(ghost3_direction==DOWN) goto game_logic::@92
|
|
Simple Condition game_logic::$127 [964] if(ghost3_direction==LEFT) goto game_logic::@93
|
|
Simple Condition game_logic::$129 [967] if(ghost3_direction!=UP) goto game_logic::@94
|
|
Simple Condition game_logic::$141 [975] if(ghost3_xfine==1) goto game_logic::@100
|
|
Simple Condition game_logic::$216 [978] if(0!=ghost3_reverse) goto game_logic::@96
|
|
Simple Condition game_logic::$136 [990] if(ghosts_mode==FRIGHTENED) goto game_logic::@97
|
|
Simple Condition game_logic::$137 [995] if(ghosts_mode==SCATTER) goto game_logic::@98
|
|
Simple Condition game_logic::$143 [1012] if(ghost3_xfine!=$61) goto game_logic::@return
|
|
Simple Condition game_logic::$166 [1020] if(ghost2_respawn!=0) goto game_logic::@return
|
|
Simple Condition game_logic::$146 [1022] if(ghost2_direction==RIGHT) goto game_logic::@109
|
|
Simple Condition game_logic::$147 [1025] if(ghost2_direction==DOWN) goto game_logic::@110
|
|
Simple Condition game_logic::$148 [1028] if(ghost2_direction==LEFT) goto game_logic::@111
|
|
Simple Condition game_logic::$150 [1031] if(ghost2_direction!=UP) goto game_logic::@112
|
|
Simple Condition game_logic::$162 [1039] if(ghost2_xfine==1) goto game_logic::@118
|
|
Simple Condition game_logic::$217 [1042] if(0!=ghost2_reverse) goto game_logic::@114
|
|
Simple Condition game_logic::$157 [1054] if(ghosts_mode==FRIGHTENED) goto game_logic::@115
|
|
Simple Condition game_logic::$158 [1059] if(ghosts_mode==SCATTER) goto game_logic::@116
|
|
Simple Condition game_logic::$164 [1076] if(ghost2_xfine!=$61) goto game_logic::@return
|
|
Simple Condition game_logic::$187 [1084] if(ghost1_respawn!=0) goto game_logic::@return
|
|
Simple Condition game_logic::$167 [1086] if(ghost1_direction==RIGHT) goto game_logic::@127
|
|
Simple Condition game_logic::$168 [1089] if(ghost1_direction==DOWN) goto game_logic::@128
|
|
Simple Condition game_logic::$169 [1092] if(ghost1_direction==LEFT) goto game_logic::@129
|
|
Simple Condition game_logic::$171 [1095] if(ghost1_direction!=UP) goto game_logic::@130
|
|
Simple Condition game_logic::$183 [1103] if(ghost1_xfine==1) goto game_logic::@136
|
|
Simple Condition game_logic::$218 [1106] if(0!=ghost1_reverse) goto game_logic::@132
|
|
Simple Condition game_logic::$178 [1118] if(ghosts_mode==FRIGHTENED) goto game_logic::@133
|
|
Simple Condition game_logic::$179 [1123] if(ghosts_mode==SCATTER) goto game_logic::@134
|
|
Simple Condition game_logic::$185 [1140] if(ghost1_xfine!=$61) goto game_logic::@return
|
|
Simple Condition game_logic::$189 [1148] if(pacman_direction==DOWN) goto game_logic::@145
|
|
Simple Condition game_logic::$190 [1151] if(pacman_direction==LEFT) goto game_logic::@146
|
|
Simple Condition game_logic::$192 [1154] if(pacman_direction!=UP) goto game_logic::@147
|
|
Simple Condition game_logic::$207 [1163] if(pacman_xfine==1) goto game_logic::@150
|
|
Simple Condition game_logic::$203 [1176] if(game_logic::joy_directions#0==0) goto game_logic::@149
|
|
Simple Condition game_logic::$206 [1181] if(game_logic::new_direction#0==0) goto game_logic::@149
|
|
Simple Condition game_logic::$209 [1185] if(pacman_xfine!=$61) goto game_logic::@return
|
|
Simple Condition choose_direction::$3 [1194] if(0==choose_direction::$2) goto choose_direction::@1
|
|
Simple Condition choose_direction::$5 [1198] if(0==choose_direction::$4) goto choose_direction::@2
|
|
Simple Condition choose_direction::$13 [1202] if(choose_direction::dist_up#0>=choose_direction::dist_min#0) goto choose_direction::@1
|
|
Simple Condition choose_direction::$7 [1207] if(0==choose_direction::$6) goto choose_direction::@3
|
|
Simple Condition choose_direction::$17 [1211] if(choose_direction::dist_down#0>=choose_direction::dist_min#6) goto choose_direction::@2
|
|
Simple Condition choose_direction::$9 [1216] if(0==choose_direction::$8) goto choose_direction::@4
|
|
Simple Condition choose_direction::$21 [1220] if(choose_direction::dist_left#0>=choose_direction::dist_min#10) goto choose_direction::@3
|
|
Simple Condition choose_direction::$25 [1226] if(choose_direction::dist_right#0>=choose_direction::dist_min#11) goto choose_direction::@4
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
Rewriting ! if()-condition to reversed if() [49] merge_code::$10 = ! merge_code::$9
|
|
Rewriting && if()-condition to two if()s [48] merge_code::$9 = merge_code::$4 && merge_code::$8
|
|
Rewriting || if()-condition to two if()s [47] merge_code::$8 = merge_code::$6 || merge_code::$7
|
|
Rewriting ! if()-condition to reversed if() [474] gameplay_run::$15 = ! gameplay_run::$14
|
|
Rewriting || if()-condition to two if()s [473] gameplay_run::$14 = pacman_wins || gameplay_run::$13
|
|
Rewriting ! if()-condition to reversed if() [540] level_tile_get::$3 = ! level_tile_get::$2
|
|
Rewriting || if()-condition to two if()s [539] level_tile_get::$2 = level_tile_get::$0 || level_tile_get::$1
|
|
Rewriting ! if()-condition to reversed if() [552] level_tile_directions::$3 = ! level_tile_directions::$2
|
|
Rewriting || if()-condition to two if()s [551] level_tile_directions::$2 = level_tile_directions::$0 || level_tile_directions::$1
|
|
Rewriting ! if()-condition to reversed if() [717] game_logic::$13 = ! game_logic::$12
|
|
Rewriting || if()-condition to two if()s [716] game_logic::$12 = game_logic::$10 || game_logic::$11
|
|
Rewriting && if()-condition to two if()s [832] game_logic::$79 = game_logic::$76 && game_logic::$78
|
|
Rewriting && if()-condition to two if()s [841] game_logic::$84 = game_logic::$81 && game_logic::$83
|
|
Rewriting && if()-condition to two if()s [849] game_logic::$89 = game_logic::$86 && game_logic::$88
|
|
Rewriting ! if()-condition to reversed if() [858] game_logic::$95 = ! game_logic::$94
|
|
Rewriting && if()-condition to two if()s [857] game_logic::$94 = game_logic::$91 && game_logic::$93
|
|
Rewriting && if()-condition to two if()s [907] game_logic::$111 = game_logic::$109 && game_logic::$110
|
|
Rewriting && if()-condition to two if()s [971] game_logic::$132 = game_logic::$130 && game_logic::$131
|
|
Rewriting && if()-condition to two if()s [1035] game_logic::$153 = game_logic::$151 && game_logic::$152
|
|
Rewriting && if()-condition to two if()s [1099] game_logic::$174 = game_logic::$172 && game_logic::$173
|
|
Rewriting && if()-condition to two if()s [1158] game_logic::$195 = game_logic::$193 && game_logic::$194
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Warning! Adding boolean cast to non-boolean condition pacman_wins
|
|
Negating conditional jump and destination [41] if(merge_code::cycle_budget#13<=0) goto merge_code::@10
|
|
Constant right-side identified [99] pacman_sound_play::$1 = sizeof PACMAN_CH1_FREQ_HI
|
|
Constant right-side identified [204] init_bobs_restore::$2 = byte0 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant right-side identified [206] init_bobs_restore::$3 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant right-side identified [208] init_bobs_restore::$4 = byte0 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant right-side identified [210] init_bobs_restore::$5 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
Constant pacman_sound_play::$1 = sizeof PACMAN_CH1_FREQ_HI
|
|
Constant init_render_index::render_index#0 = RENDER_INDEX
|
|
Constant init_render_index::x_col#0 = 0
|
|
Constant init_render_index::render_ypos_table#0 = RENDER_YPOS
|
|
Constant init_render_index::ypos_inc_offset#0 = 0
|
|
Constant init_render_index::y_pos#0 = 0
|
|
Constant init_render_index::render_ypos_table#1 = RENDER_YPOS_9TH
|
|
Constant init_render_index::ypos_inc_offset#1 = $b
|
|
Constant render::i#0 = 0
|
|
Constant render_tiles::y#0 = 0
|
|
Constant init_bobs_restore::bob_restore#0 = bobs_restore
|
|
Constant init_bobs_restore::bob#0 = 0
|
|
Constant init_bobs_restore::i#0 = 0
|
|
Constant init_bobs_restore::$2 = byte0 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant init_bobs_restore::$3 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant init_bobs_restore::$4 = byte0 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant init_bobs_restore::$5 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant done_run::i#0 = 0
|
|
Constant done_run::i1#0 = 0
|
|
Constant done_run::gfx#0 = WIN_GFX
|
|
Constant done_run::xcol#0 = 0
|
|
Constant done_run::ypos#0 = 0
|
|
Constant memset::str#0 = (void *)(char *) 16384
|
|
Constant memset::c#0 = 0
|
|
Constant memset::num#0 = $c00
|
|
Constant merge_code::dest_code#7 = RASTER_CODE
|
|
Constant merge_code::raster_code#3 = RASTER_CODE_UNMERGED
|
|
Constant merge_code::logic_code#6 = LOGIC_CODE_UNMERGED
|
|
Constant memset::str#1 = (void *)BANK_1+$2000
|
|
Constant memset::c#1 = 0
|
|
Constant memset::num#1 = $1fff
|
|
Constant memset::str#2 = (void *)BANK_2
|
|
Constant memset::c#2 = 0
|
|
Constant memset::num#2 = $3fff
|
|
Constant memset::str#3 = (void *)BANK_1
|
|
Constant memset::c#3 = 0
|
|
Constant memset::num#3 = $1fff
|
|
Constant memcpy::destination#0 = (void *)INTRO_MUSIC_CRUNCHED_UPPER
|
|
Constant memcpy::source#0 = (void *)INTRO_MUSIC_CRUNCHED
|
|
Constant memcpy::num#0 = INTRO_MUSIC_CRUNCHED_SIZE
|
|
Constant memset::str#4 = (void *)INTRO_MUSIC_CRUNCHED_UPPER
|
|
Constant memset::c#4 = 0
|
|
Constant memset::num#4 = INTRO_MUSIC_CRUNCHED_SIZE
|
|
Constant splash_run::msb#0 = 0
|
|
Constant splash_run::i#0 = 0
|
|
Constant splash_run::toDd001_gfx#0 = SCREENS_1
|
|
Constant splash_run::toD0181_screen#0 = SCREENS_1
|
|
Constant splash_run::toD0181_gfx#0 = SCREENS_1
|
|
Constant splash_run::i1#0 = 0
|
|
Constant splash_run::i2#0 = 0
|
|
Constant gameplay_run::i#0 = 0
|
|
Constant gameplay_run::i1#0 = 0
|
|
Constant gameplay_run::i2#0 = 0
|
|
Constant joyfire::return#2 = 1
|
|
Constant joyfire::return#3 = 0
|
|
Constant splash_show::splash#0 = SPLASH
|
|
Constant splash_show::xcol#0 = 0
|
|
Constant splash_show::ypos#0 = 0
|
|
Constant level_show::count#0 = 0
|
|
Constant level_show::level#0 = LEVEL_TILES
|
|
Constant level_show::ytile#0 = 0
|
|
Constant level_show::xcol#0 = 0
|
|
Constant level_show::xtile#0 = 0
|
|
Constant level_tile_get::return#1 = 0
|
|
Constant level_tile_directions::return#1 = 0
|
|
Constant init_level_tile_directions::directions#0 = LEVEL_TILES_DIRECTIONS
|
|
Constant init_level_tile_directions::ytile#0 = 0
|
|
Constant init_level_tile_directions::xtile#0 = 0
|
|
Constant init_level_tile_directions::open_directions#0 = 0
|
|
Constant init_sprite_pointers::sprites_ptr_1#0 = SCREENS_1+OFFSET_SPRITE_PTRS
|
|
Constant init_sprite_pointers::sprites_ptr_2#0 = SCREENS_2+OFFSET_SPRITE_PTRS
|
|
Constant init_sprite_pointers::screen#0 = 0
|
|
Constant init_sprite_pointers::sprite#0 = 0
|
|
Constant irq_screen_top::toD0181_screen#0 = SCREENS_1
|
|
Constant irq_screen_top::toD0181_gfx#0 = SCREENS_1
|
|
Constant irq_screen_top::toDd001_gfx#0 = SCREENS_2
|
|
Constant irq_screen_top::toDd002_gfx#0 = SCREENS_1
|
|
Constant game_logic::do_reverse#0 = 0
|
|
Constant game_logic::do_reverse#1 = 1
|
|
Constant game_logic::do_reverse#2 = 1
|
|
Constant game_logic::do_reverse#3 = 1
|
|
Constant game_logic::target_xtile#0 = 0
|
|
Constant game_logic::target_ytile#0 = 0
|
|
Constant game_logic::target_xtile#1 = 2
|
|
Constant game_logic::target_ytile#1 = 2
|
|
Constant game_logic::target_xtile1#0 = 0
|
|
Constant game_logic::target_ytile1#0 = 0
|
|
Constant game_logic::target_xtile1#1 = 2
|
|
Constant game_logic::target_ytile1#1 = 2
|
|
Constant game_logic::target_xtile2#0 = 0
|
|
Constant game_logic::target_ytile2#0 = 0
|
|
Constant game_logic::target_xtile2#1 = 2
|
|
Constant game_logic::target_ytile2#1 = 2
|
|
Constant game_logic::target_xtile3#0 = 0
|
|
Constant game_logic::target_ytile3#0 = 0
|
|
Constant game_logic::target_xtile3#1 = 2
|
|
Constant game_logic::target_ytile3#1 = 2
|
|
Constant choose_direction::direction#0 = STOP
|
|
Constant choose_direction::dist_min#0 = $ff
|
|
Constant choose_direction::direction#1 = UP
|
|
Constant choose_direction::direction#2 = DOWN
|
|
Constant choose_direction::direction#3 = LEFT
|
|
Constant choose_direction::direction#4 = RIGHT
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Constant memcpy::src#0 = (char *)memcpy::source#0
|
|
Constant memcpy::dst#0 = (char *)memcpy::destination#0
|
|
Constant memcpy::$2 = (char *)memcpy::source#0
|
|
Constant memcpy::return#2 = memcpy::destination#0
|
|
Constant splash_run::toD0181_$7 = (unsigned int)splash_run::toD0181_screen#0
|
|
Constant irq_screen_top::toD0181_$7 = (unsigned int)irq_screen_top::toD0181_screen#0
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Constant value identified (unsigned int)splash_run::toDd001_gfx#0 in [341] splash_run::toDd001_$0 = byte1 (unsigned int)splash_run::toDd001_gfx#0
|
|
Constant value identified (unsigned int)splash_run::toD0181_gfx#0 in [353] splash_run::toD0181_$3 = byte1 (unsigned int)splash_run::toD0181_gfx#0
|
|
Constant value identified (unsigned int)irq_screen_top::toD0181_gfx#0 in [646] irq_screen_top::toD0181_$3 = byte1 (unsigned int)irq_screen_top::toD0181_gfx#0
|
|
Constant value identified (unsigned int)irq_screen_top::toDd001_gfx#0 in [660] irq_screen_top::toDd001_$0 = byte1 (unsigned int)irq_screen_top::toDd001_gfx#0
|
|
Constant value identified (unsigned int)irq_screen_top::toDd002_gfx#0 in [667] irq_screen_top::toDd002_$0 = byte1 (unsigned int)irq_screen_top::toDd002_gfx#0
|
|
Successful SSA optimization Pass2ConstantValues
|
|
Rewriting conditional comparison [773] if(ghosts_mode_count<=$32) goto game_logic::@47
|
|
Rewriting conditional comparison [777] if(ghosts_mode_count<=$96) goto game_logic::@47
|
|
Rewriting conditional comparison [781] if(ghosts_mode_count<=$32) goto game_logic::@47
|
|
De-inlining pointer[w] to *(pointer+w) [127] init_render_index::canvas#0 = init_render_index::canvas_xcol#0 + init_render_index::render_ypos_table#4[init_render_index::$10]
|
|
Successful SSA optimization Pass2DeInlineWordDerefIdx
|
|
Simplifying constant evaluating to zero (unsigned int)0+0 in
|
|
Simplifying constant evaluating to zero (unsigned int)0+0 in
|
|
Simplifying constant evaluating to zero (unsigned int)0+0 in
|
|
Simplifying constant evaluating to zero byte0 init_bobs_restore::CANVAS_HIDDEN in
|
|
Simplifying constant evaluating to zero byte0 init_bobs_restore::CANVAS_HIDDEN in
|
|
Successful SSA optimization PassNSimplifyConstantZero
|
|
Simplifying expression containing zero 6 in
|
|
Simplifying expression containing zero $c in
|
|
Simplifying expression containing zero $12 in
|
|
Simplifying expression containing zero $18 in
|
|
Simplifying expression containing zero $1e in
|
|
Simplifying expression containing zero $24 in
|
|
Simplifying expression containing zero $2a in
|
|
Simplifying expression containing zero $30 in
|
|
Simplifying expression containing zero $36 in
|
|
Simplifying expression containing zero $3c in
|
|
Simplifying expression containing zero $80 in
|
|
Simplifying expression containing zero $100 in
|
|
Simplifying expression containing zero $180 in
|
|
Simplifying expression containing zero $200 in
|
|
Simplifying expression containing zero $280 in
|
|
Simplifying expression containing zero $300 in
|
|
Simplifying expression containing zero 3 in
|
|
Simplifying expression containing zero 3 in
|
|
Simplifying expression containing zero 3 in
|
|
Simplifying expression containing zero 9 in
|
|
Simplifying expression containing zero $f in
|
|
Simplifying expression containing zero $15 in
|
|
Simplifying expression containing zero $1b in
|
|
Simplifying expression containing zero $21 in
|
|
Simplifying expression containing zero $27 in
|
|
Simplifying expression containing zero $2d in
|
|
Simplifying expression containing zero $33 in
|
|
Simplifying expression containing zero $39 in
|
|
Simplifying expression containing zero $40 in
|
|
Simplifying expression containing zero $c0 in
|
|
Simplifying expression containing zero $140 in
|
|
Simplifying expression containing zero $1c0 in
|
|
Simplifying expression containing zero $240 in
|
|
Simplifying expression containing zero $2c0 in
|
|
Simplifying expression containing zero $340 in
|
|
Simplifying expression containing zero (void (*)())INTRO_MUSIC in
|
|
Simplifying expression containing zero (unsigned int *)SID in [88] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_FREQ) = 0
|
|
Simplifying expression containing zero init_render_index::render_index_xcol#2 in [129] init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_LO] = init_render_index::$5
|
|
Simplifying expression containing zero render::render_index_xcol#0 in [149] render::canvas_offset#0 = render::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= render::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
|
Simplifying expression containing zero render_tiles::render_index_xcol#0 in [174] render_tiles::canvas_offset#0 = render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
|
Simplifying expression containing zero init_bobs_restore::bob_restore#5 in [205] init_bobs_restore::bob_restore#5[0] = init_bobs_restore::$2
|
|
Simplifying expression containing zero (char *)CIA2 in [344] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = splash_run::toDd001_return#0
|
|
Simplifying expression containing zero (char *)CIA1 in [479] joyfire::$0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $10
|
|
Simplifying expression containing zero LEFT in [587] init_level_tile_directions::open_directions#1 = init_level_tile_directions::open_directions#0 | LEFT
|
|
Simplifying expression containing zero (char *)CIA2 in [663] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = irq_screen_top::toDd001_return#0
|
|
Simplifying expression containing zero (char *)CIA2 in [670] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = irq_screen_top::toDd002_return#0
|
|
Simplifying expression containing zero bobs_xcol in [724] bobs_xcol[0] = game_logic::$17
|
|
Simplifying expression containing zero bobs_yfine in [726] bobs_yfine[0] = game_logic::$18
|
|
Simplifying expression containing zero bobs_bob_id in [730] bobs_bob_id[0] = game_logic::$21
|
|
Simplifying expression containing zero (char *)CIA1 in [1172] game_logic::$199 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) & $f
|
|
Successful SSA optimization PassNSimplifyExpressionWithZero
|
|
Removing unused block main::@return
|
|
Successful SSA optimization Pass2EliminateUnusedBlocks
|
|
Eliminating unused variable merge_code::dest_code#5 and assignment [59] merge_code::dest_code#5 = ++ merge_code::dest_code#12
|
|
Eliminating unused variable memset::return#2 and assignment [218] memset::return#2 = memset::str#6
|
|
Eliminating unused variable memset::return#3 and assignment [225] memset::return#3 = memset::str#6
|
|
Eliminating unused variable memset::return#4 and assignment [227] memset::return#4 = memset::str#6
|
|
Eliminating unused variable memset::return#5 and assignment [233] memset::return#5 = memset::str#6
|
|
Eliminating unused variable memset::return#6 and assignment [242] memset::return#6 = memset::str#6
|
|
Eliminating unused constant memcpy::return#2
|
|
Eliminating unused constant game_logic::target_xtile#0
|
|
Eliminating unused constant game_logic::target_ytile#0
|
|
Eliminating unused constant game_logic::target_xtile1#0
|
|
Eliminating unused constant game_logic::target_ytile1#0
|
|
Eliminating unused constant game_logic::target_xtile2#0
|
|
Eliminating unused constant game_logic::target_ytile2#0
|
|
Eliminating unused constant game_logic::target_xtile3#0
|
|
Eliminating unused constant game_logic::target_ytile3#0
|
|
Eliminating unused constant OFFSET_STRUCT_MOS6526_CIA_PORT_A
|
|
Eliminating unused constant OFFSET_STRUCT_MOS6581_SID_CH1_FREQ
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Adding number conversion cast (unumber) 0 in gameplay_run::$16 = 0 != pacman_wins
|
|
Adding number conversion cast (unumber) $32+1 in if(ghosts_mode_count<$32+1) goto game_logic::@47
|
|
Adding number conversion cast (unumber) 1 in if(ghosts_mode_count<(unumber)$32+1) goto game_logic::@47
|
|
Adding number conversion cast (unumber) $96+1 in if(ghosts_mode_count<$96+1) goto game_logic::@47
|
|
Adding number conversion cast (unumber) 1 in if(ghosts_mode_count<(unumber)$96+1) goto game_logic::@47
|
|
Adding number conversion cast (unumber) $32+1 in if(ghosts_mode_count<$32+1) goto game_logic::@47
|
|
Adding number conversion cast (unumber) 1 in if(ghosts_mode_count<(unumber)$32+1) goto game_logic::@47
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Simplifying constant integer cast 6
|
|
Simplifying constant integer cast $c
|
|
Simplifying constant integer cast $12
|
|
Simplifying constant integer cast $18
|
|
Simplifying constant integer cast $1e
|
|
Simplifying constant integer cast $24
|
|
Simplifying constant integer cast $2a
|
|
Simplifying constant integer cast $30
|
|
Simplifying constant integer cast $36
|
|
Simplifying constant integer cast $3c
|
|
Simplifying constant integer cast $80
|
|
Simplifying constant integer cast $100
|
|
Simplifying constant integer cast $180
|
|
Simplifying constant integer cast $200
|
|
Simplifying constant integer cast $280
|
|
Simplifying constant integer cast $300
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast 9
|
|
Simplifying constant integer cast $f
|
|
Simplifying constant integer cast $15
|
|
Simplifying constant integer cast $1b
|
|
Simplifying constant integer cast $21
|
|
Simplifying constant integer cast $27
|
|
Simplifying constant integer cast $2d
|
|
Simplifying constant integer cast $33
|
|
Simplifying constant integer cast $39
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast $c0
|
|
Simplifying constant integer cast $140
|
|
Simplifying constant integer cast $1c0
|
|
Simplifying constant integer cast $240
|
|
Simplifying constant integer cast $2c0
|
|
Simplifying constant integer cast $340
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $32+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $96+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $32+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Successful SSA optimization PassNCastSimplification
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Resolving array sizeof() sizeof PACMAN_CH1_FREQ_HI
|
|
Successful SSA optimization PassNSizeOfSimplification
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Alias splash_run::$24 = splash_run::$23
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Simple Condition merge_code::$4 [35] if(merge_code::logic_cycles#0!=merge_code::LOGIC_EXIT) goto merge_code::@20
|
|
Simple Condition merge_code::$6 [66] if(merge_code::logic_cycles#0<merge_code::$5) goto merge_code::@9
|
|
Simple Condition merge_code::$7 [67] if(merge_code::logic_cycles#0==merge_code::cycle_budget#13) goto merge_code::@9
|
|
Simple Condition gameplay_run::$16 [364] if(0!=pacman_wins) goto gameplay_run::@return
|
|
Simple Condition gameplay_run::$13 [366] if(pacman_lives==0) goto gameplay_run::@return
|
|
Simple Condition level_tile_get::$0 [412] if(level_tile_get::xtile#4>$31) goto level_tile_get::@2
|
|
Simple Condition level_tile_get::$1 [418] if(level_tile_get::ytile#4>$24) goto level_tile_get::@2
|
|
Simple Condition level_tile_directions::$0 [422] if(level_tile_directions::xtile#5>$31) goto level_tile_directions::@2
|
|
Simple Condition level_tile_directions::$1 [428] if(level_tile_directions::ytile#5>$24) goto level_tile_directions::@2
|
|
Simple Condition game_logic::$10 [548] if(game_logic_substep==3) goto game_logic::@14
|
|
Simple Condition game_logic::$76 [649] if(ABS[game_logic::$75]<2) goto game_logic::@170
|
|
Simple Condition game_logic::$81 [656] if(ABS[game_logic::$80]<2) goto game_logic::@171
|
|
Simple Condition game_logic::$86 [662] if(ABS[game_logic::$85]<2) goto game_logic::@172
|
|
Simple Condition game_logic::$91 [668] if(ABS[game_logic::$90]<2) goto game_logic::@173
|
|
Simple Condition game_logic::$109 [710] if(ghost4_substep==0) goto game_logic::@174
|
|
Simple Condition game_logic::$130 [759] if(ghost3_substep==0) goto game_logic::@175
|
|
Simple Condition game_logic::$151 [808] if(ghost2_substep==0) goto game_logic::@176
|
|
Simple Condition game_logic::$172 [857] if(ghost1_substep==0) goto game_logic::@177
|
|
Simple Condition game_logic::$193 [903] if(pacman_substep==0) goto game_logic::@178
|
|
Simple Condition game_logic::$11 [927] if(game_logic_substep==7) goto game_logic::@14
|
|
Simple Condition game_logic::$78 [928] if(ABS[game_logic::$77]<2) goto game_logic::@51
|
|
Simple Condition game_logic::$83 [929] if(ABS[game_logic::$82]<2) goto game_logic::@52
|
|
Simple Condition game_logic::$88 [930] if(ABS[game_logic::$87]<2) goto game_logic::@53
|
|
Simple Condition game_logic::$93 [931] if(ABS[game_logic::$92]<2) goto game_logic::@67
|
|
Condition not simple game_logic::$110 [932] if(game_logic::$110) goto game_logic::@77
|
|
Introduced intermediate condition variable game_logic::$220 = ghost4_direction
|
|
Condition not simple game_logic::$110 [932] if(game_logic::$110) goto game_logic::@77
|
|
Introduced intermediate condition variable game_logic::$221 = ghost4_direction
|
|
Condition not simple game_logic::$110 [932] if(game_logic::$110) goto game_logic::@77
|
|
Introduced intermediate condition variable game_logic::$222 = ghost4_direction
|
|
Simple Condition game_logic::$110 [932] if(game_logic::$220!=STOP) goto game_logic::@77
|
|
Condition not simple game_logic::$131 [933] if(game_logic::$131) goto game_logic::@95
|
|
Introduced intermediate condition variable game_logic::$223 = ghost3_direction
|
|
Condition not simple game_logic::$131 [933] if(game_logic::$131) goto game_logic::@95
|
|
Introduced intermediate condition variable game_logic::$224 = ghost3_direction
|
|
Condition not simple game_logic::$131 [933] if(game_logic::$131) goto game_logic::@95
|
|
Introduced intermediate condition variable game_logic::$225 = ghost3_direction
|
|
Simple Condition game_logic::$131 [933] if(game_logic::$223!=STOP) goto game_logic::@95
|
|
Condition not simple game_logic::$152 [934] if(game_logic::$152) goto game_logic::@113
|
|
Introduced intermediate condition variable game_logic::$226 = ghost2_direction
|
|
Condition not simple game_logic::$152 [934] if(game_logic::$152) goto game_logic::@113
|
|
Introduced intermediate condition variable game_logic::$227 = ghost2_direction
|
|
Condition not simple game_logic::$152 [934] if(game_logic::$152) goto game_logic::@113
|
|
Introduced intermediate condition variable game_logic::$228 = ghost2_direction
|
|
Simple Condition game_logic::$152 [934] if(game_logic::$226!=STOP) goto game_logic::@113
|
|
Condition not simple game_logic::$173 [935] if(game_logic::$173) goto game_logic::@131
|
|
Introduced intermediate condition variable game_logic::$229 = ghost1_direction
|
|
Condition not simple game_logic::$173 [935] if(game_logic::$173) goto game_logic::@131
|
|
Introduced intermediate condition variable game_logic::$230 = ghost1_direction
|
|
Condition not simple game_logic::$173 [935] if(game_logic::$173) goto game_logic::@131
|
|
Introduced intermediate condition variable game_logic::$231 = ghost1_direction
|
|
Simple Condition game_logic::$173 [935] if(game_logic::$229!=STOP) goto game_logic::@131
|
|
Condition not simple game_logic::$194 [936] if(game_logic::$194) goto game_logic::@148
|
|
Introduced intermediate condition variable game_logic::$232 = pacman_direction
|
|
Condition not simple game_logic::$194 [936] if(game_logic::$194) goto game_logic::@148
|
|
Introduced intermediate condition variable game_logic::$233 = pacman_direction
|
|
Simple Condition game_logic::$194 [936] if(game_logic::$232!=STOP) goto game_logic::@148
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
Negating conditional jump and destination [649] if(ABS[game_logic::$75]>=2) goto game_logic::@64
|
|
Negating conditional jump and destination [656] if(ABS[game_logic::$80]>=2) goto game_logic::@65
|
|
Negating conditional jump and destination [662] if(ABS[game_logic::$85]>=2) goto game_logic::@66
|
|
Negating conditional jump and destination [668] if(ABS[game_logic::$90]>=2) goto game_logic::@return
|
|
Negating conditional jump and destination [710] if(ghost4_substep!=0) goto game_logic::@83
|
|
Negating conditional jump and destination [759] if(ghost3_substep!=0) goto game_logic::@101
|
|
Negating conditional jump and destination [808] if(ghost2_substep!=0) goto game_logic::@119
|
|
Negating conditional jump and destination [857] if(ghost1_substep!=0) goto game_logic::@137
|
|
Negating conditional jump and destination [903] if(pacman_substep!=0) goto game_logic::@151
|
|
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
|
|
Constant right-side identified [0] memcpy::src_end#0 = memcpy::$2 + memcpy::num#0
|
|
Constant right-side identified [249] splash_run::toDd001_$0 = byte1 (unsigned int)splash_run::toDd001_gfx#0
|
|
Constant right-side identified [255] splash_run::toD0181_$0 = splash_run::toD0181_$7 & $3fff
|
|
Constant right-side identified [258] splash_run::toD0181_$3 = byte1 (unsigned int)splash_run::toD0181_gfx#0
|
|
Constant right-side identified [493] irq_screen_top::toD0181_$0 = irq_screen_top::toD0181_$7 & $3fff
|
|
Constant right-side identified [496] irq_screen_top::toD0181_$3 = byte1 (unsigned int)irq_screen_top::toD0181_gfx#0
|
|
Constant right-side identified [508] irq_screen_top::toDd001_$0 = byte1 (unsigned int)irq_screen_top::toDd001_gfx#0
|
|
Constant right-side identified [514] irq_screen_top::toDd002_$0 = byte1 (unsigned int)irq_screen_top::toDd002_gfx#0
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
Constant memcpy::src_end#0 = memcpy::$2+memcpy::num#0
|
|
Constant splash_run::toDd001_$0 = byte1 (unsigned int)splash_run::toDd001_gfx#0
|
|
Constant splash_run::toD0181_$0 = splash_run::toD0181_$7&$3fff
|
|
Constant splash_run::toD0181_$3 = byte1 (unsigned int)splash_run::toD0181_gfx#0
|
|
Constant init_level_tile_directions::open_directions#1 = LEFT
|
|
Constant irq_screen_top::toD0181_$0 = irq_screen_top::toD0181_$7&$3fff
|
|
Constant irq_screen_top::toD0181_$3 = byte1 (unsigned int)irq_screen_top::toD0181_gfx#0
|
|
Constant irq_screen_top::toDd001_$0 = byte1 (unsigned int)irq_screen_top::toDd001_gfx#0
|
|
Constant irq_screen_top::toDd002_$0 = byte1 (unsigned int)irq_screen_top::toDd002_gfx#0
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Rewriting conditional comparison [412] if(level_tile_get::xtile#4>$31) goto level_tile_get::@2
|
|
Rewriting conditional comparison [418] if(level_tile_get::ytile#4>$24) goto level_tile_get::@2
|
|
Rewriting conditional comparison [422] if(level_tile_directions::xtile#5>$31) goto level_tile_directions::@2
|
|
Rewriting conditional comparison [428] if(level_tile_directions::ytile#5>$24) goto level_tile_directions::@2
|
|
Simplifying constant evaluating to zero splash_run::toD0181_$7&$3fff in
|
|
Simplifying constant evaluating to zero irq_screen_top::toD0181_$7&$3fff in
|
|
Successful SSA optimization PassNSimplifyConstantZero
|
|
Eliminating unused variable game_logic::$221 and assignment [681] game_logic::$221 = ghost4_direction
|
|
Eliminating unused variable game_logic::$222 and assignment [682] game_logic::$222 = ghost4_direction
|
|
Eliminating unused variable game_logic::$224 and assignment [731] game_logic::$224 = ghost3_direction
|
|
Eliminating unused variable game_logic::$225 and assignment [732] game_logic::$225 = ghost3_direction
|
|
Eliminating unused variable game_logic::$227 and assignment [781] game_logic::$227 = ghost2_direction
|
|
Eliminating unused variable game_logic::$228 and assignment [782] game_logic::$228 = ghost2_direction
|
|
Eliminating unused variable game_logic::$230 and assignment [831] game_logic::$230 = ghost1_direction
|
|
Eliminating unused variable game_logic::$231 and assignment [832] game_logic::$231 = ghost1_direction
|
|
Eliminating unused variable game_logic::$233 and assignment [878] game_logic::$233 = pacman_direction
|
|
Eliminating unused constant splash_run::toD0181_$7
|
|
Eliminating unused constant irq_screen_top::toD0181_$7
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Eliminating unused constant splash_run::toD0181_screen#0
|
|
Eliminating unused constant irq_screen_top::toD0181_screen#0
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Adding number conversion cast (unumber) $16 in
|
|
Adding number conversion cast (unumber) $31+1 in if(level_tile_get::xtile#4>=$31+1) goto level_tile_get::@2
|
|
Adding number conversion cast (unumber) 1 in if(level_tile_get::xtile#4>=(unumber)$31+1) goto level_tile_get::@2
|
|
Adding number conversion cast (unumber) $24+1 in if(level_tile_get::ytile#4>=$24+1) goto level_tile_get::@2
|
|
Adding number conversion cast (unumber) 1 in if(level_tile_get::ytile#4>=(unumber)$24+1) goto level_tile_get::@2
|
|
Adding number conversion cast (unumber) $31+1 in if(level_tile_directions::xtile#5>=$31+1) goto level_tile_directions::@2
|
|
Adding number conversion cast (unumber) 1 in if(level_tile_directions::xtile#5>=(unumber)$31+1) goto level_tile_directions::@2
|
|
Adding number conversion cast (unumber) $24+1 in if(level_tile_directions::ytile#5>=$24+1) goto level_tile_directions::@2
|
|
Adding number conversion cast (unumber) 1 in if(level_tile_directions::ytile#5>=(unumber)$24+1) goto level_tile_directions::@2
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Simplifying constant integer cast $16
|
|
Simplifying constant integer cast $31+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $24+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $31+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast $24+(unumber)1
|
|
Simplifying constant integer cast 1
|
|
Successful SSA optimization PassNCastSimplification
|
|
Finalized unsigned number type (char) $16
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 1
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Constant right-side identified [245] splash_run::toDd001_$1 = splash_run::toDd001_$0 / $40
|
|
Constant right-side identified [250] splash_run::toD0181_$1 = splash_run::toD0181_$0 * 4
|
|
Constant right-side identified [252] splash_run::toD0181_$4 = splash_run::toD0181_$3 / 4
|
|
Constant right-side identified [479] irq_screen_top::toD0181_$1 = irq_screen_top::toD0181_$0 * 4
|
|
Constant right-side identified [481] irq_screen_top::toD0181_$4 = irq_screen_top::toD0181_$3 / 4
|
|
Constant right-side identified [492] irq_screen_top::toDd001_$1 = irq_screen_top::toDd001_$0 / $40
|
|
Constant right-side identified [497] irq_screen_top::toDd002_$1 = irq_screen_top::toDd002_$0 / $40
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
Constant splash_run::toDd001_$1 = splash_run::toDd001_$0/$40
|
|
Constant splash_run::toD0181_$1 = splash_run::toD0181_$0*4
|
|
Constant splash_run::toD0181_$4 = splash_run::toD0181_$3/4
|
|
Constant irq_screen_top::toD0181_$1 = irq_screen_top::toD0181_$0*4
|
|
Constant irq_screen_top::toD0181_$4 = irq_screen_top::toD0181_$3/4
|
|
Constant irq_screen_top::toDd001_$1 = irq_screen_top::toDd001_$0/$40
|
|
Constant irq_screen_top::toDd002_$1 = irq_screen_top::toDd002_$0/$40
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Simplifying constant evaluating to zero splash_run::toD0181_$0*4 in
|
|
Simplifying constant evaluating to zero irq_screen_top::toD0181_$0*4 in
|
|
Successful SSA optimization PassNSimplifyConstantZero
|
|
Eliminating unused constant splash_run::toD0181_$0
|
|
Eliminating unused constant irq_screen_top::toD0181_$0
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Constant right-side identified [245] splash_run::toDd001_return#0 = 3 ^ splash_run::toDd001_$1
|
|
Constant right-side identified [249] splash_run::toD0181_$2 = byte1 splash_run::toD0181_$1
|
|
Constant right-side identified [250] splash_run::toD0181_$5 = splash_run::toD0181_$4 & $f
|
|
Constant right-side identified [476] irq_screen_top::toD0181_$2 = byte1 irq_screen_top::toD0181_$1
|
|
Constant right-side identified [477] irq_screen_top::toD0181_$5 = irq_screen_top::toD0181_$4 & $f
|
|
Constant right-side identified [487] irq_screen_top::toDd001_return#0 = 3 ^ irq_screen_top::toDd001_$1
|
|
Constant right-side identified [491] irq_screen_top::toDd002_return#0 = 3 ^ irq_screen_top::toDd002_$1
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
Constant splash_run::toDd001_return#0 = 3^splash_run::toDd001_$1
|
|
Constant splash_run::toD0181_$2 = byte1 splash_run::toD0181_$1
|
|
Constant splash_run::toD0181_$5 = splash_run::toD0181_$4&$f
|
|
Constant irq_screen_top::toD0181_$2 = byte1 irq_screen_top::toD0181_$1
|
|
Constant irq_screen_top::toD0181_$5 = irq_screen_top::toD0181_$4&$f
|
|
Constant irq_screen_top::toDd001_return#0 = 3^irq_screen_top::toDd001_$1
|
|
Constant irq_screen_top::toDd002_return#0 = 3^irq_screen_top::toDd002_$1
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Simplifying constant evaluating to zero byte1 splash_run::toD0181_$1 in
|
|
Simplifying constant evaluating to zero splash_run::toD0181_$4&$f in
|
|
Simplifying constant evaluating to zero byte1 irq_screen_top::toD0181_$1 in
|
|
Simplifying constant evaluating to zero irq_screen_top::toD0181_$4&$f in
|
|
Simplifying constant evaluating to zero 3^irq_screen_top::toDd001_$1 in
|
|
Successful SSA optimization PassNSimplifyConstantZero
|
|
Simplifying expression containing zero splash_run::toD0181_$5 in [251] splash_run::toD0181_return#0 = splash_run::toD0181_$2 | splash_run::toD0181_$5
|
|
Simplifying expression containing zero irq_screen_top::toD0181_$5 in [478] irq_screen_top::toD0181_return#0 = irq_screen_top::toD0181_$2 | irq_screen_top::toD0181_$5
|
|
Successful SSA optimization PassNSimplifyExpressionWithZero
|
|
Eliminating unused constant splash_run::toD0181_$1
|
|
Eliminating unused constant splash_run::toD0181_$4
|
|
Eliminating unused constant splash_run::toD0181_$2
|
|
Eliminating unused constant irq_screen_top::toD0181_$1
|
|
Eliminating unused constant irq_screen_top::toD0181_$4
|
|
Eliminating unused constant irq_screen_top::toDd001_$1
|
|
Eliminating unused constant irq_screen_top::toD0181_$2
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Eliminating unused constant splash_run::toD0181_$3
|
|
Eliminating unused constant irq_screen_top::toD0181_$3
|
|
Eliminating unused constant irq_screen_top::toDd001_$0
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Eliminating unused constant splash_run::toD0181_gfx#0
|
|
Eliminating unused constant irq_screen_top::toD0181_gfx#0
|
|
Eliminating unused constant irq_screen_top::toDd001_gfx#0
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Constant splash_run::toD0181_return#0 = splash_run::toD0181_$5
|
|
Constant irq_screen_top::toD0181_return#0 = irq_screen_top::toD0181_$5
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Inlining Noop Cast [8] memset::$4 = (char *)memset::str#6 keeping memset::str#6
|
|
Inlining Noop Cast [10] memset::dst#0 = (char *)memset::str#6 keeping memset::str#6
|
|
Successful SSA optimization Pass2NopCastInlining
|
|
Inlining Noop Cast [112] render::render_index_xcol#0 = (char *)render::$3 keeping render::render_index_xcol#0
|
|
Inlining Noop Cast [134] render_tiles::render_index_xcol#0 = (char *)render_tiles::$6 keeping render_tiles::render_index_xcol#0
|
|
Successful SSA optimization Pass2NopCastInlining
|
|
Rewriting multiplication to use shift [85] init_render_index::$9 = init_render_index::x_col#2 * SIZEOF_POINTER
|
|
Rewriting multiplication to use shift [90] init_render_index::$10 = init_render_index::$11 * SIZEOF_UNSIGNED_INT
|
|
Rewriting division to use shift [108] render::ytile#0 = render::ypos#2 / 4
|
|
Rewriting multiplication to use shift [110] render::$2 = render::ytile#0 * 2
|
|
Rewriting multiplication to use shift [127] render_tiles::$0 = render_tiles::tile_left#0 * 4
|
|
Rewriting multiplication to use shift [129] render_tiles::$2 = render_tiles::tile_right#0 * 4
|
|
Rewriting multiplication to use shift [132] render_tiles::$5 = render_tiles::ytile#0 * 2
|
|
Rewriting multiplication to use shift [237] splash_run::$24 = splash_run::i#2 * 2
|
|
Rewriting multiplication to use shift [239] splash_run::$34 = splash_run::i#2 * SIZEOF_UNSIGNED_INT
|
|
Rewriting division to use shift [242] splash_run::msb#1 = splash_run::msb#10 / 2
|
|
Rewriting multiplication to use shift [395] level_tile_get::$5 = level_tile_get::ytile#4 * SIZEOF_UNSIGNED_INT
|
|
Rewriting multiplication to use shift [403] level_tile_directions::$5 = level_tile_directions::ytile#5 * SIZEOF_UNSIGNED_INT
|
|
Rewriting division to use shift [517] game_logic::$17 = game_logic::pacman_bob_xfine#0 / 4
|
|
Rewriting division to use shift [529] game_logic::$25 = game_logic::ghost1_bob_xfine#0 / 4
|
|
Rewriting division to use shift [538] game_logic::$31 = game_logic::ghost2_bob_xfine#0 / 4
|
|
Rewriting division to use shift [547] game_logic::$37 = game_logic::ghost3_bob_xfine#0 / 4
|
|
Rewriting division to use shift [556] game_logic::$43 = game_logic::ghost4_bob_xfine#0 / 4
|
|
Rewriting division to use shift [578] game_logic::pacman_xtile#0 = pacman_xfine / 2
|
|
Rewriting division to use shift [579] game_logic::pacman_ytile#0 = pacman_yfine / 2
|
|
Rewriting multiplication to use shift [580] game_logic::$210 = game_logic::pacman_ytile#0 * SIZEOF_UNSIGNED_INT
|
|
Rewriting division to use shift [589] game_logic::$69 = game_logic::pacman_xtile#0 / 2
|
|
Rewriting multiplication to use shift [594] game_logic::$72 = game_logic::pacman_ytile#0 * 2
|
|
Rewriting division to use shift [600] game_logic::$65 = game_logic::pacman_xtile#0 / 2
|
|
Rewriting multiplication to use shift [605] game_logic::$68 = game_logic::pacman_ytile#0 * 2
|
|
Rewriting division to use shift [672] game_logic::ghost4_xtile#0 = ghost4_xfine / 2
|
|
Rewriting division to use shift [673] game_logic::ghost4_ytile#0 = ghost4_yfine / 2
|
|
Rewriting division to use shift [683] game_logic::target_xtile#2 = pacman_xfine / 2
|
|
Rewriting division to use shift [684] game_logic::target_ytile#2 = pacman_yfine / 2
|
|
Rewriting division to use shift [720] game_logic::ghost3_xtile#0 = ghost3_xfine / 2
|
|
Rewriting division to use shift [721] game_logic::ghost3_ytile#0 = ghost3_yfine / 2
|
|
Rewriting division to use shift [731] game_logic::target_xtile1#2 = pacman_xfine / 2
|
|
Rewriting division to use shift [732] game_logic::target_ytile1#2 = pacman_yfine / 2
|
|
Rewriting division to use shift [768] game_logic::ghost2_xtile#0 = ghost2_xfine / 2
|
|
Rewriting division to use shift [769] game_logic::ghost2_ytile#0 = ghost2_yfine / 2
|
|
Rewriting division to use shift [779] game_logic::target_xtile2#2 = pacman_xfine / 2
|
|
Rewriting division to use shift [780] game_logic::target_ytile2#2 = pacman_yfine / 2
|
|
Rewriting division to use shift [816] game_logic::ghost1_xtile#0 = ghost1_xfine / 2
|
|
Rewriting division to use shift [817] game_logic::ghost1_ytile#0 = ghost1_yfine / 2
|
|
Rewriting division to use shift [827] game_logic::target_xtile3#2 = pacman_xfine / 2
|
|
Rewriting division to use shift [828] game_logic::target_ytile3#2 = pacman_yfine / 2
|
|
Rewriting division to use shift [859] game_logic::pacman_xtile1#0 = pacman_xfine / 2
|
|
Rewriting division to use shift [860] game_logic::pacman_ytile1#0 = pacman_yfine / 2
|
|
Rewriting multiplication to use shift [868] game_logic::joy_directions#0 = game_logic::$200 * 4
|
|
Successful SSA optimization Pass2MultiplyToShiftRewriting
|
|
Inlining constant with var siblings memcpy::src#0
|
|
Inlining constant with var siblings memcpy::dst#0
|
|
Inlining constant with var siblings memset::str#0
|
|
Inlining constant with var siblings memset::c#0
|
|
Inlining constant with var siblings memset::num#0
|
|
Inlining constant with var siblings memset::str#1
|
|
Inlining constant with var siblings memset::c#1
|
|
Inlining constant with var siblings memset::num#1
|
|
Inlining constant with var siblings memset::str#2
|
|
Inlining constant with var siblings memset::c#2
|
|
Inlining constant with var siblings memset::num#2
|
|
Inlining constant with var siblings memset::str#3
|
|
Inlining constant with var siblings memset::c#3
|
|
Inlining constant with var siblings memset::num#3
|
|
Inlining constant with var siblings memset::str#4
|
|
Inlining constant with var siblings memset::c#4
|
|
Inlining constant with var siblings memset::num#4
|
|
Inlining constant with var siblings merge_code::dest_code#7
|
|
Inlining constant with var siblings merge_code::raster_code#3
|
|
Inlining constant with var siblings merge_code::logic_code#6
|
|
Inlining constant with var siblings init_render_index::render_index#0
|
|
Inlining constant with var siblings init_render_index::x_col#0
|
|
Inlining constant with var siblings init_render_index::render_ypos_table#0
|
|
Inlining constant with var siblings init_render_index::ypos_inc_offset#0
|
|
Inlining constant with var siblings init_render_index::y_pos#0
|
|
Inlining constant with var siblings init_render_index::render_ypos_table#1
|
|
Inlining constant with var siblings init_render_index::ypos_inc_offset#1
|
|
Inlining constant with var siblings render::i#0
|
|
Inlining constant with var siblings render_tiles::y#0
|
|
Inlining constant with var siblings init_bobs_restore::bob_restore#0
|
|
Inlining constant with var siblings init_bobs_restore::bob#0
|
|
Inlining constant with var siblings init_bobs_restore::i#0
|
|
Inlining constant with var siblings done_run::i#0
|
|
Inlining constant with var siblings done_run::i1#0
|
|
Inlining constant with var siblings done_run::gfx#0
|
|
Inlining constant with var siblings done_run::xcol#0
|
|
Inlining constant with var siblings done_run::ypos#0
|
|
Inlining constant with var siblings splash_run::msb#0
|
|
Inlining constant with var siblings splash_run::i#0
|
|
Inlining constant with var siblings splash_run::i1#0
|
|
Inlining constant with var siblings splash_run::i2#0
|
|
Inlining constant with var siblings gameplay_run::i#0
|
|
Inlining constant with var siblings gameplay_run::i1#0
|
|
Inlining constant with var siblings gameplay_run::i2#0
|
|
Inlining constant with var siblings joyfire::return#2
|
|
Inlining constant with var siblings joyfire::return#3
|
|
Inlining constant with var siblings splash_show::splash#0
|
|
Inlining constant with var siblings splash_show::xcol#0
|
|
Inlining constant with var siblings splash_show::ypos#0
|
|
Inlining constant with var siblings level_show::count#0
|
|
Inlining constant with var siblings level_show::level#0
|
|
Inlining constant with var siblings level_show::ytile#0
|
|
Inlining constant with var siblings level_show::xcol#0
|
|
Inlining constant with var siblings level_show::xtile#0
|
|
Inlining constant with var siblings level_tile_get::return#1
|
|
Inlining constant with var siblings level_tile_directions::return#1
|
|
Inlining constant with var siblings init_level_tile_directions::directions#0
|
|
Inlining constant with var siblings init_level_tile_directions::ytile#0
|
|
Inlining constant with var siblings init_level_tile_directions::xtile#0
|
|
Inlining constant with var siblings init_level_tile_directions::open_directions#0
|
|
Inlining constant with var siblings init_level_tile_directions::open_directions#1
|
|
Inlining constant with var siblings init_sprite_pointers::sprites_ptr_1#0
|
|
Inlining constant with var siblings init_sprite_pointers::sprites_ptr_2#0
|
|
Inlining constant with var siblings init_sprite_pointers::screen#0
|
|
Inlining constant with var siblings init_sprite_pointers::sprite#0
|
|
Inlining constant with var siblings game_logic::do_reverse#0
|
|
Inlining constant with var siblings game_logic::do_reverse#1
|
|
Inlining constant with var siblings game_logic::do_reverse#2
|
|
Inlining constant with var siblings game_logic::do_reverse#3
|
|
Inlining constant with var siblings game_logic::target_xtile#1
|
|
Inlining constant with var siblings game_logic::target_ytile#1
|
|
Inlining constant with var siblings game_logic::target_xtile1#1
|
|
Inlining constant with var siblings game_logic::target_ytile1#1
|
|
Inlining constant with var siblings game_logic::target_xtile2#1
|
|
Inlining constant with var siblings game_logic::target_ytile2#1
|
|
Inlining constant with var siblings game_logic::target_xtile3#1
|
|
Inlining constant with var siblings game_logic::target_ytile3#1
|
|
Inlining constant with var siblings choose_direction::direction#0
|
|
Inlining constant with var siblings choose_direction::dist_min#0
|
|
Inlining constant with var siblings choose_direction::direction#1
|
|
Inlining constant with var siblings choose_direction::direction#2
|
|
Inlining constant with var siblings choose_direction::direction#3
|
|
Inlining constant with var siblings choose_direction::direction#4
|
|
Constant inlined splash_show::ypos#0 = 0
|
|
Constant inlined splash_show::xcol#0 = 0
|
|
Constant inlined level_show::xcol#0 = 0
|
|
Constant inlined game_logic::target_ytile#1 = 2
|
|
Constant inlined init_level_tile_directions::xtile#0 = 0
|
|
Constant inlined init_level_tile_directions::open_directions#0 = 0
|
|
Constant inlined memcpy::$2 = (char *)memcpy::source#0
|
|
Constant inlined init_level_tile_directions::open_directions#1 = LEFT
|
|
Constant inlined splash_run::toDd001_gfx#0 = SCREENS_1
|
|
Constant inlined irq_screen_top::toDd002_gfx#0 = SCREENS_1
|
|
Constant inlined splash_run::msb#0 = 0
|
|
Constant inlined level_show::xtile#0 = 0
|
|
Constant inlined init_level_tile_directions::directions#0 = LEVEL_TILES_DIRECTIONS
|
|
Constant inlined splash_run::i#0 = 0
|
|
Constant inlined game_logic::target_ytile1#1 = 2
|
|
Constant inlined render_tiles::y#0 = 0
|
|
Constant inlined init_sprite_pointers::sprites_ptr_2#0 = SCREENS_2+OFFSET_SPRITE_PTRS
|
|
Constant inlined memset::c#0 = 0
|
|
Constant inlined memset::c#1 = 0
|
|
Constant inlined memset::c#2 = 0
|
|
Constant inlined memset::c#3 = 0
|
|
Constant inlined memset::c#4 = 0
|
|
Constant inlined choose_direction::dist_min#0 = $ff
|
|
Constant inlined init_bobs_restore::bob_restore#0 = bobs_restore
|
|
Constant inlined merge_code::dest_code#7 = RASTER_CODE
|
|
Constant inlined irq_screen_top::toD0181_$5 = 0
|
|
Constant inlined splash_show::splash#0 = SPLASH
|
|
Constant inlined level_tile_get::return#1 = 0
|
|
Constant inlined splash_run::i1#0 = 0
|
|
Constant inlined render::i#0 = 0
|
|
Constant inlined gameplay_run::i1#0 = 0
|
|
Constant inlined game_logic::target_xtile3#1 = 2
|
|
Constant inlined pacman_sound_play::$1 = $16*SIZEOF_CHAR
|
|
Constant inlined game_logic::target_ytile2#1 = 2
|
|
Constant inlined done_run::xcol#0 = 0
|
|
Constant inlined game_logic::do_reverse#3 = 1
|
|
Constant inlined game_logic::do_reverse#2 = 1
|
|
Constant inlined level_show::ytile#0 = 0
|
|
Constant inlined game_logic::do_reverse#1 = 1
|
|
Constant inlined done_run::gfx#0 = WIN_GFX
|
|
Constant inlined game_logic::do_reverse#0 = 0
|
|
Constant inlined memset::num#3 = $1fff
|
|
Constant inlined memset::num#2 = $3fff
|
|
Constant inlined choose_direction::direction#3 = LEFT
|
|
Constant inlined memset::num#4 = INTRO_MUSIC_CRUNCHED_SIZE
|
|
Constant inlined choose_direction::direction#4 = RIGHT
|
|
Constant inlined choose_direction::direction#1 = UP
|
|
Constant inlined init_sprite_pointers::screen#0 = 0
|
|
Constant inlined choose_direction::direction#2 = DOWN
|
|
Constant inlined memset::num#1 = $1fff
|
|
Constant inlined choose_direction::direction#0 = STOP
|
|
Constant inlined memset::num#0 = $c00
|
|
Constant inlined done_run::i1#0 = 0
|
|
Constant inlined init_render_index::ypos_inc_offset#1 = $b
|
|
Constant inlined done_run::i#0 = 0
|
|
Constant inlined init_render_index::ypos_inc_offset#0 = 0
|
|
Constant inlined splash_run::i2#0 = 0
|
|
Constant inlined gameplay_run::i2#0 = 0
|
|
Constant inlined merge_code::logic_code#6 = LOGIC_CODE_UNMERGED
|
|
Constant inlined level_tile_directions::return#1 = 0
|
|
Constant inlined done_run::ypos#0 = 0
|
|
Constant inlined init_bobs_restore::i#0 = 0
|
|
Constant inlined splash_run::toDd001_$0 = byte1 (unsigned int)SCREENS_1
|
|
Constant inlined game_logic::target_ytile3#1 = 2
|
|
Constant inlined splash_run::toDd001_$1 = byte1 (unsigned int)SCREENS_1/$40
|
|
Constant inlined game_logic::target_xtile2#1 = 2
|
|
Constant inlined level_show::count#0 = 0
|
|
Constant inlined gameplay_run::i#0 = 0
|
|
Constant inlined init_level_tile_directions::ytile#0 = 0
|
|
Constant inlined game_logic::target_xtile#1 = 2
|
|
Constant inlined init_bobs_restore::bob#0 = 0
|
|
Constant inlined memcpy::dst#0 = (char *)memcpy::destination#0
|
|
Constant inlined splash_run::toD0181_$5 = 0
|
|
Constant inlined memcpy::src#0 = (char *)memcpy::source#0
|
|
Constant inlined init_render_index::y_pos#0 = 0
|
|
Constant inlined merge_code::raster_code#3 = RASTER_CODE_UNMERGED
|
|
Constant inlined init_bobs_restore::$4 = 0
|
|
Constant inlined init_bobs_restore::$5 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant inlined init_render_index::x_col#0 = 0
|
|
Constant inlined init_bobs_restore::$2 = 0
|
|
Constant inlined init_bobs_restore::$3 = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
Constant inlined memset::str#2 = (void *)BANK_2
|
|
Constant inlined memset::str#1 = (void *)BANK_1+$2000
|
|
Constant inlined memset::str#0 = (void *)(char *) 16384
|
|
Constant inlined memset::str#4 = (void *)INTRO_MUSIC_CRUNCHED_UPPER
|
|
Constant inlined memset::str#3 = (void *)BANK_1
|
|
Constant inlined game_logic::target_xtile1#1 = 2
|
|
Constant inlined level_show::level#0 = LEVEL_TILES
|
|
Constant inlined init_sprite_pointers::sprites_ptr_1#0 = SCREENS_1+OFFSET_SPRITE_PTRS
|
|
Constant inlined memcpy::num#0 = INTRO_MUSIC_CRUNCHED_SIZE
|
|
Constant inlined irq_screen_top::toDd002_$1 = byte1 (unsigned int)SCREENS_1/$40
|
|
Constant inlined init_sprite_pointers::sprite#0 = 0
|
|
Constant inlined init_render_index::render_ypos_table#0 = RENDER_YPOS
|
|
Constant inlined irq_screen_top::toDd002_$0 = byte1 (unsigned int)SCREENS_1
|
|
Constant inlined init_render_index::render_ypos_table#1 = RENDER_YPOS_9TH
|
|
Constant inlined init_render_index::render_index#0 = RENDER_INDEX
|
|
Constant inlined joyfire::return#2 = 1
|
|
Constant inlined joyfire::return#3 = 0
|
|
Successful SSA optimization Pass2ConstantInlining
|
|
Consolidated array index constant in *(RENDER_INDEX+(unsigned int)$18*$100+RENDER_OFFSET_YPOS_INC)
|
|
Consolidated array index constant in *(RENDER_INDEX+(unsigned int)$19*$100+RENDER_OFFSET_YPOS_INC)
|
|
Consolidated array index constant in *(bobs_xcol+1)
|
|
Consolidated array index constant in *(bobs_yfine+1)
|
|
Consolidated array index constant in *(bobs_bob_id+1)
|
|
Consolidated array index constant in *(bobs_xcol+2)
|
|
Consolidated array index constant in *(bobs_yfine+2)
|
|
Consolidated array index constant in *(bobs_bob_id+2)
|
|
Consolidated array index constant in *(bobs_xcol+3)
|
|
Consolidated array index constant in *(bobs_yfine+3)
|
|
Consolidated array index constant in *(bobs_bob_id+3)
|
|
Consolidated array index constant in *(bobs_xcol+4)
|
|
Consolidated array index constant in *(bobs_yfine+4)
|
|
Consolidated array index constant in *(bobs_bob_id+4)
|
|
Consolidated array index constant in assignment (ABS+-1)[choose_direction::$10]
|
|
Consolidated array index constant in assignment (ABS+1)[choose_direction::$14]
|
|
Consolidated array index constant in assignment (ABS+-1)[choose_direction::$18]
|
|
Consolidated array index constant in assignment (ABS+1)[choose_direction::$22]
|
|
Successful SSA optimization Pass2ConstantAdditionElimination
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Alias choose_direction::ydiff#0 = choose_direction::$10 choose_direction::$14
|
|
Alias choose_direction::xdiff#0 = choose_direction::$18 choose_direction::$22
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Identical Phi Values memset::c#7 0
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Identified duplicate assignment right side [235] splash_run::$34 = splash_run::i#2 << 1
|
|
Identified duplicate assignment right side [590] game_logic::$72 = game_logic::pacman_ytile#0 << 1
|
|
Identified duplicate assignment right side [601] game_logic::$68 = game_logic::pacman_ytile#0 << 1
|
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
|
Eliminating unused constant SIZEOF_POINTER
|
|
Eliminating unused constant SIZEOF_UNSIGNED_INT
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$210 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Alias splash_run::$34 = splash_run::$24
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$210 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$210 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (unsigned int) $400
|
|
Finalized unsigned number type (unsigned int) $401
|
|
Finalized unsigned number type (unsigned int) $402
|
|
Finalized unsigned number type (unsigned int) $800
|
|
Finalized unsigned number type (unsigned int) $801
|
|
Finalized unsigned number type (unsigned int) $802
|
|
Finalized unsigned number type (unsigned int) $c00
|
|
Finalized unsigned number type (unsigned int) $c01
|
|
Finalized unsigned number type (unsigned int) $c02
|
|
Finalized unsigned number type (unsigned int) $1000
|
|
Finalized unsigned number type (unsigned int) $1001
|
|
Finalized unsigned number type (unsigned int) $1002
|
|
Finalized unsigned number type (unsigned int) $1400
|
|
Finalized unsigned number type (unsigned int) $1401
|
|
Finalized unsigned number type (unsigned int) $1402
|
|
Finalized unsigned number type (unsigned int) $1800
|
|
Finalized unsigned number type (unsigned int) $1801
|
|
Finalized unsigned number type (unsigned int) $1802
|
|
Finalized unsigned number type (unsigned int) $1c00
|
|
Finalized unsigned number type (unsigned int) $1c01
|
|
Finalized unsigned number type (unsigned int) $1c02
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) $1a
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (char) $95
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (char) $80
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (char) $c0
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $140
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $180
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $1c0
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $200
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $240
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $280
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $2c0
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) 3
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) 9
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $f
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $15
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $1b
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $27
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $2d
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $33
|
|
Finalized unsigned number type (unsigned int) $300
|
|
Finalized unsigned number type (char) $39
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) 6
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $c
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $12
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $1e
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $24
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $2a
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $30
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $36
|
|
Finalized unsigned number type (unsigned int) $340
|
|
Finalized unsigned number type (char) $3c
|
|
Finalized unsigned number type (char) $95
|
|
Finalized unsigned number type (char) $a0
|
|
Finalized unsigned number type (char) $25
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (char) $10
|
|
Finalized unsigned number type (char) $20
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 4
|
|
Finalized unsigned number type (char) 8
|
|
Finalized unsigned number type (char) $10
|
|
Finalized unsigned number type (char) $20
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (char) $21
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 0
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) 2
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) 1
|
|
Finalized unsigned number type (char) $18
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $19
|
|
Finalized unsigned number type (unsigned int) $100
|
|
Finalized unsigned number type (char) $40
|
|
Finalized unsigned number type (char) $12
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Simplifying constant integer cast $100+6
|
|
Simplifying constant integer cast $100+$c
|
|
Simplifying constant integer cast $100+$12
|
|
Simplifying constant integer cast $100+$18
|
|
Simplifying constant integer cast $100+$1e
|
|
Simplifying constant integer cast $100+$24
|
|
Simplifying constant integer cast $100+$2a
|
|
Simplifying constant integer cast $100+$30
|
|
Simplifying constant integer cast $100+$36
|
|
Simplifying constant integer cast $100+$3c
|
|
Simplifying constant integer cast $140+3
|
|
Simplifying constant integer cast $140+9
|
|
Simplifying constant integer cast $140+$f
|
|
Simplifying constant integer cast $140+$15
|
|
Simplifying constant integer cast $140+$1b
|
|
Simplifying constant integer cast $140+$21
|
|
Simplifying constant integer cast $140+$27
|
|
Simplifying constant integer cast $140+$2d
|
|
Simplifying constant integer cast $140+$33
|
|
Simplifying constant integer cast $140+$39
|
|
Simplifying constant integer cast $180+6
|
|
Simplifying constant integer cast $180+$c
|
|
Simplifying constant integer cast $180+$12
|
|
Simplifying constant integer cast $180+$18
|
|
Simplifying constant integer cast $180+$1e
|
|
Simplifying constant integer cast $180+$24
|
|
Simplifying constant integer cast $180+$2a
|
|
Simplifying constant integer cast $180+$30
|
|
Simplifying constant integer cast $180+$36
|
|
Simplifying constant integer cast $180+$3c
|
|
Simplifying constant integer cast $1c0+3
|
|
Simplifying constant integer cast $1c0+9
|
|
Simplifying constant integer cast $1c0+$f
|
|
Simplifying constant integer cast $1c0+$15
|
|
Simplifying constant integer cast $1c0+$1b
|
|
Simplifying constant integer cast $1c0+$21
|
|
Simplifying constant integer cast $1c0+$27
|
|
Simplifying constant integer cast $1c0+$2d
|
|
Simplifying constant integer cast $1c0+$33
|
|
Simplifying constant integer cast $1c0+$39
|
|
Simplifying constant integer cast $200+6
|
|
Simplifying constant integer cast $200+$c
|
|
Simplifying constant integer cast $200+$12
|
|
Simplifying constant integer cast $200+$18
|
|
Simplifying constant integer cast $200+$1e
|
|
Simplifying constant integer cast $200+$24
|
|
Simplifying constant integer cast $200+$2a
|
|
Simplifying constant integer cast $200+$30
|
|
Simplifying constant integer cast $200+$36
|
|
Simplifying constant integer cast $200+$3c
|
|
Simplifying constant integer cast $240+3
|
|
Simplifying constant integer cast $240+9
|
|
Simplifying constant integer cast $240+$f
|
|
Simplifying constant integer cast $240+$15
|
|
Simplifying constant integer cast $240+$1b
|
|
Simplifying constant integer cast $240+$21
|
|
Simplifying constant integer cast $240+$27
|
|
Simplifying constant integer cast $240+$2d
|
|
Simplifying constant integer cast $240+$33
|
|
Simplifying constant integer cast $240+$39
|
|
Simplifying constant integer cast $280+6
|
|
Simplifying constant integer cast $280+$c
|
|
Simplifying constant integer cast $280+$12
|
|
Simplifying constant integer cast $280+$18
|
|
Simplifying constant integer cast $280+$1e
|
|
Simplifying constant integer cast $280+$24
|
|
Simplifying constant integer cast $280+$2a
|
|
Simplifying constant integer cast $280+$30
|
|
Simplifying constant integer cast $280+$36
|
|
Simplifying constant integer cast $280+$3c
|
|
Simplifying constant integer cast $2c0+3
|
|
Simplifying constant integer cast $2c0+9
|
|
Simplifying constant integer cast $2c0+$f
|
|
Simplifying constant integer cast $2c0+$15
|
|
Simplifying constant integer cast $2c0+$1b
|
|
Simplifying constant integer cast $2c0+$21
|
|
Simplifying constant integer cast $2c0+$27
|
|
Simplifying constant integer cast $2c0+$2d
|
|
Simplifying constant integer cast $2c0+$33
|
|
Simplifying constant integer cast $2c0+$39
|
|
Simplifying constant integer cast $300+6
|
|
Simplifying constant integer cast $300+$c
|
|
Simplifying constant integer cast $300+$12
|
|
Simplifying constant integer cast $300+$18
|
|
Simplifying constant integer cast $300+$1e
|
|
Simplifying constant integer cast $300+$24
|
|
Simplifying constant integer cast $300+$2a
|
|
Simplifying constant integer cast $300+$30
|
|
Simplifying constant integer cast $300+$36
|
|
Simplifying constant integer cast $300+$3c
|
|
Simplifying constant integer cast $340+3
|
|
Simplifying constant integer cast $340+9
|
|
Simplifying constant integer cast $340+$f
|
|
Simplifying constant integer cast $340+$15
|
|
Simplifying constant integer cast $340+$1b
|
|
Simplifying constant integer cast $340+$21
|
|
Simplifying constant integer cast $340+$27
|
|
Simplifying constant integer cast $340+$2d
|
|
Simplifying constant integer cast $340+$33
|
|
Simplifying constant integer cast $340+$39
|
|
Simplifying constant integer cast $100+3
|
|
Simplifying constant integer cast $100+9
|
|
Simplifying constant integer cast $100+$f
|
|
Simplifying constant integer cast $100+$15
|
|
Simplifying constant integer cast $100+$1b
|
|
Simplifying constant integer cast $100+$21
|
|
Simplifying constant integer cast $100+$27
|
|
Simplifying constant integer cast $100+$2d
|
|
Simplifying constant integer cast $100+$33
|
|
Simplifying constant integer cast $100+$39
|
|
Simplifying constant integer cast $140+6
|
|
Simplifying constant integer cast $140+$c
|
|
Simplifying constant integer cast $140+$12
|
|
Simplifying constant integer cast $140+$18
|
|
Simplifying constant integer cast $140+$1e
|
|
Simplifying constant integer cast $140+$24
|
|
Simplifying constant integer cast $140+$2a
|
|
Simplifying constant integer cast $140+$30
|
|
Simplifying constant integer cast $140+$36
|
|
Simplifying constant integer cast $140+$3c
|
|
Simplifying constant integer cast $180+3
|
|
Simplifying constant integer cast $180+9
|
|
Simplifying constant integer cast $180+$f
|
|
Simplifying constant integer cast $180+$15
|
|
Simplifying constant integer cast $180+$1b
|
|
Simplifying constant integer cast $180+$21
|
|
Simplifying constant integer cast $180+$27
|
|
Simplifying constant integer cast $180+$2d
|
|
Simplifying constant integer cast $180+$33
|
|
Simplifying constant integer cast $180+$39
|
|
Simplifying constant integer cast $1c0+6
|
|
Simplifying constant integer cast $1c0+$c
|
|
Simplifying constant integer cast $1c0+$12
|
|
Simplifying constant integer cast $1c0+$18
|
|
Simplifying constant integer cast $1c0+$1e
|
|
Simplifying constant integer cast $1c0+$24
|
|
Simplifying constant integer cast $1c0+$2a
|
|
Simplifying constant integer cast $1c0+$30
|
|
Simplifying constant integer cast $1c0+$36
|
|
Simplifying constant integer cast $1c0+$3c
|
|
Simplifying constant integer cast $200+3
|
|
Simplifying constant integer cast $200+9
|
|
Simplifying constant integer cast $200+$f
|
|
Simplifying constant integer cast $200+$15
|
|
Simplifying constant integer cast $200+$1b
|
|
Simplifying constant integer cast $200+$21
|
|
Simplifying constant integer cast $200+$27
|
|
Simplifying constant integer cast $200+$2d
|
|
Simplifying constant integer cast $200+$33
|
|
Simplifying constant integer cast $200+$39
|
|
Simplifying constant integer cast $240+6
|
|
Simplifying constant integer cast $240+$c
|
|
Simplifying constant integer cast $240+$12
|
|
Simplifying constant integer cast $240+$18
|
|
Simplifying constant integer cast $240+$1e
|
|
Simplifying constant integer cast $240+$24
|
|
Simplifying constant integer cast $240+$2a
|
|
Simplifying constant integer cast $240+$30
|
|
Simplifying constant integer cast $240+$36
|
|
Simplifying constant integer cast $240+$3c
|
|
Simplifying constant integer cast $280+3
|
|
Simplifying constant integer cast $280+9
|
|
Simplifying constant integer cast $280+$f
|
|
Simplifying constant integer cast $280+$15
|
|
Simplifying constant integer cast $280+$1b
|
|
Simplifying constant integer cast $280+$21
|
|
Simplifying constant integer cast $280+$27
|
|
Simplifying constant integer cast $280+$2d
|
|
Simplifying constant integer cast $280+$33
|
|
Simplifying constant integer cast $280+$39
|
|
Simplifying constant integer cast $2c0+6
|
|
Simplifying constant integer cast $2c0+$c
|
|
Simplifying constant integer cast $2c0+$12
|
|
Simplifying constant integer cast $2c0+$18
|
|
Simplifying constant integer cast $2c0+$1e
|
|
Simplifying constant integer cast $2c0+$24
|
|
Simplifying constant integer cast $2c0+$2a
|
|
Simplifying constant integer cast $2c0+$30
|
|
Simplifying constant integer cast $2c0+$36
|
|
Simplifying constant integer cast $2c0+$3c
|
|
Simplifying constant integer cast $300+3
|
|
Simplifying constant integer cast $300+9
|
|
Simplifying constant integer cast $300+$f
|
|
Simplifying constant integer cast $300+$15
|
|
Simplifying constant integer cast $300+$1b
|
|
Simplifying constant integer cast $300+$21
|
|
Simplifying constant integer cast $300+$27
|
|
Simplifying constant integer cast $300+$2d
|
|
Simplifying constant integer cast $300+$33
|
|
Simplifying constant integer cast $300+$39
|
|
Simplifying constant integer cast $340+6
|
|
Simplifying constant integer cast $340+$c
|
|
Simplifying constant integer cast $340+$12
|
|
Simplifying constant integer cast $340+$18
|
|
Simplifying constant integer cast $340+$1e
|
|
Simplifying constant integer cast $340+$24
|
|
Simplifying constant integer cast $340+$2a
|
|
Simplifying constant integer cast $340+$30
|
|
Simplifying constant integer cast $340+$36
|
|
Simplifying constant integer cast $340+$3c
|
|
Simplifying constant integer cast $18*$100
|
|
Simplifying constant integer cast $19*$100
|
|
Successful SSA optimization PassNCastSimplification
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$210 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Alias candidate removed (volatile)pill_count = gameplay_run::$4
|
|
Alias candidate removed (volatile)frame = irq_screen_top::$2
|
|
Alias candidate removed (volatile)game_logic_substep = game_logic::$3
|
|
Alias candidate removed (volatile)anim_frame_idx = game_logic::$15
|
|
Alias candidate removed (volatile)logic_tile_xcol = game_logic::$69 game_logic::$65
|
|
Alias candidate removed (volatile)logic_tile_ptr = game_logic::$71 game_logic::$67
|
|
Alias candidate removed (volatile)logic_tile_yfine = game_logic::$72 game_logic::$210 game_logic::$68
|
|
Alias candidate removed (volatile)ghost4_direction = game_logic::$119
|
|
Alias candidate removed (volatile)ghost3_direction = game_logic::$140
|
|
Alias candidate removed (volatile)ghost2_direction = game_logic::$161
|
|
Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
|
Added new block during phi lifting merge_code::@22(between merge_code::@10 and merge_code::@1)
|
|
Added new block during phi lifting merge_code::@23(between merge_code::@3 and merge_code::@4)
|
|
Added new block during phi lifting merge_code::@24(between merge_code::@4 and merge_code::@10)
|
|
Added new block during phi lifting merge_code::@25(between merge_code::@5 and merge_code::@10)
|
|
Added new block during phi lifting merge_code::@26(between merge_code::@3 and merge_code::@14)
|
|
Added new block during phi lifting init_render_index::@11(between init_render_index::@6 and init_render_index::@8)
|
|
Added new block during phi lifting splash_run::@41(between splash_run::@3 and splash_run::@5)
|
|
Added new block during phi lifting level_show::@12(between level_show::@5 and level_show::@7)
|
|
Added new block during phi lifting level_show::@13(between level_show::@7 and level_show::@8)
|
|
Added new block during phi lifting init_level_tile_directions::@18(between init_level_tile_directions::@15 and init_level_tile_directions::@7)
|
|
Added new block during phi lifting init_level_tile_directions::@19(between init_level_tile_directions::@16 and init_level_tile_directions::@8)
|
|
Added new block during phi lifting init_level_tile_directions::@20(between init_level_tile_directions::@17 and init_level_tile_directions::@9)
|
|
Added new block during phi lifting game_logic::@179(between game_logic::@14 and game_logic::@44)
|
|
Added new block during phi lifting choose_direction::@13(between choose_direction::@1 and choose_direction::@2)
|
|
Added new block during phi lifting choose_direction::@14(between choose_direction::@7 and choose_direction::@2)
|
|
Added new block during phi lifting choose_direction::@15(between choose_direction::@2 and choose_direction::@3)
|
|
Added new block during phi lifting choose_direction::@16(between choose_direction::@9 and choose_direction::@3)
|
|
Added new block during phi lifting choose_direction::@17(between choose_direction::@11 and choose_direction::@4)
|
|
Added new block during phi lifting choose_direction::@18(between choose_direction::@3 and choose_direction::@4)
|
|
Adding NOP phi() at start of __start
|
|
Adding NOP phi() at start of __start::@1
|
|
Adding NOP phi() at start of __start::@2
|
|
Adding NOP phi() at start of irq_screen_top::toD0181
|
|
Adding NOP phi() at start of irq_screen_top::toD0181_@return
|
|
Adding NOP phi() at start of irq_screen_top::@5
|
|
Adding NOP phi() at start of irq_screen_top::toDd002
|
|
Adding NOP phi() at start of irq_screen_top::toDd002_@return
|
|
Adding NOP phi() at start of irq_screen_top::@6
|
|
Adding NOP phi() at start of irq_screen_top::@10
|
|
Adding NOP phi() at start of irq_screen_top::@11
|
|
Adding NOP phi() at start of irq_screen_top::@1
|
|
Adding NOP phi() at start of irq_screen_top::toDd001
|
|
Adding NOP phi() at start of irq_screen_top::toDd001_@return
|
|
Adding NOP phi() at start of main
|
|
Adding NOP phi() at start of main::@2
|
|
Adding NOP phi() at start of main::@1
|
|
Adding NOP phi() at start of main::@3
|
|
Adding NOP phi() at start of main::@4
|
|
Adding NOP phi() at start of game_logic::@156
|
|
Adding NOP phi() at start of game_logic::@157
|
|
Adding NOP phi() at start of game_logic::@158
|
|
Adding NOP phi() at start of game_logic::@159
|
|
Adding NOP phi() at start of game_logic::@80
|
|
Adding NOP phi() at start of game_logic::@98
|
|
Adding NOP phi() at start of game_logic::@116
|
|
Adding NOP phi() at start of game_logic::@134
|
|
Adding NOP phi() at start of splash_run
|
|
Adding NOP phi() at start of splash_run::@25
|
|
Adding NOP phi() at start of splash_run::@26
|
|
Adding NOP phi() at start of splash_run::@27
|
|
Adding NOP phi() at start of splash_run::@28
|
|
Adding NOP phi() at start of splash_run::@30
|
|
Adding NOP phi() at start of splash_run::@31
|
|
Adding NOP phi() at start of splash_run::@32
|
|
Adding NOP phi() at start of splash_run::@34
|
|
Adding NOP phi() at start of splash_run::@35
|
|
Adding NOP phi() at start of splash_run::@37
|
|
Adding NOP phi() at start of splash_run::@4
|
|
Adding NOP phi() at start of splash_run::toDd001
|
|
Adding NOP phi() at start of splash_run::toDd001_@return
|
|
Adding NOP phi() at start of splash_run::toD0181
|
|
Adding NOP phi() at start of splash_run::toD0181_@return
|
|
Adding NOP phi() at start of splash_run::@22
|
|
Adding NOP phi() at start of splash_run::@15
|
|
Adding NOP phi() at start of splash_run::@18
|
|
Adding NOP phi() at start of gameplay_run
|
|
Adding NOP phi() at start of gameplay_run::@14
|
|
Adding NOP phi() at start of gameplay_run::@15
|
|
Adding NOP phi() at start of gameplay_run::@16
|
|
Adding NOP phi() at start of gameplay_run::@17
|
|
Adding NOP phi() at start of gameplay_run::@19
|
|
Adding NOP phi() at start of done_run::@7
|
|
Adding NOP phi() at start of done_run::@22
|
|
Adding NOP phi() at start of done_run::@3
|
|
Adding NOP phi() at start of done_run::@17
|
|
Adding NOP phi() at start of done_run::@20
|
|
Adding NOP phi() at start of done_run::@21
|
|
Adding NOP phi() at start of level_tile_directions::@2
|
|
Adding NOP phi() at start of choose_direction::@12
|
|
Adding NOP phi() at start of memset::@1
|
|
Adding NOP phi() at start of merge_code
|
|
Adding NOP phi() at start of init_render_index
|
|
Adding NOP phi() at start of init_render_index::@10
|
|
Adding NOP phi() at start of splash_show
|
|
Adding NOP phi() at start of init_bobs_restore
|
|
Adding NOP phi() at start of init_bobs_restore::@2
|
|
Adding NOP phi() at start of init_sprite_pointers
|
|
Adding NOP phi() at start of init_sprite_pointers::@2
|
|
Adding NOP phi() at start of memcpy
|
|
Adding NOP phi() at start of memcpy::@3
|
|
Adding NOP phi() at start of joyfire::@2
|
|
Adding NOP phi() at start of joyfire::@1
|
|
Adding NOP phi() at start of init_level_tile_directions
|
|
Adding NOP phi() at start of init_level_tile_directions::@2
|
|
Adding NOP phi() at start of init_level_tile_directions::@10
|
|
Adding NOP phi() at start of level_show
|
|
Adding NOP phi() at start of level_show::@3
|
|
Adding NOP phi() at start of level_tile_get::@2
|
|
CALL GRAPH
|
|
Calls in [__start] to main:62
|
|
Calls in [irq_screen_top] to game_logic:93 pacman_sound_play:95
|
|
Calls in [main] to splash_run:109 gameplay_run:112 done_run:114
|
|
Calls in [game_logic] to spawn_all:231 spawn_all:240 spawn_all:249 spawn_all:258 level_tile_directions:299 choose_direction:320 level_tile_directions:359 choose_direction:380 level_tile_directions:419 choose_direction:440 level_tile_directions:479 choose_direction:500 level_tile_directions:537
|
|
Calls in [splash_run] to memset:571 byteboozer_decrunch:573 byteboozer_decrunch:575 merge_code:577 memset:579 memset:581 init_render_index:583 byteboozer_decrunch:585 splash_show:587 memset:589 init_bobs_restore:591 byteboozer_decrunch:593 init_sprite_pointers:595 memcpy:597 byteboozer_decrunch:599 memset:601 null:636 joyinit:648 joyfire:651 null:658
|
|
Calls in [gameplay_run] to byteboozer_decrunch:694 init_level_tile_directions:696 init_sprite_pointers:698 level_show:700 spawn_all:716 pacman_sound_init:718
|
|
Calls in [done_run] to null:750 byteboozer_decrunch:753 joyfire:760 null:767 render:783 byteboozer_decrunch:788
|
|
Calls in [splash_show] to render:1021
|
|
Calls in [init_level_tile_directions] to level_tile_get:1098 level_tile_get:1108 level_tile_get:1119 level_tile_get:1130
|
|
Calls in [level_show] to render_tiles:1172
|
|
|
|
Created 107 initial phi equivalence classes
|
|
Coalesced [144] game_logic::ghost_frame_idx#5 = game_logic::ghost_frame_idx#1
|
|
Coalesced [182] game_logic::ghost_frame_idx#4 = game_logic::ghost_frame_idx#0
|
|
Coalesced [297] level_tile_directions::xtile#11 = level_tile_directions::xtile#0
|
|
Coalesced [298] level_tile_directions::ytile#11 = level_tile_directions::ytile#0
|
|
Coalesced [307] game_logic::target_xtile#4 = game_logic::target_xtile#2
|
|
Coalesced [308] game_logic::target_ytile#4 = game_logic::target_ytile#2
|
|
Coalesced [315] choose_direction::ghost_xtile#7 = choose_direction::ghost_xtile#0
|
|
Coalesced [316] choose_direction::target_xtile#7 = choose_direction::target_xtile#0
|
|
Coalesced [317] choose_direction::ghost_ytile#7 = choose_direction::ghost_ytile#0
|
|
Coalesced [318] choose_direction::target_ytile#7 = choose_direction::target_ytile#0
|
|
Coalesced [319] choose_direction::open_directions#16 = choose_direction::open_directions#0
|
|
Coalesced [357] level_tile_directions::xtile#7 = level_tile_directions::xtile#1
|
|
Coalesced [358] level_tile_directions::ytile#7 = level_tile_directions::ytile#1
|
|
Coalesced [367] game_logic::target_xtile1#4 = game_logic::target_xtile1#2
|
|
Coalesced [368] game_logic::target_ytile1#4 = game_logic::target_ytile1#2
|
|
Coalesced [375] choose_direction::ghost_xtile#8 = choose_direction::ghost_xtile#1
|
|
Coalesced [376] choose_direction::target_xtile#8 = choose_direction::target_xtile#1
|
|
Coalesced [377] choose_direction::ghost_ytile#8 = choose_direction::ghost_ytile#1
|
|
Coalesced [378] choose_direction::target_ytile#8 = choose_direction::target_ytile#1
|
|
Coalesced [379] choose_direction::open_directions#17 = choose_direction::open_directions#1
|
|
Coalesced [417] level_tile_directions::xtile#8 = level_tile_directions::xtile#2
|
|
Coalesced [418] level_tile_directions::ytile#8 = level_tile_directions::ytile#2
|
|
Coalesced [427] game_logic::target_xtile2#4 = game_logic::target_xtile2#2
|
|
Coalesced [428] game_logic::target_ytile2#4 = game_logic::target_ytile2#2
|
|
Coalesced [435] choose_direction::ghost_xtile#5 = choose_direction::ghost_xtile#2
|
|
Coalesced [436] choose_direction::target_xtile#5 = choose_direction::target_xtile#2
|
|
Coalesced [437] choose_direction::ghost_ytile#5 = choose_direction::ghost_ytile#2
|
|
Coalesced [438] choose_direction::target_ytile#5 = choose_direction::target_ytile#2
|
|
Coalesced [439] choose_direction::open_directions#14 = choose_direction::open_directions#2
|
|
Coalesced [477] level_tile_directions::xtile#9 = level_tile_directions::xtile#3
|
|
Coalesced [478] level_tile_directions::ytile#9 = level_tile_directions::ytile#3
|
|
Coalesced [487] game_logic::target_xtile3#4 = game_logic::target_xtile3#2
|
|
Coalesced [488] game_logic::target_ytile3#4 = game_logic::target_ytile3#2
|
|
Coalesced [495] choose_direction::ghost_xtile#6 = choose_direction::ghost_xtile#3
|
|
Coalesced [496] choose_direction::target_xtile#6 = choose_direction::target_xtile#3
|
|
Coalesced [497] choose_direction::ghost_ytile#6 = choose_direction::ghost_ytile#3
|
|
Coalesced [498] choose_direction::target_ytile#6 = choose_direction::target_ytile#3
|
|
Coalesced [499] choose_direction::open_directions#15 = choose_direction::open_directions#3
|
|
Coalesced [535] level_tile_directions::xtile#10 = level_tile_directions::xtile#4
|
|
Coalesced [536] level_tile_directions::ytile#10 = level_tile_directions::ytile#4
|
|
Coalesced [664] splash_run::i2#4 = splash_run::i2#1
|
|
Coalesced [667] splash_run::i1#4 = splash_run::i1#1
|
|
Coalesced [676] splash_run::msb#16 = splash_run::msb#2
|
|
Coalesced [679] splash_run::i#6 = splash_run::i#1
|
|
Coalesced [680] splash_run::msb#14 = splash_run::msb#8
|
|
Coalesced [681] splash_run::msb#15 = splash_run::msb#1
|
|
Coalesced [735] gameplay_run::i2#4 = gameplay_run::i2#1
|
|
Coalesced [738] gameplay_run::i1#4 = gameplay_run::i1#1
|
|
Coalesced [741] gameplay_run::i#4 = gameplay_run::i#1
|
|
Coalesced [769] done_run::gfx#9 = done_run::gfx#4
|
|
Coalesced [773] done_run::xcol#8 = done_run::xcol#1
|
|
Coalesced (already) [774] done_run::gfx#8 = done_run::gfx#2
|
|
Coalesced [780] render::ypos#3 = render::ypos#0
|
|
Coalesced [781] render::xcol#3 = render::xcol#0
|
|
Coalesced [782] render::pixels#6 = render::pixels#0
|
|
Coalesced [785] done_run::ypos#5 = done_run::ypos#1
|
|
Coalesced [786] done_run::gfx#10 = done_run::gfx#1
|
|
Coalesced [794] done_run::i1#4 = done_run::i1#1
|
|
Coalesced [797] done_run::i#4 = done_run::i#1
|
|
Coalesced [830] level_tile_directions::return#14 = level_tile_directions::return#0
|
|
Coalesced [841] choose_direction::dist_min#12 = choose_direction::dist_up#0
|
|
Coalesced [847] choose_direction::dist_min#15 = choose_direction::dist_down#0
|
|
Coalesced [853] choose_direction::dist_min#16 = choose_direction::dist_left#0
|
|
Coalesced [862] choose_direction::return#11 = choose_direction::direction#6
|
|
Coalesced (already) [863] choose_direction::return#12 = choose_direction::direction#6
|
|
Coalesced [864] choose_direction::direction#16 = choose_direction::direction#8
|
|
Not coalescing [865] choose_direction::dist_min#18 = choose_direction::dist_min#10
|
|
Coalesced (already) [866] choose_direction::direction#15 = choose_direction::direction#8
|
|
Not coalescing [867] choose_direction::dist_min#17 = choose_direction::dist_min#10
|
|
Not coalescing [868] choose_direction::dist_min#14 = choose_direction::dist_min#6
|
|
Coalesced [869] choose_direction::direction#14 = choose_direction::direction#10
|
|
Not coalescing [870] choose_direction::dist_min#13 = choose_direction::dist_min#6
|
|
Coalesced (already) [871] choose_direction::direction#13 = choose_direction::direction#10
|
|
Coalesced [882] memset::dst#5 = memset::dst#1
|
|
Coalesced [892] merge_code::logic_code#33 = merge_code::logic_code#18
|
|
Coalesced [893] merge_code::dest_code#39 = merge_code::dest_code#14
|
|
Coalesced [899] merge_code::logic_code#34 = merge_code::logic_code#3
|
|
Coalesced [900] merge_code::dest_code#40 = merge_code::dest_code#12
|
|
Coalesced [904] merge_code::logic_code#32 = merge_code::logic_code#5
|
|
Coalesced (already) [905] merge_code::dest_code#38 = merge_code::dest_code#13
|
|
Coalesced [909] merge_code::logic_code#35 = merge_code::logic_code#4
|
|
Coalesced [910] merge_code::dest_code#41 = merge_code::dest_code#6
|
|
Coalesced [911] merge_code::cycle_budget#14 = merge_code::cycle_budget#0
|
|
Coalesced [912] merge_code::logic_code#28 = merge_code::logic_code#18
|
|
Coalesced [913] merge_code::dest_code#30 = merge_code::dest_code#14
|
|
Coalesced [919] merge_code::cycle_budget#19 = merge_code::cycle_budget#13
|
|
Coalesced [920] merge_code::dest_code#37 = merge_code::dest_code#21
|
|
Coalesced [923] merge_code::raster_code#18 = merge_code::raster_code#2
|
|
Coalesced (already) [924] merge_code::dest_code#28 = merge_code::dest_code#10
|
|
Coalesced (already) [925] merge_code::logic_code#26 = merge_code::logic_code#17
|
|
Coalesced [930] merge_code::cycle_budget#17 = merge_code::cycle_budget#3
|
|
Coalesced [931] merge_code::dest_code#35 = merge_code::dest_code#4
|
|
Coalesced [937] merge_code::cycle_budget#16 = merge_code::cycle_budget#2
|
|
Coalesced [938] merge_code::dest_code#34 = merge_code::dest_code#3
|
|
Coalesced [942] merge_code::logic_code#31 = merge_code::logic_code#0
|
|
Coalesced [943] merge_code::dest_code#33 = merge_code::dest_code#21
|
|
Coalesced [948] merge_code::cycle_budget#15 = merge_code::cycle_budget#1
|
|
Coalesced [949] merge_code::logic_code#29 = merge_code::logic_code#2
|
|
Coalesced (already) [950] merge_code::dest_code#31 = merge_code::dest_code#15
|
|
Coalesced [954] merge_code::logic_code#30 = merge_code::logic_code#1
|
|
Coalesced [955] merge_code::dest_code#32 = merge_code::dest_code#1
|
|
Coalesced (already) [956] merge_code::cycle_budget#18 = merge_code::cycle_budget#13
|
|
Coalesced (already) [957] merge_code::dest_code#36 = merge_code::dest_code#21
|
|
Coalesced [961] merge_code::raster_code#19 = merge_code::raster_code#0
|
|
Coalesced [962] merge_code::dest_code#29 = merge_code::dest_code#0
|
|
Coalesced (already) [963] merge_code::logic_code#27 = merge_code::logic_code#18
|
|
Not coalescing [975] init_render_index::render_index_xcol#7 = init_render_index::render_index_xcol#0
|
|
Coalesced [976] init_render_index::ypos_inc_offset#9 = init_render_index::ypos_inc_offset#7
|
|
Coalesced [981] init_render_index::x_col#11 = init_render_index::x_col#1
|
|
Coalesced [982] init_render_index::render_index_xcol#6 = init_render_index::render_index#1
|
|
Coalesced [995] init_render_index::ypos_inc_offset#12 = init_render_index::ypos_inc_offset#3
|
|
Coalesced [999] init_render_index::y_pos#6 = init_render_index::y_pos#1
|
|
Coalesced [1000] init_render_index::render_index_xcol#8 = init_render_index::render_index_xcol#1
|
|
Coalesced [1001] init_render_index::ypos_inc_offset#10 = init_render_index::ypos_inc_offset#8
|
|
Coalesced [1002] init_render_index::ypos_inc_offset#11 = init_render_index::ypos_inc_offset#2
|
|
Coalesced [1007] splash_show::splash#9 = splash_show::splash#4
|
|
Coalesced [1011] splash_show::xcol#8 = splash_show::xcol#1
|
|
Coalesced (already) [1012] splash_show::splash#8 = splash_show::splash#2
|
|
Coalesced [1018] render::ypos#4 = render::ypos#1
|
|
Coalesced [1019] render::xcol#4 = render::xcol#1
|
|
Coalesced [1020] render::pixels#7 = render::pixels#1
|
|
Coalesced [1023] splash_show::ypos#5 = splash_show::ypos#1
|
|
Coalesced [1024] splash_show::splash#10 = splash_show::splash#1
|
|
Coalesced [1041] init_bobs_restore::bob#7 = init_bobs_restore::bob#1
|
|
Coalesced [1042] init_bobs_restore::bob_restore#7 = init_bobs_restore::bob_restore#1
|
|
Coalesced [1045] init_bobs_restore::i#4 = init_bobs_restore::i#1
|
|
Coalesced [1056] init_sprite_pointers::screen#7 = init_sprite_pointers::screen#1
|
|
Coalesced [1057] init_sprite_pointers::sprites_ptr_1#7 = init_sprite_pointers::sprites_ptr_1#1
|
|
Coalesced [1058] init_sprite_pointers::sprites_ptr_2#7 = init_sprite_pointers::sprites_ptr_2#1
|
|
Coalesced [1064] init_sprite_pointers::sprite#4 = init_sprite_pointers::sprite#1
|
|
Coalesced [1073] memcpy::src#4 = memcpy::src#1
|
|
Coalesced [1074] memcpy::dst#4 = memcpy::dst#1
|
|
Coalesced [1092] init_level_tile_directions::ytile#19 = init_level_tile_directions::ytile#1
|
|
Coalesced [1093] init_level_tile_directions::directions#19 = init_level_tile_directions::directions#1
|
|
Coalesced [1096] level_tile_get::xtile#6 = level_tile_get::xtile#0
|
|
Coalesced [1097] level_tile_get::ytile#6 = level_tile_get::ytile#0
|
|
Coalesced [1106] level_tile_get::xtile#7 = level_tile_get::xtile#1
|
|
Coalesced [1107] level_tile_get::ytile#7 = level_tile_get::ytile#1
|
|
Coalesced [1113] init_level_tile_directions::open_directions#17 = init_level_tile_directions::open_directions#2
|
|
Coalesced [1117] level_tile_get::xtile#8 = level_tile_get::xtile#2
|
|
Coalesced [1118] level_tile_get::ytile#8 = level_tile_get::ytile#2
|
|
Coalesced [1124] init_level_tile_directions::open_directions#19 = init_level_tile_directions::open_directions#3
|
|
Coalesced [1128] level_tile_get::xtile#9 = level_tile_get::xtile#3
|
|
Coalesced [1129] level_tile_get::ytile#9 = level_tile_get::ytile#3
|
|
Coalesced [1135] init_level_tile_directions::open_directions#21 = init_level_tile_directions::open_directions#4
|
|
Coalesced [1139] init_level_tile_directions::xtile#16 = init_level_tile_directions::xtile#1
|
|
Coalesced [1140] init_level_tile_directions::open_directions#22 = init_level_tile_directions::open_directions#13
|
|
Coalesced [1141] init_level_tile_directions::open_directions#20 = init_level_tile_directions::open_directions#12
|
|
Coalesced [1142] init_level_tile_directions::open_directions#18 = init_level_tile_directions::open_directions#11
|
|
Coalesced [1148] level_show::count#16 = level_show::count#12
|
|
Coalesced [1153] level_show::ytile#12 = level_show::ytile#1
|
|
Coalesced (already) [1154] level_show::count#14 = level_show::count#10
|
|
Coalesced [1155] level_show::level#12 = level_show::level#1
|
|
Coalesced [1160] level_show::count#18 = level_show::count#1
|
|
Coalesced [1166] level_show::count#19 = level_show::count#2
|
|
Coalesced [1174] level_show::xcol#9 = level_show::xcol#1
|
|
Coalesced [1175] level_show::xtile#10 = level_show::xtile#2
|
|
Coalesced [1176] level_show::count#15 = level_show::count#11
|
|
Coalesced [1177] level_show::count#20 = level_show::count#5
|
|
Coalesced (already) [1178] level_show::count#17 = level_show::count#10
|
|
Coalesced [1196] render::canvas1#5 = render::canvas1#0
|
|
Coalesced [1197] render::ypos_inc_offset#4 = render::ypos_inc_offset#0
|
|
Coalesced [1198] render::canvas2#5 = render::canvas2#0
|
|
Coalesced [1208] render::i#4 = render::i#1
|
|
Coalesced [1209] render::canvas1#6 = render::canvas1#1
|
|
Coalesced [1210] render::ypos_inc_offset#5 = render::ypos_inc_offset#1
|
|
Coalesced [1211] render::canvas2#6 = render::canvas2#1
|
|
Coalesced [1218] level_tile_get::return#12 = level_tile_get::return#0
|
|
Coalesced [1233] render_tiles::canvas1#4 = render_tiles::canvas1#0
|
|
Coalesced [1234] render_tiles::canvas2#4 = render_tiles::canvas2#0
|
|
Coalesced [1235] render_tiles::ypos_inc_offset#4 = render_tiles::ypos_inc_offset#0
|
|
Coalesced [1246] render_tiles::y#4 = render_tiles::y#1
|
|
Coalesced [1247] render_tiles::canvas1#5 = render_tiles::canvas1#1
|
|
Coalesced [1248] render_tiles::canvas2#5 = render_tiles::canvas2#1
|
|
Coalesced [1249] render_tiles::ypos_inc_offset#5 = render_tiles::ypos_inc_offset#1
|
|
Coalesced down to 85 phi equivalence classes
|
|
Culled Empty Block label __start::@2
|
|
Culled Empty Block label irq_screen_top::toD0181_@return
|
|
Culled Empty Block label irq_screen_top::@5
|
|
Culled Empty Block label irq_screen_top::toDd002_@return
|
|
Culled Empty Block label irq_screen_top::@11
|
|
Culled Empty Block label irq_screen_top::@1
|
|
Culled Empty Block label irq_screen_top::toDd001_@return
|
|
Culled Empty Block label main::@2
|
|
Culled Empty Block label main::@4
|
|
Culled Empty Block label game_logic::@179
|
|
Culled Empty Block label game_logic::@156
|
|
Culled Empty Block label game_logic::@157
|
|
Culled Empty Block label game_logic::@158
|
|
Culled Empty Block label game_logic::@159
|
|
Culled Empty Block label game_logic::@80
|
|
Culled Empty Block label game_logic::@98
|
|
Culled Empty Block label game_logic::@116
|
|
Culled Empty Block label game_logic::@134
|
|
Culled Empty Block label splash_run::@4
|
|
Culled Empty Block label splash_run::toDd001_@return
|
|
Culled Empty Block label splash_run::toD0181_@return
|
|
Culled Empty Block label splash_run::@41
|
|
Culled Empty Block label gameplay_run::@14
|
|
Culled Empty Block label done_run::@7
|
|
Culled Empty Block label done_run::@22
|
|
Culled Empty Block label done_run::@3
|
|
Culled Empty Block label done_run::@12
|
|
Culled Empty Block label done_run::@21
|
|
Culled Empty Block label level_tile_directions::@2
|
|
Culled Empty Block label choose_direction::@8
|
|
Culled Empty Block label choose_direction::@10
|
|
Culled Empty Block label choose_direction::@12
|
|
Culled Empty Block label choose_direction::@18
|
|
Culled Empty Block label memset::@1
|
|
Culled Empty Block label merge_code::@26
|
|
Culled Empty Block label merge_code::@23
|
|
Culled Empty Block label merge_code::@25
|
|
Culled Empty Block label merge_code::@22
|
|
Culled Empty Block label merge_code::@24
|
|
Culled Empty Block label init_render_index::@11
|
|
Culled Empty Block label splash_show::@2
|
|
Culled Empty Block label init_bobs_restore::@2
|
|
Culled Empty Block label init_sprite_pointers::@2
|
|
Culled Empty Block label memcpy::@3
|
|
Culled Empty Block label joyfire::@2
|
|
Culled Empty Block label init_level_tile_directions::@2
|
|
Culled Empty Block label init_level_tile_directions::@20
|
|
Culled Empty Block label init_level_tile_directions::@19
|
|
Culled Empty Block label init_level_tile_directions::@18
|
|
Culled Empty Block label level_show::@3
|
|
Culled Empty Block label level_show::@2
|
|
Culled Empty Block label level_show::@13
|
|
Culled Empty Block label level_show::@12
|
|
Culled Empty Block label level_tile_get::@2
|
|
Renumbering block memset::@2 to memset::@1
|
|
Renumbering block memset::@3 to memset::@2
|
|
Renumbering block memset::@4 to memset::@3
|
|
Renumbering block init_bobs_restore::@3 to init_bobs_restore::@2
|
|
Renumbering block init_bobs_restore::@4 to init_bobs_restore::@3
|
|
Renumbering block init_bobs_restore::@5 to init_bobs_restore::@4
|
|
Renumbering block init_bobs_restore::@6 to init_bobs_restore::@5
|
|
Renumbering block main::@3 to main::@2
|
|
Renumbering block done_run::@4 to done_run::@3
|
|
Renumbering block done_run::@5 to done_run::@4
|
|
Renumbering block done_run::@6 to done_run::@5
|
|
Renumbering block done_run::@8 to done_run::@6
|
|
Renumbering block done_run::@9 to done_run::@7
|
|
Renumbering block done_run::@10 to done_run::@8
|
|
Renumbering block done_run::@11 to done_run::@9
|
|
Renumbering block done_run::@13 to done_run::@10
|
|
Renumbering block done_run::@14 to done_run::@11
|
|
Renumbering block done_run::@15 to done_run::@12
|
|
Renumbering block done_run::@16 to done_run::@13
|
|
Renumbering block done_run::@17 to done_run::@14
|
|
Renumbering block done_run::@18 to done_run::@15
|
|
Renumbering block done_run::@19 to done_run::@16
|
|
Renumbering block done_run::@20 to done_run::@17
|
|
Renumbering block done_run::@23 to done_run::@18
|
|
Renumbering block done_run::@24 to done_run::@19
|
|
Renumbering block splash_run::@5 to splash_run::@4
|
|
Renumbering block splash_run::@6 to splash_run::@5
|
|
Renumbering block splash_run::@7 to splash_run::@6
|
|
Renumbering block splash_run::@8 to splash_run::@7
|
|
Renumbering block splash_run::@9 to splash_run::@8
|
|
Renumbering block splash_run::@10 to splash_run::@9
|
|
Renumbering block splash_run::@11 to splash_run::@10
|
|
Renumbering block splash_run::@12 to splash_run::@11
|
|
Renumbering block splash_run::@13 to splash_run::@12
|
|
Renumbering block splash_run::@14 to splash_run::@13
|
|
Renumbering block splash_run::@15 to splash_run::@14
|
|
Renumbering block splash_run::@16 to splash_run::@15
|
|
Renumbering block splash_run::@17 to splash_run::@16
|
|
Renumbering block splash_run::@18 to splash_run::@17
|
|
Renumbering block splash_run::@19 to splash_run::@18
|
|
Renumbering block splash_run::@20 to splash_run::@19
|
|
Renumbering block splash_run::@21 to splash_run::@20
|
|
Renumbering block splash_run::@22 to splash_run::@21
|
|
Renumbering block splash_run::@23 to splash_run::@22
|
|
Renumbering block splash_run::@24 to splash_run::@23
|
|
Renumbering block splash_run::@25 to splash_run::@24
|
|
Renumbering block splash_run::@26 to splash_run::@25
|
|
Renumbering block splash_run::@27 to splash_run::@26
|
|
Renumbering block splash_run::@28 to splash_run::@27
|
|
Renumbering block splash_run::@29 to splash_run::@28
|
|
Renumbering block splash_run::@30 to splash_run::@29
|
|
Renumbering block splash_run::@31 to splash_run::@30
|
|
Renumbering block splash_run::@32 to splash_run::@31
|
|
Renumbering block splash_run::@33 to splash_run::@32
|
|
Renumbering block splash_run::@34 to splash_run::@33
|
|
Renumbering block splash_run::@35 to splash_run::@34
|
|
Renumbering block splash_run::@36 to splash_run::@35
|
|
Renumbering block splash_run::@37 to splash_run::@36
|
|
Renumbering block splash_run::@38 to splash_run::@37
|
|
Renumbering block splash_run::@39 to splash_run::@38
|
|
Renumbering block splash_run::@40 to splash_run::@39
|
|
Renumbering block gameplay_run::@15 to gameplay_run::@14
|
|
Renumbering block gameplay_run::@16 to gameplay_run::@15
|
|
Renumbering block gameplay_run::@17 to gameplay_run::@16
|
|
Renumbering block gameplay_run::@18 to gameplay_run::@17
|
|
Renumbering block gameplay_run::@19 to gameplay_run::@18
|
|
Renumbering block gameplay_run::@20 to gameplay_run::@19
|
|
Renumbering block gameplay_run::@21 to gameplay_run::@20
|
|
Renumbering block splash_show::@3 to splash_show::@2
|
|
Renumbering block splash_show::@4 to splash_show::@3
|
|
Renumbering block splash_show::@5 to splash_show::@4
|
|
Renumbering block splash_show::@6 to splash_show::@5
|
|
Renumbering block level_show::@4 to level_show::@2
|
|
Renumbering block level_show::@5 to level_show::@3
|
|
Renumbering block level_show::@6 to level_show::@4
|
|
Renumbering block level_show::@7 to level_show::@5
|
|
Renumbering block level_show::@8 to level_show::@6
|
|
Renumbering block level_show::@9 to level_show::@7
|
|
Renumbering block level_show::@10 to level_show::@8
|
|
Renumbering block level_show::@11 to level_show::@9
|
|
Renumbering block level_tile_get::@3 to level_tile_get::@2
|
|
Renumbering block level_tile_directions::@3 to level_tile_directions::@2
|
|
Renumbering block init_level_tile_directions::@3 to init_level_tile_directions::@2
|
|
Renumbering block init_level_tile_directions::@4 to init_level_tile_directions::@3
|
|
Renumbering block init_level_tile_directions::@5 to init_level_tile_directions::@4
|
|
Renumbering block init_level_tile_directions::@6 to init_level_tile_directions::@5
|
|
Renumbering block init_level_tile_directions::@7 to init_level_tile_directions::@6
|
|
Renumbering block init_level_tile_directions::@8 to init_level_tile_directions::@7
|
|
Renumbering block init_level_tile_directions::@9 to init_level_tile_directions::@8
|
|
Renumbering block init_level_tile_directions::@10 to init_level_tile_directions::@9
|
|
Renumbering block init_level_tile_directions::@11 to init_level_tile_directions::@10
|
|
Renumbering block init_level_tile_directions::@12 to init_level_tile_directions::@11
|
|
Renumbering block init_level_tile_directions::@13 to init_level_tile_directions::@12
|
|
Renumbering block init_level_tile_directions::@14 to init_level_tile_directions::@13
|
|
Renumbering block init_level_tile_directions::@15 to init_level_tile_directions::@14
|
|
Renumbering block init_level_tile_directions::@16 to init_level_tile_directions::@15
|
|
Renumbering block init_level_tile_directions::@17 to init_level_tile_directions::@16
|
|
Renumbering block init_sprite_pointers::@3 to init_sprite_pointers::@2
|
|
Renumbering block init_sprite_pointers::@4 to init_sprite_pointers::@3
|
|
Renumbering block init_sprite_pointers::@5 to init_sprite_pointers::@4
|
|
Renumbering block irq_screen_top::@2 to irq_screen_top::@1
|
|
Renumbering block irq_screen_top::@3 to irq_screen_top::@2
|
|
Renumbering block irq_screen_top::@4 to irq_screen_top::@3
|
|
Renumbering block irq_screen_top::@6 to irq_screen_top::@4
|
|
Renumbering block irq_screen_top::@7 to irq_screen_top::@5
|
|
Renumbering block irq_screen_top::@8 to irq_screen_top::@6
|
|
Renumbering block irq_screen_top::@9 to irq_screen_top::@7
|
|
Renumbering block irq_screen_top::@10 to irq_screen_top::@8
|
|
Renumbering block game_logic::@81 to game_logic::@80
|
|
Renumbering block game_logic::@82 to game_logic::@81
|
|
Renumbering block game_logic::@83 to game_logic::@82
|
|
Renumbering block game_logic::@84 to game_logic::@83
|
|
Renumbering block game_logic::@85 to game_logic::@84
|
|
Renumbering block game_logic::@86 to game_logic::@85
|
|
Renumbering block game_logic::@87 to game_logic::@86
|
|
Renumbering block game_logic::@88 to game_logic::@87
|
|
Renumbering block game_logic::@89 to game_logic::@88
|
|
Renumbering block game_logic::@90 to game_logic::@89
|
|
Renumbering block game_logic::@91 to game_logic::@90
|
|
Renumbering block game_logic::@92 to game_logic::@91
|
|
Renumbering block game_logic::@93 to game_logic::@92
|
|
Renumbering block game_logic::@94 to game_logic::@93
|
|
Renumbering block game_logic::@95 to game_logic::@94
|
|
Renumbering block game_logic::@96 to game_logic::@95
|
|
Renumbering block game_logic::@97 to game_logic::@96
|
|
Renumbering block game_logic::@99 to game_logic::@97
|
|
Renumbering block game_logic::@100 to game_logic::@98
|
|
Renumbering block game_logic::@101 to game_logic::@99
|
|
Renumbering block game_logic::@102 to game_logic::@100
|
|
Renumbering block game_logic::@103 to game_logic::@101
|
|
Renumbering block game_logic::@104 to game_logic::@102
|
|
Renumbering block game_logic::@105 to game_logic::@103
|
|
Renumbering block game_logic::@106 to game_logic::@104
|
|
Renumbering block game_logic::@107 to game_logic::@105
|
|
Renumbering block game_logic::@108 to game_logic::@106
|
|
Renumbering block game_logic::@109 to game_logic::@107
|
|
Renumbering block game_logic::@110 to game_logic::@108
|
|
Renumbering block game_logic::@111 to game_logic::@109
|
|
Renumbering block game_logic::@112 to game_logic::@110
|
|
Renumbering block game_logic::@113 to game_logic::@111
|
|
Renumbering block game_logic::@114 to game_logic::@112
|
|
Renumbering block game_logic::@115 to game_logic::@113
|
|
Renumbering block game_logic::@117 to game_logic::@114
|
|
Renumbering block game_logic::@118 to game_logic::@115
|
|
Renumbering block game_logic::@119 to game_logic::@116
|
|
Renumbering block game_logic::@120 to game_logic::@117
|
|
Renumbering block game_logic::@121 to game_logic::@118
|
|
Renumbering block game_logic::@122 to game_logic::@119
|
|
Renumbering block game_logic::@123 to game_logic::@120
|
|
Renumbering block game_logic::@124 to game_logic::@121
|
|
Renumbering block game_logic::@125 to game_logic::@122
|
|
Renumbering block game_logic::@126 to game_logic::@123
|
|
Renumbering block game_logic::@127 to game_logic::@124
|
|
Renumbering block game_logic::@128 to game_logic::@125
|
|
Renumbering block game_logic::@129 to game_logic::@126
|
|
Renumbering block game_logic::@130 to game_logic::@127
|
|
Renumbering block game_logic::@131 to game_logic::@128
|
|
Renumbering block game_logic::@132 to game_logic::@129
|
|
Renumbering block game_logic::@133 to game_logic::@130
|
|
Renumbering block game_logic::@135 to game_logic::@131
|
|
Renumbering block game_logic::@136 to game_logic::@132
|
|
Renumbering block game_logic::@137 to game_logic::@133
|
|
Renumbering block game_logic::@138 to game_logic::@134
|
|
Renumbering block game_logic::@139 to game_logic::@135
|
|
Renumbering block game_logic::@140 to game_logic::@136
|
|
Renumbering block game_logic::@141 to game_logic::@137
|
|
Renumbering block game_logic::@142 to game_logic::@138
|
|
Renumbering block game_logic::@143 to game_logic::@139
|
|
Renumbering block game_logic::@144 to game_logic::@140
|
|
Renumbering block game_logic::@145 to game_logic::@141
|
|
Renumbering block game_logic::@146 to game_logic::@142
|
|
Renumbering block game_logic::@147 to game_logic::@143
|
|
Renumbering block game_logic::@148 to game_logic::@144
|
|
Renumbering block game_logic::@149 to game_logic::@145
|
|
Renumbering block game_logic::@150 to game_logic::@146
|
|
Renumbering block game_logic::@151 to game_logic::@147
|
|
Renumbering block game_logic::@152 to game_logic::@148
|
|
Renumbering block game_logic::@153 to game_logic::@149
|
|
Renumbering block game_logic::@154 to game_logic::@150
|
|
Renumbering block game_logic::@155 to game_logic::@151
|
|
Renumbering block game_logic::@160 to game_logic::@152
|
|
Renumbering block game_logic::@161 to game_logic::@153
|
|
Renumbering block game_logic::@162 to game_logic::@154
|
|
Renumbering block game_logic::@163 to game_logic::@155
|
|
Renumbering block game_logic::@164 to game_logic::@156
|
|
Renumbering block game_logic::@165 to game_logic::@157
|
|
Renumbering block game_logic::@166 to game_logic::@158
|
|
Renumbering block game_logic::@167 to game_logic::@159
|
|
Renumbering block game_logic::@168 to game_logic::@160
|
|
Renumbering block game_logic::@169 to game_logic::@161
|
|
Renumbering block game_logic::@170 to game_logic::@162
|
|
Renumbering block game_logic::@171 to game_logic::@163
|
|
Renumbering block game_logic::@172 to game_logic::@164
|
|
Renumbering block game_logic::@173 to game_logic::@165
|
|
Renumbering block game_logic::@174 to game_logic::@166
|
|
Renumbering block game_logic::@175 to game_logic::@167
|
|
Renumbering block game_logic::@176 to game_logic::@168
|
|
Renumbering block game_logic::@177 to game_logic::@169
|
|
Renumbering block game_logic::@178 to game_logic::@170
|
|
Renumbering block choose_direction::@9 to choose_direction::@8
|
|
Renumbering block choose_direction::@11 to choose_direction::@9
|
|
Renumbering block choose_direction::@13 to choose_direction::@10
|
|
Renumbering block choose_direction::@14 to choose_direction::@11
|
|
Renumbering block choose_direction::@15 to choose_direction::@12
|
|
Renumbering block choose_direction::@16 to choose_direction::@13
|
|
Renumbering block choose_direction::@17 to choose_direction::@14
|
|
Adding NOP phi() at start of __start
|
|
Adding NOP phi() at start of __start::@1
|
|
Adding NOP phi() at start of irq_screen_top::toD0181
|
|
Adding NOP phi() at start of irq_screen_top::toDd002
|
|
Adding NOP phi() at start of irq_screen_top::@4
|
|
Adding NOP phi() at start of irq_screen_top::@8
|
|
Adding NOP phi() at start of irq_screen_top::toDd001
|
|
Adding NOP phi() at start of main
|
|
Adding NOP phi() at start of main::@1
|
|
Adding NOP phi() at start of main::@2
|
|
Adding NOP phi() at start of splash_run
|
|
Adding NOP phi() at start of splash_run::@24
|
|
Adding NOP phi() at start of splash_run::@25
|
|
Adding NOP phi() at start of splash_run::@26
|
|
Adding NOP phi() at start of splash_run::@27
|
|
Adding NOP phi() at start of splash_run::@29
|
|
Adding NOP phi() at start of splash_run::@30
|
|
Adding NOP phi() at start of splash_run::@31
|
|
Adding NOP phi() at start of splash_run::@33
|
|
Adding NOP phi() at start of splash_run::@34
|
|
Adding NOP phi() at start of splash_run::@36
|
|
Adding NOP phi() at start of splash_run::toDd001
|
|
Adding NOP phi() at start of splash_run::toD0181
|
|
Adding NOP phi() at start of splash_run::@21
|
|
Adding NOP phi() at start of splash_run::@14
|
|
Adding NOP phi() at start of splash_run::@17
|
|
Adding NOP phi() at start of gameplay_run
|
|
Adding NOP phi() at start of gameplay_run::@14
|
|
Adding NOP phi() at start of gameplay_run::@15
|
|
Adding NOP phi() at start of gameplay_run::@16
|
|
Adding NOP phi() at start of gameplay_run::@18
|
|
Adding NOP phi() at start of done_run::@14
|
|
Adding NOP phi() at start of done_run::@17
|
|
Adding NOP phi() at start of choose_direction::@6
|
|
Adding NOP phi() at start of choose_direction::@14
|
|
Adding NOP phi() at start of merge_code
|
|
Adding NOP phi() at start of init_render_index
|
|
Adding NOP phi() at start of init_render_index::@10
|
|
Adding NOP phi() at start of splash_show
|
|
Adding NOP phi() at start of init_bobs_restore
|
|
Adding NOP phi() at start of init_sprite_pointers
|
|
Adding NOP phi() at start of memcpy
|
|
Adding NOP phi() at start of joyfire::@1
|
|
Adding NOP phi() at start of init_level_tile_directions
|
|
Adding NOP phi() at start of init_level_tile_directions::@9
|
|
Adding NOP phi() at start of level_show
|
|
|
|
FINAL CONTROL FLOW GRAPH
|
|
|
|
void __start()
|
|
__start: scope:[__start] from
|
|
[0] phi()
|
|
to:__start::__init1
|
|
__start::__init1: scope:[__start] from __start
|
|
[1] pacman_ch1_enabled = 0
|
|
[2] pacman_ch1_idx = 0
|
|
[3] logic_tile_ptr = (volatile char *) 0
|
|
[4] logic_tile_xcol = 0
|
|
[5] logic_tile_yfine = 0
|
|
[6] logic_tile_left_idx = 0
|
|
[7] logic_tile_right_idx = 0
|
|
[8] left_render_index_xcol = (char *) 0
|
|
[9] left_canvas = (char *) 0
|
|
[10] left_ypos_inc_offset = 0
|
|
[11] rigt_render_index_xcol = (char *) 0
|
|
[12] rigt_canvas = (char *) 0
|
|
[13] rigt_ypos_inc_offset = 0
|
|
[14] canvas_base_hi = 0
|
|
[15] bobs_restore_base = 0
|
|
[16] top_sprites_color = 0
|
|
[17] top_sprites_mc = 0
|
|
[18] side_sprites_color = 0
|
|
[19] side_sprites_mc = 0
|
|
[20] bottom_sprites_color = 0
|
|
[21] bottom_sprites_mc = 0
|
|
[22] pill_count = 0
|
|
[23] pacman_wins = 0
|
|
[24] pacman_lives = 3
|
|
[25] music_play_next = 0
|
|
[26] phase = 0
|
|
[27] frame = 0
|
|
[28] anim_frame_idx = 0
|
|
[29] pacman_xfine = $2d
|
|
[30] pacman_yfine = $23
|
|
[31] pacman_direction = STOP
|
|
[32] pacman_substep = 0
|
|
[33] ghosts_mode = 1
|
|
[34] ghosts_mode_count = 0
|
|
[35] ghost1_xfine = $2d
|
|
[36] ghost1_yfine = $23
|
|
[37] ghost1_direction = STOP
|
|
[38] ghost1_substep = 0
|
|
[39] ghost1_reverse = 0
|
|
[40] ghost1_respawn = 0
|
|
[41] ghost2_xfine = $2d
|
|
[42] ghost2_yfine = $23
|
|
[43] ghost2_direction = STOP
|
|
[44] ghost2_substep = 0
|
|
[45] ghost2_reverse = 0
|
|
[46] ghost2_respawn = 0
|
|
[47] ghost3_xfine = $2d
|
|
[48] ghost3_yfine = $23
|
|
[49] ghost3_direction = STOP
|
|
[50] ghost3_substep = 0
|
|
[51] ghost3_reverse = 0
|
|
[52] ghost3_respawn = 0
|
|
[53] ghost4_xfine = $2d
|
|
[54] ghost4_yfine = $23
|
|
[55] ghost4_direction = STOP
|
|
[56] ghost4_substep = 0
|
|
[57] ghost4_reverse = 0
|
|
[58] ghost4_respawn = 0
|
|
[59] game_logic_substep = 0
|
|
[60] game_playable = 0
|
|
to:__start::@1
|
|
__start::@1: scope:[__start] from __start::__init1
|
|
[61] phi()
|
|
[62] call main
|
|
to:__start::@return
|
|
__start::@return: scope:[__start] from __start::@1
|
|
[63] return
|
|
to:@return
|
|
|
|
__interrupt(hardware_clobber) void irq_screen_top()
|
|
irq_screen_top: scope:[irq_screen_top] from
|
|
kickasm( uses HARDWARE_IRQ uses RASTER uses IRQ_STATUS uses IRQ_RASTER uses VICII_CONTROL1 uses VICII_RSEL uses VICII_MEMORY) {{ // Stabilize the raster by using the double IRQ method
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// Set-up IRQ for the next line
|
|
inc RASTER
|
|
// Point IRQ to almost stable code
|
|
lda #<stable
|
|
sta HARDWARE_IRQ
|
|
lda #>stable
|
|
sta HARDWARE_IRQ+1
|
|
tsx // Save stack pointer
|
|
cli // Reenable interrupts
|
|
// Wait for new IRQ using NOP's to ensure minimal jitter when it hits
|
|
.fill 15, NOP
|
|
.align $20
|
|
stable:
|
|
txs // Restore stack pointer
|
|
ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles)
|
|
!: dex
|
|
bne !-
|
|
nop
|
|
lda RASTER
|
|
cmp RASTER
|
|
bne !+ // And correct the last cycle of potential jitter
|
|
!:
|
|
// Raster is now completely stable! (Line 0x007 cycle 7)
|
|
}}
|
|
asm { jsrRASTER_CODE }
|
|
[66] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = 7
|
|
[67] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = 7
|
|
[68] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = 7
|
|
[69] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = 7
|
|
[70] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = 7
|
|
[71] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = 7
|
|
[72] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = 7
|
|
[73] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = 7
|
|
to:irq_screen_top::toD0181
|
|
irq_screen_top::toD0181: scope:[irq_screen_top] from irq_screen_top
|
|
[74] phi()
|
|
to:irq_screen_top::@5
|
|
irq_screen_top::@5: scope:[irq_screen_top] from irq_screen_top::toD0181
|
|
[75] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = irq_screen_top::toD0181_return#0
|
|
[76] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc
|
|
[77] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR) = top_sprites_color
|
|
[78] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR) = top_sprites_color
|
|
[79] irq_screen_top::$1 = frame + 1
|
|
[80] irq_screen_top::$2 = irq_screen_top::$1 & 1
|
|
[81] frame = irq_screen_top::$2
|
|
[82] if(0!=frame) goto irq_screen_top::toDd001
|
|
to:irq_screen_top::toDd002
|
|
irq_screen_top::toDd002: scope:[irq_screen_top] from irq_screen_top::@5
|
|
[83] phi()
|
|
to:irq_screen_top::@7
|
|
irq_screen_top::@7: scope:[irq_screen_top] from irq_screen_top::toDd002
|
|
[84] *((char *)CIA2) = irq_screen_top::toDd002_return#0
|
|
[85] canvas_base_hi = byte1 SPRITES_2
|
|
[86] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE
|
|
to:irq_screen_top::@1
|
|
irq_screen_top::@1: scope:[irq_screen_top] from irq_screen_top::@6 irq_screen_top::@7
|
|
[87] if(phase==0) goto irq_screen_top::@2
|
|
to:irq_screen_top::@4
|
|
irq_screen_top::@4: scope:[irq_screen_top] from irq_screen_top::@1
|
|
[88] phi()
|
|
[89] call game_logic
|
|
to:irq_screen_top::@8
|
|
irq_screen_top::@8: scope:[irq_screen_top] from irq_screen_top::@4
|
|
[90] phi()
|
|
[91] call pacman_sound_play
|
|
to:irq_screen_top::@3
|
|
irq_screen_top::@3: scope:[irq_screen_top] from irq_screen_top::@2 irq_screen_top::@8
|
|
[92] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER
|
|
[93] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE
|
|
[94] *HARDWARE_IRQ = &irq_screen_top
|
|
to:irq_screen_top::@return
|
|
irq_screen_top::@return: scope:[irq_screen_top] from irq_screen_top::@3
|
|
[95] return
|
|
to:@return
|
|
irq_screen_top::@2: scope:[irq_screen_top] from irq_screen_top::@1
|
|
[96] music_play_next = 1
|
|
to:irq_screen_top::@3
|
|
irq_screen_top::toDd001: scope:[irq_screen_top] from irq_screen_top::@5
|
|
[97] phi()
|
|
to:irq_screen_top::@6
|
|
irq_screen_top::@6: scope:[irq_screen_top] from irq_screen_top::toDd001
|
|
[98] *((char *)CIA2) = irq_screen_top::toDd001_return#0
|
|
[99] canvas_base_hi = byte1 SPRITES_1
|
|
[100] bobs_restore_base = 0
|
|
to:irq_screen_top::@1
|
|
|
|
void main()
|
|
main: scope:[main] from __start::@1
|
|
[101] phi()
|
|
[102] call splash_run
|
|
to:main::@1
|
|
main::@1: scope:[main] from main main::@2
|
|
[103] phi()
|
|
[104] call gameplay_run
|
|
to:main::@2
|
|
main::@2: scope:[main] from main::@1
|
|
[105] phi()
|
|
[106] call done_run
|
|
to:main::@1
|
|
|
|
void game_logic()
|
|
game_logic: scope:[game_logic] from irq_screen_top::@4
|
|
[107] if(game_playable!=0) goto game_logic::@1
|
|
to:game_logic::@return
|
|
game_logic::@return: scope:[game_logic] from game_logic game_logic::@103 game_logic::@104 game_logic::@105 game_logic::@106 game_logic::@112 game_logic::@113 game_logic::@115 game_logic::@120 game_logic::@121 game_logic::@122 game_logic::@123 game_logic::@129 game_logic::@130 game_logic::@132 game_logic::@137 game_logic::@138 game_logic::@139 game_logic::@145 game_logic::@146 game_logic::@150 game_logic::@151 game_logic::@153 game_logic::@155 game_logic::@157 game_logic::@159 game_logic::@161 game_logic::@165 game_logic::@44 game_logic::@54 game_logic::@55 game_logic::@56 game_logic::@57 game_logic::@66 game_logic::@68 game_logic::@69 game_logic::@70 game_logic::@71 game_logic::@72 game_logic::@78 game_logic::@79 game_logic::@81 game_logic::@86 game_logic::@87 game_logic::@88 game_logic::@89 game_logic::@95 game_logic::@96 game_logic::@98
|
|
[108] return
|
|
to:@return
|
|
game_logic::@1: scope:[game_logic] from game_logic
|
|
[109] game_logic::$2 = game_logic_substep + 1
|
|
[110] game_logic::$3 = game_logic::$2 & 7
|
|
[111] game_logic_substep = game_logic::$3
|
|
[112] if(game_logic_substep==0) goto game_logic::@2
|
|
to:game_logic::@8
|
|
game_logic::@8: scope:[game_logic] from game_logic::@1
|
|
[113] if(game_logic_substep==1) goto game_logic::@3
|
|
to:game_logic::@9
|
|
game_logic::@9: scope:[game_logic] from game_logic::@8
|
|
[114] if(game_logic_substep==2) goto game_logic::@4
|
|
to:game_logic::@10
|
|
game_logic::@10: scope:[game_logic] from game_logic::@9
|
|
[115] if(game_logic_substep==4) goto game_logic::@5
|
|
to:game_logic::@11
|
|
game_logic::@11: scope:[game_logic] from game_logic::@10
|
|
[116] if(game_logic_substep==5) goto game_logic::@6
|
|
to:game_logic::@12
|
|
game_logic::@12: scope:[game_logic] from game_logic::@11
|
|
[117] if(game_logic_substep==6) goto game_logic::@7
|
|
to:game_logic::@13
|
|
game_logic::@13: scope:[game_logic] from game_logic::@12
|
|
[118] if(game_logic_substep==3) goto game_logic::@14
|
|
to:game_logic::@161
|
|
game_logic::@161: scope:[game_logic] from game_logic::@13
|
|
[119] if(game_logic_substep==7) goto game_logic::@14
|
|
to:game_logic::@return
|
|
game_logic::@14: scope:[game_logic] from game_logic::@13 game_logic::@161
|
|
[120] game_logic::$14 = anim_frame_idx + 1
|
|
[121] game_logic::$15 = game_logic::$14 & 3
|
|
[122] anim_frame_idx = game_logic::$15
|
|
[123] game_logic::pacman_bob_xfine#0 = pacman_xfine - 1
|
|
[124] game_logic::$17 = game_logic::pacman_bob_xfine#0 >> 2
|
|
[125] *bobs_xcol = game_logic::$17
|
|
[126] game_logic::$18 = pacman_yfine - 1
|
|
[127] *bobs_yfine = game_logic::$18
|
|
[128] game_logic::$19 = pacman_direction | anim_frame_idx
|
|
[129] game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3
|
|
[130] game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20
|
|
[131] *bobs_bob_id = game_logic::$21
|
|
[132] game_logic::ghost_frame_idx#0 = anim_frame_idx
|
|
[133] if(ghosts_mode!=FRIGHTENED) goto game_logic::@44
|
|
to:game_logic::@15
|
|
game_logic::@15: scope:[game_logic] from game_logic::@14
|
|
[134] game_logic::ghost_frame_idx#1 = game_logic::ghost_frame_idx#0 | $40
|
|
to:game_logic::@44
|
|
game_logic::@44: scope:[game_logic] from game_logic::@14 game_logic::@15
|
|
[135] game_logic::ghost_frame_idx#2 = phi( game_logic::@14/game_logic::ghost_frame_idx#0, game_logic::@15/game_logic::ghost_frame_idx#1 )
|
|
[136] game_logic::ghost1_bob_xfine#0 = ghost1_xfine - 1
|
|
[137] game_logic::$25 = game_logic::ghost1_bob_xfine#0 >> 2
|
|
[138] *(bobs_xcol+1) = game_logic::$25
|
|
[139] game_logic::$26 = ghost1_yfine - 1
|
|
[140] *(bobs_yfine+1) = game_logic::$26
|
|
[141] game_logic::$27 = ghost1_direction | game_logic::ghost_frame_idx#2
|
|
[142] game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3
|
|
[143] game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28
|
|
[144] *(bobs_bob_id+1) = game_logic::$29
|
|
[145] game_logic::ghost2_bob_xfine#0 = ghost2_xfine - 1
|
|
[146] game_logic::$31 = game_logic::ghost2_bob_xfine#0 >> 2
|
|
[147] *(bobs_xcol+2) = game_logic::$31
|
|
[148] game_logic::$32 = ghost2_yfine - 1
|
|
[149] *(bobs_yfine+2) = game_logic::$32
|
|
[150] game_logic::$33 = ghost2_direction | game_logic::ghost_frame_idx#2
|
|
[151] game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3
|
|
[152] game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34
|
|
[153] *(bobs_bob_id+2) = game_logic::$35
|
|
[154] game_logic::ghost3_bob_xfine#0 = ghost3_xfine - 1
|
|
[155] game_logic::$37 = game_logic::ghost3_bob_xfine#0 >> 2
|
|
[156] *(bobs_xcol+3) = game_logic::$37
|
|
[157] game_logic::$38 = ghost3_yfine - 1
|
|
[158] *(bobs_yfine+3) = game_logic::$38
|
|
[159] game_logic::$39 = ghost3_direction | game_logic::ghost_frame_idx#2
|
|
[160] game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3
|
|
[161] game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40
|
|
[162] *(bobs_bob_id+3) = game_logic::$41
|
|
[163] game_logic::ghost4_bob_xfine#0 = ghost4_xfine - 1
|
|
[164] game_logic::$43 = game_logic::ghost4_bob_xfine#0 >> 2
|
|
[165] *(bobs_xcol+4) = game_logic::$43
|
|
[166] game_logic::$44 = ghost4_yfine - 1
|
|
[167] *(bobs_yfine+4) = game_logic::$44
|
|
[168] game_logic::$45 = ghost4_direction | game_logic::ghost_frame_idx#2
|
|
[169] game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3
|
|
[170] game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46
|
|
[171] *(bobs_bob_id+4) = game_logic::$47
|
|
to:game_logic::@return
|
|
game_logic::@7: scope:[game_logic] from game_logic::@12
|
|
[172] ghosts_mode_count = ++ ghosts_mode_count
|
|
[173] if(ghosts_mode==SCATTER) goto game_logic::@45
|
|
to:game_logic::@16
|
|
game_logic::@16: scope:[game_logic] from game_logic::@7
|
|
[174] if(ghosts_mode==CHASE) goto game_logic::@46
|
|
to:game_logic::@17
|
|
game_logic::@17: scope:[game_logic] from game_logic::@16
|
|
[175] if(ghosts_mode!=FRIGHTENED) goto game_logic::@47
|
|
to:game_logic::@18
|
|
game_logic::@18: scope:[game_logic] from game_logic::@17
|
|
[176] if(ghosts_mode_count<$32+1) goto game_logic::@47
|
|
to:game_logic::@19
|
|
game_logic::@19: scope:[game_logic] from game_logic::@18
|
|
[177] ghosts_mode = CHASE
|
|
[178] ghosts_mode_count = 0
|
|
to:game_logic::@47
|
|
game_logic::@47: scope:[game_logic] from game_logic::@17 game_logic::@18 game_logic::@19 game_logic::@45 game_logic::@46 game_logic::@58 game_logic::@59
|
|
[179] game_logic::do_reverse#4 = phi( game_logic::@17/0, game_logic::@18/0, game_logic::@19/1, game_logic::@45/0, game_logic::@46/0, game_logic::@58/1, game_logic::@59/1 )
|
|
[180] if(0==game_logic::do_reverse#4) goto game_logic::@48
|
|
to:game_logic::@60
|
|
game_logic::@60: scope:[game_logic] from game_logic::@47
|
|
[181] ghost1_reverse = 1
|
|
[182] ghost2_reverse = 1
|
|
[183] ghost3_reverse = 1
|
|
[184] ghost4_reverse = 1
|
|
to:game_logic::@48
|
|
game_logic::@48: scope:[game_logic] from game_logic::@47 game_logic::@60
|
|
[185] game_logic::pacman_xtile#0 = pacman_xfine >> 1
|
|
[186] game_logic::pacman_ytile#0 = pacman_yfine >> 1
|
|
[187] game_logic::$210 = game_logic::pacman_ytile#0 << 1
|
|
[188] game_logic::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[game_logic::$210]
|
|
[189] game_logic::tile_id#0 = game_logic::ytiles#0[game_logic::pacman_xtile#0]
|
|
[190] if(TILES_TYPE[game_logic::tile_id#0]==PILL) goto game_logic::@49
|
|
to:game_logic::@61
|
|
game_logic::@61: scope:[game_logic] from game_logic::@48
|
|
[191] if(TILES_TYPE[game_logic::tile_id#0]!=POWERUP) goto game_logic::@50
|
|
to:game_logic::@62
|
|
game_logic::@62: scope:[game_logic] from game_logic::@61
|
|
[192] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY
|
|
[193] game_logic::$65 = game_logic::pacman_xtile#0 >> 1
|
|
[194] logic_tile_xcol = game_logic::$65
|
|
[195] game_logic::$66 = game_logic::pacman_xtile#0 & $fe
|
|
[196] game_logic::$67 = game_logic::ytiles#0 + game_logic::$66
|
|
[197] logic_tile_ptr = game_logic::$67
|
|
[198] game_logic::$68 = game_logic::$210
|
|
[199] logic_tile_yfine = game_logic::$68
|
|
[200] ghosts_mode = FRIGHTENED
|
|
[201] ghosts_mode_count = 0
|
|
to:game_logic::@50
|
|
game_logic::@50: scope:[game_logic] from game_logic::@49 game_logic::@61 game_logic::@62 game_logic::@63
|
|
[202] game_logic::$75 = pacman_xfine - ghost1_xfine
|
|
[203] game_logic::$77 = pacman_yfine - ghost1_yfine
|
|
[204] if(ABS[game_logic::$75]>=2) goto game_logic::@64
|
|
to:game_logic::@162
|
|
game_logic::@162: scope:[game_logic] from game_logic::@50
|
|
[205] if(ABS[game_logic::$77]<2) goto game_logic::@51
|
|
to:game_logic::@64
|
|
game_logic::@64: scope:[game_logic] from game_logic::@162 game_logic::@50
|
|
[206] game_logic::$80 = pacman_xfine - ghost2_xfine
|
|
[207] game_logic::$82 = pacman_yfine - ghost2_yfine
|
|
[208] if(ABS[game_logic::$80]>=2) goto game_logic::@65
|
|
to:game_logic::@163
|
|
game_logic::@163: scope:[game_logic] from game_logic::@64
|
|
[209] if(ABS[game_logic::$82]<2) goto game_logic::@52
|
|
to:game_logic::@65
|
|
game_logic::@65: scope:[game_logic] from game_logic::@163 game_logic::@64
|
|
[210] game_logic::$85 = pacman_xfine - ghost3_xfine
|
|
[211] game_logic::$87 = pacman_yfine - ghost3_yfine
|
|
[212] if(ABS[game_logic::$85]>=2) goto game_logic::@66
|
|
to:game_logic::@164
|
|
game_logic::@164: scope:[game_logic] from game_logic::@65
|
|
[213] if(ABS[game_logic::$87]<2) goto game_logic::@53
|
|
to:game_logic::@66
|
|
game_logic::@66: scope:[game_logic] from game_logic::@164 game_logic::@65
|
|
[214] game_logic::$90 = pacman_xfine - ghost4_xfine
|
|
[215] game_logic::$92 = pacman_yfine - ghost4_yfine
|
|
[216] if(ABS[game_logic::$90]>=2) goto game_logic::@return
|
|
to:game_logic::@165
|
|
game_logic::@165: scope:[game_logic] from game_logic::@66
|
|
[217] if(ABS[game_logic::$92]<2) goto game_logic::@67
|
|
to:game_logic::@return
|
|
game_logic::@67: scope:[game_logic] from game_logic::@165
|
|
[218] if(ghosts_mode==FRIGHTENED) goto game_logic::@54
|
|
to:game_logic::@68
|
|
game_logic::@68: scope:[game_logic] from game_logic::@67
|
|
[219] pacman_lives = -- pacman_lives
|
|
[220] call spawn_all
|
|
to:game_logic::@return
|
|
game_logic::@54: scope:[game_logic] from game_logic::@67
|
|
[221] ghost4_direction = STOP
|
|
[222] ghost4_xfine = $32
|
|
[223] ghost4_yfine = $23
|
|
[224] ghost4_substep = 0
|
|
[225] ghost4_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@53: scope:[game_logic] from game_logic::@164
|
|
[226] if(ghosts_mode==FRIGHTENED) goto game_logic::@55
|
|
to:game_logic::@69
|
|
game_logic::@69: scope:[game_logic] from game_logic::@53
|
|
[227] pacman_lives = -- pacman_lives
|
|
[228] call spawn_all
|
|
to:game_logic::@return
|
|
game_logic::@55: scope:[game_logic] from game_logic::@53
|
|
[229] ghost3_direction = STOP
|
|
[230] ghost3_xfine = $32
|
|
[231] ghost3_yfine = $23
|
|
[232] ghost3_substep = 0
|
|
[233] ghost3_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@52: scope:[game_logic] from game_logic::@163
|
|
[234] if(ghosts_mode==FRIGHTENED) goto game_logic::@56
|
|
to:game_logic::@70
|
|
game_logic::@70: scope:[game_logic] from game_logic::@52
|
|
[235] pacman_lives = -- pacman_lives
|
|
[236] call spawn_all
|
|
to:game_logic::@return
|
|
game_logic::@56: scope:[game_logic] from game_logic::@52
|
|
[237] ghost2_direction = STOP
|
|
[238] ghost2_xfine = $32
|
|
[239] ghost2_yfine = $23
|
|
[240] ghost2_substep = 0
|
|
[241] ghost2_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@51: scope:[game_logic] from game_logic::@162
|
|
[242] if(ghosts_mode==FRIGHTENED) goto game_logic::@57
|
|
to:game_logic::@71
|
|
game_logic::@71: scope:[game_logic] from game_logic::@51
|
|
[243] pacman_lives = -- pacman_lives
|
|
[244] call spawn_all
|
|
to:game_logic::@return
|
|
game_logic::@57: scope:[game_logic] from game_logic::@51
|
|
[245] ghost1_direction = STOP
|
|
[246] ghost1_xfine = $32
|
|
[247] ghost1_yfine = $23
|
|
[248] ghost1_substep = 0
|
|
[249] ghost1_respawn = $32
|
|
to:game_logic::@return
|
|
game_logic::@49: scope:[game_logic] from game_logic::@48
|
|
[250] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY
|
|
[251] game_logic::$69 = game_logic::pacman_xtile#0 >> 1
|
|
[252] logic_tile_xcol = game_logic::$69
|
|
[253] game_logic::$70 = game_logic::pacman_xtile#0 & $fe
|
|
[254] game_logic::$71 = game_logic::ytiles#0 + game_logic::$70
|
|
[255] logic_tile_ptr = game_logic::$71
|
|
[256] game_logic::$72 = game_logic::$210
|
|
[257] logic_tile_yfine = game_logic::$72
|
|
[258] pill_count = -- pill_count
|
|
[259] if(pill_count!=0) goto game_logic::@50
|
|
to:game_logic::@63
|
|
game_logic::@63: scope:[game_logic] from game_logic::@49
|
|
[260] pacman_wins = 1
|
|
to:game_logic::@50
|
|
game_logic::@46: scope:[game_logic] from game_logic::@16
|
|
[261] if(ghosts_mode_count<$96+1) goto game_logic::@47
|
|
to:game_logic::@58
|
|
game_logic::@58: scope:[game_logic] from game_logic::@46
|
|
[262] ghosts_mode = SCATTER
|
|
[263] ghosts_mode_count = 0
|
|
to:game_logic::@47
|
|
game_logic::@45: scope:[game_logic] from game_logic::@7
|
|
[264] if(ghosts_mode_count<$32+1) goto game_logic::@47
|
|
to:game_logic::@59
|
|
game_logic::@59: scope:[game_logic] from game_logic::@45
|
|
[265] ghosts_mode = CHASE
|
|
[266] ghosts_mode_count = 0
|
|
to:game_logic::@47
|
|
game_logic::@6: scope:[game_logic] from game_logic::@11
|
|
[267] if(0!=ghost4_respawn) goto game_logic::@72
|
|
to:game_logic::@20
|
|
game_logic::@20: scope:[game_logic] from game_logic::@6
|
|
[268] if(ghost4_direction==RIGHT) goto game_logic::@73
|
|
to:game_logic::@21
|
|
game_logic::@21: scope:[game_logic] from game_logic::@20
|
|
[269] if(ghost4_direction==DOWN) goto game_logic::@74
|
|
to:game_logic::@22
|
|
game_logic::@22: scope:[game_logic] from game_logic::@21
|
|
[270] if(ghost4_direction==LEFT) goto game_logic::@75
|
|
to:game_logic::@23
|
|
game_logic::@23: scope:[game_logic] from game_logic::@22
|
|
[271] if(ghost4_direction!=UP) goto game_logic::@76
|
|
to:game_logic::@24
|
|
game_logic::@24: scope:[game_logic] from game_logic::@23
|
|
[272] ghost4_yfine = -- ghost4_yfine
|
|
to:game_logic::@76
|
|
game_logic::@76: scope:[game_logic] from game_logic::@23 game_logic::@24 game_logic::@73 game_logic::@74 game_logic::@75
|
|
[273] game_logic::$220 = ghost4_direction
|
|
[274] if(ghost4_substep!=0) goto game_logic::@82
|
|
to:game_logic::@166
|
|
game_logic::@166: scope:[game_logic] from game_logic::@76
|
|
[275] if(game_logic::$220!=STOP) goto game_logic::@77
|
|
to:game_logic::@82
|
|
game_logic::@82: scope:[game_logic] from game_logic::@166 game_logic::@76
|
|
[276] ghost4_substep = 0
|
|
[277] if(0!=ghost4_reverse) goto game_logic::@78
|
|
to:game_logic::@83
|
|
game_logic::@83: scope:[game_logic] from game_logic::@82
|
|
[278] game_logic::ghost4_xtile#0 = ghost4_xfine >> 1
|
|
[279] game_logic::ghost4_ytile#0 = ghost4_yfine >> 1
|
|
[280] level_tile_directions::xtile#0 = game_logic::ghost4_xtile#0
|
|
[281] level_tile_directions::ytile#0 = game_logic::ghost4_ytile#0
|
|
[282] call level_tile_directions
|
|
[283] level_tile_directions::return#3 = level_tile_directions::return#2
|
|
to:game_logic::@152
|
|
game_logic::@152: scope:[game_logic] from game_logic::@83
|
|
[284] game_logic::open_directions#0 = level_tile_directions::return#3
|
|
[285] game_logic::open_directions#1 = game_logic::open_directions#0 & DIRECTION_ELIMINATE[ghost4_direction]
|
|
[286] if(ghosts_mode==FRIGHTENED) goto game_logic::@79
|
|
to:game_logic::@84
|
|
game_logic::@84: scope:[game_logic] from game_logic::@152
|
|
[287] if(ghosts_mode==SCATTER) goto game_logic::@80
|
|
to:game_logic::@85
|
|
game_logic::@85: scope:[game_logic] from game_logic::@84
|
|
[288] game_logic::target_xtile#2 = pacman_xfine >> 1
|
|
[289] game_logic::target_ytile#2 = pacman_yfine >> 1
|
|
to:game_logic::@80
|
|
game_logic::@80: scope:[game_logic] from game_logic::@84 game_logic::@85
|
|
[290] game_logic::target_ytile#3 = phi( game_logic::@84/2, game_logic::@85/game_logic::target_ytile#2 )
|
|
[290] game_logic::target_xtile#3 = phi( game_logic::@84/2, game_logic::@85/game_logic::target_xtile#2 )
|
|
[291] choose_direction::open_directions#0 = game_logic::open_directions#1
|
|
[292] choose_direction::ghost_xtile#0 = game_logic::ghost4_xtile#0
|
|
[293] choose_direction::ghost_ytile#0 = game_logic::ghost4_ytile#0
|
|
[294] choose_direction::target_xtile#0 = game_logic::target_xtile#3
|
|
[295] choose_direction::target_ytile#0 = game_logic::target_ytile#3
|
|
[296] call choose_direction
|
|
[297] choose_direction::return#0 = choose_direction::return#10
|
|
to:game_logic::@153
|
|
game_logic::@153: scope:[game_logic] from game_logic::@80
|
|
[298] game_logic::$119 = choose_direction::return#0
|
|
[299] ghost4_direction = game_logic::$119
|
|
to:game_logic::@return
|
|
game_logic::@79: scope:[game_logic] from game_logic::@152
|
|
[300] ghost4_direction = DIRECTION_SINGLE[game_logic::open_directions#1]
|
|
to:game_logic::@return
|
|
game_logic::@78: scope:[game_logic] from game_logic::@82
|
|
[301] ghost4_direction = DIRECTION_REVERSE[ghost4_direction]
|
|
[302] ghost4_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@77: scope:[game_logic] from game_logic::@166
|
|
[303] ghost4_substep = 1
|
|
[304] if(ghost4_xfine==1) goto game_logic::@81
|
|
to:game_logic::@86
|
|
game_logic::@86: scope:[game_logic] from game_logic::@77
|
|
[305] if(ghost4_xfine!=$61) goto game_logic::@return
|
|
to:game_logic::@87
|
|
game_logic::@87: scope:[game_logic] from game_logic::@86
|
|
[306] ghost4_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@81: scope:[game_logic] from game_logic::@77
|
|
[307] ghost4_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@75: scope:[game_logic] from game_logic::@22
|
|
[308] ghost4_xfine = -- ghost4_xfine
|
|
to:game_logic::@76
|
|
game_logic::@74: scope:[game_logic] from game_logic::@21
|
|
[309] ghost4_yfine = ++ ghost4_yfine
|
|
to:game_logic::@76
|
|
game_logic::@73: scope:[game_logic] from game_logic::@20
|
|
[310] ghost4_xfine = ++ ghost4_xfine
|
|
to:game_logic::@76
|
|
game_logic::@72: scope:[game_logic] from game_logic::@6
|
|
[311] ghost4_respawn = -- ghost4_respawn
|
|
[312] if(ghost4_respawn!=0) goto game_logic::@return
|
|
to:game_logic::@88
|
|
game_logic::@88: scope:[game_logic] from game_logic::@72
|
|
[313] ghost4_direction = RIGHT
|
|
[314] ghost4_xfine = 2
|
|
[315] ghost4_yfine = 2
|
|
[316] ghost4_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@5: scope:[game_logic] from game_logic::@10
|
|
[317] if(0!=ghost3_respawn) goto game_logic::@89
|
|
to:game_logic::@25
|
|
game_logic::@25: scope:[game_logic] from game_logic::@5
|
|
[318] if(ghost3_direction==RIGHT) goto game_logic::@90
|
|
to:game_logic::@26
|
|
game_logic::@26: scope:[game_logic] from game_logic::@25
|
|
[319] if(ghost3_direction==DOWN) goto game_logic::@91
|
|
to:game_logic::@27
|
|
game_logic::@27: scope:[game_logic] from game_logic::@26
|
|
[320] if(ghost3_direction==LEFT) goto game_logic::@92
|
|
to:game_logic::@28
|
|
game_logic::@28: scope:[game_logic] from game_logic::@27
|
|
[321] if(ghost3_direction!=UP) goto game_logic::@93
|
|
to:game_logic::@29
|
|
game_logic::@29: scope:[game_logic] from game_logic::@28
|
|
[322] ghost3_yfine = -- ghost3_yfine
|
|
to:game_logic::@93
|
|
game_logic::@93: scope:[game_logic] from game_logic::@28 game_logic::@29 game_logic::@90 game_logic::@91 game_logic::@92
|
|
[323] game_logic::$223 = ghost3_direction
|
|
[324] if(ghost3_substep!=0) goto game_logic::@99
|
|
to:game_logic::@167
|
|
game_logic::@167: scope:[game_logic] from game_logic::@93
|
|
[325] if(game_logic::$223!=STOP) goto game_logic::@94
|
|
to:game_logic::@99
|
|
game_logic::@99: scope:[game_logic] from game_logic::@167 game_logic::@93
|
|
[326] ghost3_substep = 0
|
|
[327] if(0!=ghost3_reverse) goto game_logic::@95
|
|
to:game_logic::@100
|
|
game_logic::@100: scope:[game_logic] from game_logic::@99
|
|
[328] game_logic::ghost3_xtile#0 = ghost3_xfine >> 1
|
|
[329] game_logic::ghost3_ytile#0 = ghost3_yfine >> 1
|
|
[330] level_tile_directions::xtile#1 = game_logic::ghost3_xtile#0
|
|
[331] level_tile_directions::ytile#1 = game_logic::ghost3_ytile#0
|
|
[332] call level_tile_directions
|
|
[333] level_tile_directions::return#10 = level_tile_directions::return#2
|
|
to:game_logic::@154
|
|
game_logic::@154: scope:[game_logic] from game_logic::@100
|
|
[334] game_logic::open_directions1#0 = level_tile_directions::return#10
|
|
[335] game_logic::open_directions1#1 = game_logic::open_directions1#0 & DIRECTION_ELIMINATE[ghost3_direction]
|
|
[336] if(ghosts_mode==FRIGHTENED) goto game_logic::@96
|
|
to:game_logic::@101
|
|
game_logic::@101: scope:[game_logic] from game_logic::@154
|
|
[337] if(ghosts_mode==SCATTER) goto game_logic::@97
|
|
to:game_logic::@102
|
|
game_logic::@102: scope:[game_logic] from game_logic::@101
|
|
[338] game_logic::target_xtile1#2 = pacman_xfine >> 1
|
|
[339] game_logic::target_ytile1#2 = pacman_yfine >> 1
|
|
to:game_logic::@97
|
|
game_logic::@97: scope:[game_logic] from game_logic::@101 game_logic::@102
|
|
[340] game_logic::target_ytile1#3 = phi( game_logic::@102/game_logic::target_ytile1#2, game_logic::@101/2 )
|
|
[340] game_logic::target_xtile1#3 = phi( game_logic::@102/game_logic::target_xtile1#2, game_logic::@101/2 )
|
|
[341] choose_direction::open_directions#1 = game_logic::open_directions1#1
|
|
[342] choose_direction::ghost_xtile#1 = game_logic::ghost3_xtile#0
|
|
[343] choose_direction::ghost_ytile#1 = game_logic::ghost3_ytile#0
|
|
[344] choose_direction::target_xtile#1 = game_logic::target_xtile1#3
|
|
[345] choose_direction::target_ytile#1 = game_logic::target_ytile1#3
|
|
[346] call choose_direction
|
|
[347] choose_direction::return#1 = choose_direction::return#10
|
|
to:game_logic::@155
|
|
game_logic::@155: scope:[game_logic] from game_logic::@97
|
|
[348] game_logic::$140 = choose_direction::return#1
|
|
[349] ghost3_direction = game_logic::$140
|
|
to:game_logic::@return
|
|
game_logic::@96: scope:[game_logic] from game_logic::@154
|
|
[350] ghost3_direction = DIRECTION_SINGLE[game_logic::open_directions1#1]
|
|
to:game_logic::@return
|
|
game_logic::@95: scope:[game_logic] from game_logic::@99
|
|
[351] ghost3_direction = DIRECTION_REVERSE[ghost3_direction]
|
|
[352] ghost3_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@94: scope:[game_logic] from game_logic::@167
|
|
[353] ghost3_substep = 1
|
|
[354] if(ghost3_xfine==1) goto game_logic::@98
|
|
to:game_logic::@103
|
|
game_logic::@103: scope:[game_logic] from game_logic::@94
|
|
[355] if(ghost3_xfine!=$61) goto game_logic::@return
|
|
to:game_logic::@104
|
|
game_logic::@104: scope:[game_logic] from game_logic::@103
|
|
[356] ghost3_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@98: scope:[game_logic] from game_logic::@94
|
|
[357] ghost3_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@92: scope:[game_logic] from game_logic::@27
|
|
[358] ghost3_xfine = -- ghost3_xfine
|
|
to:game_logic::@93
|
|
game_logic::@91: scope:[game_logic] from game_logic::@26
|
|
[359] ghost3_yfine = ++ ghost3_yfine
|
|
to:game_logic::@93
|
|
game_logic::@90: scope:[game_logic] from game_logic::@25
|
|
[360] ghost3_xfine = ++ ghost3_xfine
|
|
to:game_logic::@93
|
|
game_logic::@89: scope:[game_logic] from game_logic::@5
|
|
[361] ghost3_respawn = -- ghost3_respawn
|
|
[362] if(ghost3_respawn!=0) goto game_logic::@return
|
|
to:game_logic::@105
|
|
game_logic::@105: scope:[game_logic] from game_logic::@89
|
|
[363] ghost3_direction = UP
|
|
[364] ghost3_xfine = 2
|
|
[365] ghost3_yfine = $46
|
|
[366] ghost3_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@4: scope:[game_logic] from game_logic::@9
|
|
[367] if(0!=ghost2_respawn) goto game_logic::@106
|
|
to:game_logic::@30
|
|
game_logic::@30: scope:[game_logic] from game_logic::@4
|
|
[368] if(ghost2_direction==RIGHT) goto game_logic::@107
|
|
to:game_logic::@31
|
|
game_logic::@31: scope:[game_logic] from game_logic::@30
|
|
[369] if(ghost2_direction==DOWN) goto game_logic::@108
|
|
to:game_logic::@32
|
|
game_logic::@32: scope:[game_logic] from game_logic::@31
|
|
[370] if(ghost2_direction==LEFT) goto game_logic::@109
|
|
to:game_logic::@33
|
|
game_logic::@33: scope:[game_logic] from game_logic::@32
|
|
[371] if(ghost2_direction!=UP) goto game_logic::@110
|
|
to:game_logic::@34
|
|
game_logic::@34: scope:[game_logic] from game_logic::@33
|
|
[372] ghost2_yfine = -- ghost2_yfine
|
|
to:game_logic::@110
|
|
game_logic::@110: scope:[game_logic] from game_logic::@107 game_logic::@108 game_logic::@109 game_logic::@33 game_logic::@34
|
|
[373] game_logic::$226 = ghost2_direction
|
|
[374] if(ghost2_substep!=0) goto game_logic::@116
|
|
to:game_logic::@168
|
|
game_logic::@168: scope:[game_logic] from game_logic::@110
|
|
[375] if(game_logic::$226!=STOP) goto game_logic::@111
|
|
to:game_logic::@116
|
|
game_logic::@116: scope:[game_logic] from game_logic::@110 game_logic::@168
|
|
[376] ghost2_substep = 0
|
|
[377] if(0!=ghost2_reverse) goto game_logic::@112
|
|
to:game_logic::@117
|
|
game_logic::@117: scope:[game_logic] from game_logic::@116
|
|
[378] game_logic::ghost2_xtile#0 = ghost2_xfine >> 1
|
|
[379] game_logic::ghost2_ytile#0 = ghost2_yfine >> 1
|
|
[380] level_tile_directions::xtile#2 = game_logic::ghost2_xtile#0
|
|
[381] level_tile_directions::ytile#2 = game_logic::ghost2_ytile#0
|
|
[382] call level_tile_directions
|
|
[383] level_tile_directions::return#11 = level_tile_directions::return#2
|
|
to:game_logic::@156
|
|
game_logic::@156: scope:[game_logic] from game_logic::@117
|
|
[384] game_logic::open_directions2#0 = level_tile_directions::return#11
|
|
[385] game_logic::open_directions2#1 = game_logic::open_directions2#0 & DIRECTION_ELIMINATE[ghost2_direction]
|
|
[386] if(ghosts_mode==FRIGHTENED) goto game_logic::@113
|
|
to:game_logic::@118
|
|
game_logic::@118: scope:[game_logic] from game_logic::@156
|
|
[387] if(ghosts_mode==SCATTER) goto game_logic::@114
|
|
to:game_logic::@119
|
|
game_logic::@119: scope:[game_logic] from game_logic::@118
|
|
[388] game_logic::target_xtile2#2 = pacman_xfine >> 1
|
|
[389] game_logic::target_ytile2#2 = pacman_yfine >> 1
|
|
to:game_logic::@114
|
|
game_logic::@114: scope:[game_logic] from game_logic::@118 game_logic::@119
|
|
[390] game_logic::target_ytile2#3 = phi( game_logic::@118/2, game_logic::@119/game_logic::target_ytile2#2 )
|
|
[390] game_logic::target_xtile2#3 = phi( game_logic::@118/2, game_logic::@119/game_logic::target_xtile2#2 )
|
|
[391] choose_direction::open_directions#2 = game_logic::open_directions2#1
|
|
[392] choose_direction::ghost_xtile#2 = game_logic::ghost2_xtile#0
|
|
[393] choose_direction::ghost_ytile#2 = game_logic::ghost2_ytile#0
|
|
[394] choose_direction::target_xtile#2 = game_logic::target_xtile2#3
|
|
[395] choose_direction::target_ytile#2 = game_logic::target_ytile2#3
|
|
[396] call choose_direction
|
|
[397] choose_direction::return#2 = choose_direction::return#10
|
|
to:game_logic::@157
|
|
game_logic::@157: scope:[game_logic] from game_logic::@114
|
|
[398] game_logic::$161 = choose_direction::return#2
|
|
[399] ghost2_direction = game_logic::$161
|
|
to:game_logic::@return
|
|
game_logic::@113: scope:[game_logic] from game_logic::@156
|
|
[400] ghost2_direction = DIRECTION_SINGLE[game_logic::open_directions2#1]
|
|
to:game_logic::@return
|
|
game_logic::@112: scope:[game_logic] from game_logic::@116
|
|
[401] ghost2_direction = DIRECTION_REVERSE[ghost2_direction]
|
|
[402] ghost2_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@111: scope:[game_logic] from game_logic::@168
|
|
[403] ghost2_substep = 1
|
|
[404] if(ghost2_xfine==1) goto game_logic::@115
|
|
to:game_logic::@120
|
|
game_logic::@120: scope:[game_logic] from game_logic::@111
|
|
[405] if(ghost2_xfine!=$61) goto game_logic::@return
|
|
to:game_logic::@121
|
|
game_logic::@121: scope:[game_logic] from game_logic::@120
|
|
[406] ghost2_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@115: scope:[game_logic] from game_logic::@111
|
|
[407] ghost2_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@109: scope:[game_logic] from game_logic::@32
|
|
[408] ghost2_xfine = -- ghost2_xfine
|
|
to:game_logic::@110
|
|
game_logic::@108: scope:[game_logic] from game_logic::@31
|
|
[409] ghost2_yfine = ++ ghost2_yfine
|
|
to:game_logic::@110
|
|
game_logic::@107: scope:[game_logic] from game_logic::@30
|
|
[410] ghost2_xfine = ++ ghost2_xfine
|
|
to:game_logic::@110
|
|
game_logic::@106: scope:[game_logic] from game_logic::@4
|
|
[411] ghost2_respawn = -- ghost2_respawn
|
|
[412] if(ghost2_respawn!=0) goto game_logic::@return
|
|
to:game_logic::@122
|
|
game_logic::@122: scope:[game_logic] from game_logic::@106
|
|
[413] ghost2_direction = LEFT
|
|
[414] ghost2_xfine = $60
|
|
[415] ghost2_yfine = $46
|
|
[416] ghost2_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@3: scope:[game_logic] from game_logic::@8
|
|
[417] if(0!=ghost1_respawn) goto game_logic::@123
|
|
to:game_logic::@35
|
|
game_logic::@35: scope:[game_logic] from game_logic::@3
|
|
[418] if(ghost1_direction==RIGHT) goto game_logic::@124
|
|
to:game_logic::@36
|
|
game_logic::@36: scope:[game_logic] from game_logic::@35
|
|
[419] if(ghost1_direction==DOWN) goto game_logic::@125
|
|
to:game_logic::@37
|
|
game_logic::@37: scope:[game_logic] from game_logic::@36
|
|
[420] if(ghost1_direction==LEFT) goto game_logic::@126
|
|
to:game_logic::@38
|
|
game_logic::@38: scope:[game_logic] from game_logic::@37
|
|
[421] if(ghost1_direction!=UP) goto game_logic::@127
|
|
to:game_logic::@39
|
|
game_logic::@39: scope:[game_logic] from game_logic::@38
|
|
[422] ghost1_yfine = -- ghost1_yfine
|
|
to:game_logic::@127
|
|
game_logic::@127: scope:[game_logic] from game_logic::@124 game_logic::@125 game_logic::@126 game_logic::@38 game_logic::@39
|
|
[423] game_logic::$229 = ghost1_direction
|
|
[424] if(ghost1_substep!=0) goto game_logic::@133
|
|
to:game_logic::@169
|
|
game_logic::@169: scope:[game_logic] from game_logic::@127
|
|
[425] if(game_logic::$229!=STOP) goto game_logic::@128
|
|
to:game_logic::@133
|
|
game_logic::@133: scope:[game_logic] from game_logic::@127 game_logic::@169
|
|
[426] ghost1_substep = 0
|
|
[427] if(0!=ghost1_reverse) goto game_logic::@129
|
|
to:game_logic::@134
|
|
game_logic::@134: scope:[game_logic] from game_logic::@133
|
|
[428] game_logic::ghost1_xtile#0 = ghost1_xfine >> 1
|
|
[429] game_logic::ghost1_ytile#0 = ghost1_yfine >> 1
|
|
[430] level_tile_directions::xtile#3 = game_logic::ghost1_xtile#0
|
|
[431] level_tile_directions::ytile#3 = game_logic::ghost1_ytile#0
|
|
[432] call level_tile_directions
|
|
[433] level_tile_directions::return#12 = level_tile_directions::return#2
|
|
to:game_logic::@158
|
|
game_logic::@158: scope:[game_logic] from game_logic::@134
|
|
[434] game_logic::open_directions3#0 = level_tile_directions::return#12
|
|
[435] game_logic::open_directions3#1 = game_logic::open_directions3#0 & DIRECTION_ELIMINATE[ghost1_direction]
|
|
[436] if(ghosts_mode==FRIGHTENED) goto game_logic::@130
|
|
to:game_logic::@135
|
|
game_logic::@135: scope:[game_logic] from game_logic::@158
|
|
[437] if(ghosts_mode==SCATTER) goto game_logic::@131
|
|
to:game_logic::@136
|
|
game_logic::@136: scope:[game_logic] from game_logic::@135
|
|
[438] game_logic::target_xtile3#2 = pacman_xfine >> 1
|
|
[439] game_logic::target_ytile3#2 = pacman_yfine >> 1
|
|
to:game_logic::@131
|
|
game_logic::@131: scope:[game_logic] from game_logic::@135 game_logic::@136
|
|
[440] game_logic::target_ytile3#3 = phi( game_logic::@135/2, game_logic::@136/game_logic::target_ytile3#2 )
|
|
[440] game_logic::target_xtile3#3 = phi( game_logic::@135/2, game_logic::@136/game_logic::target_xtile3#2 )
|
|
[441] choose_direction::open_directions#3 = game_logic::open_directions3#1
|
|
[442] choose_direction::ghost_xtile#3 = game_logic::ghost1_xtile#0
|
|
[443] choose_direction::ghost_ytile#3 = game_logic::ghost1_ytile#0
|
|
[444] choose_direction::target_xtile#3 = game_logic::target_xtile3#3
|
|
[445] choose_direction::target_ytile#3 = game_logic::target_ytile3#3
|
|
[446] call choose_direction
|
|
[447] choose_direction::return#3 = choose_direction::return#10
|
|
to:game_logic::@159
|
|
game_logic::@159: scope:[game_logic] from game_logic::@131
|
|
[448] game_logic::$182 = choose_direction::return#3
|
|
[449] ghost1_direction = game_logic::$182
|
|
to:game_logic::@return
|
|
game_logic::@130: scope:[game_logic] from game_logic::@158
|
|
[450] ghost1_direction = DIRECTION_SINGLE[game_logic::open_directions3#1]
|
|
to:game_logic::@return
|
|
game_logic::@129: scope:[game_logic] from game_logic::@133
|
|
[451] ghost1_direction = DIRECTION_REVERSE[ghost1_direction]
|
|
[452] ghost1_reverse = 0
|
|
to:game_logic::@return
|
|
game_logic::@128: scope:[game_logic] from game_logic::@169
|
|
[453] ghost1_substep = 1
|
|
[454] if(ghost1_xfine==1) goto game_logic::@132
|
|
to:game_logic::@137
|
|
game_logic::@137: scope:[game_logic] from game_logic::@128
|
|
[455] if(ghost1_xfine!=$61) goto game_logic::@return
|
|
to:game_logic::@138
|
|
game_logic::@138: scope:[game_logic] from game_logic::@137
|
|
[456] ghost1_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@132: scope:[game_logic] from game_logic::@128
|
|
[457] ghost1_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@126: scope:[game_logic] from game_logic::@37
|
|
[458] ghost1_xfine = -- ghost1_xfine
|
|
to:game_logic::@127
|
|
game_logic::@125: scope:[game_logic] from game_logic::@36
|
|
[459] ghost1_yfine = ++ ghost1_yfine
|
|
to:game_logic::@127
|
|
game_logic::@124: scope:[game_logic] from game_logic::@35
|
|
[460] ghost1_xfine = ++ ghost1_xfine
|
|
to:game_logic::@127
|
|
game_logic::@123: scope:[game_logic] from game_logic::@3
|
|
[461] ghost1_respawn = -- ghost1_respawn
|
|
[462] if(ghost1_respawn!=0) goto game_logic::@return
|
|
to:game_logic::@139
|
|
game_logic::@139: scope:[game_logic] from game_logic::@123
|
|
[463] ghost1_direction = DOWN
|
|
[464] ghost1_xfine = $60
|
|
[465] ghost1_yfine = 2
|
|
[466] ghost1_substep = 0
|
|
to:game_logic::@return
|
|
game_logic::@2: scope:[game_logic] from game_logic::@1
|
|
[467] if(pacman_direction==RIGHT) goto game_logic::@140
|
|
to:game_logic::@40
|
|
game_logic::@40: scope:[game_logic] from game_logic::@2
|
|
[468] if(pacman_direction==DOWN) goto game_logic::@141
|
|
to:game_logic::@41
|
|
game_logic::@41: scope:[game_logic] from game_logic::@40
|
|
[469] if(pacman_direction==LEFT) goto game_logic::@142
|
|
to:game_logic::@42
|
|
game_logic::@42: scope:[game_logic] from game_logic::@41
|
|
[470] if(pacman_direction!=UP) goto game_logic::@143
|
|
to:game_logic::@43
|
|
game_logic::@43: scope:[game_logic] from game_logic::@42
|
|
[471] pacman_yfine = -- pacman_yfine
|
|
to:game_logic::@143
|
|
game_logic::@143: scope:[game_logic] from game_logic::@140 game_logic::@141 game_logic::@142 game_logic::@42 game_logic::@43
|
|
[472] game_logic::$232 = pacman_direction
|
|
[473] if(pacman_substep!=0) goto game_logic::@147
|
|
to:game_logic::@170
|
|
game_logic::@170: scope:[game_logic] from game_logic::@143
|
|
[474] if(game_logic::$232!=STOP) goto game_logic::@144
|
|
to:game_logic::@147
|
|
game_logic::@147: scope:[game_logic] from game_logic::@143 game_logic::@170
|
|
[475] pacman_substep = 0
|
|
[476] game_logic::pacman_xtile1#0 = pacman_xfine >> 1
|
|
[477] game_logic::pacman_ytile1#0 = pacman_yfine >> 1
|
|
[478] level_tile_directions::xtile#4 = game_logic::pacman_xtile1#0
|
|
[479] level_tile_directions::ytile#4 = game_logic::pacman_ytile1#0
|
|
[480] call level_tile_directions
|
|
[481] level_tile_directions::return#13 = level_tile_directions::return#2
|
|
to:game_logic::@160
|
|
game_logic::@160: scope:[game_logic] from game_logic::@147
|
|
[482] game_logic::open_directions4#0 = level_tile_directions::return#13
|
|
[483] game_logic::$199 = *((char *)CIA1) & $f
|
|
[484] game_logic::$200 = game_logic::$199 ^ $f
|
|
[485] game_logic::joy_directions#0 = game_logic::$200 << 2
|
|
[486] if(game_logic::joy_directions#0==0) goto game_logic::@145
|
|
to:game_logic::@148
|
|
game_logic::@148: scope:[game_logic] from game_logic::@160
|
|
[487] game_logic::$204 = game_logic::joy_directions#0 & game_logic::open_directions4#0
|
|
[488] game_logic::new_direction#0 = DIRECTION_SINGLE[game_logic::$204]
|
|
[489] if(game_logic::new_direction#0==0) goto game_logic::@145
|
|
to:game_logic::@149
|
|
game_logic::@149: scope:[game_logic] from game_logic::@148
|
|
[490] pacman_direction = game_logic::new_direction#0
|
|
to:game_logic::@145
|
|
game_logic::@145: scope:[game_logic] from game_logic::@148 game_logic::@149 game_logic::@160
|
|
[491] pacman_direction = pacman_direction & game_logic::open_directions4#0
|
|
to:game_logic::@return
|
|
game_logic::@144: scope:[game_logic] from game_logic::@170
|
|
[492] pacman_substep = 1
|
|
[493] pacman_ch1_enabled = 1
|
|
[494] if(pacman_xfine==1) goto game_logic::@146
|
|
to:game_logic::@150
|
|
game_logic::@150: scope:[game_logic] from game_logic::@144
|
|
[495] if(pacman_xfine!=$61) goto game_logic::@return
|
|
to:game_logic::@151
|
|
game_logic::@151: scope:[game_logic] from game_logic::@150
|
|
[496] pacman_xfine = 1
|
|
to:game_logic::@return
|
|
game_logic::@146: scope:[game_logic] from game_logic::@144
|
|
[497] pacman_xfine = $61
|
|
to:game_logic::@return
|
|
game_logic::@142: scope:[game_logic] from game_logic::@41
|
|
[498] pacman_xfine = -- pacman_xfine
|
|
to:game_logic::@143
|
|
game_logic::@141: scope:[game_logic] from game_logic::@40
|
|
[499] pacman_yfine = ++ pacman_yfine
|
|
to:game_logic::@143
|
|
game_logic::@140: scope:[game_logic] from game_logic::@2
|
|
[500] pacman_xfine = ++ pacman_xfine
|
|
to:game_logic::@143
|
|
|
|
void pacman_sound_play()
|
|
pacman_sound_play: scope:[pacman_sound_play] from irq_screen_top::@8
|
|
[501] if(0==pacman_ch1_enabled) goto pacman_sound_play::@return
|
|
to:pacman_sound_play::@1
|
|
pacman_sound_play::@1: scope:[pacman_sound_play] from pacman_sound_play
|
|
[502] *SID_CH1_FREQ_HI = PACMAN_CH1_FREQ_HI[pacman_ch1_idx]
|
|
[503] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = PACMAN_CH1_CONTROL[pacman_ch1_idx]
|
|
[504] pacman_ch1_idx = ++ pacman_ch1_idx
|
|
[505] if(pacman_ch1_idx!=$16*SIZEOF_CHAR) goto pacman_sound_play::@return
|
|
to:pacman_sound_play::@2
|
|
pacman_sound_play::@2: scope:[pacman_sound_play] from pacman_sound_play::@1
|
|
[506] pacman_ch1_idx = 0
|
|
[507] pacman_ch1_enabled = 0
|
|
to:pacman_sound_play::@return
|
|
pacman_sound_play::@return: scope:[pacman_sound_play] from pacman_sound_play pacman_sound_play::@1 pacman_sound_play::@2
|
|
[508] return
|
|
to:@return
|
|
|
|
void splash_run()
|
|
splash_run: scope:[splash_run] from main
|
|
[509] phi()
|
|
to:splash_run::SEI1
|
|
splash_run::SEI1: scope:[splash_run] from splash_run
|
|
asm { sei }
|
|
to:splash_run::@18
|
|
splash_run::@18: scope:[splash_run] from splash_run::SEI1
|
|
[511] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR
|
|
[512] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
[513] *PROCPORT = PROCPORT_RAM_ALL
|
|
[514] call memset
|
|
to:splash_run::@22
|
|
splash_run::@22: scope:[splash_run] from splash_run::@18
|
|
[515] byteboozer_decrunch::crunched = RASTER_CODE_CRUNCHED
|
|
[516] call byteboozer_decrunch
|
|
to:splash_run::@23
|
|
splash_run::@23: scope:[splash_run] from splash_run::@22
|
|
[517] byteboozer_decrunch::crunched = LOGIC_CODE_CRUNCHED
|
|
[518] call byteboozer_decrunch
|
|
to:splash_run::@24
|
|
splash_run::@24: scope:[splash_run] from splash_run::@23
|
|
[519] phi()
|
|
[520] call merge_code
|
|
to:splash_run::@25
|
|
splash_run::@25: scope:[splash_run] from splash_run::@24
|
|
[521] phi()
|
|
[522] call memset
|
|
to:splash_run::@26
|
|
splash_run::@26: scope:[splash_run] from splash_run::@25
|
|
[523] phi()
|
|
[524] call memset
|
|
to:splash_run::@27
|
|
splash_run::@27: scope:[splash_run] from splash_run::@26
|
|
[525] phi()
|
|
[526] call init_render_index
|
|
to:splash_run::@28
|
|
splash_run::@28: scope:[splash_run] from splash_run::@27
|
|
[527] byteboozer_decrunch::crunched = SPLASH_CRUNCHED
|
|
[528] call byteboozer_decrunch
|
|
to:splash_run::@29
|
|
splash_run::@29: scope:[splash_run] from splash_run::@28
|
|
[529] phi()
|
|
[530] call splash_show
|
|
to:splash_run::@30
|
|
splash_run::@30: scope:[splash_run] from splash_run::@29
|
|
[531] phi()
|
|
[532] call memset
|
|
to:splash_run::@31
|
|
splash_run::@31: scope:[splash_run] from splash_run::@30
|
|
[533] phi()
|
|
[534] call init_bobs_restore
|
|
to:splash_run::@32
|
|
splash_run::@32: scope:[splash_run] from splash_run::@31
|
|
[535] byteboozer_decrunch::crunched = BOB_GRAPHICS_CRUNCHED
|
|
[536] call byteboozer_decrunch
|
|
to:splash_run::@33
|
|
splash_run::@33: scope:[splash_run] from splash_run::@32
|
|
[537] phi()
|
|
[538] call init_sprite_pointers
|
|
to:splash_run::@34
|
|
splash_run::@34: scope:[splash_run] from splash_run::@33
|
|
[539] phi()
|
|
[540] call memcpy
|
|
to:splash_run::@35
|
|
splash_run::@35: scope:[splash_run] from splash_run::@34
|
|
[541] byteboozer_decrunch::crunched = INTRO_MUSIC_CRUNCHED_UPPER
|
|
[542] call byteboozer_decrunch
|
|
to:splash_run::@36
|
|
splash_run::@36: scope:[splash_run] from splash_run::@35
|
|
[543] phi()
|
|
[544] call memset
|
|
to:splash_run::@37
|
|
splash_run::@37: scope:[splash_run] from splash_run::@36
|
|
[545] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
[546] *PROCPORT = PROCPORT_RAM_IO
|
|
to:splash_run::@2
|
|
splash_run::@2: scope:[splash_run] from splash_run::@37 splash_run::@4
|
|
[547] splash_run::msb#10 = phi( splash_run::@37/0, splash_run::@4/splash_run::msb#8 )
|
|
[547] splash_run::i#2 = phi( splash_run::@37/0, splash_run::@4/splash_run::i#1 )
|
|
[548] if(splash_run::i#2<8) goto splash_run::@3
|
|
to:splash_run::toDd001
|
|
splash_run::toDd001: scope:[splash_run] from splash_run::@2
|
|
[549] phi()
|
|
to:splash_run::@19
|
|
splash_run::@19: scope:[splash_run] from splash_run::toDd001
|
|
[550] *((char *)CIA2) = splash_run::toDd001_return#0
|
|
[551] canvas_base_hi = byte1 SPRITES_2
|
|
[552] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE
|
|
to:splash_run::toD0181
|
|
splash_run::toD0181: scope:[splash_run] from splash_run::@19
|
|
[553] phi()
|
|
to:splash_run::@20
|
|
splash_run::@20: scope:[splash_run] from splash_run::toD0181
|
|
[554] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = splash_run::toD0181_return#0
|
|
[555] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB) = splash_run::msb#10
|
|
[556] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff
|
|
[557] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = $ff
|
|
[558] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK
|
|
[559] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK
|
|
[560] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE
|
|
[561] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED
|
|
[562] top_sprites_mc = 3
|
|
[563] side_sprites_mc = 0
|
|
[564] bottom_sprites_mc = 3
|
|
[565] top_sprites_color = YELLOW
|
|
[566] side_sprites_color = BLUE
|
|
[567] bottom_sprites_color = YELLOW
|
|
[568] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc
|
|
to:splash_run::@6
|
|
splash_run::@6: scope:[splash_run] from splash_run::@20 splash_run::@7
|
|
[569] splash_run::i1#2 = phi( splash_run::@20/0, splash_run::@7/splash_run::i1#1 )
|
|
[570] if(splash_run::i1#2<8) goto splash_run::@7
|
|
to:splash_run::@8
|
|
splash_run::@8: scope:[splash_run] from splash_run::@6
|
|
[571] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 8
|
|
to:splash_run::@9
|
|
splash_run::@9: scope:[splash_run] from splash_run::@10 splash_run::@8
|
|
[572] splash_run::i2#2 = phi( splash_run::@10/splash_run::i2#1, splash_run::@8/0 )
|
|
[573] if(splash_run::i2#2<4) goto splash_run::@10
|
|
to:splash_run::@11
|
|
splash_run::@11: scope:[splash_run] from splash_run::@9
|
|
asm { lda#1 staINTRO_MUSIC+$69 }
|
|
asm { lda#0 }
|
|
[576] callexecute *musicInit
|
|
to:splash_run::@1
|
|
splash_run::@1: scope:[splash_run] from splash_run::@11
|
|
[577] phase = 0
|
|
[578] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
to:splash_run::@12
|
|
splash_run::@12: scope:[splash_run] from splash_run::@1 splash_run::@12
|
|
[579] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto splash_run::@12
|
|
to:splash_run::@13
|
|
splash_run::@13: scope:[splash_run] from splash_run::@12
|
|
[580] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN
|
|
[581] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE
|
|
[582] *HARDWARE_IRQ = &irq_screen_top
|
|
[583] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER
|
|
asm { ldaCIA1_INTERRUPT }
|
|
[585] *IRQ_STATUS = $f
|
|
to:splash_run::CLI1
|
|
splash_run::CLI1: scope:[splash_run] from splash_run::@13
|
|
asm { cli }
|
|
to:splash_run::@21
|
|
splash_run::@21: scope:[splash_run] from splash_run::CLI1
|
|
[587] phi()
|
|
[588] call joyinit
|
|
to:splash_run::@38
|
|
splash_run::@38: scope:[splash_run] from splash_run::@21
|
|
[589] music_play_next = 0
|
|
to:splash_run::@14
|
|
splash_run::@14: scope:[splash_run] from splash_run::@15 splash_run::@16 splash_run::@38
|
|
[590] phi()
|
|
[591] call joyfire
|
|
[592] joyfire::return#1 = joyfire::return#4
|
|
to:splash_run::@39
|
|
splash_run::@39: scope:[splash_run] from splash_run::@14
|
|
[593] splash_run::$30 = joyfire::return#1
|
|
[594] if(0==splash_run::$30) goto splash_run::@15
|
|
to:splash_run::@return
|
|
splash_run::@return: scope:[splash_run] from splash_run::@39
|
|
[595] return
|
|
to:@return
|
|
splash_run::@15: scope:[splash_run] from splash_run::@39
|
|
[596] if(0==music_play_next) goto splash_run::@14
|
|
to:splash_run::@17
|
|
splash_run::@17: scope:[splash_run] from splash_run::@15
|
|
[597] phi()
|
|
[598] callexecute *musicPlay
|
|
to:splash_run::@16
|
|
splash_run::@16: scope:[splash_run] from splash_run::@17
|
|
[599] music_play_next = 0
|
|
to:splash_run::@14
|
|
splash_run::@10: scope:[splash_run] from splash_run::@9
|
|
[600] bobs_xcol[splash_run::i2#2] = $a
|
|
[601] bobs_yfine[splash_run::i2#2] = $2d
|
|
[602] bobs_bob_id[splash_run::i2#2] = 0
|
|
[603] splash_run::i2#1 = ++ splash_run::i2#2
|
|
to:splash_run::@9
|
|
splash_run::@7: scope:[splash_run] from splash_run::@6
|
|
[604] SPRITES_COLOR[splash_run::i1#2] = top_sprites_color
|
|
[605] splash_run::i1#1 = ++ splash_run::i1#2
|
|
to:splash_run::@6
|
|
splash_run::@3: scope:[splash_run] from splash_run::@2
|
|
[606] splash_run::$34 = splash_run::i#2 << 1
|
|
[607] SPRITES_YPOS[splash_run::$34] = 7
|
|
[608] splash_run::xpos#0 = splash_run::sprites_xpos[splash_run::$34]
|
|
[609] SPRITES_XPOS[splash_run::$34] = (char)splash_run::xpos#0
|
|
[610] splash_run::msb#1 = splash_run::msb#10 >> 1
|
|
[611] splash_run::$25 = byte1 splash_run::xpos#0
|
|
[612] if(0==splash_run::$25) goto splash_run::@4
|
|
to:splash_run::@5
|
|
splash_run::@5: scope:[splash_run] from splash_run::@3
|
|
[613] splash_run::msb#2 = splash_run::msb#1 | $80
|
|
to:splash_run::@4
|
|
splash_run::@4: scope:[splash_run] from splash_run::@3 splash_run::@5
|
|
[614] splash_run::msb#8 = phi( splash_run::@3/splash_run::msb#1, splash_run::@5/splash_run::msb#2 )
|
|
[615] splash_run::i#1 = ++ splash_run::i#2
|
|
to:splash_run::@2
|
|
|
|
void gameplay_run()
|
|
gameplay_run: scope:[gameplay_run] from main::@1
|
|
[616] phi()
|
|
to:gameplay_run::SEI1
|
|
gameplay_run::SEI1: scope:[gameplay_run] from gameplay_run
|
|
asm { sei }
|
|
to:gameplay_run::@1
|
|
gameplay_run::@1: scope:[gameplay_run] from gameplay_run::@2 gameplay_run::SEI1
|
|
[618] gameplay_run::i#2 = phi( gameplay_run::SEI1/0, gameplay_run::@2/gameplay_run::i#1 )
|
|
[619] if(gameplay_run::i#2<$2f) goto gameplay_run::@2
|
|
to:gameplay_run::@3
|
|
gameplay_run::@3: scope:[gameplay_run] from gameplay_run::@1
|
|
[620] pacman_wins = 0
|
|
[621] pacman_lives = 3
|
|
[622] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLACK
|
|
[623] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = BLACK
|
|
to:gameplay_run::@4
|
|
gameplay_run::@4: scope:[gameplay_run] from gameplay_run::@3 gameplay_run::@5
|
|
[624] gameplay_run::i1#2 = phi( gameplay_run::@3/0, gameplay_run::@5/gameplay_run::i1#1 )
|
|
[625] if(gameplay_run::i1#2<8) goto gameplay_run::@5
|
|
to:gameplay_run::@6
|
|
gameplay_run::@6: scope:[gameplay_run] from gameplay_run::@4
|
|
[626] byteboozer_decrunch::crunched = LEVEL_TILES_CRUNCHED
|
|
[627] call byteboozer_decrunch
|
|
to:gameplay_run::@14
|
|
gameplay_run::@14: scope:[gameplay_run] from gameplay_run::@6
|
|
[628] phi()
|
|
[629] call init_level_tile_directions
|
|
to:gameplay_run::@15
|
|
gameplay_run::@15: scope:[gameplay_run] from gameplay_run::@14
|
|
[630] phi()
|
|
[631] call init_sprite_pointers
|
|
to:gameplay_run::@16
|
|
gameplay_run::@16: scope:[gameplay_run] from gameplay_run::@15
|
|
[632] phi()
|
|
[633] call level_show
|
|
[634] level_show::return#0 = level_show::count#12
|
|
to:gameplay_run::@17
|
|
gameplay_run::@17: scope:[gameplay_run] from gameplay_run::@16
|
|
[635] gameplay_run::$4 = level_show::return#0
|
|
[636] pill_count = gameplay_run::$4
|
|
[637] top_sprites_mc = $ff
|
|
[638] side_sprites_mc = $ff
|
|
[639] bottom_sprites_mc = $ff
|
|
[640] top_sprites_color = YELLOW
|
|
[641] side_sprites_color = YELLOW
|
|
[642] bottom_sprites_color = YELLOW
|
|
[643] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc
|
|
to:gameplay_run::@7
|
|
gameplay_run::@7: scope:[gameplay_run] from gameplay_run::@17 gameplay_run::@8
|
|
[644] gameplay_run::i2#2 = phi( gameplay_run::@17/0, gameplay_run::@8/gameplay_run::i2#1 )
|
|
[645] if(gameplay_run::i2#2<8) goto gameplay_run::@8
|
|
to:gameplay_run::@9
|
|
gameplay_run::@9: scope:[gameplay_run] from gameplay_run::@7
|
|
[646] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE
|
|
[647] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED
|
|
[648] phase = 1
|
|
[649] call spawn_all
|
|
to:gameplay_run::@18
|
|
gameplay_run::@18: scope:[gameplay_run] from gameplay_run::@9
|
|
[650] phi()
|
|
[651] call pacman_sound_init
|
|
to:gameplay_run::@19
|
|
gameplay_run::@19: scope:[gameplay_run] from gameplay_run::@18
|
|
[652] game_playable = 1
|
|
[653] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
to:gameplay_run::@10
|
|
gameplay_run::@10: scope:[gameplay_run] from gameplay_run::@10 gameplay_run::@19
|
|
[654] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fb) goto gameplay_run::@10
|
|
to:gameplay_run::@11
|
|
gameplay_run::@11: scope:[gameplay_run] from gameplay_run::@10 gameplay_run::@11
|
|
[655] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto gameplay_run::@11
|
|
to:gameplay_run::@12
|
|
gameplay_run::@12: scope:[gameplay_run] from gameplay_run::@11
|
|
[656] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN
|
|
[657] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE
|
|
[658] *HARDWARE_IRQ = &irq_screen_top
|
|
[659] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER
|
|
asm { ldaCIA1_INTERRUPT }
|
|
[661] *IRQ_STATUS = $f
|
|
to:gameplay_run::CLI1
|
|
gameplay_run::CLI1: scope:[gameplay_run] from gameplay_run::@12
|
|
asm { cli }
|
|
to:gameplay_run::@13
|
|
gameplay_run::@13: scope:[gameplay_run] from gameplay_run::@20 gameplay_run::CLI1
|
|
[663] if(0!=pacman_wins) goto gameplay_run::@return
|
|
to:gameplay_run::@20
|
|
gameplay_run::@20: scope:[gameplay_run] from gameplay_run::@13
|
|
[664] if(pacman_lives==0) goto gameplay_run::@return
|
|
to:gameplay_run::@13
|
|
gameplay_run::@return: scope:[gameplay_run] from gameplay_run::@13 gameplay_run::@20
|
|
[665] return
|
|
to:@return
|
|
gameplay_run::@8: scope:[gameplay_run] from gameplay_run::@7
|
|
[666] SPRITES_COLOR[gameplay_run::i2#2] = top_sprites_color
|
|
[667] gameplay_run::i2#1 = ++ gameplay_run::i2#2
|
|
to:gameplay_run::@7
|
|
gameplay_run::@5: scope:[gameplay_run] from gameplay_run::@4
|
|
[668] SPRITES_COLOR[gameplay_run::i1#2] = BLACK
|
|
[669] gameplay_run::i1#1 = ++ gameplay_run::i1#2
|
|
to:gameplay_run::@4
|
|
gameplay_run::@2: scope:[gameplay_run] from gameplay_run::@1
|
|
[670] ((char *)SID)[gameplay_run::i#2] = 0
|
|
[671] gameplay_run::i#1 = ++ gameplay_run::i#2
|
|
to:gameplay_run::@1
|
|
|
|
void done_run()
|
|
done_run: scope:[done_run] from main::@2
|
|
[672] game_playable = 0
|
|
[673] phase = 0
|
|
to:done_run::@4
|
|
done_run::@4: scope:[done_run] from done_run done_run::@5
|
|
[674] done_run::i#2 = phi( done_run/0, done_run::@5/done_run::i#1 )
|
|
[675] if(done_run::i#2<$2f) goto done_run::@5
|
|
to:done_run::@6
|
|
done_run::@6: scope:[done_run] from done_run::@4 done_run::@7
|
|
[676] done_run::i1#2 = phi( done_run::@4/0, done_run::@7/done_run::i1#1 )
|
|
[677] if(done_run::i1#2<4) goto done_run::@7
|
|
to:done_run::@8
|
|
done_run::@8: scope:[done_run] from done_run::@6
|
|
asm { lda#0 }
|
|
[679] callexecute *musicInit
|
|
to:done_run::@1
|
|
done_run::@1: scope:[done_run] from done_run::@8
|
|
[680] if(0!=pacman_wins) goto done_run::@2
|
|
to:done_run::@3
|
|
done_run::@3: scope:[done_run] from done_run::@1
|
|
[681] byteboozer_decrunch::crunched = GAMEOVER_GFX_CRUNCHED
|
|
[682] call byteboozer_decrunch
|
|
to:done_run::@9
|
|
done_run::@9: scope:[done_run] from done_run::@13 done_run::@2 done_run::@3
|
|
[683] done_run::gfx#4 = phi( done_run::@13/done_run::gfx#2, done_run::@2/WIN_GFX, done_run::@3/WIN_GFX )
|
|
[683] done_run::xcol#2 = phi( done_run::@13/done_run::xcol#1, done_run::@2/0, done_run::@3/0 )
|
|
[684] if(done_run::xcol#2<$19) goto done_run::@11
|
|
to:done_run::@10
|
|
done_run::@10: scope:[done_run] from done_run::@9
|
|
[685] music_play_next = 0
|
|
to:done_run::@14
|
|
done_run::@14: scope:[done_run] from done_run::@10 done_run::@15 done_run::@16
|
|
[686] phi()
|
|
[687] call joyfire
|
|
[688] joyfire::return#0 = joyfire::return#4
|
|
to:done_run::@19
|
|
done_run::@19: scope:[done_run] from done_run::@14
|
|
[689] done_run::$8 = joyfire::return#0
|
|
[690] if(0==done_run::$8) goto done_run::@15
|
|
to:done_run::@return
|
|
done_run::@return: scope:[done_run] from done_run::@19
|
|
[691] return
|
|
to:@return
|
|
done_run::@15: scope:[done_run] from done_run::@19
|
|
[692] if(0==music_play_next) goto done_run::@14
|
|
to:done_run::@17
|
|
done_run::@17: scope:[done_run] from done_run::@15
|
|
[693] phi()
|
|
[694] callexecute *musicPlay
|
|
to:done_run::@16
|
|
done_run::@16: scope:[done_run] from done_run::@17
|
|
[695] music_play_next = 0
|
|
to:done_run::@14
|
|
done_run::@11: scope:[done_run] from done_run::@18 done_run::@9
|
|
[696] done_run::gfx#2 = phi( done_run::@9/done_run::gfx#4, done_run::@18/done_run::gfx#1 )
|
|
[696] done_run::ypos#2 = phi( done_run::@9/0, done_run::@18/done_run::ypos#1 )
|
|
[697] if(done_run::ypos#2<$19) goto done_run::@12
|
|
to:done_run::@13
|
|
done_run::@13: scope:[done_run] from done_run::@11
|
|
[698] done_run::xcol#1 = ++ done_run::xcol#2
|
|
to:done_run::@9
|
|
done_run::@12: scope:[done_run] from done_run::@11
|
|
[699] done_run::pixels#0 = *done_run::gfx#2
|
|
[700] done_run::gfx#1 = ++ done_run::gfx#2
|
|
[701] render::xcol#0 = done_run::xcol#2
|
|
[702] render::ypos#0 = done_run::ypos#2
|
|
[703] render::pixels#0 = done_run::pixels#0
|
|
[704] call render
|
|
to:done_run::@18
|
|
done_run::@18: scope:[done_run] from done_run::@12
|
|
[705] done_run::ypos#1 = ++ done_run::ypos#2
|
|
to:done_run::@11
|
|
done_run::@2: scope:[done_run] from done_run::@1
|
|
[706] byteboozer_decrunch::crunched = WIN_GFX_CRUNCHED
|
|
[707] call byteboozer_decrunch
|
|
to:done_run::@9
|
|
done_run::@7: scope:[done_run] from done_run::@6
|
|
[708] bobs_xcol[done_run::i1#2] = $a
|
|
[709] bobs_yfine[done_run::i1#2] = $2d
|
|
[710] bobs_bob_id[done_run::i1#2] = 0
|
|
[711] done_run::i1#1 = ++ done_run::i1#2
|
|
to:done_run::@6
|
|
done_run::@5: scope:[done_run] from done_run::@4
|
|
[712] ((char *)SID)[done_run::i#2] = 0
|
|
[713] done_run::i#1 = ++ done_run::i#2
|
|
to:done_run::@4
|
|
|
|
void spawn_all()
|
|
spawn_all: scope:[spawn_all] from game_logic::@68 game_logic::@69 game_logic::@70 game_logic::@71 gameplay_run::@9
|
|
[714] ghosts_mode_count = 0
|
|
[715] pacman_substep = 0
|
|
[716] ghost1_substep = 0
|
|
[717] ghost2_substep = 0
|
|
[718] ghost3_substep = 0
|
|
[719] ghost4_substep = 0
|
|
[720] pacman_direction = STOP
|
|
[721] ghost1_direction = STOP
|
|
[722] ghost2_direction = STOP
|
|
[723] ghost3_direction = STOP
|
|
[724] ghost4_direction = STOP
|
|
[725] pacman_xfine = $32
|
|
[726] ghost1_xfine = $32
|
|
[727] ghost2_xfine = $32
|
|
[728] ghost3_xfine = $32
|
|
[729] ghost4_xfine = $32
|
|
[730] ghost1_yfine = $23
|
|
[731] ghost2_yfine = $23
|
|
[732] ghost3_yfine = $23
|
|
[733] ghost4_yfine = $23
|
|
[734] pacman_yfine = $3e
|
|
[735] ghost1_respawn = $a
|
|
[736] ghost2_respawn = $14
|
|
[737] ghost3_respawn = $1e
|
|
[738] ghost4_respawn = $28
|
|
to:spawn_all::@return
|
|
spawn_all::@return: scope:[spawn_all] from spawn_all
|
|
[739] return
|
|
to:@return
|
|
|
|
char level_tile_directions(char xtile , char ytile)
|
|
level_tile_directions: scope:[level_tile_directions] from game_logic::@100 game_logic::@117 game_logic::@134 game_logic::@147 game_logic::@83
|
|
[740] level_tile_directions::ytile#5 = phi( game_logic::@100/level_tile_directions::ytile#1, game_logic::@117/level_tile_directions::ytile#2, game_logic::@134/level_tile_directions::ytile#3, game_logic::@147/level_tile_directions::ytile#4, game_logic::@83/level_tile_directions::ytile#0 )
|
|
[740] level_tile_directions::xtile#5 = phi( game_logic::@100/level_tile_directions::xtile#1, game_logic::@117/level_tile_directions::xtile#2, game_logic::@134/level_tile_directions::xtile#3, game_logic::@147/level_tile_directions::xtile#4, game_logic::@83/level_tile_directions::xtile#0 )
|
|
[741] if(level_tile_directions::xtile#5>=$31+1) goto level_tile_directions::@return
|
|
to:level_tile_directions::@2
|
|
level_tile_directions::@2: scope:[level_tile_directions] from level_tile_directions
|
|
[742] if(level_tile_directions::ytile#5>=$24+1) goto level_tile_directions::@return
|
|
to:level_tile_directions::@1
|
|
level_tile_directions::@1: scope:[level_tile_directions] from level_tile_directions::@2
|
|
[743] level_tile_directions::$5 = level_tile_directions::ytile#5 << 1
|
|
[744] level_tile_directions::ytiles#0 = LEVEL_TILES_DIRECTIONS + LEVEL_YTILE_OFFSET[level_tile_directions::$5]
|
|
[745] level_tile_directions::return#0 = level_tile_directions::ytiles#0[level_tile_directions::xtile#5]
|
|
to:level_tile_directions::@return
|
|
level_tile_directions::@return: scope:[level_tile_directions] from level_tile_directions level_tile_directions::@1 level_tile_directions::@2
|
|
[746] level_tile_directions::return#2 = phi( level_tile_directions::@1/level_tile_directions::return#0, level_tile_directions/0, level_tile_directions::@2/0 )
|
|
[747] return
|
|
to:@return
|
|
|
|
char choose_direction(char open_directions , char ghost_xtile , char ghost_ytile , char target_xtile , char target_ytile)
|
|
choose_direction: scope:[choose_direction] from game_logic::@114 game_logic::@131 game_logic::@80 game_logic::@97
|
|
[748] choose_direction::open_directions#10 = phi( game_logic::@114/choose_direction::open_directions#2, game_logic::@131/choose_direction::open_directions#3, game_logic::@80/choose_direction::open_directions#0, game_logic::@97/choose_direction::open_directions#1 )
|
|
[748] choose_direction::target_ytile#4 = phi( game_logic::@114/choose_direction::target_ytile#2, game_logic::@131/choose_direction::target_ytile#3, game_logic::@80/choose_direction::target_ytile#0, game_logic::@97/choose_direction::target_ytile#1 )
|
|
[748] choose_direction::ghost_ytile#4 = phi( game_logic::@114/choose_direction::ghost_ytile#2, game_logic::@131/choose_direction::ghost_ytile#3, game_logic::@80/choose_direction::ghost_ytile#0, game_logic::@97/choose_direction::ghost_ytile#1 )
|
|
[748] choose_direction::target_xtile#4 = phi( game_logic::@114/choose_direction::target_xtile#2, game_logic::@131/choose_direction::target_xtile#3, game_logic::@80/choose_direction::target_xtile#0, game_logic::@97/choose_direction::target_xtile#1 )
|
|
[748] choose_direction::ghost_xtile#4 = phi( game_logic::@114/choose_direction::ghost_xtile#2, game_logic::@131/choose_direction::ghost_xtile#3, game_logic::@80/choose_direction::ghost_xtile#0, game_logic::@97/choose_direction::ghost_xtile#1 )
|
|
[749] choose_direction::xdiff#0 = choose_direction::ghost_xtile#4 - choose_direction::target_xtile#4
|
|
[750] choose_direction::ydiff#0 = choose_direction::ghost_ytile#4 - choose_direction::target_ytile#4
|
|
[751] choose_direction::$2 = choose_direction::open_directions#10 & UP
|
|
[752] if(0==choose_direction::$2) goto choose_direction::@1
|
|
to:choose_direction::@5
|
|
choose_direction::@5: scope:[choose_direction] from choose_direction
|
|
[753] choose_direction::dist_up#0 = ABS[choose_direction::xdiff#0] + (ABS+-1)[choose_direction::ydiff#0]
|
|
[754] if(choose_direction::dist_up#0>=$ff) goto choose_direction::@1
|
|
to:choose_direction::@6
|
|
choose_direction::@6: scope:[choose_direction] from choose_direction::@5
|
|
[755] phi()
|
|
to:choose_direction::@1
|
|
choose_direction::@1: scope:[choose_direction] from choose_direction choose_direction::@5 choose_direction::@6
|
|
[756] choose_direction::direction#10 = phi( choose_direction/STOP, choose_direction::@5/STOP, choose_direction::@6/UP )
|
|
[756] choose_direction::dist_min#6 = phi( choose_direction/$ff, choose_direction::@5/$ff, choose_direction::@6/choose_direction::dist_up#0 )
|
|
[757] choose_direction::$4 = choose_direction::open_directions#10 & DOWN
|
|
[758] if(0==choose_direction::$4) goto choose_direction::@10
|
|
to:choose_direction::@7
|
|
choose_direction::@7: scope:[choose_direction] from choose_direction::@1
|
|
[759] choose_direction::dist_down#0 = ABS[choose_direction::xdiff#0] + (ABS+1)[choose_direction::ydiff#0]
|
|
[760] if(choose_direction::dist_down#0>=choose_direction::dist_min#6) goto choose_direction::@11
|
|
to:choose_direction::@2
|
|
choose_direction::@11: scope:[choose_direction] from choose_direction::@7
|
|
[761] choose_direction::dist_min#14 = choose_direction::dist_min#6
|
|
to:choose_direction::@2
|
|
choose_direction::@2: scope:[choose_direction] from choose_direction::@10 choose_direction::@11 choose_direction::@7
|
|
[762] choose_direction::direction#8 = phi( choose_direction::@10/choose_direction::direction#10, choose_direction::@11/choose_direction::direction#10, choose_direction::@7/DOWN )
|
|
[762] choose_direction::dist_min#10 = phi( choose_direction::@10/choose_direction::dist_min#13, choose_direction::@11/choose_direction::dist_min#14, choose_direction::@7/choose_direction::dist_down#0 )
|
|
[763] choose_direction::$6 = choose_direction::open_directions#10 & LEFT
|
|
[764] if(0==choose_direction::$6) goto choose_direction::@12
|
|
to:choose_direction::@8
|
|
choose_direction::@8: scope:[choose_direction] from choose_direction::@2
|
|
[765] choose_direction::dist_left#0 = (ABS+-1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0]
|
|
[766] if(choose_direction::dist_left#0>=choose_direction::dist_min#10) goto choose_direction::@13
|
|
to:choose_direction::@3
|
|
choose_direction::@13: scope:[choose_direction] from choose_direction::@8
|
|
[767] choose_direction::dist_min#18 = choose_direction::dist_min#10
|
|
to:choose_direction::@3
|
|
choose_direction::@3: scope:[choose_direction] from choose_direction::@12 choose_direction::@13 choose_direction::@8
|
|
[768] choose_direction::dist_min#11 = phi( choose_direction::@8/choose_direction::dist_left#0, choose_direction::@12/choose_direction::dist_min#17, choose_direction::@13/choose_direction::dist_min#18 )
|
|
[768] choose_direction::direction#6 = phi( choose_direction::@8/LEFT, choose_direction::@12/choose_direction::direction#8, choose_direction::@13/choose_direction::direction#8 )
|
|
[769] choose_direction::$8 = choose_direction::open_directions#10 & RIGHT
|
|
[770] if(0==choose_direction::$8) goto choose_direction::@4
|
|
to:choose_direction::@9
|
|
choose_direction::@9: scope:[choose_direction] from choose_direction::@3
|
|
[771] choose_direction::dist_right#0 = (ABS+1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0]
|
|
[772] if(choose_direction::dist_right#0>=choose_direction::dist_min#11) goto choose_direction::@14
|
|
to:choose_direction::@4
|
|
choose_direction::@14: scope:[choose_direction] from choose_direction::@9
|
|
[773] phi()
|
|
to:choose_direction::@4
|
|
choose_direction::@4: scope:[choose_direction] from choose_direction::@14 choose_direction::@3 choose_direction::@9
|
|
[774] choose_direction::return#10 = phi( choose_direction::@14/choose_direction::direction#6, choose_direction::@9/RIGHT, choose_direction::@3/choose_direction::direction#6 )
|
|
to:choose_direction::@return
|
|
choose_direction::@return: scope:[choose_direction] from choose_direction::@4
|
|
[775] return
|
|
to:@return
|
|
choose_direction::@12: scope:[choose_direction] from choose_direction::@2
|
|
[776] choose_direction::dist_min#17 = choose_direction::dist_min#10
|
|
to:choose_direction::@3
|
|
choose_direction::@10: scope:[choose_direction] from choose_direction::@1
|
|
[777] choose_direction::dist_min#13 = choose_direction::dist_min#6
|
|
to:choose_direction::@2
|
|
|
|
void * memset(void *str , char c , unsigned int num)
|
|
memset: scope:[memset] from splash_run::@18 splash_run::@25 splash_run::@26 splash_run::@30 splash_run::@36
|
|
[778] memset::str#6 = phi( splash_run::@18/(void *)(char *) 16384, splash_run::@25/(void *)BANK_1+$2000, splash_run::@26/(void *)BANK_2, splash_run::@30/(void *)BANK_1, splash_run::@36/(void *)INTRO_MUSIC_CRUNCHED_UPPER )
|
|
[778] memset::num#5 = phi( splash_run::@18/$c00, splash_run::@25/$1fff, splash_run::@26/$3fff, splash_run::@30/$1fff, splash_run::@36/INTRO_MUSIC_CRUNCHED_SIZE )
|
|
[779] if(memset::num#5<=0) goto memset::@return
|
|
to:memset::@1
|
|
memset::@1: scope:[memset] from memset
|
|
[780] memset::end#0 = (char *)memset::str#6 + memset::num#5
|
|
[781] memset::dst#4 = (char *)memset::str#6
|
|
to:memset::@2
|
|
memset::@2: scope:[memset] from memset::@1 memset::@3
|
|
[782] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
|
|
[783] if(memset::dst#2!=memset::end#0) goto memset::@3
|
|
to:memset::@return
|
|
memset::@return: scope:[memset] from memset memset::@2
|
|
[784] return
|
|
to:@return
|
|
memset::@3: scope:[memset] from memset::@2
|
|
[785] *memset::dst#2 = 0
|
|
[786] memset::dst#1 = ++ memset::dst#2
|
|
to:memset::@2
|
|
|
|
void byteboozer_decrunch(char * volatile crunched)
|
|
byteboozer_decrunch: scope:[byteboozer_decrunch] from done_run::@2 done_run::@3 gameplay_run::@6 splash_run::@22 splash_run::@23 splash_run::@28 splash_run::@32 splash_run::@35
|
|
asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch }
|
|
to:byteboozer_decrunch::@return
|
|
byteboozer_decrunch::@return: scope:[byteboozer_decrunch] from byteboozer_decrunch
|
|
[788] return
|
|
to:@return
|
|
|
|
void merge_code(char *dest_code , char *raster_code , char *logic_code)
|
|
merge_code: scope:[merge_code] from splash_run::@24
|
|
[789] phi()
|
|
to:merge_code::@1
|
|
merge_code::@1: scope:[merge_code] from merge_code merge_code::@10 merge_code::@2
|
|
[790] merge_code::logic_code#18 = phi( merge_code/LOGIC_CODE_UNMERGED, merge_code::@10/merge_code::logic_code#17, merge_code::@2/merge_code::logic_code#18 )
|
|
[790] merge_code::dest_code#14 = phi( merge_code/RASTER_CODE, merge_code::@10/merge_code::dest_code#10, merge_code::@2/merge_code::dest_code#0 )
|
|
[790] merge_code::raster_code#4 = phi( merge_code/RASTER_CODE_UNMERGED, merge_code::@10/merge_code::raster_code#2, merge_code::@2/merge_code::raster_code#0 )
|
|
[791] if(*merge_code::raster_code#4!=merge_code::RASTER_END) goto merge_code::@2
|
|
to:merge_code::@3
|
|
merge_code::@3: scope:[merge_code] from merge_code::@1
|
|
[792] merge_code::raster_code#1 = ++ merge_code::raster_code#4
|
|
[793] merge_code::cycle_budget#0 = *merge_code::raster_code#1
|
|
[794] merge_code::raster_code#2 = ++ merge_code::raster_code#1
|
|
[795] if(merge_code::cycle_budget#0!=merge_code::RASTER_EXIT) goto merge_code::@4
|
|
to:merge_code::@14
|
|
merge_code::@14: scope:[merge_code] from merge_code::@19 merge_code::@3
|
|
[796] merge_code::dest_code#12 = phi( merge_code::@19/merge_code::dest_code#13, merge_code::@3/merge_code::dest_code#14 )
|
|
[796] merge_code::logic_code#12 = phi( merge_code::@19/merge_code::logic_code#5, merge_code::@3/merge_code::logic_code#18 )
|
|
[797] if(*merge_code::logic_code#12!=merge_code::LOGIC_EXIT) goto merge_code::@15
|
|
to:merge_code::@16
|
|
merge_code::@16: scope:[merge_code] from merge_code::@14
|
|
[798] *merge_code::dest_code#12 = $60
|
|
to:merge_code::@return
|
|
merge_code::@return: scope:[merge_code] from merge_code::@16
|
|
[799] return
|
|
to:@return
|
|
merge_code::@15: scope:[merge_code] from merge_code::@14
|
|
[800] merge_code::logic_code#3 = ++ merge_code::logic_code#12
|
|
to:merge_code::@17
|
|
merge_code::@17: scope:[merge_code] from merge_code::@15 merge_code::@18
|
|
[801] merge_code::dest_code#13 = phi( merge_code::@15/merge_code::dest_code#12, merge_code::@18/merge_code::dest_code#6 )
|
|
[801] merge_code::logic_code#14 = phi( merge_code::@15/merge_code::logic_code#3, merge_code::@18/merge_code::logic_code#4 )
|
|
[802] if(*merge_code::logic_code#14!=merge_code::LOGIC_END) goto merge_code::@18
|
|
to:merge_code::@19
|
|
merge_code::@19: scope:[merge_code] from merge_code::@17
|
|
[803] merge_code::logic_code#5 = ++ merge_code::logic_code#14
|
|
to:merge_code::@14
|
|
merge_code::@18: scope:[merge_code] from merge_code::@17
|
|
[804] *merge_code::dest_code#13 = *merge_code::logic_code#14
|
|
[805] merge_code::dest_code#6 = ++ merge_code::dest_code#13
|
|
[806] merge_code::logic_code#4 = ++ merge_code::logic_code#14
|
|
to:merge_code::@17
|
|
merge_code::@4: scope:[merge_code] from merge_code::@3 merge_code::@8
|
|
[807] merge_code::dest_code#21 = phi( merge_code::@3/merge_code::dest_code#14, merge_code::@8/merge_code::dest_code#15 )
|
|
[807] merge_code::logic_code#17 = phi( merge_code::@3/merge_code::logic_code#18, merge_code::@8/merge_code::logic_code#2 )
|
|
[807] merge_code::cycle_budget#13 = phi( merge_code::@3/merge_code::cycle_budget#0, merge_code::@8/merge_code::cycle_budget#1 )
|
|
[808] if(merge_code::cycle_budget#13<=0) goto merge_code::@10
|
|
to:merge_code::@5
|
|
merge_code::@5: scope:[merge_code] from merge_code::@4
|
|
[809] merge_code::logic_cycles#0 = *merge_code::logic_code#17
|
|
[810] merge_code::$5 = merge_code::cycle_budget#13 - 1
|
|
[811] if(merge_code::logic_cycles#0!=merge_code::LOGIC_EXIT) goto merge_code::@20
|
|
to:merge_code::@10
|
|
merge_code::@10: scope:[merge_code] from merge_code::@12 merge_code::@13 merge_code::@21 merge_code::@4 merge_code::@5
|
|
[812] merge_code::dest_code#10 = phi( merge_code::@12/merge_code::dest_code#3, merge_code::@13/merge_code::dest_code#4, merge_code::@4/merge_code::dest_code#21, merge_code::@5/merge_code::dest_code#21 )
|
|
[812] merge_code::cycle_budget#10 = phi( merge_code::@12/merge_code::cycle_budget#2, merge_code::@13/merge_code::cycle_budget#3, merge_code::@4/merge_code::cycle_budget#13, merge_code::@5/merge_code::cycle_budget#13 )
|
|
[813] if(merge_code::cycle_budget#10>0) goto merge_code::@11
|
|
to:merge_code::@1
|
|
merge_code::@11: scope:[merge_code] from merge_code::@10
|
|
[814] if(merge_code::cycle_budget#10==3) goto merge_code::@12
|
|
to:merge_code::@13
|
|
merge_code::@13: scope:[merge_code] from merge_code::@11
|
|
[815] *merge_code::dest_code#10 = $ea
|
|
[816] merge_code::dest_code#4 = ++ merge_code::dest_code#10
|
|
[817] merge_code::cycle_budget#3 = merge_code::cycle_budget#10 - 2
|
|
to:merge_code::@10
|
|
merge_code::@12: scope:[merge_code] from merge_code::@11
|
|
[818] *merge_code::dest_code#10 = $24
|
|
[819] merge_code::dest_code#2 = ++ merge_code::dest_code#10
|
|
[820] *merge_code::dest_code#2 = $ea
|
|
[821] merge_code::dest_code#3 = ++ merge_code::dest_code#2
|
|
[822] merge_code::cycle_budget#2 = merge_code::cycle_budget#10 - 3
|
|
to:merge_code::@10
|
|
merge_code::@20: scope:[merge_code] from merge_code::@5
|
|
[823] if(merge_code::logic_cycles#0<merge_code::$5) goto merge_code::@9
|
|
to:merge_code::@21
|
|
merge_code::@21: scope:[merge_code] from merge_code::@20
|
|
[824] if(merge_code::logic_cycles#0==merge_code::cycle_budget#13) goto merge_code::@9
|
|
to:merge_code::@10
|
|
merge_code::@9: scope:[merge_code] from merge_code::@20 merge_code::@21
|
|
[825] merge_code::logic_code#0 = ++ merge_code::logic_code#17
|
|
to:merge_code::@6
|
|
merge_code::@6: scope:[merge_code] from merge_code::@7 merge_code::@9
|
|
[826] merge_code::dest_code#15 = phi( merge_code::@7/merge_code::dest_code#1, merge_code::@9/merge_code::dest_code#21 )
|
|
[826] merge_code::logic_code#10 = phi( merge_code::@7/merge_code::logic_code#1, merge_code::@9/merge_code::logic_code#0 )
|
|
[827] if(*merge_code::logic_code#10!=merge_code::LOGIC_END) goto merge_code::@7
|
|
to:merge_code::@8
|
|
merge_code::@8: scope:[merge_code] from merge_code::@6
|
|
[828] merge_code::logic_code#2 = ++ merge_code::logic_code#10
|
|
[829] merge_code::cycle_budget#1 = merge_code::cycle_budget#13 - merge_code::logic_cycles#0
|
|
to:merge_code::@4
|
|
merge_code::@7: scope:[merge_code] from merge_code::@6
|
|
[830] *merge_code::dest_code#15 = *merge_code::logic_code#10
|
|
[831] merge_code::dest_code#1 = ++ merge_code::dest_code#15
|
|
[832] merge_code::logic_code#1 = ++ merge_code::logic_code#10
|
|
to:merge_code::@6
|
|
merge_code::@2: scope:[merge_code] from merge_code::@1
|
|
[833] *merge_code::dest_code#14 = *merge_code::raster_code#4
|
|
[834] merge_code::dest_code#0 = ++ merge_code::dest_code#14
|
|
[835] merge_code::raster_code#0 = ++ merge_code::raster_code#4
|
|
to:merge_code::@1
|
|
|
|
void init_render_index()
|
|
init_render_index: scope:[init_render_index] from splash_run::@27
|
|
[836] phi()
|
|
to:init_render_index::@1
|
|
init_render_index::@1: scope:[init_render_index] from init_render_index init_render_index::@7
|
|
[837] init_render_index::render_index_xcol#0 = phi( init_render_index/RENDER_INDEX, init_render_index::@7/init_render_index::render_index#1 )
|
|
[837] init_render_index::x_col#2 = phi( init_render_index/0, init_render_index::@7/init_render_index::x_col#1 )
|
|
[838] if(init_render_index::x_col#2<$1a) goto init_render_index::@2
|
|
to:init_render_index::@3
|
|
init_render_index::@3: scope:[init_render_index] from init_render_index::@1
|
|
[839] *(RENDER_INDEX+$18*$100+RENDER_OFFSET_YPOS_INC) = 0
|
|
[840] *(RENDER_INDEX+$19*$100+RENDER_OFFSET_YPOS_INC) = 0
|
|
to:init_render_index::@return
|
|
init_render_index::@return: scope:[init_render_index] from init_render_index::@3
|
|
[841] return
|
|
to:@return
|
|
init_render_index::@2: scope:[init_render_index] from init_render_index::@1
|
|
[842] if(init_render_index::x_col#2<$18) goto init_render_index::@4
|
|
to:init_render_index::@10
|
|
init_render_index::@10: scope:[init_render_index] from init_render_index::@2
|
|
[843] phi()
|
|
to:init_render_index::@4
|
|
init_render_index::@4: scope:[init_render_index] from init_render_index::@10 init_render_index::@2
|
|
[844] init_render_index::ypos_inc_offset#7 = phi( init_render_index::@10/$b, init_render_index::@2/0 )
|
|
[844] init_render_index::render_ypos_table#4 = phi( init_render_index::@10/RENDER_YPOS_9TH, init_render_index::@2/RENDER_YPOS )
|
|
[845] init_render_index::$9 = init_render_index::x_col#2 << 1
|
|
[846] init_render_index::canvas_xcol#0 = RENDER_XCOLS[init_render_index::$9]
|
|
[847] init_render_index::render_index_xcol#7 = init_render_index::render_index_xcol#0
|
|
to:init_render_index::@5
|
|
init_render_index::@5: scope:[init_render_index] from init_render_index::@4 init_render_index::@8
|
|
[848] init_render_index::ypos_inc_offset#4 = phi( init_render_index::@4/init_render_index::ypos_inc_offset#7, init_render_index::@8/init_render_index::ypos_inc_offset#8 )
|
|
[848] init_render_index::render_index_xcol#2 = phi( init_render_index::@4/init_render_index::render_index_xcol#7, init_render_index::@8/init_render_index::render_index_xcol#1 )
|
|
[848] init_render_index::y_pos#2 = phi( init_render_index::@4/0, init_render_index::@8/init_render_index::y_pos#1 )
|
|
[849] if(init_render_index::y_pos#2<$94) goto init_render_index::@6
|
|
to:init_render_index::@7
|
|
init_render_index::@7: scope:[init_render_index] from init_render_index::@5
|
|
[850] init_render_index::render_index#1 = init_render_index::render_index_xcol#0 + $100
|
|
[851] init_render_index::x_col#1 = ++ init_render_index::x_col#2
|
|
to:init_render_index::@1
|
|
init_render_index::@6: scope:[init_render_index] from init_render_index::@5
|
|
[852] init_render_index::$11 = (unsigned int)init_render_index::y_pos#2
|
|
[853] init_render_index::$10 = init_render_index::$11 << 1
|
|
[854] init_render_index::$12 = init_render_index::render_ypos_table#4 + init_render_index::$10
|
|
[855] init_render_index::canvas#0 = init_render_index::canvas_xcol#0 + *init_render_index::$12
|
|
[856] init_render_index::$5 = byte0 init_render_index::canvas#0
|
|
[857] *init_render_index::render_index_xcol#2 = init_render_index::$5
|
|
[858] init_render_index::$6 = byte1 init_render_index::canvas#0
|
|
[859] init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_HI] = init_render_index::$6
|
|
[860] init_render_index::render_index_xcol#2[RENDER_OFFSET_YPOS_INC] = init_render_index::ypos_inc_offset#4
|
|
[861] init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#4 + 2
|
|
[862] if(init_render_index::ypos_inc_offset#2<$17) goto init_render_index::@8
|
|
to:init_render_index::@9
|
|
init_render_index::@9: scope:[init_render_index] from init_render_index::@6
|
|
[863] init_render_index::ypos_inc_offset#3 = init_render_index::ypos_inc_offset#2 - $15
|
|
to:init_render_index::@8
|
|
init_render_index::@8: scope:[init_render_index] from init_render_index::@6 init_render_index::@9
|
|
[864] init_render_index::ypos_inc_offset#8 = phi( init_render_index::@6/init_render_index::ypos_inc_offset#2, init_render_index::@9/init_render_index::ypos_inc_offset#3 )
|
|
[865] init_render_index::render_index_xcol#1 = ++ init_render_index::render_index_xcol#2
|
|
[866] init_render_index::y_pos#1 = init_render_index::y_pos#2 + 2
|
|
to:init_render_index::@5
|
|
|
|
void splash_show()
|
|
splash_show: scope:[splash_show] from splash_run::@29
|
|
[867] phi()
|
|
to:splash_show::@1
|
|
splash_show::@1: scope:[splash_show] from splash_show splash_show::@4
|
|
[868] splash_show::splash#4 = phi( splash_show/SPLASH, splash_show::@4/splash_show::splash#2 )
|
|
[868] splash_show::xcol#2 = phi( splash_show/0, splash_show::@4/splash_show::xcol#1 )
|
|
[869] if(splash_show::xcol#2<$19) goto splash_show::@2
|
|
to:splash_show::@return
|
|
splash_show::@return: scope:[splash_show] from splash_show::@1
|
|
[870] return
|
|
to:@return
|
|
splash_show::@2: scope:[splash_show] from splash_show::@1 splash_show::@5
|
|
[871] splash_show::splash#2 = phi( splash_show::@1/splash_show::splash#4, splash_show::@5/splash_show::splash#1 )
|
|
[871] splash_show::ypos#2 = phi( splash_show::@1/0, splash_show::@5/splash_show::ypos#1 )
|
|
[872] if(splash_show::ypos#2<$93) goto splash_show::@3
|
|
to:splash_show::@4
|
|
splash_show::@4: scope:[splash_show] from splash_show::@2
|
|
[873] splash_show::xcol#1 = ++ splash_show::xcol#2
|
|
to:splash_show::@1
|
|
splash_show::@3: scope:[splash_show] from splash_show::@2
|
|
[874] splash_show::pixels#0 = *splash_show::splash#2
|
|
[875] splash_show::splash#1 = ++ splash_show::splash#2
|
|
[876] render::xcol#1 = splash_show::xcol#2
|
|
[877] render::ypos#1 = splash_show::ypos#2
|
|
[878] render::pixels#1 = splash_show::pixels#0
|
|
[879] call render
|
|
to:splash_show::@5
|
|
splash_show::@5: scope:[splash_show] from splash_show::@3
|
|
[880] splash_show::ypos#1 = ++ splash_show::ypos#2
|
|
to:splash_show::@2
|
|
|
|
void init_bobs_restore()
|
|
init_bobs_restore: scope:[init_bobs_restore] from splash_run::@31
|
|
[881] phi()
|
|
to:init_bobs_restore::@1
|
|
init_bobs_restore::@1: scope:[init_bobs_restore] from init_bobs_restore init_bobs_restore::@5
|
|
[882] init_bobs_restore::bob_restore#5 = phi( init_bobs_restore/bobs_restore, init_bobs_restore::@5/init_bobs_restore::bob_restore#1 )
|
|
[882] init_bobs_restore::bob#2 = phi( init_bobs_restore/0, init_bobs_restore::@5/init_bobs_restore::bob#1 )
|
|
[883] if(init_bobs_restore::bob#2<NUM_BOBS*2) goto init_bobs_restore::@3
|
|
to:init_bobs_restore::@2
|
|
init_bobs_restore::@2: scope:[init_bobs_restore] from init_bobs_restore::@1
|
|
[884] logic_tile_ptr = LEVEL_TILES+(unsigned int)$40*$12+$c
|
|
[885] logic_tile_xcol = $c
|
|
[886] logic_tile_yfine = $23
|
|
to:init_bobs_restore::@return
|
|
init_bobs_restore::@return: scope:[init_bobs_restore] from init_bobs_restore::@2
|
|
[887] return
|
|
to:@return
|
|
init_bobs_restore::@3: scope:[init_bobs_restore] from init_bobs_restore::@1 init_bobs_restore::@4
|
|
[888] init_bobs_restore::i#2 = phi( init_bobs_restore::@1/0, init_bobs_restore::@4/init_bobs_restore::i#1 )
|
|
[889] if(init_bobs_restore::i#2<SIZE_BOB_RESTORE) goto init_bobs_restore::@4
|
|
to:init_bobs_restore::@5
|
|
init_bobs_restore::@5: scope:[init_bobs_restore] from init_bobs_restore::@3
|
|
[890] *init_bobs_restore::bob_restore#5 = 0
|
|
[891] init_bobs_restore::bob_restore#5[1] = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
[892] init_bobs_restore::bob_restore#5[3] = 0
|
|
[893] init_bobs_restore::bob_restore#5[4] = byte1 init_bobs_restore::CANVAS_HIDDEN
|
|
[894] init_bobs_restore::bob_restore#1 = init_bobs_restore::bob_restore#5 + SIZE_BOB_RESTORE
|
|
[895] init_bobs_restore::bob#1 = ++ init_bobs_restore::bob#2
|
|
to:init_bobs_restore::@1
|
|
init_bobs_restore::@4: scope:[init_bobs_restore] from init_bobs_restore::@3
|
|
[896] init_bobs_restore::bob_restore#5[init_bobs_restore::i#2] = 0
|
|
[897] init_bobs_restore::i#1 = ++ init_bobs_restore::i#2
|
|
to:init_bobs_restore::@3
|
|
|
|
void init_sprite_pointers()
|
|
init_sprite_pointers: scope:[init_sprite_pointers] from gameplay_run::@15 splash_run::@33
|
|
[898] phi()
|
|
to:init_sprite_pointers::@1
|
|
init_sprite_pointers::@1: scope:[init_sprite_pointers] from init_sprite_pointers init_sprite_pointers::@4
|
|
[899] init_sprite_pointers::sprites_ptr_2#5 = phi( init_sprite_pointers/SCREENS_2+OFFSET_SPRITE_PTRS, init_sprite_pointers::@4/init_sprite_pointers::sprites_ptr_2#1 )
|
|
[899] init_sprite_pointers::sprites_ptr_1#5 = phi( init_sprite_pointers/SCREENS_1+OFFSET_SPRITE_PTRS, init_sprite_pointers::@4/init_sprite_pointers::sprites_ptr_1#1 )
|
|
[899] init_sprite_pointers::screen#2 = phi( init_sprite_pointers/0, init_sprite_pointers::@4/init_sprite_pointers::screen#1 )
|
|
[900] if(init_sprite_pointers::screen#2<$e) goto init_sprite_pointers::@2
|
|
to:init_sprite_pointers::@return
|
|
init_sprite_pointers::@return: scope:[init_sprite_pointers] from init_sprite_pointers::@1
|
|
[901] return
|
|
to:@return
|
|
init_sprite_pointers::@2: scope:[init_sprite_pointers] from init_sprite_pointers::@1 init_sprite_pointers::@3
|
|
[902] init_sprite_pointers::sprite#2 = phi( init_sprite_pointers::@1/0, init_sprite_pointers::@3/init_sprite_pointers::sprite#1 )
|
|
[903] if(init_sprite_pointers::sprite#2<8) goto init_sprite_pointers::@3
|
|
to:init_sprite_pointers::@4
|
|
init_sprite_pointers::@4: scope:[init_sprite_pointers] from init_sprite_pointers::@2
|
|
[904] init_sprite_pointers::sprites_ptr_1#1 = init_sprite_pointers::sprites_ptr_1#5 + $400
|
|
[905] init_sprite_pointers::sprites_ptr_2#1 = init_sprite_pointers::sprites_ptr_2#5 + $400
|
|
[906] init_sprite_pointers::screen#1 = ++ init_sprite_pointers::screen#2
|
|
to:init_sprite_pointers::@1
|
|
init_sprite_pointers::@3: scope:[init_sprite_pointers] from init_sprite_pointers::@2
|
|
[907] init_sprite_pointers::$2 = init_sprite_pointers::SPRITE_ID_0 + init_sprite_pointers::screen#2
|
|
[908] init_sprite_pointers::sprite_id#0 = init_sprite_pointers::$2 + init_sprite_pointers::sprites_id[init_sprite_pointers::sprite#2]
|
|
[909] init_sprite_pointers::sprites_ptr_1#5[init_sprite_pointers::sprite#2] = init_sprite_pointers::sprite_id#0
|
|
[910] init_sprite_pointers::sprites_ptr_2#5[init_sprite_pointers::sprite#2] = init_sprite_pointers::sprite_id#0
|
|
[911] init_sprite_pointers::sprite#1 = ++ init_sprite_pointers::sprite#2
|
|
to:init_sprite_pointers::@2
|
|
|
|
void * memcpy(void *destination , void *source , unsigned int num)
|
|
memcpy: scope:[memcpy] from splash_run::@34
|
|
[912] phi()
|
|
to:memcpy::@1
|
|
memcpy::@1: scope:[memcpy] from memcpy memcpy::@2
|
|
[913] memcpy::dst#2 = phi( memcpy/(char *)memcpy::destination#0, memcpy::@2/memcpy::dst#1 )
|
|
[913] memcpy::src#2 = phi( memcpy/(char *)memcpy::source#0, memcpy::@2/memcpy::src#1 )
|
|
[914] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
|
|
to:memcpy::@return
|
|
memcpy::@return: scope:[memcpy] from memcpy::@1
|
|
[915] return
|
|
to:@return
|
|
memcpy::@2: scope:[memcpy] from memcpy::@1
|
|
[916] *memcpy::dst#2 = *memcpy::src#2
|
|
[917] memcpy::dst#1 = ++ memcpy::dst#2
|
|
[918] memcpy::src#1 = ++ memcpy::src#2
|
|
to:memcpy::@1
|
|
|
|
void joyinit()
|
|
joyinit: scope:[joyinit] from splash_run::@21
|
|
[919] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 0
|
|
to:joyinit::@return
|
|
joyinit::@return: scope:[joyinit] from joyinit
|
|
[920] return
|
|
to:@return
|
|
|
|
char joyfire()
|
|
joyfire: scope:[joyfire] from done_run::@14 splash_run::@14
|
|
[921] joyfire::$0 = *((char *)CIA1) & $10
|
|
[922] if(joyfire::$0==0) goto joyfire::@1
|
|
to:joyfire::@return
|
|
joyfire::@1: scope:[joyfire] from joyfire
|
|
[923] phi()
|
|
to:joyfire::@return
|
|
joyfire::@return: scope:[joyfire] from joyfire joyfire::@1
|
|
[924] joyfire::return#4 = phi( joyfire::@1/1, joyfire/0 )
|
|
[925] return
|
|
to:@return
|
|
|
|
void init_level_tile_directions()
|
|
init_level_tile_directions: scope:[init_level_tile_directions] from gameplay_run::@14
|
|
[926] phi()
|
|
to:init_level_tile_directions::@1
|
|
init_level_tile_directions::@1: scope:[init_level_tile_directions] from init_level_tile_directions init_level_tile_directions::@4
|
|
[927] init_level_tile_directions::directions#7 = phi( init_level_tile_directions/LEVEL_TILES_DIRECTIONS, init_level_tile_directions::@4/init_level_tile_directions::directions#1 )
|
|
[927] init_level_tile_directions::ytile#15 = phi( init_level_tile_directions/0, init_level_tile_directions::@4/init_level_tile_directions::ytile#1 )
|
|
[928] if(init_level_tile_directions::ytile#15<$25) goto init_level_tile_directions::@2
|
|
to:init_level_tile_directions::@return
|
|
init_level_tile_directions::@return: scope:[init_level_tile_directions] from init_level_tile_directions::@1
|
|
[929] return
|
|
to:@return
|
|
init_level_tile_directions::@2: scope:[init_level_tile_directions] from init_level_tile_directions::@1 init_level_tile_directions::@8
|
|
[930] init_level_tile_directions::xtile#10 = phi( init_level_tile_directions::@1/0, init_level_tile_directions::@8/init_level_tile_directions::xtile#1 )
|
|
[931] if(init_level_tile_directions::xtile#10<$32) goto init_level_tile_directions::@3
|
|
to:init_level_tile_directions::@4
|
|
init_level_tile_directions::@4: scope:[init_level_tile_directions] from init_level_tile_directions::@2
|
|
[932] init_level_tile_directions::directions#1 = init_level_tile_directions::directions#7 + $40
|
|
[933] init_level_tile_directions::ytile#1 = ++ init_level_tile_directions::ytile#15
|
|
to:init_level_tile_directions::@1
|
|
init_level_tile_directions::@3: scope:[init_level_tile_directions] from init_level_tile_directions::@2
|
|
[934] level_tile_get::xtile#0 = init_level_tile_directions::xtile#10 - 1
|
|
[935] level_tile_get::ytile#0 = init_level_tile_directions::ytile#15
|
|
[936] call level_tile_get
|
|
[937] level_tile_get::return#3 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@13
|
|
init_level_tile_directions::@13: scope:[init_level_tile_directions] from init_level_tile_directions::@3
|
|
[938] init_level_tile_directions::$3 = level_tile_get::return#3
|
|
[939] if(TILES_TYPE[init_level_tile_directions::$3]==WALL) goto init_level_tile_directions::@5
|
|
to:init_level_tile_directions::@9
|
|
init_level_tile_directions::@9: scope:[init_level_tile_directions] from init_level_tile_directions::@13
|
|
[940] phi()
|
|
to:init_level_tile_directions::@5
|
|
init_level_tile_directions::@5: scope:[init_level_tile_directions] from init_level_tile_directions::@13 init_level_tile_directions::@9
|
|
[941] init_level_tile_directions::open_directions#11 = phi( init_level_tile_directions::@9/LEFT, init_level_tile_directions::@13/0 )
|
|
[942] level_tile_get::xtile#1 = init_level_tile_directions::xtile#10 + 1
|
|
[943] level_tile_get::ytile#1 = init_level_tile_directions::ytile#15
|
|
[944] call level_tile_get
|
|
[945] level_tile_get::return#4 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@14
|
|
init_level_tile_directions::@14: scope:[init_level_tile_directions] from init_level_tile_directions::@5
|
|
[946] init_level_tile_directions::$7 = level_tile_get::return#4
|
|
[947] if(TILES_TYPE[init_level_tile_directions::$7]==WALL) goto init_level_tile_directions::@6
|
|
to:init_level_tile_directions::@10
|
|
init_level_tile_directions::@10: scope:[init_level_tile_directions] from init_level_tile_directions::@14
|
|
[948] init_level_tile_directions::open_directions#2 = init_level_tile_directions::open_directions#11 | RIGHT
|
|
to:init_level_tile_directions::@6
|
|
init_level_tile_directions::@6: scope:[init_level_tile_directions] from init_level_tile_directions::@10 init_level_tile_directions::@14
|
|
[949] init_level_tile_directions::open_directions#12 = phi( init_level_tile_directions::@10/init_level_tile_directions::open_directions#2, init_level_tile_directions::@14/init_level_tile_directions::open_directions#11 )
|
|
[950] level_tile_get::ytile#2 = init_level_tile_directions::ytile#15 - 1
|
|
[951] level_tile_get::xtile#2 = init_level_tile_directions::xtile#10
|
|
[952] call level_tile_get
|
|
[953] level_tile_get::return#10 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@15
|
|
init_level_tile_directions::@15: scope:[init_level_tile_directions] from init_level_tile_directions::@6
|
|
[954] init_level_tile_directions::$11 = level_tile_get::return#10
|
|
[955] if(TILES_TYPE[init_level_tile_directions::$11]==WALL) goto init_level_tile_directions::@7
|
|
to:init_level_tile_directions::@11
|
|
init_level_tile_directions::@11: scope:[init_level_tile_directions] from init_level_tile_directions::@15
|
|
[956] init_level_tile_directions::open_directions#3 = init_level_tile_directions::open_directions#12 | UP
|
|
to:init_level_tile_directions::@7
|
|
init_level_tile_directions::@7: scope:[init_level_tile_directions] from init_level_tile_directions::@11 init_level_tile_directions::@15
|
|
[957] init_level_tile_directions::open_directions#13 = phi( init_level_tile_directions::@11/init_level_tile_directions::open_directions#3, init_level_tile_directions::@15/init_level_tile_directions::open_directions#12 )
|
|
[958] level_tile_get::ytile#3 = init_level_tile_directions::ytile#15 + 1
|
|
[959] level_tile_get::xtile#3 = init_level_tile_directions::xtile#10
|
|
[960] call level_tile_get
|
|
[961] level_tile_get::return#11 = level_tile_get::return#2
|
|
to:init_level_tile_directions::@16
|
|
init_level_tile_directions::@16: scope:[init_level_tile_directions] from init_level_tile_directions::@7
|
|
[962] init_level_tile_directions::$15 = level_tile_get::return#11
|
|
[963] if(TILES_TYPE[init_level_tile_directions::$15]==WALL) goto init_level_tile_directions::@8
|
|
to:init_level_tile_directions::@12
|
|
init_level_tile_directions::@12: scope:[init_level_tile_directions] from init_level_tile_directions::@16
|
|
[964] init_level_tile_directions::open_directions#4 = init_level_tile_directions::open_directions#13 | DOWN
|
|
to:init_level_tile_directions::@8
|
|
init_level_tile_directions::@8: scope:[init_level_tile_directions] from init_level_tile_directions::@12 init_level_tile_directions::@16
|
|
[965] init_level_tile_directions::open_directions#8 = phi( init_level_tile_directions::@12/init_level_tile_directions::open_directions#4, init_level_tile_directions::@16/init_level_tile_directions::open_directions#13 )
|
|
[966] init_level_tile_directions::directions#7[init_level_tile_directions::xtile#10] = init_level_tile_directions::open_directions#8
|
|
[967] init_level_tile_directions::xtile#1 = ++ init_level_tile_directions::xtile#10
|
|
to:init_level_tile_directions::@2
|
|
|
|
unsigned int level_show()
|
|
level_show: scope:[level_show] from gameplay_run::@16
|
|
[968] phi()
|
|
to:level_show::@1
|
|
level_show::@1: scope:[level_show] from level_show level_show::@4
|
|
[969] level_show::level#8 = phi( level_show/LEVEL_TILES, level_show::@4/level_show::level#1 )
|
|
[969] level_show::count#12 = phi( level_show/0, level_show::@4/level_show::count#10 )
|
|
[969] level_show::ytile#2 = phi( level_show/0, level_show::@4/level_show::ytile#1 )
|
|
[970] if(level_show::ytile#2<$25) goto level_show::@2
|
|
to:level_show::@return
|
|
level_show::@return: scope:[level_show] from level_show::@1
|
|
[971] return
|
|
to:@return
|
|
level_show::@2: scope:[level_show] from level_show::@1 level_show::@9
|
|
[972] level_show::count#10 = phi( level_show::@9/level_show::count#11, level_show::@1/level_show::count#12 )
|
|
[972] level_show::xtile#3 = phi( level_show::@9/level_show::xtile#2, level_show::@1/0 )
|
|
[972] level_show::xcol#2 = phi( level_show::@9/level_show::xcol#1, level_show::@1/0 )
|
|
[973] if(level_show::xcol#2<$19) goto level_show::@3
|
|
to:level_show::@4
|
|
level_show::@4: scope:[level_show] from level_show::@2
|
|
[974] level_show::level#1 = level_show::level#8 + $40
|
|
[975] level_show::ytile#1 = ++ level_show::ytile#2
|
|
to:level_show::@1
|
|
level_show::@3: scope:[level_show] from level_show::@2
|
|
[976] level_show::tile_left#0 = level_show::level#8[level_show::xtile#3]
|
|
[977] level_show::xtile#1 = ++ level_show::xtile#3
|
|
[978] if(TILES_TYPE[level_show::tile_left#0]!=PILL) goto level_show::@5
|
|
to:level_show::@7
|
|
level_show::@7: scope:[level_show] from level_show::@3
|
|
[979] level_show::count#1 = ++ level_show::count#10
|
|
to:level_show::@5
|
|
level_show::@5: scope:[level_show] from level_show::@3 level_show::@7
|
|
[980] level_show::count#5 = phi( level_show::@3/level_show::count#10, level_show::@7/level_show::count#1 )
|
|
[981] level_show::tile_right#0 = level_show::level#8[level_show::xtile#1]
|
|
[982] level_show::xtile#2 = ++ level_show::xtile#1
|
|
[983] if(TILES_TYPE[level_show::tile_right#0]!=PILL) goto level_show::@6
|
|
to:level_show::@8
|
|
level_show::@8: scope:[level_show] from level_show::@5
|
|
[984] level_show::count#2 = ++ level_show::count#5
|
|
to:level_show::@6
|
|
level_show::@6: scope:[level_show] from level_show::@5 level_show::@8
|
|
[985] level_show::count#11 = phi( level_show::@8/level_show::count#2, level_show::@5/level_show::count#5 )
|
|
[986] render_tiles::xcol#0 = level_show::xcol#2
|
|
[987] render_tiles::ytile#0 = level_show::ytile#2
|
|
[988] render_tiles::tile_left#0 = level_show::tile_left#0
|
|
[989] render_tiles::tile_right#0 = level_show::tile_right#0
|
|
[990] call render_tiles
|
|
to:level_show::@9
|
|
level_show::@9: scope:[level_show] from level_show::@6
|
|
[991] level_show::xcol#1 = ++ level_show::xcol#2
|
|
to:level_show::@2
|
|
|
|
void pacman_sound_init()
|
|
pacman_sound_init: scope:[pacman_sound_init] from gameplay_run::@18
|
|
[992] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = $f
|
|
[993] *((unsigned int *)SID) = 0
|
|
[994] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = 0
|
|
[995] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = 0
|
|
[996] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = 0
|
|
[997] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = $f0
|
|
to:pacman_sound_init::@return
|
|
pacman_sound_init::@return: scope:[pacman_sound_init] from pacman_sound_init
|
|
[998] return
|
|
to:@return
|
|
|
|
void render(char xcol , char ypos , char pixels)
|
|
render: scope:[render] from done_run::@12 splash_show::@3
|
|
[999] render::pixels#4 = phi( done_run::@12/render::pixels#0, splash_show::@3/render::pixels#1 )
|
|
[999] render::xcol#2 = phi( done_run::@12/render::xcol#0, splash_show::@3/render::xcol#1 )
|
|
[999] render::ypos#2 = phi( done_run::@12/render::ypos#0, splash_show::@3/render::ypos#1 )
|
|
[1000] render::ytile#0 = render::ypos#2 >> 2
|
|
[1001] render::$1 = byte1 RENDER_INDEX + render::xcol#2
|
|
[1002] render::$2 = render::ytile#0 << 1
|
|
[1003] render::render_index_xcol#0 = render::$1 w= render::$2
|
|
[1004] render::canvas_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render::render_index_xcol#0)
|
|
[1005] render::canvas1#0 = SPRITES_1 + render::canvas_offset#0
|
|
[1006] render::canvas2#0 = SPRITES_2 + render::canvas_offset#0
|
|
[1007] render::ypos_inc_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC]
|
|
[1008] render::ypix#0 = render::ypos#2 & 3
|
|
to:render::@1
|
|
render::@1: scope:[render] from render render::@2
|
|
[1009] render::canvas2#2 = phi( render/render::canvas2#0, render::@2/render::canvas2#1 )
|
|
[1009] render::ypos_inc_offset#2 = phi( render/render::ypos_inc_offset#0, render::@2/render::ypos_inc_offset#1 )
|
|
[1009] render::canvas1#2 = phi( render/render::canvas1#0, render::@2/render::canvas1#1 )
|
|
[1009] render::i#2 = phi( render/0, render::@2/render::i#1 )
|
|
[1010] if(render::i#2<render::ypix#0) goto render::@2
|
|
to:render::@3
|
|
render::@3: scope:[render] from render::@1
|
|
[1011] *render::canvas1#2 = render::pixels#4
|
|
[1012] *render::canvas2#2 = render::pixels#4
|
|
to:render::@return
|
|
render::@return: scope:[render] from render::@3
|
|
[1013] return
|
|
to:@return
|
|
render::@2: scope:[render] from render::@1
|
|
[1014] render::canvas1#1 = render::canvas1#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2]
|
|
[1015] render::canvas2#1 = render::canvas2#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2]
|
|
[1016] render::ypos_inc_offset#1 = ++ render::ypos_inc_offset#2
|
|
[1017] render::i#1 = ++ render::i#2
|
|
to:render::@1
|
|
|
|
char level_tile_get(char xtile , char ytile)
|
|
level_tile_get: scope:[level_tile_get] from init_level_tile_directions::@3 init_level_tile_directions::@5 init_level_tile_directions::@6 init_level_tile_directions::@7
|
|
[1018] level_tile_get::ytile#4 = phi( init_level_tile_directions::@3/level_tile_get::ytile#0, init_level_tile_directions::@5/level_tile_get::ytile#1, init_level_tile_directions::@6/level_tile_get::ytile#2, init_level_tile_directions::@7/level_tile_get::ytile#3 )
|
|
[1018] level_tile_get::xtile#4 = phi( init_level_tile_directions::@3/level_tile_get::xtile#0, init_level_tile_directions::@5/level_tile_get::xtile#1, init_level_tile_directions::@6/level_tile_get::xtile#2, init_level_tile_directions::@7/level_tile_get::xtile#3 )
|
|
[1019] if(level_tile_get::xtile#4>=$31+1) goto level_tile_get::@return
|
|
to:level_tile_get::@2
|
|
level_tile_get::@2: scope:[level_tile_get] from level_tile_get
|
|
[1020] if(level_tile_get::ytile#4>=$24+1) goto level_tile_get::@return
|
|
to:level_tile_get::@1
|
|
level_tile_get::@1: scope:[level_tile_get] from level_tile_get::@2
|
|
[1021] level_tile_get::$5 = level_tile_get::ytile#4 << 1
|
|
[1022] level_tile_get::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[level_tile_get::$5]
|
|
[1023] level_tile_get::return#0 = level_tile_get::ytiles#0[level_tile_get::xtile#4]
|
|
to:level_tile_get::@return
|
|
level_tile_get::@return: scope:[level_tile_get] from level_tile_get level_tile_get::@1 level_tile_get::@2
|
|
[1024] level_tile_get::return#2 = phi( level_tile_get::@1/level_tile_get::return#0, level_tile_get/0, level_tile_get::@2/0 )
|
|
[1025] return
|
|
to:@return
|
|
|
|
void render_tiles(char xcol , char ytile , char tile_left , char tile_right)
|
|
render_tiles: scope:[render_tiles] from level_show::@6
|
|
[1026] render_tiles::$0 = render_tiles::tile_left#0 << 2
|
|
[1027] render_tiles::tile_left_pixels#0 = TILES_LEFT + render_tiles::$0
|
|
[1028] render_tiles::$2 = render_tiles::tile_right#0 << 2
|
|
[1029] render_tiles::tile_right_pixels#0 = TILES_RIGHT + render_tiles::$2
|
|
[1030] render_tiles::$4 = byte1 RENDER_INDEX + render_tiles::xcol#0
|
|
[1031] render_tiles::$5 = render_tiles::ytile#0 << 1
|
|
[1032] render_tiles::render_index_xcol#0 = render_tiles::$4 w= render_tiles::$5
|
|
[1033] render_tiles::canvas_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render_tiles::render_index_xcol#0)
|
|
[1034] render_tiles::canvas1#0 = SPRITES_1 + render_tiles::canvas_offset#0
|
|
[1035] render_tiles::canvas2#0 = SPRITES_2 + render_tiles::canvas_offset#0
|
|
[1036] render_tiles::ypos_inc_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC]
|
|
to:render_tiles::@1
|
|
render_tiles::@1: scope:[render_tiles] from render_tiles render_tiles::@2
|
|
[1037] render_tiles::ypos_inc_offset#2 = phi( render_tiles/render_tiles::ypos_inc_offset#0, render_tiles::@2/render_tiles::ypos_inc_offset#1 )
|
|
[1037] render_tiles::canvas2#2 = phi( render_tiles/render_tiles::canvas2#0, render_tiles::@2/render_tiles::canvas2#1 )
|
|
[1037] render_tiles::canvas1#2 = phi( render_tiles/render_tiles::canvas1#0, render_tiles::@2/render_tiles::canvas1#1 )
|
|
[1037] render_tiles::y#2 = phi( render_tiles/0, render_tiles::@2/render_tiles::y#1 )
|
|
[1038] if(render_tiles::y#2<4) goto render_tiles::@2
|
|
to:render_tiles::@return
|
|
render_tiles::@return: scope:[render_tiles] from render_tiles::@1
|
|
[1039] return
|
|
to:@return
|
|
render_tiles::@2: scope:[render_tiles] from render_tiles::@1
|
|
[1040] render_tiles::pixels#0 = render_tiles::tile_left_pixels#0[render_tiles::y#2] | render_tiles::tile_right_pixels#0[render_tiles::y#2]
|
|
[1041] *render_tiles::canvas1#2 = render_tiles::pixels#0
|
|
[1042] *render_tiles::canvas2#2 = render_tiles::pixels#0
|
|
[1043] render_tiles::canvas1#1 = render_tiles::canvas1#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2]
|
|
[1044] render_tiles::canvas2#1 = render_tiles::canvas2#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2]
|
|
[1045] render_tiles::ypos_inc_offset#1 = ++ render_tiles::ypos_inc_offset#2
|
|
[1046] render_tiles::y#1 = ++ render_tiles::y#2
|
|
to:render_tiles::@1
|
|
|
|
|
|
VARIABLE REGISTER WEIGHTS
|
|
void __start()
|
|
__loadstore volatile char anim_frame_idx // 0.9019607843137255
|
|
__loadstore volatile char bobs_restore_base // 1070.0
|
|
__loadstore volatile char bottom_sprites_color // 11040.0
|
|
__loadstore volatile char bottom_sprites_mc // 11040.0
|
|
void byteboozer_decrunch(char * volatile crunched)
|
|
__loadstore char * volatile byteboozer_decrunch::crunched // 438.5
|
|
__loadstore volatile char canvas_base_hi // 1070.0
|
|
char choose_direction(char open_directions , char ghost_xtile , char ghost_ytile , char target_xtile , char target_ytile)
|
|
char choose_direction::$2 // 202.0
|
|
char choose_direction::$4 // 202.0
|
|
char choose_direction::$6 // 202.0
|
|
char choose_direction::$8 // 202.0
|
|
char choose_direction::direction
|
|
char choose_direction::direction#10 // 28.857142857142858
|
|
char choose_direction::direction#6 // 67.33333333333333
|
|
char choose_direction::direction#8 // 57.714285714285715
|
|
char choose_direction::dist_down
|
|
char choose_direction::dist_down#0 // 151.5
|
|
char choose_direction::dist_left
|
|
char choose_direction::dist_left#0 // 151.5
|
|
char choose_direction::dist_min
|
|
char choose_direction::dist_min#10 // 121.2
|
|
char choose_direction::dist_min#11 // 101.0
|
|
char choose_direction::dist_min#13 // 202.0
|
|
char choose_direction::dist_min#14 // 202.0
|
|
char choose_direction::dist_min#17 // 202.0
|
|
char choose_direction::dist_min#18 // 202.0
|
|
char choose_direction::dist_min#6 // 80.8
|
|
char choose_direction::dist_right
|
|
char choose_direction::dist_right#0 // 202.0
|
|
char choose_direction::dist_up
|
|
char choose_direction::dist_up#0 // 101.0
|
|
char choose_direction::ghost_xtile
|
|
char choose_direction::ghost_xtile#0 // 5.5
|
|
char choose_direction::ghost_xtile#1 // 5.5
|
|
char choose_direction::ghost_xtile#2 // 5.5
|
|
char choose_direction::ghost_xtile#3 // 5.5
|
|
char choose_direction::ghost_xtile#4 // 145.0
|
|
char choose_direction::ghost_ytile
|
|
char choose_direction::ghost_ytile#0 // 7.333333333333333
|
|
char choose_direction::ghost_ytile#1 // 7.333333333333333
|
|
char choose_direction::ghost_ytile#2 // 7.333333333333333
|
|
char choose_direction::ghost_ytile#3 // 7.333333333333333
|
|
char choose_direction::ghost_ytile#4 // 72.5
|
|
char choose_direction::open_directions
|
|
char choose_direction::open_directions#0 // 4.4
|
|
char choose_direction::open_directions#1 // 4.4
|
|
char choose_direction::open_directions#10 // 19.478260869565215
|
|
char choose_direction::open_directions#2 // 4.4
|
|
char choose_direction::open_directions#3 // 4.4
|
|
char choose_direction::return
|
|
char choose_direction::return#0 // 22.0
|
|
char choose_direction::return#1 // 22.0
|
|
char choose_direction::return#10 // 41.0
|
|
char choose_direction::return#2 // 22.0
|
|
char choose_direction::return#3 // 22.0
|
|
char choose_direction::target_xtile
|
|
char choose_direction::target_xtile#0 // 11.0
|
|
char choose_direction::target_xtile#1 // 11.0
|
|
char choose_direction::target_xtile#2 // 11.0
|
|
char choose_direction::target_xtile#3 // 11.0
|
|
char choose_direction::target_xtile#4 // 145.0
|
|
char choose_direction::target_ytile
|
|
char choose_direction::target_ytile#0 // 22.0
|
|
char choose_direction::target_ytile#1 // 22.0
|
|
char choose_direction::target_ytile#2 // 22.0
|
|
char choose_direction::target_ytile#3 // 22.0
|
|
char choose_direction::target_ytile#4 // 72.5
|
|
char choose_direction::xdiff
|
|
char choose_direction::xdiff#0 // 21.041666666666664
|
|
char choose_direction::ydiff
|
|
char choose_direction::ydiff#0 // 21.956521739130434
|
|
void done_run()
|
|
char done_run::$8 // 2000002.0
|
|
char *done_run::gfx
|
|
char *done_run::gfx#1 // 333333.6666666667
|
|
char *done_run::gfx#2 // 800001.25
|
|
char *done_run::gfx#4 // 100001.0
|
|
char done_run::i
|
|
char done_run::i#1 // 200002.0
|
|
char done_run::i#2 // 133334.66666666666
|
|
char done_run::i1
|
|
char done_run::i1#1 // 200002.0
|
|
char done_run::i1#2 // 120001.2
|
|
char done_run::pixels
|
|
char done_run::pixels#0 // 500000.5
|
|
char done_run::xcol
|
|
char done_run::xcol#1 // 200002.0
|
|
char done_run::xcol#2 // 118182.18181818182
|
|
char done_run::ypos
|
|
char done_run::ypos#1 // 2000002.0
|
|
char done_run::ypos#2 // 500000.5
|
|
__loadstore volatile char frame // 0.5
|
|
void game_logic()
|
|
char game_logic::$119 // 22.0
|
|
char game_logic::$14 // 22.0
|
|
char game_logic::$140 // 22.0
|
|
char game_logic::$15 // 22.0
|
|
char game_logic::$161 // 22.0
|
|
char game_logic::$17 // 22.0
|
|
char game_logic::$18 // 22.0
|
|
char game_logic::$182 // 22.0
|
|
char game_logic::$19 // 11.0
|
|
char game_logic::$199 // 22.0
|
|
char game_logic::$2 // 22.0
|
|
char game_logic::$20 // 22.0
|
|
char game_logic::$200 // 22.0
|
|
char game_logic::$204 // 22.0
|
|
char game_logic::$21 // 22.0
|
|
char game_logic::$210 // 2.588235294117647
|
|
char game_logic::$220 // 11.0
|
|
char game_logic::$223 // 11.0
|
|
char game_logic::$226 // 11.0
|
|
char game_logic::$229 // 11.0
|
|
char game_logic::$232 // 11.0
|
|
char game_logic::$25 // 22.0
|
|
char game_logic::$26 // 22.0
|
|
char game_logic::$27 // 11.0
|
|
char game_logic::$28 // 22.0
|
|
char game_logic::$29 // 22.0
|
|
char game_logic::$3 // 22.0
|
|
char game_logic::$31 // 22.0
|
|
char game_logic::$32 // 22.0
|
|
char game_logic::$33 // 11.0
|
|
char game_logic::$34 // 22.0
|
|
char game_logic::$35 // 22.0
|
|
char game_logic::$37 // 22.0
|
|
char game_logic::$38 // 22.0
|
|
char game_logic::$39 // 11.0
|
|
char game_logic::$40 // 22.0
|
|
char game_logic::$41 // 22.0
|
|
char game_logic::$43 // 22.0
|
|
char game_logic::$44 // 22.0
|
|
char game_logic::$45 // 11.0
|
|
char game_logic::$46 // 22.0
|
|
char game_logic::$47 // 22.0
|
|
char game_logic::$65 // 22.0
|
|
char game_logic::$66 // 22.0
|
|
char *game_logic::$67 // 22.0
|
|
char game_logic::$68 // 22.0
|
|
char game_logic::$69 // 22.0
|
|
char game_logic::$70 // 22.0
|
|
char *game_logic::$71 // 22.0
|
|
char game_logic::$72 // 22.0
|
|
char game_logic::$75 // 11.0
|
|
char game_logic::$77 // 11.0
|
|
char game_logic::$80 // 11.0
|
|
char game_logic::$82 // 11.0
|
|
char game_logic::$85 // 11.0
|
|
char game_logic::$87 // 11.0
|
|
char game_logic::$90 // 11.0
|
|
char game_logic::$92 // 11.0
|
|
char game_logic::do_reverse
|
|
char game_logic::do_reverse#4 // 11.0
|
|
char game_logic::ghost1_bob_xfine
|
|
char game_logic::ghost1_bob_xfine#0 // 5.5
|
|
char game_logic::ghost1_xtile
|
|
char game_logic::ghost1_xtile#0 // 2.357142857142857
|
|
char game_logic::ghost1_ytile
|
|
char game_logic::ghost1_ytile#0 // 2.357142857142857
|
|
char game_logic::ghost2_bob_xfine
|
|
char game_logic::ghost2_bob_xfine#0 // 5.5
|
|
char game_logic::ghost2_xtile
|
|
char game_logic::ghost2_xtile#0 // 2.357142857142857
|
|
char game_logic::ghost2_ytile
|
|
char game_logic::ghost2_ytile#0 // 2.357142857142857
|
|
char game_logic::ghost3_bob_xfine
|
|
char game_logic::ghost3_bob_xfine#0 // 5.5
|
|
char game_logic::ghost3_xtile
|
|
char game_logic::ghost3_xtile#0 // 2.357142857142857
|
|
char game_logic::ghost3_ytile
|
|
char game_logic::ghost3_ytile#0 // 2.357142857142857
|
|
char game_logic::ghost4_bob_xfine
|
|
char game_logic::ghost4_bob_xfine#0 // 5.5
|
|
char game_logic::ghost4_xtile
|
|
char game_logic::ghost4_xtile#0 // 2.357142857142857
|
|
char game_logic::ghost4_ytile
|
|
char game_logic::ghost4_ytile#0 // 2.357142857142857
|
|
char game_logic::ghost_frame_idx
|
|
char game_logic::ghost_frame_idx#0 // 16.5
|
|
char game_logic::ghost_frame_idx#1 // 22.0
|
|
char game_logic::ghost_frame_idx#2 // 1.9999999999999998
|
|
char game_logic::joy_directions
|
|
char game_logic::joy_directions#0 // 16.5
|
|
char game_logic::new_direction
|
|
char game_logic::new_direction#0 // 16.5
|
|
char game_logic::open_directions
|
|
char game_logic::open_directions#0 // 22.0
|
|
char game_logic::open_directions#1 // 5.5
|
|
char game_logic::open_directions1
|
|
char game_logic::open_directions1#0 // 22.0
|
|
char game_logic::open_directions1#1 // 5.5
|
|
char game_logic::open_directions2
|
|
char game_logic::open_directions2#0 // 22.0
|
|
char game_logic::open_directions2#1 // 5.5
|
|
char game_logic::open_directions3
|
|
char game_logic::open_directions3#0 // 22.0
|
|
char game_logic::open_directions3#1 // 5.5
|
|
char game_logic::open_directions4
|
|
char game_logic::open_directions4#0 // 3.666666666666667
|
|
char game_logic::pacman_bob_xfine
|
|
char game_logic::pacman_bob_xfine#0 // 5.5
|
|
char game_logic::pacman_xtile
|
|
char game_logic::pacman_xtile#0 // 6.769230769230768
|
|
char game_logic::pacman_xtile1
|
|
char game_logic::pacman_xtile1#0 // 11.0
|
|
char game_logic::pacman_ytile
|
|
char game_logic::pacman_ytile#0 // 22.0
|
|
char game_logic::pacman_ytile1
|
|
char game_logic::pacman_ytile1#0 // 11.0
|
|
char game_logic::target_xtile
|
|
char game_logic::target_xtile#2 // 11.0
|
|
char game_logic::target_xtile#3 // 5.5
|
|
char game_logic::target_xtile1
|
|
char game_logic::target_xtile1#2 // 11.0
|
|
char game_logic::target_xtile1#3 // 5.5
|
|
char game_logic::target_xtile2
|
|
char game_logic::target_xtile2#2 // 11.0
|
|
char game_logic::target_xtile2#3 // 5.5
|
|
char game_logic::target_xtile3
|
|
char game_logic::target_xtile3#2 // 11.0
|
|
char game_logic::target_xtile3#3 // 5.5
|
|
char game_logic::target_ytile
|
|
char game_logic::target_ytile#2 // 22.0
|
|
char game_logic::target_ytile#3 // 4.4
|
|
char game_logic::target_ytile1
|
|
char game_logic::target_ytile1#2 // 22.0
|
|
char game_logic::target_ytile1#3 // 4.4
|
|
char game_logic::target_ytile2
|
|
char game_logic::target_ytile2#2 // 22.0
|
|
char game_logic::target_ytile2#3 // 4.4
|
|
char game_logic::target_ytile3
|
|
char game_logic::target_ytile3#2 // 22.0
|
|
char game_logic::target_ytile3#3 // 4.4
|
|
char game_logic::tile_id
|
|
char game_logic::tile_id#0 // 16.5
|
|
char *game_logic::ytiles
|
|
char *game_logic::ytiles#0 // 5.5
|
|
__loadstore volatile char game_logic_substep // 2.947368421052632
|
|
__loadstore volatile char game_playable // 69.48275862068965
|
|
void gameplay_run()
|
|
unsigned int gameplay_run::$4 // 2002.0
|
|
char gameplay_run::i
|
|
char gameplay_run::i#1 // 200002.0
|
|
char gameplay_run::i#2 // 133334.66666666666
|
|
char gameplay_run::i1
|
|
char gameplay_run::i1#1 // 200002.0
|
|
char gameplay_run::i1#2 // 133334.66666666666
|
|
char gameplay_run::i2
|
|
char gameplay_run::i2#1 // 200002.0
|
|
char gameplay_run::i2#2 // 133334.66666666666
|
|
__loadstore volatile char ghost1_direction // 122.24096385542168
|
|
__loadstore volatile char ghost1_respawn // 271.8378378378378
|
|
__loadstore volatile char ghost1_reverse // 0.7291666666666666
|
|
__loadstore volatile char ghost1_substep // 223.51111111111112
|
|
__loadstore volatile char ghost1_xfine // 84.55
|
|
__loadstore volatile char ghost1_yfine // 82.13008130081302
|
|
__loadstore volatile char ghost2_direction // 110.28260869565217
|
|
__loadstore volatile char ghost2_respawn // 264.6842105263158
|
|
__loadstore volatile char ghost2_reverse // 0.7142857142857143
|
|
__loadstore volatile char ghost2_substep // 218.65217391304347
|
|
__loadstore volatile char ghost2_xfine // 76.28571428571428
|
|
__loadstore volatile char ghost2_yfine // 74.27941176470588
|
|
__loadstore volatile char ghost3_direction // 100.45544554455446
|
|
__loadstore volatile char ghost3_respawn // 257.8974358974359
|
|
__loadstore volatile char ghost3_reverse // 0.7
|
|
__loadstore volatile char ghost3_substep // 214.0
|
|
__loadstore volatile char ghost3_xfine // 69.4931506849315
|
|
__loadstore volatile char ghost3_yfine // 67.7986577181208
|
|
__loadstore volatile char ghost4_direction // 92.23636363636363
|
|
__loadstore volatile char ghost4_respawn // 251.45000000000002
|
|
__loadstore volatile char ghost4_reverse // 0.6862745098039216
|
|
__loadstore volatile char ghost4_substep // 209.54166666666666
|
|
__loadstore volatile char ghost4_xfine // 63.81132075471698
|
|
__loadstore volatile char ghost4_yfine // 62.358024691358025
|
|
__loadstore volatile char ghosts_mode // 1.1044776119402984
|
|
__loadstore volatile char ghosts_mode_count // 234.93023255813955
|
|
void init_bobs_restore()
|
|
char init_bobs_restore::bob
|
|
char init_bobs_restore::bob#1 // 20002.0
|
|
char init_bobs_restore::bob#2 // 2727.5454545454545
|
|
char *init_bobs_restore::bob_restore
|
|
char *init_bobs_restore::bob_restore#1 // 10001.0
|
|
char *init_bobs_restore::bob_restore#5 // 16000.7
|
|
char init_bobs_restore::i
|
|
char init_bobs_restore::i#1 // 200002.0
|
|
char init_bobs_restore::i#2 // 133334.66666666666
|
|
void init_level_tile_directions()
|
|
char init_level_tile_directions::$11 // 2.0000002E7
|
|
char init_level_tile_directions::$15 // 2.0000002E7
|
|
char init_level_tile_directions::$3 // 2.0000002E7
|
|
char init_level_tile_directions::$7 // 2.0000002E7
|
|
char *init_level_tile_directions::directions
|
|
char *init_level_tile_directions::directions#1 // 1000001.0
|
|
char *init_level_tile_directions::directions#7 // 315789.55263157893
|
|
char init_level_tile_directions::open_directions
|
|
char init_level_tile_directions::open_directions#11 // 2857143.1428571427
|
|
char init_level_tile_directions::open_directions#12 // 5714286.285714285
|
|
char init_level_tile_directions::open_directions#13 // 5714286.285714285
|
|
char init_level_tile_directions::open_directions#2 // 2.0000002E7
|
|
char init_level_tile_directions::open_directions#3 // 2.0000002E7
|
|
char init_level_tile_directions::open_directions#4 // 2.0000002E7
|
|
char init_level_tile_directions::open_directions#8 // 3.0000003E7
|
|
char init_level_tile_directions::xtile
|
|
char init_level_tile_directions::xtile#1 // 2.0000002E7
|
|
char init_level_tile_directions::xtile#10 // 2285714.514285714
|
|
char init_level_tile_directions::ytile
|
|
char init_level_tile_directions::ytile#1 // 2000002.0
|
|
char init_level_tile_directions::ytile#15 // 1102564.282051282
|
|
void init_render_index()
|
|
unsigned int init_render_index::$10 // 200002.0
|
|
unsigned int init_render_index::$11 // 200002.0
|
|
unsigned int *init_render_index::$12 // 200002.0
|
|
char init_render_index::$5 // 200002.0
|
|
char init_render_index::$6 // 200002.0
|
|
char init_render_index::$9 // 20002.0
|
|
char *init_render_index::canvas
|
|
char *init_render_index::canvas#0 // 100001.0
|
|
char *init_render_index::canvas_xcol
|
|
char *init_render_index::canvas_xcol#0 // 5789.578947368421
|
|
char *init_render_index::render_index
|
|
char *init_render_index::render_index#1 // 10001.0
|
|
char *init_render_index::render_index_xcol
|
|
char *init_render_index::render_index_xcol#0 // 1200.1200000000001
|
|
char *init_render_index::render_index_xcol#1 // 100001.0
|
|
char *init_render_index::render_index_xcol#2 // 34000.4
|
|
char *init_render_index::render_index_xcol#7 // 20002.0
|
|
unsigned int *init_render_index::render_ypos_table
|
|
unsigned int *init_render_index::render_ypos_table#4 // 4761.952380952381
|
|
char init_render_index::x_col
|
|
char init_render_index::x_col#1 // 20002.0
|
|
char init_render_index::x_col#2 // 1923.2692307692307
|
|
char init_render_index::y_pos
|
|
char init_render_index::y_pos#1 // 200002.0
|
|
char init_render_index::y_pos#2 // 18750.1875
|
|
char init_render_index::ypos_inc_offset
|
|
char init_render_index::ypos_inc_offset#2 // 200002.0
|
|
char init_render_index::ypos_inc_offset#3 // 200002.0
|
|
char init_render_index::ypos_inc_offset#4 // 28182.181818181816
|
|
char init_render_index::ypos_inc_offset#7 // 2500.25
|
|
char init_render_index::ypos_inc_offset#8 // 100001.0
|
|
void init_sprite_pointers()
|
|
char init_sprite_pointers::$2 // 2.0000002E7
|
|
char init_sprite_pointers::screen
|
|
char init_sprite_pointers::screen#1 // 2000002.0
|
|
char init_sprite_pointers::screen#2 // 1181818.5454545454
|
|
char init_sprite_pointers::sprite
|
|
char init_sprite_pointers::sprite#1 // 2.0000002E7
|
|
char init_sprite_pointers::sprite#2 // 1.0000001E7
|
|
char init_sprite_pointers::sprite_id
|
|
char init_sprite_pointers::sprite_id#0 // 1.50000015E7
|
|
char *init_sprite_pointers::sprites_ptr_1
|
|
char *init_sprite_pointers::sprites_ptr_1#1 // 666667.3333333334
|
|
char *init_sprite_pointers::sprites_ptr_1#5 // 1333333.6666666667
|
|
char *init_sprite_pointers::sprites_ptr_2
|
|
char *init_sprite_pointers::sprites_ptr_2#1 // 1000001.0
|
|
char *init_sprite_pointers::sprites_ptr_2#5 // 1200000.3
|
|
__interrupt(hardware_clobber) void irq_screen_top()
|
|
char irq_screen_top::$1 // 4.0
|
|
char irq_screen_top::$2 // 4.0
|
|
char *irq_screen_top::toD0181_gfx
|
|
char irq_screen_top::toD0181_return
|
|
char *irq_screen_top::toD0181_screen
|
|
char *irq_screen_top::toDd001_gfx
|
|
char irq_screen_top::toDd001_return
|
|
char *irq_screen_top::toDd002_gfx
|
|
char irq_screen_top::toDd002_return
|
|
char joyfire()
|
|
char joyfire::$0 // 2.0000002E7
|
|
char joyfire::return
|
|
char joyfire::return#0 // 2000002.0
|
|
char joyfire::return#1 // 20002.0
|
|
char joyfire::return#4 // 252500.5
|
|
void joyinit()
|
|
__loadstore char * volatile left_canvas // 20.0
|
|
__loadstore char * volatile left_render_index_xcol // 20.0
|
|
__loadstore volatile char left_ypos_inc_offset // 20.0
|
|
unsigned int level_show()
|
|
unsigned int level_show::count
|
|
unsigned int level_show::count#1 // 2.0000002E7
|
|
unsigned int level_show::count#10 // 4571429.285714285
|
|
unsigned int level_show::count#11 // 4285714.714285715
|
|
unsigned int level_show::count#12 // 500250.75
|
|
unsigned int level_show::count#2 // 2.0000002E7
|
|
unsigned int level_show::count#5 // 1.0000001E7
|
|
char *level_show::level
|
|
char *level_show::level#1 // 1000001.0
|
|
char *level_show::level#8 // 1100000.2
|
|
unsigned int level_show::return
|
|
unsigned int level_show::return#0 // 2002.0
|
|
char level_show::tile_left
|
|
char level_show::tile_left#0 // 2500000.25
|
|
char level_show::tile_right
|
|
char level_show::tile_right#0 // 3750000.375
|
|
char level_show::xcol
|
|
char level_show::xcol#1 // 2.0000002E7
|
|
char level_show::xcol#2 // 2352941.411764706
|
|
char level_show::xtile
|
|
char level_show::xtile#1 // 6000000.6
|
|
char level_show::xtile#2 // 2000000.2
|
|
char level_show::xtile#3 // 1.0000001E7
|
|
char level_show::ytile
|
|
char level_show::ytile#1 // 2000002.0
|
|
char level_show::ytile#2 // 619047.8095238095
|
|
char level_tile_directions(char xtile , char ytile)
|
|
char level_tile_directions::$5 // 202.0
|
|
char level_tile_directions::return
|
|
char level_tile_directions::return#0 // 202.0
|
|
char level_tile_directions::return#10 // 22.0
|
|
char level_tile_directions::return#11 // 22.0
|
|
char level_tile_directions::return#12 // 22.0
|
|
char level_tile_directions::return#13 // 22.0
|
|
char level_tile_directions::return#2 // 22.285714285714285
|
|
char level_tile_directions::return#3 // 22.0
|
|
char level_tile_directions::xtile
|
|
char level_tile_directions::xtile#0 // 11.0
|
|
char level_tile_directions::xtile#1 // 11.0
|
|
char level_tile_directions::xtile#2 // 11.0
|
|
char level_tile_directions::xtile#3 // 11.0
|
|
char level_tile_directions::xtile#4 // 11.0
|
|
char level_tile_directions::xtile#5 // 51.4
|
|
char level_tile_directions::ytile
|
|
char level_tile_directions::ytile#0 // 22.0
|
|
char level_tile_directions::ytile#1 // 22.0
|
|
char level_tile_directions::ytile#2 // 22.0
|
|
char level_tile_directions::ytile#3 // 22.0
|
|
char level_tile_directions::ytile#4 // 22.0
|
|
char level_tile_directions::ytile#5 // 85.66666666666666
|
|
char *level_tile_directions::ytiles
|
|
char *level_tile_directions::ytiles#0 // 202.0
|
|
char level_tile_get(char xtile , char ytile)
|
|
char level_tile_get::$5 // 2.00000002E8
|
|
char level_tile_get::return
|
|
char level_tile_get::return#0 // 2.00000002E8
|
|
char level_tile_get::return#10 // 2.0000002E7
|
|
char level_tile_get::return#11 // 2.0000002E7
|
|
char level_tile_get::return#2 // 2.3333334166666668E7
|
|
char level_tile_get::return#3 // 2.0000002E7
|
|
char level_tile_get::return#4 // 2.0000002E7
|
|
char level_tile_get::xtile
|
|
char level_tile_get::xtile#0 // 1.0000001E7
|
|
char level_tile_get::xtile#1 // 1.0000001E7
|
|
char level_tile_get::xtile#2 // 2.0000002E7
|
|
char level_tile_get::xtile#3 // 2.0000002E7
|
|
char level_tile_get::xtile#4 // 4.80000012E7
|
|
char level_tile_get::ytile
|
|
char level_tile_get::ytile#0 // 2.0000002E7
|
|
char level_tile_get::ytile#1 // 2.0000002E7
|
|
char level_tile_get::ytile#2 // 1.0000001E7
|
|
char level_tile_get::ytile#3 // 1.0000001E7
|
|
char level_tile_get::ytile#4 // 8.0000002E7
|
|
char *level_tile_get::ytiles
|
|
char *level_tile_get::ytiles#0 // 2.00000002E8
|
|
__loadstore volatile char logic_tile_left_idx // 20.0
|
|
__loadstore volatile char * volatile logic_tile_ptr // 10250.0
|
|
__loadstore volatile char logic_tile_right_idx // 20.0
|
|
__loadstore volatile char logic_tile_xcol // 10250.0
|
|
__loadstore volatile char logic_tile_yfine // 10250.0
|
|
void main()
|
|
void * memcpy(void *destination , void *source , unsigned int num)
|
|
void *memcpy::destination
|
|
char *memcpy::dst
|
|
char *memcpy::dst#1 // 10001.0
|
|
char *memcpy::dst#2 // 10001.0
|
|
unsigned int memcpy::num
|
|
void *memcpy::return
|
|
void *memcpy::source
|
|
char *memcpy::src
|
|
char *memcpy::src#1 // 20002.0
|
|
char *memcpy::src#2 // 10001.0
|
|
char *memcpy::src_end
|
|
void * memset(void *str , char c , unsigned int num)
|
|
char memset::c
|
|
char *memset::dst
|
|
char *memset::dst#1 // 20002.0
|
|
char *memset::dst#2 // 13668.333333333332
|
|
char *memset::dst#4 // 2002.0
|
|
char *memset::end
|
|
char *memset::end#0 // 1833.6666666666665
|
|
unsigned int memset::num
|
|
unsigned int memset::num#5 // 1001.0
|
|
void *memset::return
|
|
void *memset::str
|
|
void *memset::str#6
|
|
void merge_code(char *dest_code , char *raster_code , char *logic_code)
|
|
char merge_code::$5 // 100001.0
|
|
char merge_code::cycle_budget
|
|
char merge_code::cycle_budget#0 // 10001.0
|
|
char merge_code::cycle_budget#1 // 200002.0
|
|
char merge_code::cycle_budget#10 // 88889.77777777777
|
|
char merge_code::cycle_budget#13 // 50714.857142857145
|
|
char merge_code::cycle_budget#2 // 200002.0
|
|
char merge_code::cycle_budget#3 // 200002.0
|
|
char *merge_code::dest_code
|
|
char *merge_code::dest_code#0 // 10001.0
|
|
char *merge_code::dest_code#1 // 1000001.0
|
|
char *merge_code::dest_code#10 // 180001.80000000002
|
|
char *merge_code::dest_code#12 // 10334.666666666666
|
|
char *merge_code::dest_code#13 // 80001.25
|
|
char *merge_code::dest_code#14 // 21429.428571428572
|
|
char *merge_code::dest_code#15 // 640001.0
|
|
char *merge_code::dest_code#2 // 150001.5
|
|
char *merge_code::dest_code#21 // 51250.625
|
|
char *merge_code::dest_code#3 // 100001.0
|
|
char *merge_code::dest_code#4 // 100001.0
|
|
char *merge_code::dest_code#6 // 100001.0
|
|
char *merge_code::logic_code
|
|
char *merge_code::logic_code#0 // 200002.0
|
|
char *merge_code::logic_code#1 // 2000002.0
|
|
char *merge_code::logic_code#10 // 1050001.5
|
|
char *merge_code::logic_code#12 // 20002.0
|
|
char *merge_code::logic_code#14 // 105001.5
|
|
char *merge_code::logic_code#17 // 22778.055555555555
|
|
char *merge_code::logic_code#18 // 15556.111111111113
|
|
char *merge_code::logic_code#2 // 100001.0
|
|
char *merge_code::logic_code#3 // 20002.0
|
|
char *merge_code::logic_code#4 // 200002.0
|
|
char *merge_code::logic_code#5 // 20002.0
|
|
char merge_code::logic_cycles
|
|
char merge_code::logic_cycles#0 // 41667.08333333333
|
|
char *merge_code::raster_code
|
|
char *merge_code::raster_code#0 // 20002.0
|
|
char *merge_code::raster_code#1 // 15001.5
|
|
char *merge_code::raster_code#2 // 3928.6428571428573
|
|
char *merge_code::raster_code#4 // 37501.5
|
|
__loadstore volatile char music_play_next // 69506.875
|
|
__loadstore volatile char pacman_ch1_enabled // 0.08254716981132076
|
|
__loadstore volatile char pacman_ch1_idx // 1.9428571428571428
|
|
__loadstore volatile char pacman_direction // 132.92105263157893
|
|
__loadstore volatile char pacman_lives // 656.4415584415585
|
|
void pacman_sound_init()
|
|
void pacman_sound_play()
|
|
__loadstore volatile char pacman_substep // 233.39534883720933
|
|
__loadstore volatile char pacman_wins // 2040.32
|
|
__loadstore volatile char pacman_xfine // 47.719626168224295
|
|
__loadstore volatile char pacman_yfine // 46.21818181818182
|
|
__loadstore volatile char phase // 78.03703703703704
|
|
__loadstore volatile unsigned int pill_count // 14.191780821917808
|
|
void render(char xcol , char ypos , char pixels)
|
|
char render::$1 // 1.0000001E7
|
|
char render::$2 // 2.0000002E7
|
|
char *render::canvas1
|
|
char *render::canvas1#0 // 5000000.5
|
|
char *render::canvas1#1 // 5.00000000005E10
|
|
char *render::canvas1#2 // 1.00010000002E11
|
|
char *render::canvas2
|
|
char *render::canvas2#0 // 6666667.333333333
|
|
char *render::canvas2#1 // 6.6666666667333336E10
|
|
char *render::canvas2#2 // 5.0005000001E10
|
|
unsigned int render::canvas_offset
|
|
unsigned int render::canvas_offset#0 // 1.50000015E7
|
|
char render::i
|
|
char render::i#1 // 2.00000000002E11
|
|
char render::i#2 // 6.0000000000600006E10
|
|
char render::pixels
|
|
char render::pixels#0 // 2000002.0
|
|
char render::pixels#1 // 200002.0
|
|
char render::pixels#4 // 1241176.705882353
|
|
char *render::render_index_xcol
|
|
unsigned int render::render_index_xcol#0 // 2500000.25
|
|
char render::xcol
|
|
char render::xcol#0 // 666667.3333333334
|
|
char render::xcol#1 // 66667.33333333333
|
|
char render::xcol#2 // 5550001.5
|
|
char render::ypix
|
|
char render::ypix#0 // 1.4287142857428572E10
|
|
char render::ypos
|
|
char render::ypos#0 // 1000001.0
|
|
char render::ypos#1 // 100001.0
|
|
char render::ypos#2 // 2344444.888888889
|
|
char render::ypos_inc_offset
|
|
char render::ypos_inc_offset#0 // 1.0000001E7
|
|
char render::ypos_inc_offset#1 // 1.00000000001E11
|
|
char render::ypos_inc_offset#2 // 1.0000250000125E11
|
|
char render::ytile
|
|
char render::ytile#0 // 1.0000001E7
|
|
void render_tiles(char xcol , char ytile , char tile_left , char tile_right)
|
|
char render_tiles::$0 // 2.00000002E8
|
|
char render_tiles::$2 // 2.00000002E8
|
|
char render_tiles::$4 // 1.00000001E8
|
|
char render_tiles::$5 // 2.00000002E8
|
|
char *render_tiles::canvas1
|
|
char *render_tiles::canvas1#0 // 6.6666667333333336E7
|
|
char *render_tiles::canvas1#1 // 5.000000000005E11
|
|
char *render_tiles::canvas1#2 // 6.000200000008E11
|
|
char *render_tiles::canvas2
|
|
char *render_tiles::canvas2#0 // 1.00000001E8
|
|
char *render_tiles::canvas2#1 // 6.666666666673334E11
|
|
char *render_tiles::canvas2#2 // 5.000166666673334E11
|
|
unsigned int render_tiles::canvas_offset
|
|
unsigned int render_tiles::canvas_offset#0 // 1.500000015E8
|
|
char render_tiles::pixels
|
|
char render_tiles::pixels#0 // 1.5000000000015E12
|
|
char *render_tiles::render_index_xcol
|
|
unsigned int render_tiles::render_index_xcol#0 // 2.500000025E7
|
|
char render_tiles::tile_left
|
|
char render_tiles::tile_left#0 // 5.5000001E7
|
|
char *render_tiles::tile_left_pixels
|
|
char *render_tiles::tile_left_pixels#0 // 5.2636842105368416E10
|
|
char render_tiles::tile_right
|
|
char render_tiles::tile_right#0 // 3.6666667333333336E7
|
|
char *render_tiles::tile_right_pixels
|
|
char *render_tiles::tile_right_pixels#0 // 5.882941176482353E10
|
|
char render_tiles::xcol
|
|
char render_tiles::xcol#0 // 1.375000025E7
|
|
char render_tiles::y
|
|
char render_tiles::y#1 // 2.000000000002E12
|
|
char render_tiles::y#2 // 6.25000000000625E11
|
|
char render_tiles::ypos_inc_offset
|
|
char render_tiles::ypos_inc_offset#0 // 2.00000002E8
|
|
char render_tiles::ypos_inc_offset#1 // 1.000000000001E12
|
|
char render_tiles::ypos_inc_offset#2 // 5.714428571435714E11
|
|
char render_tiles::ytile
|
|
char render_tiles::ytile#0 // 1.375000025E7
|
|
__loadstore char * volatile rigt_canvas // 20.0
|
|
__loadstore char * volatile rigt_render_index_xcol // 20.0
|
|
__loadstore volatile char rigt_ypos_inc_offset // 20.0
|
|
__loadstore volatile char side_sprites_color // 11040.0
|
|
__loadstore volatile char side_sprites_mc // 11040.0
|
|
void spawn_all()
|
|
void splash_run()
|
|
char splash_run::$25 // 2002.0
|
|
char splash_run::$30 // 20002.0
|
|
char splash_run::$34 // 1334.6666666666667
|
|
char splash_run::i
|
|
char splash_run::i#1 // 2002.0
|
|
char splash_run::i#2 // 364.0
|
|
char splash_run::i1
|
|
char splash_run::i1#1 // 2002.0
|
|
char splash_run::i1#2 // 1334.6666666666667
|
|
char splash_run::i2
|
|
char splash_run::i2#1 // 2002.0
|
|
char splash_run::i2#2 // 1201.2
|
|
char splash_run::msb
|
|
char splash_run::msb#1 // 1001.0
|
|
char splash_run::msb#10 // 175.25
|
|
char splash_run::msb#2 // 2002.0
|
|
char splash_run::msb#8 // 1501.5
|
|
char *splash_run::toD0181_gfx
|
|
char splash_run::toD0181_return
|
|
char *splash_run::toD0181_screen
|
|
char *splash_run::toDd001_gfx
|
|
char splash_run::toDd001_return
|
|
unsigned int splash_run::xpos
|
|
unsigned int splash_run::xpos#0 // 667.3333333333334
|
|
void splash_show()
|
|
char splash_show::pixels
|
|
char splash_show::pixels#0 // 50000.5
|
|
char *splash_show::splash
|
|
char *splash_show::splash#1 // 33333.666666666664
|
|
char *splash_show::splash#2 // 80001.25
|
|
char *splash_show::splash#4 // 10001.0
|
|
char splash_show::xcol
|
|
char splash_show::xcol#1 // 20002.0
|
|
char splash_show::xcol#2 // 11818.545454545454
|
|
char splash_show::ypos
|
|
char splash_show::ypos#1 // 200002.0
|
|
char splash_show::ypos#2 // 50000.5
|
|
__loadstore volatile char top_sprites_color // 3403.666666666667
|
|
__loadstore volatile char top_sprites_mc // 92.0
|
|
|
|
Initial phi equivalence classes
|
|
[ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
[ game_logic::do_reverse#4 ]
|
|
[ game_logic::target_xtile#3 game_logic::target_xtile#2 ]
|
|
[ game_logic::target_ytile#3 game_logic::target_ytile#2 ]
|
|
[ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ]
|
|
[ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ]
|
|
[ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ]
|
|
[ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ]
|
|
[ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ]
|
|
[ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ]
|
|
[ splash_run::i#2 splash_run::i#1 ]
|
|
[ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ]
|
|
[ splash_run::i1#2 splash_run::i1#1 ]
|
|
[ splash_run::i2#2 splash_run::i2#1 ]
|
|
[ gameplay_run::i#2 gameplay_run::i#1 ]
|
|
[ gameplay_run::i1#2 gameplay_run::i1#1 ]
|
|
[ gameplay_run::i2#2 gameplay_run::i2#1 ]
|
|
[ done_run::i#2 done_run::i#1 ]
|
|
[ done_run::i1#2 done_run::i1#1 ]
|
|
[ done_run::xcol#2 done_run::xcol#1 ]
|
|
[ done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ]
|
|
[ done_run::ypos#2 done_run::ypos#1 ]
|
|
[ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ]
|
|
[ level_tile_directions::ytile#5 level_tile_directions::ytile#1 level_tile_directions::ytile#2 level_tile_directions::ytile#3 level_tile_directions::ytile#4 level_tile_directions::ytile#0 ]
|
|
[ level_tile_directions::return#2 level_tile_directions::return#0 ]
|
|
[ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ]
|
|
[ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ]
|
|
[ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ]
|
|
[ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ]
|
|
[ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
[ choose_direction::dist_min#6 choose_direction::dist_up#0 ]
|
|
[ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ]
|
|
[ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
[ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
[ memset::num#5 ]
|
|
[ memset::str#6 ]
|
|
[ memset::dst#2 memset::dst#4 memset::dst#1 ]
|
|
[ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 ]
|
|
[ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 ]
|
|
[ merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ]
|
|
[ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 ]
|
|
[ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ]
|
|
[ merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ]
|
|
[ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
[ init_render_index::render_index_xcol#0 init_render_index::render_index#1 ]
|
|
[ init_render_index::render_ypos_table#4 ]
|
|
[ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
[ init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ]
|
|
[ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ]
|
|
[ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
[ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 ]
|
|
[ splash_show::ypos#2 splash_show::ypos#1 ]
|
|
[ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
[ init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ]
|
|
[ init_bobs_restore::i#2 init_bobs_restore::i#1 ]
|
|
[ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ]
|
|
[ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 ]
|
|
[ init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ]
|
|
[ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ]
|
|
[ memcpy::src#2 memcpy::src#1 ]
|
|
[ memcpy::dst#2 memcpy::dst#1 ]
|
|
[ joyfire::return#4 ]
|
|
[ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ]
|
|
[ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 ]
|
|
[ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ]
|
|
[ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
[ level_show::ytile#2 level_show::ytile#1 ]
|
|
[ level_show::level#8 level_show::level#1 ]
|
|
[ level_show::xcol#2 level_show::xcol#1 ]
|
|
[ level_show::xtile#3 level_show::xtile#2 ]
|
|
[ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 ]
|
|
[ render::ypos#2 render::ypos#0 render::ypos#1 ]
|
|
[ render::xcol#2 render::xcol#0 render::xcol#1 ]
|
|
[ render::pixels#4 render::pixels#0 render::pixels#1 ]
|
|
[ render::i#2 render::i#1 ]
|
|
[ render::canvas1#2 render::canvas1#0 render::canvas1#1 ]
|
|
[ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ]
|
|
[ render::canvas2#2 render::canvas2#0 render::canvas2#1 ]
|
|
[ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ]
|
|
[ level_tile_get::ytile#4 level_tile_get::ytile#0 level_tile_get::ytile#1 level_tile_get::ytile#2 level_tile_get::ytile#3 ]
|
|
[ level_tile_get::return#2 level_tile_get::return#0 ]
|
|
[ render_tiles::y#2 render_tiles::y#1 ]
|
|
[ render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ]
|
|
[ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 ]
|
|
[ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ]
|
|
Added variable pacman_ch1_enabled to live range equivalence class [ pacman_ch1_enabled ]
|
|
Added variable pacman_ch1_idx to live range equivalence class [ pacman_ch1_idx ]
|
|
Added variable logic_tile_ptr to live range equivalence class [ logic_tile_ptr ]
|
|
Added variable logic_tile_xcol to live range equivalence class [ logic_tile_xcol ]
|
|
Added variable logic_tile_yfine to live range equivalence class [ logic_tile_yfine ]
|
|
Added variable logic_tile_left_idx to live range equivalence class [ logic_tile_left_idx ]
|
|
Added variable logic_tile_right_idx to live range equivalence class [ logic_tile_right_idx ]
|
|
Added variable left_render_index_xcol to live range equivalence class [ left_render_index_xcol ]
|
|
Added variable left_canvas to live range equivalence class [ left_canvas ]
|
|
Added variable left_ypos_inc_offset to live range equivalence class [ left_ypos_inc_offset ]
|
|
Added variable rigt_render_index_xcol to live range equivalence class [ rigt_render_index_xcol ]
|
|
Added variable rigt_canvas to live range equivalence class [ rigt_canvas ]
|
|
Added variable rigt_ypos_inc_offset to live range equivalence class [ rigt_ypos_inc_offset ]
|
|
Added variable canvas_base_hi to live range equivalence class [ canvas_base_hi ]
|
|
Added variable bobs_restore_base to live range equivalence class [ bobs_restore_base ]
|
|
Added variable top_sprites_color to live range equivalence class [ top_sprites_color ]
|
|
Added variable top_sprites_mc to live range equivalence class [ top_sprites_mc ]
|
|
Added variable side_sprites_color to live range equivalence class [ side_sprites_color ]
|
|
Added variable side_sprites_mc to live range equivalence class [ side_sprites_mc ]
|
|
Added variable bottom_sprites_color to live range equivalence class [ bottom_sprites_color ]
|
|
Added variable bottom_sprites_mc to live range equivalence class [ bottom_sprites_mc ]
|
|
Added variable pill_count to live range equivalence class [ pill_count ]
|
|
Added variable pacman_wins to live range equivalence class [ pacman_wins ]
|
|
Added variable pacman_lives to live range equivalence class [ pacman_lives ]
|
|
Added variable music_play_next to live range equivalence class [ music_play_next ]
|
|
Added variable phase to live range equivalence class [ phase ]
|
|
Added variable frame to live range equivalence class [ frame ]
|
|
Added variable anim_frame_idx to live range equivalence class [ anim_frame_idx ]
|
|
Added variable pacman_xfine to live range equivalence class [ pacman_xfine ]
|
|
Added variable pacman_yfine to live range equivalence class [ pacman_yfine ]
|
|
Added variable pacman_direction to live range equivalence class [ pacman_direction ]
|
|
Added variable pacman_substep to live range equivalence class [ pacman_substep ]
|
|
Added variable ghosts_mode to live range equivalence class [ ghosts_mode ]
|
|
Added variable ghosts_mode_count to live range equivalence class [ ghosts_mode_count ]
|
|
Added variable ghost1_xfine to live range equivalence class [ ghost1_xfine ]
|
|
Added variable ghost1_yfine to live range equivalence class [ ghost1_yfine ]
|
|
Added variable ghost1_direction to live range equivalence class [ ghost1_direction ]
|
|
Added variable ghost1_substep to live range equivalence class [ ghost1_substep ]
|
|
Added variable ghost1_reverse to live range equivalence class [ ghost1_reverse ]
|
|
Added variable ghost1_respawn to live range equivalence class [ ghost1_respawn ]
|
|
Added variable ghost2_xfine to live range equivalence class [ ghost2_xfine ]
|
|
Added variable ghost2_yfine to live range equivalence class [ ghost2_yfine ]
|
|
Added variable ghost2_direction to live range equivalence class [ ghost2_direction ]
|
|
Added variable ghost2_substep to live range equivalence class [ ghost2_substep ]
|
|
Added variable ghost2_reverse to live range equivalence class [ ghost2_reverse ]
|
|
Added variable ghost2_respawn to live range equivalence class [ ghost2_respawn ]
|
|
Added variable ghost3_xfine to live range equivalence class [ ghost3_xfine ]
|
|
Added variable ghost3_yfine to live range equivalence class [ ghost3_yfine ]
|
|
Added variable ghost3_direction to live range equivalence class [ ghost3_direction ]
|
|
Added variable ghost3_substep to live range equivalence class [ ghost3_substep ]
|
|
Added variable ghost3_reverse to live range equivalence class [ ghost3_reverse ]
|
|
Added variable ghost3_respawn to live range equivalence class [ ghost3_respawn ]
|
|
Added variable ghost4_xfine to live range equivalence class [ ghost4_xfine ]
|
|
Added variable ghost4_yfine to live range equivalence class [ ghost4_yfine ]
|
|
Added variable ghost4_direction to live range equivalence class [ ghost4_direction ]
|
|
Added variable ghost4_substep to live range equivalence class [ ghost4_substep ]
|
|
Added variable ghost4_reverse to live range equivalence class [ ghost4_reverse ]
|
|
Added variable ghost4_respawn to live range equivalence class [ ghost4_respawn ]
|
|
Added variable game_logic_substep to live range equivalence class [ game_logic_substep ]
|
|
Added variable game_playable to live range equivalence class [ game_playable ]
|
|
Added variable irq_screen_top::$1 to live range equivalence class [ irq_screen_top::$1 ]
|
|
Added variable irq_screen_top::$2 to live range equivalence class [ irq_screen_top::$2 ]
|
|
Added variable game_logic::$2 to live range equivalence class [ game_logic::$2 ]
|
|
Added variable game_logic::$3 to live range equivalence class [ game_logic::$3 ]
|
|
Added variable game_logic::$14 to live range equivalence class [ game_logic::$14 ]
|
|
Added variable game_logic::$15 to live range equivalence class [ game_logic::$15 ]
|
|
Added variable game_logic::pacman_bob_xfine#0 to live range equivalence class [ game_logic::pacman_bob_xfine#0 ]
|
|
Added variable game_logic::$17 to live range equivalence class [ game_logic::$17 ]
|
|
Added variable game_logic::$18 to live range equivalence class [ game_logic::$18 ]
|
|
Added variable game_logic::$19 to live range equivalence class [ game_logic::$19 ]
|
|
Added variable game_logic::$20 to live range equivalence class [ game_logic::$20 ]
|
|
Added variable game_logic::$21 to live range equivalence class [ game_logic::$21 ]
|
|
Added variable game_logic::ghost1_bob_xfine#0 to live range equivalence class [ game_logic::ghost1_bob_xfine#0 ]
|
|
Added variable game_logic::$25 to live range equivalence class [ game_logic::$25 ]
|
|
Added variable game_logic::$26 to live range equivalence class [ game_logic::$26 ]
|
|
Added variable game_logic::$27 to live range equivalence class [ game_logic::$27 ]
|
|
Added variable game_logic::$28 to live range equivalence class [ game_logic::$28 ]
|
|
Added variable game_logic::$29 to live range equivalence class [ game_logic::$29 ]
|
|
Added variable game_logic::ghost2_bob_xfine#0 to live range equivalence class [ game_logic::ghost2_bob_xfine#0 ]
|
|
Added variable game_logic::$31 to live range equivalence class [ game_logic::$31 ]
|
|
Added variable game_logic::$32 to live range equivalence class [ game_logic::$32 ]
|
|
Added variable game_logic::$33 to live range equivalence class [ game_logic::$33 ]
|
|
Added variable game_logic::$34 to live range equivalence class [ game_logic::$34 ]
|
|
Added variable game_logic::$35 to live range equivalence class [ game_logic::$35 ]
|
|
Added variable game_logic::ghost3_bob_xfine#0 to live range equivalence class [ game_logic::ghost3_bob_xfine#0 ]
|
|
Added variable game_logic::$37 to live range equivalence class [ game_logic::$37 ]
|
|
Added variable game_logic::$38 to live range equivalence class [ game_logic::$38 ]
|
|
Added variable game_logic::$39 to live range equivalence class [ game_logic::$39 ]
|
|
Added variable game_logic::$40 to live range equivalence class [ game_logic::$40 ]
|
|
Added variable game_logic::$41 to live range equivalence class [ game_logic::$41 ]
|
|
Added variable game_logic::ghost4_bob_xfine#0 to live range equivalence class [ game_logic::ghost4_bob_xfine#0 ]
|
|
Added variable game_logic::$43 to live range equivalence class [ game_logic::$43 ]
|
|
Added variable game_logic::$44 to live range equivalence class [ game_logic::$44 ]
|
|
Added variable game_logic::$45 to live range equivalence class [ game_logic::$45 ]
|
|
Added variable game_logic::$46 to live range equivalence class [ game_logic::$46 ]
|
|
Added variable game_logic::$47 to live range equivalence class [ game_logic::$47 ]
|
|
Added variable game_logic::pacman_xtile#0 to live range equivalence class [ game_logic::pacman_xtile#0 ]
|
|
Added variable game_logic::pacman_ytile#0 to live range equivalence class [ game_logic::pacman_ytile#0 ]
|
|
Added variable game_logic::$210 to live range equivalence class [ game_logic::$210 ]
|
|
Added variable game_logic::ytiles#0 to live range equivalence class [ game_logic::ytiles#0 ]
|
|
Added variable game_logic::tile_id#0 to live range equivalence class [ game_logic::tile_id#0 ]
|
|
Added variable game_logic::$65 to live range equivalence class [ game_logic::$65 ]
|
|
Added variable game_logic::$66 to live range equivalence class [ game_logic::$66 ]
|
|
Added variable game_logic::$67 to live range equivalence class [ game_logic::$67 ]
|
|
Added variable game_logic::$68 to live range equivalence class [ game_logic::$68 ]
|
|
Added variable game_logic::$75 to live range equivalence class [ game_logic::$75 ]
|
|
Added variable game_logic::$77 to live range equivalence class [ game_logic::$77 ]
|
|
Added variable game_logic::$80 to live range equivalence class [ game_logic::$80 ]
|
|
Added variable game_logic::$82 to live range equivalence class [ game_logic::$82 ]
|
|
Added variable game_logic::$85 to live range equivalence class [ game_logic::$85 ]
|
|
Added variable game_logic::$87 to live range equivalence class [ game_logic::$87 ]
|
|
Added variable game_logic::$90 to live range equivalence class [ game_logic::$90 ]
|
|
Added variable game_logic::$92 to live range equivalence class [ game_logic::$92 ]
|
|
Added variable game_logic::$69 to live range equivalence class [ game_logic::$69 ]
|
|
Added variable game_logic::$70 to live range equivalence class [ game_logic::$70 ]
|
|
Added variable game_logic::$71 to live range equivalence class [ game_logic::$71 ]
|
|
Added variable game_logic::$72 to live range equivalence class [ game_logic::$72 ]
|
|
Added variable game_logic::$220 to live range equivalence class [ game_logic::$220 ]
|
|
Added variable game_logic::ghost4_xtile#0 to live range equivalence class [ game_logic::ghost4_xtile#0 ]
|
|
Added variable game_logic::ghost4_ytile#0 to live range equivalence class [ game_logic::ghost4_ytile#0 ]
|
|
Added variable level_tile_directions::return#3 to live range equivalence class [ level_tile_directions::return#3 ]
|
|
Added variable game_logic::open_directions#0 to live range equivalence class [ game_logic::open_directions#0 ]
|
|
Added variable game_logic::open_directions#1 to live range equivalence class [ game_logic::open_directions#1 ]
|
|
Added variable choose_direction::return#0 to live range equivalence class [ choose_direction::return#0 ]
|
|
Added variable game_logic::$119 to live range equivalence class [ game_logic::$119 ]
|
|
Added variable game_logic::$223 to live range equivalence class [ game_logic::$223 ]
|
|
Added variable game_logic::ghost3_xtile#0 to live range equivalence class [ game_logic::ghost3_xtile#0 ]
|
|
Added variable game_logic::ghost3_ytile#0 to live range equivalence class [ game_logic::ghost3_ytile#0 ]
|
|
Added variable level_tile_directions::return#10 to live range equivalence class [ level_tile_directions::return#10 ]
|
|
Added variable game_logic::open_directions1#0 to live range equivalence class [ game_logic::open_directions1#0 ]
|
|
Added variable game_logic::open_directions1#1 to live range equivalence class [ game_logic::open_directions1#1 ]
|
|
Added variable choose_direction::return#1 to live range equivalence class [ choose_direction::return#1 ]
|
|
Added variable game_logic::$140 to live range equivalence class [ game_logic::$140 ]
|
|
Added variable game_logic::$226 to live range equivalence class [ game_logic::$226 ]
|
|
Added variable game_logic::ghost2_xtile#0 to live range equivalence class [ game_logic::ghost2_xtile#0 ]
|
|
Added variable game_logic::ghost2_ytile#0 to live range equivalence class [ game_logic::ghost2_ytile#0 ]
|
|
Added variable level_tile_directions::return#11 to live range equivalence class [ level_tile_directions::return#11 ]
|
|
Added variable game_logic::open_directions2#0 to live range equivalence class [ game_logic::open_directions2#0 ]
|
|
Added variable game_logic::open_directions2#1 to live range equivalence class [ game_logic::open_directions2#1 ]
|
|
Added variable choose_direction::return#2 to live range equivalence class [ choose_direction::return#2 ]
|
|
Added variable game_logic::$161 to live range equivalence class [ game_logic::$161 ]
|
|
Added variable game_logic::$229 to live range equivalence class [ game_logic::$229 ]
|
|
Added variable game_logic::ghost1_xtile#0 to live range equivalence class [ game_logic::ghost1_xtile#0 ]
|
|
Added variable game_logic::ghost1_ytile#0 to live range equivalence class [ game_logic::ghost1_ytile#0 ]
|
|
Added variable level_tile_directions::return#12 to live range equivalence class [ level_tile_directions::return#12 ]
|
|
Added variable game_logic::open_directions3#0 to live range equivalence class [ game_logic::open_directions3#0 ]
|
|
Added variable game_logic::open_directions3#1 to live range equivalence class [ game_logic::open_directions3#1 ]
|
|
Added variable choose_direction::return#3 to live range equivalence class [ choose_direction::return#3 ]
|
|
Added variable game_logic::$182 to live range equivalence class [ game_logic::$182 ]
|
|
Added variable game_logic::$232 to live range equivalence class [ game_logic::$232 ]
|
|
Added variable game_logic::pacman_xtile1#0 to live range equivalence class [ game_logic::pacman_xtile1#0 ]
|
|
Added variable game_logic::pacman_ytile1#0 to live range equivalence class [ game_logic::pacman_ytile1#0 ]
|
|
Added variable level_tile_directions::return#13 to live range equivalence class [ level_tile_directions::return#13 ]
|
|
Added variable game_logic::open_directions4#0 to live range equivalence class [ game_logic::open_directions4#0 ]
|
|
Added variable game_logic::$199 to live range equivalence class [ game_logic::$199 ]
|
|
Added variable game_logic::$200 to live range equivalence class [ game_logic::$200 ]
|
|
Added variable game_logic::joy_directions#0 to live range equivalence class [ game_logic::joy_directions#0 ]
|
|
Added variable game_logic::$204 to live range equivalence class [ game_logic::$204 ]
|
|
Added variable game_logic::new_direction#0 to live range equivalence class [ game_logic::new_direction#0 ]
|
|
Added variable byteboozer_decrunch::crunched to live range equivalence class [ byteboozer_decrunch::crunched ]
|
|
Added variable joyfire::return#1 to live range equivalence class [ joyfire::return#1 ]
|
|
Added variable splash_run::$30 to live range equivalence class [ splash_run::$30 ]
|
|
Added variable splash_run::$34 to live range equivalence class [ splash_run::$34 ]
|
|
Added variable splash_run::xpos#0 to live range equivalence class [ splash_run::xpos#0 ]
|
|
Added variable splash_run::$25 to live range equivalence class [ splash_run::$25 ]
|
|
Added variable level_show::return#0 to live range equivalence class [ level_show::return#0 ]
|
|
Added variable gameplay_run::$4 to live range equivalence class [ gameplay_run::$4 ]
|
|
Added variable joyfire::return#0 to live range equivalence class [ joyfire::return#0 ]
|
|
Added variable done_run::$8 to live range equivalence class [ done_run::$8 ]
|
|
Added variable done_run::pixels#0 to live range equivalence class [ done_run::pixels#0 ]
|
|
Added variable level_tile_directions::$5 to live range equivalence class [ level_tile_directions::$5 ]
|
|
Added variable level_tile_directions::ytiles#0 to live range equivalence class [ level_tile_directions::ytiles#0 ]
|
|
Added variable choose_direction::xdiff#0 to live range equivalence class [ choose_direction::xdiff#0 ]
|
|
Added variable choose_direction::ydiff#0 to live range equivalence class [ choose_direction::ydiff#0 ]
|
|
Added variable choose_direction::$2 to live range equivalence class [ choose_direction::$2 ]
|
|
Added variable choose_direction::$4 to live range equivalence class [ choose_direction::$4 ]
|
|
Added variable choose_direction::$6 to live range equivalence class [ choose_direction::$6 ]
|
|
Added variable choose_direction::$8 to live range equivalence class [ choose_direction::$8 ]
|
|
Added variable choose_direction::dist_right#0 to live range equivalence class [ choose_direction::dist_right#0 ]
|
|
Added variable memset::end#0 to live range equivalence class [ memset::end#0 ]
|
|
Added variable merge_code::raster_code#1 to live range equivalence class [ merge_code::raster_code#1 ]
|
|
Added variable merge_code::logic_cycles#0 to live range equivalence class [ merge_code::logic_cycles#0 ]
|
|
Added variable merge_code::$5 to live range equivalence class [ merge_code::$5 ]
|
|
Added variable merge_code::dest_code#2 to live range equivalence class [ merge_code::dest_code#2 ]
|
|
Added variable init_render_index::$9 to live range equivalence class [ init_render_index::$9 ]
|
|
Added variable init_render_index::canvas_xcol#0 to live range equivalence class [ init_render_index::canvas_xcol#0 ]
|
|
Added variable init_render_index::$11 to live range equivalence class [ init_render_index::$11 ]
|
|
Added variable init_render_index::$10 to live range equivalence class [ init_render_index::$10 ]
|
|
Added variable init_render_index::$12 to live range equivalence class [ init_render_index::$12 ]
|
|
Added variable init_render_index::canvas#0 to live range equivalence class [ init_render_index::canvas#0 ]
|
|
Added variable init_render_index::$5 to live range equivalence class [ init_render_index::$5 ]
|
|
Added variable init_render_index::$6 to live range equivalence class [ init_render_index::$6 ]
|
|
Added variable splash_show::pixels#0 to live range equivalence class [ splash_show::pixels#0 ]
|
|
Added variable init_sprite_pointers::$2 to live range equivalence class [ init_sprite_pointers::$2 ]
|
|
Added variable init_sprite_pointers::sprite_id#0 to live range equivalence class [ init_sprite_pointers::sprite_id#0 ]
|
|
Added variable joyfire::$0 to live range equivalence class [ joyfire::$0 ]
|
|
Added variable level_tile_get::return#3 to live range equivalence class [ level_tile_get::return#3 ]
|
|
Added variable init_level_tile_directions::$3 to live range equivalence class [ init_level_tile_directions::$3 ]
|
|
Added variable level_tile_get::return#4 to live range equivalence class [ level_tile_get::return#4 ]
|
|
Added variable init_level_tile_directions::$7 to live range equivalence class [ init_level_tile_directions::$7 ]
|
|
Added variable level_tile_get::return#10 to live range equivalence class [ level_tile_get::return#10 ]
|
|
Added variable init_level_tile_directions::$11 to live range equivalence class [ init_level_tile_directions::$11 ]
|
|
Added variable level_tile_get::return#11 to live range equivalence class [ level_tile_get::return#11 ]
|
|
Added variable init_level_tile_directions::$15 to live range equivalence class [ init_level_tile_directions::$15 ]
|
|
Added variable level_show::tile_left#0 to live range equivalence class [ level_show::tile_left#0 ]
|
|
Added variable level_show::xtile#1 to live range equivalence class [ level_show::xtile#1 ]
|
|
Added variable level_show::tile_right#0 to live range equivalence class [ level_show::tile_right#0 ]
|
|
Added variable render_tiles::xcol#0 to live range equivalence class [ render_tiles::xcol#0 ]
|
|
Added variable render_tiles::ytile#0 to live range equivalence class [ render_tiles::ytile#0 ]
|
|
Added variable render_tiles::tile_left#0 to live range equivalence class [ render_tiles::tile_left#0 ]
|
|
Added variable render_tiles::tile_right#0 to live range equivalence class [ render_tiles::tile_right#0 ]
|
|
Added variable render::ytile#0 to live range equivalence class [ render::ytile#0 ]
|
|
Added variable render::$1 to live range equivalence class [ render::$1 ]
|
|
Added variable render::$2 to live range equivalence class [ render::$2 ]
|
|
Added variable render::render_index_xcol#0 to live range equivalence class [ render::render_index_xcol#0 ]
|
|
Added variable render::canvas_offset#0 to live range equivalence class [ render::canvas_offset#0 ]
|
|
Added variable render::ypix#0 to live range equivalence class [ render::ypix#0 ]
|
|
Added variable level_tile_get::$5 to live range equivalence class [ level_tile_get::$5 ]
|
|
Added variable level_tile_get::ytiles#0 to live range equivalence class [ level_tile_get::ytiles#0 ]
|
|
Added variable render_tiles::$0 to live range equivalence class [ render_tiles::$0 ]
|
|
Added variable render_tiles::tile_left_pixels#0 to live range equivalence class [ render_tiles::tile_left_pixels#0 ]
|
|
Added variable render_tiles::$2 to live range equivalence class [ render_tiles::$2 ]
|
|
Added variable render_tiles::tile_right_pixels#0 to live range equivalence class [ render_tiles::tile_right_pixels#0 ]
|
|
Added variable render_tiles::$4 to live range equivalence class [ render_tiles::$4 ]
|
|
Added variable render_tiles::$5 to live range equivalence class [ render_tiles::$5 ]
|
|
Added variable render_tiles::render_index_xcol#0 to live range equivalence class [ render_tiles::render_index_xcol#0 ]
|
|
Added variable render_tiles::canvas_offset#0 to live range equivalence class [ render_tiles::canvas_offset#0 ]
|
|
Added variable render_tiles::pixels#0 to live range equivalence class [ render_tiles::pixels#0 ]
|
|
Complete equivalence classes
|
|
[ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
[ game_logic::do_reverse#4 ]
|
|
[ game_logic::target_xtile#3 game_logic::target_xtile#2 ]
|
|
[ game_logic::target_ytile#3 game_logic::target_ytile#2 ]
|
|
[ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ]
|
|
[ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ]
|
|
[ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ]
|
|
[ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ]
|
|
[ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ]
|
|
[ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ]
|
|
[ splash_run::i#2 splash_run::i#1 ]
|
|
[ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ]
|
|
[ splash_run::i1#2 splash_run::i1#1 ]
|
|
[ splash_run::i2#2 splash_run::i2#1 ]
|
|
[ gameplay_run::i#2 gameplay_run::i#1 ]
|
|
[ gameplay_run::i1#2 gameplay_run::i1#1 ]
|
|
[ gameplay_run::i2#2 gameplay_run::i2#1 ]
|
|
[ done_run::i#2 done_run::i#1 ]
|
|
[ done_run::i1#2 done_run::i1#1 ]
|
|
[ done_run::xcol#2 done_run::xcol#1 ]
|
|
[ done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ]
|
|
[ done_run::ypos#2 done_run::ypos#1 ]
|
|
[ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ]
|
|
[ level_tile_directions::ytile#5 level_tile_directions::ytile#1 level_tile_directions::ytile#2 level_tile_directions::ytile#3 level_tile_directions::ytile#4 level_tile_directions::ytile#0 ]
|
|
[ level_tile_directions::return#2 level_tile_directions::return#0 ]
|
|
[ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ]
|
|
[ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ]
|
|
[ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ]
|
|
[ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ]
|
|
[ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
[ choose_direction::dist_min#6 choose_direction::dist_up#0 ]
|
|
[ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ]
|
|
[ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
[ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
[ memset::num#5 ]
|
|
[ memset::str#6 ]
|
|
[ memset::dst#2 memset::dst#4 memset::dst#1 ]
|
|
[ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 ]
|
|
[ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 ]
|
|
[ merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ]
|
|
[ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 ]
|
|
[ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ]
|
|
[ merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ]
|
|
[ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
[ init_render_index::render_index_xcol#0 init_render_index::render_index#1 ]
|
|
[ init_render_index::render_ypos_table#4 ]
|
|
[ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
[ init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ]
|
|
[ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ]
|
|
[ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
[ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 ]
|
|
[ splash_show::ypos#2 splash_show::ypos#1 ]
|
|
[ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
[ init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ]
|
|
[ init_bobs_restore::i#2 init_bobs_restore::i#1 ]
|
|
[ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ]
|
|
[ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 ]
|
|
[ init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ]
|
|
[ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ]
|
|
[ memcpy::src#2 memcpy::src#1 ]
|
|
[ memcpy::dst#2 memcpy::dst#1 ]
|
|
[ joyfire::return#4 ]
|
|
[ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ]
|
|
[ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 ]
|
|
[ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ]
|
|
[ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
[ level_show::ytile#2 level_show::ytile#1 ]
|
|
[ level_show::level#8 level_show::level#1 ]
|
|
[ level_show::xcol#2 level_show::xcol#1 ]
|
|
[ level_show::xtile#3 level_show::xtile#2 ]
|
|
[ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 ]
|
|
[ render::ypos#2 render::ypos#0 render::ypos#1 ]
|
|
[ render::xcol#2 render::xcol#0 render::xcol#1 ]
|
|
[ render::pixels#4 render::pixels#0 render::pixels#1 ]
|
|
[ render::i#2 render::i#1 ]
|
|
[ render::canvas1#2 render::canvas1#0 render::canvas1#1 ]
|
|
[ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ]
|
|
[ render::canvas2#2 render::canvas2#0 render::canvas2#1 ]
|
|
[ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ]
|
|
[ level_tile_get::ytile#4 level_tile_get::ytile#0 level_tile_get::ytile#1 level_tile_get::ytile#2 level_tile_get::ytile#3 ]
|
|
[ level_tile_get::return#2 level_tile_get::return#0 ]
|
|
[ render_tiles::y#2 render_tiles::y#1 ]
|
|
[ render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ]
|
|
[ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 ]
|
|
[ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ]
|
|
[ pacman_ch1_enabled ]
|
|
[ pacman_ch1_idx ]
|
|
[ logic_tile_ptr ]
|
|
[ logic_tile_xcol ]
|
|
[ logic_tile_yfine ]
|
|
[ logic_tile_left_idx ]
|
|
[ logic_tile_right_idx ]
|
|
[ left_render_index_xcol ]
|
|
[ left_canvas ]
|
|
[ left_ypos_inc_offset ]
|
|
[ rigt_render_index_xcol ]
|
|
[ rigt_canvas ]
|
|
[ rigt_ypos_inc_offset ]
|
|
[ canvas_base_hi ]
|
|
[ bobs_restore_base ]
|
|
[ top_sprites_color ]
|
|
[ top_sprites_mc ]
|
|
[ side_sprites_color ]
|
|
[ side_sprites_mc ]
|
|
[ bottom_sprites_color ]
|
|
[ bottom_sprites_mc ]
|
|
[ pill_count ]
|
|
[ pacman_wins ]
|
|
[ pacman_lives ]
|
|
[ music_play_next ]
|
|
[ phase ]
|
|
[ frame ]
|
|
[ anim_frame_idx ]
|
|
[ pacman_xfine ]
|
|
[ pacman_yfine ]
|
|
[ pacman_direction ]
|
|
[ pacman_substep ]
|
|
[ ghosts_mode ]
|
|
[ ghosts_mode_count ]
|
|
[ ghost1_xfine ]
|
|
[ ghost1_yfine ]
|
|
[ ghost1_direction ]
|
|
[ ghost1_substep ]
|
|
[ ghost1_reverse ]
|
|
[ ghost1_respawn ]
|
|
[ ghost2_xfine ]
|
|
[ ghost2_yfine ]
|
|
[ ghost2_direction ]
|
|
[ ghost2_substep ]
|
|
[ ghost2_reverse ]
|
|
[ ghost2_respawn ]
|
|
[ ghost3_xfine ]
|
|
[ ghost3_yfine ]
|
|
[ ghost3_direction ]
|
|
[ ghost3_substep ]
|
|
[ ghost3_reverse ]
|
|
[ ghost3_respawn ]
|
|
[ ghost4_xfine ]
|
|
[ ghost4_yfine ]
|
|
[ ghost4_direction ]
|
|
[ ghost4_substep ]
|
|
[ ghost4_reverse ]
|
|
[ ghost4_respawn ]
|
|
[ game_logic_substep ]
|
|
[ game_playable ]
|
|
[ irq_screen_top::$1 ]
|
|
[ irq_screen_top::$2 ]
|
|
[ game_logic::$2 ]
|
|
[ game_logic::$3 ]
|
|
[ game_logic::$14 ]
|
|
[ game_logic::$15 ]
|
|
[ game_logic::pacman_bob_xfine#0 ]
|
|
[ game_logic::$17 ]
|
|
[ game_logic::$18 ]
|
|
[ game_logic::$19 ]
|
|
[ game_logic::$20 ]
|
|
[ game_logic::$21 ]
|
|
[ game_logic::ghost1_bob_xfine#0 ]
|
|
[ game_logic::$25 ]
|
|
[ game_logic::$26 ]
|
|
[ game_logic::$27 ]
|
|
[ game_logic::$28 ]
|
|
[ game_logic::$29 ]
|
|
[ game_logic::ghost2_bob_xfine#0 ]
|
|
[ game_logic::$31 ]
|
|
[ game_logic::$32 ]
|
|
[ game_logic::$33 ]
|
|
[ game_logic::$34 ]
|
|
[ game_logic::$35 ]
|
|
[ game_logic::ghost3_bob_xfine#0 ]
|
|
[ game_logic::$37 ]
|
|
[ game_logic::$38 ]
|
|
[ game_logic::$39 ]
|
|
[ game_logic::$40 ]
|
|
[ game_logic::$41 ]
|
|
[ game_logic::ghost4_bob_xfine#0 ]
|
|
[ game_logic::$43 ]
|
|
[ game_logic::$44 ]
|
|
[ game_logic::$45 ]
|
|
[ game_logic::$46 ]
|
|
[ game_logic::$47 ]
|
|
[ game_logic::pacman_xtile#0 ]
|
|
[ game_logic::pacman_ytile#0 ]
|
|
[ game_logic::$210 ]
|
|
[ game_logic::ytiles#0 ]
|
|
[ game_logic::tile_id#0 ]
|
|
[ game_logic::$65 ]
|
|
[ game_logic::$66 ]
|
|
[ game_logic::$67 ]
|
|
[ game_logic::$68 ]
|
|
[ game_logic::$75 ]
|
|
[ game_logic::$77 ]
|
|
[ game_logic::$80 ]
|
|
[ game_logic::$82 ]
|
|
[ game_logic::$85 ]
|
|
[ game_logic::$87 ]
|
|
[ game_logic::$90 ]
|
|
[ game_logic::$92 ]
|
|
[ game_logic::$69 ]
|
|
[ game_logic::$70 ]
|
|
[ game_logic::$71 ]
|
|
[ game_logic::$72 ]
|
|
[ game_logic::$220 ]
|
|
[ game_logic::ghost4_xtile#0 ]
|
|
[ game_logic::ghost4_ytile#0 ]
|
|
[ level_tile_directions::return#3 ]
|
|
[ game_logic::open_directions#0 ]
|
|
[ game_logic::open_directions#1 ]
|
|
[ choose_direction::return#0 ]
|
|
[ game_logic::$119 ]
|
|
[ game_logic::$223 ]
|
|
[ game_logic::ghost3_xtile#0 ]
|
|
[ game_logic::ghost3_ytile#0 ]
|
|
[ level_tile_directions::return#10 ]
|
|
[ game_logic::open_directions1#0 ]
|
|
[ game_logic::open_directions1#1 ]
|
|
[ choose_direction::return#1 ]
|
|
[ game_logic::$140 ]
|
|
[ game_logic::$226 ]
|
|
[ game_logic::ghost2_xtile#0 ]
|
|
[ game_logic::ghost2_ytile#0 ]
|
|
[ level_tile_directions::return#11 ]
|
|
[ game_logic::open_directions2#0 ]
|
|
[ game_logic::open_directions2#1 ]
|
|
[ choose_direction::return#2 ]
|
|
[ game_logic::$161 ]
|
|
[ game_logic::$229 ]
|
|
[ game_logic::ghost1_xtile#0 ]
|
|
[ game_logic::ghost1_ytile#0 ]
|
|
[ level_tile_directions::return#12 ]
|
|
[ game_logic::open_directions3#0 ]
|
|
[ game_logic::open_directions3#1 ]
|
|
[ choose_direction::return#3 ]
|
|
[ game_logic::$182 ]
|
|
[ game_logic::$232 ]
|
|
[ game_logic::pacman_xtile1#0 ]
|
|
[ game_logic::pacman_ytile1#0 ]
|
|
[ level_tile_directions::return#13 ]
|
|
[ game_logic::open_directions4#0 ]
|
|
[ game_logic::$199 ]
|
|
[ game_logic::$200 ]
|
|
[ game_logic::joy_directions#0 ]
|
|
[ game_logic::$204 ]
|
|
[ game_logic::new_direction#0 ]
|
|
[ byteboozer_decrunch::crunched ]
|
|
[ joyfire::return#1 ]
|
|
[ splash_run::$30 ]
|
|
[ splash_run::$34 ]
|
|
[ splash_run::xpos#0 ]
|
|
[ splash_run::$25 ]
|
|
[ level_show::return#0 ]
|
|
[ gameplay_run::$4 ]
|
|
[ joyfire::return#0 ]
|
|
[ done_run::$8 ]
|
|
[ done_run::pixels#0 ]
|
|
[ level_tile_directions::$5 ]
|
|
[ level_tile_directions::ytiles#0 ]
|
|
[ choose_direction::xdiff#0 ]
|
|
[ choose_direction::ydiff#0 ]
|
|
[ choose_direction::$2 ]
|
|
[ choose_direction::$4 ]
|
|
[ choose_direction::$6 ]
|
|
[ choose_direction::$8 ]
|
|
[ choose_direction::dist_right#0 ]
|
|
[ memset::end#0 ]
|
|
[ merge_code::raster_code#1 ]
|
|
[ merge_code::logic_cycles#0 ]
|
|
[ merge_code::$5 ]
|
|
[ merge_code::dest_code#2 ]
|
|
[ init_render_index::$9 ]
|
|
[ init_render_index::canvas_xcol#0 ]
|
|
[ init_render_index::$11 ]
|
|
[ init_render_index::$10 ]
|
|
[ init_render_index::$12 ]
|
|
[ init_render_index::canvas#0 ]
|
|
[ init_render_index::$5 ]
|
|
[ init_render_index::$6 ]
|
|
[ splash_show::pixels#0 ]
|
|
[ init_sprite_pointers::$2 ]
|
|
[ init_sprite_pointers::sprite_id#0 ]
|
|
[ joyfire::$0 ]
|
|
[ level_tile_get::return#3 ]
|
|
[ init_level_tile_directions::$3 ]
|
|
[ level_tile_get::return#4 ]
|
|
[ init_level_tile_directions::$7 ]
|
|
[ level_tile_get::return#10 ]
|
|
[ init_level_tile_directions::$11 ]
|
|
[ level_tile_get::return#11 ]
|
|
[ init_level_tile_directions::$15 ]
|
|
[ level_show::tile_left#0 ]
|
|
[ level_show::xtile#1 ]
|
|
[ level_show::tile_right#0 ]
|
|
[ render_tiles::xcol#0 ]
|
|
[ render_tiles::ytile#0 ]
|
|
[ render_tiles::tile_left#0 ]
|
|
[ render_tiles::tile_right#0 ]
|
|
[ render::ytile#0 ]
|
|
[ render::$1 ]
|
|
[ render::$2 ]
|
|
[ render::render_index_xcol#0 ]
|
|
[ render::canvas_offset#0 ]
|
|
[ render::ypix#0 ]
|
|
[ level_tile_get::$5 ]
|
|
[ level_tile_get::ytiles#0 ]
|
|
[ render_tiles::$0 ]
|
|
[ render_tiles::tile_left_pixels#0 ]
|
|
[ render_tiles::$2 ]
|
|
[ render_tiles::tile_right_pixels#0 ]
|
|
[ render_tiles::$4 ]
|
|
[ render_tiles::$5 ]
|
|
[ render_tiles::render_index_xcol#0 ]
|
|
[ render_tiles::canvas_offset#0 ]
|
|
[ render_tiles::pixels#0 ]
|
|
Allocated zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ]
|
|
Allocated zp[1]:3 [ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ]
|
|
Allocated zp[1]:4 [ render_tiles::pixels#0 ]
|
|
Allocated zp[2]:5 [ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 ]
|
|
Allocated zp[2]:7 [ render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ]
|
|
Allocated zp[1]:9 [ render::i#2 render::i#1 ]
|
|
Allocated zp[1]:10 [ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ]
|
|
Allocated zp[2]:11 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 ]
|
|
Allocated zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 ]
|
|
Allocated zp[2]:15 [ render_tiles::tile_right_pixels#0 ]
|
|
Allocated zp[2]:17 [ render_tiles::tile_left_pixels#0 ]
|
|
Allocated zp[1]:19 [ render::ypix#0 ]
|
|
Allocated zp[1]:20 [ level_tile_get::return#2 level_tile_get::return#0 ]
|
|
Allocated zp[1]:21 [ level_tile_get::$5 ]
|
|
Allocated zp[2]:22 [ level_tile_get::ytiles#0 ]
|
|
Allocated zp[1]:24 [ render_tiles::$0 ]
|
|
Allocated zp[1]:25 [ render_tiles::$2 ]
|
|
Allocated zp[1]:26 [ render_tiles::$5 ]
|
|
Allocated zp[2]:27 [ render_tiles::canvas_offset#0 ]
|
|
Allocated zp[1]:29 [ level_tile_get::ytile#4 level_tile_get::ytile#0 level_tile_get::ytile#1 level_tile_get::ytile#2 level_tile_get::ytile#3 ]
|
|
Allocated zp[1]:30 [ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ]
|
|
Allocated zp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
Allocated zp[1]:32 [ render_tiles::$4 ]
|
|
Allocated zp[2]:33 [ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 ]
|
|
Allocated zp[1]:35 [ render_tiles::tile_left#0 ]
|
|
Allocated zp[1]:36 [ render_tiles::tile_right#0 ]
|
|
Allocated zp[1]:37 [ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ]
|
|
Allocated zp[2]:38 [ render_tiles::render_index_xcol#0 ]
|
|
Allocated zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ]
|
|
Allocated zp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ]
|
|
Allocated zp[1]:42 [ init_sprite_pointers::$2 ]
|
|
Allocated zp[1]:43 [ joyfire::$0 ]
|
|
Allocated zp[1]:44 [ level_tile_get::return#3 ]
|
|
Allocated zp[1]:45 [ init_level_tile_directions::$3 ]
|
|
Allocated zp[1]:46 [ level_tile_get::return#4 ]
|
|
Allocated zp[1]:47 [ init_level_tile_directions::$7 ]
|
|
Allocated zp[1]:48 [ level_tile_get::return#10 ]
|
|
Allocated zp[1]:49 [ init_level_tile_directions::$11 ]
|
|
Allocated zp[1]:50 [ level_tile_get::return#11 ]
|
|
Allocated zp[1]:51 [ init_level_tile_directions::$15 ]
|
|
Allocated zp[1]:52 [ render::$2 ]
|
|
Allocated zp[1]:53 [ init_sprite_pointers::sprite_id#0 ]
|
|
Allocated zp[2]:54 [ render::canvas_offset#0 ]
|
|
Allocated zp[1]:56 [ render_tiles::xcol#0 ]
|
|
Allocated zp[1]:57 [ render_tiles::ytile#0 ]
|
|
Allocated zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ]
|
|
Allocated zp[1]:59 [ render::ytile#0 ]
|
|
Allocated zp[1]:60 [ render::$1 ]
|
|
Allocated zp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ]
|
|
Allocated zp[1]:62 [ level_show::xtile#1 ]
|
|
Allocated zp[1]:63 [ level_show::tile_right#0 ]
|
|
Allocated zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ]
|
|
Allocated zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ]
|
|
Allocated zp[2]:66 [ merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ]
|
|
Allocated zp[1]:68 [ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ]
|
|
Allocated zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ]
|
|
Allocated zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ]
|
|
Allocated zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ]
|
|
Allocated zp[1]:72 [ level_show::tile_left#0 ]
|
|
Allocated zp[2]:73 [ render::render_index_xcol#0 ]
|
|
Allocated zp[2]:75 [ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 ]
|
|
Allocated zp[2]:77 [ init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ]
|
|
Allocated zp[2]:79 [ level_show::level#8 level_show::level#1 ]
|
|
Allocated zp[1]:81 [ joyfire::return#0 ]
|
|
Allocated zp[1]:82 [ done_run::$8 ]
|
|
Allocated zp[2]:83 [ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 ]
|
|
Allocated zp[2]:85 [ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 ]
|
|
Allocated zp[2]:87 [ done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ]
|
|
Allocated zp[1]:89 [ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ]
|
|
Allocated zp[1]:90 [ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ]
|
|
Allocated zp[1]:91 [ done_run::pixels#0 ]
|
|
Allocated zp[1]:92 [ gameplay_run::i#2 gameplay_run::i#1 ]
|
|
Allocated zp[1]:93 [ gameplay_run::i1#2 gameplay_run::i1#1 ]
|
|
Allocated zp[1]:94 [ gameplay_run::i2#2 gameplay_run::i2#1 ]
|
|
Allocated zp[1]:95 [ done_run::i#2 done_run::i#1 ]
|
|
Allocated zp[1]:96 [ init_bobs_restore::i#2 init_bobs_restore::i#1 ]
|
|
Allocated zp[2]:97 [ merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ]
|
|
Allocated zp[1]:99 [ done_run::i1#2 done_run::i1#1 ]
|
|
Allocated zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ]
|
|
Allocated zp[1]:101 [ joyfire::return#4 ]
|
|
Allocated zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ]
|
|
Allocated zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
Allocated zp[2]:104 [ init_render_index::$11 ]
|
|
Allocated zp[2]:106 [ init_render_index::$10 ]
|
|
Allocated zp[2]:108 [ init_render_index::$12 ]
|
|
Allocated zp[1]:110 [ init_render_index::$5 ]
|
|
Allocated zp[1]:111 [ init_render_index::$6 ]
|
|
Allocated zp[2]:112 [ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 ]
|
|
Allocated zp[2]:114 [ init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ]
|
|
Allocated zp[2]:116 [ merge_code::dest_code#2 ]
|
|
Allocated zp[2]:118 [ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 ]
|
|
Allocated zp[1]:120 [ merge_code::$5 ]
|
|
Allocated zp[2]:121 [ init_render_index::canvas#0 ]
|
|
Allocated zp[1]:123 [ music_play_next ]
|
|
Allocated zp[2]:124 [ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 ]
|
|
Allocated zp[1]:126 [ splash_show::pixels#0 ]
|
|
Allocated zp[1]:127 [ merge_code::logic_cycles#0 ]
|
|
Allocated zp[2]:128 [ memset::dst#2 memset::dst#4 memset::dst#1 ]
|
|
Allocated zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Allocated zp[2]:131 [ memcpy::src#2 memcpy::src#1 ]
|
|
Allocated zp[2]:133 [ init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ]
|
|
Allocated zp[1]:135 [ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
Allocated zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
Allocated zp[2]:137 [ memcpy::dst#2 memcpy::dst#1 ]
|
|
Allocated zp[1]:139 [ joyfire::return#1 ]
|
|
Allocated zp[1]:140 [ splash_run::$30 ]
|
|
Allocated zp[1]:141 [ init_render_index::$9 ]
|
|
Allocated zp[2]:142 [ merge_code::raster_code#1 ]
|
|
Allocated zp[2]:144 [ init_render_index::render_index_xcol#0 init_render_index::render_index#1 ]
|
|
Allocated zp[1]:146 [ side_sprites_color ]
|
|
Allocated zp[1]:147 [ side_sprites_mc ]
|
|
Allocated zp[1]:148 [ bottom_sprites_color ]
|
|
Allocated zp[1]:149 [ bottom_sprites_mc ]
|
|
Allocated zp[2]:150 [ logic_tile_ptr ]
|
|
Allocated zp[1]:152 [ logic_tile_xcol ]
|
|
Allocated zp[1]:153 [ logic_tile_yfine ]
|
|
Allocated zp[2]:154 [ init_render_index::canvas_xcol#0 ]
|
|
Allocated zp[2]:156 [ init_render_index::render_ypos_table#4 ]
|
|
Allocated zp[1]:158 [ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ]
|
|
Allocated zp[1]:159 [ top_sprites_color ]
|
|
Allocated zp[1]:160 [ splash_run::i1#2 splash_run::i1#1 ]
|
|
Allocated zp[1]:161 [ splash_run::i2#2 splash_run::i2#1 ]
|
|
Allocated zp[1]:162 [ splash_run::i#2 splash_run::i#1 ]
|
|
Allocated zp[1]:163 [ pacman_wins ]
|
|
Allocated zp[1]:164 [ splash_run::$25 ]
|
|
Allocated zp[2]:165 [ level_show::return#0 ]
|
|
Allocated zp[2]:167 [ gameplay_run::$4 ]
|
|
Allocated zp[2]:169 [ memset::end#0 ]
|
|
Allocated zp[1]:171 [ splash_run::$34 ]
|
|
Allocated zp[1]:172 [ canvas_base_hi ]
|
|
Allocated zp[1]:173 [ bobs_restore_base ]
|
|
Allocated zp[2]:174 [ memset::num#5 ]
|
|
Allocated zp[1]:176 [ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ]
|
|
Allocated zp[2]:177 [ splash_run::xpos#0 ]
|
|
Allocated zp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
Allocated zp[1]:180 [ pacman_lives ]
|
|
Allocated zp[2]:181 [ byteboozer_decrunch::crunched ]
|
|
Allocated zp[1]:183 [ ghost1_respawn ]
|
|
Allocated zp[1]:184 [ ghost2_respawn ]
|
|
Allocated zp[1]:185 [ ghost3_respawn ]
|
|
Allocated zp[1]:186 [ ghost4_respawn ]
|
|
Allocated zp[1]:187 [ ghosts_mode_count ]
|
|
Allocated zp[1]:188 [ pacman_substep ]
|
|
Allocated zp[1]:189 [ level_tile_directions::return#2 level_tile_directions::return#0 ]
|
|
Allocated zp[1]:190 [ ghost1_substep ]
|
|
Allocated zp[1]:191 [ ghost2_substep ]
|
|
Allocated zp[1]:192 [ ghost3_substep ]
|
|
Allocated zp[1]:193 [ ghost4_substep ]
|
|
Allocated zp[1]:194 [ level_tile_directions::$5 ]
|
|
Allocated zp[2]:195 [ level_tile_directions::ytiles#0 ]
|
|
Allocated zp[1]:197 [ choose_direction::$2 ]
|
|
Allocated zp[1]:198 [ choose_direction::$4 ]
|
|
Allocated zp[1]:199 [ choose_direction::$6 ]
|
|
Allocated zp[1]:200 [ choose_direction::$8 ]
|
|
Allocated zp[1]:201 [ choose_direction::dist_right#0 ]
|
|
Allocated zp[1]:202 [ level_tile_directions::ytile#5 level_tile_directions::ytile#1 level_tile_directions::ytile#2 level_tile_directions::ytile#3 level_tile_directions::ytile#4 level_tile_directions::ytile#0 ]
|
|
Allocated zp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
Allocated zp[1]:204 [ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ]
|
|
Allocated zp[1]:205 [ choose_direction::dist_min#6 choose_direction::dist_up#0 ]
|
|
Allocated zp[1]:206 [ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ]
|
|
Allocated zp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ]
|
|
Allocated zp[1]:208 [ pacman_direction ]
|
|
Allocated zp[1]:209 [ ghost1_direction ]
|
|
Allocated zp[1]:210 [ ghost2_direction ]
|
|
Allocated zp[1]:211 [ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ]
|
|
Allocated zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ]
|
|
Allocated zp[1]:213 [ ghost3_direction ]
|
|
Allocated zp[1]:214 [ ghost4_direction ]
|
|
Allocated zp[1]:215 [ top_sprites_mc ]
|
|
Allocated zp[1]:216 [ ghost1_xfine ]
|
|
Allocated zp[1]:217 [ ghost1_yfine ]
|
|
Allocated zp[1]:218 [ phase ]
|
|
Allocated zp[1]:219 [ ghost2_xfine ]
|
|
Allocated zp[1]:220 [ ghost2_yfine ]
|
|
Allocated zp[1]:221 [ ghost3_xfine ]
|
|
Allocated zp[1]:222 [ game_playable ]
|
|
Allocated zp[1]:223 [ ghost3_yfine ]
|
|
Allocated zp[1]:224 [ ghost4_xfine ]
|
|
Allocated zp[1]:225 [ ghost4_yfine ]
|
|
Allocated zp[1]:226 [ pacman_xfine ]
|
|
Allocated zp[1]:227 [ pacman_yfine ]
|
|
Allocated zp[1]:228 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
Allocated zp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
Allocated zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 ]
|
|
Allocated zp[1]:231 [ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ]
|
|
Allocated zp[1]:232 [ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ]
|
|
Allocated zp[1]:233 [ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ]
|
|
Allocated zp[1]:234 [ game_logic::$2 ]
|
|
Allocated zp[1]:235 [ game_logic::$3 ]
|
|
Allocated zp[1]:236 [ game_logic::$14 ]
|
|
Allocated zp[1]:237 [ game_logic::$15 ]
|
|
Allocated zp[1]:238 [ game_logic::$17 ]
|
|
Allocated zp[1]:239 [ game_logic::$18 ]
|
|
Allocated zp[1]:240 [ game_logic::$20 ]
|
|
Allocated zp[1]:241 [ game_logic::$21 ]
|
|
Allocated zp[1]:242 [ game_logic::$25 ]
|
|
Allocated zp[1]:243 [ game_logic::$26 ]
|
|
Allocated zp[1]:244 [ game_logic::$28 ]
|
|
Allocated zp[1]:245 [ game_logic::$29 ]
|
|
Allocated zp[1]:246 [ game_logic::$31 ]
|
|
Allocated zp[1]:247 [ game_logic::$32 ]
|
|
Allocated zp[1]:248 [ game_logic::$34 ]
|
|
Allocated zp[1]:249 [ game_logic::$35 ]
|
|
Allocated zp[1]:250 [ game_logic::$37 ]
|
|
Allocated zp[1]:251 [ game_logic::$38 ]
|
|
Allocated zp[1]:256 [ game_logic::$40 ]
|
|
Allocated zp[1]:257 [ game_logic::$41 ]
|
|
Allocated zp[1]:258 [ game_logic::$43 ]
|
|
Allocated zp[1]:259 [ game_logic::$44 ]
|
|
Allocated zp[1]:260 [ game_logic::$46 ]
|
|
Allocated zp[1]:261 [ game_logic::$47 ]
|
|
Allocated zp[1]:262 [ game_logic::pacman_ytile#0 ]
|
|
Allocated zp[1]:263 [ game_logic::$65 ]
|
|
Allocated zp[1]:264 [ game_logic::$66 ]
|
|
Allocated zp[2]:265 [ game_logic::$67 ]
|
|
Allocated zp[1]:267 [ game_logic::$68 ]
|
|
Allocated zp[1]:268 [ game_logic::$69 ]
|
|
Allocated zp[1]:269 [ game_logic::$70 ]
|
|
Allocated zp[2]:270 [ game_logic::$71 ]
|
|
Allocated zp[1]:272 [ game_logic::$72 ]
|
|
Allocated zp[1]:273 [ level_tile_directions::return#3 ]
|
|
Allocated zp[1]:274 [ game_logic::open_directions#0 ]
|
|
Allocated zp[1]:275 [ choose_direction::return#0 ]
|
|
Allocated zp[1]:276 [ game_logic::$119 ]
|
|
Allocated zp[1]:277 [ level_tile_directions::return#10 ]
|
|
Allocated zp[1]:278 [ game_logic::open_directions1#0 ]
|
|
Allocated zp[1]:279 [ choose_direction::return#1 ]
|
|
Allocated zp[1]:280 [ game_logic::$140 ]
|
|
Allocated zp[1]:281 [ level_tile_directions::return#11 ]
|
|
Allocated zp[1]:282 [ game_logic::open_directions2#0 ]
|
|
Allocated zp[1]:283 [ choose_direction::return#2 ]
|
|
Allocated zp[1]:284 [ game_logic::$161 ]
|
|
Allocated zp[1]:285 [ level_tile_directions::return#12 ]
|
|
Allocated zp[1]:286 [ game_logic::open_directions3#0 ]
|
|
Allocated zp[1]:287 [ choose_direction::return#3 ]
|
|
Allocated zp[1]:288 [ game_logic::$182 ]
|
|
Allocated zp[1]:289 [ level_tile_directions::return#13 ]
|
|
Allocated zp[1]:290 [ game_logic::$199 ]
|
|
Allocated zp[1]:291 [ game_logic::$200 ]
|
|
Allocated zp[1]:292 [ game_logic::$204 ]
|
|
Allocated zp[1]:293 [ choose_direction::ydiff#0 ]
|
|
Allocated zp[1]:294 [ choose_direction::xdiff#0 ]
|
|
Allocated zp[1]:295 [ logic_tile_left_idx ]
|
|
Allocated zp[1]:296 [ logic_tile_right_idx ]
|
|
Allocated zp[2]:297 [ left_render_index_xcol ]
|
|
Allocated zp[2]:299 [ left_canvas ]
|
|
Allocated zp[1]:301 [ left_ypos_inc_offset ]
|
|
Allocated zp[2]:302 [ rigt_render_index_xcol ]
|
|
Allocated zp[2]:304 [ rigt_canvas ]
|
|
Allocated zp[1]:306 [ rigt_ypos_inc_offset ]
|
|
Allocated zp[1]:307 [ game_logic::target_xtile#3 game_logic::target_xtile#2 ]
|
|
Allocated zp[1]:308 [ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ]
|
|
Allocated zp[1]:309 [ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ]
|
|
Allocated zp[1]:310 [ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ]
|
|
Allocated zp[1]:311 [ game_logic::tile_id#0 ]
|
|
Allocated zp[1]:312 [ game_logic::joy_directions#0 ]
|
|
Allocated zp[1]:313 [ game_logic::new_direction#0 ]
|
|
Allocated zp[2]:314 [ pill_count ]
|
|
Allocated zp[1]:316 [ game_logic::do_reverse#4 ]
|
|
Allocated zp[1]:317 [ game_logic::$19 ]
|
|
Allocated zp[1]:318 [ game_logic::$27 ]
|
|
Allocated zp[1]:319 [ game_logic::$33 ]
|
|
Allocated zp[1]:320 [ game_logic::$39 ]
|
|
Allocated zp[1]:321 [ game_logic::$45 ]
|
|
Allocated zp[1]:322 [ game_logic::$75 ]
|
|
Allocated zp[1]:323 [ game_logic::$77 ]
|
|
Allocated zp[1]:324 [ game_logic::$80 ]
|
|
Allocated zp[1]:325 [ game_logic::$82 ]
|
|
Allocated zp[1]:326 [ game_logic::$85 ]
|
|
Allocated zp[1]:327 [ game_logic::$87 ]
|
|
Allocated zp[1]:328 [ game_logic::$90 ]
|
|
Allocated zp[1]:329 [ game_logic::$92 ]
|
|
Allocated zp[1]:330 [ game_logic::$220 ]
|
|
Allocated zp[1]:331 [ game_logic::$223 ]
|
|
Allocated zp[1]:332 [ game_logic::$226 ]
|
|
Allocated zp[1]:333 [ game_logic::$229 ]
|
|
Allocated zp[1]:334 [ game_logic::$232 ]
|
|
Allocated zp[1]:335 [ game_logic::pacman_xtile1#0 ]
|
|
Allocated zp[1]:336 [ game_logic::pacman_ytile1#0 ]
|
|
Allocated zp[1]:337 [ game_logic::pacman_xtile#0 ]
|
|
Allocated zp[1]:338 [ game_logic::pacman_bob_xfine#0 ]
|
|
Allocated zp[1]:339 [ game_logic::ghost1_bob_xfine#0 ]
|
|
Allocated zp[1]:340 [ game_logic::ghost2_bob_xfine#0 ]
|
|
Allocated zp[1]:341 [ game_logic::ghost3_bob_xfine#0 ]
|
|
Allocated zp[1]:342 [ game_logic::ghost4_bob_xfine#0 ]
|
|
Allocated zp[2]:343 [ game_logic::ytiles#0 ]
|
|
Allocated zp[1]:345 [ game_logic::open_directions#1 ]
|
|
Allocated zp[1]:346 [ game_logic::open_directions1#1 ]
|
|
Allocated zp[1]:347 [ game_logic::open_directions2#1 ]
|
|
Allocated zp[1]:348 [ game_logic::open_directions3#1 ]
|
|
Allocated zp[1]:349 [ irq_screen_top::$1 ]
|
|
Allocated zp[1]:350 [ irq_screen_top::$2 ]
|
|
Allocated zp[1]:351 [ game_logic::open_directions4#0 ]
|
|
Allocated zp[1]:352 [ game_logic_substep ]
|
|
Allocated zp[1]:353 [ game_logic::$210 ]
|
|
Allocated zp[1]:354 [ game_logic::ghost4_xtile#0 ]
|
|
Allocated zp[1]:355 [ game_logic::ghost4_ytile#0 ]
|
|
Allocated zp[1]:356 [ game_logic::ghost3_xtile#0 ]
|
|
Allocated zp[1]:357 [ game_logic::ghost3_ytile#0 ]
|
|
Allocated zp[1]:358 [ game_logic::ghost2_xtile#0 ]
|
|
Allocated zp[1]:359 [ game_logic::ghost2_ytile#0 ]
|
|
Allocated zp[1]:360 [ game_logic::ghost1_xtile#0 ]
|
|
Allocated zp[1]:361 [ game_logic::ghost1_ytile#0 ]
|
|
Allocated zp[1]:362 [ pacman_ch1_idx ]
|
|
Allocated zp[1]:363 [ ghosts_mode ]
|
|
Allocated zp[1]:364 [ anim_frame_idx ]
|
|
Allocated zp[1]:365 [ ghost1_reverse ]
|
|
Allocated zp[1]:366 [ ghost2_reverse ]
|
|
Allocated zp[1]:367 [ ghost3_reverse ]
|
|
Allocated zp[1]:368 [ ghost4_reverse ]
|
|
Allocated zp[1]:369 [ frame ]
|
|
Allocated zp[1]:370 [ pacman_ch1_enabled ]
|
|
Allocated zp[2]:371 [ memset::str#6 ]
|
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
|
Statement [1] pacman_ch1_enabled = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [2] pacman_ch1_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [3] logic_tile_ptr = (volatile char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [4] logic_tile_xcol = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [5] logic_tile_yfine = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [6] logic_tile_left_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [7] logic_tile_right_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [8] left_render_index_xcol = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [9] left_canvas = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [10] left_ypos_inc_offset = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [11] rigt_render_index_xcol = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [12] rigt_canvas = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [13] rigt_ypos_inc_offset = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [14] canvas_base_hi = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [15] bobs_restore_base = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [16] top_sprites_color = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [17] top_sprites_mc = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [18] side_sprites_color = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [19] side_sprites_mc = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [20] bottom_sprites_color = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [21] bottom_sprites_mc = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [22] pill_count = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [23] pacman_wins = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [24] pacman_lives = 3 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [25] music_play_next = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [26] phase = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [27] frame = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [28] anim_frame_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [29] pacman_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [30] pacman_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [31] pacman_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [32] pacman_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [33] ghosts_mode = 1 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [34] ghosts_mode_count = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [35] ghost1_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [36] ghost1_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [37] ghost1_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [38] ghost1_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [39] ghost1_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [40] ghost1_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [41] ghost2_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [42] ghost2_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [43] ghost2_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [44] ghost2_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [45] ghost2_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [46] ghost2_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [47] ghost3_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [48] ghost3_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [49] ghost3_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [50] ghost3_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [51] ghost3_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [52] ghost3_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [53] ghost4_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [54] ghost4_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [55] ghost4_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [56] ghost4_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [57] ghost4_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [58] ghost4_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [59] game_logic_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [60] game_playable = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement kickasm( uses HARDWARE_IRQ uses RASTER uses IRQ_STATUS uses IRQ_RASTER uses VICII_CONTROL1 uses VICII_RSEL uses VICII_MEMORY) {{ // Stabilize the raster by using the double IRQ method
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// Set-up IRQ for the next line
|
|
inc RASTER
|
|
// Point IRQ to almost stable code
|
|
lda #<stable
|
|
sta HARDWARE_IRQ
|
|
lda #>stable
|
|
sta HARDWARE_IRQ+1
|
|
tsx // Save stack pointer
|
|
cli // Reenable interrupts
|
|
// Wait for new IRQ using NOP's to ensure minimal jitter when it hits
|
|
.fill 15, NOP
|
|
.align $20
|
|
stable:
|
|
txs // Restore stack pointer
|
|
ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles)
|
|
!: dex
|
|
bne !-
|
|
nop
|
|
lda RASTER
|
|
cmp RASTER
|
|
bne !+ // And correct the last cycle of potential jitter
|
|
!:
|
|
// Raster is now completely stable! (Line 0x007 cycle 7)
|
|
}} always clobbers reg byte a reg byte x
|
|
Statement asm { jsrRASTER_CODE } always clobbers reg byte a reg byte x reg byte y
|
|
Statement [66] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [67] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [68] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [69] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [70] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [71] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [72] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [73] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [75] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = irq_screen_top::toD0181_return#0 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [76] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [77] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR) = top_sprites_color [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [78] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR) = top_sprites_color [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [82] if(0!=frame) goto irq_screen_top::toDd001 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [84] *((char *)CIA2) = irq_screen_top::toDd002_return#0 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [85] canvas_base_hi = byte1 SPRITES_2 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [86] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [87] if(phase==0) goto irq_screen_top::@2 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [92] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [93] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [94] *HARDWARE_IRQ = &irq_screen_top [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [95] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [96] music_play_next = 1 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [98] *((char *)CIA2) = irq_screen_top::toDd001_return#0 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [99] canvas_base_hi = byte1 SPRITES_1 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [100] bobs_restore_base = 0 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [107] if(game_playable!=0) goto game_logic::@1 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [112] if(game_logic_substep==0) goto game_logic::@2 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [113] if(game_logic_substep==1) goto game_logic::@3 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [114] if(game_logic_substep==2) goto game_logic::@4 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [115] if(game_logic_substep==4) goto game_logic::@5 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [116] if(game_logic_substep==5) goto game_logic::@6 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [117] if(game_logic_substep==6) goto game_logic::@7 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [118] if(game_logic_substep==3) goto game_logic::@14 [ pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [119] if(game_logic_substep==7) goto game_logic::@14 [ pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ] { } ) always clobbers reg byte a
|
|
Statement [124] game_logic::$17 = game_logic::pacman_bob_xfine#0 >> 2 [ pacman_ch1_enabled anim_frame_idx pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$17 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$17 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:338 [ game_logic::pacman_bob_xfine#0 ]
|
|
Statement [128] game_logic::$19 = pacman_direction | anim_frame_idx [ pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$19 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$19 ] { } ) always clobbers reg byte a
|
|
Statement [129] game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3 [ pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$19 game_logic::$20 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$19 game_logic::$20 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:317 [ game_logic::$19 ]
|
|
Statement [130] game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20 [ pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$21 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$21 ] { } ) always clobbers reg byte a
|
|
Statement [133] if(ghosts_mode!=FRIGHTENED) goto game_logic::@44 [ pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#0 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:228 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
Statement [134] game_logic::ghost_frame_idx#1 = game_logic::ghost_frame_idx#0 | $40 [ pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#1 ] { } ) always clobbers reg byte a
|
|
Statement [137] game_logic::$25 = game_logic::ghost1_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$25 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$25 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:339 [ game_logic::ghost1_bob_xfine#0 ]
|
|
Statement [141] game_logic::$27 = ghost1_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$27 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$27 ] { } ) always clobbers reg byte a
|
|
Statement [142] game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3 [ pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$27 game_logic::$28 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$27 game_logic::$28 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:318 [ game_logic::$27 ]
|
|
Statement [143] game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28 [ pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$29 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$29 ] { } ) always clobbers reg byte a
|
|
Statement [146] game_logic::$31 = game_logic::ghost2_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$31 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$31 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:340 [ game_logic::ghost2_bob_xfine#0 ]
|
|
Statement [150] game_logic::$33 = ghost2_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$33 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$33 ] { } ) always clobbers reg byte a
|
|
Statement [151] game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3 [ pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$33 game_logic::$34 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$33 game_logic::$34 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:319 [ game_logic::$33 ]
|
|
Statement [152] game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34 [ pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$35 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$35 ] { } ) always clobbers reg byte a
|
|
Statement [155] game_logic::$37 = game_logic::ghost3_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$37 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$37 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:341 [ game_logic::ghost3_bob_xfine#0 ]
|
|
Statement [159] game_logic::$39 = ghost3_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$39 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$39 ] { } ) always clobbers reg byte a
|
|
Statement [160] game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3 [ pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$39 game_logic::$40 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$39 game_logic::$40 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:320 [ game_logic::$39 ]
|
|
Statement [161] game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40 [ pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$41 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$41 ] { } ) always clobbers reg byte a
|
|
Statement [164] game_logic::$43 = game_logic::ghost4_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost4_bob_xfine#0 game_logic::$43 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost4_bob_xfine#0 game_logic::$43 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:342 [ game_logic::ghost4_bob_xfine#0 ]
|
|
Statement [168] game_logic::$45 = ghost4_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled game_logic::ghost4_bob_xfine#0 game_logic::$45 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost4_bob_xfine#0 game_logic::$45 ] { } ) always clobbers reg byte a
|
|
Statement [169] game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3 [ pacman_ch1_enabled game_logic::$45 game_logic::$46 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::$45 game_logic::$46 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:321 [ game_logic::$45 ]
|
|
Statement [170] game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46 [ pacman_ch1_enabled game_logic::$47 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::$47 ] { } ) always clobbers reg byte a
|
|
Statement [173] if(ghosts_mode==SCATTER) goto game_logic::@45 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [174] if(ghosts_mode==CHASE) goto game_logic::@46 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [175] if(ghosts_mode!=FRIGHTENED) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [176] if(ghosts_mode_count<$32+1) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [177] ghosts_mode = CHASE [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [178] ghosts_mode_count = 0 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [181] ghost1_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [182] ghost2_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [183] ghost3_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [184] ghost4_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [185] game_logic::pacman_xtile#0 = pacman_xfine >> 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 ] { } ) always clobbers reg byte a
|
|
Statement [186] game_logic::pacman_ytile#0 = pacman_yfine >> 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::pacman_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::pacman_ytile#0 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:337 [ game_logic::pacman_xtile#0 ]
|
|
Statement [187] game_logic::$210 = game_logic::pacman_ytile#0 << 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 ] { } ) always clobbers reg byte a
|
|
Statement [188] game_logic::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[game_logic::$210] [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:353 [ game_logic::$210 ]
|
|
Statement [189] game_logic::tile_id#0 = game_logic::ytiles#0[game_logic::pacman_xtile#0] [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] { } ) always clobbers reg byte a
|
|
Statement [190] if(TILES_TYPE[game_logic::tile_id#0]==PILL) goto game_logic::@49 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:311 [ game_logic::tile_id#0 ]
|
|
Statement [191] if(TILES_TYPE[game_logic::tile_id#0]!=POWERUP) goto game_logic::@50 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Statement [192] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Statement [193] game_logic::$65 = game_logic::pacman_xtile#0 >> 1 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$65 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$65 ] { } ) always clobbers reg byte a
|
|
Statement [195] game_logic::$66 = game_logic::pacman_xtile#0 & $fe [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$66 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$66 ] { } ) always clobbers reg byte a
|
|
Statement [196] game_logic::$67 = game_logic::ytiles#0 + game_logic::$66 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$67 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$67 ] { } ) always clobbers reg byte a
|
|
Statement [197] logic_tile_ptr = game_logic::$67 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] { } ) always clobbers reg byte a
|
|
Statement [200] ghosts_mode = FRIGHTENED [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [201] ghosts_mode_count = 0 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [202] game_logic::$75 = pacman_xfine - ghost1_xfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 ] { } ) always clobbers reg byte a
|
|
Statement [203] game_logic::$77 = pacman_yfine - ghost1_yfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 game_logic::$77 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 game_logic::$77 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:322 [ game_logic::$75 ]
|
|
Statement [204] if(ABS[game_logic::$75]>=2) goto game_logic::@64 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$77 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$77 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:323 [ game_logic::$77 ]
|
|
Statement [205] if(ABS[game_logic::$77]<2) goto game_logic::@51 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [206] game_logic::$80 = pacman_xfine - ghost2_xfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 ] { } ) always clobbers reg byte a
|
|
Statement [207] game_logic::$82 = pacman_yfine - ghost2_yfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 game_logic::$82 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 game_logic::$82 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:324 [ game_logic::$80 ]
|
|
Statement [208] if(ABS[game_logic::$80]>=2) goto game_logic::@65 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$82 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$82 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:325 [ game_logic::$82 ]
|
|
Statement [209] if(ABS[game_logic::$82]<2) goto game_logic::@52 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [210] game_logic::$85 = pacman_xfine - ghost3_xfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$85 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$85 ] { } ) always clobbers reg byte a
|
|
Statement [211] game_logic::$87 = pacman_yfine - ghost3_yfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$85 game_logic::$87 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$85 game_logic::$87 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:326 [ game_logic::$85 ]
|
|
Statement [212] if(ABS[game_logic::$85]>=2) goto game_logic::@66 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$87 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$87 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:327 [ game_logic::$87 ]
|
|
Statement [213] if(ABS[game_logic::$87]<2) goto game_logic::@53 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [214] game_logic::$90 = pacman_xfine - ghost4_xfine [ pacman_ch1_enabled pacman_lives pacman_yfine ghosts_mode ghost4_yfine game_logic::$90 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_yfine ghosts_mode ghost4_yfine game_logic::$90 ] { } ) always clobbers reg byte a
|
|
Statement [215] game_logic::$92 = pacman_yfine - ghost4_yfine [ pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$90 game_logic::$92 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$90 game_logic::$92 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:328 [ game_logic::$90 ]
|
|
Statement [216] if(ABS[game_logic::$90]>=2) goto game_logic::@return [ pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$92 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$92 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:329 [ game_logic::$92 ]
|
|
Statement [217] if(ABS[game_logic::$92]<2) goto game_logic::@67 [ pacman_ch1_enabled pacman_lives ghosts_mode ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ghosts_mode ] { } ) always clobbers reg byte a
|
|
Statement [218] if(ghosts_mode==FRIGHTENED) goto game_logic::@54 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [221] ghost4_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [222] ghost4_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [223] ghost4_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [224] ghost4_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [225] ghost4_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [226] if(ghosts_mode==FRIGHTENED) goto game_logic::@55 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [229] ghost3_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [230] ghost3_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [231] ghost3_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [232] ghost3_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [233] ghost3_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [234] if(ghosts_mode==FRIGHTENED) goto game_logic::@56 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [237] ghost2_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [238] ghost2_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [239] ghost2_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [240] ghost2_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [241] ghost2_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [242] if(ghosts_mode==FRIGHTENED) goto game_logic::@57 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [245] ghost1_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [246] ghost1_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [247] ghost1_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [248] ghost1_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [249] ghost1_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [250] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Statement [251] game_logic::$69 = game_logic::pacman_xtile#0 >> 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$69 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$69 ] { } ) always clobbers reg byte a
|
|
Statement [253] game_logic::$70 = game_logic::pacman_xtile#0 & $fe [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$70 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$70 ] { } ) always clobbers reg byte a
|
|
Statement [254] game_logic::$71 = game_logic::ytiles#0 + game_logic::$70 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$71 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$71 ] { } ) always clobbers reg byte a
|
|
Statement [255] logic_tile_ptr = game_logic::$71 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] { } ) always clobbers reg byte a
|
|
Statement [258] pill_count = -- pill_count [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [259] if(pill_count!=0) goto game_logic::@50 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [260] pacman_wins = 1 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [261] if(ghosts_mode_count<$96+1) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [262] ghosts_mode = SCATTER [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [263] ghosts_mode_count = 0 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [264] if(ghosts_mode_count<$32+1) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [265] ghosts_mode = CHASE [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [266] ghosts_mode_count = 0 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [267] if(0!=ghost4_respawn) goto game_logic::@72 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn ] { } ) always clobbers reg byte a
|
|
Statement [268] if(ghost4_direction==RIGHT) goto game_logic::@73 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [269] if(ghost4_direction==DOWN) goto game_logic::@74 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [270] if(ghost4_direction==LEFT) goto game_logic::@75 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [271] if(ghost4_direction!=UP) goto game_logic::@76 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [274] if(ghost4_substep!=0) goto game_logic::@82 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse game_logic::$220 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse game_logic::$220 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:330 [ game_logic::$220 ]
|
|
Statement [276] ghost4_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [277] if(0!=ghost4_reverse) goto game_logic::@78 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ] { } ) always clobbers reg byte a
|
|
Statement [278] game_logic::ghost4_xtile#0 = ghost4_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_yfine ghost4_direction game_logic::ghost4_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_yfine ghost4_direction game_logic::ghost4_xtile#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } ) always clobbers reg byte a
|
|
Statement [279] game_logic::ghost4_ytile#0 = ghost4_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:354 [ game_logic::ghost4_xtile#0 ]
|
|
Statement [285] game_logic::open_directions#1 = game_logic::open_directions#0 & DIRECTION_ELIMINATE[ghost4_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:355 [ game_logic::ghost4_ytile#0 ]
|
|
Statement [286] if(ghosts_mode==FRIGHTENED) goto game_logic::@79 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:345 [ game_logic::open_directions#1 ]
|
|
Statement [287] if(ghosts_mode==SCATTER) goto game_logic::@80 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] { } ) always clobbers reg byte a
|
|
Statement [288] game_logic::target_xtile#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 ] { } ) always clobbers reg byte a
|
|
Statement [289] game_logic::target_ytile#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 game_logic::target_ytile#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 game_logic::target_ytile#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:307 [ game_logic::target_xtile#3 game_logic::target_xtile#2 ]
|
|
Statement [300] ghost4_direction = DIRECTION_SINGLE[game_logic::open_directions#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [301] ghost4_direction = DIRECTION_REVERSE[ghost4_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [302] ghost4_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [303] ghost4_substep = 1 [ pacman_ch1_enabled ghost4_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ] { } ) always clobbers reg byte a
|
|
Statement [304] if(ghost4_xfine==1) goto game_logic::@81 [ pacman_ch1_enabled ghost4_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ] { } ) always clobbers reg byte a
|
|
Statement [305] if(ghost4_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [306] ghost4_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [307] ghost4_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [312] if(ghost4_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [313] ghost4_direction = RIGHT [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [314] ghost4_xfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [315] ghost4_yfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [316] ghost4_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [317] if(0!=ghost3_respawn) goto game_logic::@89 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ] { } ) always clobbers reg byte a
|
|
Statement [318] if(ghost3_direction==RIGHT) goto game_logic::@90 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [319] if(ghost3_direction==DOWN) goto game_logic::@91 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [320] if(ghost3_direction==LEFT) goto game_logic::@92 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [321] if(ghost3_direction!=UP) goto game_logic::@93 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [324] if(ghost3_substep!=0) goto game_logic::@99 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse game_logic::$223 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse game_logic::$223 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:331 [ game_logic::$223 ]
|
|
Statement [326] ghost3_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [327] if(0!=ghost3_reverse) goto game_logic::@95 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ] { } ) always clobbers reg byte a
|
|
Statement [328] game_logic::ghost3_xtile#0 = ghost3_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost3_direction game_logic::ghost3_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost3_direction game_logic::ghost3_xtile#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [329] game_logic::ghost3_ytile#0 = ghost3_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:356 [ game_logic::ghost3_xtile#0 ]
|
|
Statement [335] game_logic::open_directions1#1 = game_logic::open_directions1#0 & DIRECTION_ELIMINATE[ghost3_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:357 [ game_logic::ghost3_ytile#0 ]
|
|
Statement [336] if(ghosts_mode==FRIGHTENED) goto game_logic::@96 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:346 [ game_logic::open_directions1#1 ]
|
|
Statement [337] if(ghosts_mode==SCATTER) goto game_logic::@97 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] { } ) always clobbers reg byte a
|
|
Statement [338] game_logic::target_xtile1#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 ] { } ) always clobbers reg byte a
|
|
Statement [339] game_logic::target_ytile1#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 game_logic::target_ytile1#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 game_logic::target_ytile1#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:308 [ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ]
|
|
Statement [350] ghost3_direction = DIRECTION_SINGLE[game_logic::open_directions1#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [351] ghost3_direction = DIRECTION_REVERSE[ghost3_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [352] ghost3_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [353] ghost3_substep = 1 [ pacman_ch1_enabled ghost3_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ] { } ) always clobbers reg byte a
|
|
Statement [354] if(ghost3_xfine==1) goto game_logic::@98 [ pacman_ch1_enabled ghost3_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ] { } ) always clobbers reg byte a
|
|
Statement [355] if(ghost3_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [356] ghost3_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [357] ghost3_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [362] if(ghost3_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [363] ghost3_direction = UP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [364] ghost3_xfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [365] ghost3_yfine = $46 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [366] ghost3_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [367] if(0!=ghost2_respawn) goto game_logic::@106 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ] { } ) always clobbers reg byte a
|
|
Statement [368] if(ghost2_direction==RIGHT) goto game_logic::@107 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [369] if(ghost2_direction==DOWN) goto game_logic::@108 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [370] if(ghost2_direction==LEFT) goto game_logic::@109 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [371] if(ghost2_direction!=UP) goto game_logic::@110 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [374] if(ghost2_substep!=0) goto game_logic::@116 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse game_logic::$226 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse game_logic::$226 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:332 [ game_logic::$226 ]
|
|
Statement [376] ghost2_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [377] if(0!=ghost2_reverse) goto game_logic::@112 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ] { } ) always clobbers reg byte a
|
|
Statement [378] game_logic::ghost2_xtile#0 = ghost2_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost2_direction game_logic::ghost2_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost2_direction game_logic::ghost2_xtile#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [379] game_logic::ghost2_ytile#0 = ghost2_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:358 [ game_logic::ghost2_xtile#0 ]
|
|
Statement [385] game_logic::open_directions2#1 = game_logic::open_directions2#0 & DIRECTION_ELIMINATE[ghost2_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:359 [ game_logic::ghost2_ytile#0 ]
|
|
Statement [386] if(ghosts_mode==FRIGHTENED) goto game_logic::@113 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:347 [ game_logic::open_directions2#1 ]
|
|
Statement [387] if(ghosts_mode==SCATTER) goto game_logic::@114 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] { } ) always clobbers reg byte a
|
|
Statement [388] game_logic::target_xtile2#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 ] { } ) always clobbers reg byte a
|
|
Statement [389] game_logic::target_ytile2#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 game_logic::target_ytile2#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 game_logic::target_ytile2#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:309 [ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ]
|
|
Statement [400] ghost2_direction = DIRECTION_SINGLE[game_logic::open_directions2#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [401] ghost2_direction = DIRECTION_REVERSE[ghost2_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [402] ghost2_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [403] ghost2_substep = 1 [ pacman_ch1_enabled ghost2_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ] { } ) always clobbers reg byte a
|
|
Statement [404] if(ghost2_xfine==1) goto game_logic::@115 [ pacman_ch1_enabled ghost2_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ] { } ) always clobbers reg byte a
|
|
Statement [405] if(ghost2_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [406] ghost2_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [407] ghost2_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [412] if(ghost2_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [413] ghost2_direction = LEFT [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [414] ghost2_xfine = $60 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [415] ghost2_yfine = $46 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [416] ghost2_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [417] if(0!=ghost1_respawn) goto game_logic::@123 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ] { } ) always clobbers reg byte a
|
|
Statement [418] if(ghost1_direction==RIGHT) goto game_logic::@124 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [419] if(ghost1_direction==DOWN) goto game_logic::@125 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [420] if(ghost1_direction==LEFT) goto game_logic::@126 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [421] if(ghost1_direction!=UP) goto game_logic::@127 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [424] if(ghost1_substep!=0) goto game_logic::@133 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse game_logic::$229 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse game_logic::$229 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:333 [ game_logic::$229 ]
|
|
Statement [426] ghost1_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [427] if(0!=ghost1_reverse) goto game_logic::@129 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ] { } ) always clobbers reg byte a
|
|
Statement [428] game_logic::ghost1_xtile#0 = ghost1_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost1_direction game_logic::ghost1_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost1_direction game_logic::ghost1_xtile#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [429] game_logic::ghost1_ytile#0 = ghost1_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:360 [ game_logic::ghost1_xtile#0 ]
|
|
Statement [435] game_logic::open_directions3#1 = game_logic::open_directions3#0 & DIRECTION_ELIMINATE[ghost1_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:361 [ game_logic::ghost1_ytile#0 ]
|
|
Statement [436] if(ghosts_mode==FRIGHTENED) goto game_logic::@130 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:348 [ game_logic::open_directions3#1 ]
|
|
Statement [437] if(ghosts_mode==SCATTER) goto game_logic::@131 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] { } ) always clobbers reg byte a
|
|
Statement [438] game_logic::target_xtile3#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 ] { } ) always clobbers reg byte a
|
|
Statement [439] game_logic::target_ytile3#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 game_logic::target_ytile3#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 game_logic::target_ytile3#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:310 [ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ]
|
|
Statement [450] ghost1_direction = DIRECTION_SINGLE[game_logic::open_directions3#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [451] ghost1_direction = DIRECTION_REVERSE[ghost1_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [452] ghost1_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [453] ghost1_substep = 1 [ pacman_ch1_enabled ghost1_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ] { } ) always clobbers reg byte a
|
|
Statement [454] if(ghost1_xfine==1) goto game_logic::@132 [ pacman_ch1_enabled ghost1_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ] { } ) always clobbers reg byte a
|
|
Statement [455] if(ghost1_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [456] ghost1_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [457] ghost1_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [462] if(ghost1_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [463] ghost1_direction = DOWN [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [464] ghost1_xfine = $60 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [465] ghost1_yfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [466] ghost1_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [467] if(pacman_direction==RIGHT) goto game_logic::@140 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [468] if(pacman_direction==DOWN) goto game_logic::@141 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [469] if(pacman_direction==LEFT) goto game_logic::@142 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [470] if(pacman_direction!=UP) goto game_logic::@143 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [473] if(pacman_substep!=0) goto game_logic::@147 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction game_logic::$232 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction game_logic::$232 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:334 [ game_logic::$232 ]
|
|
Statement [475] pacman_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [476] game_logic::pacman_xtile1#0 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine pacman_direction game_logic::pacman_xtile1#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine pacman_direction game_logic::pacman_xtile1#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [477] game_logic::pacman_ytile1#0 = pacman_yfine >> 1 [ pacman_ch1_enabled pacman_direction game_logic::pacman_xtile1#0 game_logic::pacman_ytile1#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::pacman_xtile1#0 game_logic::pacman_ytile1#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:335 [ game_logic::pacman_xtile1#0 ]
|
|
Statement [483] game_logic::$199 = *((char *)CIA1) & $f [ pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$199 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$199 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:351 [ game_logic::open_directions4#0 ]
|
|
Statement [484] game_logic::$200 = game_logic::$199 ^ $f [ pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$200 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$200 ] { } ) always clobbers reg byte a
|
|
Statement [485] game_logic::joy_directions#0 = game_logic::$200 << 2 [ pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::joy_directions#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::joy_directions#0 ] { } ) always clobbers reg byte a
|
|
Statement [491] pacman_direction = pacman_direction & game_logic::open_directions4#0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [492] pacman_substep = 1 [ pacman_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_xfine ] { } ) always clobbers reg byte a
|
|
Statement [493] pacman_ch1_enabled = 1 [ pacman_ch1_enabled pacman_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine ] { } ) always clobbers reg byte a
|
|
Statement [494] if(pacman_xfine==1) goto game_logic::@146 [ pacman_ch1_enabled pacman_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine ] { } ) always clobbers reg byte a
|
|
Statement [495] if(pacman_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [496] pacman_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [497] pacman_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [501] if(0==pacman_ch1_enabled) goto pacman_sound_play::@return [ pacman_ch1_idx ] ( pacman_sound_play:91 [ pacman_ch1_idx ] { } ) always clobbers reg byte a
|
|
Statement [502] *SID_CH1_FREQ_HI = PACMAN_CH1_FREQ_HI[pacman_ch1_idx] [ pacman_ch1_idx ] ( pacman_sound_play:91 [ pacman_ch1_idx ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [503] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = PACMAN_CH1_CONTROL[pacman_ch1_idx] [ pacman_ch1_idx ] ( pacman_sound_play:91 [ pacman_ch1_idx ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [505] if(pacman_ch1_idx!=$16*SIZEOF_CHAR) goto pacman_sound_play::@return [ ] ( pacman_sound_play:91 [ ] { } ) always clobbers reg byte a
|
|
Statement [506] pacman_ch1_idx = 0 [ ] ( pacman_sound_play:91 [ ] { } ) always clobbers reg byte a
|
|
Statement [507] pacman_ch1_enabled = 0 [ ] ( pacman_sound_play:91 [ ] { } ) always clobbers reg byte a
|
|
Statement [511] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [512] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [513] *PROCPORT = PROCPORT_RAM_ALL [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [515] byteboozer_decrunch::crunched = RASTER_CODE_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [517] byteboozer_decrunch::crunched = LOGIC_CODE_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [527] byteboozer_decrunch::crunched = SPLASH_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [535] byteboozer_decrunch::crunched = BOB_GRAPHICS_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [541] byteboozer_decrunch::crunched = INTRO_MUSIC_CRUNCHED_UPPER [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [545] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [546] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [550] *((char *)CIA2) = splash_run::toDd001_return#0 [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:158 [ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ]
|
|
Statement [551] canvas_base_hi = byte1 SPRITES_2 [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Statement [552] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Statement [554] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = splash_run::toD0181_return#0 [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Statement [556] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [557] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = $ff [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [558] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [559] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [560] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [561] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [562] top_sprites_mc = 3 [ top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [563] side_sprites_mc = 0 [ top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [564] bottom_sprites_mc = 3 [ top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [565] top_sprites_color = YELLOW [ top_sprites_color top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_color top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [566] side_sprites_color = BLUE [ top_sprites_color top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_color top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [567] bottom_sprites_color = YELLOW [ top_sprites_color top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_color top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [568] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc [ top_sprites_color ] ( main:62::splash_run:102 [ top_sprites_color ] { } ) always clobbers reg byte a
|
|
Statement [571] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 8 [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement asm { lda#1 staINTRO_MUSIC+$69 } always clobbers reg byte a
|
|
Statement asm { lda#0 } always clobbers reg byte a
|
|
Statement [576] callexecute *musicInit [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [577] phase = 0 [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [578] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [579] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto splash_run::@12 [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [580] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [581] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [582] *HARDWARE_IRQ = &irq_screen_top [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [583] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a
|
|
Statement [585] *IRQ_STATUS = $f [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [589] music_play_next = 0 [ music_play_next ] ( main:62::splash_run:102 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [596] if(0==music_play_next) goto splash_run::@14 [ music_play_next ] ( main:62::splash_run:102 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [598] callexecute *musicPlay [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [599] music_play_next = 0 [ music_play_next ] ( main:62::splash_run:102 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [600] bobs_xcol[splash_run::i2#2] = $a [ splash_run::i2#2 ] ( main:62::splash_run:102 [ splash_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:161 [ splash_run::i2#2 splash_run::i2#1 ]
|
|
Statement [601] bobs_yfine[splash_run::i2#2] = $2d [ splash_run::i2#2 ] ( main:62::splash_run:102 [ splash_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Statement [602] bobs_bob_id[splash_run::i2#2] = 0 [ splash_run::i2#2 ] ( main:62::splash_run:102 [ splash_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Statement [604] SPRITES_COLOR[splash_run::i1#2] = top_sprites_color [ top_sprites_color splash_run::i1#2 ] ( main:62::splash_run:102 [ top_sprites_color splash_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:160 [ splash_run::i1#2 splash_run::i1#1 ]
|
|
Statement [606] splash_run::$34 = splash_run::i#2 << 1 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:162 [ splash_run::i#2 splash_run::i#1 ]
|
|
Statement [607] SPRITES_YPOS[splash_run::$34] = 7 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:171 [ splash_run::$34 ]
|
|
Statement [608] splash_run::xpos#0 = splash_run::sprites_xpos[splash_run::$34] [ splash_run::i#2 splash_run::msb#10 splash_run::$34 splash_run::xpos#0 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 splash_run::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [609] SPRITES_XPOS[splash_run::$34] = (char)splash_run::xpos#0 [ splash_run::i#2 splash_run::msb#10 splash_run::xpos#0 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [613] splash_run::msb#2 = splash_run::msb#1 | $80 [ splash_run::i#2 splash_run::msb#2 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#2 ] { } ) always clobbers reg byte a
|
|
Statement [620] pacman_wins = 0 [ pacman_wins ] ( main:62::gameplay_run:104 [ pacman_wins ] { } ) always clobbers reg byte a
|
|
Statement [621] pacman_lives = 3 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [622] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLACK [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [623] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = BLACK [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [626] byteboozer_decrunch::crunched = LEVEL_TILES_CRUNCHED [ pacman_wins pacman_lives byteboozer_decrunch::crunched ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [634] level_show::return#0 = level_show::count#12 [ pacman_wins pacman_lives level_show::return#0 ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives level_show::return#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Statement [635] gameplay_run::$4 = level_show::return#0 [ pacman_wins pacman_lives gameplay_run::$4 ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives gameplay_run::$4 ] { } ) always clobbers reg byte a
|
|
Statement [636] pill_count = gameplay_run::$4 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [637] top_sprites_mc = $ff [ top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [638] side_sprites_mc = $ff [ top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [639] bottom_sprites_mc = $ff [ top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [640] top_sprites_color = YELLOW [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [641] side_sprites_color = YELLOW [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [642] bottom_sprites_color = YELLOW [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [643] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc [ top_sprites_color pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [646] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [647] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [648] phase = 1 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [652] game_playable = 1 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [653] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [654] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fb) goto gameplay_run::@10 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [655] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto gameplay_run::@11 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [656] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [657] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [658] *HARDWARE_IRQ = &irq_screen_top [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [659] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a
|
|
Statement [661] *IRQ_STATUS = $f [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [663] if(0!=pacman_wins) goto gameplay_run::@return [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [664] if(pacman_lives==0) goto gameplay_run::@return [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [666] SPRITES_COLOR[gameplay_run::i2#2] = top_sprites_color [ top_sprites_color pacman_wins pacman_lives gameplay_run::i2#2 ] ( main:62::gameplay_run:104 [ top_sprites_color pacman_wins pacman_lives gameplay_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:94 [ gameplay_run::i2#2 gameplay_run::i2#1 ]
|
|
Statement [668] SPRITES_COLOR[gameplay_run::i1#2] = BLACK [ pacman_wins pacman_lives gameplay_run::i1#2 ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives gameplay_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:93 [ gameplay_run::i1#2 gameplay_run::i1#1 ]
|
|
Statement [670] ((char *)SID)[gameplay_run::i#2] = 0 [ gameplay_run::i#2 ] ( main:62::gameplay_run:104 [ gameplay_run::i#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:92 [ gameplay_run::i#2 gameplay_run::i#1 ]
|
|
Statement [672] game_playable = 0 [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a
|
|
Statement [673] phase = 0 [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a
|
|
Statement asm { lda#0 } always clobbers reg byte a
|
|
Statement [679] callexecute *musicInit [ pacman_wins ] ( main:62::done_run:106 [ pacman_wins ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [680] if(0!=pacman_wins) goto done_run::@2 [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a
|
|
Statement [681] byteboozer_decrunch::crunched = GAMEOVER_GFX_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::done_run:106 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [685] music_play_next = 0 [ music_play_next ] ( main:62::done_run:106 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [692] if(0==music_play_next) goto done_run::@14 [ music_play_next ] ( main:62::done_run:106 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [694] callexecute *musicPlay [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [695] music_play_next = 0 [ music_play_next ] ( main:62::done_run:106 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [699] done_run::pixels#0 = *done_run::gfx#2 [ done_run::xcol#2 done_run::gfx#2 done_run::ypos#2 done_run::pixels#0 ] ( main:62::done_run:106 [ done_run::xcol#2 done_run::gfx#2 done_run::ypos#2 done_run::pixels#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ]
|
|
Statement [706] byteboozer_decrunch::crunched = WIN_GFX_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::done_run:106 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [708] bobs_xcol[done_run::i1#2] = $a [ done_run::i1#2 ] ( main:62::done_run:106 [ done_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:99 [ done_run::i1#2 done_run::i1#1 ]
|
|
Statement [709] bobs_yfine[done_run::i1#2] = $2d [ done_run::i1#2 ] ( main:62::done_run:106 [ done_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Statement [710] bobs_bob_id[done_run::i1#2] = 0 [ done_run::i1#2 ] ( main:62::done_run:106 [ done_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Statement [712] ((char *)SID)[done_run::i#2] = 0 [ done_run::i#2 ] ( main:62::done_run:106 [ done_run::i#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:95 [ done_run::i#2 done_run::i#1 ]
|
|
Statement [714] ghosts_mode_count = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [715] pacman_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [716] ghost1_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [717] ghost2_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [718] ghost3_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [719] ghost4_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [720] pacman_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [721] ghost1_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [722] ghost2_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [723] ghost3_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [724] ghost4_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [725] pacman_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [726] ghost1_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [727] ghost2_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [728] ghost3_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [729] ghost4_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [730] ghost1_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [731] ghost2_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [732] ghost3_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [733] ghost4_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [734] pacman_yfine = $3e [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [735] ghost1_respawn = $a [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [736] ghost2_respawn = $14 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [737] ghost3_respawn = $1e [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [738] ghost4_respawn = $28 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [743] level_tile_directions::$5 = level_tile_directions::ytile#5 << 1 [ level_tile_directions::xtile#5 level_tile_directions::$5 ] ( game_logic:89::level_tile_directions:282 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } game_logic:89::level_tile_directions:332 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:382 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:432 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:480 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:211 [ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ]
|
|
Statement [744] level_tile_directions::ytiles#0 = LEVEL_TILES_DIRECTIONS + LEVEL_YTILE_OFFSET[level_tile_directions::$5] [ level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] ( game_logic:89::level_tile_directions:282 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } game_logic:89::level_tile_directions:332 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:382 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:432 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:480 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [745] level_tile_directions::return#0 = level_tile_directions::ytiles#0[level_tile_directions::xtile#5] [ level_tile_directions::return#0 ] ( game_logic:89::level_tile_directions:282 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } game_logic:89::level_tile_directions:332 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:382 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:432 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:480 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction level_tile_directions::return#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [749] choose_direction::xdiff#0 = choose_direction::ghost_xtile#4 - choose_direction::target_xtile#4 [ choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
Statement [750] choose_direction::ydiff#0 = choose_direction::ghost_ytile#4 - choose_direction::target_ytile#4 [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:294 [ choose_direction::xdiff#0 ]
|
|
Statement [751] choose_direction::$2 = choose_direction::open_directions#10 & UP [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:293 [ choose_direction::ydiff#0 ]
|
|
Statement [753] choose_direction::dist_up#0 = ABS[choose_direction::xdiff#0] + (ABS+-1)[choose_direction::ydiff#0] [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [757] choose_direction::$4 = choose_direction::open_directions#10 & DOWN [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:205 [ choose_direction::dist_min#6 choose_direction::dist_up#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
Statement [759] choose_direction::dist_down#0 = ABS[choose_direction::xdiff#0] + (ABS+1)[choose_direction::ydiff#0] [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [763] choose_direction::$6 = choose_direction::open_directions#10 & LEFT [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:176 [ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ]
|
|
Statement [765] choose_direction::dist_left#0 = (ABS+-1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [769] choose_direction::$8 = choose_direction::open_directions#10 & RIGHT [ choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
Statement [771] choose_direction::dist_right#0 = (ABS+1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] [ choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [779] if(memset::num#5<=0) goto memset::@return [ memset::num#5 memset::str#6 ] ( main:62::splash_run:102::memset:514 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:522 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:524 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:532 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:544 [ memset::num#5 memset::str#6 ] { } ) always clobbers reg byte a
|
|
Statement [780] memset::end#0 = (char *)memset::str#6 + memset::num#5 [ memset::str#6 memset::end#0 ] ( main:62::splash_run:102::memset:514 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:522 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:524 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:532 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:544 [ memset::str#6 memset::end#0 ] { } ) always clobbers reg byte a
|
|
Statement [781] memset::dst#4 = (char *)memset::str#6 [ memset::end#0 memset::dst#4 ] ( main:62::splash_run:102::memset:514 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:522 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:524 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:532 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:544 [ memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a
|
|
Statement [783] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::end#0 memset::dst#2 ] ( main:62::splash_run:102::memset:514 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:522 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:524 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:532 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:544 [ memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a
|
|
Statement [785] *memset::dst#2 = 0 [ memset::end#0 memset::dst#2 ] ( main:62::splash_run:102::memset:514 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:522 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:524 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:532 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:544 [ memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch } always clobbers reg byte a reg byte x reg byte y
|
|
Statement [791] if(*merge_code::raster_code#4!=merge_code::RASTER_END) goto merge_code::@2 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [792] merge_code::raster_code#1 = ++ merge_code::raster_code#4 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 ] { } ) always clobbers reg byte a
|
|
Statement [793] merge_code::cycle_budget#0 = *merge_code::raster_code#1 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 merge_code::cycle_budget#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 merge_code::cycle_budget#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [794] merge_code::raster_code#2 = ++ merge_code::raster_code#1 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#2 merge_code::cycle_budget#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#2 merge_code::cycle_budget#0 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:89 [ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ]
|
|
Statement [797] if(*merge_code::logic_code#12!=merge_code::LOGIC_EXIT) goto merge_code::@15 [ merge_code::logic_code#12 merge_code::dest_code#12 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::logic_code#12 merge_code::dest_code#12 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [798] *merge_code::dest_code#12 = $60 [ ] ( main:62::splash_run:102::merge_code:520 [ ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [800] merge_code::logic_code#3 = ++ merge_code::logic_code#12 [ merge_code::dest_code#12 merge_code::logic_code#3 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#12 merge_code::logic_code#3 ] { } ) always clobbers reg byte a
|
|
Statement [802] if(*merge_code::logic_code#14!=merge_code::LOGIC_END) goto merge_code::@18 [ merge_code::dest_code#13 merge_code::logic_code#14 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#13 merge_code::logic_code#14 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [803] merge_code::logic_code#5 = ++ merge_code::logic_code#14 [ merge_code::logic_code#5 merge_code::dest_code#13 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::logic_code#5 merge_code::dest_code#13 ] { } ) always clobbers reg byte a
|
|
Statement [804] *merge_code::dest_code#13 = *merge_code::logic_code#14 [ merge_code::dest_code#13 merge_code::logic_code#14 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#13 merge_code::logic_code#14 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [809] merge_code::logic_cycles#0 = *merge_code::logic_code#17 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:89 [ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ]
|
|
Statement [815] *merge_code::dest_code#10 = $ea [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [818] *merge_code::dest_code#10 = $24 [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [819] merge_code::dest_code#2 = ++ merge_code::dest_code#10 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] { } ) always clobbers reg byte a
|
|
Statement [820] *merge_code::dest_code#2 = $ea [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [821] merge_code::dest_code#3 = ++ merge_code::dest_code#2 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#3 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#3 ] { } ) always clobbers reg byte a
|
|
Statement [822] merge_code::cycle_budget#2 = merge_code::cycle_budget#10 - 3 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#2 merge_code::dest_code#3 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#2 merge_code::dest_code#3 ] { } ) always clobbers reg byte a reg byte x
|
|
Statement [825] merge_code::logic_code#0 = ++ merge_code::logic_code#17 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 merge_code::logic_code#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 merge_code::logic_code#0 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:127 [ merge_code::logic_cycles#0 ]
|
|
Statement [827] if(*merge_code::logic_code#10!=merge_code::LOGIC_END) goto merge_code::@7 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:127 [ merge_code::logic_cycles#0 ]
|
|
Statement [828] merge_code::logic_code#2 = ++ merge_code::logic_code#10 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::logic_code#2 merge_code::dest_code#15 merge_code::logic_cycles#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::logic_code#2 merge_code::dest_code#15 merge_code::logic_cycles#0 ] { } ) always clobbers reg byte a
|
|
Statement [829] merge_code::cycle_budget#1 = merge_code::cycle_budget#13 - merge_code::logic_cycles#0 [ merge_code::raster_code#2 merge_code::cycle_budget#1 merge_code::logic_code#2 merge_code::dest_code#15 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#1 merge_code::logic_code#2 merge_code::dest_code#15 ] { } ) always clobbers reg byte a
|
|
Statement [830] *merge_code::dest_code#15 = *merge_code::logic_code#10 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [833] *merge_code::dest_code#14 = *merge_code::raster_code#4 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [839] *(RENDER_INDEX+$18*$100+RENDER_OFFSET_YPOS_INC) = 0 [ ] ( main:62::splash_run:102::init_render_index:526 [ ] { } ) always clobbers reg byte a
|
|
Statement [840] *(RENDER_INDEX+$19*$100+RENDER_OFFSET_YPOS_INC) = 0 [ ] ( main:62::splash_run:102::init_render_index:526 [ ] { } ) always clobbers reg byte a
|
|
Statement [845] init_render_index::$9 = init_render_index::x_col#2 << 1 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::$9 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::$9 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:90 [ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ]
|
|
Statement [846] init_render_index::canvas_xcol#0 = RENDER_XCOLS[init_render_index::$9] [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 ] { } ) always clobbers reg byte a
|
|
Statement [847] init_render_index::render_index_xcol#7 = init_render_index::render_index_xcol#0 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 init_render_index::render_index_xcol#7 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 init_render_index::render_index_xcol#7 ] { } ) always clobbers reg byte a
|
|
Statement [850] init_render_index::render_index#1 = init_render_index::render_index_xcol#0 + $100 [ init_render_index::x_col#2 init_render_index::render_index#1 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index#1 ] { } ) always clobbers reg byte a
|
|
Statement [852] init_render_index::$11 = (unsigned int)init_render_index::y_pos#2 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$11 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$11 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
Statement [853] init_render_index::$10 = init_render_index::$11 << 1 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$10 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$10 ] { } ) always clobbers reg byte a
|
|
Statement [854] init_render_index::$12 = init_render_index::render_ypos_table#4 + init_render_index::$10 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$12 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$12 ] { } ) always clobbers reg byte a
|
|
Statement [855] init_render_index::canvas#0 = init_render_index::canvas_xcol#0 + *init_render_index::$12 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:90 [ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ]
|
|
Statement [857] *init_render_index::render_index_xcol#2 = init_render_index::$5 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] { } ) always clobbers reg byte y
|
|
Statement [859] init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_HI] = init_render_index::$6 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] { } ) always clobbers reg byte y
|
|
Statement [860] init_render_index::render_index_xcol#2[RENDER_OFFSET_YPOS_INC] = init_render_index::ypos_inc_offset#4 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [863] init_render_index::ypos_inc_offset#3 = init_render_index::ypos_inc_offset#2 - $15 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#3 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#3 ] { } ) always clobbers reg byte a reg byte x
|
|
Removing always clobbered register reg byte x as potential for zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
Statement [866] init_render_index::y_pos#1 = init_render_index::y_pos#2 + 2 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#1 init_render_index::render_index_xcol#1 init_render_index::ypos_inc_offset#8 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#1 init_render_index::render_index_xcol#1 init_render_index::ypos_inc_offset#8 ] { } ) always clobbers reg byte a
|
|
Statement [874] splash_show::pixels#0 = *splash_show::splash#2 [ splash_show::xcol#2 splash_show::splash#2 splash_show::ypos#2 splash_show::pixels#0 ] ( main:62::splash_run:102::splash_show:530 [ splash_show::xcol#2 splash_show::splash#2 splash_show::ypos#2 splash_show::pixels#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ]
|
|
Statement [884] logic_tile_ptr = LEVEL_TILES+(unsigned int)$40*$12+$c [ ] ( main:62::splash_run:102::init_bobs_restore:534 [ ] { } ) always clobbers reg byte a
|
|
Statement [885] logic_tile_xcol = $c [ ] ( main:62::splash_run:102::init_bobs_restore:534 [ ] { } ) always clobbers reg byte a
|
|
Statement [886] logic_tile_yfine = $23 [ ] ( main:62::splash_run:102::init_bobs_restore:534 [ ] { } ) always clobbers reg byte a
|
|
Statement [890] *init_bobs_restore::bob_restore#5 = 0 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp[1]:135 [ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:135 [ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
Statement [891] init_bobs_restore::bob_restore#5[1] = byte1 init_bobs_restore::CANVAS_HIDDEN [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [892] init_bobs_restore::bob_restore#5[3] = 0 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [893] init_bobs_restore::bob_restore#5[4] = byte1 init_bobs_restore::CANVAS_HIDDEN [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [894] init_bobs_restore::bob_restore#1 = init_bobs_restore::bob_restore#5 + SIZE_BOB_RESTORE [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#1 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#1 ] { } ) always clobbers reg byte a
|
|
Statement [896] init_bobs_restore::bob_restore#5[init_bobs_restore::i#2] = 0 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 init_bobs_restore::i#2 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 init_bobs_restore::i#2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:96 [ init_bobs_restore::i#2 init_bobs_restore::i#1 ]
|
|
Statement [904] init_sprite_pointers::sprites_ptr_1#1 = init_sprite_pointers::sprites_ptr_1#5 + $400 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_1#1 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_1#1 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_1#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:68 [ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ]
|
|
Statement [905] init_sprite_pointers::sprites_ptr_2#1 = init_sprite_pointers::sprites_ptr_2#5 + $400 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#1 init_sprite_pointers::sprites_ptr_2#1 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#1 init_sprite_pointers::sprites_ptr_2#1 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#1 init_sprite_pointers::sprites_ptr_2#1 ] { } ) always clobbers reg byte a
|
|
Statement [907] init_sprite_pointers::$2 = init_sprite_pointers::SPRITE_ID_0 + init_sprite_pointers::screen#2 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::$2 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::$2 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::$2 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:37 [ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ]
|
|
Statement [908] init_sprite_pointers::sprite_id#0 = init_sprite_pointers::$2 + init_sprite_pointers::sprites_id[init_sprite_pointers::sprite#2] [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::sprite_id#0 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::sprite_id#0 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::sprite_id#0 ] { } ) always clobbers reg byte a
|
|
Statement [914] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:62::splash_run:102::memcpy:540 [ memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a
|
|
Statement [916] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src#2 memcpy::dst#2 ] ( main:62::splash_run:102::memcpy:540 [ memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [919] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 0 [ ] ( main:62::splash_run:102::joyinit:588 [ ] { } ) always clobbers reg byte a
|
|
Statement [921] joyfire::$0 = *((char *)CIA1) & $10 [ joyfire::$0 ] ( main:62::splash_run:102::joyfire:591 [ music_play_next joyfire::$0 ] { { joyfire::return#1 = joyfire::return#4 } } main:62::done_run:106::joyfire:687 [ music_play_next joyfire::$0 ] { { joyfire::return#0 = joyfire::return#4 } } ) always clobbers reg byte a
|
|
Statement [932] init_level_tile_directions::directions#1 = init_level_tile_directions::directions#7 + $40 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#1 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ]
|
|
Statement [939] if(TILES_TYPE[init_level_tile_directions::$3]==WALL) goto init_level_tile_directions::@5 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ]
|
|
Statement [947] if(TILES_TYPE[init_level_tile_directions::$7]==WALL) goto init_level_tile_directions::@6 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
Statement [948] init_level_tile_directions::open_directions#2 = init_level_tile_directions::open_directions#11 | RIGHT [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#2 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#2 ] { } ) always clobbers reg byte a
|
|
Statement [955] if(TILES_TYPE[init_level_tile_directions::$11]==WALL) goto init_level_tile_directions::@7 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 ] { } ) always clobbers reg byte a
|
|
Statement [956] init_level_tile_directions::open_directions#3 = init_level_tile_directions::open_directions#12 | UP [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#3 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#3 ] { } ) always clobbers reg byte a
|
|
Statement [963] if(TILES_TYPE[init_level_tile_directions::$15]==WALL) goto init_level_tile_directions::@8 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 ] { } ) always clobbers reg byte a
|
|
Statement [964] init_level_tile_directions::open_directions#4 = init_level_tile_directions::open_directions#13 | DOWN [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#4 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#4 ] { } ) always clobbers reg byte a
|
|
Statement [966] init_level_tile_directions::directions#7[init_level_tile_directions::xtile#10] = init_level_tile_directions::open_directions#8 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] { } ) always clobbers reg byte a
|
|
Statement [974] level_show::level#1 = level_show::level#8 + $40 [ level_show::ytile#2 level_show::count#10 level_show::level#1 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::count#10 level_show::level#1 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ]
|
|
Statement [976] level_show::tile_left#0 = level_show::level#8[level_show::xtile#3] [ level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::xtile#3 level_show::tile_left#0 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::xtile#3 level_show::tile_left#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ]
|
|
Statement [978] if(TILES_TYPE[level_show::tile_left#0]!=PILL) goto level_show::@5 [ level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:72 [ level_show::tile_left#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:62 [ level_show::xtile#1 ]
|
|
Statement [981] level_show::tile_right#0 = level_show::level#8[level_show::xtile#1] [ level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 level_show::count#5 level_show::tile_right#0 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 level_show::count#5 level_show::tile_right#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Statement [983] if(TILES_TYPE[level_show::tile_right#0]!=PILL) goto level_show::@6 [ level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::tile_left#0 level_show::count#5 level_show::tile_right#0 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::tile_left#0 level_show::count#5 level_show::tile_right#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:63 [ level_show::tile_right#0 ]
|
|
Statement [992] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = $f [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [993] *((unsigned int *)SID) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [994] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [995] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [996] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [997] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = $f0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [1000] render::ytile#0 = render::ypos#2 >> 2 [ render::ypos#2 render::xcol#2 render::pixels#4 render::ytile#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::xcol#2 render::pixels#4 render::ytile#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::xcol#2 render::pixels#4 render::ytile#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ]
|
|
Statement [1001] render::$1 = byte1 RENDER_INDEX + render::xcol#2 [ render::ypos#2 render::pixels#4 render::ytile#0 render::$1 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::ytile#0 render::$1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::ytile#0 render::$1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:59 [ render::ytile#0 ]
|
|
Statement [1002] render::$2 = render::ytile#0 << 1 [ render::ypos#2 render::pixels#4 render::$1 render::$2 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::$1 render::$2 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::$1 render::$2 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:60 [ render::$1 ]
|
|
Statement [1004] render::canvas_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render::render_index_xcol#0) [ render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ]
|
|
Statement [1005] render::canvas1#0 = SPRITES_1 + render::canvas_offset#0 [ render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 render::canvas1#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 render::canvas1#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 render::canvas1#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1006] render::canvas2#0 = SPRITES_2 + render::canvas_offset#0 [ render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas1#0 render::canvas2#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas1#0 render::canvas2#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas1#0 render::canvas2#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1007] render::ypos_inc_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] [ render::ypos#2 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1008] render::ypix#0 = render::ypos#2 & 3 [ render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 render::ypix#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 render::ypix#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 render::ypix#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:10 [ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ]
|
|
Statement [1011] *render::canvas1#2 = render::pixels#4 [ render::pixels#4 render::canvas2#2 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::canvas2#2 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::canvas2#2 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1012] *render::canvas2#2 = render::pixels#4 [ ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1014] render::canvas1#1 = render::canvas1#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] [ render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas2#2 render::canvas1#1 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas2#2 render::canvas1#1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas2#2 render::canvas1#1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:19 [ render::ypix#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:9 [ render::i#2 render::i#1 ]
|
|
Statement [1015] render::canvas2#1 = render::canvas2#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] [ render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas1#1 render::canvas2#1 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas1#1 render::canvas2#1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas1#1 render::canvas2#1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1021] level_tile_get::$5 = level_tile_get::ytile#4 << 1 [ level_tile_get::xtile#4 level_tile_get::$5 ] ( main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:936 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#0 = level_tile_get::xtile#4 } { level_tile_get::ytile#0 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#3 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:944 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#1 = level_tile_get::xtile#4 } { level_tile_get::ytile#1 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#4 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:952 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#2 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#2 = level_tile_get::ytile#4 } { level_tile_get::return#10 = level_tile_get::return#2 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:960 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#3 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#3 = level_tile_get::ytile#4 } { level_tile_get::return#11 = level_tile_get::return#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:30 [ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ]
|
|
Statement [1022] level_tile_get::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[level_tile_get::$5] [ level_tile_get::xtile#4 level_tile_get::ytiles#0 ] ( main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:936 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#0 = level_tile_get::xtile#4 } { level_tile_get::ytile#0 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#3 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:944 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#1 = level_tile_get::xtile#4 } { level_tile_get::ytile#1 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#4 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:952 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#2 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#2 = level_tile_get::ytile#4 } { level_tile_get::return#10 = level_tile_get::return#2 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:960 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#3 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#3 = level_tile_get::ytile#4 } { level_tile_get::return#11 = level_tile_get::return#2 } } ) always clobbers reg byte a
|
|
Statement [1023] level_tile_get::return#0 = level_tile_get::ytiles#0[level_tile_get::xtile#4] [ level_tile_get::return#0 ] ( main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:936 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 level_tile_get::return#0 ] { { level_tile_get::xtile#0 = level_tile_get::xtile#4 } { level_tile_get::ytile#0 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#3 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:944 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 level_tile_get::return#0 ] { { level_tile_get::xtile#1 = level_tile_get::xtile#4 } { level_tile_get::ytile#1 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#4 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:952 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 level_tile_get::return#0 ] { { level_tile_get::xtile#2 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#2 = level_tile_get::ytile#4 } { level_tile_get::return#10 = level_tile_get::return#2 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:960 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 level_tile_get::return#0 ] { { level_tile_get::xtile#3 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#3 = level_tile_get::ytile#4 } { level_tile_get::return#11 = level_tile_get::return#2 } } ) always clobbers reg byte a
|
|
Statement [1026] render_tiles::$0 = render_tiles::tile_left#0 << 2 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::$0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::$0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:56 [ render_tiles::xcol#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:57 [ render_tiles::ytile#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:36 [ render_tiles::tile_right#0 ]
|
|
Statement [1027] render_tiles::tile_left_pixels#0 = TILES_LEFT + render_tiles::$0 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::tile_left_pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::tile_left_pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1028] render_tiles::$2 = render_tiles::tile_right#0 << 2 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::$2 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::$2 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1029] render_tiles::tile_right_pixels#0 = TILES_RIGHT + render_tiles::$2 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1030] render_tiles::$4 = byte1 RENDER_INDEX + render_tiles::xcol#0 [ render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1031] render_tiles::$5 = render_tiles::ytile#0 << 1 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 render_tiles::$5 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 render_tiles::$5 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:32 [ render_tiles::$4 ]
|
|
Statement [1033] render_tiles::canvas_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render_tiles::render_index_xcol#0) [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ]
|
|
Statement [1034] render_tiles::canvas1#0 = SPRITES_1 + render_tiles::canvas_offset#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 render_tiles::canvas1#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 render_tiles::canvas1#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1035] render_tiles::canvas2#0 = SPRITES_2 + render_tiles::canvas_offset#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas1#0 render_tiles::canvas2#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas1#0 render_tiles::canvas2#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1036] render_tiles::ypos_inc_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::canvas1#0 render_tiles::canvas2#0 render_tiles::ypos_inc_offset#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::canvas1#0 render_tiles::canvas2#0 render_tiles::ypos_inc_offset#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1040] render_tiles::pixels#0 = render_tiles::tile_left_pixels#0[render_tiles::y#2] | render_tiles::tile_right_pixels#0[render_tiles::y#2] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:3 [ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ]
|
|
Statement [1041] *render_tiles::canvas1#2 = render_tiles::pixels#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:3 [ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:4 [ render_tiles::pixels#0 ]
|
|
Statement [1042] *render_tiles::canvas2#2 = render_tiles::pixels#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte y
|
|
Statement [1043] render_tiles::canvas1#1 = render_tiles::canvas1#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1044] render_tiles::canvas2#1 = render_tiles::canvas2#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 render_tiles::canvas2#1 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 render_tiles::canvas2#1 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1] pacman_ch1_enabled = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [2] pacman_ch1_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [3] logic_tile_ptr = (volatile char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [4] logic_tile_xcol = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [5] logic_tile_yfine = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [6] logic_tile_left_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [7] logic_tile_right_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [8] left_render_index_xcol = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [9] left_canvas = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [10] left_ypos_inc_offset = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [11] rigt_render_index_xcol = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [12] rigt_canvas = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [13] rigt_ypos_inc_offset = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [14] canvas_base_hi = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [15] bobs_restore_base = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [16] top_sprites_color = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [17] top_sprites_mc = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [18] side_sprites_color = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [19] side_sprites_mc = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [20] bottom_sprites_color = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [21] bottom_sprites_mc = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [22] pill_count = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [23] pacman_wins = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [24] pacman_lives = 3 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [25] music_play_next = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [26] phase = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [27] frame = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [28] anim_frame_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [29] pacman_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [30] pacman_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [31] pacman_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [32] pacman_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [33] ghosts_mode = 1 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [34] ghosts_mode_count = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [35] ghost1_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [36] ghost1_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [37] ghost1_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [38] ghost1_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [39] ghost1_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [40] ghost1_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [41] ghost2_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [42] ghost2_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [43] ghost2_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [44] ghost2_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [45] ghost2_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [46] ghost2_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [47] ghost3_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [48] ghost3_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [49] ghost3_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [50] ghost3_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [51] ghost3_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [52] ghost3_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [53] ghost4_xfine = $2d [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [54] ghost4_yfine = $23 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [55] ghost4_direction = STOP [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [56] ghost4_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [57] ghost4_reverse = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [58] ghost4_respawn = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [59] game_logic_substep = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [60] game_playable = 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement kickasm( uses HARDWARE_IRQ uses RASTER uses IRQ_STATUS uses IRQ_RASTER uses VICII_CONTROL1 uses VICII_RSEL uses VICII_MEMORY) {{ // Stabilize the raster by using the double IRQ method
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// Set-up IRQ for the next line
|
|
inc RASTER
|
|
// Point IRQ to almost stable code
|
|
lda #<stable
|
|
sta HARDWARE_IRQ
|
|
lda #>stable
|
|
sta HARDWARE_IRQ+1
|
|
tsx // Save stack pointer
|
|
cli // Reenable interrupts
|
|
// Wait for new IRQ using NOP's to ensure minimal jitter when it hits
|
|
.fill 15, NOP
|
|
.align $20
|
|
stable:
|
|
txs // Restore stack pointer
|
|
ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles)
|
|
!: dex
|
|
bne !-
|
|
nop
|
|
lda RASTER
|
|
cmp RASTER
|
|
bne !+ // And correct the last cycle of potential jitter
|
|
!:
|
|
// Raster is now completely stable! (Line 0x007 cycle 7)
|
|
}} always clobbers reg byte a reg byte x
|
|
Statement asm { jsrRASTER_CODE } always clobbers reg byte a reg byte x reg byte y
|
|
Statement [66] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [67] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [68] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [69] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [70] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [71] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [72] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [73] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = 7 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [75] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = irq_screen_top::toD0181_return#0 [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color top_sprites_mc pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [76] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [77] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR) = top_sprites_color [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx top_sprites_color pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [78] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR) = top_sprites_color [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase frame anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [82] if(0!=frame) goto irq_screen_top::toDd001 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [84] *((char *)CIA2) = irq_screen_top::toDd002_return#0 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [85] canvas_base_hi = byte1 SPRITES_2 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [86] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [87] if(phase==0) goto irq_screen_top::@2 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [92] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [93] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [94] *HARDWARE_IRQ = &irq_screen_top [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [95] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [96] music_play_next = 1 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [98] *((char *)CIA2) = irq_screen_top::toDd001_return#0 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [99] canvas_base_hi = byte1 SPRITES_1 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [100] bobs_restore_base = 0 [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] ( [ pacman_ch1_enabled pacman_ch1_idx pill_count pacman_lives phase anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep game_playable ] { } ) always clobbers reg byte a
|
|
Statement [107] if(game_playable!=0) goto game_logic::@1 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [112] if(game_logic_substep==0) goto game_logic::@2 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction pacman_substep ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [113] if(game_logic_substep==1) goto game_logic::@3 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [114] if(game_logic_substep==2) goto game_logic::@4 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [115] if(game_logic_substep==4) goto game_logic::@5 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [116] if(game_logic_substep==5) goto game_logic::@6 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [117] if(game_logic_substep==6) goto game_logic::@7 [ pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [118] if(game_logic_substep==3) goto game_logic::@14 [ pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic_substep ] { } ) always clobbers reg byte a
|
|
Statement [119] if(game_logic_substep==7) goto game_logic::@14 [ pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx pacman_xfine pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction ] { } ) always clobbers reg byte a
|
|
Statement [124] game_logic::$17 = game_logic::pacman_bob_xfine#0 >> 2 [ pacman_ch1_enabled anim_frame_idx pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$17 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx pacman_yfine pacman_direction ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$17 ] { } ) always clobbers reg byte a
|
|
Statement [128] game_logic::$19 = pacman_direction | anim_frame_idx [ pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$19 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::pacman_bob_xfine#0 game_logic::$19 ] { } ) always clobbers reg byte a
|
|
Statement [129] game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3 [ pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$19 game_logic::$20 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$19 game_logic::$20 ] { } ) always clobbers reg byte a
|
|
Statement [130] game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20 [ pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$21 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled anim_frame_idx ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::$21 ] { } ) always clobbers reg byte a
|
|
Statement [133] if(ghosts_mode!=FRIGHTENED) goto game_logic::@44 [ pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#0 ] { } ) always clobbers reg byte a
|
|
Statement [134] game_logic::ghost_frame_idx#1 = game_logic::ghost_frame_idx#0 | $40 [ pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#1 ] { } ) always clobbers reg byte a
|
|
Statement [137] game_logic::$25 = game_logic::ghost1_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$25 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_yfine ghost1_direction ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$25 ] { } ) always clobbers reg byte a
|
|
Statement [141] game_logic::$27 = ghost1_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$27 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost1_bob_xfine#0 game_logic::$27 ] { } ) always clobbers reg byte a
|
|
Statement [142] game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3 [ pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$27 game_logic::$28 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$27 game_logic::$28 ] { } ) always clobbers reg byte a
|
|
Statement [143] game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28 [ pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$29 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$29 ] { } ) always clobbers reg byte a
|
|
Statement [146] game_logic::$31 = game_logic::ghost2_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$31 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_yfine ghost2_direction ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$31 ] { } ) always clobbers reg byte a
|
|
Statement [150] game_logic::$33 = ghost2_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$33 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost2_bob_xfine#0 game_logic::$33 ] { } ) always clobbers reg byte a
|
|
Statement [151] game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3 [ pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$33 game_logic::$34 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$33 game_logic::$34 ] { } ) always clobbers reg byte a
|
|
Statement [152] game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34 [ pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$35 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$35 ] { } ) always clobbers reg byte a
|
|
Statement [155] game_logic::$37 = game_logic::ghost3_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$37 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_yfine ghost3_direction ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$37 ] { } ) always clobbers reg byte a
|
|
Statement [159] game_logic::$39 = ghost3_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$39 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost3_bob_xfine#0 game_logic::$39 ] { } ) always clobbers reg byte a
|
|
Statement [160] game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3 [ pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$39 game_logic::$40 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$39 game_logic::$40 ] { } ) always clobbers reg byte a
|
|
Statement [161] game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40 [ pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$41 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::$41 ] { } ) always clobbers reg byte a
|
|
Statement [164] game_logic::$43 = game_logic::ghost4_bob_xfine#0 >> 2 [ pacman_ch1_enabled ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost4_bob_xfine#0 game_logic::$43 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_yfine ghost4_direction game_logic::ghost_frame_idx#2 game_logic::ghost4_bob_xfine#0 game_logic::$43 ] { } ) always clobbers reg byte a
|
|
Statement [168] game_logic::$45 = ghost4_direction | game_logic::ghost_frame_idx#2 [ pacman_ch1_enabled game_logic::ghost4_bob_xfine#0 game_logic::$45 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost4_bob_xfine#0 game_logic::$45 ] { } ) always clobbers reg byte a
|
|
Statement [169] game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3 [ pacman_ch1_enabled game_logic::$45 game_logic::$46 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::$45 game_logic::$46 ] { } ) always clobbers reg byte a
|
|
Statement [170] game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46 [ pacman_ch1_enabled game_logic::$47 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::$47 ] { } ) always clobbers reg byte a
|
|
Statement [173] if(ghosts_mode==SCATTER) goto game_logic::@45 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [174] if(ghosts_mode==CHASE) goto game_logic::@46 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [175] if(ghosts_mode!=FRIGHTENED) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghosts_mode_count ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [176] if(ghosts_mode_count<$32+1) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [177] ghosts_mode = CHASE [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [178] ghosts_mode_count = 0 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [181] ghost1_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [182] ghost2_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [183] ghost3_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [184] ghost4_reverse = 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [185] game_logic::pacman_xtile#0 = pacman_xfine >> 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 ] { } ) always clobbers reg byte a
|
|
Statement [186] game_logic::pacman_ytile#0 = pacman_yfine >> 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::pacman_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::pacman_ytile#0 ] { } ) always clobbers reg byte a
|
|
Statement [187] game_logic::$210 = game_logic::pacman_ytile#0 << 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 ] { } ) always clobbers reg byte a
|
|
Statement [188] game_logic::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[game_logic::$210] [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Statement [189] game_logic::tile_id#0 = game_logic::ytiles#0[game_logic::pacman_xtile#0] [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] { } ) always clobbers reg byte a
|
|
Statement [190] if(TILES_TYPE[game_logic::tile_id#0]==PILL) goto game_logic::@49 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::tile_id#0 ] { } ) always clobbers reg byte a
|
|
Statement [191] if(TILES_TYPE[game_logic::tile_id#0]!=POWERUP) goto game_logic::@50 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Statement [192] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Statement [193] game_logic::$65 = game_logic::pacman_xtile#0 >> 1 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$65 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$65 ] { } ) always clobbers reg byte a
|
|
Statement [195] game_logic::$66 = game_logic::pacman_xtile#0 & $fe [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$66 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$66 ] { } ) always clobbers reg byte a
|
|
Statement [196] game_logic::$67 = game_logic::ytiles#0 + game_logic::$66 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$67 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$67 ] { } ) always clobbers reg byte a
|
|
Statement [197] logic_tile_ptr = game_logic::$67 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] { } ) always clobbers reg byte a
|
|
Statement [200] ghosts_mode = FRIGHTENED [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [201] ghosts_mode_count = 0 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [202] game_logic::$75 = pacman_xfine - ghost1_xfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 ] { } ) always clobbers reg byte a
|
|
Statement [203] game_logic::$77 = pacman_yfine - ghost1_yfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 game_logic::$77 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$75 game_logic::$77 ] { } ) always clobbers reg byte a
|
|
Statement [204] if(ABS[game_logic::$75]>=2) goto game_logic::@64 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$77 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$77 ] { } ) always clobbers reg byte a
|
|
Statement [205] if(ABS[game_logic::$77]<2) goto game_logic::@51 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [206] game_logic::$80 = pacman_xfine - ghost2_xfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 ] { } ) always clobbers reg byte a
|
|
Statement [207] game_logic::$82 = pacman_yfine - ghost2_yfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 game_logic::$82 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$80 game_logic::$82 ] { } ) always clobbers reg byte a
|
|
Statement [208] if(ABS[game_logic::$80]>=2) goto game_logic::@65 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$82 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$82 ] { } ) always clobbers reg byte a
|
|
Statement [209] if(ABS[game_logic::$82]<2) goto game_logic::@52 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [210] game_logic::$85 = pacman_xfine - ghost3_xfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$85 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$85 ] { } ) always clobbers reg byte a
|
|
Statement [211] game_logic::$87 = pacman_yfine - ghost3_yfine [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$85 game_logic::$87 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$85 game_logic::$87 ] { } ) always clobbers reg byte a
|
|
Statement [212] if(ABS[game_logic::$85]>=2) goto game_logic::@66 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$87 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine game_logic::$87 ] { } ) always clobbers reg byte a
|
|
Statement [213] if(ABS[game_logic::$87]<2) goto game_logic::@53 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [214] game_logic::$90 = pacman_xfine - ghost4_xfine [ pacman_ch1_enabled pacman_lives pacman_yfine ghosts_mode ghost4_yfine game_logic::$90 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_yfine ghosts_mode ghost4_yfine game_logic::$90 ] { } ) always clobbers reg byte a
|
|
Statement [215] game_logic::$92 = pacman_yfine - ghost4_yfine [ pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$90 game_logic::$92 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$90 game_logic::$92 ] { } ) always clobbers reg byte a
|
|
Statement [216] if(ABS[game_logic::$90]>=2) goto game_logic::@return [ pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$92 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ghosts_mode game_logic::$92 ] { } ) always clobbers reg byte a
|
|
Statement [217] if(ABS[game_logic::$92]<2) goto game_logic::@67 [ pacman_ch1_enabled pacman_lives ghosts_mode ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ghosts_mode ] { } ) always clobbers reg byte a
|
|
Statement [218] if(ghosts_mode==FRIGHTENED) goto game_logic::@54 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [221] ghost4_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [222] ghost4_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [223] ghost4_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [224] ghost4_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [225] ghost4_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [226] if(ghosts_mode==FRIGHTENED) goto game_logic::@55 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [229] ghost3_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [230] ghost3_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [231] ghost3_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [232] ghost3_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [233] ghost3_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [234] if(ghosts_mode==FRIGHTENED) goto game_logic::@56 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [237] ghost2_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [238] ghost2_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [239] ghost2_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [240] ghost2_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [241] ghost2_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [242] if(ghosts_mode==FRIGHTENED) goto game_logic::@57 [ pacman_ch1_enabled pacman_lives ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [245] ghost1_direction = STOP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [246] ghost1_xfine = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [247] ghost1_yfine = $23 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [248] ghost1_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [249] ghost1_respawn = $32 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [250] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 ] { } ) always clobbers reg byte a
|
|
Statement [251] game_logic::$69 = game_logic::pacman_xtile#0 >> 1 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$69 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::pacman_xtile#0 game_logic::$210 game_logic::ytiles#0 game_logic::$69 ] { } ) always clobbers reg byte a
|
|
Statement [253] game_logic::$70 = game_logic::pacman_xtile#0 & $fe [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$70 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::ytiles#0 game_logic::$70 ] { } ) always clobbers reg byte a
|
|
Statement [254] game_logic::$71 = game_logic::ytiles#0 + game_logic::$70 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$71 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 game_logic::$71 ] { } ) always clobbers reg byte a
|
|
Statement [255] logic_tile_ptr = game_logic::$71 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine game_logic::$210 ] { } ) always clobbers reg byte a
|
|
Statement [258] pill_count = -- pill_count [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [259] if(pill_count!=0) goto game_logic::@50 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [260] pacman_wins = 1 [ pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [261] if(ghosts_mode_count<$96+1) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [262] ghosts_mode = SCATTER [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [263] ghosts_mode_count = 0 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [264] if(ghosts_mode_count<$32+1) goto game_logic::@47 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [265] ghosts_mode = CHASE [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [266] ghosts_mode_count = 0 [ pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pill_count pacman_lives pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost2_xfine ghost2_yfine ghost3_xfine ghost3_yfine ghost4_xfine ghost4_yfine ] { } ) always clobbers reg byte a
|
|
Statement [267] if(0!=ghost4_respawn) goto game_logic::@72 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ghost4_respawn ] { } ) always clobbers reg byte a
|
|
Statement [268] if(ghost4_direction==RIGHT) goto game_logic::@73 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [269] if(ghost4_direction==DOWN) goto game_logic::@74 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [270] if(ghost4_direction==LEFT) goto game_logic::@75 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [271] if(ghost4_direction!=UP) goto game_logic::@76 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_substep ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [274] if(ghost4_substep!=0) goto game_logic::@82 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse game_logic::$220 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse game_logic::$220 ] { } ) always clobbers reg byte a
|
|
Statement [276] ghost4_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ghost4_reverse ] { } ) always clobbers reg byte a
|
|
Statement [277] if(0!=ghost4_reverse) goto game_logic::@78 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_xfine ghost4_yfine ghost4_direction ] { } ) always clobbers reg byte a
|
|
Statement [278] game_logic::ghost4_xtile#0 = ghost4_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_yfine ghost4_direction game_logic::ghost4_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_yfine ghost4_direction game_logic::ghost4_xtile#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } ) always clobbers reg byte a
|
|
Statement [279] game_logic::ghost4_ytile#0 = ghost4_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } ) always clobbers reg byte a
|
|
Statement [285] game_logic::open_directions#1 = game_logic::open_directions#0 & DIRECTION_ELIMINATE[ghost4_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] { } ) always clobbers reg byte a
|
|
Statement [286] if(ghosts_mode==FRIGHTENED) goto game_logic::@79 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] { } ) always clobbers reg byte a
|
|
Statement [287] if(ghosts_mode==SCATTER) goto game_logic::@80 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 ] { } ) always clobbers reg byte a
|
|
Statement [288] game_logic::target_xtile#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 ] { } ) always clobbers reg byte a
|
|
Statement [289] game_logic::target_ytile#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 game_logic::target_ytile#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 game_logic::open_directions#1 game_logic::target_xtile#2 game_logic::target_ytile#2 ] { } ) always clobbers reg byte a
|
|
Statement [300] ghost4_direction = DIRECTION_SINGLE[game_logic::open_directions#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [301] ghost4_direction = DIRECTION_REVERSE[ghost4_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [302] ghost4_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [303] ghost4_substep = 1 [ pacman_ch1_enabled ghost4_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ] { } ) always clobbers reg byte a
|
|
Statement [304] if(ghost4_xfine==1) goto game_logic::@81 [ pacman_ch1_enabled ghost4_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost4_xfine ] { } ) always clobbers reg byte a
|
|
Statement [305] if(ghost4_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [306] ghost4_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [307] ghost4_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [312] if(ghost4_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [313] ghost4_direction = RIGHT [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [314] ghost4_xfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [315] ghost4_yfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [316] ghost4_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [317] if(0!=ghost3_respawn) goto game_logic::@89 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ghost3_respawn ] { } ) always clobbers reg byte a
|
|
Statement [318] if(ghost3_direction==RIGHT) goto game_logic::@90 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [319] if(ghost3_direction==DOWN) goto game_logic::@91 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [320] if(ghost3_direction==LEFT) goto game_logic::@92 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [321] if(ghost3_direction!=UP) goto game_logic::@93 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_substep ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [324] if(ghost3_substep!=0) goto game_logic::@99 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse game_logic::$223 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse game_logic::$223 ] { } ) always clobbers reg byte a
|
|
Statement [326] ghost3_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ghost3_reverse ] { } ) always clobbers reg byte a
|
|
Statement [327] if(0!=ghost3_reverse) goto game_logic::@95 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_xfine ghost3_yfine ghost3_direction ] { } ) always clobbers reg byte a
|
|
Statement [328] game_logic::ghost3_xtile#0 = ghost3_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost3_direction game_logic::ghost3_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_yfine ghost3_direction game_logic::ghost3_xtile#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [329] game_logic::ghost3_ytile#0 = ghost3_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [335] game_logic::open_directions1#1 = game_logic::open_directions1#0 & DIRECTION_ELIMINATE[ghost3_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] { } ) always clobbers reg byte a
|
|
Statement [336] if(ghosts_mode==FRIGHTENED) goto game_logic::@96 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] { } ) always clobbers reg byte a
|
|
Statement [337] if(ghosts_mode==SCATTER) goto game_logic::@97 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 ] { } ) always clobbers reg byte a
|
|
Statement [338] game_logic::target_xtile1#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 ] { } ) always clobbers reg byte a
|
|
Statement [339] game_logic::target_ytile1#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 game_logic::target_ytile1#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 game_logic::open_directions1#1 game_logic::target_xtile1#2 game_logic::target_ytile1#2 ] { } ) always clobbers reg byte a
|
|
Statement [350] ghost3_direction = DIRECTION_SINGLE[game_logic::open_directions1#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [351] ghost3_direction = DIRECTION_REVERSE[ghost3_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [352] ghost3_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [353] ghost3_substep = 1 [ pacman_ch1_enabled ghost3_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ] { } ) always clobbers reg byte a
|
|
Statement [354] if(ghost3_xfine==1) goto game_logic::@98 [ pacman_ch1_enabled ghost3_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost3_xfine ] { } ) always clobbers reg byte a
|
|
Statement [355] if(ghost3_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [356] ghost3_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [357] ghost3_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [362] if(ghost3_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [363] ghost3_direction = UP [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [364] ghost3_xfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [365] ghost3_yfine = $46 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [366] ghost3_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [367] if(0!=ghost2_respawn) goto game_logic::@106 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ghost2_respawn ] { } ) always clobbers reg byte a
|
|
Statement [368] if(ghost2_direction==RIGHT) goto game_logic::@107 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [369] if(ghost2_direction==DOWN) goto game_logic::@108 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [370] if(ghost2_direction==LEFT) goto game_logic::@109 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [371] if(ghost2_direction!=UP) goto game_logic::@110 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_substep ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [374] if(ghost2_substep!=0) goto game_logic::@116 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse game_logic::$226 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse game_logic::$226 ] { } ) always clobbers reg byte a
|
|
Statement [376] ghost2_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ghost2_reverse ] { } ) always clobbers reg byte a
|
|
Statement [377] if(0!=ghost2_reverse) goto game_logic::@112 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_xfine ghost2_yfine ghost2_direction ] { } ) always clobbers reg byte a
|
|
Statement [378] game_logic::ghost2_xtile#0 = ghost2_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost2_direction game_logic::ghost2_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_yfine ghost2_direction game_logic::ghost2_xtile#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [379] game_logic::ghost2_ytile#0 = ghost2_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [385] game_logic::open_directions2#1 = game_logic::open_directions2#0 & DIRECTION_ELIMINATE[ghost2_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] { } ) always clobbers reg byte a
|
|
Statement [386] if(ghosts_mode==FRIGHTENED) goto game_logic::@113 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] { } ) always clobbers reg byte a
|
|
Statement [387] if(ghosts_mode==SCATTER) goto game_logic::@114 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 ] { } ) always clobbers reg byte a
|
|
Statement [388] game_logic::target_xtile2#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 ] { } ) always clobbers reg byte a
|
|
Statement [389] game_logic::target_ytile2#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 game_logic::target_ytile2#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 game_logic::open_directions2#1 game_logic::target_xtile2#2 game_logic::target_ytile2#2 ] { } ) always clobbers reg byte a
|
|
Statement [400] ghost2_direction = DIRECTION_SINGLE[game_logic::open_directions2#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [401] ghost2_direction = DIRECTION_REVERSE[ghost2_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [402] ghost2_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [403] ghost2_substep = 1 [ pacman_ch1_enabled ghost2_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ] { } ) always clobbers reg byte a
|
|
Statement [404] if(ghost2_xfine==1) goto game_logic::@115 [ pacman_ch1_enabled ghost2_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost2_xfine ] { } ) always clobbers reg byte a
|
|
Statement [405] if(ghost2_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [406] ghost2_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [407] ghost2_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [412] if(ghost2_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [413] ghost2_direction = LEFT [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [414] ghost2_xfine = $60 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [415] ghost2_yfine = $46 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [416] ghost2_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [417] if(0!=ghost1_respawn) goto game_logic::@123 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ghost1_respawn ] { } ) always clobbers reg byte a
|
|
Statement [418] if(ghost1_direction==RIGHT) goto game_logic::@124 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [419] if(ghost1_direction==DOWN) goto game_logic::@125 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [420] if(ghost1_direction==LEFT) goto game_logic::@126 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [421] if(ghost1_direction!=UP) goto game_logic::@127 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_substep ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [424] if(ghost1_substep!=0) goto game_logic::@133 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse game_logic::$229 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse game_logic::$229 ] { } ) always clobbers reg byte a
|
|
Statement [426] ghost1_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ghost1_reverse ] { } ) always clobbers reg byte a
|
|
Statement [427] if(0!=ghost1_reverse) goto game_logic::@129 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_xfine ghost1_yfine ghost1_direction ] { } ) always clobbers reg byte a
|
|
Statement [428] game_logic::ghost1_xtile#0 = ghost1_xfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost1_direction game_logic::ghost1_xtile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_yfine ghost1_direction game_logic::ghost1_xtile#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [429] game_logic::ghost1_ytile#0 = ghost1_yfine >> 1 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [435] game_logic::open_directions3#1 = game_logic::open_directions3#0 & DIRECTION_ELIMINATE[ghost1_direction] [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] { } ) always clobbers reg byte a
|
|
Statement [436] if(ghosts_mode==FRIGHTENED) goto game_logic::@130 [ pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] { } ) always clobbers reg byte a
|
|
Statement [437] if(ghosts_mode==SCATTER) goto game_logic::@131 [ pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 ] { } ) always clobbers reg byte a
|
|
Statement [438] game_logic::target_xtile3#2 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 ] { } ) always clobbers reg byte a
|
|
Statement [439] game_logic::target_ytile3#2 = pacman_yfine >> 1 [ pacman_ch1_enabled game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 game_logic::target_ytile3#2 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 game_logic::open_directions3#1 game_logic::target_xtile3#2 game_logic::target_ytile3#2 ] { } ) always clobbers reg byte a
|
|
Statement [450] ghost1_direction = DIRECTION_SINGLE[game_logic::open_directions3#1] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [451] ghost1_direction = DIRECTION_REVERSE[ghost1_direction] [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [452] ghost1_reverse = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [453] ghost1_substep = 1 [ pacman_ch1_enabled ghost1_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ] { } ) always clobbers reg byte a
|
|
Statement [454] if(ghost1_xfine==1) goto game_logic::@132 [ pacman_ch1_enabled ghost1_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ghost1_xfine ] { } ) always clobbers reg byte a
|
|
Statement [455] if(ghost1_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [456] ghost1_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [457] ghost1_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [462] if(ghost1_respawn!=0) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [463] ghost1_direction = DOWN [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [464] ghost1_xfine = $60 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [465] ghost1_yfine = 2 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [466] ghost1_substep = 0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [467] if(pacman_direction==RIGHT) goto game_logic::@140 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [468] if(pacman_direction==DOWN) goto game_logic::@141 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [469] if(pacman_direction==LEFT) goto game_logic::@142 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [470] if(pacman_direction!=UP) goto game_logic::@143 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction pacman_substep ] { } ) always clobbers reg byte a
|
|
Statement [473] if(pacman_substep!=0) goto game_logic::@147 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction game_logic::$232 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction game_logic::$232 ] { } ) always clobbers reg byte a
|
|
Statement [475] pacman_substep = 0 [ pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine pacman_direction ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [476] game_logic::pacman_xtile1#0 = pacman_xfine >> 1 [ pacman_ch1_enabled pacman_yfine pacman_direction game_logic::pacman_xtile1#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_yfine pacman_direction game_logic::pacman_xtile1#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [477] game_logic::pacman_ytile1#0 = pacman_yfine >> 1 [ pacman_ch1_enabled pacman_direction game_logic::pacman_xtile1#0 game_logic::pacman_ytile1#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::pacman_xtile1#0 game_logic::pacman_ytile1#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [483] game_logic::$199 = *((char *)CIA1) & $f [ pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$199 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$199 ] { } ) always clobbers reg byte a
|
|
Statement [484] game_logic::$200 = game_logic::$199 ^ $f [ pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$200 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::$200 ] { } ) always clobbers reg byte a
|
|
Statement [485] game_logic::joy_directions#0 = game_logic::$200 << 2 [ pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::joy_directions#0 ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction game_logic::open_directions4#0 game_logic::joy_directions#0 ] { } ) always clobbers reg byte a
|
|
Statement [491] pacman_direction = pacman_direction & game_logic::open_directions4#0 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [492] pacman_substep = 1 [ pacman_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_xfine ] { } ) always clobbers reg byte a
|
|
Statement [493] pacman_ch1_enabled = 1 [ pacman_ch1_enabled pacman_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine ] { } ) always clobbers reg byte a
|
|
Statement [494] if(pacman_xfine==1) goto game_logic::@146 [ pacman_ch1_enabled pacman_xfine ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine ] { } ) always clobbers reg byte a
|
|
Statement [495] if(pacman_xfine!=$61) goto game_logic::@return [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [496] pacman_xfine = 1 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [497] pacman_xfine = $61 [ pacman_ch1_enabled ] ( game_logic:89 [ pacman_ch1_idx pacman_ch1_enabled ] { } ) always clobbers reg byte a
|
|
Statement [501] if(0==pacman_ch1_enabled) goto pacman_sound_play::@return [ pacman_ch1_idx ] ( pacman_sound_play:91 [ pacman_ch1_idx ] { } ) always clobbers reg byte a
|
|
Statement [502] *SID_CH1_FREQ_HI = PACMAN_CH1_FREQ_HI[pacman_ch1_idx] [ pacman_ch1_idx ] ( pacman_sound_play:91 [ pacman_ch1_idx ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [503] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = PACMAN_CH1_CONTROL[pacman_ch1_idx] [ pacman_ch1_idx ] ( pacman_sound_play:91 [ pacman_ch1_idx ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [505] if(pacman_ch1_idx!=$16*SIZEOF_CHAR) goto pacman_sound_play::@return [ ] ( pacman_sound_play:91 [ ] { } ) always clobbers reg byte a
|
|
Statement [506] pacman_ch1_idx = 0 [ ] ( pacman_sound_play:91 [ ] { } ) always clobbers reg byte a
|
|
Statement [507] pacman_ch1_enabled = 0 [ ] ( pacman_sound_play:91 [ ] { } ) always clobbers reg byte a
|
|
Statement [511] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [512] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [513] *PROCPORT = PROCPORT_RAM_ALL [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [515] byteboozer_decrunch::crunched = RASTER_CODE_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [517] byteboozer_decrunch::crunched = LOGIC_CODE_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [527] byteboozer_decrunch::crunched = SPLASH_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [535] byteboozer_decrunch::crunched = BOB_GRAPHICS_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [541] byteboozer_decrunch::crunched = INTRO_MUSIC_CRUNCHED_UPPER [ byteboozer_decrunch::crunched ] ( main:62::splash_run:102 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [545] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [546] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [550] *((char *)CIA2) = splash_run::toDd001_return#0 [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Statement [551] canvas_base_hi = byte1 SPRITES_2 [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Statement [552] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Statement [554] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = splash_run::toD0181_return#0 [ splash_run::msb#10 ] ( main:62::splash_run:102 [ splash_run::msb#10 ] { } ) always clobbers reg byte a
|
|
Statement [556] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [557] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = $ff [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [558] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [559] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [560] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [561] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [562] top_sprites_mc = 3 [ top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [563] side_sprites_mc = 0 [ top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [564] bottom_sprites_mc = 3 [ top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [565] top_sprites_color = YELLOW [ top_sprites_color top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_color top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [566] side_sprites_color = BLUE [ top_sprites_color top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_color top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [567] bottom_sprites_color = YELLOW [ top_sprites_color top_sprites_mc ] ( main:62::splash_run:102 [ top_sprites_color top_sprites_mc ] { } ) always clobbers reg byte a
|
|
Statement [568] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc [ top_sprites_color ] ( main:62::splash_run:102 [ top_sprites_color ] { } ) always clobbers reg byte a
|
|
Statement [571] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 8 [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement asm { lda#1 staINTRO_MUSIC+$69 } always clobbers reg byte a
|
|
Statement asm { lda#0 } always clobbers reg byte a
|
|
Statement [576] callexecute *musicInit [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [577] phase = 0 [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [578] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [579] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto splash_run::@12 [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [580] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [581] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [582] *HARDWARE_IRQ = &irq_screen_top [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [583] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a
|
|
Statement [585] *IRQ_STATUS = $f [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a
|
|
Statement [589] music_play_next = 0 [ music_play_next ] ( main:62::splash_run:102 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [596] if(0==music_play_next) goto splash_run::@14 [ music_play_next ] ( main:62::splash_run:102 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [598] callexecute *musicPlay [ ] ( main:62::splash_run:102 [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [599] music_play_next = 0 [ music_play_next ] ( main:62::splash_run:102 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [600] bobs_xcol[splash_run::i2#2] = $a [ splash_run::i2#2 ] ( main:62::splash_run:102 [ splash_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Statement [601] bobs_yfine[splash_run::i2#2] = $2d [ splash_run::i2#2 ] ( main:62::splash_run:102 [ splash_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Statement [602] bobs_bob_id[splash_run::i2#2] = 0 [ splash_run::i2#2 ] ( main:62::splash_run:102 [ splash_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Statement [604] SPRITES_COLOR[splash_run::i1#2] = top_sprites_color [ top_sprites_color splash_run::i1#2 ] ( main:62::splash_run:102 [ top_sprites_color splash_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Statement [606] splash_run::$34 = splash_run::i#2 << 1 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] { } ) always clobbers reg byte a
|
|
Statement [607] SPRITES_YPOS[splash_run::$34] = 7 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 ] { } ) always clobbers reg byte a
|
|
Statement [608] splash_run::xpos#0 = splash_run::sprites_xpos[splash_run::$34] [ splash_run::i#2 splash_run::msb#10 splash_run::$34 splash_run::xpos#0 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::$34 splash_run::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [609] SPRITES_XPOS[splash_run::$34] = (char)splash_run::xpos#0 [ splash_run::i#2 splash_run::msb#10 splash_run::xpos#0 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#10 splash_run::xpos#0 ] { } ) always clobbers reg byte a
|
|
Statement [613] splash_run::msb#2 = splash_run::msb#1 | $80 [ splash_run::i#2 splash_run::msb#2 ] ( main:62::splash_run:102 [ splash_run::i#2 splash_run::msb#2 ] { } ) always clobbers reg byte a
|
|
Statement [620] pacman_wins = 0 [ pacman_wins ] ( main:62::gameplay_run:104 [ pacman_wins ] { } ) always clobbers reg byte a
|
|
Statement [621] pacman_lives = 3 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [622] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLACK [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [623] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = BLACK [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [626] byteboozer_decrunch::crunched = LEVEL_TILES_CRUNCHED [ pacman_wins pacman_lives byteboozer_decrunch::crunched ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [634] level_show::return#0 = level_show::count#12 [ pacman_wins pacman_lives level_show::return#0 ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives level_show::return#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Statement [635] gameplay_run::$4 = level_show::return#0 [ pacman_wins pacman_lives gameplay_run::$4 ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives gameplay_run::$4 ] { } ) always clobbers reg byte a
|
|
Statement [636] pill_count = gameplay_run::$4 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [637] top_sprites_mc = $ff [ top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [638] side_sprites_mc = $ff [ top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [639] bottom_sprites_mc = $ff [ top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [640] top_sprites_color = YELLOW [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [641] side_sprites_color = YELLOW [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [642] bottom_sprites_color = YELLOW [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color top_sprites_mc pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [643] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc [ top_sprites_color pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ top_sprites_color pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [646] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [647] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [648] phase = 1 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [652] game_playable = 1 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [653] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [654] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fb) goto gameplay_run::@10 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [655] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto gameplay_run::@11 [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [656] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [657] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [658] *HARDWARE_IRQ = &irq_screen_top [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [659] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a
|
|
Statement [661] *IRQ_STATUS = $f [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [663] if(0!=pacman_wins) goto gameplay_run::@return [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [664] if(pacman_lives==0) goto gameplay_run::@return [ pacman_wins pacman_lives ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [666] SPRITES_COLOR[gameplay_run::i2#2] = top_sprites_color [ top_sprites_color pacman_wins pacman_lives gameplay_run::i2#2 ] ( main:62::gameplay_run:104 [ top_sprites_color pacman_wins pacman_lives gameplay_run::i2#2 ] { } ) always clobbers reg byte a
|
|
Statement [668] SPRITES_COLOR[gameplay_run::i1#2] = BLACK [ pacman_wins pacman_lives gameplay_run::i1#2 ] ( main:62::gameplay_run:104 [ pacman_wins pacman_lives gameplay_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Statement [670] ((char *)SID)[gameplay_run::i#2] = 0 [ gameplay_run::i#2 ] ( main:62::gameplay_run:104 [ gameplay_run::i#2 ] { } ) always clobbers reg byte a
|
|
Statement [672] game_playable = 0 [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a
|
|
Statement [673] phase = 0 [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a
|
|
Statement asm { lda#0 } always clobbers reg byte a
|
|
Statement [679] callexecute *musicInit [ pacman_wins ] ( main:62::done_run:106 [ pacman_wins ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [680] if(0!=pacman_wins) goto done_run::@2 [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a
|
|
Statement [681] byteboozer_decrunch::crunched = GAMEOVER_GFX_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::done_run:106 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [685] music_play_next = 0 [ music_play_next ] ( main:62::done_run:106 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [692] if(0==music_play_next) goto done_run::@14 [ music_play_next ] ( main:62::done_run:106 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [694] callexecute *musicPlay [ ] ( main:62::done_run:106 [ ] { } ) always clobbers reg byte a reg byte x reg byte y
|
|
Statement [695] music_play_next = 0 [ music_play_next ] ( main:62::done_run:106 [ music_play_next ] { } ) always clobbers reg byte a
|
|
Statement [699] done_run::pixels#0 = *done_run::gfx#2 [ done_run::xcol#2 done_run::gfx#2 done_run::ypos#2 done_run::pixels#0 ] ( main:62::done_run:106 [ done_run::xcol#2 done_run::gfx#2 done_run::ypos#2 done_run::pixels#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [706] byteboozer_decrunch::crunched = WIN_GFX_CRUNCHED [ byteboozer_decrunch::crunched ] ( main:62::done_run:106 [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a
|
|
Statement [708] bobs_xcol[done_run::i1#2] = $a [ done_run::i1#2 ] ( main:62::done_run:106 [ done_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Statement [709] bobs_yfine[done_run::i1#2] = $2d [ done_run::i1#2 ] ( main:62::done_run:106 [ done_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Statement [710] bobs_bob_id[done_run::i1#2] = 0 [ done_run::i1#2 ] ( main:62::done_run:106 [ done_run::i1#2 ] { } ) always clobbers reg byte a
|
|
Statement [712] ((char *)SID)[done_run::i#2] = 0 [ done_run::i#2 ] ( main:62::done_run:106 [ done_run::i#2 ] { } ) always clobbers reg byte a
|
|
Statement [714] ghosts_mode_count = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [715] pacman_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [716] ghost1_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [717] ghost2_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [718] ghost3_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [719] ghost4_substep = 0 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [720] pacman_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [721] ghost1_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [722] ghost2_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [723] ghost3_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [724] ghost4_direction = STOP [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [725] pacman_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [726] ghost1_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [727] ghost2_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [728] ghost3_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [729] ghost4_xfine = $32 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [730] ghost1_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [731] ghost2_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [732] ghost3_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [733] ghost4_yfine = $23 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [734] pacman_yfine = $3e [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [735] ghost1_respawn = $a [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [736] ghost2_respawn = $14 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [737] ghost3_respawn = $1e [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [738] ghost4_respawn = $28 [ ] ( game_logic:89::spawn_all:220 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:228 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:236 [ pacman_ch1_idx pacman_ch1_enabled ] { } game_logic:89::spawn_all:244 [ pacman_ch1_idx pacman_ch1_enabled ] { } main:62::gameplay_run:104::spawn_all:649 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [743] level_tile_directions::$5 = level_tile_directions::ytile#5 << 1 [ level_tile_directions::xtile#5 level_tile_directions::$5 ] ( game_logic:89::level_tile_directions:282 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } game_logic:89::level_tile_directions:332 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:382 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:432 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:480 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction level_tile_directions::xtile#5 level_tile_directions::$5 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [744] level_tile_directions::ytiles#0 = LEVEL_TILES_DIRECTIONS + LEVEL_YTILE_OFFSET[level_tile_directions::$5] [ level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] ( game_logic:89::level_tile_directions:282 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } game_logic:89::level_tile_directions:332 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:382 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:432 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:480 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction level_tile_directions::xtile#5 level_tile_directions::ytiles#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [745] level_tile_directions::return#0 = level_tile_directions::ytiles#0[level_tile_directions::xtile#5] [ level_tile_directions::return#0 ] ( game_logic:89::level_tile_directions:282 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost4_direction game_logic::ghost4_xtile#0 game_logic::ghost4_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#0 = level_tile_directions::xtile#5 game_logic::ghost4_xtile#0 } { level_tile_directions::ytile#0 = level_tile_directions::ytile#5 game_logic::ghost4_ytile#0 } { level_tile_directions::return#2 = level_tile_directions::return#3 } } game_logic:89::level_tile_directions:332 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost3_direction game_logic::ghost3_xtile#0 game_logic::ghost3_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#1 = level_tile_directions::xtile#5 game_logic::ghost3_xtile#0 } { level_tile_directions::ytile#1 = level_tile_directions::ytile#5 game_logic::ghost3_ytile#0 } { level_tile_directions::return#10 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:382 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost2_direction game_logic::ghost2_xtile#0 game_logic::ghost2_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#2 = level_tile_directions::xtile#5 game_logic::ghost2_xtile#0 } { level_tile_directions::ytile#2 = level_tile_directions::ytile#5 game_logic::ghost2_ytile#0 } { level_tile_directions::return#11 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:432 [ pacman_ch1_idx pacman_ch1_enabled pacman_xfine pacman_yfine ghosts_mode ghost1_direction game_logic::ghost1_xtile#0 game_logic::ghost1_ytile#0 level_tile_directions::return#0 ] { { level_tile_directions::xtile#3 = level_tile_directions::xtile#5 game_logic::ghost1_xtile#0 } { level_tile_directions::ytile#3 = level_tile_directions::ytile#5 game_logic::ghost1_ytile#0 } { level_tile_directions::return#12 = level_tile_directions::return#2 } } game_logic:89::level_tile_directions:480 [ pacman_ch1_idx pacman_ch1_enabled pacman_direction level_tile_directions::return#0 ] { { level_tile_directions::xtile#4 = level_tile_directions::xtile#5 game_logic::pacman_xtile1#0 } { level_tile_directions::ytile#4 = level_tile_directions::ytile#5 game_logic::pacman_ytile1#0 } { level_tile_directions::return#13 = level_tile_directions::return#2 } } ) always clobbers reg byte a
|
|
Statement [749] choose_direction::xdiff#0 = choose_direction::ghost_xtile#4 - choose_direction::target_xtile#4 [ choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::ghost_ytile#4 choose_direction::target_ytile#4 choose_direction::open_directions#10 choose_direction::xdiff#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [750] choose_direction::ydiff#0 = choose_direction::ghost_ytile#4 - choose_direction::target_ytile#4 [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [751] choose_direction::$2 = choose_direction::open_directions#10 & UP [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::$2 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [753] choose_direction::dist_up#0 = ABS[choose_direction::xdiff#0] + (ABS+-1)[choose_direction::ydiff#0] [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_up#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [757] choose_direction::$4 = choose_direction::open_directions#10 & DOWN [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::$4 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [759] choose_direction::dist_down#0 = ABS[choose_direction::xdiff#0] + (ABS+1)[choose_direction::ydiff#0] [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#6 choose_direction::direction#10 choose_direction::dist_down#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [763] choose_direction::$6 = choose_direction::open_directions#10 & LEFT [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::$6 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [765] choose_direction::dist_left#0 = (ABS+-1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] [ choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::open_directions#10 choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::dist_min#10 choose_direction::direction#8 choose_direction::dist_left#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [769] choose_direction::$8 = choose_direction::open_directions#10 & RIGHT [ choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::xdiff#0 choose_direction::ydiff#0 choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::$8 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [771] choose_direction::dist_right#0 = (ABS+1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] [ choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] ( game_logic:89::choose_direction:296 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#0 = choose_direction::ghost_xtile#4 game_logic::ghost4_xtile#0 } { choose_direction::target_xtile#0 = choose_direction::target_xtile#4 game_logic::target_xtile#3 } { choose_direction::ghost_ytile#0 = choose_direction::ghost_ytile#4 game_logic::ghost4_ytile#0 } { choose_direction::target_ytile#0 = choose_direction::target_ytile#4 game_logic::target_ytile#3 } { choose_direction::open_directions#0 = choose_direction::open_directions#10 game_logic::open_directions#1 } { choose_direction::return#0 = choose_direction::return#10 } } game_logic:89::choose_direction:346 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#1 = choose_direction::ghost_xtile#4 game_logic::ghost3_xtile#0 } { choose_direction::target_xtile#1 = choose_direction::target_xtile#4 game_logic::target_xtile1#3 } { choose_direction::ghost_ytile#1 = choose_direction::ghost_ytile#4 game_logic::ghost3_ytile#0 } { choose_direction::target_ytile#1 = choose_direction::target_ytile#4 game_logic::target_ytile1#3 } { choose_direction::open_directions#1 = choose_direction::open_directions#10 game_logic::open_directions1#1 } { choose_direction::return#1 = choose_direction::return#10 } } game_logic:89::choose_direction:396 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#2 = choose_direction::ghost_xtile#4 game_logic::ghost2_xtile#0 } { choose_direction::target_xtile#2 = choose_direction::target_xtile#4 game_logic::target_xtile2#3 } { choose_direction::ghost_ytile#2 = choose_direction::ghost_ytile#4 game_logic::ghost2_ytile#0 } { choose_direction::target_ytile#2 = choose_direction::target_ytile#4 game_logic::target_ytile2#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#2 game_logic::open_directions2#1 } { choose_direction::return#10 = choose_direction::return#2 } } game_logic:89::choose_direction:446 [ pacman_ch1_idx pacman_ch1_enabled choose_direction::direction#6 choose_direction::dist_min#11 choose_direction::dist_right#0 ] { { choose_direction::ghost_xtile#3 = choose_direction::ghost_xtile#4 game_logic::ghost1_xtile#0 } { choose_direction::target_xtile#3 = choose_direction::target_xtile#4 game_logic::target_xtile3#3 } { choose_direction::ghost_ytile#3 = choose_direction::ghost_ytile#4 game_logic::ghost1_ytile#0 } { choose_direction::target_ytile#3 = choose_direction::target_ytile#4 game_logic::target_ytile3#3 } { choose_direction::open_directions#10 = choose_direction::open_directions#3 game_logic::open_directions3#1 } { choose_direction::return#10 = choose_direction::return#3 } } ) always clobbers reg byte a
|
|
Statement [779] if(memset::num#5<=0) goto memset::@return [ memset::num#5 memset::str#6 ] ( main:62::splash_run:102::memset:514 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:522 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:524 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:532 [ memset::num#5 memset::str#6 ] { } main:62::splash_run:102::memset:544 [ memset::num#5 memset::str#6 ] { } ) always clobbers reg byte a
|
|
Statement [780] memset::end#0 = (char *)memset::str#6 + memset::num#5 [ memset::str#6 memset::end#0 ] ( main:62::splash_run:102::memset:514 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:522 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:524 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:532 [ memset::str#6 memset::end#0 ] { } main:62::splash_run:102::memset:544 [ memset::str#6 memset::end#0 ] { } ) always clobbers reg byte a
|
|
Statement [781] memset::dst#4 = (char *)memset::str#6 [ memset::end#0 memset::dst#4 ] ( main:62::splash_run:102::memset:514 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:522 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:524 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:532 [ memset::end#0 memset::dst#4 ] { } main:62::splash_run:102::memset:544 [ memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a
|
|
Statement [783] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::end#0 memset::dst#2 ] ( main:62::splash_run:102::memset:514 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:522 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:524 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:532 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:544 [ memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a
|
|
Statement [785] *memset::dst#2 = 0 [ memset::end#0 memset::dst#2 ] ( main:62::splash_run:102::memset:514 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:522 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:524 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:532 [ memset::end#0 memset::dst#2 ] { } main:62::splash_run:102::memset:544 [ memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch } always clobbers reg byte a reg byte x reg byte y
|
|
Statement [791] if(*merge_code::raster_code#4!=merge_code::RASTER_END) goto merge_code::@2 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [792] merge_code::raster_code#1 = ++ merge_code::raster_code#4 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 ] { } ) always clobbers reg byte a
|
|
Statement [793] merge_code::cycle_budget#0 = *merge_code::raster_code#1 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 merge_code::cycle_budget#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#1 merge_code::cycle_budget#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [794] merge_code::raster_code#2 = ++ merge_code::raster_code#1 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#2 merge_code::cycle_budget#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#14 merge_code::logic_code#18 merge_code::raster_code#2 merge_code::cycle_budget#0 ] { } ) always clobbers reg byte a
|
|
Statement [797] if(*merge_code::logic_code#12!=merge_code::LOGIC_EXIT) goto merge_code::@15 [ merge_code::logic_code#12 merge_code::dest_code#12 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::logic_code#12 merge_code::dest_code#12 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [798] *merge_code::dest_code#12 = $60 [ ] ( main:62::splash_run:102::merge_code:520 [ ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [800] merge_code::logic_code#3 = ++ merge_code::logic_code#12 [ merge_code::dest_code#12 merge_code::logic_code#3 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#12 merge_code::logic_code#3 ] { } ) always clobbers reg byte a
|
|
Statement [802] if(*merge_code::logic_code#14!=merge_code::LOGIC_END) goto merge_code::@18 [ merge_code::dest_code#13 merge_code::logic_code#14 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#13 merge_code::logic_code#14 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [803] merge_code::logic_code#5 = ++ merge_code::logic_code#14 [ merge_code::logic_code#5 merge_code::dest_code#13 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::logic_code#5 merge_code::dest_code#13 ] { } ) always clobbers reg byte a
|
|
Statement [804] *merge_code::dest_code#13 = *merge_code::logic_code#14 [ merge_code::dest_code#13 merge_code::logic_code#14 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::dest_code#13 merge_code::logic_code#14 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [809] merge_code::logic_cycles#0 = *merge_code::logic_code#17 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [815] *merge_code::dest_code#10 = $ea [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [818] *merge_code::dest_code#10 = $24 [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::dest_code#10 merge_code::logic_code#17 merge_code::cycle_budget#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [819] merge_code::dest_code#2 = ++ merge_code::dest_code#10 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] { } ) always clobbers reg byte a
|
|
Statement [820] *merge_code::dest_code#2 = $ea [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [821] merge_code::dest_code#3 = ++ merge_code::dest_code#2 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#3 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#10 merge_code::dest_code#3 ] { } ) always clobbers reg byte a
|
|
Statement [822] merge_code::cycle_budget#2 = merge_code::cycle_budget#10 - 3 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#2 merge_code::dest_code#3 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::logic_code#17 merge_code::cycle_budget#2 merge_code::dest_code#3 ] { } ) always clobbers reg byte a reg byte x
|
|
Statement [825] merge_code::logic_code#0 = ++ merge_code::logic_code#17 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 merge_code::logic_code#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#21 merge_code::logic_cycles#0 merge_code::logic_code#0 ] { } ) always clobbers reg byte a
|
|
Statement [827] if(*merge_code::logic_code#10!=merge_code::LOGIC_END) goto merge_code::@7 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [828] merge_code::logic_code#2 = ++ merge_code::logic_code#10 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::logic_code#2 merge_code::dest_code#15 merge_code::logic_cycles#0 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::logic_code#2 merge_code::dest_code#15 merge_code::logic_cycles#0 ] { } ) always clobbers reg byte a
|
|
Statement [829] merge_code::cycle_budget#1 = merge_code::cycle_budget#13 - merge_code::logic_cycles#0 [ merge_code::raster_code#2 merge_code::cycle_budget#1 merge_code::logic_code#2 merge_code::dest_code#15 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#1 merge_code::logic_code#2 merge_code::dest_code#15 ] { } ) always clobbers reg byte a
|
|
Statement [830] *merge_code::dest_code#15 = *merge_code::logic_code#10 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#2 merge_code::cycle_budget#13 merge_code::dest_code#15 merge_code::logic_cycles#0 merge_code::logic_code#10 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [833] *merge_code::dest_code#14 = *merge_code::raster_code#4 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] ( main:62::splash_run:102::merge_code:520 [ merge_code::raster_code#4 merge_code::dest_code#14 merge_code::logic_code#18 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [838] if(init_render_index::x_col#2<$1a) goto init_render_index::@2 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 ] { } ) always clobbers reg byte a
|
|
Statement [839] *(RENDER_INDEX+$18*$100+RENDER_OFFSET_YPOS_INC) = 0 [ ] ( main:62::splash_run:102::init_render_index:526 [ ] { } ) always clobbers reg byte a
|
|
Statement [840] *(RENDER_INDEX+$19*$100+RENDER_OFFSET_YPOS_INC) = 0 [ ] ( main:62::splash_run:102::init_render_index:526 [ ] { } ) always clobbers reg byte a
|
|
Statement [842] if(init_render_index::x_col#2<$18) goto init_render_index::@4 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 ] { } ) always clobbers reg byte a
|
|
Statement [845] init_render_index::$9 = init_render_index::x_col#2 << 1 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::$9 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::$9 ] { } ) always clobbers reg byte a
|
|
Statement [846] init_render_index::canvas_xcol#0 = RENDER_XCOLS[init_render_index::$9] [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 ] { } ) always clobbers reg byte a
|
|
Statement [847] init_render_index::render_index_xcol#7 = init_render_index::render_index_xcol#0 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 init_render_index::render_index_xcol#7 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::ypos_inc_offset#7 init_render_index::canvas_xcol#0 init_render_index::render_index_xcol#7 ] { } ) always clobbers reg byte a
|
|
Statement [849] if(init_render_index::y_pos#2<$94) goto init_render_index::@6 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] { } ) always clobbers reg byte a
|
|
Statement [850] init_render_index::render_index#1 = init_render_index::render_index_xcol#0 + $100 [ init_render_index::x_col#2 init_render_index::render_index#1 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index#1 ] { } ) always clobbers reg byte a
|
|
Statement [852] init_render_index::$11 = (unsigned int)init_render_index::y_pos#2 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$11 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$11 ] { } ) always clobbers reg byte a
|
|
Statement [853] init_render_index::$10 = init_render_index::$11 << 1 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$10 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$10 ] { } ) always clobbers reg byte a
|
|
Statement [854] init_render_index::$12 = init_render_index::render_ypos_table#4 + init_render_index::$10 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$12 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::$12 ] { } ) always clobbers reg byte a
|
|
Statement [855] init_render_index::canvas#0 = init_render_index::canvas_xcol#0 + *init_render_index::$12 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [857] *init_render_index::render_index_xcol#2 = init_render_index::$5 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 init_render_index::canvas#0 ] { } ) always clobbers reg byte y
|
|
Statement [859] init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_HI] = init_render_index::$6 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] { } ) always clobbers reg byte y
|
|
Statement [860] init_render_index::render_index_xcol#2[RENDER_OFFSET_YPOS_INC] = init_render_index::ypos_inc_offset#4 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#4 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [863] init_render_index::ypos_inc_offset#3 = init_render_index::ypos_inc_offset#2 - $15 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#3 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#2 init_render_index::render_index_xcol#2 init_render_index::ypos_inc_offset#3 ] { } ) always clobbers reg byte a reg byte x
|
|
Statement [866] init_render_index::y_pos#1 = init_render_index::y_pos#2 + 2 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#1 init_render_index::render_index_xcol#1 init_render_index::ypos_inc_offset#8 ] ( main:62::splash_run:102::init_render_index:526 [ init_render_index::x_col#2 init_render_index::render_index_xcol#0 init_render_index::render_ypos_table#4 init_render_index::canvas_xcol#0 init_render_index::y_pos#1 init_render_index::render_index_xcol#1 init_render_index::ypos_inc_offset#8 ] { } ) always clobbers reg byte a
|
|
Statement [874] splash_show::pixels#0 = *splash_show::splash#2 [ splash_show::xcol#2 splash_show::splash#2 splash_show::ypos#2 splash_show::pixels#0 ] ( main:62::splash_run:102::splash_show:530 [ splash_show::xcol#2 splash_show::splash#2 splash_show::ypos#2 splash_show::pixels#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [884] logic_tile_ptr = LEVEL_TILES+(unsigned int)$40*$12+$c [ ] ( main:62::splash_run:102::init_bobs_restore:534 [ ] { } ) always clobbers reg byte a
|
|
Statement [885] logic_tile_xcol = $c [ ] ( main:62::splash_run:102::init_bobs_restore:534 [ ] { } ) always clobbers reg byte a
|
|
Statement [886] logic_tile_yfine = $23 [ ] ( main:62::splash_run:102::init_bobs_restore:534 [ ] { } ) always clobbers reg byte a
|
|
Statement [890] *init_bobs_restore::bob_restore#5 = 0 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [891] init_bobs_restore::bob_restore#5[1] = byte1 init_bobs_restore::CANVAS_HIDDEN [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [892] init_bobs_restore::bob_restore#5[3] = 0 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [893] init_bobs_restore::bob_restore#5[4] = byte1 init_bobs_restore::CANVAS_HIDDEN [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [894] init_bobs_restore::bob_restore#1 = init_bobs_restore::bob_restore#5 + SIZE_BOB_RESTORE [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#1 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#1 ] { } ) always clobbers reg byte a
|
|
Statement [896] init_bobs_restore::bob_restore#5[init_bobs_restore::i#2] = 0 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 init_bobs_restore::i#2 ] ( main:62::splash_run:102::init_bobs_restore:534 [ init_bobs_restore::bob#2 init_bobs_restore::bob_restore#5 init_bobs_restore::i#2 ] { } ) always clobbers reg byte a
|
|
Statement [904] init_sprite_pointers::sprites_ptr_1#1 = init_sprite_pointers::sprites_ptr_1#5 + $400 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_1#1 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_1#1 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_1#1 ] { } ) always clobbers reg byte a
|
|
Statement [905] init_sprite_pointers::sprites_ptr_2#1 = init_sprite_pointers::sprites_ptr_2#5 + $400 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#1 init_sprite_pointers::sprites_ptr_2#1 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#1 init_sprite_pointers::sprites_ptr_2#1 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#1 init_sprite_pointers::sprites_ptr_2#1 ] { } ) always clobbers reg byte a
|
|
Statement [907] init_sprite_pointers::$2 = init_sprite_pointers::SPRITE_ID_0 + init_sprite_pointers::screen#2 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::$2 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::$2 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::$2 ] { } ) always clobbers reg byte a
|
|
Statement [908] init_sprite_pointers::sprite_id#0 = init_sprite_pointers::$2 + init_sprite_pointers::sprites_id[init_sprite_pointers::sprite#2] [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::sprite_id#0 ] ( main:62::splash_run:102::init_sprite_pointers:538 [ init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::sprite_id#0 ] { } main:62::gameplay_run:104::init_sprite_pointers:631 [ pacman_wins pacman_lives init_sprite_pointers::screen#2 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprite#2 init_sprite_pointers::sprite_id#0 ] { } ) always clobbers reg byte a
|
|
Statement [914] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:62::splash_run:102::memcpy:540 [ memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a
|
|
Statement [916] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src#2 memcpy::dst#2 ] ( main:62::splash_run:102::memcpy:540 [ memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [919] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 0 [ ] ( main:62::splash_run:102::joyinit:588 [ ] { } ) always clobbers reg byte a
|
|
Statement [921] joyfire::$0 = *((char *)CIA1) & $10 [ joyfire::$0 ] ( main:62::splash_run:102::joyfire:591 [ music_play_next joyfire::$0 ] { { joyfire::return#1 = joyfire::return#4 } } main:62::done_run:106::joyfire:687 [ music_play_next joyfire::$0 ] { { joyfire::return#0 = joyfire::return#4 } } ) always clobbers reg byte a
|
|
Statement [932] init_level_tile_directions::directions#1 = init_level_tile_directions::directions#7 + $40 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#1 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#1 ] { } ) always clobbers reg byte a
|
|
Statement [939] if(TILES_TYPE[init_level_tile_directions::$3]==WALL) goto init_level_tile_directions::@5 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] { } ) always clobbers reg byte a
|
|
Statement [947] if(TILES_TYPE[init_level_tile_directions::$7]==WALL) goto init_level_tile_directions::@6 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 ] { } ) always clobbers reg byte a
|
|
Statement [948] init_level_tile_directions::open_directions#2 = init_level_tile_directions::open_directions#11 | RIGHT [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#2 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#2 ] { } ) always clobbers reg byte a
|
|
Statement [955] if(TILES_TYPE[init_level_tile_directions::$11]==WALL) goto init_level_tile_directions::@7 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 ] { } ) always clobbers reg byte a
|
|
Statement [956] init_level_tile_directions::open_directions#3 = init_level_tile_directions::open_directions#12 | UP [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#3 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#3 ] { } ) always clobbers reg byte a
|
|
Statement [963] if(TILES_TYPE[init_level_tile_directions::$15]==WALL) goto init_level_tile_directions::@8 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 ] { } ) always clobbers reg byte a
|
|
Statement [964] init_level_tile_directions::open_directions#4 = init_level_tile_directions::open_directions#13 | DOWN [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#4 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#4 ] { } ) always clobbers reg byte a
|
|
Statement [966] init_level_tile_directions::directions#7[init_level_tile_directions::xtile#10] = init_level_tile_directions::open_directions#8 [ init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] ( main:62::gameplay_run:104::init_level_tile_directions:629 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 ] { } ) always clobbers reg byte a
|
|
Statement [974] level_show::level#1 = level_show::level#8 + $40 [ level_show::ytile#2 level_show::count#10 level_show::level#1 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::count#10 level_show::level#1 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Statement [976] level_show::tile_left#0 = level_show::level#8[level_show::xtile#3] [ level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::xtile#3 level_show::tile_left#0 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::xtile#3 level_show::tile_left#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a reg byte y
|
|
Statement [978] if(TILES_TYPE[level_show::tile_left#0]!=PILL) goto level_show::@5 [ level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::count#10 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Statement [981] level_show::tile_right#0 = level_show::level#8[level_show::xtile#1] [ level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 level_show::count#5 level_show::tile_right#0 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::tile_left#0 level_show::xtile#1 level_show::count#5 level_show::tile_right#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Statement [983] if(TILES_TYPE[level_show::tile_right#0]!=PILL) goto level_show::@6 [ level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::tile_left#0 level_show::count#5 level_show::tile_right#0 ] ( main:62::gameplay_run:104::level_show:633 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::tile_left#0 level_show::count#5 level_show::tile_right#0 ] { { level_show::return#0 = level_show::count#12 } } ) always clobbers reg byte a
|
|
Statement [992] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = $f [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [993] *((unsigned int *)SID) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [994] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [995] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [996] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = 0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [997] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = $f0 [ ] ( main:62::gameplay_run:104::pacman_sound_init:651 [ pacman_wins pacman_lives ] { } ) always clobbers reg byte a
|
|
Statement [1000] render::ytile#0 = render::ypos#2 >> 2 [ render::ypos#2 render::xcol#2 render::pixels#4 render::ytile#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::xcol#2 render::pixels#4 render::ytile#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::xcol#2 render::pixels#4 render::ytile#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1001] render::$1 = byte1 RENDER_INDEX + render::xcol#2 [ render::ypos#2 render::pixels#4 render::ytile#0 render::$1 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::ytile#0 render::$1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::ytile#0 render::$1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1002] render::$2 = render::ytile#0 << 1 [ render::ypos#2 render::pixels#4 render::$1 render::$2 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::$1 render::$2 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::$1 render::$2 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1004] render::canvas_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render::render_index_xcol#0) [ render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1005] render::canvas1#0 = SPRITES_1 + render::canvas_offset#0 [ render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 render::canvas1#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 render::canvas1#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas_offset#0 render::canvas1#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1006] render::canvas2#0 = SPRITES_2 + render::canvas_offset#0 [ render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas1#0 render::canvas2#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas1#0 render::canvas2#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::render_index_xcol#0 render::canvas1#0 render::canvas2#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1007] render::ypos_inc_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] [ render::ypos#2 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::ypos#2 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::ypos#2 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1008] render::ypix#0 = render::ypos#2 & 3 [ render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 render::ypix#0 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 render::ypix#0 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::canvas1#0 render::canvas2#0 render::ypos_inc_offset#0 render::ypix#0 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1011] *render::canvas1#2 = render::pixels#4 [ render::pixels#4 render::canvas2#2 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::canvas2#2 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::canvas2#2 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1012] *render::canvas2#2 = render::pixels#4 [ ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1014] render::canvas1#1 = render::canvas1#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] [ render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas2#2 render::canvas1#1 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas2#2 render::canvas1#1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas2#2 render::canvas1#1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1015] render::canvas2#1 = render::canvas2#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] [ render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas1#1 render::canvas2#1 ] ( main:62::done_run:106::render:704 [ done_run::xcol#2 done_run::ypos#2 done_run::gfx#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas1#1 render::canvas2#1 ] { { render::ypos#0 = render::ypos#2 done_run::ypos#2 } { render::xcol#0 = render::xcol#2 done_run::xcol#2 } { render::pixels#0 = render::pixels#4 done_run::pixels#0 } } main:62::splash_run:102::splash_show:530::render:879 [ splash_show::xcol#2 splash_show::ypos#2 splash_show::splash#1 render::pixels#4 render::ypix#0 render::i#2 render::ypos_inc_offset#2 render::canvas1#1 render::canvas2#1 ] { { render::ypos#1 = render::ypos#2 splash_show::ypos#2 } { render::xcol#1 = render::xcol#2 splash_show::xcol#2 } { render::pixels#1 = render::pixels#4 splash_show::pixels#0 } } ) always clobbers reg byte a
|
|
Statement [1021] level_tile_get::$5 = level_tile_get::ytile#4 << 1 [ level_tile_get::xtile#4 level_tile_get::$5 ] ( main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:936 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#0 = level_tile_get::xtile#4 } { level_tile_get::ytile#0 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#3 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:944 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#1 = level_tile_get::xtile#4 } { level_tile_get::ytile#1 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#4 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:952 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#2 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#2 = level_tile_get::ytile#4 } { level_tile_get::return#10 = level_tile_get::return#2 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:960 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 level_tile_get::xtile#4 level_tile_get::$5 ] { { level_tile_get::xtile#3 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#3 = level_tile_get::ytile#4 } { level_tile_get::return#11 = level_tile_get::return#2 } } ) always clobbers reg byte a
|
|
Statement [1022] level_tile_get::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[level_tile_get::$5] [ level_tile_get::xtile#4 level_tile_get::ytiles#0 ] ( main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:936 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#0 = level_tile_get::xtile#4 } { level_tile_get::ytile#0 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#3 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:944 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#1 = level_tile_get::xtile#4 } { level_tile_get::ytile#1 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#4 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:952 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#2 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#2 = level_tile_get::ytile#4 } { level_tile_get::return#10 = level_tile_get::return#2 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:960 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 level_tile_get::xtile#4 level_tile_get::ytiles#0 ] { { level_tile_get::xtile#3 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#3 = level_tile_get::ytile#4 } { level_tile_get::return#11 = level_tile_get::return#2 } } ) always clobbers reg byte a
|
|
Statement [1023] level_tile_get::return#0 = level_tile_get::ytiles#0[level_tile_get::xtile#4] [ level_tile_get::return#0 ] ( main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:936 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 level_tile_get::return#0 ] { { level_tile_get::xtile#0 = level_tile_get::xtile#4 } { level_tile_get::ytile#0 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#3 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:944 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#11 level_tile_get::return#0 ] { { level_tile_get::xtile#1 = level_tile_get::xtile#4 } { level_tile_get::ytile#1 = level_tile_get::ytile#4 init_level_tile_directions::ytile#15 } { level_tile_get::return#2 = level_tile_get::return#4 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:952 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#12 level_tile_get::return#0 ] { { level_tile_get::xtile#2 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#2 = level_tile_get::ytile#4 } { level_tile_get::return#10 = level_tile_get::return#2 } } main:62::gameplay_run:104::init_level_tile_directions:629::level_tile_get:960 [ pacman_wins pacman_lives init_level_tile_directions::ytile#15 init_level_tile_directions::directions#7 init_level_tile_directions::xtile#10 init_level_tile_directions::open_directions#13 level_tile_get::return#0 ] { { level_tile_get::xtile#3 = level_tile_get::xtile#4 init_level_tile_directions::xtile#10 } { level_tile_get::ytile#3 = level_tile_get::ytile#4 } { level_tile_get::return#11 = level_tile_get::return#2 } } ) always clobbers reg byte a
|
|
Statement [1026] render_tiles::$0 = render_tiles::tile_left#0 << 2 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::$0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::$0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1027] render_tiles::tile_left_pixels#0 = TILES_LEFT + render_tiles::$0 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::tile_left_pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_right#0 render_tiles::tile_left_pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1028] render_tiles::$2 = render_tiles::tile_right#0 << 2 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::$2 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::$2 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1029] render_tiles::tile_right_pixels#0 = TILES_RIGHT + render_tiles::$2 [ render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::xcol#0 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1030] render_tiles::$4 = byte1 RENDER_INDEX + render_tiles::xcol#0 [ render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::ytile#0 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1031] render_tiles::$5 = render_tiles::ytile#0 << 1 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 render_tiles::$5 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::$4 render_tiles::$5 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1033] render_tiles::canvas_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render_tiles::render_index_xcol#0) [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1034] render_tiles::canvas1#0 = SPRITES_1 + render_tiles::canvas_offset#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 render_tiles::canvas1#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas_offset#0 render_tiles::canvas1#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1035] render_tiles::canvas2#0 = SPRITES_2 + render_tiles::canvas_offset#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas1#0 render_tiles::canvas2#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::render_index_xcol#0 render_tiles::canvas1#0 render_tiles::canvas2#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1036] render_tiles::ypos_inc_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::canvas1#0 render_tiles::canvas2#0 render_tiles::ypos_inc_offset#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::canvas1#0 render_tiles::canvas2#0 render_tiles::ypos_inc_offset#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1040] render_tiles::pixels#0 = render_tiles::tile_left_pixels#0[render_tiles::y#2] | render_tiles::tile_right_pixels#0[render_tiles::y#2] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a reg byte y
|
|
Statement [1041] *render_tiles::canvas1#2 = render_tiles::pixels#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::pixels#0 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte y
|
|
Statement [1042] *render_tiles::canvas2#2 = render_tiles::pixels#0 [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas1#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte y
|
|
Statement [1043] render_tiles::canvas1#1 = render_tiles::canvas1#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::canvas2#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Statement [1044] render_tiles::canvas2#1 = render_tiles::canvas2#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] [ render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 render_tiles::canvas2#1 ] ( main:62::gameplay_run:104::level_show:633::render_tiles:990 [ pacman_wins pacman_lives level_show::ytile#2 level_show::level#8 level_show::xcol#2 level_show::xtile#2 level_show::count#11 render_tiles::tile_left_pixels#0 render_tiles::tile_right_pixels#0 render_tiles::y#2 render_tiles::ypos_inc_offset#2 render_tiles::canvas1#1 render_tiles::canvas2#1 ] { { level_show::return#0 = level_show::count#12 } { render_tiles::xcol#0 = level_show::xcol#2 } { render_tiles::ytile#0 = level_show::ytile#2 } { render_tiles::tile_left#0 = level_show::tile_left#0 } { render_tiles::tile_right#0 = level_show::tile_right#0 } } ) always clobbers reg byte a
|
|
Potential registers zp[1]:228 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ] : zp[1]:228 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:316 [ game_logic::do_reverse#4 ] : zp[1]:316 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:307 [ game_logic::target_xtile#3 game_logic::target_xtile#2 ] : zp[1]:307 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 ] : zp[1]:230 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:308 [ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ] : zp[1]:308 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:231 [ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ] : zp[1]:231 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:309 [ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ] : zp[1]:309 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:232 [ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ] : zp[1]:232 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:310 [ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ] : zp[1]:310 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:233 [ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ] : zp[1]:233 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:162 [ splash_run::i#2 splash_run::i#1 ] : zp[1]:162 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:158 [ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ] : zp[1]:158 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:160 [ splash_run::i1#2 splash_run::i1#1 ] : zp[1]:160 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:161 [ splash_run::i2#2 splash_run::i2#1 ] : zp[1]:161 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:92 [ gameplay_run::i#2 gameplay_run::i#1 ] : zp[1]:92 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:93 [ gameplay_run::i1#2 gameplay_run::i1#1 ] : zp[1]:93 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:94 [ gameplay_run::i2#2 gameplay_run::i2#1 ] : zp[1]:94 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:95 [ done_run::i#2 done_run::i#1 ] : zp[1]:95 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:99 [ done_run::i1#2 done_run::i1#1 ] : zp[1]:99 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ] : zp[1]:100 , reg byte x ,
|
|
Potential registers zp[2]:87 [ done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ] : zp[2]:87 ,
|
|
Potential registers zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ] : zp[1]:71 , reg byte x ,
|
|
Potential registers zp[1]:211 [ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ] : zp[1]:211 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:202 [ level_tile_directions::ytile#5 level_tile_directions::ytile#1 level_tile_directions::ytile#2 level_tile_directions::ytile#3 level_tile_directions::ytile#4 level_tile_directions::ytile#0 ] : zp[1]:202 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:189 [ level_tile_directions::return#2 level_tile_directions::return#0 ] : zp[1]:189 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:206 [ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ] : zp[1]:206 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:204 [ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ] : zp[1]:204 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ] : zp[1]:212 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ] : zp[1]:207 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ] : zp[1]:229 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:205 [ choose_direction::dist_min#6 choose_direction::dist_up#0 ] : zp[1]:205 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:176 [ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ] : zp[1]:176 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ] : zp[1]:179 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ] : zp[1]:203 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:174 [ memset::num#5 ] : zp[2]:174 ,
|
|
Potential registers zp[2]:371 [ memset::str#6 ] : zp[2]:371 ,
|
|
Potential registers zp[2]:128 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:128 ,
|
|
Potential registers zp[2]:124 [ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 ] : zp[2]:124 ,
|
|
Potential registers zp[2]:112 [ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 ] : zp[2]:112 ,
|
|
Potential registers zp[2]:97 [ merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ] : zp[2]:97 ,
|
|
Potential registers zp[2]:75 [ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 ] : zp[2]:75 ,
|
|
Potential registers zp[1]:89 [ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ] : zp[1]:89 , reg byte x ,
|
|
Potential registers zp[2]:66 [ merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ] : zp[2]:66 ,
|
|
Potential registers zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ] : zp[1]:136 ,
|
|
Potential registers zp[2]:144 [ init_render_index::render_index_xcol#0 init_render_index::render_index#1 ] : zp[2]:144 ,
|
|
Potential registers zp[2]:156 [ init_render_index::render_ypos_table#4 ] : zp[2]:156 ,
|
|
Potential registers zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ] : zp[1]:103 ,
|
|
Potential registers zp[2]:114 [ init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ] : zp[2]:114 ,
|
|
Potential registers zp[1]:90 [ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ] : zp[1]:90 , reg byte x ,
|
|
Potential registers zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ] : zp[1]:130 , reg byte x ,
|
|
Potential registers zp[2]:118 [ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 ] : zp[2]:118 ,
|
|
Potential registers zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ] : zp[1]:102 , reg byte x ,
|
|
Potential registers zp[1]:135 [ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ] : zp[1]:135 , reg byte x ,
|
|
Potential registers zp[2]:133 [ init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ] : zp[2]:133 ,
|
|
Potential registers zp[1]:96 [ init_bobs_restore::i#2 init_bobs_restore::i#1 ] : zp[1]:96 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:68 [ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ] : zp[1]:68 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:83 [ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 ] : zp[2]:83 ,
|
|
Potential registers zp[2]:77 [ init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ] : zp[2]:77 ,
|
|
Potential registers zp[1]:37 [ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ] : zp[1]:37 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:131 [ memcpy::src#2 memcpy::src#1 ] : zp[2]:131 ,
|
|
Potential registers zp[2]:137 [ memcpy::dst#2 memcpy::dst#1 ] : zp[2]:137 ,
|
|
Potential registers zp[1]:101 [ joyfire::return#4 ] : zp[1]:101 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ] : zp[1]:69 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:85 [ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 ] : zp[2]:85 ,
|
|
Potential registers zp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ] : zp[1]:41 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ] : zp[1]:31 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ] : zp[1]:70 , reg byte x ,
|
|
Potential registers zp[2]:79 [ level_show::level#8 level_show::level#1 ] : zp[2]:79 ,
|
|
Potential registers zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ] : zp[1]:40 , reg byte x ,
|
|
Potential registers zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ] : zp[1]:58 , reg byte x ,
|
|
Potential registers zp[2]:33 [ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 ] : zp[2]:33 ,
|
|
Potential registers zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ] : zp[1]:64 , reg byte x ,
|
|
Potential registers zp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ] : zp[1]:61 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ] : zp[1]:65 , reg byte x ,
|
|
Potential registers zp[1]:9 [ render::i#2 render::i#1 ] : zp[1]:9 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:11 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 ] : zp[2]:11 ,
|
|
Potential registers zp[1]:10 [ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ] : zp[1]:10 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 ] : zp[2]:13 ,
|
|
Potential registers zp[1]:30 [ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ] : zp[1]:30 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:29 [ level_tile_get::ytile#4 level_tile_get::ytile#0 level_tile_get::ytile#1 level_tile_get::ytile#2 level_tile_get::ytile#3 ] : zp[1]:29 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:20 [ level_tile_get::return#2 level_tile_get::return#0 ] : zp[1]:20 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ] : zp[1]:2 , reg byte x ,
|
|
Potential registers zp[2]:7 [ render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ] : zp[2]:7 ,
|
|
Potential registers zp[2]:5 [ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 ] : zp[2]:5 ,
|
|
Potential registers zp[1]:3 [ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ] : zp[1]:3 , reg byte x ,
|
|
Potential registers zp[1]:370 [ pacman_ch1_enabled ] : zp[1]:370 ,
|
|
Potential registers zp[1]:362 [ pacman_ch1_idx ] : zp[1]:362 ,
|
|
Potential registers zp[2]:150 [ logic_tile_ptr ] : zp[2]:150 ,
|
|
Potential registers zp[1]:152 [ logic_tile_xcol ] : zp[1]:152 ,
|
|
Potential registers zp[1]:153 [ logic_tile_yfine ] : zp[1]:153 ,
|
|
Potential registers zp[1]:295 [ logic_tile_left_idx ] : zp[1]:295 ,
|
|
Potential registers zp[1]:296 [ logic_tile_right_idx ] : zp[1]:296 ,
|
|
Potential registers zp[2]:297 [ left_render_index_xcol ] : zp[2]:297 ,
|
|
Potential registers zp[2]:299 [ left_canvas ] : zp[2]:299 ,
|
|
Potential registers zp[1]:301 [ left_ypos_inc_offset ] : zp[1]:301 ,
|
|
Potential registers zp[2]:302 [ rigt_render_index_xcol ] : zp[2]:302 ,
|
|
Potential registers zp[2]:304 [ rigt_canvas ] : zp[2]:304 ,
|
|
Potential registers zp[1]:306 [ rigt_ypos_inc_offset ] : zp[1]:306 ,
|
|
Potential registers zp[1]:172 [ canvas_base_hi ] : zp[1]:172 ,
|
|
Potential registers zp[1]:173 [ bobs_restore_base ] : zp[1]:173 ,
|
|
Potential registers zp[1]:159 [ top_sprites_color ] : zp[1]:159 ,
|
|
Potential registers zp[1]:215 [ top_sprites_mc ] : zp[1]:215 ,
|
|
Potential registers zp[1]:146 [ side_sprites_color ] : zp[1]:146 ,
|
|
Potential registers zp[1]:147 [ side_sprites_mc ] : zp[1]:147 ,
|
|
Potential registers zp[1]:148 [ bottom_sprites_color ] : zp[1]:148 ,
|
|
Potential registers zp[1]:149 [ bottom_sprites_mc ] : zp[1]:149 ,
|
|
Potential registers zp[2]:314 [ pill_count ] : zp[2]:314 ,
|
|
Potential registers zp[1]:163 [ pacman_wins ] : zp[1]:163 ,
|
|
Potential registers zp[1]:180 [ pacman_lives ] : zp[1]:180 ,
|
|
Potential registers zp[1]:123 [ music_play_next ] : zp[1]:123 ,
|
|
Potential registers zp[1]:218 [ phase ] : zp[1]:218 ,
|
|
Potential registers zp[1]:369 [ frame ] : zp[1]:369 ,
|
|
Potential registers zp[1]:364 [ anim_frame_idx ] : zp[1]:364 ,
|
|
Potential registers zp[1]:226 [ pacman_xfine ] : zp[1]:226 ,
|
|
Potential registers zp[1]:227 [ pacman_yfine ] : zp[1]:227 ,
|
|
Potential registers zp[1]:208 [ pacman_direction ] : zp[1]:208 ,
|
|
Potential registers zp[1]:188 [ pacman_substep ] : zp[1]:188 ,
|
|
Potential registers zp[1]:363 [ ghosts_mode ] : zp[1]:363 ,
|
|
Potential registers zp[1]:187 [ ghosts_mode_count ] : zp[1]:187 ,
|
|
Potential registers zp[1]:216 [ ghost1_xfine ] : zp[1]:216 ,
|
|
Potential registers zp[1]:217 [ ghost1_yfine ] : zp[1]:217 ,
|
|
Potential registers zp[1]:209 [ ghost1_direction ] : zp[1]:209 ,
|
|
Potential registers zp[1]:190 [ ghost1_substep ] : zp[1]:190 ,
|
|
Potential registers zp[1]:365 [ ghost1_reverse ] : zp[1]:365 ,
|
|
Potential registers zp[1]:183 [ ghost1_respawn ] : zp[1]:183 ,
|
|
Potential registers zp[1]:219 [ ghost2_xfine ] : zp[1]:219 ,
|
|
Potential registers zp[1]:220 [ ghost2_yfine ] : zp[1]:220 ,
|
|
Potential registers zp[1]:210 [ ghost2_direction ] : zp[1]:210 ,
|
|
Potential registers zp[1]:191 [ ghost2_substep ] : zp[1]:191 ,
|
|
Potential registers zp[1]:366 [ ghost2_reverse ] : zp[1]:366 ,
|
|
Potential registers zp[1]:184 [ ghost2_respawn ] : zp[1]:184 ,
|
|
Potential registers zp[1]:221 [ ghost3_xfine ] : zp[1]:221 ,
|
|
Potential registers zp[1]:223 [ ghost3_yfine ] : zp[1]:223 ,
|
|
Potential registers zp[1]:213 [ ghost3_direction ] : zp[1]:213 ,
|
|
Potential registers zp[1]:192 [ ghost3_substep ] : zp[1]:192 ,
|
|
Potential registers zp[1]:367 [ ghost3_reverse ] : zp[1]:367 ,
|
|
Potential registers zp[1]:185 [ ghost3_respawn ] : zp[1]:185 ,
|
|
Potential registers zp[1]:224 [ ghost4_xfine ] : zp[1]:224 ,
|
|
Potential registers zp[1]:225 [ ghost4_yfine ] : zp[1]:225 ,
|
|
Potential registers zp[1]:214 [ ghost4_direction ] : zp[1]:214 ,
|
|
Potential registers zp[1]:193 [ ghost4_substep ] : zp[1]:193 ,
|
|
Potential registers zp[1]:368 [ ghost4_reverse ] : zp[1]:368 ,
|
|
Potential registers zp[1]:186 [ ghost4_respawn ] : zp[1]:186 ,
|
|
Potential registers zp[1]:352 [ game_logic_substep ] : zp[1]:352 ,
|
|
Potential registers zp[1]:222 [ game_playable ] : zp[1]:222 ,
|
|
Potential registers zp[1]:349 [ irq_screen_top::$1 ] : zp[1]:349 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:350 [ irq_screen_top::$2 ] : zp[1]:350 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:234 [ game_logic::$2 ] : zp[1]:234 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:235 [ game_logic::$3 ] : zp[1]:235 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:236 [ game_logic::$14 ] : zp[1]:236 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:237 [ game_logic::$15 ] : zp[1]:237 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:338 [ game_logic::pacman_bob_xfine#0 ] : zp[1]:338 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:238 [ game_logic::$17 ] : zp[1]:238 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:239 [ game_logic::$18 ] : zp[1]:239 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:317 [ game_logic::$19 ] : zp[1]:317 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:240 [ game_logic::$20 ] : zp[1]:240 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:241 [ game_logic::$21 ] : zp[1]:241 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:339 [ game_logic::ghost1_bob_xfine#0 ] : zp[1]:339 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:242 [ game_logic::$25 ] : zp[1]:242 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:243 [ game_logic::$26 ] : zp[1]:243 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:318 [ game_logic::$27 ] : zp[1]:318 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:244 [ game_logic::$28 ] : zp[1]:244 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:245 [ game_logic::$29 ] : zp[1]:245 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:340 [ game_logic::ghost2_bob_xfine#0 ] : zp[1]:340 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:246 [ game_logic::$31 ] : zp[1]:246 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:247 [ game_logic::$32 ] : zp[1]:247 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:319 [ game_logic::$33 ] : zp[1]:319 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:248 [ game_logic::$34 ] : zp[1]:248 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:249 [ game_logic::$35 ] : zp[1]:249 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:341 [ game_logic::ghost3_bob_xfine#0 ] : zp[1]:341 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:250 [ game_logic::$37 ] : zp[1]:250 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:251 [ game_logic::$38 ] : zp[1]:251 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:320 [ game_logic::$39 ] : zp[1]:320 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:256 [ game_logic::$40 ] : zp[1]:256 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:257 [ game_logic::$41 ] : zp[1]:257 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:342 [ game_logic::ghost4_bob_xfine#0 ] : zp[1]:342 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:258 [ game_logic::$43 ] : zp[1]:258 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:259 [ game_logic::$44 ] : zp[1]:259 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:321 [ game_logic::$45 ] : zp[1]:321 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:260 [ game_logic::$46 ] : zp[1]:260 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:261 [ game_logic::$47 ] : zp[1]:261 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:337 [ game_logic::pacman_xtile#0 ] : zp[1]:337 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:262 [ game_logic::pacman_ytile#0 ] : zp[1]:262 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:353 [ game_logic::$210 ] : zp[1]:353 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:343 [ game_logic::ytiles#0 ] : zp[2]:343 ,
|
|
Potential registers zp[1]:311 [ game_logic::tile_id#0 ] : zp[1]:311 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:263 [ game_logic::$65 ] : zp[1]:263 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:264 [ game_logic::$66 ] : zp[1]:264 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:265 [ game_logic::$67 ] : zp[2]:265 ,
|
|
Potential registers zp[1]:267 [ game_logic::$68 ] : zp[1]:267 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:322 [ game_logic::$75 ] : zp[1]:322 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:323 [ game_logic::$77 ] : zp[1]:323 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:324 [ game_logic::$80 ] : zp[1]:324 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:325 [ game_logic::$82 ] : zp[1]:325 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:326 [ game_logic::$85 ] : zp[1]:326 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:327 [ game_logic::$87 ] : zp[1]:327 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:328 [ game_logic::$90 ] : zp[1]:328 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:329 [ game_logic::$92 ] : zp[1]:329 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:268 [ game_logic::$69 ] : zp[1]:268 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:269 [ game_logic::$70 ] : zp[1]:269 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:270 [ game_logic::$71 ] : zp[2]:270 ,
|
|
Potential registers zp[1]:272 [ game_logic::$72 ] : zp[1]:272 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:330 [ game_logic::$220 ] : zp[1]:330 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:354 [ game_logic::ghost4_xtile#0 ] : zp[1]:354 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:355 [ game_logic::ghost4_ytile#0 ] : zp[1]:355 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:273 [ level_tile_directions::return#3 ] : zp[1]:273 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:274 [ game_logic::open_directions#0 ] : zp[1]:274 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:345 [ game_logic::open_directions#1 ] : zp[1]:345 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:275 [ choose_direction::return#0 ] : zp[1]:275 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:276 [ game_logic::$119 ] : zp[1]:276 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:331 [ game_logic::$223 ] : zp[1]:331 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:356 [ game_logic::ghost3_xtile#0 ] : zp[1]:356 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:357 [ game_logic::ghost3_ytile#0 ] : zp[1]:357 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:277 [ level_tile_directions::return#10 ] : zp[1]:277 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:278 [ game_logic::open_directions1#0 ] : zp[1]:278 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:346 [ game_logic::open_directions1#1 ] : zp[1]:346 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:279 [ choose_direction::return#1 ] : zp[1]:279 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:280 [ game_logic::$140 ] : zp[1]:280 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:332 [ game_logic::$226 ] : zp[1]:332 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:358 [ game_logic::ghost2_xtile#0 ] : zp[1]:358 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:359 [ game_logic::ghost2_ytile#0 ] : zp[1]:359 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:281 [ level_tile_directions::return#11 ] : zp[1]:281 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:282 [ game_logic::open_directions2#0 ] : zp[1]:282 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:347 [ game_logic::open_directions2#1 ] : zp[1]:347 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:283 [ choose_direction::return#2 ] : zp[1]:283 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:284 [ game_logic::$161 ] : zp[1]:284 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:333 [ game_logic::$229 ] : zp[1]:333 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:360 [ game_logic::ghost1_xtile#0 ] : zp[1]:360 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:361 [ game_logic::ghost1_ytile#0 ] : zp[1]:361 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:285 [ level_tile_directions::return#12 ] : zp[1]:285 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:286 [ game_logic::open_directions3#0 ] : zp[1]:286 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:348 [ game_logic::open_directions3#1 ] : zp[1]:348 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:287 [ choose_direction::return#3 ] : zp[1]:287 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:288 [ game_logic::$182 ] : zp[1]:288 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:334 [ game_logic::$232 ] : zp[1]:334 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:335 [ game_logic::pacman_xtile1#0 ] : zp[1]:335 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:336 [ game_logic::pacman_ytile1#0 ] : zp[1]:336 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:289 [ level_tile_directions::return#13 ] : zp[1]:289 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:351 [ game_logic::open_directions4#0 ] : zp[1]:351 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:290 [ game_logic::$199 ] : zp[1]:290 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:291 [ game_logic::$200 ] : zp[1]:291 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:312 [ game_logic::joy_directions#0 ] : zp[1]:312 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:292 [ game_logic::$204 ] : zp[1]:292 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:313 [ game_logic::new_direction#0 ] : zp[1]:313 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:181 [ byteboozer_decrunch::crunched ] : zp[2]:181 ,
|
|
Potential registers zp[1]:139 [ joyfire::return#1 ] : zp[1]:139 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:140 [ splash_run::$30 ] : zp[1]:140 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:171 [ splash_run::$34 ] : zp[1]:171 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:177 [ splash_run::xpos#0 ] : zp[2]:177 ,
|
|
Potential registers zp[1]:164 [ splash_run::$25 ] : zp[1]:164 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:165 [ level_show::return#0 ] : zp[2]:165 ,
|
|
Potential registers zp[2]:167 [ gameplay_run::$4 ] : zp[2]:167 ,
|
|
Potential registers zp[1]:81 [ joyfire::return#0 ] : zp[1]:81 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:82 [ done_run::$8 ] : zp[1]:82 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:91 [ done_run::pixels#0 ] : zp[1]:91 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:194 [ level_tile_directions::$5 ] : zp[1]:194 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:195 [ level_tile_directions::ytiles#0 ] : zp[2]:195 ,
|
|
Potential registers zp[1]:294 [ choose_direction::xdiff#0 ] : zp[1]:294 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:293 [ choose_direction::ydiff#0 ] : zp[1]:293 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:197 [ choose_direction::$2 ] : zp[1]:197 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:198 [ choose_direction::$4 ] : zp[1]:198 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:199 [ choose_direction::$6 ] : zp[1]:199 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:200 [ choose_direction::$8 ] : zp[1]:200 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:201 [ choose_direction::dist_right#0 ] : zp[1]:201 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:169 [ memset::end#0 ] : zp[2]:169 ,
|
|
Potential registers zp[2]:142 [ merge_code::raster_code#1 ] : zp[2]:142 ,
|
|
Potential registers zp[1]:127 [ merge_code::logic_cycles#0 ] : zp[1]:127 , reg byte x ,
|
|
Potential registers zp[1]:120 [ merge_code::$5 ] : zp[1]:120 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:116 [ merge_code::dest_code#2 ] : zp[2]:116 ,
|
|
Potential registers zp[1]:141 [ init_render_index::$9 ] : zp[1]:141 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:154 [ init_render_index::canvas_xcol#0 ] : zp[2]:154 ,
|
|
Potential registers zp[2]:104 [ init_render_index::$11 ] : zp[2]:104 ,
|
|
Potential registers zp[2]:106 [ init_render_index::$10 ] : zp[2]:106 ,
|
|
Potential registers zp[2]:108 [ init_render_index::$12 ] : zp[2]:108 ,
|
|
Potential registers zp[2]:121 [ init_render_index::canvas#0 ] : zp[2]:121 ,
|
|
Potential registers zp[1]:110 [ init_render_index::$5 ] : zp[1]:110 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:111 [ init_render_index::$6 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:126 [ splash_show::pixels#0 ] : zp[1]:126 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:42 [ init_sprite_pointers::$2 ] : zp[1]:42 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:53 [ init_sprite_pointers::sprite_id#0 ] : zp[1]:53 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:43 [ joyfire::$0 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:44 [ level_tile_get::return#3 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:45 [ init_level_tile_directions::$3 ] : zp[1]:45 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:46 [ level_tile_get::return#4 ] : zp[1]:46 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:47 [ init_level_tile_directions::$7 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:48 [ level_tile_get::return#10 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:49 [ init_level_tile_directions::$11 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:50 [ level_tile_get::return#11 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:51 [ init_level_tile_directions::$15 ] : zp[1]:51 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:72 [ level_show::tile_left#0 ] : zp[1]:72 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:62 [ level_show::xtile#1 ] : zp[1]:62 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:63 [ level_show::tile_right#0 ] : zp[1]:63 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:56 [ render_tiles::xcol#0 ] : zp[1]:56 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:57 [ render_tiles::ytile#0 ] : zp[1]:57 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:35 [ render_tiles::tile_left#0 ] : zp[1]:35 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:36 [ render_tiles::tile_right#0 ] : zp[1]:36 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:59 [ render::ytile#0 ] : zp[1]:59 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:60 [ render::$1 ] : zp[1]:60 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:52 [ render::$2 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:73 [ render::render_index_xcol#0 ] : zp[2]:73 ,
|
|
Potential registers zp[2]:54 [ render::canvas_offset#0 ] : zp[2]:54 ,
|
|
Potential registers zp[1]:19 [ render::ypix#0 ] : zp[1]:19 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:21 [ level_tile_get::$5 ] : zp[1]:21 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:22 [ level_tile_get::ytiles#0 ] : zp[2]:22 ,
|
|
Potential registers zp[1]:24 [ render_tiles::$0 ] : zp[1]:24 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:17 [ render_tiles::tile_left_pixels#0 ] : zp[2]:17 ,
|
|
Potential registers zp[1]:25 [ render_tiles::$2 ] : zp[1]:25 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:15 [ render_tiles::tile_right_pixels#0 ] : zp[2]:15 ,
|
|
Potential registers zp[1]:32 [ render_tiles::$4 ] : zp[1]:32 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:26 [ render_tiles::$5 ] : zp[1]:26 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:38 [ render_tiles::render_index_xcol#0 ] : zp[2]:38 ,
|
|
Potential registers zp[2]:27 [ render_tiles::canvas_offset#0 ] : zp[2]:27 ,
|
|
Potential registers zp[1]:4 [ render_tiles::pixels#0 ] : zp[1]:4 , reg byte a , reg byte x ,
|
|
|
|
REGISTER UPLIFT SCOPES
|
|
Uplift Scope [render_tiles] 2,625,000,000,002.62: zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ] 1,571,642,857,146.57: zp[1]:3 [ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ] 1,500,000,000,001.5: zp[1]:4 [ render_tiles::pixels#0 ] 1,166,783,333,335.67: zp[2]:5 [ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 ] 1,100,086,666,668.63: zp[2]:7 [ render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ] 58,829,411,764.82: zp[2]:15 [ render_tiles::tile_right_pixels#0 ] 52,636,842,105.37: zp[2]:17 [ render_tiles::tile_left_pixels#0 ] 200,000,002: zp[1]:24 [ render_tiles::$0 ] 200,000,002: zp[1]:25 [ render_tiles::$2 ] 200,000,002: zp[1]:26 [ render_tiles::$5 ] 150,000,001.5: zp[2]:27 [ render_tiles::canvas_offset#0 ] 100,000,001: zp[1]:32 [ render_tiles::$4 ] 55,000,001: zp[1]:35 [ render_tiles::tile_left#0 ] 36,666,667.33: zp[1]:36 [ render_tiles::tile_right#0 ] 25,000,000.25: zp[2]:38 [ render_tiles::render_index_xcol#0 ] 13,750,000.25: zp[1]:56 [ render_tiles::xcol#0 ] 13,750,000.25: zp[1]:57 [ render_tiles::ytile#0 ]
|
|
Uplift Scope [render] 260,000,000,002.6: zp[1]:9 [ render::i#2 render::i#1 ] 200,012,500,003.25: zp[1]:10 [ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ] 150,015,000,003: zp[2]:11 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 ] 116,678,333,335.67: zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 ] 14,287,142,857.43: zp[1]:19 [ render::ypix#0 ] 20,000,002: zp[1]:52 [ render::$2 ] 15,000,001.5: zp[2]:54 [ render::canvas_offset#0 ] 10,000,001: zp[1]:59 [ render::ytile#0 ] 10,000,001: zp[1]:60 [ render::$1 ] 6,283,336.17: zp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ] 3,444,446.89: zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ] 3,441,180.71: zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ] 2,500,000.25: zp[2]:73 [ render::render_index_xcol#0 ]
|
|
Uplift Scope [level_tile_get] 223,333,336.17: zp[1]:20 [ level_tile_get::return#2 level_tile_get::return#0 ] 200,000,002: zp[1]:21 [ level_tile_get::$5 ] 200,000,002: zp[2]:22 [ level_tile_get::ytiles#0 ] 140,000,008: zp[1]:29 [ level_tile_get::ytile#4 level_tile_get::ytile#0 level_tile_get::ytile#1 level_tile_get::ytile#2 level_tile_get::ytile#3 ] 108,000,007.2: zp[1]:30 [ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ] 20,000,002: zp[1]:44 [ level_tile_get::return#3 ] 20,000,002: zp[1]:46 [ level_tile_get::return#4 ] 20,000,002: zp[1]:48 [ level_tile_get::return#10 ] 20,000,002: zp[1]:50 [ level_tile_get::return#11 ]
|
|
Uplift Scope [init_level_tile_directions] 104,285,724.71: zp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ] 22,285,716.51: zp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ] 20,000,002: zp[1]:45 [ init_level_tile_directions::$3 ] 20,000,002: zp[1]:47 [ init_level_tile_directions::$7 ] 20,000,002: zp[1]:49 [ init_level_tile_directions::$11 ] 20,000,002: zp[1]:51 [ init_level_tile_directions::$15 ] 3,102,566.28: zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ] 1,315,790.55: zp[2]:85 [ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 ]
|
|
Uplift Scope [level_show] 59,357,399.75: zp[2]:33 [ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 ] 22,352,943.41: zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ] 12,000,001.2: zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ] 6,000,000.6: zp[1]:62 [ level_show::xtile#1 ] 3,750,000.38: zp[1]:63 [ level_show::tile_right#0 ] 2,619,049.81: zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ] 2,500,000.25: zp[1]:72 [ level_show::tile_left#0 ] 2,100,001.2: zp[2]:79 [ level_show::level#8 level_show::level#1 ] 2,002: zp[2]:165 [ level_show::return#0 ]
|
|
Uplift Scope [init_sprite_pointers] 30,000,003: zp[1]:37 [ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ] 20,000,002: zp[1]:42 [ init_sprite_pointers::$2 ] 15,000,001.5: zp[1]:53 [ init_sprite_pointers::sprite_id#0 ] 3,181,820.55: zp[1]:68 [ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ] 2,200,001.3: zp[2]:77 [ init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ] 2,000,001: zp[2]:83 [ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 ]
|
|
Uplift Scope [joyfire] 20,000,002: zp[1]:43 [ joyfire::$0 ] 2,000,002: zp[1]:81 [ joyfire::return#0 ] 252,500.5: zp[1]:101 [ joyfire::return#4 ] 20,002: zp[1]:139 [ joyfire::return#1 ]
|
|
Uplift Scope [done_run] 2,500,002.5: zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ] 2,000,002: zp[1]:82 [ done_run::$8 ] 1,233,335.92: zp[2]:87 [ done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ] 500,000.5: zp[1]:91 [ done_run::pixels#0 ] 333,336.67: zp[1]:95 [ done_run::i#2 done_run::i#1 ] 320,003.2: zp[1]:99 [ done_run::i1#2 done_run::i1#1 ] 318,184.18: zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ]
|
|
Uplift Scope [merge_code] 3,250,005.5: zp[2]:66 [ merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ] 2,293,023.77: zp[2]:75 [ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 ] 749,611.63: zp[1]:89 [ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ] 325,005.5: zp[2]:97 [ merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ] 178,339.17: zp[2]:112 [ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 ] 150,001.5: zp[2]:116 [ merge_code::dest_code#2 ] 100,001: zp[1]:120 [ merge_code::$5 ] 61,432.14: zp[2]:124 [ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 ] 41,667.08: zp[1]:127 [ merge_code::logic_cycles#0 ] 15,001.5: zp[2]:142 [ merge_code::raster_code#1 ]
|
|
Uplift Scope [init_render_index] 530,687.43: zp[1]:90 [ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ] 218,752.19: zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ] 200,002: zp[2]:104 [ init_render_index::$11 ] 200,002: zp[2]:106 [ init_render_index::$10 ] 200,002: zp[2]:108 [ init_render_index::$12 ] 200,002: zp[1]:110 [ init_render_index::$5 ] 200,002: zp[1]:111 [ init_render_index::$6 ] 154,003.4: zp[2]:114 [ init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ] 100,001: zp[2]:121 [ init_render_index::canvas#0 ] 21,925.27: zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ] 20,002: zp[1]:141 [ init_render_index::$9 ] 11,201.12: zp[2]:144 [ init_render_index::render_index_xcol#0 init_render_index::render_index#1 ] 5,789.58: zp[2]:154 [ init_render_index::canvas_xcol#0 ] 4,761.95: zp[2]:156 [ init_render_index::render_ypos_table#4 ]
|
|
Uplift Scope [gameplay_run] 333,336.67: zp[1]:92 [ gameplay_run::i#2 gameplay_run::i#1 ] 333,336.67: zp[1]:93 [ gameplay_run::i1#2 gameplay_run::i1#1 ] 333,336.67: zp[1]:94 [ gameplay_run::i2#2 gameplay_run::i2#1 ] 2,002: zp[2]:167 [ gameplay_run::$4 ]
|
|
Uplift Scope [splash_show] 250,002.5: zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ] 123,335.92: zp[2]:118 [ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 ] 50,000.5: zp[1]:126 [ splash_show::pixels#0 ] 31,820.55: zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Uplift Scope [init_bobs_restore] 333,336.67: zp[1]:96 [ init_bobs_restore::i#2 init_bobs_restore::i#1 ] 26,001.7: zp[2]:133 [ init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ] 22,729.55: zp[1]:135 [ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
Uplift Scope [] 69,506.88: zp[1]:123 [ music_play_next ] 11,040: zp[1]:146 [ side_sprites_color ] 11,040: zp[1]:147 [ side_sprites_mc ] 11,040: zp[1]:148 [ bottom_sprites_color ] 11,040: zp[1]:149 [ bottom_sprites_mc ] 10,250: zp[2]:150 [ logic_tile_ptr ] 10,250: zp[1]:152 [ logic_tile_xcol ] 10,250: zp[1]:153 [ logic_tile_yfine ] 3,403.67: zp[1]:159 [ top_sprites_color ] 2,040.32: zp[1]:163 [ pacman_wins ] 1,070: zp[1]:172 [ canvas_base_hi ] 1,070: zp[1]:173 [ bobs_restore_base ] 656.44: zp[1]:180 [ pacman_lives ] 271.84: zp[1]:183 [ ghost1_respawn ] 264.68: zp[1]:184 [ ghost2_respawn ] 257.9: zp[1]:185 [ ghost3_respawn ] 251.45: zp[1]:186 [ ghost4_respawn ] 234.93: zp[1]:187 [ ghosts_mode_count ] 233.4: zp[1]:188 [ pacman_substep ] 223.51: zp[1]:190 [ ghost1_substep ] 218.65: zp[1]:191 [ ghost2_substep ] 214: zp[1]:192 [ ghost3_substep ] 209.54: zp[1]:193 [ ghost4_substep ] 132.92: zp[1]:208 [ pacman_direction ] 122.24: zp[1]:209 [ ghost1_direction ] 110.28: zp[1]:210 [ ghost2_direction ] 100.46: zp[1]:213 [ ghost3_direction ] 92.24: zp[1]:214 [ ghost4_direction ] 92: zp[1]:215 [ top_sprites_mc ] 84.55: zp[1]:216 [ ghost1_xfine ] 82.13: zp[1]:217 [ ghost1_yfine ] 78.04: zp[1]:218 [ phase ] 76.29: zp[1]:219 [ ghost2_xfine ] 74.28: zp[1]:220 [ ghost2_yfine ] 69.49: zp[1]:221 [ ghost3_xfine ] 69.48: zp[1]:222 [ game_playable ] 67.8: zp[1]:223 [ ghost3_yfine ] 63.81: zp[1]:224 [ ghost4_xfine ] 62.36: zp[1]:225 [ ghost4_yfine ] 47.72: zp[1]:226 [ pacman_xfine ] 46.22: zp[1]:227 [ pacman_yfine ] 20: zp[1]:295 [ logic_tile_left_idx ] 20: zp[1]:296 [ logic_tile_right_idx ] 20: zp[2]:297 [ left_render_index_xcol ] 20: zp[2]:299 [ left_canvas ] 20: zp[1]:301 [ left_ypos_inc_offset ] 20: zp[2]:302 [ rigt_render_index_xcol ] 20: zp[2]:304 [ rigt_canvas ] 20: zp[1]:306 [ rigt_ypos_inc_offset ] 14.19: zp[2]:314 [ pill_count ] 2.95: zp[1]:352 [ game_logic_substep ] 1.94: zp[1]:362 [ pacman_ch1_idx ] 1.1: zp[1]:363 [ ghosts_mode ] 0.9: zp[1]:364 [ anim_frame_idx ] 0.73: zp[1]:365 [ ghost1_reverse ] 0.71: zp[1]:366 [ ghost2_reverse ] 0.7: zp[1]:367 [ ghost3_reverse ] 0.69: zp[1]:368 [ ghost4_reverse ] 0.5: zp[1]:369 [ frame ] 0.08: zp[1]:370 [ pacman_ch1_enabled ]
|
|
Uplift Scope [memcpy] 30,003: zp[2]:131 [ memcpy::src#2 memcpy::src#1 ] 20,002: zp[2]:137 [ memcpy::dst#2 memcpy::dst#1 ]
|
|
Uplift Scope [memset] 35,672.33: zp[2]:128 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,833.67: zp[2]:169 [ memset::end#0 ] 1,001: zp[2]:174 [ memset::num#5 ] 0: zp[2]:371 [ memset::str#6 ]
|
|
Uplift Scope [splash_run] 20,002: zp[1]:140 [ splash_run::$30 ] 4,679.75: zp[1]:158 [ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ] 3,336.67: zp[1]:160 [ splash_run::i1#2 splash_run::i1#1 ] 3,203.2: zp[1]:161 [ splash_run::i2#2 splash_run::i2#1 ] 2,366: zp[1]:162 [ splash_run::i#2 splash_run::i#1 ] 2,002: zp[1]:164 [ splash_run::$25 ] 1,334.67: zp[1]:171 [ splash_run::$34 ] 667.33: zp[2]:177 [ splash_run::xpos#0 ]
|
|
Uplift Scope [choose_direction] 676.7: zp[1]:176 [ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ] 656.5: zp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ] 202: zp[1]:197 [ choose_direction::$2 ] 202: zp[1]:198 [ choose_direction::$4 ] 202: zp[1]:199 [ choose_direction::$6 ] 202: zp[1]:200 [ choose_direction::$8 ] 202: zp[1]:201 [ choose_direction::dist_right#0 ] 194.9: zp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ] 189: zp[1]:204 [ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ] 181.8: zp[1]:205 [ choose_direction::dist_min#6 choose_direction::dist_up#0 ] 167: zp[1]:206 [ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ] 160.5: zp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ] 101.83: zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ] 37.08: zp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ] 22: zp[1]:275 [ choose_direction::return#0 ] 22: zp[1]:279 [ choose_direction::return#1 ] 22: zp[1]:283 [ choose_direction::return#2 ] 22: zp[1]:287 [ choose_direction::return#3 ] 21.96: zp[1]:293 [ choose_direction::ydiff#0 ] 21.04: zp[1]:294 [ choose_direction::xdiff#0 ]
|
|
Uplift Scope [game_logic] 40.5: zp[1]:228 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ] 26.4: zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 ] 26.4: zp[1]:231 [ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ] 26.4: zp[1]:232 [ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ] 26.4: zp[1]:233 [ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ] 22: zp[1]:234 [ game_logic::$2 ] 22: zp[1]:235 [ game_logic::$3 ] 22: zp[1]:236 [ game_logic::$14 ] 22: zp[1]:237 [ game_logic::$15 ] 22: zp[1]:238 [ game_logic::$17 ] 22: zp[1]:239 [ game_logic::$18 ] 22: zp[1]:240 [ game_logic::$20 ] 22: zp[1]:241 [ game_logic::$21 ] 22: zp[1]:242 [ game_logic::$25 ] 22: zp[1]:243 [ game_logic::$26 ] 22: zp[1]:244 [ game_logic::$28 ] 22: zp[1]:245 [ game_logic::$29 ] 22: zp[1]:246 [ game_logic::$31 ] 22: zp[1]:247 [ game_logic::$32 ] 22: zp[1]:248 [ game_logic::$34 ] 22: zp[1]:249 [ game_logic::$35 ] 22: zp[1]:250 [ game_logic::$37 ] 22: zp[1]:251 [ game_logic::$38 ] 22: zp[1]:256 [ game_logic::$40 ] 22: zp[1]:257 [ game_logic::$41 ] 22: zp[1]:258 [ game_logic::$43 ] 22: zp[1]:259 [ game_logic::$44 ] 22: zp[1]:260 [ game_logic::$46 ] 22: zp[1]:261 [ game_logic::$47 ] 22: zp[1]:262 [ game_logic::pacman_ytile#0 ] 22: zp[1]:263 [ game_logic::$65 ] 22: zp[1]:264 [ game_logic::$66 ] 22: zp[2]:265 [ game_logic::$67 ] 22: zp[1]:267 [ game_logic::$68 ] 22: zp[1]:268 [ game_logic::$69 ] 22: zp[1]:269 [ game_logic::$70 ] 22: zp[2]:270 [ game_logic::$71 ] 22: zp[1]:272 [ game_logic::$72 ] 22: zp[1]:274 [ game_logic::open_directions#0 ] 22: zp[1]:276 [ game_logic::$119 ] 22: zp[1]:278 [ game_logic::open_directions1#0 ] 22: zp[1]:280 [ game_logic::$140 ] 22: zp[1]:282 [ game_logic::open_directions2#0 ] 22: zp[1]:284 [ game_logic::$161 ] 22: zp[1]:286 [ game_logic::open_directions3#0 ] 22: zp[1]:288 [ game_logic::$182 ] 22: zp[1]:290 [ game_logic::$199 ] 22: zp[1]:291 [ game_logic::$200 ] 22: zp[1]:292 [ game_logic::$204 ] 16.5: zp[1]:307 [ game_logic::target_xtile#3 game_logic::target_xtile#2 ] 16.5: zp[1]:308 [ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ] 16.5: zp[1]:309 [ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ] 16.5: zp[1]:310 [ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ] 16.5: zp[1]:311 [ game_logic::tile_id#0 ] 16.5: zp[1]:312 [ game_logic::joy_directions#0 ] 16.5: zp[1]:313 [ game_logic::new_direction#0 ] 11: zp[1]:316 [ game_logic::do_reverse#4 ] 11: zp[1]:317 [ game_logic::$19 ] 11: zp[1]:318 [ game_logic::$27 ] 11: zp[1]:319 [ game_logic::$33 ] 11: zp[1]:320 [ game_logic::$39 ] 11: zp[1]:321 [ game_logic::$45 ] 11: zp[1]:322 [ game_logic::$75 ] 11: zp[1]:323 [ game_logic::$77 ] 11: zp[1]:324 [ game_logic::$80 ] 11: zp[1]:325 [ game_logic::$82 ] 11: zp[1]:326 [ game_logic::$85 ] 11: zp[1]:327 [ game_logic::$87 ] 11: zp[1]:328 [ game_logic::$90 ] 11: zp[1]:329 [ game_logic::$92 ] 11: zp[1]:330 [ game_logic::$220 ] 11: zp[1]:331 [ game_logic::$223 ] 11: zp[1]:332 [ game_logic::$226 ] 11: zp[1]:333 [ game_logic::$229 ] 11: zp[1]:334 [ game_logic::$232 ] 11: zp[1]:335 [ game_logic::pacman_xtile1#0 ] 11: zp[1]:336 [ game_logic::pacman_ytile1#0 ] 6.77: zp[1]:337 [ game_logic::pacman_xtile#0 ] 5.5: zp[1]:338 [ game_logic::pacman_bob_xfine#0 ] 5.5: zp[1]:339 [ game_logic::ghost1_bob_xfine#0 ] 5.5: zp[1]:340 [ game_logic::ghost2_bob_xfine#0 ] 5.5: zp[1]:341 [ game_logic::ghost3_bob_xfine#0 ] 5.5: zp[1]:342 [ game_logic::ghost4_bob_xfine#0 ] 5.5: zp[2]:343 [ game_logic::ytiles#0 ] 5.5: zp[1]:345 [ game_logic::open_directions#1 ] 5.5: zp[1]:346 [ game_logic::open_directions1#1 ] 5.5: zp[1]:347 [ game_logic::open_directions2#1 ] 5.5: zp[1]:348 [ game_logic::open_directions3#1 ] 3.67: zp[1]:351 [ game_logic::open_directions4#0 ] 2.59: zp[1]:353 [ game_logic::$210 ] 2.36: zp[1]:354 [ game_logic::ghost4_xtile#0 ] 2.36: zp[1]:355 [ game_logic::ghost4_ytile#0 ] 2.36: zp[1]:356 [ game_logic::ghost3_xtile#0 ] 2.36: zp[1]:357 [ game_logic::ghost3_ytile#0 ] 2.36: zp[1]:358 [ game_logic::ghost2_xtile#0 ] 2.36: zp[1]:359 [ game_logic::ghost2_ytile#0 ] 2.36: zp[1]:360 [ game_logic::ghost1_xtile#0 ] 2.36: zp[1]:361 [ game_logic::ghost1_ytile#0 ]
|
|
Uplift Scope [level_tile_directions] 224.29: zp[1]:189 [ level_tile_directions::return#2 level_tile_directions::return#0 ] 202: zp[1]:194 [ level_tile_directions::$5 ] 202: zp[2]:195 [ level_tile_directions::ytiles#0 ] 195.67: zp[1]:202 [ level_tile_directions::ytile#5 level_tile_directions::ytile#1 level_tile_directions::ytile#2 level_tile_directions::ytile#3 level_tile_directions::ytile#4 level_tile_directions::ytile#0 ] 106.4: zp[1]:211 [ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ] 22: zp[1]:273 [ level_tile_directions::return#3 ] 22: zp[1]:277 [ level_tile_directions::return#10 ] 22: zp[1]:281 [ level_tile_directions::return#11 ] 22: zp[1]:285 [ level_tile_directions::return#12 ] 22: zp[1]:289 [ level_tile_directions::return#13 ]
|
|
Uplift Scope [byteboozer_decrunch] 438.5: zp[2]:181 [ byteboozer_decrunch::crunched ]
|
|
Uplift Scope [irq_screen_top] 4: zp[1]:349 [ irq_screen_top::$1 ] 4: zp[1]:350 [ irq_screen_top::$2 ]
|
|
Uplift Scope [MOS6526_CIA]
|
|
Uplift Scope [MOS6569_VICII]
|
|
Uplift Scope [MOS6581_SID]
|
|
Uplift Scope [pacman_sound_init]
|
|
Uplift Scope [pacman_sound_play]
|
|
Uplift Scope [TILE_TYPE]
|
|
Uplift Scope [main]
|
|
Uplift Scope [joyinit]
|
|
Uplift Scope [DIRECTION]
|
|
Uplift Scope [GHOSTS_MODE]
|
|
Uplift Scope [spawn_all]
|
|
Uplift Scope [__start]
|
|
|
|
Uplifting [render_tiles] best 2567556 combination zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ] reg byte x [ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ] reg byte a [ render_tiles::pixels#0 ] zp[2]:5 [ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 ] zp[2]:7 [ render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ] zp[2]:15 [ render_tiles::tile_right_pixels#0 ] zp[2]:17 [ render_tiles::tile_left_pixels#0 ] reg byte a [ render_tiles::$0 ] reg byte a [ render_tiles::$2 ] zp[1]:26 [ render_tiles::$5 ] zp[2]:27 [ render_tiles::canvas_offset#0 ] zp[1]:32 [ render_tiles::$4 ] zp[1]:35 [ render_tiles::tile_left#0 ] zp[1]:36 [ render_tiles::tile_right#0 ] zp[2]:38 [ render_tiles::render_index_xcol#0 ] zp[1]:56 [ render_tiles::xcol#0 ] zp[1]:57 [ render_tiles::ytile#0 ]
|
|
Limited combination testing to 100 combinations of 248832 possible.
|
|
Uplifting [render] best 2387549 combination reg byte y [ render::i#2 render::i#1 ] reg byte x [ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ] zp[2]:11 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 ] zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 ] zp[1]:19 [ render::ypix#0 ] reg byte a [ render::$2 ] zp[2]:54 [ render::canvas_offset#0 ] zp[1]:59 [ render::ytile#0 ] zp[1]:60 [ render::$1 ] zp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ] zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ] zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ] zp[2]:73 [ render::render_index_xcol#0 ]
|
|
Limited combination testing to 100 combinations of 11664 possible.
|
|
Uplifting [level_tile_get] best 2355531 combination reg byte a [ level_tile_get::return#2 level_tile_get::return#0 ] reg byte a [ level_tile_get::$5 ] zp[2]:22 [ level_tile_get::ytiles#0 ] reg byte a [ level_tile_get::ytile#4 level_tile_get::ytile#0 level_tile_get::ytile#1 level_tile_get::ytile#2 level_tile_get::ytile#3 ] reg byte x [ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ] zp[1]:44 [ level_tile_get::return#3 ] zp[1]:46 [ level_tile_get::return#4 ] zp[1]:48 [ level_tile_get::return#10 ] zp[1]:50 [ level_tile_get::return#11 ]
|
|
Limited combination testing to 100 combinations of 49152 possible.
|
|
Uplifting [init_level_tile_directions] best 2343531 combination zp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ] zp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ] reg byte x [ init_level_tile_directions::$3 ] reg byte x [ init_level_tile_directions::$7 ] zp[1]:49 [ init_level_tile_directions::$11 ] zp[1]:51 [ init_level_tile_directions::$15 ] zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ] zp[2]:85 [ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 ]
|
|
Limited combination testing to 100 combinations of 6912 possible.
|
|
Uplifting [level_show] best 2327531 combination zp[2]:33 [ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 ] zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ] zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ] reg byte y [ level_show::xtile#1 ] zp[1]:63 [ level_show::tile_right#0 ] zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ] reg byte x [ level_show::tile_left#0 ] zp[2]:79 [ level_show::level#8 level_show::level#1 ] zp[2]:165 [ level_show::return#0 ]
|
|
Limited combination testing to 100 combinations of 216 possible.
|
|
Uplifting [init_sprite_pointers] best 2294631 combination reg byte y [ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ] reg byte a [ init_sprite_pointers::$2 ] reg byte a [ init_sprite_pointers::sprite_id#0 ] reg byte x [ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ] zp[2]:77 [ init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ] zp[2]:83 [ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 ]
|
|
Limited combination testing to 100 combinations of 144 possible.
|
|
Uplifting [joyfire] best 2284721 combination reg byte a [ joyfire::$0 ] reg byte a [ joyfire::return#0 ] reg byte a [ joyfire::return#4 ] reg byte a [ joyfire::return#1 ]
|
|
Limited combination testing to 100 combinations of 256 possible.
|
|
Uplifting [done_run] best 2275521 combination zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ] reg byte a [ done_run::$8 ] zp[2]:87 [ done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ] reg byte x [ done_run::pixels#0 ] reg byte x [ done_run::i#2 done_run::i#1 ] zp[1]:99 [ done_run::i1#2 done_run::i1#1 ] zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ]
|
|
Limited combination testing to 100 combinations of 576 possible.
|
|
Uplifting [merge_code] best 2273031 combination zp[2]:66 [ merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ] zp[2]:75 [ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 ] reg byte x [ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ] zp[2]:97 [ merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ] zp[2]:112 [ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 ] zp[2]:116 [ merge_code::dest_code#2 ] reg byte y [ merge_code::$5 ] zp[2]:124 [ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 ] zp[1]:127 [ merge_code::logic_cycles#0 ] zp[2]:142 [ merge_code::raster_code#1 ]
|
|
Uplifting [init_render_index] best 2270331 combination reg byte x [ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ] zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ] zp[2]:104 [ init_render_index::$11 ] zp[2]:106 [ init_render_index::$10 ] zp[2]:108 [ init_render_index::$12 ] reg byte a [ init_render_index::$5 ] reg byte a [ init_render_index::$6 ] zp[2]:114 [ init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ] zp[2]:121 [ init_render_index::canvas#0 ] zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ] reg byte a [ init_render_index::$9 ] zp[2]:144 [ init_render_index::render_index_xcol#0 init_render_index::render_index#1 ] zp[2]:154 [ init_render_index::canvas_xcol#0 ] zp[2]:156 [ init_render_index::render_ypos_table#4 ]
|
|
Limited combination testing to 100 combinations of 128 possible.
|
|
Uplifting [gameplay_run] best 2266731 combination reg byte x [ gameplay_run::i#2 gameplay_run::i#1 ] reg byte x [ gameplay_run::i1#2 gameplay_run::i1#1 ] reg byte x [ gameplay_run::i2#2 gameplay_run::i2#1 ] zp[2]:167 [ gameplay_run::$4 ]
|
|
Uplifting [splash_show] best 2266331 combination zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ] zp[2]:118 [ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 ] reg byte x [ splash_show::pixels#0 ] zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Uplifting [init_bobs_restore] best 2265041 combination reg byte y [ init_bobs_restore::i#2 init_bobs_restore::i#1 ] zp[2]:133 [ init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ] reg byte x [ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
Uplifting [] best 2265041 combination zp[1]:123 [ music_play_next ] zp[1]:146 [ side_sprites_color ] zp[1]:147 [ side_sprites_mc ] zp[1]:148 [ bottom_sprites_color ] zp[1]:149 [ bottom_sprites_mc ] zp[2]:150 [ logic_tile_ptr ] zp[1]:152 [ logic_tile_xcol ] zp[1]:153 [ logic_tile_yfine ] zp[1]:159 [ top_sprites_color ] zp[1]:163 [ pacman_wins ] zp[1]:172 [ canvas_base_hi ] zp[1]:173 [ bobs_restore_base ] zp[1]:180 [ pacman_lives ] zp[1]:183 [ ghost1_respawn ] zp[1]:184 [ ghost2_respawn ] zp[1]:185 [ ghost3_respawn ] zp[1]:186 [ ghost4_respawn ] zp[1]:187 [ ghosts_mode_count ] zp[1]:188 [ pacman_substep ] zp[1]:190 [ ghost1_substep ] zp[1]:191 [ ghost2_substep ] zp[1]:192 [ ghost3_substep ] zp[1]:193 [ ghost4_substep ] zp[1]:208 [ pacman_direction ] zp[1]:209 [ ghost1_direction ] zp[1]:210 [ ghost2_direction ] zp[1]:213 [ ghost3_direction ] zp[1]:214 [ ghost4_direction ] zp[1]:215 [ top_sprites_mc ] zp[1]:216 [ ghost1_xfine ] zp[1]:217 [ ghost1_yfine ] zp[1]:218 [ phase ] zp[1]:219 [ ghost2_xfine ] zp[1]:220 [ ghost2_yfine ] zp[1]:221 [ ghost3_xfine ] zp[1]:222 [ game_playable ] zp[1]:223 [ ghost3_yfine ] zp[1]:224 [ ghost4_xfine ] zp[1]:225 [ ghost4_yfine ] zp[1]:226 [ pacman_xfine ] zp[1]:227 [ pacman_yfine ] zp[1]:295 [ logic_tile_left_idx ] zp[1]:296 [ logic_tile_right_idx ] zp[2]:297 [ left_render_index_xcol ] zp[2]:299 [ left_canvas ] zp[1]:301 [ left_ypos_inc_offset ] zp[2]:302 [ rigt_render_index_xcol ] zp[2]:304 [ rigt_canvas ] zp[1]:306 [ rigt_ypos_inc_offset ] zp[2]:314 [ pill_count ] zp[1]:352 [ game_logic_substep ] zp[1]:362 [ pacman_ch1_idx ] zp[1]:363 [ ghosts_mode ] zp[1]:364 [ anim_frame_idx ] zp[1]:365 [ ghost1_reverse ] zp[1]:366 [ ghost2_reverse ] zp[1]:367 [ ghost3_reverse ] zp[1]:368 [ ghost4_reverse ] zp[1]:369 [ frame ] zp[1]:370 [ pacman_ch1_enabled ]
|
|
Uplifting [memcpy] best 2265041 combination zp[2]:131 [ memcpy::src#2 memcpy::src#1 ] zp[2]:137 [ memcpy::dst#2 memcpy::dst#1 ]
|
|
Uplifting [memset] best 2265041 combination zp[2]:128 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:169 [ memset::end#0 ] zp[2]:174 [ memset::num#5 ] zp[2]:371 [ memset::str#6 ]
|
|
Uplifting [splash_run] best 2264298 combination reg byte a [ splash_run::$30 ] reg byte x [ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ] reg byte x [ splash_run::i1#2 splash_run::i1#1 ] reg byte x [ splash_run::i2#2 splash_run::i2#1 ] zp[1]:162 [ splash_run::i#2 splash_run::i#1 ] zp[1]:164 [ splash_run::$25 ] zp[1]:171 [ splash_run::$34 ] zp[2]:177 [ splash_run::xpos#0 ]
|
|
Limited combination testing to 100 combinations of 3888 possible.
|
|
Uplifting [choose_direction] best 2264277 combination reg byte x [ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ] zp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ] reg byte a [ choose_direction::$2 ] reg byte a [ choose_direction::$4 ] zp[1]:199 [ choose_direction::$6 ] zp[1]:200 [ choose_direction::$8 ] zp[1]:201 [ choose_direction::dist_right#0 ] zp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ] zp[1]:204 [ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ] zp[1]:205 [ choose_direction::dist_min#6 choose_direction::dist_up#0 ] zp[1]:206 [ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ] zp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ] zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ] zp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ] zp[1]:275 [ choose_direction::return#0 ] zp[1]:279 [ choose_direction::return#1 ] zp[1]:283 [ choose_direction::return#2 ] zp[1]:287 [ choose_direction::return#3 ] zp[1]:293 [ choose_direction::ydiff#0 ] zp[1]:294 [ choose_direction::xdiff#0 ]
|
|
Limited combination testing to 100 combinations of 952107008 possible.
|
|
Uplifting [level_tile_directions] best 2264214 combination reg byte a [ level_tile_directions::return#2 level_tile_directions::return#0 ] reg byte a [ level_tile_directions::$5 ] zp[2]:195 [ level_tile_directions::ytiles#0 ] reg byte a [ level_tile_directions::ytile#5 level_tile_directions::ytile#1 level_tile_directions::ytile#2 level_tile_directions::ytile#3 level_tile_directions::ytile#4 level_tile_directions::ytile#0 ] reg byte x [ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ] zp[1]:273 [ level_tile_directions::return#3 ] zp[1]:277 [ level_tile_directions::return#10 ] zp[1]:281 [ level_tile_directions::return#11 ] zp[1]:285 [ level_tile_directions::return#12 ] zp[1]:289 [ level_tile_directions::return#13 ]
|
|
Limited combination testing to 100 combinations of 196608 possible.
|
|
Uplifting [byteboozer_decrunch] best 2264214 combination zp[2]:181 [ byteboozer_decrunch::crunched ]
|
|
Uplifting [irq_screen_top] best 2264204 combination reg byte a [ irq_screen_top::$1 ] reg byte a [ irq_screen_top::$2 ]
|
|
Uplifting [MOS6526_CIA] best 2264204 combination
|
|
Uplifting [MOS6569_VICII] best 2264204 combination
|
|
Uplifting [MOS6581_SID] best 2264204 combination
|
|
Uplifting [pacman_sound_init] best 2264204 combination
|
|
Uplifting [pacman_sound_play] best 2264204 combination
|
|
Uplifting [TILE_TYPE] best 2264204 combination
|
|
Uplifting [main] best 2264204 combination
|
|
Uplifting [joyinit] best 2264204 combination
|
|
Uplifting [DIRECTION] best 2264204 combination
|
|
Uplifting [GHOSTS_MODE] best 2264204 combination
|
|
Uplifting [spawn_all] best 2264204 combination
|
|
Uplifting [__start] best 2264204 combination
|
|
Attempting to uplift remaining variables inzp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ]
|
|
Uplifting [render_tiles] best 2264204 combination zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:19 [ render::ypix#0 ]
|
|
Uplifting [render] best 2264204 combination zp[1]:19 [ render::ypix#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:26 [ render_tiles::$5 ]
|
|
Uplifting [render_tiles] best 2264198 combination reg byte a [ render_tiles::$5 ]
|
|
Attempting to uplift remaining variables inzp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
Uplifting [init_level_tile_directions] best 2264198 combination zp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
Attempting to uplift remaining variables inzp[1]:32 [ render_tiles::$4 ]
|
|
Uplifting [render_tiles] best 2264192 combination reg byte x [ render_tiles::$4 ]
|
|
Attempting to uplift remaining variables inzp[1]:35 [ render_tiles::tile_left#0 ]
|
|
Uplifting [render_tiles] best 2261191 combination reg byte x [ render_tiles::tile_left#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:36 [ render_tiles::tile_right#0 ]
|
|
Uplifting [render_tiles] best 2258190 combination reg byte y [ render_tiles::tile_right#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ]
|
|
Uplifting [level_show] best 2258190 combination zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ]
|
|
Uplifting [init_level_tile_directions] best 2258190 combination zp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:44 [ level_tile_get::return#3 ]
|
|
Uplifting [level_tile_get] best 2254190 combination reg byte a [ level_tile_get::return#3 ]
|
|
Attempting to uplift remaining variables inzp[1]:46 [ level_tile_get::return#4 ]
|
|
Uplifting [level_tile_get] best 2250190 combination reg byte a [ level_tile_get::return#4 ]
|
|
Attempting to uplift remaining variables inzp[1]:48 [ level_tile_get::return#10 ]
|
|
Uplifting [level_tile_get] best 2244190 combination reg byte a [ level_tile_get::return#10 ]
|
|
Attempting to uplift remaining variables inzp[1]:49 [ init_level_tile_directions::$11 ]
|
|
Uplifting [init_level_tile_directions] best 2240190 combination reg byte a [ init_level_tile_directions::$11 ]
|
|
Attempting to uplift remaining variables inzp[1]:50 [ level_tile_get::return#11 ]
|
|
Uplifting [level_tile_get] best 2234190 combination reg byte a [ level_tile_get::return#11 ]
|
|
Attempting to uplift remaining variables inzp[1]:51 [ init_level_tile_directions::$15 ]
|
|
Uplifting [init_level_tile_directions] best 2230190 combination reg byte a [ init_level_tile_directions::$15 ]
|
|
Attempting to uplift remaining variables inzp[1]:56 [ render_tiles::xcol#0 ]
|
|
Uplifting [render_tiles] best 2230190 combination zp[1]:56 [ render_tiles::xcol#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:57 [ render_tiles::ytile#0 ]
|
|
Uplifting [render_tiles] best 2230190 combination zp[1]:57 [ render_tiles::ytile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ]
|
|
Uplifting [level_show] best 2230190 combination zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:59 [ render::ytile#0 ]
|
|
Uplifting [render] best 2230188 combination reg byte y [ render::ytile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:60 [ render::$1 ]
|
|
Uplifting [render] best 2230182 combination reg byte x [ render::$1 ]
|
|
Attempting to uplift remaining variables inzp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ]
|
|
Uplifting [render] best 2230182 combination zp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:63 [ level_show::tile_right#0 ]
|
|
Uplifting [level_show] best 2230182 combination zp[1]:63 [ level_show::tile_right#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ]
|
|
Uplifting [render] best 2230182 combination zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ]
|
|
Uplifting [render] best 2230182 combination zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ]
|
|
Uplifting [init_level_tile_directions] best 2230182 combination zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ]
|
|
Uplifting [level_show] best 2230182 combination zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ]
|
|
Uplifting [done_run] best 2230182 combination zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:99 [ done_run::i1#2 done_run::i1#1 ]
|
|
Uplifting [done_run] best 2228382 combination reg byte x [ done_run::i1#2 done_run::i1#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ]
|
|
Uplifting [done_run] best 2228382 combination zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ]
|
|
Uplifting [splash_show] best 2228382 combination zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
Uplifting [init_render_index] best 2228382 combination zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:123 [ music_play_next ]
|
|
Uplifting [] best 2228382 combination zp[1]:123 [ music_play_next ]
|
|
Attempting to uplift remaining variables inzp[1]:127 [ merge_code::logic_cycles#0 ]
|
|
Uplifting [merge_code] best 2228382 combination zp[1]:127 [ merge_code::logic_cycles#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Uplifting [splash_show] best 2228382 combination zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
Uplifting [init_render_index] best 2228382 combination zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:146 [ side_sprites_color ]
|
|
Uplifting [] best 2228382 combination zp[1]:146 [ side_sprites_color ]
|
|
Attempting to uplift remaining variables inzp[1]:147 [ side_sprites_mc ]
|
|
Uplifting [] best 2228382 combination zp[1]:147 [ side_sprites_mc ]
|
|
Attempting to uplift remaining variables inzp[1]:148 [ bottom_sprites_color ]
|
|
Uplifting [] best 2228382 combination zp[1]:148 [ bottom_sprites_color ]
|
|
Attempting to uplift remaining variables inzp[1]:149 [ bottom_sprites_mc ]
|
|
Uplifting [] best 2228382 combination zp[1]:149 [ bottom_sprites_mc ]
|
|
Attempting to uplift remaining variables inzp[1]:152 [ logic_tile_xcol ]
|
|
Uplifting [] best 2228382 combination zp[1]:152 [ logic_tile_xcol ]
|
|
Attempting to uplift remaining variables inzp[1]:153 [ logic_tile_yfine ]
|
|
Uplifting [] best 2228382 combination zp[1]:153 [ logic_tile_yfine ]
|
|
Attempting to uplift remaining variables inzp[1]:159 [ top_sprites_color ]
|
|
Uplifting [] best 2228382 combination zp[1]:159 [ top_sprites_color ]
|
|
Attempting to uplift remaining variables inzp[1]:162 [ splash_run::i#2 splash_run::i#1 ]
|
|
Uplifting [splash_run] best 2228382 combination zp[1]:162 [ splash_run::i#2 splash_run::i#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:163 [ pacman_wins ]
|
|
Uplifting [] best 2228382 combination zp[1]:163 [ pacman_wins ]
|
|
Attempting to uplift remaining variables inzp[1]:164 [ splash_run::$25 ]
|
|
Uplifting [splash_run] best 2228342 combination reg byte a [ splash_run::$25 ]
|
|
Attempting to uplift remaining variables inzp[1]:171 [ splash_run::$34 ]
|
|
Uplifting [splash_run] best 2228242 combination reg byte y [ splash_run::$34 ]
|
|
Attempting to uplift remaining variables inzp[1]:172 [ canvas_base_hi ]
|
|
Uplifting [] best 2228242 combination zp[1]:172 [ canvas_base_hi ]
|
|
Attempting to uplift remaining variables inzp[1]:173 [ bobs_restore_base ]
|
|
Uplifting [] best 2228242 combination zp[1]:173 [ bobs_restore_base ]
|
|
Attempting to uplift remaining variables inzp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
Uplifting [choose_direction] best 2228242 combination zp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
Attempting to uplift remaining variables inzp[1]:180 [ pacman_lives ]
|
|
Uplifting [] best 2228242 combination zp[1]:180 [ pacman_lives ]
|
|
Attempting to uplift remaining variables inzp[1]:183 [ ghost1_respawn ]
|
|
Uplifting [] best 2228242 combination zp[1]:183 [ ghost1_respawn ]
|
|
Attempting to uplift remaining variables inzp[1]:184 [ ghost2_respawn ]
|
|
Uplifting [] best 2228242 combination zp[1]:184 [ ghost2_respawn ]
|
|
Attempting to uplift remaining variables inzp[1]:185 [ ghost3_respawn ]
|
|
Uplifting [] best 2228242 combination zp[1]:185 [ ghost3_respawn ]
|
|
Attempting to uplift remaining variables inzp[1]:186 [ ghost4_respawn ]
|
|
Uplifting [] best 2228242 combination zp[1]:186 [ ghost4_respawn ]
|
|
Attempting to uplift remaining variables inzp[1]:187 [ ghosts_mode_count ]
|
|
Uplifting [] best 2228242 combination zp[1]:187 [ ghosts_mode_count ]
|
|
Attempting to uplift remaining variables inzp[1]:188 [ pacman_substep ]
|
|
Uplifting [] best 2228242 combination zp[1]:188 [ pacman_substep ]
|
|
Attempting to uplift remaining variables inzp[1]:190 [ ghost1_substep ]
|
|
Uplifting [] best 2228242 combination zp[1]:190 [ ghost1_substep ]
|
|
Attempting to uplift remaining variables inzp[1]:191 [ ghost2_substep ]
|
|
Uplifting [] best 2228242 combination zp[1]:191 [ ghost2_substep ]
|
|
Attempting to uplift remaining variables inzp[1]:192 [ ghost3_substep ]
|
|
Uplifting [] best 2228242 combination zp[1]:192 [ ghost3_substep ]
|
|
Attempting to uplift remaining variables inzp[1]:193 [ ghost4_substep ]
|
|
Uplifting [] best 2228242 combination zp[1]:193 [ ghost4_substep ]
|
|
Attempting to uplift remaining variables inzp[1]:199 [ choose_direction::$6 ]
|
|
Uplifting [choose_direction] best 2228238 combination reg byte a [ choose_direction::$6 ]
|
|
Attempting to uplift remaining variables inzp[1]:200 [ choose_direction::$8 ]
|
|
Uplifting [choose_direction] best 2228234 combination reg byte a [ choose_direction::$8 ]
|
|
Attempting to uplift remaining variables inzp[1]:201 [ choose_direction::dist_right#0 ]
|
|
Uplifting [choose_direction] best 2228228 combination reg byte a [ choose_direction::dist_right#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
Uplifting [choose_direction] best 2228228 combination zp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
Attempting to uplift remaining variables inzp[1]:204 [ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ]
|
|
Uplifting [choose_direction] best 2228217 combination reg byte x [ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:205 [ choose_direction::dist_min#6 choose_direction::dist_up#0 ]
|
|
Uplifting [choose_direction] best 2228215 combination reg byte y [ choose_direction::dist_min#6 choose_direction::dist_up#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:206 [ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ]
|
|
Uplifting [choose_direction] best 2228204 combination reg byte y [ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ]
|
|
Uplifting [choose_direction] best 2228204 combination zp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:208 [ pacman_direction ]
|
|
Uplifting [] best 2228204 combination zp[1]:208 [ pacman_direction ]
|
|
Attempting to uplift remaining variables inzp[1]:209 [ ghost1_direction ]
|
|
Uplifting [] best 2228204 combination zp[1]:209 [ ghost1_direction ]
|
|
Attempting to uplift remaining variables inzp[1]:210 [ ghost2_direction ]
|
|
Uplifting [] best 2228204 combination zp[1]:210 [ ghost2_direction ]
|
|
Attempting to uplift remaining variables inzp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ]
|
|
Uplifting [choose_direction] best 2228204 combination zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:213 [ ghost3_direction ]
|
|
Uplifting [] best 2228204 combination zp[1]:213 [ ghost3_direction ]
|
|
Attempting to uplift remaining variables inzp[1]:214 [ ghost4_direction ]
|
|
Uplifting [] best 2228204 combination zp[1]:214 [ ghost4_direction ]
|
|
Attempting to uplift remaining variables inzp[1]:215 [ top_sprites_mc ]
|
|
Uplifting [] best 2228204 combination zp[1]:215 [ top_sprites_mc ]
|
|
Attempting to uplift remaining variables inzp[1]:216 [ ghost1_xfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:216 [ ghost1_xfine ]
|
|
Attempting to uplift remaining variables inzp[1]:217 [ ghost1_yfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:217 [ ghost1_yfine ]
|
|
Attempting to uplift remaining variables inzp[1]:218 [ phase ]
|
|
Uplifting [] best 2228204 combination zp[1]:218 [ phase ]
|
|
Attempting to uplift remaining variables inzp[1]:219 [ ghost2_xfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:219 [ ghost2_xfine ]
|
|
Attempting to uplift remaining variables inzp[1]:220 [ ghost2_yfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:220 [ ghost2_yfine ]
|
|
Attempting to uplift remaining variables inzp[1]:221 [ ghost3_xfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:221 [ ghost3_xfine ]
|
|
Attempting to uplift remaining variables inzp[1]:222 [ game_playable ]
|
|
Uplifting [] best 2228204 combination zp[1]:222 [ game_playable ]
|
|
Attempting to uplift remaining variables inzp[1]:223 [ ghost3_yfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:223 [ ghost3_yfine ]
|
|
Attempting to uplift remaining variables inzp[1]:224 [ ghost4_xfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:224 [ ghost4_xfine ]
|
|
Attempting to uplift remaining variables inzp[1]:225 [ ghost4_yfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:225 [ ghost4_yfine ]
|
|
Attempting to uplift remaining variables inzp[1]:226 [ pacman_xfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:226 [ pacman_xfine ]
|
|
Attempting to uplift remaining variables inzp[1]:227 [ pacman_yfine ]
|
|
Uplifting [] best 2228204 combination zp[1]:227 [ pacman_yfine ]
|
|
Attempting to uplift remaining variables inzp[1]:228 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
Uplifting [game_logic] best 2228204 combination zp[1]:228 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
Uplifting [choose_direction] best 2228204 combination zp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 ]
|
|
Uplifting [game_logic] best 2228204 combination zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:231 [ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ]
|
|
Uplifting [game_logic] best 2228204 combination zp[1]:231 [ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:232 [ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ]
|
|
Uplifting [game_logic] best 2228204 combination zp[1]:232 [ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:233 [ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ]
|
|
Uplifting [game_logic] best 2228204 combination zp[1]:233 [ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:234 [ game_logic::$2 ]
|
|
Uplifting [game_logic] best 2228198 combination reg byte x [ game_logic::$2 ]
|
|
Attempting to uplift remaining variables inzp[1]:235 [ game_logic::$3 ]
|
|
Uplifting [game_logic] best 2228194 combination reg byte a [ game_logic::$3 ]
|
|
Attempting to uplift remaining variables inzp[1]:236 [ game_logic::$14 ]
|
|
Uplifting [game_logic] best 2228188 combination reg byte x [ game_logic::$14 ]
|
|
Attempting to uplift remaining variables inzp[1]:237 [ game_logic::$15 ]
|
|
Uplifting [game_logic] best 2228184 combination reg byte a [ game_logic::$15 ]
|
|
Attempting to uplift remaining variables inzp[1]:238 [ game_logic::$17 ]
|
|
Uplifting [game_logic] best 2228178 combination reg byte a [ game_logic::$17 ]
|
|
Attempting to uplift remaining variables inzp[1]:239 [ game_logic::$18 ]
|
|
Uplifting [game_logic] best 2228172 combination reg byte x [ game_logic::$18 ]
|
|
Attempting to uplift remaining variables inzp[1]:240 [ game_logic::$20 ]
|
|
Uplifting [game_logic] best 2228166 combination reg byte a [ game_logic::$20 ]
|
|
Attempting to uplift remaining variables inzp[1]:241 [ game_logic::$21 ]
|
|
Uplifting [game_logic] best 2228160 combination reg byte a [ game_logic::$21 ]
|
|
Attempting to uplift remaining variables inzp[1]:242 [ game_logic::$25 ]
|
|
Uplifting [game_logic] best 2228154 combination reg byte a [ game_logic::$25 ]
|
|
Attempting to uplift remaining variables inzp[1]:243 [ game_logic::$26 ]
|
|
Uplifting [game_logic] best 2228148 combination reg byte x [ game_logic::$26 ]
|
|
Attempting to uplift remaining variables inzp[1]:244 [ game_logic::$28 ]
|
|
Uplifting [game_logic] best 2228142 combination reg byte a [ game_logic::$28 ]
|
|
Attempting to uplift remaining variables inzp[1]:245 [ game_logic::$29 ]
|
|
Uplifting [game_logic] best 2228136 combination reg byte a [ game_logic::$29 ]
|
|
Attempting to uplift remaining variables inzp[1]:246 [ game_logic::$31 ]
|
|
Uplifting [game_logic] best 2228130 combination reg byte a [ game_logic::$31 ]
|
|
Attempting to uplift remaining variables inzp[1]:247 [ game_logic::$32 ]
|
|
Uplifting [game_logic] best 2228124 combination reg byte x [ game_logic::$32 ]
|
|
Attempting to uplift remaining variables inzp[1]:248 [ game_logic::$34 ]
|
|
Uplifting [game_logic] best 2228118 combination reg byte a [ game_logic::$34 ]
|
|
Attempting to uplift remaining variables inzp[1]:249 [ game_logic::$35 ]
|
|
Uplifting [game_logic] best 2228112 combination reg byte a [ game_logic::$35 ]
|
|
Attempting to uplift remaining variables inzp[1]:250 [ game_logic::$37 ]
|
|
Uplifting [game_logic] best 2228106 combination reg byte a [ game_logic::$37 ]
|
|
Attempting to uplift remaining variables inzp[1]:251 [ game_logic::$38 ]
|
|
Uplifting [game_logic] best 2228100 combination reg byte x [ game_logic::$38 ]
|
|
Attempting to uplift remaining variables inzp[1]:256 [ game_logic::$40 ]
|
|
Uplifting [game_logic] best 2228094 combination reg byte a [ game_logic::$40 ]
|
|
Attempting to uplift remaining variables inzp[1]:257 [ game_logic::$41 ]
|
|
Uplifting [game_logic] best 2228088 combination reg byte a [ game_logic::$41 ]
|
|
Attempting to uplift remaining variables inzp[1]:258 [ game_logic::$43 ]
|
|
Uplifting [game_logic] best 2228082 combination reg byte a [ game_logic::$43 ]
|
|
Attempting to uplift remaining variables inzp[1]:259 [ game_logic::$44 ]
|
|
Uplifting [game_logic] best 2228076 combination reg byte x [ game_logic::$44 ]
|
|
Attempting to uplift remaining variables inzp[1]:260 [ game_logic::$46 ]
|
|
Uplifting [game_logic] best 2228070 combination reg byte a [ game_logic::$46 ]
|
|
Attempting to uplift remaining variables inzp[1]:261 [ game_logic::$47 ]
|
|
Uplifting [game_logic] best 2228064 combination reg byte a [ game_logic::$47 ]
|
|
Attempting to uplift remaining variables inzp[1]:262 [ game_logic::pacman_ytile#0 ]
|
|
Uplifting [game_logic] best 2228058 combination reg byte a [ game_logic::pacman_ytile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:263 [ game_logic::$65 ]
|
|
Uplifting [game_logic] best 2228052 combination reg byte a [ game_logic::$65 ]
|
|
Attempting to uplift remaining variables inzp[1]:264 [ game_logic::$66 ]
|
|
Uplifting [game_logic] best 2228046 combination reg byte a [ game_logic::$66 ]
|
|
Attempting to uplift remaining variables inzp[1]:267 [ game_logic::$68 ]
|
|
Uplifting [game_logic] best 2228040 combination reg byte a [ game_logic::$68 ]
|
|
Attempting to uplift remaining variables inzp[1]:268 [ game_logic::$69 ]
|
|
Uplifting [game_logic] best 2228034 combination reg byte a [ game_logic::$69 ]
|
|
Attempting to uplift remaining variables inzp[1]:269 [ game_logic::$70 ]
|
|
Uplifting [game_logic] best 2228028 combination reg byte a [ game_logic::$70 ]
|
|
Attempting to uplift remaining variables inzp[1]:272 [ game_logic::$72 ]
|
|
Uplifting [game_logic] best 2228022 combination reg byte a [ game_logic::$72 ]
|
|
Attempting to uplift remaining variables inzp[1]:273 [ level_tile_directions::return#3 ]
|
|
Uplifting [level_tile_directions] best 2228016 combination reg byte a [ level_tile_directions::return#3 ]
|
|
Attempting to uplift remaining variables inzp[1]:274 [ game_logic::open_directions#0 ]
|
|
Uplifting [game_logic] best 2228010 combination reg byte a [ game_logic::open_directions#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:275 [ choose_direction::return#0 ]
|
|
Uplifting [choose_direction] best 2228004 combination reg byte a [ choose_direction::return#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:276 [ game_logic::$119 ]
|
|
Uplifting [game_logic] best 2227998 combination reg byte a [ game_logic::$119 ]
|
|
Attempting to uplift remaining variables inzp[1]:277 [ level_tile_directions::return#10 ]
|
|
Uplifting [level_tile_directions] best 2227992 combination reg byte a [ level_tile_directions::return#10 ]
|
|
Attempting to uplift remaining variables inzp[1]:278 [ game_logic::open_directions1#0 ]
|
|
Uplifting [game_logic] best 2227986 combination reg byte a [ game_logic::open_directions1#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:279 [ choose_direction::return#1 ]
|
|
Uplifting [choose_direction] best 2227980 combination reg byte a [ choose_direction::return#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:280 [ game_logic::$140 ]
|
|
Uplifting [game_logic] best 2227974 combination reg byte a [ game_logic::$140 ]
|
|
Attempting to uplift remaining variables inzp[1]:281 [ level_tile_directions::return#11 ]
|
|
Uplifting [level_tile_directions] best 2227968 combination reg byte a [ level_tile_directions::return#11 ]
|
|
Attempting to uplift remaining variables inzp[1]:282 [ game_logic::open_directions2#0 ]
|
|
Uplifting [game_logic] best 2227962 combination reg byte a [ game_logic::open_directions2#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:283 [ choose_direction::return#2 ]
|
|
Uplifting [choose_direction] best 2227956 combination reg byte a [ choose_direction::return#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:284 [ game_logic::$161 ]
|
|
Uplifting [game_logic] best 2227950 combination reg byte a [ game_logic::$161 ]
|
|
Attempting to uplift remaining variables inzp[1]:285 [ level_tile_directions::return#12 ]
|
|
Uplifting [level_tile_directions] best 2227944 combination reg byte a [ level_tile_directions::return#12 ]
|
|
Attempting to uplift remaining variables inzp[1]:286 [ game_logic::open_directions3#0 ]
|
|
Uplifting [game_logic] best 2227938 combination reg byte a [ game_logic::open_directions3#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:287 [ choose_direction::return#3 ]
|
|
Uplifting [choose_direction] best 2227932 combination reg byte a [ choose_direction::return#3 ]
|
|
Attempting to uplift remaining variables inzp[1]:288 [ game_logic::$182 ]
|
|
Uplifting [game_logic] best 2227926 combination reg byte a [ game_logic::$182 ]
|
|
Attempting to uplift remaining variables inzp[1]:289 [ level_tile_directions::return#13 ]
|
|
Uplifting [level_tile_directions] best 2227920 combination reg byte a [ level_tile_directions::return#13 ]
|
|
Attempting to uplift remaining variables inzp[1]:290 [ game_logic::$199 ]
|
|
Uplifting [game_logic] best 2227914 combination reg byte a [ game_logic::$199 ]
|
|
Attempting to uplift remaining variables inzp[1]:291 [ game_logic::$200 ]
|
|
Uplifting [game_logic] best 2227908 combination reg byte a [ game_logic::$200 ]
|
|
Attempting to uplift remaining variables inzp[1]:292 [ game_logic::$204 ]
|
|
Uplifting [game_logic] best 2227904 combination reg byte a [ game_logic::$204 ]
|
|
Attempting to uplift remaining variables inzp[1]:293 [ choose_direction::ydiff#0 ]
|
|
Uplifting [choose_direction] best 2227904 combination zp[1]:293 [ choose_direction::ydiff#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:294 [ choose_direction::xdiff#0 ]
|
|
Uplifting [choose_direction] best 2227904 combination zp[1]:294 [ choose_direction::xdiff#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:295 [ logic_tile_left_idx ]
|
|
Uplifting [] best 2227904 combination zp[1]:295 [ logic_tile_left_idx ]
|
|
Attempting to uplift remaining variables inzp[1]:296 [ logic_tile_right_idx ]
|
|
Uplifting [] best 2227904 combination zp[1]:296 [ logic_tile_right_idx ]
|
|
Attempting to uplift remaining variables inzp[1]:301 [ left_ypos_inc_offset ]
|
|
Uplifting [] best 2227904 combination zp[1]:301 [ left_ypos_inc_offset ]
|
|
Attempting to uplift remaining variables inzp[1]:306 [ rigt_ypos_inc_offset ]
|
|
Uplifting [] best 2227904 combination zp[1]:306 [ rigt_ypos_inc_offset ]
|
|
Attempting to uplift remaining variables inzp[1]:307 [ game_logic::target_xtile#3 game_logic::target_xtile#2 ]
|
|
Uplifting [game_logic] best 2227897 combination reg byte x [ game_logic::target_xtile#3 game_logic::target_xtile#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:308 [ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ]
|
|
Uplifting [game_logic] best 2227890 combination reg byte x [ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:309 [ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ]
|
|
Uplifting [game_logic] best 2227883 combination reg byte x [ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:310 [ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ]
|
|
Uplifting [game_logic] best 2227876 combination reg byte x [ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:311 [ game_logic::tile_id#0 ]
|
|
Uplifting [game_logic] best 2227869 combination reg byte x [ game_logic::tile_id#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:312 [ game_logic::joy_directions#0 ]
|
|
Uplifting [game_logic] best 2227862 combination reg byte a [ game_logic::joy_directions#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:313 [ game_logic::new_direction#0 ]
|
|
Uplifting [game_logic] best 2227855 combination reg byte a [ game_logic::new_direction#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:316 [ game_logic::do_reverse#4 ]
|
|
Uplifting [game_logic] best 2227848 combination reg byte a [ game_logic::do_reverse#4 ]
|
|
Attempting to uplift remaining variables inzp[1]:317 [ game_logic::$19 ]
|
|
Uplifting [game_logic] best 2227844 combination reg byte x [ game_logic::$19 ]
|
|
Attempting to uplift remaining variables inzp[1]:318 [ game_logic::$27 ]
|
|
Uplifting [game_logic] best 2227840 combination reg byte x [ game_logic::$27 ]
|
|
Attempting to uplift remaining variables inzp[1]:319 [ game_logic::$33 ]
|
|
Uplifting [game_logic] best 2227836 combination reg byte x [ game_logic::$33 ]
|
|
Attempting to uplift remaining variables inzp[1]:320 [ game_logic::$39 ]
|
|
Uplifting [game_logic] best 2227832 combination reg byte x [ game_logic::$39 ]
|
|
Attempting to uplift remaining variables inzp[1]:321 [ game_logic::$45 ]
|
|
Uplifting [game_logic] best 2227828 combination reg byte x [ game_logic::$45 ]
|
|
Attempting to uplift remaining variables inzp[1]:322 [ game_logic::$75 ]
|
|
Uplifting [game_logic] best 2227824 combination reg byte x [ game_logic::$75 ]
|
|
Attempting to uplift remaining variables inzp[1]:323 [ game_logic::$77 ]
|
|
Uplifting [game_logic] best 2227820 combination reg byte y [ game_logic::$77 ]
|
|
Attempting to uplift remaining variables inzp[1]:324 [ game_logic::$80 ]
|
|
Uplifting [game_logic] best 2227816 combination reg byte x [ game_logic::$80 ]
|
|
Attempting to uplift remaining variables inzp[1]:325 [ game_logic::$82 ]
|
|
Uplifting [game_logic] best 2227812 combination reg byte y [ game_logic::$82 ]
|
|
Attempting to uplift remaining variables inzp[1]:326 [ game_logic::$85 ]
|
|
Uplifting [game_logic] best 2227808 combination reg byte x [ game_logic::$85 ]
|
|
Attempting to uplift remaining variables inzp[1]:327 [ game_logic::$87 ]
|
|
Uplifting [game_logic] best 2227804 combination reg byte y [ game_logic::$87 ]
|
|
Attempting to uplift remaining variables inzp[1]:328 [ game_logic::$90 ]
|
|
Uplifting [game_logic] best 2227800 combination reg byte x [ game_logic::$90 ]
|
|
Attempting to uplift remaining variables inzp[1]:329 [ game_logic::$92 ]
|
|
Uplifting [game_logic] best 2227796 combination reg byte y [ game_logic::$92 ]
|
|
Attempting to uplift remaining variables inzp[1]:330 [ game_logic::$220 ]
|
|
Uplifting [game_logic] best 2227790 combination reg byte x [ game_logic::$220 ]
|
|
Attempting to uplift remaining variables inzp[1]:331 [ game_logic::$223 ]
|
|
Uplifting [game_logic] best 2227784 combination reg byte x [ game_logic::$223 ]
|
|
Attempting to uplift remaining variables inzp[1]:332 [ game_logic::$226 ]
|
|
Uplifting [game_logic] best 2227778 combination reg byte x [ game_logic::$226 ]
|
|
Attempting to uplift remaining variables inzp[1]:333 [ game_logic::$229 ]
|
|
Uplifting [game_logic] best 2227772 combination reg byte x [ game_logic::$229 ]
|
|
Attempting to uplift remaining variables inzp[1]:334 [ game_logic::$232 ]
|
|
Uplifting [game_logic] best 2227766 combination reg byte x [ game_logic::$232 ]
|
|
Attempting to uplift remaining variables inzp[1]:335 [ game_logic::pacman_xtile1#0 ]
|
|
Uplifting [game_logic] best 2227762 combination reg byte x [ game_logic::pacman_xtile1#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:336 [ game_logic::pacman_ytile1#0 ]
|
|
Uplifting [game_logic] best 2227756 combination reg byte a [ game_logic::pacman_ytile1#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:337 [ game_logic::pacman_xtile#0 ]
|
|
Uplifting [game_logic] best 2227756 combination zp[1]:337 [ game_logic::pacman_xtile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:338 [ game_logic::pacman_bob_xfine#0 ]
|
|
Uplifting [game_logic] best 2227753 combination reg byte y [ game_logic::pacman_bob_xfine#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:339 [ game_logic::ghost1_bob_xfine#0 ]
|
|
Uplifting [game_logic] best 2227750 combination reg byte y [ game_logic::ghost1_bob_xfine#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:340 [ game_logic::ghost2_bob_xfine#0 ]
|
|
Uplifting [game_logic] best 2227747 combination reg byte y [ game_logic::ghost2_bob_xfine#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:341 [ game_logic::ghost3_bob_xfine#0 ]
|
|
Uplifting [game_logic] best 2227744 combination reg byte y [ game_logic::ghost3_bob_xfine#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:342 [ game_logic::ghost4_bob_xfine#0 ]
|
|
Uplifting [game_logic] best 2227741 combination reg byte y [ game_logic::ghost4_bob_xfine#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:345 [ game_logic::open_directions#1 ]
|
|
Uplifting [game_logic] best 2227734 combination reg byte y [ game_logic::open_directions#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:346 [ game_logic::open_directions1#1 ]
|
|
Uplifting [game_logic] best 2227727 combination reg byte y [ game_logic::open_directions1#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:347 [ game_logic::open_directions2#1 ]
|
|
Uplifting [game_logic] best 2227720 combination reg byte y [ game_logic::open_directions2#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:348 [ game_logic::open_directions3#1 ]
|
|
Uplifting [game_logic] best 2227713 combination reg byte y [ game_logic::open_directions3#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:351 [ game_logic::open_directions4#0 ]
|
|
Uplifting [game_logic] best 2227712 combination reg byte x [ game_logic::open_directions4#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:352 [ game_logic_substep ]
|
|
Uplifting [] best 2227712 combination zp[1]:352 [ game_logic_substep ]
|
|
Attempting to uplift remaining variables inzp[1]:353 [ game_logic::$210 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:353 [ game_logic::$210 ]
|
|
Attempting to uplift remaining variables inzp[1]:354 [ game_logic::ghost4_xtile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:354 [ game_logic::ghost4_xtile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:355 [ game_logic::ghost4_ytile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:355 [ game_logic::ghost4_ytile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:356 [ game_logic::ghost3_xtile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:356 [ game_logic::ghost3_xtile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:357 [ game_logic::ghost3_ytile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:357 [ game_logic::ghost3_ytile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:358 [ game_logic::ghost2_xtile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:358 [ game_logic::ghost2_xtile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:359 [ game_logic::ghost2_ytile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:359 [ game_logic::ghost2_ytile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:360 [ game_logic::ghost1_xtile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:360 [ game_logic::ghost1_xtile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:361 [ game_logic::ghost1_ytile#0 ]
|
|
Uplifting [game_logic] best 2227712 combination zp[1]:361 [ game_logic::ghost1_ytile#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:362 [ pacman_ch1_idx ]
|
|
Uplifting [] best 2227712 combination zp[1]:362 [ pacman_ch1_idx ]
|
|
Attempting to uplift remaining variables inzp[1]:363 [ ghosts_mode ]
|
|
Uplifting [] best 2227712 combination zp[1]:363 [ ghosts_mode ]
|
|
Attempting to uplift remaining variables inzp[1]:364 [ anim_frame_idx ]
|
|
Uplifting [] best 2227712 combination zp[1]:364 [ anim_frame_idx ]
|
|
Attempting to uplift remaining variables inzp[1]:365 [ ghost1_reverse ]
|
|
Uplifting [] best 2227712 combination zp[1]:365 [ ghost1_reverse ]
|
|
Attempting to uplift remaining variables inzp[1]:366 [ ghost2_reverse ]
|
|
Uplifting [] best 2227712 combination zp[1]:366 [ ghost2_reverse ]
|
|
Attempting to uplift remaining variables inzp[1]:367 [ ghost3_reverse ]
|
|
Uplifting [] best 2227712 combination zp[1]:367 [ ghost3_reverse ]
|
|
Attempting to uplift remaining variables inzp[1]:368 [ ghost4_reverse ]
|
|
Uplifting [] best 2227712 combination zp[1]:368 [ ghost4_reverse ]
|
|
Attempting to uplift remaining variables inzp[1]:369 [ frame ]
|
|
Uplifting [] best 2227712 combination zp[1]:369 [ frame ]
|
|
Attempting to uplift remaining variables inzp[1]:370 [ pacman_ch1_enabled ]
|
|
Uplifting [] best 2227712 combination zp[1]:370 [ pacman_ch1_enabled ]
|
|
Coalescing zero page register [ zp[2]:124 [ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 ] ] with [ zp[2]:142 [ merge_code::raster_code#1 ] ] - score: 2
|
|
Coalescing zero page register [ zp[2]:112 [ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 ] ] with [ zp[2]:97 [ merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ] ] - score: 2
|
|
Coalescing zero page register [ zp[2]:112 [ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 ] ] with [ zp[2]:66 [ merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ] ] - score: 2
|
|
Coalescing zero page register [ zp[2]:75 [ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 ] ] with [ zp[2]:116 [ merge_code::dest_code#2 ] ] - score: 2
|
|
Coalescing zero page register [ zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 ] ] with [ zp[1]:207 [ choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 ] ] with [ zp[1]:61 [ render::xcol#2 render::xcol#0 render::xcol#1 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 ] ] with [ zp[1]:64 [ render::ypos#2 render::ypos#0 render::ypos#1 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 ] ] with [ zp[1]:355 [ game_logic::ghost4_ytile#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 game_logic::ghost4_ytile#0 ] ] with [ zp[1]:357 [ game_logic::ghost3_ytile#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 game_logic::ghost4_ytile#0 game_logic::ghost3_ytile#0 ] ] with [ zp[1]:359 [ game_logic::ghost2_ytile#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 game_logic::ghost4_ytile#0 game_logic::ghost3_ytile#0 game_logic::ghost2_ytile#0 ] ] with [ zp[1]:361 [ game_logic::ghost1_ytile#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:212 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 game_logic::ghost4_ytile#0 game_logic::ghost3_ytile#0 game_logic::ghost2_ytile#0 game_logic::ghost1_ytile#0 ] ] with [ zp[1]:293 [ choose_direction::ydiff#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:174 [ memset::num#5 ] ] with [ zp[2]:169 [ memset::end#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:371 [ memset::str#6 ] ] with [ zp[2]:128 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 ] ] with [ zp[1]:57 [ render_tiles::ytile#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 ] ] with [ zp[1]:56 [ render_tiles::xcol#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:33 [ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 ] ] with [ zp[2]:165 [ level_show::return#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 ] ] with [ zp[2]:54 [ render::canvas_offset#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:5 [ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 ] ] with [ zp[2]:27 [ render_tiles::canvas_offset#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:343 [ game_logic::ytiles#0 ] ] with [ zp[2]:265 [ game_logic::$67 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:343 [ game_logic::ytiles#0 game_logic::$67 ] ] with [ zp[2]:270 [ game_logic::$71 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:104 [ init_render_index::$11 ] ] with [ zp[2]:106 [ init_render_index::$10 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:108 [ init_render_index::$12 ] ] with [ zp[2]:121 [ init_render_index::canvas#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 ] ] with [ zp[1]:231 [ game_logic::target_ytile1#3 game_logic::target_ytile1#2 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 game_logic::target_ytile1#3 game_logic::target_ytile1#2 ] ] with [ zp[1]:232 [ game_logic::target_ytile2#3 game_logic::target_ytile2#2 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:230 [ game_logic::target_ytile#3 game_logic::target_ytile#2 choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 game_logic::target_ytile1#3 game_logic::target_ytile1#2 game_logic::target_ytile2#3 game_logic::target_ytile2#2 ] ] with [ zp[1]:233 [ game_logic::target_ytile3#3 game_logic::target_ytile3#2 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 render::xcol#2 render::xcol#0 render::xcol#1 ] ] with [ zp[1]:130 [ splash_show::xcol#2 splash_show::xcol#1 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 render::ypos#2 render::ypos#0 render::ypos#1 ] ] with [ zp[1]:102 [ splash_show::ypos#2 splash_show::ypos#1 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:33 [ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 level_show::return#0 ] ] with [ zp[2]:167 [ gameplay_run::$4 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:104 [ init_render_index::$11 init_render_index::$10 ] ] with [ zp[2]:108 [ init_render_index::$12 init_render_index::canvas#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:174 [ memset::num#5 memset::end#0 ] ] with [ zp[2]:87 [ done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ] ]
|
|
Coalescing zero page register [ zp[2]:124 [ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 merge_code::raster_code#1 ] ] with [ zp[2]:371 [ memset::str#6 memset::dst#2 memset::dst#4 memset::dst#1 ] ]
|
|
Coalescing zero page register [ zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 ] ] with [ zp[1]:100 [ done_run::xcol#2 done_run::xcol#1 render::xcol#2 render::xcol#0 render::xcol#1 splash_show::xcol#2 splash_show::xcol#1 ] ]
|
|
Coalescing zero page register [ zp[2]:144 [ init_render_index::render_index_xcol#0 init_render_index::render_index#1 ] ] with [ zp[2]:112 [ merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ] ]
|
|
Coalescing zero page register [ zp[2]:156 [ init_render_index::render_ypos_table#4 ] ] with [ zp[2]:75 [ merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 merge_code::dest_code#2 ] ]
|
|
Coalescing zero page register [ zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 ] ] with [ zp[1]:71 [ done_run::ypos#2 done_run::ypos#1 render::ypos#2 render::ypos#0 render::ypos#1 splash_show::ypos#2 splash_show::ypos#1 ] ]
|
|
Coalescing zero page register [ zp[2]:118 [ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 ] ] with [ zp[2]:114 [ init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ] ]
|
|
Coalescing zero page register [ zp[2]:83 [ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 ] ] with [ zp[2]:133 [ init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ] ]
|
|
Coalescing zero page register [ zp[2]:131 [ memcpy::src#2 memcpy::src#1 ] ] with [ zp[2]:77 [ init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ] ]
|
|
Coalescing zero page register [ zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 ] ] with [ zp[1]:162 [ splash_run::i#2 splash_run::i#1 ] ]
|
|
Coalescing zero page register [ zp[2]:85 [ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 ] ] with [ zp[2]:137 [ memcpy::dst#2 memcpy::dst#1 ] ]
|
|
Coalescing zero page register [ zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 render_tiles::ytile#0 ] ] with [ zp[1]:41 [ init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ] ]
|
|
Coalescing zero page register [ zp[1]:40 [ level_show::xcol#2 level_show::xcol#1 render_tiles::xcol#0 ] ] with [ zp[1]:31 [ init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ] ]
|
|
Coalescing zero page register [ zp[1]:65 [ render::pixels#4 render::pixels#0 render::pixels#1 ] ] with [ zp[1]:58 [ level_show::xtile#3 level_show::xtile#2 ] ]
|
|
Coalescing zero page register [ zp[2]:11 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 ] ] with [ zp[2]:79 [ level_show::level#8 level_show::level#1 ] ]
|
|
Coalescing zero page register [ zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 render::canvas_offset#0 ] ] with [ zp[2]:33 [ level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 level_show::return#0 gameplay_run::$4 ] ]
|
|
Coalescing zero page register [ zp[1]:337 [ game_logic::pacman_xtile#0 ] ] with [ zp[1]:229 [ choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ] ]
|
|
Coalescing zero page register [ zp[1]:353 [ game_logic::$210 ] ] with [ zp[1]:179 [ choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ] ]
|
|
Coalescing zero page register [ zp[1]:354 [ game_logic::ghost4_xtile#0 ] ] with [ zp[1]:203 [ choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ] ]
|
|
Coalescing zero page register [ zp[2]:177 [ splash_run::xpos#0 ] ] with [ zp[2]:7 [ render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ] ]
|
|
Coalescing zero page register [ zp[1]:127 [ merge_code::logic_cycles#0 ] ] with [ zp[1]:2 [ render_tiles::y#2 render_tiles::y#1 ] ]
|
|
Coalescing zero page register [ zp[2]:154 [ init_render_index::canvas_xcol#0 ] ] with [ zp[2]:5 [ render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 render_tiles::canvas_offset#0 ] ]
|
|
Coalescing zero page register [ zp[2]:73 [ render::render_index_xcol#0 ] ] with [ zp[2]:104 [ init_render_index::$11 init_render_index::$10 init_render_index::$12 init_render_index::canvas#0 ] ]
|
|
Coalescing zero page register [ zp[1]:19 [ render::ypix#0 ] ] with [ zp[1]:63 [ level_show::tile_right#0 ] ]
|
|
Coalescing zero page register [ zp[2]:17 [ render_tiles::tile_left_pixels#0 ] ] with [ zp[2]:22 [ level_tile_get::ytiles#0 ] ]
|
|
Coalescing zero page register [ zp[2]:144 [ init_render_index::render_index_xcol#0 init_render_index::render_index#1 merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 ] ] with [ zp[2]:174 [ memset::num#5 memset::end#0 done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ] ]
|
|
Coalescing zero page register [ zp[2]:118 [ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 ] ] with [ zp[2]:124 [ merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 merge_code::raster_code#1 memset::str#6 memset::dst#2 memset::dst#4 memset::dst#1 ] ]
|
|
Coalescing zero page register [ zp[2]:83 [ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 ] ] with [ zp[2]:156 [ init_render_index::render_ypos_table#4 merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 merge_code::dest_code#2 ] ]
|
|
Coalescing zero page register [ zp[1]:69 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 splash_run::i#2 splash_run::i#1 ] ] with [ zp[1]:136 [ init_render_index::x_col#2 init_render_index::x_col#1 done_run::xcol#2 done_run::xcol#1 render::xcol#2 render::xcol#0 render::xcol#1 splash_show::xcol#2 splash_show::xcol#1 ] ]
|
|
Coalescing zero page register [ zp[1]:70 [ level_show::ytile#2 level_show::ytile#1 render_tiles::ytile#0 init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 ] ] with [ zp[1]:103 [ init_render_index::y_pos#2 init_render_index::y_pos#1 done_run::ypos#2 done_run::ypos#1 render::ypos#2 render::ypos#0 render::ypos#1 splash_show::ypos#2 splash_show::ypos#1 ] ]
|
|
Coalescing zero page register [ zp[2]:11 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 level_show::level#8 level_show::level#1 ] ] with [ zp[2]:131 [ memcpy::src#2 memcpy::src#1 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ] ]
|
|
Coalescing zero page register [ zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 render::canvas_offset#0 level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 level_show::return#0 gameplay_run::$4 ] ] with [ zp[2]:85 [ init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 memcpy::dst#2 memcpy::dst#1 ] ]
|
|
Coalescing zero page register [ zp[1]:19 [ render::ypix#0 level_show::tile_right#0 ] ] with [ zp[1]:127 [ merge_code::logic_cycles#0 render_tiles::y#2 render_tiles::y#1 ] ]
|
|
Coalescing zero page register [ zp[2]:17 [ render_tiles::tile_left_pixels#0 level_tile_get::ytiles#0 ] ] with [ zp[2]:73 [ render::render_index_xcol#0 init_render_index::$11 init_render_index::$10 init_render_index::$12 init_render_index::canvas#0 ] ]
|
|
Coalescing zero page register [ zp[2]:13 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 render::canvas_offset#0 level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 level_show::return#0 gameplay_run::$4 init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 memcpy::dst#2 memcpy::dst#1 ] ] with [ zp[2]:83 [ init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 init_render_index::render_ypos_table#4 merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 merge_code::dest_code#2 ] ]
|
|
Coalescing zero page register [ zp[2]:177 [ splash_run::xpos#0 render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 ] ] with [ zp[2]:144 [ init_render_index::render_index_xcol#0 init_render_index::render_index#1 merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 memset::num#5 memset::end#0 done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ] ]
|
|
Coalescing zero page register [ zp[2]:15 [ render_tiles::tile_right_pixels#0 ] ] with [ zp[2]:118 [ splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 merge_code::raster_code#1 memset::str#6 memset::dst#2 memset::dst#4 memset::dst#1 ] ]
|
|
Allocated (was zp[1]:19) zp[1]:2 [ render::ypix#0 level_show::tile_right#0 merge_code::logic_cycles#0 render_tiles::y#2 render_tiles::y#1 ]
|
|
Allocated (was zp[2]:154) zp[2]:3 [ init_render_index::canvas_xcol#0 render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 render_tiles::canvas_offset#0 ]
|
|
Allocated (was zp[2]:177) zp[2]:5 [ splash_run::xpos#0 render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 init_render_index::render_index_xcol#0 init_render_index::render_index#1 merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 memset::num#5 memset::end#0 done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ]
|
|
Allocated (was zp[2]:11) zp[2]:7 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 level_show::level#8 level_show::level#1 memcpy::src#2 memcpy::src#1 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ]
|
|
Allocated (was zp[2]:13) zp[2]:9 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 render::canvas_offset#0 level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 level_show::return#0 gameplay_run::$4 init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 memcpy::dst#2 memcpy::dst#1 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 init_render_index::render_ypos_table#4 merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 merge_code::dest_code#2 ]
|
|
Allocated (was zp[2]:15) zp[2]:11 [ render_tiles::tile_right_pixels#0 splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 merge_code::raster_code#1 memset::str#6 memset::dst#2 memset::dst#4 memset::dst#1 ]
|
|
Allocated (was zp[2]:17) zp[2]:13 [ render_tiles::tile_left_pixels#0 level_tile_get::ytiles#0 render::render_index_xcol#0 init_render_index::$11 init_render_index::$10 init_render_index::$12 init_render_index::canvas#0 ]
|
|
Allocated (was zp[1]:40) zp[1]:15 [ level_show::xcol#2 level_show::xcol#1 render_tiles::xcol#0 init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
Allocated (was zp[1]:70) zp[1]:16 [ level_show::ytile#2 level_show::ytile#1 render_tiles::ytile#0 init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 init_render_index::y_pos#2 init_render_index::y_pos#1 done_run::ypos#2 done_run::ypos#1 render::ypos#2 render::ypos#0 render::ypos#1 splash_show::ypos#2 splash_show::ypos#1 ]
|
|
Allocated (was zp[2]:38) zp[2]:17 [ render_tiles::render_index_xcol#0 ]
|
|
Allocated (was zp[1]:65) zp[1]:19 [ render::pixels#4 render::pixels#0 render::pixels#1 level_show::xtile#3 level_show::xtile#2 ]
|
|
Allocated (was zp[1]:69) zp[1]:20 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 splash_run::i#2 splash_run::i#1 init_render_index::x_col#2 init_render_index::x_col#1 done_run::xcol#2 done_run::xcol#1 render::xcol#2 render::xcol#0 render::xcol#1 splash_show::xcol#2 splash_show::xcol#1 ]
|
|
Allocated (was zp[1]:123) zp[1]:21 [ music_play_next ]
|
|
Allocated (was zp[1]:146) zp[1]:22 [ side_sprites_color ]
|
|
Allocated (was zp[1]:147) zp[1]:23 [ side_sprites_mc ]
|
|
Allocated (was zp[1]:148) zp[1]:24 [ bottom_sprites_color ]
|
|
Allocated (was zp[1]:149) zp[1]:25 [ bottom_sprites_mc ]
|
|
Allocated (was zp[2]:150) zp[2]:26 [ logic_tile_ptr ]
|
|
Allocated (was zp[1]:152) zp[1]:28 [ logic_tile_xcol ]
|
|
Allocated (was zp[1]:153) zp[1]:29 [ logic_tile_yfine ]
|
|
Allocated (was zp[1]:159) zp[1]:30 [ top_sprites_color ]
|
|
Allocated (was zp[1]:163) zp[1]:31 [ pacman_wins ]
|
|
Allocated (was zp[1]:172) zp[1]:32 [ canvas_base_hi ]
|
|
Allocated (was zp[1]:173) zp[1]:33 [ bobs_restore_base ]
|
|
Allocated (was zp[1]:353) zp[1]:34 [ game_logic::$210 choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
Allocated (was zp[1]:180) zp[1]:35 [ pacman_lives ]
|
|
Allocated (was zp[2]:181) zp[2]:36 [ byteboozer_decrunch::crunched ]
|
|
Allocated (was zp[1]:183) zp[1]:38 [ ghost1_respawn ]
|
|
Allocated (was zp[1]:230) zp[1]:39 [ game_logic::target_ytile#3 game_logic::target_ytile#2 choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 game_logic::target_ytile1#3 game_logic::target_ytile1#2 game_logic::target_ytile2#3 game_logic::target_ytile2#2 game_logic::target_ytile3#3 game_logic::target_ytile3#2 ]
|
|
Allocated (was zp[1]:184) zp[1]:40 [ ghost2_respawn ]
|
|
Allocated (was zp[1]:185) zp[1]:41 [ ghost3_respawn ]
|
|
Allocated (was zp[1]:186) zp[1]:42 [ ghost4_respawn ]
|
|
Allocated (was zp[1]:187) zp[1]:43 [ ghosts_mode_count ]
|
|
Allocated (was zp[1]:188) zp[1]:44 [ pacman_substep ]
|
|
Allocated (was zp[1]:190) zp[1]:45 [ ghost1_substep ]
|
|
Allocated (was zp[1]:191) zp[1]:46 [ ghost2_substep ]
|
|
Allocated (was zp[1]:192) zp[1]:47 [ ghost3_substep ]
|
|
Allocated (was zp[1]:193) zp[1]:48 [ ghost4_substep ]
|
|
Allocated (was zp[2]:195) zp[2]:49 [ level_tile_directions::ytiles#0 ]
|
|
Allocated (was zp[1]:354) zp[1]:51 [ game_logic::ghost4_xtile#0 choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
Allocated (was zp[1]:212) zp[1]:52 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 game_logic::ghost4_ytile#0 game_logic::ghost3_ytile#0 game_logic::ghost2_ytile#0 game_logic::ghost1_ytile#0 choose_direction::ydiff#0 ]
|
|
Allocated (was zp[1]:208) zp[1]:53 [ pacman_direction ]
|
|
Allocated (was zp[1]:209) zp[1]:54 [ ghost1_direction ]
|
|
Allocated (was zp[1]:210) zp[1]:55 [ ghost2_direction ]
|
|
Allocated (was zp[1]:213) zp[1]:56 [ ghost3_direction ]
|
|
Allocated (was zp[1]:214) zp[1]:57 [ ghost4_direction ]
|
|
Allocated (was zp[1]:215) zp[1]:58 [ top_sprites_mc ]
|
|
Allocated (was zp[1]:216) zp[1]:59 [ ghost1_xfine ]
|
|
Allocated (was zp[1]:217) zp[1]:60 [ ghost1_yfine ]
|
|
Allocated (was zp[1]:218) zp[1]:61 [ phase ]
|
|
Allocated (was zp[1]:219) zp[1]:62 [ ghost2_xfine ]
|
|
Allocated (was zp[1]:220) zp[1]:63 [ ghost2_yfine ]
|
|
Allocated (was zp[1]:221) zp[1]:64 [ ghost3_xfine ]
|
|
Allocated (was zp[1]:222) zp[1]:65 [ game_playable ]
|
|
Allocated (was zp[1]:223) zp[1]:66 [ ghost3_yfine ]
|
|
Allocated (was zp[1]:224) zp[1]:67 [ ghost4_xfine ]
|
|
Allocated (was zp[1]:225) zp[1]:68 [ ghost4_yfine ]
|
|
Allocated (was zp[2]:343) zp[2]:69 [ game_logic::ytiles#0 game_logic::$67 game_logic::$71 ]
|
|
Allocated (was zp[1]:226) zp[1]:71 [ pacman_xfine ]
|
|
Allocated (was zp[1]:227) zp[1]:72 [ pacman_yfine ]
|
|
Allocated (was zp[1]:337) zp[1]:73 [ game_logic::pacman_xtile#0 choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
Allocated (was zp[1]:228) zp[1]:74 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
Allocated (was zp[1]:294) zp[1]:75 [ choose_direction::xdiff#0 ]
|
|
Allocated (was zp[1]:295) zp[1]:76 [ logic_tile_left_idx ]
|
|
Allocated (was zp[1]:296) zp[1]:77 [ logic_tile_right_idx ]
|
|
Allocated (was zp[2]:297) zp[2]:78 [ left_render_index_xcol ]
|
|
Allocated (was zp[2]:299) zp[2]:80 [ left_canvas ]
|
|
Allocated (was zp[1]:301) zp[1]:82 [ left_ypos_inc_offset ]
|
|
Allocated (was zp[2]:302) zp[2]:83 [ rigt_render_index_xcol ]
|
|
Allocated (was zp[2]:304) zp[2]:85 [ rigt_canvas ]
|
|
Allocated (was zp[1]:306) zp[1]:87 [ rigt_ypos_inc_offset ]
|
|
Allocated (was zp[2]:314) zp[2]:88 [ pill_count ]
|
|
Allocated (was zp[1]:352) zp[1]:90 [ game_logic_substep ]
|
|
Allocated (was zp[1]:356) zp[1]:91 [ game_logic::ghost3_xtile#0 ]
|
|
Allocated (was zp[1]:358) zp[1]:92 [ game_logic::ghost2_xtile#0 ]
|
|
Allocated (was zp[1]:360) zp[1]:93 [ game_logic::ghost1_xtile#0 ]
|
|
Allocated (was zp[1]:362) zp[1]:94 [ pacman_ch1_idx ]
|
|
Allocated (was zp[1]:363) zp[1]:95 [ ghosts_mode ]
|
|
Allocated (was zp[1]:364) zp[1]:96 [ anim_frame_idx ]
|
|
Allocated (was zp[1]:365) zp[1]:97 [ ghost1_reverse ]
|
|
Allocated (was zp[1]:366) zp[1]:98 [ ghost2_reverse ]
|
|
Allocated (was zp[1]:367) zp[1]:99 [ ghost3_reverse ]
|
|
Allocated (was zp[1]:368) zp[1]:100 [ ghost4_reverse ]
|
|
Allocated (was zp[1]:369) zp[1]:101 [ frame ]
|
|
Allocated (was zp[1]:370) zp[1]:102 [ pacman_ch1_enabled ]
|
|
Interrupt procedure irq_screen_top clobbers AXYZcnzvidePSB
|
|
|
|
ASSEMBLER BEFORE OPTIMIZATION
|
|
// File Comments
|
|
// Camelot Borderline Entry
|
|
// Pacman made with 9 sprites in in the borders
|
|
// Upstart
|
|
// Commodore 64 PRG executable file
|
|
.plugin "se.triad.kickass.CruncherPlugins"
|
|
.file [name="pacman.prg", type="prg", segments="Program", modify="B2exe", _jmpAdress=__start]
|
|
.segmentdef Program [segments="Code, Data, Init"]
|
|
.segmentdef Code [start=$810]
|
|
.segmentdef Data [startAfter="Code"]
|
|
.segmentdef Init [startAfter="Data"]
|
|
// Global Constants & labels
|
|
/// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
|
|
.const CIA_INTERRUPT_CLEAR = $7f
|
|
/// The offset of the sprite pointers from the screen start address
|
|
.const OFFSET_SPRITE_PTRS = $3f8
|
|
/// $D011 Control Register #1 Bit#7: RST8 9th Bit for $D012 Rasterline counter
|
|
.const VICII_RST8 = $80
|
|
/// $D011 Control Register #1 Bit#6: ECM Turn Extended Color Mode on/off
|
|
.const VICII_ECM = $40
|
|
/// $D011 Control Register #1 Bit#5: BMM Turn Bitmap Mode on/off
|
|
.const VICII_BMM = $20
|
|
/// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off
|
|
.const VICII_DEN = $10
|
|
/// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows
|
|
/// RSEL| Display window height | First line | Last line
|
|
/// ----+--------------------------+-------------+----------
|
|
/// 0 | 24 text lines/192 pixels | 55 ($37) | 246 ($f6)
|
|
/// 1 | 25 text lines/200 pixels | 51 ($33) | 250 ($fa)
|
|
.const VICII_RSEL = 8
|
|
/// VICII IRQ Status/Enable Raster
|
|
// @see #IRQ_ENABLE #IRQ_STATUS
|
|
/// 0 | RST| Reaching a certain raster line. The line is specified by writing
|
|
/// | | to register 0xd012 and bit 7 of $d011 and internally stored by
|
|
/// | | the VIC for the raster compare. The test for reaching the
|
|
/// | | interrupt raster line is done in cycle 0 of every line (for line
|
|
/// | | 0, in cycle 1).
|
|
.const IRQ_RASTER = 1
|
|
/// Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written
|
|
.const PROCPORT_DDR_MEMORY_MASK = 7
|
|
/// RAM in all three areas 0xA000, 0xD000, 0xE000
|
|
.const PROCPORT_RAM_ALL = 0
|
|
/// RAM in 0xA000, 0xE000 I/O in 0xD000
|
|
.const PROCPORT_RAM_IO = 5
|
|
/// The colors of the C64
|
|
.const BLACK = 0
|
|
.const RED = 2
|
|
.const BLUE = 6
|
|
.const YELLOW = 7
|
|
.const EMPTY = 0
|
|
.const PILL = 1
|
|
.const POWERUP = 2
|
|
.const WALL = 4
|
|
// Address of the (decrunched) splash screen
|
|
.const BOB_ROW_SIZE = $80
|
|
.const RENDER_OFFSET_CANVAS_LO = 0
|
|
.const RENDER_OFFSET_CANVAS_HI = $50
|
|
.const RENDER_OFFSET_YPOS_INC = $a0
|
|
// The number of bobs rendered
|
|
.const NUM_BOBS = 5
|
|
// The size of the BOB restore structure
|
|
.const SIZE_BOB_RESTORE = $12
|
|
// Size of the crunched music
|
|
.const INTRO_MUSIC_CRUNCHED_SIZE = $600
|
|
// The raster line for irq_screen_top()
|
|
.const IRQ_SCREEN_TOP_LINE = 5
|
|
.const STOP = 0
|
|
.const UP = 4
|
|
.const DOWN = 8
|
|
.const LEFT = $10
|
|
.const RIGHT = $20
|
|
.const CHASE = 0
|
|
.const SCATTER = 1
|
|
.const FRIGHTENED = 2
|
|
.const OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2
|
|
.const OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH = 2
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL = 4
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY = 5
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE = 6
|
|
.const OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
.const OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB = $10
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X = $1d
|
|
.const OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20
|
|
.const OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1 = $25
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2 = $26
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC = $1c
|
|
.const OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16
|
|
.const OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11
|
|
.const OFFSET_STRUCT_MOS6569_VICII_RASTER = $12
|
|
.const OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y = 1
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y = 3
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y = 5
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y = 7
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y = 9
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y = $b
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y = $d
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y = $f
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR = $27
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR = $28
|
|
.const OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19
|
|
.const SIZEOF_CHAR = 1
|
|
/// Sprite X position register for sprite #0
|
|
.label SPRITES_XPOS = $d000
|
|
/// Sprite Y position register for sprite #0
|
|
.label SPRITES_YPOS = $d001
|
|
/// Sprite colors register for sprite #0
|
|
.label SPRITES_COLOR = $d027
|
|
/// $D012 RASTER Raster counter
|
|
.label RASTER = $d012
|
|
/// $D020 Border Color
|
|
.label BORDER_COLOR = $d020
|
|
/// $D011 Control Register #1
|
|
/// - Bit#0-#2: YSCROLL Screen Soft Scroll Vertical
|
|
/// - Bit#3: RSEL Switch betweem 25 or 24 visible rows
|
|
/// RSEL| Display window height | First line | Last line
|
|
/// ----+--------------------------+-------------+----------
|
|
/// 0 | 24 text lines/192 pixels | 55 ($37) | 246 ($f6)
|
|
/// 1 | 25 text lines/200 pixels | 51 ($33) | 250 ($fa)
|
|
/// - Bit#4: DEN Switch VIC-II output on/off
|
|
/// - Bit#5: BMM Turn Bitmap Mode on/off
|
|
/// - Bit#6: ECM Turn Extended Color Mode on/off
|
|
/// - Bit#7: RST8 9th Bit for $D012 Rasterline counter
|
|
/// Initial Value: %10011011
|
|
.label VICII_CONTROL1 = $d011
|
|
/// $D016 Control register 2
|
|
/// - Bit#0-#2: XSCROLL Screen Soft Scroll Horizontal
|
|
/// - Bit#3: CSEL Switch betweem 40 or 38 visible columns
|
|
/// CSEL| Display window width | First X coo. | Last X coo.
|
|
/// ----+--------------------------+--------------+------------
|
|
/// 0 | 38 characters/304 pixels | 31 ($1f) | 334 ($14e)
|
|
/// 1 | 40 characters/320 pixels | 24 ($18) | 343 ($157)
|
|
/// - Bit#4: MCM Turn Multicolor Mode on/off
|
|
/// - Bit#5-#7: not used
|
|
/// Initial Value: %00001000
|
|
.label VICII_CONTROL2 = $d016
|
|
/// $D018 VIC-II base addresses
|
|
/// - Bit#0: not used
|
|
/// - Bit#1-#3: CB Address Bits 11-13 of the Character Set (*2048)
|
|
/// - Bit#4-#7: VM Address Bits 10-13 of the Screen RAM (*1024)
|
|
/// Initial Value: %00010100
|
|
.label VICII_MEMORY = $d018
|
|
/// VIC II IRQ Status Register
|
|
.label IRQ_STATUS = $d019
|
|
/// Channel 1 Frequency High byte
|
|
.label SID_CH1_FREQ_HI = $d401
|
|
/// Processor port data direction register
|
|
.label PROCPORT_DDR = 0
|
|
/// Processor Port Register controlling RAM/ROM configuration and the datasette
|
|
.label PROCPORT = 1
|
|
/// The SID MOS 6581/8580
|
|
.label SID = $d400
|
|
/// The VIC-II MOS 6567/6569
|
|
.label VICII = $d000
|
|
/// The CIA#1: keyboard matrix, joystick #1/#2
|
|
.label CIA1 = $dc00
|
|
/// The CIA#2: Serial bus, RS-232, VIC memory bank
|
|
.label CIA2 = $dd00
|
|
/// CIA#1 Interrupt for reading in ASM
|
|
.label CIA1_INTERRUPT = $dc0d
|
|
/// The vector used when the HARDWARE serves IRQ interrupts
|
|
.label HARDWARE_IRQ = $fffe
|
|
// Graphics Bank 1
|
|
// Address of the sprites
|
|
.label BANK_1 = $4000
|
|
// Address of the sprites
|
|
.label SPRITES_1 = $6000
|
|
// Use sprite pointers on all screens (0x43f8, 0x47f8, ...)
|
|
.label SCREENS_1 = $4000
|
|
// Graphics Bank 2
|
|
// Address of the sprites
|
|
.label BANK_2 = $c000
|
|
// Address of the sprites
|
|
.label SPRITES_2 = $e000
|
|
// Use sprite pointers on all screens (0x43f8, 0x47f8, ...)
|
|
.label SCREENS_2 = $c000
|
|
// The location where the logic code will be located before merging
|
|
.label LOGIC_CODE_UNMERGED = $e000
|
|
// The location where the screen raster code will be located before merging
|
|
.label RASTER_CODE_UNMERGED = $6000
|
|
// The location where the screen raster code will be located when running
|
|
.label RASTER_CODE = $8000
|
|
// Address of the (decrunched) splash screen
|
|
.label SPLASH = $4000
|
|
// Address for the victory graphics
|
|
.label WIN_GFX = $a700
|
|
// Address for the gameover graphics
|
|
.label GAMEOVER_GFX = $a700
|
|
// Address used by (decrunched) tiles
|
|
.label LEVEL_TILES = $4800
|
|
.label TILES_LEFT = LEVEL_TILES+$a00
|
|
.label TILES_RIGHT = LEVEL_TILES+$a80
|
|
.label TILES_TYPE = LEVEL_TILES+$b00
|
|
// Address used for table containing available directions for all tiles
|
|
// TABLE LEVEL_TILES_DIRECTIONS[64*37]
|
|
// The level data is organized as 37 rows of 64 bytes. Each row is 50 bytes containing DIRECTION bits plus 14 unused bytes to achieve 64-byte alignment.
|
|
.label LEVEL_TILES_DIRECTIONS = $3e00
|
|
.label BOB_MASK_LEFT = $5400
|
|
.label BOB_MASK_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*6
|
|
.label BOB_PIXEL_LEFT = BOB_MASK_LEFT+BOB_ROW_SIZE*$c
|
|
.label BOB_PIXEL_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*$12
|
|
// Tables pointing to the graphics.
|
|
// Each page represents one X column (1 byte wide, 4 MC pixels)
|
|
// On each page:
|
|
// - 0xNN00-0xNN4A : low-byte of the graphics for (X-column, Y-fine)
|
|
// - 0xNN50-0xNN9A : high-byte of the graphics for (X-column, Y-fine)
|
|
// - 0xNNA0-0xNNEA : index into RENDER_YPOS_INC for incrementing the y-pos.
|
|
.label RENDER_INDEX = $b600
|
|
// Upper memory location used during decrunching
|
|
.label INTRO_MUSIC_CRUNCHED_UPPER = $a700
|
|
// Address of the music during run-time
|
|
.label INTRO_MUSIC = $3000
|
|
// Pointer to the music init routine
|
|
.label musicInit = INTRO_MUSIC
|
|
// Pointer to the music play routine
|
|
.label musicPlay = INTRO_MUSIC+6
|
|
// Is the pacman eating sound enabled
|
|
.label pacman_ch1_enabled = $66
|
|
// Index into the eating sound
|
|
.label pacman_ch1_idx = $5e
|
|
// Pointer to the tile to render in the logic code
|
|
.label logic_tile_ptr = $1a
|
|
// The x-column of the tile to render
|
|
.label logic_tile_xcol = $1c
|
|
// The y-fine of the tile to render
|
|
.label logic_tile_yfine = $1d
|
|
// The ID*4 of the left tile to render
|
|
.label logic_tile_left_idx = $4c
|
|
// The ID*4 of the right tile to render
|
|
.label logic_tile_right_idx = $4d
|
|
// Variables used by the logic-code renderer and restorer
|
|
.label left_render_index_xcol = $4e
|
|
.label left_canvas = $50
|
|
.label left_ypos_inc_offset = $52
|
|
.label rigt_render_index_xcol = $53
|
|
.label rigt_canvas = $55
|
|
.label rigt_ypos_inc_offset = $57
|
|
// The high-byte of the start-address of the canvas currently being rendered to
|
|
.label canvas_base_hi = $20
|
|
// The offset used for bobs_restore - used to achieve double buffering
|
|
.label bobs_restore_base = $21
|
|
// Sprite settings used for the top/side/bottom sprites.
|
|
// Used for achieving single-color sprites on the splash and multi-color sprites in the game
|
|
.label top_sprites_color = $1e
|
|
.label top_sprites_mc = $3a
|
|
.label side_sprites_color = $16
|
|
.label side_sprites_mc = $17
|
|
.label bottom_sprites_color = $18
|
|
.label bottom_sprites_mc = $19
|
|
// The number of pills left
|
|
.label pill_count = $58
|
|
// 1 When pacman wins
|
|
.label pacman_wins = $1f
|
|
// The number of pacman lives left
|
|
.label pacman_lives = $23
|
|
// Signal for playing th next music frame during the intro
|
|
.label music_play_next = $15
|
|
// 0: intro, 1: game
|
|
.label phase = $3d
|
|
// The double buffer frame (0=BANK_1, 1=BANK_2)
|
|
.label frame = $65
|
|
// The animation frame IDX (within the current direction) [0-3]
|
|
.label anim_frame_idx = $60
|
|
// Pacman x fine position (0-99).
|
|
.label pacman_xfine = $47
|
|
// Pacman y fine position (0-70).
|
|
.label pacman_yfine = $48
|
|
// The pacman movement current direction
|
|
.label pacman_direction = $35
|
|
// Pacman movement substep (0: on tile, 1: between tiles).
|
|
.label pacman_substep = $2c
|
|
// Mode determining ghost target mode. 0: chase, 1: scatter
|
|
.label ghosts_mode = $5f
|
|
// Counts frames to change ghost mode (7 seconds scatter, 20 seconds chase )
|
|
.label ghosts_mode_count = $2b
|
|
// Ghost 1 x fine position (0-99).
|
|
.label ghost1_xfine = $3b
|
|
// Ghost 1 y fine position (0-70).
|
|
.label ghost1_yfine = $3c
|
|
// Ghost 1 movement current direction
|
|
.label ghost1_direction = $36
|
|
// Ghost 1 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost1_substep = $2d
|
|
// Ghost 1 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost1_reverse = $61
|
|
// Ghost 1 respawn timer
|
|
.label ghost1_respawn = $26
|
|
// Ghost 2 x fine position (0-99).
|
|
.label ghost2_xfine = $3e
|
|
// Ghost 2 y fine position (0-70).
|
|
.label ghost2_yfine = $3f
|
|
// Ghost 2 movement current direction
|
|
.label ghost2_direction = $37
|
|
// Ghost 2 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost2_substep = $2e
|
|
// Ghost 2 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost2_reverse = $62
|
|
// Ghost 2 respawn timer
|
|
.label ghost2_respawn = $28
|
|
// Ghost 3 x fine position (0-99).
|
|
.label ghost3_xfine = $40
|
|
// Ghost 3 y fine position (0-70).
|
|
.label ghost3_yfine = $42
|
|
// Ghost 3 movement current direction
|
|
.label ghost3_direction = $38
|
|
// Ghost 3 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost3_substep = $2f
|
|
// Ghost 3 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost3_reverse = $63
|
|
// Ghost 3 respawn timer
|
|
.label ghost3_respawn = $29
|
|
// Ghost 4 x fine position (0-99).
|
|
.label ghost4_xfine = $43
|
|
// Ghost 4 y fine position (0-70).
|
|
.label ghost4_yfine = $44
|
|
// Ghost 4 movement current direction
|
|
.label ghost4_direction = $39
|
|
// Ghost 4 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost4_substep = $30
|
|
// Ghost 4 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost4_reverse = $64
|
|
// Ghost 4 respawn timer
|
|
.label ghost4_respawn = $2a
|
|
// Game logic sub-step [0-7]. Each frame a different sub-step is animated
|
|
.label game_logic_substep = $5a
|
|
// 1 when the game is playable and characters should move around
|
|
.label game_playable = $41
|
|
.segment Code
|
|
// __start
|
|
__start: {
|
|
jmp __init1
|
|
// __start::__init1
|
|
__init1:
|
|
// [1] pacman_ch1_enabled = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_ch1_enabled
|
|
// [2] pacman_ch1_idx = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_ch1_idx
|
|
// [3] logic_tile_ptr = (volatile char *) 0 -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z logic_tile_ptr
|
|
lda #>0
|
|
sta.z logic_tile_ptr+1
|
|
// [4] logic_tile_xcol = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z logic_tile_xcol
|
|
// [5] logic_tile_yfine = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z logic_tile_yfine
|
|
// [6] logic_tile_left_idx = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z logic_tile_left_idx
|
|
// [7] logic_tile_right_idx = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z logic_tile_right_idx
|
|
// [8] left_render_index_xcol = (char *) 0 -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z left_render_index_xcol
|
|
lda #>0
|
|
sta.z left_render_index_xcol+1
|
|
// [9] left_canvas = (char *) 0 -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z left_canvas
|
|
lda #>0
|
|
sta.z left_canvas+1
|
|
// [10] left_ypos_inc_offset = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z left_ypos_inc_offset
|
|
// [11] rigt_render_index_xcol = (char *) 0 -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z rigt_render_index_xcol
|
|
lda #>0
|
|
sta.z rigt_render_index_xcol+1
|
|
// [12] rigt_canvas = (char *) 0 -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z rigt_canvas
|
|
lda #>0
|
|
sta.z rigt_canvas+1
|
|
// [13] rigt_ypos_inc_offset = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z rigt_ypos_inc_offset
|
|
// [14] canvas_base_hi = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z canvas_base_hi
|
|
// [15] bobs_restore_base = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z bobs_restore_base
|
|
// [16] top_sprites_color = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z top_sprites_color
|
|
// [17] top_sprites_mc = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z top_sprites_mc
|
|
// [18] side_sprites_color = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z side_sprites_color
|
|
// [19] side_sprites_mc = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z side_sprites_mc
|
|
// [20] bottom_sprites_color = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z bottom_sprites_color
|
|
// [21] bottom_sprites_mc = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z bottom_sprites_mc
|
|
// [22] pill_count = 0 -- vwuz1=vwuc1
|
|
lda #<0
|
|
sta.z pill_count
|
|
lda #>0
|
|
sta.z pill_count+1
|
|
// [23] pacman_wins = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_wins
|
|
// [24] pacman_lives = 3 -- vbuz1=vbuc1
|
|
lda #3
|
|
sta.z pacman_lives
|
|
// [25] music_play_next = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z music_play_next
|
|
// [26] phase = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z phase
|
|
// [27] frame = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z frame
|
|
// [28] anim_frame_idx = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z anim_frame_idx
|
|
// [29] pacman_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z pacman_xfine
|
|
// [30] pacman_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z pacman_yfine
|
|
// [31] pacman_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z pacman_direction
|
|
// [32] pacman_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_substep
|
|
// [33] ghosts_mode = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghosts_mode
|
|
// [34] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
// [35] ghost1_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost1_xfine
|
|
// [36] ghost1_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost1_yfine
|
|
// [37] ghost1_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost1_direction
|
|
// [38] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
// [39] ghost1_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_reverse
|
|
// [40] ghost1_respawn = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_respawn
|
|
// [41] ghost2_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost2_xfine
|
|
// [42] ghost2_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost2_yfine
|
|
// [43] ghost2_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost2_direction
|
|
// [44] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
// [45] ghost2_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_reverse
|
|
// [46] ghost2_respawn = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_respawn
|
|
// [47] ghost3_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost3_xfine
|
|
// [48] ghost3_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost3_yfine
|
|
// [49] ghost3_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost3_direction
|
|
// [50] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
// [51] ghost3_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_reverse
|
|
// [52] ghost3_respawn = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_respawn
|
|
// [53] ghost4_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost4_xfine
|
|
// [54] ghost4_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost4_yfine
|
|
// [55] ghost4_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost4_direction
|
|
// [56] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
// [57] ghost4_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_reverse
|
|
// [58] ghost4_respawn = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_respawn
|
|
// [59] game_logic_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z game_logic_substep
|
|
// [60] game_playable = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z game_playable
|
|
// [61] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
|
|
__b1_from___init1:
|
|
jmp __b1
|
|
// __start::@1
|
|
__b1:
|
|
// [62] call main
|
|
// [101] phi from __start::@1 to main [phi:__start::@1->main]
|
|
main_from___b1:
|
|
jsr main
|
|
jmp __breturn
|
|
// __start::@return
|
|
__breturn:
|
|
// [63] return
|
|
rts
|
|
}
|
|
// irq_screen_top
|
|
// Interrupt Routine at Screen Top
|
|
irq_screen_top: {
|
|
.const toDd001_return = 0
|
|
.const toDd002_return = 3^(>SCREENS_1)/$40
|
|
.const toD0181_return = 0
|
|
// interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry
|
|
sta rega+1
|
|
stx regx+1
|
|
sty regy+1
|
|
// kickasm( uses HARDWARE_IRQ uses RASTER uses IRQ_STATUS uses IRQ_RASTER uses VICII_CONTROL1 uses VICII_RSEL uses VICII_MEMORY) {{ // Stabilize the raster by using the double IRQ method // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS // Set-up IRQ for the next line inc RASTER // Point IRQ to almost stable code lda #<stable sta HARDWARE_IRQ lda #>stable sta HARDWARE_IRQ+1 tsx // Save stack pointer cli // Reenable interrupts // Wait for new IRQ using NOP's to ensure minimal jitter when it hits .fill 15, NOP .align $20 stable: txs // Restore stack pointer ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles) !: dex bne !- nop lda RASTER cmp RASTER bne !+ // And correct the last cycle of potential jitter !: // Raster is now completely stable! (Line 0x007 cycle 7) }}
|
|
// Stabilize the raster by using the double IRQ method
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// Set-up IRQ for the next line
|
|
inc RASTER
|
|
// Point IRQ to almost stable code
|
|
lda #<stable
|
|
sta HARDWARE_IRQ
|
|
lda #>stable
|
|
sta HARDWARE_IRQ+1
|
|
tsx // Save stack pointer
|
|
cli // Reenable interrupts
|
|
// Wait for new IRQ using NOP's to ensure minimal jitter when it hits
|
|
.fill 15, NOP
|
|
.align $20
|
|
stable:
|
|
txs // Restore stack pointer
|
|
ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles)
|
|
!: dex
|
|
bne !-
|
|
nop
|
|
lda RASTER
|
|
cmp RASTER
|
|
bne !+ // And correct the last cycle of potential jitter
|
|
!:
|
|
// Raster is now completely stable! (Line 0x007 cycle 7)
|
|
|
|
// asm { jsrRASTER_CODE }
|
|
jsr RASTER_CODE
|
|
// [66] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
// Move sprites back to the top
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y
|
|
// [67] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y
|
|
// [68] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y
|
|
// [69] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y
|
|
// [70] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y
|
|
// [71] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y
|
|
// [72] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y
|
|
// [73] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y
|
|
// [74] phi from irq_screen_top to irq_screen_top::toD0181 [phi:irq_screen_top->irq_screen_top::toD0181]
|
|
toD0181_from_irq_screen_top:
|
|
jmp toD0181
|
|
// irq_screen_top::toD0181
|
|
toD0181:
|
|
jmp __b5
|
|
// irq_screen_top::@5
|
|
__b5:
|
|
// [75] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = irq_screen_top::toD0181_return#0 -- _deref_pbuc1=vbuc2
|
|
// Select first screen (graphics bank not important since layout in the banks is identical)
|
|
lda #toD0181_return
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY
|
|
// [76] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc -- _deref_pbuc1=vbuz1
|
|
// Set the top sprites color/MC
|
|
lda.z top_sprites_mc
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC
|
|
// [77] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR) = top_sprites_color -- _deref_pbuc1=vbuz1
|
|
lda.z top_sprites_color
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR
|
|
// [78] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR) = top_sprites_color -- _deref_pbuc1=vbuz1
|
|
lda.z top_sprites_color
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR
|
|
// [79] irq_screen_top::$1 = frame + 1 -- vbuaa=vbuz1_plus_1
|
|
lda.z frame
|
|
clc
|
|
adc #1
|
|
// [80] irq_screen_top::$2 = irq_screen_top::$1 & 1 -- vbuaa=vbuaa_band_vbuc1
|
|
and #1
|
|
// [81] frame = irq_screen_top::$2 -- vbuz1=vbuaa
|
|
// Move to next frame
|
|
sta.z frame
|
|
// [82] if(0!=frame) goto irq_screen_top::toDd001 -- 0_neq_vbuz1_then_la1
|
|
lda.z frame
|
|
bne toDd001_from___b5
|
|
// [83] phi from irq_screen_top::@5 to irq_screen_top::toDd002 [phi:irq_screen_top::@5->irq_screen_top::toDd002]
|
|
toDd002_from___b5:
|
|
jmp toDd002
|
|
// irq_screen_top::toDd002
|
|
toDd002:
|
|
jmp __b7
|
|
// irq_screen_top::@7
|
|
__b7:
|
|
// [84] *((char *)CIA2) = irq_screen_top::toDd002_return#0 -- _deref_pbuc1=vbuc2
|
|
// Change graphics bank
|
|
lda #toDd002_return
|
|
sta CIA2
|
|
// [85] canvas_base_hi = byte1 SPRITES_2 -- vbuz1=vbuc1
|
|
// Set the next canvas base address
|
|
lda #>SPRITES_2
|
|
sta.z canvas_base_hi
|
|
// [86] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE -- vbuz1=vbuc1
|
|
lda #NUM_BOBS*SIZE_BOB_RESTORE
|
|
sta.z bobs_restore_base
|
|
jmp __b1
|
|
// irq_screen_top::@1
|
|
__b1:
|
|
// [87] if(phase==0) goto irq_screen_top::@2 -- vbuz1_eq_0_then_la1
|
|
lda.z phase
|
|
beq __b2
|
|
// [88] phi from irq_screen_top::@1 to irq_screen_top::@4 [phi:irq_screen_top::@1->irq_screen_top::@4]
|
|
__b4_from___b1:
|
|
jmp __b4
|
|
// irq_screen_top::@4
|
|
__b4:
|
|
// [89] call game_logic
|
|
// Game phase
|
|
// Perform game logic
|
|
jsr game_logic
|
|
// [90] phi from irq_screen_top::@4 to irq_screen_top::@8 [phi:irq_screen_top::@4->irq_screen_top::@8]
|
|
__b8_from___b4:
|
|
jmp __b8
|
|
// irq_screen_top::@8
|
|
__b8:
|
|
// [91] call pacman_sound_play
|
|
// Play sounds
|
|
jsr pacman_sound_play
|
|
jmp __b3
|
|
// irq_screen_top::@3
|
|
__b3:
|
|
// [92] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS
|
|
// [93] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE -- _deref_pbuc1=vbuc2
|
|
// Trigger IRQ at screen top again
|
|
lda #IRQ_SCREEN_TOP_LINE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
// [94] *HARDWARE_IRQ = &irq_screen_top -- _deref_qprc1=pprc2
|
|
lda #<irq_screen_top
|
|
sta HARDWARE_IRQ
|
|
lda #>irq_screen_top
|
|
sta HARDWARE_IRQ+1
|
|
jmp __breturn
|
|
// irq_screen_top::@return
|
|
__breturn:
|
|
// [95] return
|
|
// interrupt(isr_hardware_clobber_exit) -- isr_hardware_all_exit
|
|
rega:
|
|
lda #0
|
|
regx:
|
|
ldx #0
|
|
regy:
|
|
ldy #0
|
|
rti
|
|
// irq_screen_top::@2
|
|
__b2:
|
|
// [96] music_play_next = 1 -- vbuz1=vbuc1
|
|
// intro phase
|
|
// Play intro music
|
|
lda #1
|
|
sta.z music_play_next
|
|
jmp __b3
|
|
// [97] phi from irq_screen_top::@5 to irq_screen_top::toDd001 [phi:irq_screen_top::@5->irq_screen_top::toDd001]
|
|
toDd001_from___b5:
|
|
jmp toDd001
|
|
// irq_screen_top::toDd001
|
|
toDd001:
|
|
jmp __b6
|
|
// irq_screen_top::@6
|
|
__b6:
|
|
// [98] *((char *)CIA2) = irq_screen_top::toDd001_return#0 -- _deref_pbuc1=vbuc2
|
|
// Change graphics bank
|
|
lda #toDd001_return
|
|
sta CIA2
|
|
// [99] canvas_base_hi = byte1 SPRITES_1 -- vbuz1=vbuc1
|
|
// Set the next canvas base address
|
|
lda #>SPRITES_1
|
|
sta.z canvas_base_hi
|
|
// [100] bobs_restore_base = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z bobs_restore_base
|
|
jmp __b1
|
|
}
|
|
// main
|
|
main: {
|
|
// [102] call splash_run
|
|
// Show the splash screen
|
|
// [509] phi from main to splash_run [phi:main->splash_run]
|
|
splash_run_from_main:
|
|
jsr splash_run
|
|
// [103] phi from main main::@2 to main::@1 [phi:main/main::@2->main::@1]
|
|
__b1_from_main:
|
|
__b1_from___b2:
|
|
jmp __b1
|
|
// main::@1
|
|
__b1:
|
|
// [104] call gameplay_run
|
|
// Run the gameplay
|
|
// [616] phi from main::@1 to gameplay_run [phi:main::@1->gameplay_run]
|
|
gameplay_run_from___b1:
|
|
jsr gameplay_run
|
|
// [105] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
|
|
__b2_from___b1:
|
|
jmp __b2
|
|
// main::@2
|
|
__b2:
|
|
// [106] call done_run
|
|
// Show victory or game over image
|
|
jsr done_run
|
|
jmp __b1_from___b2
|
|
}
|
|
// game_logic
|
|
// Perform game logic such as moving pacman and ghosts
|
|
game_logic: {
|
|
.label __67 = $45
|
|
.label __71 = $45
|
|
.label __210 = $22
|
|
.label ghost_frame_idx = $4a
|
|
.label pacman_xtile = $49
|
|
.label ytiles = $45
|
|
.label ghost4_xtile = $33
|
|
.label ghost4_ytile = $34
|
|
.label target_ytile = $27
|
|
.label ghost3_xtile = $5b
|
|
.label ghost3_ytile = $34
|
|
.label target_ytile1 = $27
|
|
.label ghost2_xtile = $5c
|
|
.label ghost2_ytile = $34
|
|
.label target_ytile2 = $27
|
|
.label ghost1_xtile = $5d
|
|
.label ghost1_ytile = $34
|
|
.label target_ytile3 = $27
|
|
// [107] if(game_playable!=0) goto game_logic::@1 -- vbuz1_neq_0_then_la1
|
|
lda.z game_playable
|
|
bne __b1
|
|
jmp __breturn
|
|
// game_logic::@return
|
|
__breturn:
|
|
// [108] return
|
|
rts
|
|
// game_logic::@1
|
|
__b1:
|
|
// [109] game_logic::$2 = game_logic_substep + 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z game_logic_substep
|
|
inx
|
|
// [110] game_logic::$3 = game_logic::$2 & 7 -- vbuaa=vbuxx_band_vbuc1
|
|
txa
|
|
and #7
|
|
// [111] game_logic_substep = game_logic::$3 -- vbuz1=vbuaa
|
|
// Move to next sub-step
|
|
sta.z game_logic_substep
|
|
// [112] if(game_logic_substep==0) goto game_logic::@2 -- vbuz1_eq_0_then_la1
|
|
lda.z game_logic_substep
|
|
beq __b2
|
|
jmp __b8
|
|
// game_logic::@8
|
|
__b8:
|
|
// [113] if(game_logic_substep==1) goto game_logic::@3 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp.z game_logic_substep
|
|
beq __b3
|
|
jmp __b9
|
|
// game_logic::@9
|
|
__b9:
|
|
// [114] if(game_logic_substep==2) goto game_logic::@4 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #2
|
|
cmp.z game_logic_substep
|
|
beq __b4
|
|
jmp __b10
|
|
// game_logic::@10
|
|
__b10:
|
|
// [115] if(game_logic_substep==4) goto game_logic::@5 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #4
|
|
cmp.z game_logic_substep
|
|
beq __b5
|
|
jmp __b11
|
|
// game_logic::@11
|
|
__b11:
|
|
// [116] if(game_logic_substep==5) goto game_logic::@6 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #5
|
|
cmp.z game_logic_substep
|
|
beq __b6
|
|
jmp __b12
|
|
// game_logic::@12
|
|
__b12:
|
|
// [117] if(game_logic_substep==6) goto game_logic::@7 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #6
|
|
cmp.z game_logic_substep
|
|
beq __b7
|
|
jmp __b13
|
|
// game_logic::@13
|
|
__b13:
|
|
// [118] if(game_logic_substep==3) goto game_logic::@14 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #3
|
|
cmp.z game_logic_substep
|
|
beq __b14
|
|
jmp __b161
|
|
// game_logic::@161
|
|
__b161:
|
|
// [119] if(game_logic_substep==7) goto game_logic::@14 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #7
|
|
cmp.z game_logic_substep
|
|
beq __b14
|
|
jmp __breturn
|
|
// game_logic::@14
|
|
__b14:
|
|
// [120] game_logic::$14 = anim_frame_idx + 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z anim_frame_idx
|
|
inx
|
|
// [121] game_logic::$15 = game_logic::$14 & 3 -- vbuaa=vbuxx_band_vbuc1
|
|
txa
|
|
and #3
|
|
// [122] anim_frame_idx = game_logic::$15 -- vbuz1=vbuaa
|
|
// Update animation and bobs
|
|
sta.z anim_frame_idx
|
|
// [123] game_logic::pacman_bob_xfine#0 = pacman_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z pacman_xfine
|
|
tay
|
|
dey
|
|
// [124] game_logic::$17 = game_logic::pacman_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// [125] *bobs_xcol = game_logic::$17 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol
|
|
// [126] game_logic::$18 = pacman_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z pacman_yfine
|
|
dex
|
|
// [127] *bobs_yfine = game_logic::$18 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine
|
|
// [128] game_logic::$19 = pacman_direction | anim_frame_idx -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z pacman_direction
|
|
ora.z anim_frame_idx
|
|
tax
|
|
// [129] game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// [130] game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc pacman_frames,x
|
|
// [131] *bobs_bob_id = game_logic::$21 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id
|
|
// [132] game_logic::ghost_frame_idx#0 = anim_frame_idx -- vbuz1=vbuz2
|
|
lda.z anim_frame_idx
|
|
sta.z ghost_frame_idx
|
|
// [133] if(ghosts_mode!=FRIGHTENED) goto game_logic::@44 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
bne __b44_from___b14
|
|
jmp __b15
|
|
// game_logic::@15
|
|
__b15:
|
|
// [134] game_logic::ghost_frame_idx#1 = game_logic::ghost_frame_idx#0 | $40 -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #$40
|
|
ora.z ghost_frame_idx
|
|
sta.z ghost_frame_idx
|
|
// [135] phi from game_logic::@14 game_logic::@15 to game_logic::@44 [phi:game_logic::@14/game_logic::@15->game_logic::@44]
|
|
__b44_from___b14:
|
|
__b44_from___b15:
|
|
// [135] phi game_logic::ghost_frame_idx#2 = game_logic::ghost_frame_idx#0 [phi:game_logic::@14/game_logic::@15->game_logic::@44#0] -- register_copy
|
|
jmp __b44
|
|
// game_logic::@44
|
|
__b44:
|
|
// [136] game_logic::ghost1_bob_xfine#0 = ghost1_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost1_xfine
|
|
tay
|
|
dey
|
|
// [137] game_logic::$25 = game_logic::ghost1_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// [138] *(bobs_xcol+1) = game_logic::$25 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+1
|
|
// [139] game_logic::$26 = ghost1_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost1_yfine
|
|
dex
|
|
// [140] *(bobs_yfine+1) = game_logic::$26 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+1
|
|
// [141] game_logic::$27 = ghost1_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost1_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// [142] game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// [143] game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// [144] *(bobs_bob_id+1) = game_logic::$29 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+1
|
|
// [145] game_logic::ghost2_bob_xfine#0 = ghost2_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost2_xfine
|
|
tay
|
|
dey
|
|
// [146] game_logic::$31 = game_logic::ghost2_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// [147] *(bobs_xcol+2) = game_logic::$31 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+2
|
|
// [148] game_logic::$32 = ghost2_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost2_yfine
|
|
dex
|
|
// [149] *(bobs_yfine+2) = game_logic::$32 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+2
|
|
// [150] game_logic::$33 = ghost2_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost2_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// [151] game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// [152] game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// [153] *(bobs_bob_id+2) = game_logic::$35 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+2
|
|
// [154] game_logic::ghost3_bob_xfine#0 = ghost3_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost3_xfine
|
|
tay
|
|
dey
|
|
// [155] game_logic::$37 = game_logic::ghost3_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// [156] *(bobs_xcol+3) = game_logic::$37 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+3
|
|
// [157] game_logic::$38 = ghost3_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost3_yfine
|
|
dex
|
|
// [158] *(bobs_yfine+3) = game_logic::$38 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+3
|
|
// [159] game_logic::$39 = ghost3_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost3_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// [160] game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// [161] game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// [162] *(bobs_bob_id+3) = game_logic::$41 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+3
|
|
// [163] game_logic::ghost4_bob_xfine#0 = ghost4_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost4_xfine
|
|
tay
|
|
dey
|
|
// [164] game_logic::$43 = game_logic::ghost4_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// [165] *(bobs_xcol+4) = game_logic::$43 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+4
|
|
// [166] game_logic::$44 = ghost4_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost4_yfine
|
|
dex
|
|
// [167] *(bobs_yfine+4) = game_logic::$44 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+4
|
|
// [168] game_logic::$45 = ghost4_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost4_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// [169] game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// [170] game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// [171] *(bobs_bob_id+4) = game_logic::$47 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+4
|
|
jmp __breturn
|
|
// game_logic::@7
|
|
__b7:
|
|
// [172] ghosts_mode_count = ++ ghosts_mode_count -- vbuz1=_inc_vbuz1
|
|
inc.z ghosts_mode_count
|
|
// [173] if(ghosts_mode==SCATTER) goto game_logic::@45 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b45
|
|
jmp __b16
|
|
// game_logic::@16
|
|
__b16:
|
|
// [174] if(ghosts_mode==CHASE) goto game_logic::@46 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #CHASE
|
|
cmp.z ghosts_mode
|
|
beq __b46
|
|
jmp __b17
|
|
// game_logic::@17
|
|
__b17:
|
|
// [175] if(ghosts_mode!=FRIGHTENED) goto game_logic::@47 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
bne __b47_from___b17
|
|
jmp __b18
|
|
// game_logic::@18
|
|
__b18:
|
|
// [176] if(ghosts_mode_count<$32+1) goto game_logic::@47 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ghosts_mode_count
|
|
cmp #$32+1
|
|
bcc __b47_from___b18
|
|
jmp __b19
|
|
// game_logic::@19
|
|
__b19:
|
|
// [177] ghosts_mode = CHASE -- vbuz1=vbuc1
|
|
lda #CHASE
|
|
sta.z ghosts_mode
|
|
// [178] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
// [179] phi from game_logic::@19 game_logic::@58 game_logic::@59 to game_logic::@47 [phi:game_logic::@19/game_logic::@58/game_logic::@59->game_logic::@47]
|
|
__b47_from___b19:
|
|
__b47_from___b58:
|
|
__b47_from___b59:
|
|
// [179] phi game_logic::do_reverse#4 = 1 [phi:game_logic::@19/game_logic::@58/game_logic::@59->game_logic::@47#0] -- vbuaa=vbuc1
|
|
lda #1
|
|
jmp __b47
|
|
// [179] phi from game_logic::@17 game_logic::@18 game_logic::@45 game_logic::@46 to game_logic::@47 [phi:game_logic::@17/game_logic::@18/game_logic::@45/game_logic::@46->game_logic::@47]
|
|
__b47_from___b17:
|
|
__b47_from___b18:
|
|
__b47_from___b45:
|
|
__b47_from___b46:
|
|
// [179] phi game_logic::do_reverse#4 = 0 [phi:game_logic::@17/game_logic::@18/game_logic::@45/game_logic::@46->game_logic::@47#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
jmp __b47
|
|
// game_logic::@47
|
|
__b47:
|
|
// [180] if(0==game_logic::do_reverse#4) goto game_logic::@48 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b48
|
|
jmp __b60
|
|
// game_logic::@60
|
|
__b60:
|
|
// [181] ghost1_reverse = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost1_reverse
|
|
// [182] ghost2_reverse = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost2_reverse
|
|
// [183] ghost3_reverse = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost3_reverse
|
|
// [184] ghost4_reverse = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost4_reverse
|
|
jmp __b48
|
|
// game_logic::@48
|
|
__b48:
|
|
// [185] game_logic::pacman_xtile#0 = pacman_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine if pacman is on a pill tile - and handle it
|
|
lda.z pacman_xfine
|
|
lsr
|
|
sta.z pacman_xtile
|
|
// [186] game_logic::pacman_ytile#0 = pacman_yfine >> 1 -- vbuaa=vbuz1_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
// [187] game_logic::$210 = game_logic::pacman_ytile#0 << 1 -- vbuz1=vbuaa_rol_1
|
|
asl
|
|
sta.z __210
|
|
// [188] game_logic::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[game_logic::$210] -- pbuz1=pbuc1_plus_pwuc2_derefidx_vbuz2
|
|
ldy.z __210
|
|
clc
|
|
lda #<LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET,y
|
|
sta.z ytiles
|
|
lda #>LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET+1,y
|
|
sta.z ytiles+1
|
|
// [189] game_logic::tile_id#0 = game_logic::ytiles#0[game_logic::pacman_xtile#0] -- vbuxx=pbuz1_derefidx_vbuz2
|
|
ldy.z pacman_xtile
|
|
lda (ytiles),y
|
|
tax
|
|
// [190] if(TILES_TYPE[game_logic::tile_id#0]==PILL) goto game_logic::@49 -- pbuc1_derefidx_vbuxx_eq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #PILL
|
|
beq __b49
|
|
jmp __b61
|
|
// game_logic::@61
|
|
__b61:
|
|
// [191] if(TILES_TYPE[game_logic::tile_id#0]!=POWERUP) goto game_logic::@50 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #POWERUP
|
|
bne __b50
|
|
jmp __b62
|
|
// game_logic::@62
|
|
__b62:
|
|
// [192] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY -- pbuz1_derefidx_vbuz2=vbuc1
|
|
// Empty the tile
|
|
lda #EMPTY
|
|
ldy.z pacman_xtile
|
|
sta (ytiles),y
|
|
// [193] game_logic::$65 = game_logic::pacman_xtile#0 >> 1 -- vbuaa=vbuz1_ror_1
|
|
lda.z pacman_xtile
|
|
lsr
|
|
// [194] logic_tile_xcol = game_logic::$65 -- vbuz1=vbuaa
|
|
// Ask the logic code renderer to update the tile
|
|
sta.z logic_tile_xcol
|
|
// [195] game_logic::$66 = game_logic::pacman_xtile#0 & $fe -- vbuaa=vbuz1_band_vbuc1
|
|
lda #$fe
|
|
and.z pacman_xtile
|
|
// [196] game_logic::$67 = game_logic::ytiles#0 + game_logic::$66 -- pbuz1=pbuz1_plus_vbuaa
|
|
clc
|
|
adc.z __67
|
|
sta.z __67
|
|
bcc !+
|
|
inc.z __67+1
|
|
!:
|
|
// [197] logic_tile_ptr = game_logic::$67 -- pbuz1=pbuz2
|
|
lda.z __67
|
|
sta.z logic_tile_ptr
|
|
lda.z __67+1
|
|
sta.z logic_tile_ptr+1
|
|
// [198] game_logic::$68 = game_logic::$210 -- vbuaa=vbuz1
|
|
lda.z __210
|
|
// [199] logic_tile_yfine = game_logic::$68 -- vbuz1=vbuaa
|
|
sta.z logic_tile_yfine
|
|
// [200] ghosts_mode = FRIGHTENED -- vbuz1=vbuc1
|
|
// Start power-up mode
|
|
lda #FRIGHTENED
|
|
sta.z ghosts_mode
|
|
// [201] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
jmp __b50
|
|
// game_logic::@50
|
|
__b50:
|
|
// [202] game_logic::$75 = pacman_xfine - ghost1_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost1_xfine
|
|
tax
|
|
// [203] game_logic::$77 = pacman_yfine - ghost1_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost1_yfine
|
|
tay
|
|
// [204] if(ABS[game_logic::$75]>=2) goto game_logic::@64 -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
// Check if anyone dies
|
|
lda ABS,x
|
|
cmp #2
|
|
bcs __b64
|
|
jmp __b162
|
|
// game_logic::@162
|
|
__b162:
|
|
// [205] if(ABS[game_logic::$77]<2) goto game_logic::@51 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcc __b51
|
|
jmp __b64
|
|
// game_logic::@64
|
|
__b64:
|
|
// [206] game_logic::$80 = pacman_xfine - ghost2_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost2_xfine
|
|
tax
|
|
// [207] game_logic::$82 = pacman_yfine - ghost2_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost2_yfine
|
|
tay
|
|
// [208] if(ABS[game_logic::$80]>=2) goto game_logic::@65 -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
lda ABS,x
|
|
cmp #2
|
|
bcs __b65
|
|
jmp __b163
|
|
// game_logic::@163
|
|
__b163:
|
|
// [209] if(ABS[game_logic::$82]<2) goto game_logic::@52 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcc __b52
|
|
jmp __b65
|
|
// game_logic::@65
|
|
__b65:
|
|
// [210] game_logic::$85 = pacman_xfine - ghost3_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost3_xfine
|
|
tax
|
|
// [211] game_logic::$87 = pacman_yfine - ghost3_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost3_yfine
|
|
tay
|
|
// [212] if(ABS[game_logic::$85]>=2) goto game_logic::@66 -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
lda ABS,x
|
|
cmp #2
|
|
bcs __b66
|
|
jmp __b164
|
|
// game_logic::@164
|
|
__b164:
|
|
// [213] if(ABS[game_logic::$87]<2) goto game_logic::@53 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcc __b53
|
|
jmp __b66
|
|
// game_logic::@66
|
|
__b66:
|
|
// [214] game_logic::$90 = pacman_xfine - ghost4_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost4_xfine
|
|
tax
|
|
// [215] game_logic::$92 = pacman_yfine - ghost4_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost4_yfine
|
|
tay
|
|
// [216] if(ABS[game_logic::$90]>=2) goto game_logic::@return -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
lda ABS,x
|
|
cmp #2
|
|
bcs __breturn
|
|
jmp __b165
|
|
// game_logic::@165
|
|
__b165:
|
|
// [217] if(ABS[game_logic::$92]<2) goto game_logic::@67 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcc __b67
|
|
jmp __breturn
|
|
// game_logic::@67
|
|
__b67:
|
|
// [218] if(ghosts_mode==FRIGHTENED) goto game_logic::@54 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b54
|
|
jmp __b68
|
|
// game_logic::@68
|
|
__b68:
|
|
// [219] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// [220] call spawn_all
|
|
jsr spawn_all
|
|
jmp __breturn
|
|
// game_logic::@54
|
|
__b54:
|
|
// [221] ghost4_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost4_direction
|
|
// [222] ghost4_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost4_xfine
|
|
// [223] ghost4_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost4_yfine
|
|
// [224] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
// [225] ghost4_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost4_respawn
|
|
jmp __breturn
|
|
// game_logic::@53
|
|
__b53:
|
|
// [226] if(ghosts_mode==FRIGHTENED) goto game_logic::@55 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b55
|
|
jmp __b69
|
|
// game_logic::@69
|
|
__b69:
|
|
// [227] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// [228] call spawn_all
|
|
jsr spawn_all
|
|
jmp __breturn
|
|
// game_logic::@55
|
|
__b55:
|
|
// [229] ghost3_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost3_direction
|
|
// [230] ghost3_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost3_xfine
|
|
// [231] ghost3_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost3_yfine
|
|
// [232] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
// [233] ghost3_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost3_respawn
|
|
jmp __breturn
|
|
// game_logic::@52
|
|
__b52:
|
|
// [234] if(ghosts_mode==FRIGHTENED) goto game_logic::@56 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b56
|
|
jmp __b70
|
|
// game_logic::@70
|
|
__b70:
|
|
// [235] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// [236] call spawn_all
|
|
jsr spawn_all
|
|
jmp __breturn
|
|
// game_logic::@56
|
|
__b56:
|
|
// [237] ghost2_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost2_direction
|
|
// [238] ghost2_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost2_xfine
|
|
// [239] ghost2_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost2_yfine
|
|
// [240] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
// [241] ghost2_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost2_respawn
|
|
jmp __breturn
|
|
// game_logic::@51
|
|
__b51:
|
|
// [242] if(ghosts_mode==FRIGHTENED) goto game_logic::@57 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b57
|
|
jmp __b71
|
|
// game_logic::@71
|
|
__b71:
|
|
// [243] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// [244] call spawn_all
|
|
jsr spawn_all
|
|
jmp __breturn
|
|
// game_logic::@57
|
|
__b57:
|
|
// [245] ghost1_direction = STOP -- vbuz1=vbuc1
|
|
// ghost dies
|
|
lda #STOP
|
|
sta.z ghost1_direction
|
|
// [246] ghost1_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost1_xfine
|
|
// [247] ghost1_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost1_yfine
|
|
// [248] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
// [249] ghost1_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost1_respawn
|
|
jmp __breturn
|
|
// game_logic::@49
|
|
__b49:
|
|
// [250] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY -- pbuz1_derefidx_vbuz2=vbuc1
|
|
// Empty the tile
|
|
lda #EMPTY
|
|
ldy.z pacman_xtile
|
|
sta (ytiles),y
|
|
// [251] game_logic::$69 = game_logic::pacman_xtile#0 >> 1 -- vbuaa=vbuz1_ror_1
|
|
lda.z pacman_xtile
|
|
lsr
|
|
// [252] logic_tile_xcol = game_logic::$69 -- vbuz1=vbuaa
|
|
// Ask the logic code renderer to update the tile
|
|
sta.z logic_tile_xcol
|
|
// [253] game_logic::$70 = game_logic::pacman_xtile#0 & $fe -- vbuaa=vbuz1_band_vbuc1
|
|
lda #$fe
|
|
and.z pacman_xtile
|
|
// [254] game_logic::$71 = game_logic::ytiles#0 + game_logic::$70 -- pbuz1=pbuz1_plus_vbuaa
|
|
clc
|
|
adc.z __71
|
|
sta.z __71
|
|
bcc !+
|
|
inc.z __71+1
|
|
!:
|
|
// [255] logic_tile_ptr = game_logic::$71 -- pbuz1=pbuz2
|
|
lda.z __71
|
|
sta.z logic_tile_ptr
|
|
lda.z __71+1
|
|
sta.z logic_tile_ptr+1
|
|
// [256] game_logic::$72 = game_logic::$210 -- vbuaa=vbuz1
|
|
lda.z __210
|
|
// [257] logic_tile_yfine = game_logic::$72 -- vbuz1=vbuaa
|
|
sta.z logic_tile_yfine
|
|
// [258] pill_count = -- pill_count -- vwuz1=_dec_vwuz1
|
|
lda.z pill_count
|
|
bne !+
|
|
dec.z pill_count+1
|
|
!:
|
|
dec.z pill_count
|
|
// [259] if(pill_count!=0) goto game_logic::@50 -- vwuz1_neq_0_then_la1
|
|
lda.z pill_count
|
|
ora.z pill_count+1
|
|
bne __b50
|
|
jmp __b63
|
|
// game_logic::@63
|
|
__b63:
|
|
// [260] pacman_wins = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z pacman_wins
|
|
jmp __b50
|
|
// game_logic::@46
|
|
__b46:
|
|
// [261] if(ghosts_mode_count<$96+1) goto game_logic::@47 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ghosts_mode_count
|
|
cmp #$96+1
|
|
bcc __b47_from___b46
|
|
jmp __b58
|
|
// game_logic::@58
|
|
__b58:
|
|
// [262] ghosts_mode = SCATTER -- vbuz1=vbuc1
|
|
lda #SCATTER
|
|
sta.z ghosts_mode
|
|
// [263] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
jmp __b47_from___b58
|
|
// game_logic::@45
|
|
__b45:
|
|
// [264] if(ghosts_mode_count<$32+1) goto game_logic::@47 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ghosts_mode_count
|
|
cmp #$32+1
|
|
bcc __b47_from___b45
|
|
jmp __b59
|
|
// game_logic::@59
|
|
__b59:
|
|
// [265] ghosts_mode = CHASE -- vbuz1=vbuc1
|
|
lda #CHASE
|
|
sta.z ghosts_mode
|
|
// [266] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
jmp __b47_from___b59
|
|
// game_logic::@6
|
|
__b6:
|
|
// [267] if(0!=ghost4_respawn) goto game_logic::@72 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost4_respawn
|
|
bne __b72
|
|
jmp __b20
|
|
// game_logic::@20
|
|
__b20:
|
|
// [268] if(ghost4_direction==RIGHT) goto game_logic::@73 -- vbuz1_eq_vbuc1_then_la1
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost4_direction
|
|
beq __b73
|
|
jmp __b21
|
|
// game_logic::@21
|
|
__b21:
|
|
// [269] if(ghost4_direction==DOWN) goto game_logic::@74 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost4_direction
|
|
beq __b74
|
|
jmp __b22
|
|
// game_logic::@22
|
|
__b22:
|
|
// [270] if(ghost4_direction==LEFT) goto game_logic::@75 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost4_direction
|
|
beq __b75
|
|
jmp __b23
|
|
// game_logic::@23
|
|
__b23:
|
|
// [271] if(ghost4_direction!=UP) goto game_logic::@76 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost4_direction
|
|
bne __b76
|
|
jmp __b24
|
|
// game_logic::@24
|
|
__b24:
|
|
// [272] ghost4_yfine = -- ghost4_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost4_yfine
|
|
jmp __b76
|
|
// game_logic::@76
|
|
__b76:
|
|
// [273] game_logic::$220 = ghost4_direction -- vbuxx=vbuz1
|
|
ldx.z ghost4_direction
|
|
// [274] if(ghost4_substep!=0) goto game_logic::@82 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost4_substep
|
|
bne __b82
|
|
jmp __b166
|
|
// game_logic::@166
|
|
__b166:
|
|
// [275] if(game_logic::$220!=STOP) goto game_logic::@77 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b77
|
|
jmp __b82
|
|
// game_logic::@82
|
|
__b82:
|
|
// [276] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
// [277] if(0!=ghost4_reverse) goto game_logic::@78 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost4_reverse
|
|
bne __b78
|
|
jmp __b83
|
|
// game_logic::@83
|
|
__b83:
|
|
// [278] game_logic::ghost4_xtile#0 = ghost4_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost4_xfine
|
|
lsr
|
|
sta.z ghost4_xtile
|
|
// [279] game_logic::ghost4_ytile#0 = ghost4_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost4_yfine
|
|
lsr
|
|
sta.z ghost4_ytile
|
|
// [280] level_tile_directions::xtile#0 = game_logic::ghost4_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost4_xtile
|
|
// [281] level_tile_directions::ytile#0 = game_logic::ghost4_ytile#0 -- vbuaa=vbuz1
|
|
lda.z ghost4_ytile
|
|
// [282] call level_tile_directions
|
|
// [740] phi from game_logic::@83 to level_tile_directions [phi:game_logic::@83->level_tile_directions]
|
|
level_tile_directions_from___b83:
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#0 [phi:game_logic::@83->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#0 [phi:game_logic::@83->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// [283] level_tile_directions::return#3 = level_tile_directions::return#2
|
|
jmp __b152
|
|
// game_logic::@152
|
|
__b152:
|
|
// [284] game_logic::open_directions#0 = level_tile_directions::return#3
|
|
// [285] game_logic::open_directions#1 = game_logic::open_directions#0 & DIRECTION_ELIMINATE[ghost4_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost4_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// [286] if(ghosts_mode==FRIGHTENED) goto game_logic::@79 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b79
|
|
jmp __b84
|
|
// game_logic::@84
|
|
__b84:
|
|
// [287] if(ghosts_mode==SCATTER) goto game_logic::@80 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b80_from___b84
|
|
jmp __b85
|
|
// game_logic::@85
|
|
__b85:
|
|
// [288] game_logic::target_xtile#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// [289] game_logic::target_ytile#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile
|
|
// [290] phi from game_logic::@85 to game_logic::@80 [phi:game_logic::@85->game_logic::@80]
|
|
__b80_from___b85:
|
|
// [290] phi game_logic::target_ytile#3 = game_logic::target_ytile#2 [phi:game_logic::@85->game_logic::@80#0] -- register_copy
|
|
// [290] phi game_logic::target_xtile#3 = game_logic::target_xtile#2 [phi:game_logic::@85->game_logic::@80#1] -- register_copy
|
|
jmp __b80
|
|
// [290] phi from game_logic::@84 to game_logic::@80 [phi:game_logic::@84->game_logic::@80]
|
|
__b80_from___b84:
|
|
// [290] phi game_logic::target_ytile#3 = 2 [phi:game_logic::@84->game_logic::@80#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile
|
|
// [290] phi game_logic::target_xtile#3 = 2 [phi:game_logic::@84->game_logic::@80#1] -- vbuxx=vbuc1
|
|
ldx #2
|
|
jmp __b80
|
|
// game_logic::@80
|
|
__b80:
|
|
// [291] choose_direction::open_directions#0 = game_logic::open_directions#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [292] choose_direction::ghost_xtile#0 = game_logic::ghost4_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost4_xtile
|
|
// [293] choose_direction::ghost_ytile#0 = game_logic::ghost4_ytile#0
|
|
// [294] choose_direction::target_xtile#0 = game_logic::target_xtile#3
|
|
// [295] choose_direction::target_ytile#0 = game_logic::target_ytile#3
|
|
// [296] call choose_direction
|
|
// [748] phi from game_logic::@80 to choose_direction [phi:game_logic::@80->choose_direction]
|
|
choose_direction_from___b80:
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#0 [phi:game_logic::@80->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#0 [phi:game_logic::@80->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#0 [phi:game_logic::@80->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#0 [phi:game_logic::@80->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#0 [phi:game_logic::@80->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// [297] choose_direction::return#0 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
jmp __b153
|
|
// game_logic::@153
|
|
__b153:
|
|
// [298] game_logic::$119 = choose_direction::return#0
|
|
// [299] ghost4_direction = game_logic::$119 -- vbuz1=vbuaa
|
|
sta.z ghost4_direction
|
|
jmp __breturn
|
|
// game_logic::@79
|
|
__b79:
|
|
// [300] ghost4_direction = DIRECTION_SINGLE[game_logic::open_directions#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost4_direction
|
|
jmp __breturn
|
|
// game_logic::@78
|
|
__b78:
|
|
// [301] ghost4_direction = DIRECTION_REVERSE[ghost4_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost4_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost4_direction
|
|
// [302] ghost4_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_reverse
|
|
jmp __breturn
|
|
// game_logic::@77
|
|
__b77:
|
|
// [303] ghost4_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost4_substep
|
|
// [304] if(ghost4_xfine==1) goto game_logic::@81 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
lda #1
|
|
cmp.z ghost4_xfine
|
|
beq __b81
|
|
jmp __b86
|
|
// game_logic::@86
|
|
__b86:
|
|
// [305] if(ghost4_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost4_xfine
|
|
bne __breturn
|
|
jmp __b87
|
|
// game_logic::@87
|
|
__b87:
|
|
// [306] ghost4_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost4_xfine
|
|
jmp __breturn
|
|
// game_logic::@81
|
|
__b81:
|
|
// [307] ghost4_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost4_xfine
|
|
jmp __breturn
|
|
// game_logic::@75
|
|
__b75:
|
|
// [308] ghost4_xfine = -- ghost4_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost4_xfine
|
|
jmp __b76
|
|
// game_logic::@74
|
|
__b74:
|
|
// [309] ghost4_yfine = ++ ghost4_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost4_yfine
|
|
jmp __b76
|
|
// game_logic::@73
|
|
__b73:
|
|
// [310] ghost4_xfine = ++ ghost4_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost4_xfine
|
|
jmp __b76
|
|
// game_logic::@72
|
|
__b72:
|
|
// [311] ghost4_respawn = -- ghost4_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost4_respawn
|
|
// [312] if(ghost4_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost4_respawn
|
|
bne __breturn
|
|
jmp __b88
|
|
// game_logic::@88
|
|
__b88:
|
|
// [313] ghost4_direction = RIGHT -- vbuz1=vbuc1
|
|
// Spawn ghost
|
|
lda #RIGHT
|
|
sta.z ghost4_direction
|
|
// [314] ghost4_xfine = 2 -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z ghost4_xfine
|
|
// [315] ghost4_yfine = 2 -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z ghost4_yfine
|
|
// [316] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
jmp __breturn
|
|
// game_logic::@5
|
|
__b5:
|
|
// [317] if(0!=ghost3_respawn) goto game_logic::@89 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost3_respawn
|
|
bne __b89
|
|
jmp __b25
|
|
// game_logic::@25
|
|
__b25:
|
|
// [318] if(ghost3_direction==RIGHT) goto game_logic::@90 -- vbuz1_eq_vbuc1_then_la1
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost3_direction
|
|
beq __b90
|
|
jmp __b26
|
|
// game_logic::@26
|
|
__b26:
|
|
// [319] if(ghost3_direction==DOWN) goto game_logic::@91 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost3_direction
|
|
beq __b91
|
|
jmp __b27
|
|
// game_logic::@27
|
|
__b27:
|
|
// [320] if(ghost3_direction==LEFT) goto game_logic::@92 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost3_direction
|
|
beq __b92
|
|
jmp __b28
|
|
// game_logic::@28
|
|
__b28:
|
|
// [321] if(ghost3_direction!=UP) goto game_logic::@93 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost3_direction
|
|
bne __b93
|
|
jmp __b29
|
|
// game_logic::@29
|
|
__b29:
|
|
// [322] ghost3_yfine = -- ghost3_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost3_yfine
|
|
jmp __b93
|
|
// game_logic::@93
|
|
__b93:
|
|
// [323] game_logic::$223 = ghost3_direction -- vbuxx=vbuz1
|
|
ldx.z ghost3_direction
|
|
// [324] if(ghost3_substep!=0) goto game_logic::@99 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost3_substep
|
|
bne __b99
|
|
jmp __b167
|
|
// game_logic::@167
|
|
__b167:
|
|
// [325] if(game_logic::$223!=STOP) goto game_logic::@94 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b94
|
|
jmp __b99
|
|
// game_logic::@99
|
|
__b99:
|
|
// [326] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
// [327] if(0!=ghost3_reverse) goto game_logic::@95 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost3_reverse
|
|
bne __b95
|
|
jmp __b100
|
|
// game_logic::@100
|
|
__b100:
|
|
// [328] game_logic::ghost3_xtile#0 = ghost3_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost3_xfine
|
|
lsr
|
|
sta.z ghost3_xtile
|
|
// [329] game_logic::ghost3_ytile#0 = ghost3_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost3_yfine
|
|
lsr
|
|
sta.z ghost3_ytile
|
|
// [330] level_tile_directions::xtile#1 = game_logic::ghost3_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost3_xtile
|
|
// [331] level_tile_directions::ytile#1 = game_logic::ghost3_ytile#0 -- vbuaa=vbuz1
|
|
lda.z ghost3_ytile
|
|
// [332] call level_tile_directions
|
|
// [740] phi from game_logic::@100 to level_tile_directions [phi:game_logic::@100->level_tile_directions]
|
|
level_tile_directions_from___b100:
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#1 [phi:game_logic::@100->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#1 [phi:game_logic::@100->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// [333] level_tile_directions::return#10 = level_tile_directions::return#2
|
|
jmp __b154
|
|
// game_logic::@154
|
|
__b154:
|
|
// [334] game_logic::open_directions1#0 = level_tile_directions::return#10
|
|
// [335] game_logic::open_directions1#1 = game_logic::open_directions1#0 & DIRECTION_ELIMINATE[ghost3_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost3_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// [336] if(ghosts_mode==FRIGHTENED) goto game_logic::@96 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b96
|
|
jmp __b101
|
|
// game_logic::@101
|
|
__b101:
|
|
// [337] if(ghosts_mode==SCATTER) goto game_logic::@97 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b97_from___b101
|
|
jmp __b102
|
|
// game_logic::@102
|
|
__b102:
|
|
// [338] game_logic::target_xtile1#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// [339] game_logic::target_ytile1#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile1
|
|
// [340] phi from game_logic::@102 to game_logic::@97 [phi:game_logic::@102->game_logic::@97]
|
|
__b97_from___b102:
|
|
// [340] phi game_logic::target_ytile1#3 = game_logic::target_ytile1#2 [phi:game_logic::@102->game_logic::@97#0] -- register_copy
|
|
// [340] phi game_logic::target_xtile1#3 = game_logic::target_xtile1#2 [phi:game_logic::@102->game_logic::@97#1] -- register_copy
|
|
jmp __b97
|
|
// [340] phi from game_logic::@101 to game_logic::@97 [phi:game_logic::@101->game_logic::@97]
|
|
__b97_from___b101:
|
|
// [340] phi game_logic::target_ytile1#3 = 2 [phi:game_logic::@101->game_logic::@97#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile1
|
|
// [340] phi game_logic::target_xtile1#3 = 2 [phi:game_logic::@101->game_logic::@97#1] -- vbuxx=vbuc1
|
|
ldx #2
|
|
jmp __b97
|
|
// game_logic::@97
|
|
__b97:
|
|
// [341] choose_direction::open_directions#1 = game_logic::open_directions1#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [342] choose_direction::ghost_xtile#1 = game_logic::ghost3_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost3_xtile
|
|
// [343] choose_direction::ghost_ytile#1 = game_logic::ghost3_ytile#0
|
|
// [344] choose_direction::target_xtile#1 = game_logic::target_xtile1#3
|
|
// [345] choose_direction::target_ytile#1 = game_logic::target_ytile1#3
|
|
// [346] call choose_direction
|
|
// [748] phi from game_logic::@97 to choose_direction [phi:game_logic::@97->choose_direction]
|
|
choose_direction_from___b97:
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#1 [phi:game_logic::@97->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#1 [phi:game_logic::@97->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#1 [phi:game_logic::@97->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#1 [phi:game_logic::@97->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#1 [phi:game_logic::@97->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// [347] choose_direction::return#1 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
jmp __b155
|
|
// game_logic::@155
|
|
__b155:
|
|
// [348] game_logic::$140 = choose_direction::return#1
|
|
// [349] ghost3_direction = game_logic::$140 -- vbuz1=vbuaa
|
|
sta.z ghost3_direction
|
|
jmp __breturn
|
|
// game_logic::@96
|
|
__b96:
|
|
// [350] ghost3_direction = DIRECTION_SINGLE[game_logic::open_directions1#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost3_direction
|
|
jmp __breturn
|
|
// game_logic::@95
|
|
__b95:
|
|
// [351] ghost3_direction = DIRECTION_REVERSE[ghost3_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost3_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost3_direction
|
|
// [352] ghost3_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_reverse
|
|
jmp __breturn
|
|
// game_logic::@94
|
|
__b94:
|
|
// [353] ghost3_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost3_substep
|
|
// [354] if(ghost3_xfine==1) goto game_logic::@98 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
lda #1
|
|
cmp.z ghost3_xfine
|
|
beq __b98
|
|
jmp __b103
|
|
// game_logic::@103
|
|
__b103:
|
|
// [355] if(ghost3_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost3_xfine
|
|
bne __breturn
|
|
jmp __b104
|
|
// game_logic::@104
|
|
__b104:
|
|
// [356] ghost3_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost3_xfine
|
|
jmp __breturn
|
|
// game_logic::@98
|
|
__b98:
|
|
// [357] ghost3_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost3_xfine
|
|
jmp __breturn
|
|
// game_logic::@92
|
|
__b92:
|
|
// [358] ghost3_xfine = -- ghost3_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost3_xfine
|
|
jmp __b93
|
|
// game_logic::@91
|
|
__b91:
|
|
// [359] ghost3_yfine = ++ ghost3_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost3_yfine
|
|
jmp __b93
|
|
// game_logic::@90
|
|
__b90:
|
|
// [360] ghost3_xfine = ++ ghost3_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost3_xfine
|
|
jmp __b93
|
|
// game_logic::@89
|
|
__b89:
|
|
// [361] ghost3_respawn = -- ghost3_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost3_respawn
|
|
// [362] if(ghost3_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost3_respawn
|
|
bne __breturn
|
|
jmp __b105
|
|
// game_logic::@105
|
|
__b105:
|
|
// [363] ghost3_direction = UP -- vbuz1=vbuc1
|
|
// Spawn ghost
|
|
lda #UP
|
|
sta.z ghost3_direction
|
|
// [364] ghost3_xfine = 2 -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z ghost3_xfine
|
|
// [365] ghost3_yfine = $46 -- vbuz1=vbuc1
|
|
lda #$46
|
|
sta.z ghost3_yfine
|
|
// [366] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
jmp __breturn
|
|
// game_logic::@4
|
|
__b4:
|
|
// [367] if(0!=ghost2_respawn) goto game_logic::@106 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost2_respawn
|
|
bne __b106
|
|
jmp __b30
|
|
// game_logic::@30
|
|
__b30:
|
|
// [368] if(ghost2_direction==RIGHT) goto game_logic::@107 -- vbuz1_eq_vbuc1_then_la1
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost2_direction
|
|
beq __b107
|
|
jmp __b31
|
|
// game_logic::@31
|
|
__b31:
|
|
// [369] if(ghost2_direction==DOWN) goto game_logic::@108 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost2_direction
|
|
beq __b108
|
|
jmp __b32
|
|
// game_logic::@32
|
|
__b32:
|
|
// [370] if(ghost2_direction==LEFT) goto game_logic::@109 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost2_direction
|
|
beq __b109
|
|
jmp __b33
|
|
// game_logic::@33
|
|
__b33:
|
|
// [371] if(ghost2_direction!=UP) goto game_logic::@110 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost2_direction
|
|
bne __b110
|
|
jmp __b34
|
|
// game_logic::@34
|
|
__b34:
|
|
// [372] ghost2_yfine = -- ghost2_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost2_yfine
|
|
jmp __b110
|
|
// game_logic::@110
|
|
__b110:
|
|
// [373] game_logic::$226 = ghost2_direction -- vbuxx=vbuz1
|
|
ldx.z ghost2_direction
|
|
// [374] if(ghost2_substep!=0) goto game_logic::@116 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost2_substep
|
|
bne __b116
|
|
jmp __b168
|
|
// game_logic::@168
|
|
__b168:
|
|
// [375] if(game_logic::$226!=STOP) goto game_logic::@111 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b111
|
|
jmp __b116
|
|
// game_logic::@116
|
|
__b116:
|
|
// [376] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
// [377] if(0!=ghost2_reverse) goto game_logic::@112 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost2_reverse
|
|
bne __b112
|
|
jmp __b117
|
|
// game_logic::@117
|
|
__b117:
|
|
// [378] game_logic::ghost2_xtile#0 = ghost2_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost2_xfine
|
|
lsr
|
|
sta.z ghost2_xtile
|
|
// [379] game_logic::ghost2_ytile#0 = ghost2_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost2_yfine
|
|
lsr
|
|
sta.z ghost2_ytile
|
|
// [380] level_tile_directions::xtile#2 = game_logic::ghost2_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost2_xtile
|
|
// [381] level_tile_directions::ytile#2 = game_logic::ghost2_ytile#0 -- vbuaa=vbuz1
|
|
lda.z ghost2_ytile
|
|
// [382] call level_tile_directions
|
|
// [740] phi from game_logic::@117 to level_tile_directions [phi:game_logic::@117->level_tile_directions]
|
|
level_tile_directions_from___b117:
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#2 [phi:game_logic::@117->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#2 [phi:game_logic::@117->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// [383] level_tile_directions::return#11 = level_tile_directions::return#2
|
|
jmp __b156
|
|
// game_logic::@156
|
|
__b156:
|
|
// [384] game_logic::open_directions2#0 = level_tile_directions::return#11
|
|
// [385] game_logic::open_directions2#1 = game_logic::open_directions2#0 & DIRECTION_ELIMINATE[ghost2_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost2_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// [386] if(ghosts_mode==FRIGHTENED) goto game_logic::@113 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b113
|
|
jmp __b118
|
|
// game_logic::@118
|
|
__b118:
|
|
// [387] if(ghosts_mode==SCATTER) goto game_logic::@114 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b114_from___b118
|
|
jmp __b119
|
|
// game_logic::@119
|
|
__b119:
|
|
// [388] game_logic::target_xtile2#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// [389] game_logic::target_ytile2#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile2
|
|
// [390] phi from game_logic::@119 to game_logic::@114 [phi:game_logic::@119->game_logic::@114]
|
|
__b114_from___b119:
|
|
// [390] phi game_logic::target_ytile2#3 = game_logic::target_ytile2#2 [phi:game_logic::@119->game_logic::@114#0] -- register_copy
|
|
// [390] phi game_logic::target_xtile2#3 = game_logic::target_xtile2#2 [phi:game_logic::@119->game_logic::@114#1] -- register_copy
|
|
jmp __b114
|
|
// [390] phi from game_logic::@118 to game_logic::@114 [phi:game_logic::@118->game_logic::@114]
|
|
__b114_from___b118:
|
|
// [390] phi game_logic::target_ytile2#3 = 2 [phi:game_logic::@118->game_logic::@114#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile2
|
|
// [390] phi game_logic::target_xtile2#3 = 2 [phi:game_logic::@118->game_logic::@114#1] -- vbuxx=vbuc1
|
|
ldx #2
|
|
jmp __b114
|
|
// game_logic::@114
|
|
__b114:
|
|
// [391] choose_direction::open_directions#2 = game_logic::open_directions2#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [392] choose_direction::ghost_xtile#2 = game_logic::ghost2_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost2_xtile
|
|
// [393] choose_direction::ghost_ytile#2 = game_logic::ghost2_ytile#0
|
|
// [394] choose_direction::target_xtile#2 = game_logic::target_xtile2#3
|
|
// [395] choose_direction::target_ytile#2 = game_logic::target_ytile2#3
|
|
// [396] call choose_direction
|
|
// [748] phi from game_logic::@114 to choose_direction [phi:game_logic::@114->choose_direction]
|
|
choose_direction_from___b114:
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#2 [phi:game_logic::@114->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#2 [phi:game_logic::@114->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#2 [phi:game_logic::@114->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#2 [phi:game_logic::@114->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#2 [phi:game_logic::@114->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// [397] choose_direction::return#2 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
jmp __b157
|
|
// game_logic::@157
|
|
__b157:
|
|
// [398] game_logic::$161 = choose_direction::return#2
|
|
// [399] ghost2_direction = game_logic::$161 -- vbuz1=vbuaa
|
|
sta.z ghost2_direction
|
|
jmp __breturn
|
|
// game_logic::@113
|
|
__b113:
|
|
// [400] ghost2_direction = DIRECTION_SINGLE[game_logic::open_directions2#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost2_direction
|
|
jmp __breturn
|
|
// game_logic::@112
|
|
__b112:
|
|
// [401] ghost2_direction = DIRECTION_REVERSE[ghost2_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost2_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost2_direction
|
|
// [402] ghost2_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_reverse
|
|
jmp __breturn
|
|
// game_logic::@111
|
|
__b111:
|
|
// [403] ghost2_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost2_substep
|
|
// [404] if(ghost2_xfine==1) goto game_logic::@115 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
lda #1
|
|
cmp.z ghost2_xfine
|
|
beq __b115
|
|
jmp __b120
|
|
// game_logic::@120
|
|
__b120:
|
|
// [405] if(ghost2_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost2_xfine
|
|
bne __breturn
|
|
jmp __b121
|
|
// game_logic::@121
|
|
__b121:
|
|
// [406] ghost2_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost2_xfine
|
|
jmp __breturn
|
|
// game_logic::@115
|
|
__b115:
|
|
// [407] ghost2_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost2_xfine
|
|
jmp __breturn
|
|
// game_logic::@109
|
|
__b109:
|
|
// [408] ghost2_xfine = -- ghost2_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost2_xfine
|
|
jmp __b110
|
|
// game_logic::@108
|
|
__b108:
|
|
// [409] ghost2_yfine = ++ ghost2_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost2_yfine
|
|
jmp __b110
|
|
// game_logic::@107
|
|
__b107:
|
|
// [410] ghost2_xfine = ++ ghost2_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost2_xfine
|
|
jmp __b110
|
|
// game_logic::@106
|
|
__b106:
|
|
// [411] ghost2_respawn = -- ghost2_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost2_respawn
|
|
// [412] if(ghost2_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost2_respawn
|
|
bne __breturn
|
|
jmp __b122
|
|
// game_logic::@122
|
|
__b122:
|
|
// [413] ghost2_direction = LEFT -- vbuz1=vbuc1
|
|
// Spawn ghost
|
|
lda #LEFT
|
|
sta.z ghost2_direction
|
|
// [414] ghost2_xfine = $60 -- vbuz1=vbuc1
|
|
lda #$60
|
|
sta.z ghost2_xfine
|
|
// [415] ghost2_yfine = $46 -- vbuz1=vbuc1
|
|
lda #$46
|
|
sta.z ghost2_yfine
|
|
// [416] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
jmp __breturn
|
|
// game_logic::@3
|
|
__b3:
|
|
// [417] if(0!=ghost1_respawn) goto game_logic::@123 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost1_respawn
|
|
bne __b123
|
|
jmp __b35
|
|
// game_logic::@35
|
|
__b35:
|
|
// [418] if(ghost1_direction==RIGHT) goto game_logic::@124 -- vbuz1_eq_vbuc1_then_la1
|
|
// Ghost 1 animation
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost1_direction
|
|
beq __b124
|
|
jmp __b36
|
|
// game_logic::@36
|
|
__b36:
|
|
// [419] if(ghost1_direction==DOWN) goto game_logic::@125 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost1_direction
|
|
beq __b125
|
|
jmp __b37
|
|
// game_logic::@37
|
|
__b37:
|
|
// [420] if(ghost1_direction==LEFT) goto game_logic::@126 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost1_direction
|
|
beq __b126
|
|
jmp __b38
|
|
// game_logic::@38
|
|
__b38:
|
|
// [421] if(ghost1_direction!=UP) goto game_logic::@127 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost1_direction
|
|
bne __b127
|
|
jmp __b39
|
|
// game_logic::@39
|
|
__b39:
|
|
// [422] ghost1_yfine = -- ghost1_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost1_yfine
|
|
jmp __b127
|
|
// game_logic::@127
|
|
__b127:
|
|
// [423] game_logic::$229 = ghost1_direction -- vbuxx=vbuz1
|
|
ldx.z ghost1_direction
|
|
// [424] if(ghost1_substep!=0) goto game_logic::@133 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost1_substep
|
|
bne __b133
|
|
jmp __b169
|
|
// game_logic::@169
|
|
__b169:
|
|
// [425] if(game_logic::$229!=STOP) goto game_logic::@128 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b128
|
|
jmp __b133
|
|
// game_logic::@133
|
|
__b133:
|
|
// [426] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
// [427] if(0!=ghost1_reverse) goto game_logic::@129 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost1_reverse
|
|
bne __b129
|
|
jmp __b134
|
|
// game_logic::@134
|
|
__b134:
|
|
// [428] game_logic::ghost1_xtile#0 = ghost1_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost1_xfine
|
|
lsr
|
|
sta.z ghost1_xtile
|
|
// [429] game_logic::ghost1_ytile#0 = ghost1_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost1_yfine
|
|
lsr
|
|
sta.z ghost1_ytile
|
|
// [430] level_tile_directions::xtile#3 = game_logic::ghost1_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost1_xtile
|
|
// [431] level_tile_directions::ytile#3 = game_logic::ghost1_ytile#0 -- vbuaa=vbuz1
|
|
lda.z ghost1_ytile
|
|
// [432] call level_tile_directions
|
|
// [740] phi from game_logic::@134 to level_tile_directions [phi:game_logic::@134->level_tile_directions]
|
|
level_tile_directions_from___b134:
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#3 [phi:game_logic::@134->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#3 [phi:game_logic::@134->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// [433] level_tile_directions::return#12 = level_tile_directions::return#2
|
|
jmp __b158
|
|
// game_logic::@158
|
|
__b158:
|
|
// [434] game_logic::open_directions3#0 = level_tile_directions::return#12
|
|
// [435] game_logic::open_directions3#1 = game_logic::open_directions3#0 & DIRECTION_ELIMINATE[ghost1_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost1_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// [436] if(ghosts_mode==FRIGHTENED) goto game_logic::@130 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b130
|
|
jmp __b135
|
|
// game_logic::@135
|
|
__b135:
|
|
// [437] if(ghosts_mode==SCATTER) goto game_logic::@131 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b131_from___b135
|
|
jmp __b136
|
|
// game_logic::@136
|
|
__b136:
|
|
// [438] game_logic::target_xtile3#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// [439] game_logic::target_ytile3#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile3
|
|
// [440] phi from game_logic::@136 to game_logic::@131 [phi:game_logic::@136->game_logic::@131]
|
|
__b131_from___b136:
|
|
// [440] phi game_logic::target_ytile3#3 = game_logic::target_ytile3#2 [phi:game_logic::@136->game_logic::@131#0] -- register_copy
|
|
// [440] phi game_logic::target_xtile3#3 = game_logic::target_xtile3#2 [phi:game_logic::@136->game_logic::@131#1] -- register_copy
|
|
jmp __b131
|
|
// [440] phi from game_logic::@135 to game_logic::@131 [phi:game_logic::@135->game_logic::@131]
|
|
__b131_from___b135:
|
|
// [440] phi game_logic::target_ytile3#3 = 2 [phi:game_logic::@135->game_logic::@131#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile3
|
|
// [440] phi game_logic::target_xtile3#3 = 2 [phi:game_logic::@135->game_logic::@131#1] -- vbuxx=vbuc1
|
|
ldx #2
|
|
jmp __b131
|
|
// game_logic::@131
|
|
__b131:
|
|
// [441] choose_direction::open_directions#3 = game_logic::open_directions3#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [442] choose_direction::ghost_xtile#3 = game_logic::ghost1_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost1_xtile
|
|
// [443] choose_direction::ghost_ytile#3 = game_logic::ghost1_ytile#0
|
|
// [444] choose_direction::target_xtile#3 = game_logic::target_xtile3#3
|
|
// [445] choose_direction::target_ytile#3 = game_logic::target_ytile3#3
|
|
// [446] call choose_direction
|
|
// [748] phi from game_logic::@131 to choose_direction [phi:game_logic::@131->choose_direction]
|
|
choose_direction_from___b131:
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#3 [phi:game_logic::@131->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#3 [phi:game_logic::@131->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#3 [phi:game_logic::@131->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#3 [phi:game_logic::@131->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#3 [phi:game_logic::@131->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// [447] choose_direction::return#3 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
jmp __b159
|
|
// game_logic::@159
|
|
__b159:
|
|
// [448] game_logic::$182 = choose_direction::return#3
|
|
// [449] ghost1_direction = game_logic::$182 -- vbuz1=vbuaa
|
|
sta.z ghost1_direction
|
|
jmp __breturn
|
|
// game_logic::@130
|
|
__b130:
|
|
// [450] ghost1_direction = DIRECTION_SINGLE[game_logic::open_directions3#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost1_direction
|
|
jmp __breturn
|
|
// game_logic::@129
|
|
__b129:
|
|
// [451] ghost1_direction = DIRECTION_REVERSE[ghost1_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost1_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost1_direction
|
|
// [452] ghost1_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_reverse
|
|
jmp __breturn
|
|
// game_logic::@128
|
|
__b128:
|
|
// [453] ghost1_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost1_substep
|
|
// [454] if(ghost1_xfine==1) goto game_logic::@132 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
lda #1
|
|
cmp.z ghost1_xfine
|
|
beq __b132
|
|
jmp __b137
|
|
// game_logic::@137
|
|
__b137:
|
|
// [455] if(ghost1_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost1_xfine
|
|
bne __breturn
|
|
jmp __b138
|
|
// game_logic::@138
|
|
__b138:
|
|
// [456] ghost1_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost1_xfine
|
|
jmp __breturn
|
|
// game_logic::@132
|
|
__b132:
|
|
// [457] ghost1_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost1_xfine
|
|
jmp __breturn
|
|
// game_logic::@126
|
|
__b126:
|
|
// [458] ghost1_xfine = -- ghost1_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost1_xfine
|
|
jmp __b127
|
|
// game_logic::@125
|
|
__b125:
|
|
// [459] ghost1_yfine = ++ ghost1_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost1_yfine
|
|
jmp __b127
|
|
// game_logic::@124
|
|
__b124:
|
|
// [460] ghost1_xfine = ++ ghost1_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost1_xfine
|
|
jmp __b127
|
|
// game_logic::@123
|
|
__b123:
|
|
// [461] ghost1_respawn = -- ghost1_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost1_respawn
|
|
// [462] if(ghost1_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost1_respawn
|
|
bne __breturn
|
|
jmp __b139
|
|
// game_logic::@139
|
|
__b139:
|
|
// [463] ghost1_direction = DOWN -- vbuz1=vbuc1
|
|
// Spawn ghost 1
|
|
lda #DOWN
|
|
sta.z ghost1_direction
|
|
// [464] ghost1_xfine = $60 -- vbuz1=vbuc1
|
|
lda #$60
|
|
sta.z ghost1_xfine
|
|
// [465] ghost1_yfine = 2 -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z ghost1_yfine
|
|
// [466] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
jmp __breturn
|
|
// game_logic::@2
|
|
__b2:
|
|
// [467] if(pacman_direction==RIGHT) goto game_logic::@140 -- vbuz1_eq_vbuc1_then_la1
|
|
// Animate pacman
|
|
// Move pacman in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z pacman_direction
|
|
beq __b140
|
|
jmp __b40
|
|
// game_logic::@40
|
|
__b40:
|
|
// [468] if(pacman_direction==DOWN) goto game_logic::@141 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z pacman_direction
|
|
beq __b141
|
|
jmp __b41
|
|
// game_logic::@41
|
|
__b41:
|
|
// [469] if(pacman_direction==LEFT) goto game_logic::@142 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z pacman_direction
|
|
beq __b142
|
|
jmp __b42
|
|
// game_logic::@42
|
|
__b42:
|
|
// [470] if(pacman_direction!=UP) goto game_logic::@143 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z pacman_direction
|
|
bne __b143
|
|
jmp __b43
|
|
// game_logic::@43
|
|
__b43:
|
|
// [471] pacman_yfine = -- pacman_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_yfine
|
|
jmp __b143
|
|
// game_logic::@143
|
|
__b143:
|
|
// [472] game_logic::$232 = pacman_direction -- vbuxx=vbuz1
|
|
ldx.z pacman_direction
|
|
// [473] if(pacman_substep!=0) goto game_logic::@147 -- vbuz1_neq_0_then_la1
|
|
lda.z pacman_substep
|
|
bne __b147
|
|
jmp __b170
|
|
// game_logic::@170
|
|
__b170:
|
|
// [474] if(game_logic::$232!=STOP) goto game_logic::@144 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b144
|
|
jmp __b147
|
|
// game_logic::@147
|
|
__b147:
|
|
// [475] pacman_substep = 0 -- vbuz1=vbuc1
|
|
// Pacman is on a (new) tile
|
|
lda #0
|
|
sta.z pacman_substep
|
|
// [476] game_logic::pacman_xtile1#0 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// [477] game_logic::pacman_ytile1#0 = pacman_yfine >> 1 -- vbuaa=vbuz1_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
// [478] level_tile_directions::xtile#4 = game_logic::pacman_xtile1#0
|
|
// [479] level_tile_directions::ytile#4 = game_logic::pacman_ytile1#0
|
|
// [480] call level_tile_directions
|
|
// [740] phi from game_logic::@147 to level_tile_directions [phi:game_logic::@147->level_tile_directions]
|
|
level_tile_directions_from___b147:
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#4 [phi:game_logic::@147->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#4 [phi:game_logic::@147->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// [481] level_tile_directions::return#13 = level_tile_directions::return#2
|
|
jmp __b160
|
|
// game_logic::@160
|
|
__b160:
|
|
// [482] game_logic::open_directions4#0 = level_tile_directions::return#13 -- vbuxx=vbuaa
|
|
tax
|
|
// [483] game_logic::$199 = *((char *)CIA1) & $f -- vbuaa=_deref_pbuc1_band_vbuc2
|
|
lda #$f
|
|
and CIA1
|
|
// [484] game_logic::$200 = game_logic::$199 ^ $f -- vbuaa=vbuaa_bxor_vbuc1
|
|
eor #$f
|
|
// [485] game_logic::joy_directions#0 = game_logic::$200 << 2 -- vbuaa=vbuaa_rol_2
|
|
// Read joystick#2 - arrange bits to match DIRECTION
|
|
asl
|
|
asl
|
|
// [486] if(game_logic::joy_directions#0==0) goto game_logic::@145 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq __b145
|
|
jmp __b148
|
|
// game_logic::@148
|
|
__b148:
|
|
// [487] game_logic::$204 = game_logic::joy_directions#0 & game_logic::open_directions4#0 -- vbuaa=vbuaa_band_vbuxx
|
|
stx.z $ff
|
|
and.z $ff
|
|
// [488] game_logic::new_direction#0 = DIRECTION_SINGLE[game_logic::$204] -- vbuaa=pbuc1_derefidx_vbuaa
|
|
tay
|
|
lda DIRECTION_SINGLE,y
|
|
// [489] if(game_logic::new_direction#0==0) goto game_logic::@145 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq __b145
|
|
jmp __b149
|
|
// game_logic::@149
|
|
__b149:
|
|
// [490] pacman_direction = game_logic::new_direction#0 -- vbuz1=vbuaa
|
|
sta.z pacman_direction
|
|
jmp __b145
|
|
// game_logic::@145
|
|
__b145:
|
|
// [491] pacman_direction = pacman_direction & game_logic::open_directions4#0 -- vbuz1=vbuz1_band_vbuxx
|
|
// Stop pacman if the current direction is no longer open
|
|
lda.z pacman_direction
|
|
sax.z pacman_direction
|
|
jmp __breturn
|
|
// game_logic::@144
|
|
__b144:
|
|
// [492] pacman_substep = 1 -- vbuz1=vbuc1
|
|
// Pacman was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z pacman_substep
|
|
// [493] pacman_ch1_enabled = 1 -- vbuz1=vbuc1
|
|
// Enable the eating sound whenever pacman is moving
|
|
lda #1
|
|
sta.z pacman_ch1_enabled
|
|
// [494] if(pacman_xfine==1) goto game_logic::@146 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
lda #1
|
|
cmp.z pacman_xfine
|
|
beq __b146
|
|
jmp __b150
|
|
// game_logic::@150
|
|
__b150:
|
|
// [495] if(pacman_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z pacman_xfine
|
|
bne __breturn
|
|
jmp __b151
|
|
// game_logic::@151
|
|
__b151:
|
|
// [496] pacman_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z pacman_xfine
|
|
jmp __breturn
|
|
// game_logic::@146
|
|
__b146:
|
|
// [497] pacman_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z pacman_xfine
|
|
jmp __breturn
|
|
// game_logic::@142
|
|
__b142:
|
|
// [498] pacman_xfine = -- pacman_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_xfine
|
|
jmp __b143
|
|
// game_logic::@141
|
|
__b141:
|
|
// [499] pacman_yfine = ++ pacman_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z pacman_yfine
|
|
jmp __b143
|
|
// game_logic::@140
|
|
__b140:
|
|
// [500] pacman_xfine = ++ pacman_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z pacman_xfine
|
|
jmp __b143
|
|
}
|
|
// pacman_sound_play
|
|
pacman_sound_play: {
|
|
// [501] if(0==pacman_ch1_enabled) goto pacman_sound_play::@return -- 0_eq_vbuz1_then_la1
|
|
lda.z pacman_ch1_enabled
|
|
beq __breturn
|
|
jmp __b1
|
|
// pacman_sound_play::@1
|
|
__b1:
|
|
// [502] *SID_CH1_FREQ_HI = PACMAN_CH1_FREQ_HI[pacman_ch1_idx] -- _deref_pbuc1=pbuc2_derefidx_vbuz1
|
|
// Play the entire sound - and then reset and disable it
|
|
ldy.z pacman_ch1_idx
|
|
lda PACMAN_CH1_FREQ_HI,y
|
|
sta SID_CH1_FREQ_HI
|
|
// [503] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = PACMAN_CH1_CONTROL[pacman_ch1_idx] -- _deref_pbuc1=pbuc2_derefidx_vbuz1
|
|
ldy.z pacman_ch1_idx
|
|
lda PACMAN_CH1_CONTROL,y
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL
|
|
// [504] pacman_ch1_idx = ++ pacman_ch1_idx -- vbuz1=_inc_vbuz1
|
|
inc.z pacman_ch1_idx
|
|
// [505] if(pacman_ch1_idx!=$16*SIZEOF_CHAR) goto pacman_sound_play::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$16*SIZEOF_CHAR
|
|
cmp.z pacman_ch1_idx
|
|
bne __breturn
|
|
jmp __b2
|
|
// pacman_sound_play::@2
|
|
__b2:
|
|
// [506] pacman_ch1_idx = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_ch1_idx
|
|
// [507] pacman_ch1_enabled = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_ch1_enabled
|
|
jmp __breturn
|
|
// pacman_sound_play::@return
|
|
__breturn:
|
|
// [508] return
|
|
rts
|
|
}
|
|
// splash_run
|
|
// Initializes all data for the splash and shows the splash.
|
|
// Returns when the splash is complete and the user clicks the joystidk #2 button
|
|
splash_run: {
|
|
.const toDd001_return = 3^(>SCREENS_1)/$40
|
|
.const toD0181_return = 0
|
|
.label xpos = 5
|
|
.label i = $14
|
|
jmp SEI1
|
|
// splash_run::SEI1
|
|
SEI1:
|
|
// asm { sei }
|
|
sei
|
|
jmp __b18
|
|
// splash_run::@18
|
|
__b18:
|
|
// [511] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2
|
|
// Disable CIA 1 Timer IRQ
|
|
lda #CIA_INTERRUPT_CLEAR
|
|
sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT
|
|
// [512] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2
|
|
// Disable kernal & basic & IO
|
|
lda #PROCPORT_DDR_MEMORY_MASK
|
|
sta.z PROCPORT_DDR
|
|
// [513] *PROCPORT = PROCPORT_RAM_ALL -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_ALL
|
|
sta.z PROCPORT
|
|
// [514] call memset
|
|
// Reset memory to avoid crashes
|
|
// [778] phi from splash_run::@18 to memset [phi:splash_run::@18->memset]
|
|
memset_from___b18:
|
|
// [778] phi memset::str#6 = (void *)(char *) 16384 [phi:splash_run::@18->memset#0] -- pvoz1=pvoc1
|
|
lda #<$4000
|
|
sta.z memset.str
|
|
lda #>$4000
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $c00 [phi:splash_run::@18->memset#1] -- vwuz1=vwuc1
|
|
lda #<$c00
|
|
sta.z memset.num
|
|
lda #>$c00
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
jmp __b22
|
|
// splash_run::@22
|
|
__b22:
|
|
// [515] byteboozer_decrunch::crunched = RASTER_CODE_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<RASTER_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>RASTER_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [516] call byteboozer_decrunch
|
|
// Decrunch raster code
|
|
jsr byteboozer_decrunch
|
|
jmp __b23
|
|
// splash_run::@23
|
|
__b23:
|
|
// [517] byteboozer_decrunch::crunched = LOGIC_CODE_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<LOGIC_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>LOGIC_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [518] call byteboozer_decrunch
|
|
// Decrunch logic code
|
|
jsr byteboozer_decrunch
|
|
// [519] phi from splash_run::@23 to splash_run::@24 [phi:splash_run::@23->splash_run::@24]
|
|
__b24_from___b23:
|
|
jmp __b24
|
|
// splash_run::@24
|
|
__b24:
|
|
// [520] call merge_code
|
|
// Merge the raster with the logic-code
|
|
// [789] phi from splash_run::@24 to merge_code [phi:splash_run::@24->merge_code]
|
|
merge_code_from___b24:
|
|
jsr merge_code
|
|
// [521] phi from splash_run::@24 to splash_run::@25 [phi:splash_run::@24->splash_run::@25]
|
|
__b25_from___b24:
|
|
jmp __b25
|
|
// splash_run::@25
|
|
__b25:
|
|
// [522] call memset
|
|
// Clear the graphics banks
|
|
// [778] phi from splash_run::@25 to memset [phi:splash_run::@25->memset]
|
|
memset_from___b25:
|
|
// [778] phi memset::str#6 = (void *)BANK_1+$2000 [phi:splash_run::@25->memset#0] -- pvoz1=pvoc1
|
|
lda #<BANK_1+$2000
|
|
sta.z memset.str
|
|
lda #>BANK_1+$2000
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $1fff [phi:splash_run::@25->memset#1] -- vwuz1=vwuc1
|
|
lda #<$1fff
|
|
sta.z memset.num
|
|
lda #>$1fff
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// [523] phi from splash_run::@25 to splash_run::@26 [phi:splash_run::@25->splash_run::@26]
|
|
__b26_from___b25:
|
|
jmp __b26
|
|
// splash_run::@26
|
|
__b26:
|
|
// [524] call memset
|
|
// [778] phi from splash_run::@26 to memset [phi:splash_run::@26->memset]
|
|
memset_from___b26:
|
|
// [778] phi memset::str#6 = (void *)BANK_2 [phi:splash_run::@26->memset#0] -- pvoz1=pvoc1
|
|
lda #<BANK_2
|
|
sta.z memset.str
|
|
lda #>BANK_2
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $3fff [phi:splash_run::@26->memset#1] -- vwuz1=vwuc1
|
|
lda #<$3fff
|
|
sta.z memset.num
|
|
lda #>$3fff
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// [525] phi from splash_run::@26 to splash_run::@27 [phi:splash_run::@26->splash_run::@27]
|
|
__b27_from___b26:
|
|
jmp __b27
|
|
// splash_run::@27
|
|
__b27:
|
|
// [526] call init_render_index
|
|
// Initialize the renderer tables
|
|
// [836] phi from splash_run::@27 to init_render_index [phi:splash_run::@27->init_render_index]
|
|
init_render_index_from___b27:
|
|
jsr init_render_index
|
|
jmp __b28
|
|
// splash_run::@28
|
|
__b28:
|
|
// [527] byteboozer_decrunch::crunched = SPLASH_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<SPLASH_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>SPLASH_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [528] call byteboozer_decrunch
|
|
// decrunch splash screen
|
|
jsr byteboozer_decrunch
|
|
// [529] phi from splash_run::@28 to splash_run::@29 [phi:splash_run::@28->splash_run::@29]
|
|
__b29_from___b28:
|
|
jmp __b29
|
|
// splash_run::@29
|
|
__b29:
|
|
// [530] call splash_show
|
|
// Show the splash screen
|
|
// [867] phi from splash_run::@29 to splash_show [phi:splash_run::@29->splash_show]
|
|
splash_show_from___b29:
|
|
jsr splash_show
|
|
// [531] phi from splash_run::@29 to splash_run::@30 [phi:splash_run::@29->splash_run::@30]
|
|
__b30_from___b29:
|
|
jmp __b30
|
|
// splash_run::@30
|
|
__b30:
|
|
// [532] call memset
|
|
// Clear the graphics bank
|
|
// [778] phi from splash_run::@30 to memset [phi:splash_run::@30->memset]
|
|
memset_from___b30:
|
|
// [778] phi memset::str#6 = (void *)BANK_1 [phi:splash_run::@30->memset#0] -- pvoz1=pvoc1
|
|
lda #<BANK_1
|
|
sta.z memset.str
|
|
lda #>BANK_1
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $1fff [phi:splash_run::@30->memset#1] -- vwuz1=vwuc1
|
|
lda #<$1fff
|
|
sta.z memset.num
|
|
lda #>$1fff
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// [533] phi from splash_run::@30 to splash_run::@31 [phi:splash_run::@30->splash_run::@31]
|
|
__b31_from___b30:
|
|
jmp __b31
|
|
// splash_run::@31
|
|
__b31:
|
|
// [534] call init_bobs_restore
|
|
// Initialize bobs_restore to "safe" values
|
|
// [881] phi from splash_run::@31 to init_bobs_restore [phi:splash_run::@31->init_bobs_restore]
|
|
init_bobs_restore_from___b31:
|
|
jsr init_bobs_restore
|
|
jmp __b32
|
|
// splash_run::@32
|
|
__b32:
|
|
// [535] byteboozer_decrunch::crunched = BOB_GRAPHICS_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<BOB_GRAPHICS_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>BOB_GRAPHICS_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [536] call byteboozer_decrunch
|
|
// decrunch bobs graphics tables
|
|
jsr byteboozer_decrunch
|
|
// [537] phi from splash_run::@32 to splash_run::@33 [phi:splash_run::@32->splash_run::@33]
|
|
__b33_from___b32:
|
|
jmp __b33
|
|
// splash_run::@33
|
|
__b33:
|
|
// [538] call init_sprite_pointers
|
|
// Set sprite pointers on all screens (in both graphics banks)
|
|
// [898] phi from splash_run::@33 to init_sprite_pointers [phi:splash_run::@33->init_sprite_pointers]
|
|
init_sprite_pointers_from___b33:
|
|
jsr init_sprite_pointers
|
|
// [539] phi from splash_run::@33 to splash_run::@34 [phi:splash_run::@33->splash_run::@34]
|
|
__b34_from___b33:
|
|
jmp __b34
|
|
// splash_run::@34
|
|
__b34:
|
|
// [540] call memcpy
|
|
// Move the crunched music to upper memory before decrunching it
|
|
// [912] phi from splash_run::@34 to memcpy [phi:splash_run::@34->memcpy]
|
|
memcpy_from___b34:
|
|
jsr memcpy
|
|
jmp __b35
|
|
// splash_run::@35
|
|
__b35:
|
|
// [541] byteboozer_decrunch::crunched = INTRO_MUSIC_CRUNCHED_UPPER -- pbuz1=pbuc1
|
|
lda #<INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [542] call byteboozer_decrunch
|
|
// zero-fill the entire Init segment
|
|
//memset(LEVEL_TILES_CRUNCHED, 0, INTRO_MUSIC_CRUNCHED+INTRO_MUSIC_CRUNCHED_SIZE-LEVEL_TILES_CRUNCHED);
|
|
// decrunch intro music
|
|
jsr byteboozer_decrunch
|
|
// [543] phi from splash_run::@35 to splash_run::@36 [phi:splash_run::@35->splash_run::@36]
|
|
__b36_from___b35:
|
|
jmp __b36
|
|
// splash_run::@36
|
|
__b36:
|
|
// [544] call memset
|
|
// Zero-fill the upper memory
|
|
// [778] phi from splash_run::@36 to memset [phi:splash_run::@36->memset]
|
|
memset_from___b36:
|
|
// [778] phi memset::str#6 = (void *)INTRO_MUSIC_CRUNCHED_UPPER [phi:splash_run::@36->memset#0] -- pvoz1=pvoc1
|
|
lda #<INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z memset.str
|
|
lda #>INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = INTRO_MUSIC_CRUNCHED_SIZE [phi:splash_run::@36->memset#1] -- vwuz1=vwuc1
|
|
lda #<INTRO_MUSIC_CRUNCHED_SIZE
|
|
sta.z memset.num
|
|
lda #>INTRO_MUSIC_CRUNCHED_SIZE
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
jmp __b37
|
|
// splash_run::@37
|
|
__b37:
|
|
// [545] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2
|
|
// Disable kernal & basic - enable IO
|
|
lda #PROCPORT_DDR_MEMORY_MASK
|
|
sta.z PROCPORT_DDR
|
|
// [546] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_IO
|
|
sta.z PROCPORT
|
|
// [547] phi from splash_run::@37 to splash_run::@2 [phi:splash_run::@37->splash_run::@2]
|
|
__b2_from___b37:
|
|
// [547] phi splash_run::msb#10 = 0 [phi:splash_run::@37->splash_run::@2#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [547] phi splash_run::i#2 = 0 [phi:splash_run::@37->splash_run::@2#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z i
|
|
jmp __b2
|
|
// splash_run::@2
|
|
__b2:
|
|
// [548] if(splash_run::i#2<8) goto splash_run::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z i
|
|
cmp #8
|
|
bcc __b3
|
|
// [549] phi from splash_run::@2 to splash_run::toDd001 [phi:splash_run::@2->splash_run::toDd001]
|
|
toDd001_from___b2:
|
|
jmp toDd001
|
|
// splash_run::toDd001
|
|
toDd001:
|
|
jmp __b19
|
|
// splash_run::@19
|
|
__b19:
|
|
// [550] *((char *)CIA2) = splash_run::toDd001_return#0 -- _deref_pbuc1=vbuc2
|
|
// Set initial graphics bank
|
|
lda #toDd001_return
|
|
sta CIA2
|
|
// [551] canvas_base_hi = byte1 SPRITES_2 -- vbuz1=vbuc1
|
|
// Set initial render/restore buffer
|
|
lda #>SPRITES_2
|
|
sta.z canvas_base_hi
|
|
// [552] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE -- vbuz1=vbuc1
|
|
lda #NUM_BOBS*SIZE_BOB_RESTORE
|
|
sta.z bobs_restore_base
|
|
// [553] phi from splash_run::@19 to splash_run::toD0181 [phi:splash_run::@19->splash_run::toD0181]
|
|
toD0181_from___b19:
|
|
jmp toD0181
|
|
// splash_run::toD0181
|
|
toD0181:
|
|
jmp __b20
|
|
// splash_run::@20
|
|
__b20:
|
|
// [554] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = splash_run::toD0181_return#0 -- _deref_pbuc1=vbuc2
|
|
// Select first screen
|
|
lda #toD0181_return
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY
|
|
// [555] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB) = splash_run::msb#10 -- _deref_pbuc1=vbuxx
|
|
stx VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB
|
|
// [556] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff -- _deref_pbuc1=vbuc2
|
|
lda #$ff
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE
|
|
// [557] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = $ff -- _deref_pbuc1=vbuc2
|
|
lda #$ff
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X
|
|
// [558] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2
|
|
lda #BLACK
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR
|
|
// [559] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK -- _deref_pbuc1=vbuc2
|
|
lda #BLACK
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR
|
|
// [560] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE -- _deref_pbuc1=vbuc2
|
|
lda #BLUE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1
|
|
// [561] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED -- _deref_pbuc1=vbuc2
|
|
lda #RED
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2
|
|
// [562] top_sprites_mc = 3 -- vbuz1=vbuc1
|
|
// On the splash screen sprites all sprites are SC - except sprite #0,1 on the top/bottom of the screen
|
|
lda #3
|
|
sta.z top_sprites_mc
|
|
// [563] side_sprites_mc = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z side_sprites_mc
|
|
// [564] bottom_sprites_mc = 3 -- vbuz1=vbuc1
|
|
lda #3
|
|
sta.z bottom_sprites_mc
|
|
// [565] top_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
// On the splash top/bottom sc-sprites are yellow and side-sprites are blue
|
|
lda #YELLOW
|
|
sta.z top_sprites_color
|
|
// [566] side_sprites_color = BLUE -- vbuz1=vbuc1
|
|
lda #BLUE
|
|
sta.z side_sprites_color
|
|
// [567] bottom_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
lda #YELLOW
|
|
sta.z bottom_sprites_color
|
|
// [568] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc -- _deref_pbuc1=vbuz1
|
|
// Set the initial top colors/MC
|
|
lda.z top_sprites_mc
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC
|
|
// [569] phi from splash_run::@20 to splash_run::@6 [phi:splash_run::@20->splash_run::@6]
|
|
__b6_from___b20:
|
|
// [569] phi splash_run::i1#2 = 0 [phi:splash_run::@20->splash_run::@6#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b6
|
|
// Set initial Sprite Color
|
|
// splash_run::@6
|
|
__b6:
|
|
// [570] if(splash_run::i1#2<8) goto splash_run::@7 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #8
|
|
bcc __b7
|
|
jmp __b8
|
|
// splash_run::@8
|
|
__b8:
|
|
// [571] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 8 -- _deref_pbuc1=vbuc2
|
|
// Set VICII CONTROL2 ($d016) to 8 to allow ASL, LSR to be used for opening the border
|
|
lda #8
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2
|
|
// [572] phi from splash_run::@8 to splash_run::@9 [phi:splash_run::@8->splash_run::@9]
|
|
__b9_from___b8:
|
|
// [572] phi splash_run::i2#2 = 0 [phi:splash_run::@8->splash_run::@9#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b9
|
|
// Move the bobs to the center to avoid interference while rendering the level
|
|
// splash_run::@9
|
|
__b9:
|
|
// [573] if(splash_run::i2#2<4) goto splash_run::@10 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #4
|
|
bcc __b10
|
|
jmp __b11
|
|
// splash_run::@11
|
|
__b11:
|
|
// asm { lda#1 staINTRO_MUSIC+$69 }
|
|
// Disable SID CH#3
|
|
lda #1
|
|
sta INTRO_MUSIC+$69
|
|
// asm { lda#0 }
|
|
// Init music
|
|
lda #0
|
|
// [576] callexecute *musicInit -- call__deref_pprc1
|
|
jsr musicInit
|
|
jmp __b1
|
|
// splash_run::@1
|
|
__b1:
|
|
// [577] phase = 0 -- vbuz1=vbuc1
|
|
// Set phase to intro
|
|
lda #0
|
|
sta.z phase
|
|
// [578] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM -- _deref_pbuc1=vbuc2
|
|
// Start a hyperscreen with no badlines and open borders
|
|
// Set screen height to 25 lines (preparing for the hyperscreen), enable display
|
|
// Set an illegal mode to prevent any character graphics
|
|
lda #VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
jmp __b12
|
|
// Wait for line 0xfa (lower border)
|
|
// splash_run::@12
|
|
__b12:
|
|
// [579] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto splash_run::@12 -- _deref_pbuc1_neq_vbuc2_then_la1
|
|
lda #$fa
|
|
cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
bne __b12
|
|
jmp __b13
|
|
// splash_run::@13
|
|
__b13:
|
|
// [580] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN -- _deref_pbuc1=_deref_pbuc1_band_vbuc2
|
|
// Open lower/upper border using RSEL - and disable all graphics (except sprites)
|
|
// Set up RASTER IRQ to start at irq_screen_top() (RST8=0)
|
|
lda #(VICII_RST8|VICII_RSEL|VICII_DEN)^$ff
|
|
and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
// [581] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE -- _deref_pbuc1=vbuc2
|
|
lda #IRQ_SCREEN_TOP_LINE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
// [582] *HARDWARE_IRQ = &irq_screen_top -- _deref_qprc1=pprc2
|
|
lda #<irq_screen_top
|
|
sta HARDWARE_IRQ
|
|
lda #>irq_screen_top
|
|
sta HARDWARE_IRQ+1
|
|
// [583] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Enable Raster Interrupt
|
|
lda #IRQ_RASTER
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE
|
|
// asm { ldaCIA1_INTERRUPT }
|
|
// Acknowledge any timer IRQ
|
|
lda CIA1_INTERRUPT
|
|
// [585] *IRQ_STATUS = $f -- _deref_pbuc1=vbuc2
|
|
// Acknowledge any VIC IRQ
|
|
lda #$f
|
|
sta IRQ_STATUS
|
|
jmp CLI1
|
|
// splash_run::CLI1
|
|
CLI1:
|
|
// asm { cli }
|
|
cli
|
|
// [587] phi from splash_run::CLI1 to splash_run::@21 [phi:splash_run::CLI1->splash_run::@21]
|
|
__b21_from_CLI1:
|
|
jmp __b21
|
|
// splash_run::@21
|
|
__b21:
|
|
// [588] call joyinit
|
|
// Prepare for joystick control
|
|
jsr joyinit
|
|
jmp __b38
|
|
// splash_run::@38
|
|
__b38:
|
|
// [589] music_play_next = 0 -- vbuz1=vbuc1
|
|
// Wait for fire
|
|
lda #0
|
|
sta.z music_play_next
|
|
// [590] phi from splash_run::@15 splash_run::@16 splash_run::@38 to splash_run::@14 [phi:splash_run::@15/splash_run::@16/splash_run::@38->splash_run::@14]
|
|
__b14_from___b15:
|
|
__b14_from___b16:
|
|
__b14_from___b38:
|
|
jmp __b14
|
|
// splash_run::@14
|
|
__b14:
|
|
// [591] call joyfire
|
|
jsr joyfire
|
|
// [592] joyfire::return#1 = joyfire::return#4
|
|
jmp __b39
|
|
// splash_run::@39
|
|
__b39:
|
|
// [593] splash_run::$30 = joyfire::return#1
|
|
// [594] if(0==splash_run::$30) goto splash_run::@15 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b15
|
|
jmp __breturn
|
|
// splash_run::@return
|
|
__breturn:
|
|
// [595] return
|
|
rts
|
|
// splash_run::@15
|
|
__b15:
|
|
// [596] if(0==music_play_next) goto splash_run::@14 -- 0_eq_vbuz1_then_la1
|
|
lda.z music_play_next
|
|
beq __b14_from___b15
|
|
// [597] phi from splash_run::@15 to splash_run::@17 [phi:splash_run::@15->splash_run::@17]
|
|
__b17_from___b15:
|
|
jmp __b17
|
|
// splash_run::@17
|
|
__b17:
|
|
// [598] callexecute *musicPlay -- call__deref_pprc1
|
|
//VICII->BG_COLOR=1;
|
|
jsr musicPlay
|
|
jmp __b16
|
|
// splash_run::@16
|
|
__b16:
|
|
// [599] music_play_next = 0 -- vbuz1=vbuc1
|
|
//VICII->BG_COLOR=0;
|
|
lda #0
|
|
sta.z music_play_next
|
|
jmp __b14_from___b16
|
|
// splash_run::@10
|
|
__b10:
|
|
// [600] bobs_xcol[splash_run::i2#2] = $a -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$a
|
|
sta bobs_xcol,x
|
|
// [601] bobs_yfine[splash_run::i2#2] = $2d -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$2d
|
|
sta bobs_yfine,x
|
|
// [602] bobs_bob_id[splash_run::i2#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta bobs_bob_id,x
|
|
// [603] splash_run::i2#1 = ++ splash_run::i2#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [572] phi from splash_run::@10 to splash_run::@9 [phi:splash_run::@10->splash_run::@9]
|
|
__b9_from___b10:
|
|
// [572] phi splash_run::i2#2 = splash_run::i2#1 [phi:splash_run::@10->splash_run::@9#0] -- register_copy
|
|
jmp __b9
|
|
// splash_run::@7
|
|
__b7:
|
|
// [604] SPRITES_COLOR[splash_run::i1#2] = top_sprites_color -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z top_sprites_color
|
|
sta SPRITES_COLOR,x
|
|
// [605] splash_run::i1#1 = ++ splash_run::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [569] phi from splash_run::@7 to splash_run::@6 [phi:splash_run::@7->splash_run::@6]
|
|
__b6_from___b7:
|
|
// [569] phi splash_run::i1#2 = splash_run::i1#1 [phi:splash_run::@7->splash_run::@6#0] -- register_copy
|
|
jmp __b6
|
|
// splash_run::@3
|
|
__b3:
|
|
// [606] splash_run::$34 = splash_run::i#2 << 1 -- vbuyy=vbuz1_rol_1
|
|
lda.z i
|
|
asl
|
|
tay
|
|
// [607] SPRITES_YPOS[splash_run::$34] = 7 -- pbuc1_derefidx_vbuyy=vbuc2
|
|
lda #7
|
|
sta SPRITES_YPOS,y
|
|
// [608] splash_run::xpos#0 = splash_run::sprites_xpos[splash_run::$34] -- vwuz1=pwuc1_derefidx_vbuyy
|
|
lda sprites_xpos,y
|
|
sta.z xpos
|
|
lda sprites_xpos+1,y
|
|
sta.z xpos+1
|
|
// [609] SPRITES_XPOS[splash_run::$34] = (char)splash_run::xpos#0 -- pbuc1_derefidx_vbuyy=_byte_vwuz1
|
|
lda.z xpos
|
|
sta SPRITES_XPOS,y
|
|
// [610] splash_run::msb#1 = splash_run::msb#10 >> 1 -- vbuxx=vbuxx_ror_1
|
|
txa
|
|
lsr
|
|
tax
|
|
// [611] splash_run::$25 = byte1 splash_run::xpos#0 -- vbuaa=_byte1_vwuz1
|
|
lda.z xpos+1
|
|
// [612] if(0==splash_run::$25) goto splash_run::@4 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b4_from___b3
|
|
jmp __b5
|
|
// splash_run::@5
|
|
__b5:
|
|
// [613] splash_run::msb#2 = splash_run::msb#1 | $80 -- vbuxx=vbuxx_bor_vbuc1
|
|
txa
|
|
ora #$80
|
|
tax
|
|
// [614] phi from splash_run::@3 splash_run::@5 to splash_run::@4 [phi:splash_run::@3/splash_run::@5->splash_run::@4]
|
|
__b4_from___b3:
|
|
__b4_from___b5:
|
|
// [614] phi splash_run::msb#8 = splash_run::msb#1 [phi:splash_run::@3/splash_run::@5->splash_run::@4#0] -- register_copy
|
|
jmp __b4
|
|
// splash_run::@4
|
|
__b4:
|
|
// [615] splash_run::i#1 = ++ splash_run::i#2 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [547] phi from splash_run::@4 to splash_run::@2 [phi:splash_run::@4->splash_run::@2]
|
|
__b2_from___b4:
|
|
// [547] phi splash_run::msb#10 = splash_run::msb#8 [phi:splash_run::@4->splash_run::@2#0] -- register_copy
|
|
// [547] phi splash_run::i#2 = splash_run::i#1 [phi:splash_run::@4->splash_run::@2#1] -- register_copy
|
|
jmp __b2
|
|
.segment Data
|
|
// Sprite positions
|
|
sprites_xpos: .word $1e7, $13f, $10f, $df, $af, $7f, $4f, $1f
|
|
}
|
|
.segment Code
|
|
// gameplay_run
|
|
// Initialize all data for gameplay and runs the game.
|
|
// Exits when the user has won or lost
|
|
gameplay_run: {
|
|
.label __4 = 9
|
|
jmp SEI1
|
|
// gameplay_run::SEI1
|
|
SEI1:
|
|
// asm { sei }
|
|
sei
|
|
// [618] phi from gameplay_run::SEI1 to gameplay_run::@1 [phi:gameplay_run::SEI1->gameplay_run::@1]
|
|
__b1_from_SEI1:
|
|
// [618] phi gameplay_run::i#2 = 0 [phi:gameplay_run::SEI1->gameplay_run::@1#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b1
|
|
// Stop any sound
|
|
// gameplay_run::@1
|
|
__b1:
|
|
// [619] if(gameplay_run::i#2<$2f) goto gameplay_run::@2 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$2f
|
|
bcc __b2
|
|
jmp __b3
|
|
// gameplay_run::@3
|
|
__b3:
|
|
// [620] pacman_wins = 0 -- vbuz1=vbuc1
|
|
// Pacman has not won yet
|
|
lda #0
|
|
sta.z pacman_wins
|
|
// [621] pacman_lives = 3 -- vbuz1=vbuc1
|
|
// Pacman has 3 lives
|
|
lda #3
|
|
sta.z pacman_lives
|
|
// [622] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLACK -- _deref_pbuc1=vbuc2
|
|
// During transition all sprites are black
|
|
lda #BLACK
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1
|
|
// [623] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = BLACK -- _deref_pbuc1=vbuc2
|
|
lda #BLACK
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2
|
|
// [624] phi from gameplay_run::@3 to gameplay_run::@4 [phi:gameplay_run::@3->gameplay_run::@4]
|
|
__b4_from___b3:
|
|
// [624] phi gameplay_run::i1#2 = 0 [phi:gameplay_run::@3->gameplay_run::@4#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b4
|
|
// gameplay_run::@4
|
|
__b4:
|
|
// [625] if(gameplay_run::i1#2<8) goto gameplay_run::@5 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #8
|
|
bcc __b5
|
|
jmp __b6
|
|
// gameplay_run::@6
|
|
__b6:
|
|
// [626] byteboozer_decrunch::crunched = LEVEL_TILES_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<LEVEL_TILES_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>LEVEL_TILES_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [627] call byteboozer_decrunch
|
|
// decrunch level tiles
|
|
jsr byteboozer_decrunch
|
|
// [628] phi from gameplay_run::@6 to gameplay_run::@14 [phi:gameplay_run::@6->gameplay_run::@14]
|
|
__b14_from___b6:
|
|
jmp __b14
|
|
// gameplay_run::@14
|
|
__b14:
|
|
// [629] call init_level_tile_directions
|
|
// Initialize tile directions
|
|
// [926] phi from gameplay_run::@14 to init_level_tile_directions [phi:gameplay_run::@14->init_level_tile_directions]
|
|
init_level_tile_directions_from___b14:
|
|
jsr init_level_tile_directions
|
|
// [630] phi from gameplay_run::@14 to gameplay_run::@15 [phi:gameplay_run::@14->gameplay_run::@15]
|
|
__b15_from___b14:
|
|
jmp __b15
|
|
// gameplay_run::@15
|
|
__b15:
|
|
// [631] call init_sprite_pointers
|
|
// Set sprite pointers on all screens (in both graphics banks)
|
|
// [898] phi from gameplay_run::@15 to init_sprite_pointers [phi:gameplay_run::@15->init_sprite_pointers]
|
|
init_sprite_pointers_from___b15:
|
|
jsr init_sprite_pointers
|
|
// [632] phi from gameplay_run::@15 to gameplay_run::@16 [phi:gameplay_run::@15->gameplay_run::@16]
|
|
__b16_from___b15:
|
|
jmp __b16
|
|
// gameplay_run::@16
|
|
__b16:
|
|
// [633] call level_show
|
|
// [968] phi from gameplay_run::@16 to level_show [phi:gameplay_run::@16->level_show]
|
|
level_show_from___b16:
|
|
jsr level_show
|
|
// [634] level_show::return#0 = level_show::count#12
|
|
jmp __b17
|
|
// gameplay_run::@17
|
|
__b17:
|
|
// [635] gameplay_run::$4 = level_show::return#0
|
|
// [636] pill_count = gameplay_run::$4 -- vwuz1=vwuz2
|
|
// Show the level
|
|
lda.z __4
|
|
sta.z pill_count
|
|
lda.z __4+1
|
|
sta.z pill_count+1
|
|
// [637] top_sprites_mc = $ff -- vbuz1=vbuc1
|
|
// During gameplay all sprites are MC.
|
|
lda #$ff
|
|
sta.z top_sprites_mc
|
|
// [638] side_sprites_mc = $ff -- vbuz1=vbuc1
|
|
lda #$ff
|
|
sta.z side_sprites_mc
|
|
// [639] bottom_sprites_mc = $ff -- vbuz1=vbuc1
|
|
lda #$ff
|
|
sta.z bottom_sprites_mc
|
|
// [640] top_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
// During gameplay all sprites are yellow
|
|
lda #YELLOW
|
|
sta.z top_sprites_color
|
|
// [641] side_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
lda #YELLOW
|
|
sta.z side_sprites_color
|
|
// [642] bottom_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
lda #YELLOW
|
|
sta.z bottom_sprites_color
|
|
// [643] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc -- _deref_pbuc1=vbuz1
|
|
// Set the initial top colors/MC
|
|
lda.z top_sprites_mc
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC
|
|
// [644] phi from gameplay_run::@17 to gameplay_run::@7 [phi:gameplay_run::@17->gameplay_run::@7]
|
|
__b7_from___b17:
|
|
// [644] phi gameplay_run::i2#2 = 0 [phi:gameplay_run::@17->gameplay_run::@7#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b7
|
|
// Set initial Sprite Color
|
|
// gameplay_run::@7
|
|
__b7:
|
|
// [645] if(gameplay_run::i2#2<8) goto gameplay_run::@8 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #8
|
|
bcc __b8
|
|
jmp __b9
|
|
// gameplay_run::@9
|
|
__b9:
|
|
// [646] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE -- _deref_pbuc1=vbuc2
|
|
// Set sprite MC-colors for the game
|
|
lda #BLUE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1
|
|
// [647] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED -- _deref_pbuc1=vbuc2
|
|
lda #RED
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2
|
|
// [648] phase = 1 -- vbuz1=vbuc1
|
|
// Set phase to game
|
|
lda #1
|
|
sta.z phase
|
|
// [649] call spawn_all
|
|
// Spawn pacman and all ghosts
|
|
jsr spawn_all
|
|
// [650] phi from gameplay_run::@9 to gameplay_run::@18 [phi:gameplay_run::@9->gameplay_run::@18]
|
|
__b18_from___b9:
|
|
jmp __b18
|
|
// gameplay_run::@18
|
|
__b18:
|
|
// [651] call pacman_sound_init
|
|
// Initialize the game sound
|
|
jsr pacman_sound_init
|
|
jmp __b19
|
|
// gameplay_run::@19
|
|
__b19:
|
|
// [652] game_playable = 1 -- vbuz1=vbuc1
|
|
// Start the game play
|
|
lda #1
|
|
sta.z game_playable
|
|
// [653] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM -- _deref_pbuc1=vbuc2
|
|
// Turn on raster after transition
|
|
// Start a hyperscreen with no badlines and open borders
|
|
// Set screen height to 25 lines (preparing for the hyperscreen), enable display
|
|
lda #VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
jmp __b10
|
|
// Wait at least one frames for DEN to take effect
|
|
// gameplay_run::@10
|
|
__b10:
|
|
// [654] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fb) goto gameplay_run::@10 -- _deref_pbuc1_neq_vbuc2_then_la1
|
|
lda #$fb
|
|
cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
bne __b10
|
|
jmp __b11
|
|
// gameplay_run::@11
|
|
__b11:
|
|
// [655] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto gameplay_run::@11 -- _deref_pbuc1_neq_vbuc2_then_la1
|
|
lda #$fa
|
|
cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
bne __b11
|
|
jmp __b12
|
|
// gameplay_run::@12
|
|
__b12:
|
|
// [656] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN -- _deref_pbuc1=_deref_pbuc1_band_vbuc2
|
|
// Open lower/upper border using RSEL - and disable all graphics (except sprites)
|
|
// Set up RASTER IRQ to start at irq_screen_top() (RST8=0)
|
|
lda #(VICII_RST8|VICII_RSEL|VICII_DEN)^$ff
|
|
and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
// [657] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE -- _deref_pbuc1=vbuc2
|
|
lda #IRQ_SCREEN_TOP_LINE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
// [658] *HARDWARE_IRQ = &irq_screen_top -- _deref_qprc1=pprc2
|
|
lda #<irq_screen_top
|
|
sta HARDWARE_IRQ
|
|
lda #>irq_screen_top
|
|
sta HARDWARE_IRQ+1
|
|
// [659] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Enable Raster Interrupt
|
|
lda #IRQ_RASTER
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE
|
|
// asm { ldaCIA1_INTERRUPT }
|
|
// Acknowledge any timer IRQ
|
|
lda CIA1_INTERRUPT
|
|
// [661] *IRQ_STATUS = $f -- _deref_pbuc1=vbuc2
|
|
// Acknowledge any VIC IRQ
|
|
lda #$f
|
|
sta IRQ_STATUS
|
|
jmp CLI1
|
|
// gameplay_run::CLI1
|
|
CLI1:
|
|
// asm { cli }
|
|
cli
|
|
jmp __b13
|
|
// gameplay_run::@13
|
|
__b13:
|
|
// [663] if(0!=pacman_wins) goto gameplay_run::@return -- 0_neq_vbuz1_then_la1
|
|
lda.z pacman_wins
|
|
bne __breturn
|
|
jmp __b20
|
|
// gameplay_run::@20
|
|
__b20:
|
|
// [664] if(pacman_lives==0) goto gameplay_run::@return -- vbuz1_eq_0_then_la1
|
|
lda.z pacman_lives
|
|
beq __breturn
|
|
jmp __b13
|
|
// gameplay_run::@return
|
|
__breturn:
|
|
// [665] return
|
|
rts
|
|
// gameplay_run::@8
|
|
__b8:
|
|
// [666] SPRITES_COLOR[gameplay_run::i2#2] = top_sprites_color -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z top_sprites_color
|
|
sta SPRITES_COLOR,x
|
|
// [667] gameplay_run::i2#1 = ++ gameplay_run::i2#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [644] phi from gameplay_run::@8 to gameplay_run::@7 [phi:gameplay_run::@8->gameplay_run::@7]
|
|
__b7_from___b8:
|
|
// [644] phi gameplay_run::i2#2 = gameplay_run::i2#1 [phi:gameplay_run::@8->gameplay_run::@7#0] -- register_copy
|
|
jmp __b7
|
|
// gameplay_run::@5
|
|
__b5:
|
|
// [668] SPRITES_COLOR[gameplay_run::i1#2] = BLACK -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #BLACK
|
|
sta SPRITES_COLOR,x
|
|
// [669] gameplay_run::i1#1 = ++ gameplay_run::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [624] phi from gameplay_run::@5 to gameplay_run::@4 [phi:gameplay_run::@5->gameplay_run::@4]
|
|
__b4_from___b5:
|
|
// [624] phi gameplay_run::i1#2 = gameplay_run::i1#1 [phi:gameplay_run::@5->gameplay_run::@4#0] -- register_copy
|
|
jmp __b4
|
|
// gameplay_run::@2
|
|
__b2:
|
|
// [670] ((char *)SID)[gameplay_run::i#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta SID,x
|
|
// [671] gameplay_run::i#1 = ++ gameplay_run::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [618] phi from gameplay_run::@2 to gameplay_run::@1 [phi:gameplay_run::@2->gameplay_run::@1]
|
|
__b1_from___b2:
|
|
// [618] phi gameplay_run::i#2 = gameplay_run::i#1 [phi:gameplay_run::@2->gameplay_run::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// done_run
|
|
// Show Victory or Game Over Image
|
|
// Returns when the user clicks the joystick button
|
|
done_run: {
|
|
// Show the win graphics
|
|
.label gfx = 5
|
|
.label ypos = $10
|
|
.label xcol = $14
|
|
// [672] game_playable = 0 -- vbuz1=vbuc1
|
|
// Stop the game play
|
|
lda #0
|
|
sta.z game_playable
|
|
// [673] phase = 0 -- vbuz1=vbuc1
|
|
// Set phase to intro
|
|
lda #0
|
|
sta.z phase
|
|
// [674] phi from done_run to done_run::@4 [phi:done_run->done_run::@4]
|
|
__b4_from_done_run:
|
|
// [674] phi done_run::i#2 = 0 [phi:done_run->done_run::@4#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b4
|
|
// Stop any sound
|
|
// done_run::@4
|
|
__b4:
|
|
// [675] if(done_run::i#2<$2f) goto done_run::@5 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$2f
|
|
bcc __b5
|
|
// [676] phi from done_run::@4 to done_run::@6 [phi:done_run::@4->done_run::@6]
|
|
__b6_from___b4:
|
|
// [676] phi done_run::i1#2 = 0 [phi:done_run::@4->done_run::@6#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b6
|
|
// Move the bobs to the center to avoid interference while rendering the level
|
|
// done_run::@6
|
|
__b6:
|
|
// [677] if(done_run::i1#2<4) goto done_run::@7 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #4
|
|
bcc __b7
|
|
jmp __b8
|
|
// done_run::@8
|
|
__b8:
|
|
// asm { lda#0 }
|
|
// Init music
|
|
lda #0
|
|
// [679] callexecute *musicInit -- call__deref_pprc1
|
|
jsr musicInit
|
|
jmp __b1
|
|
// done_run::@1
|
|
__b1:
|
|
// [680] if(0!=pacman_wins) goto done_run::@2 -- 0_neq_vbuz1_then_la1
|
|
lda.z pacman_wins
|
|
bne __b2
|
|
jmp __b3
|
|
// done_run::@3
|
|
__b3:
|
|
// [681] byteboozer_decrunch::crunched = GAMEOVER_GFX_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<GAMEOVER_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>GAMEOVER_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [682] call byteboozer_decrunch
|
|
// decrunch game over graphics
|
|
jsr byteboozer_decrunch
|
|
// [683] phi from done_run::@2 done_run::@3 to done_run::@9 [phi:done_run::@2/done_run::@3->done_run::@9]
|
|
__b9_from___b2:
|
|
__b9_from___b3:
|
|
// [683] phi done_run::gfx#4 = WIN_GFX [phi:done_run::@2/done_run::@3->done_run::@9#0] -- pbuz1=pbuc1
|
|
lda #<WIN_GFX
|
|
sta.z gfx
|
|
lda #>WIN_GFX
|
|
sta.z gfx+1
|
|
// [683] phi done_run::xcol#2 = 0 [phi:done_run::@2/done_run::@3->done_run::@9#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xcol
|
|
jmp __b9
|
|
// done_run::@9
|
|
__b9:
|
|
// [684] if(done_run::xcol#2<$19) goto done_run::@11 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xcol
|
|
cmp #$19
|
|
bcc __b11_from___b9
|
|
jmp __b10
|
|
// done_run::@10
|
|
__b10:
|
|
// [685] music_play_next = 0 -- vbuz1=vbuc1
|
|
// Wait for fire
|
|
lda #0
|
|
sta.z music_play_next
|
|
// [686] phi from done_run::@10 done_run::@15 done_run::@16 to done_run::@14 [phi:done_run::@10/done_run::@15/done_run::@16->done_run::@14]
|
|
__b14_from___b10:
|
|
__b14_from___b15:
|
|
__b14_from___b16:
|
|
jmp __b14
|
|
// done_run::@14
|
|
__b14:
|
|
// [687] call joyfire
|
|
jsr joyfire
|
|
// [688] joyfire::return#0 = joyfire::return#4
|
|
jmp __b19
|
|
// done_run::@19
|
|
__b19:
|
|
// [689] done_run::$8 = joyfire::return#0
|
|
// [690] if(0==done_run::$8) goto done_run::@15 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b15
|
|
jmp __breturn
|
|
// done_run::@return
|
|
__breturn:
|
|
// [691] return
|
|
rts
|
|
// done_run::@15
|
|
__b15:
|
|
// [692] if(0==music_play_next) goto done_run::@14 -- 0_eq_vbuz1_then_la1
|
|
lda.z music_play_next
|
|
beq __b14_from___b15
|
|
// [693] phi from done_run::@15 to done_run::@17 [phi:done_run::@15->done_run::@17]
|
|
__b17_from___b15:
|
|
jmp __b17
|
|
// done_run::@17
|
|
__b17:
|
|
// [694] callexecute *musicPlay -- call__deref_pprc1
|
|
//VICII->BG_COLOR=1;
|
|
jsr musicPlay
|
|
jmp __b16
|
|
// done_run::@16
|
|
__b16:
|
|
// [695] music_play_next = 0 -- vbuz1=vbuc1
|
|
//VICII->BG_COLOR=0;
|
|
lda #0
|
|
sta.z music_play_next
|
|
jmp __b14_from___b16
|
|
// [696] phi from done_run::@9 to done_run::@11 [phi:done_run::@9->done_run::@11]
|
|
__b11_from___b9:
|
|
// [696] phi done_run::gfx#2 = done_run::gfx#4 [phi:done_run::@9->done_run::@11#0] -- register_copy
|
|
// [696] phi done_run::ypos#2 = 0 [phi:done_run::@9->done_run::@11#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ypos
|
|
jmp __b11
|
|
// done_run::@11
|
|
__b11:
|
|
// [697] if(done_run::ypos#2<$19) goto done_run::@12 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ypos
|
|
cmp #$19
|
|
bcc __b12
|
|
jmp __b13
|
|
// done_run::@13
|
|
__b13:
|
|
// [698] done_run::xcol#1 = ++ done_run::xcol#2 -- vbuz1=_inc_vbuz1
|
|
inc.z xcol
|
|
// [683] phi from done_run::@13 to done_run::@9 [phi:done_run::@13->done_run::@9]
|
|
__b9_from___b13:
|
|
// [683] phi done_run::gfx#4 = done_run::gfx#2 [phi:done_run::@13->done_run::@9#0] -- register_copy
|
|
// [683] phi done_run::xcol#2 = done_run::xcol#1 [phi:done_run::@13->done_run::@9#1] -- register_copy
|
|
jmp __b9
|
|
// done_run::@12
|
|
__b12:
|
|
// [699] done_run::pixels#0 = *done_run::gfx#2 -- vbuxx=_deref_pbuz1
|
|
// Render 8px x 1px
|
|
ldy #0
|
|
lda (gfx),y
|
|
tax
|
|
// [700] done_run::gfx#1 = ++ done_run::gfx#2 -- pbuz1=_inc_pbuz1
|
|
inc.z gfx
|
|
bne !+
|
|
inc.z gfx+1
|
|
!:
|
|
// [701] render::xcol#0 = done_run::xcol#2
|
|
// [702] render::ypos#0 = done_run::ypos#2
|
|
// [703] render::pixels#0 = done_run::pixels#0 -- vbuz1=vbuxx
|
|
stx.z render.pixels
|
|
// [704] call render
|
|
// [999] phi from done_run::@12 to render [phi:done_run::@12->render]
|
|
render_from___b12:
|
|
// [999] phi render::pixels#4 = render::pixels#0 [phi:done_run::@12->render#0] -- register_copy
|
|
// [999] phi render::xcol#2 = render::xcol#0 [phi:done_run::@12->render#1] -- register_copy
|
|
// [999] phi render::ypos#2 = render::ypos#0 [phi:done_run::@12->render#2] -- register_copy
|
|
jsr render
|
|
jmp __b18
|
|
// done_run::@18
|
|
__b18:
|
|
// [705] done_run::ypos#1 = ++ done_run::ypos#2 -- vbuz1=_inc_vbuz1
|
|
inc.z ypos
|
|
// [696] phi from done_run::@18 to done_run::@11 [phi:done_run::@18->done_run::@11]
|
|
__b11_from___b18:
|
|
// [696] phi done_run::gfx#2 = done_run::gfx#1 [phi:done_run::@18->done_run::@11#0] -- register_copy
|
|
// [696] phi done_run::ypos#2 = done_run::ypos#1 [phi:done_run::@18->done_run::@11#1] -- register_copy
|
|
jmp __b11
|
|
// done_run::@2
|
|
__b2:
|
|
// [706] byteboozer_decrunch::crunched = WIN_GFX_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<WIN_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>WIN_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [707] call byteboozer_decrunch
|
|
// decrunch win graphics
|
|
jsr byteboozer_decrunch
|
|
jmp __b9_from___b2
|
|
// done_run::@7
|
|
__b7:
|
|
// [708] bobs_xcol[done_run::i1#2] = $a -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$a
|
|
sta bobs_xcol,x
|
|
// [709] bobs_yfine[done_run::i1#2] = $2d -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$2d
|
|
sta bobs_yfine,x
|
|
// [710] bobs_bob_id[done_run::i1#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta bobs_bob_id,x
|
|
// [711] done_run::i1#1 = ++ done_run::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [676] phi from done_run::@7 to done_run::@6 [phi:done_run::@7->done_run::@6]
|
|
__b6_from___b7:
|
|
// [676] phi done_run::i1#2 = done_run::i1#1 [phi:done_run::@7->done_run::@6#0] -- register_copy
|
|
jmp __b6
|
|
// done_run::@5
|
|
__b5:
|
|
// [712] ((char *)SID)[done_run::i#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta SID,x
|
|
// [713] done_run::i#1 = ++ done_run::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [674] phi from done_run::@5 to done_run::@4 [phi:done_run::@5->done_run::@4]
|
|
__b4_from___b5:
|
|
// [674] phi done_run::i#2 = done_run::i#1 [phi:done_run::@5->done_run::@4#0] -- register_copy
|
|
jmp __b4
|
|
}
|
|
// spawn_all
|
|
// Spawn pacman and all ghosts
|
|
spawn_all: {
|
|
// [714] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
// [715] pacman_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_substep
|
|
// [716] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
// [717] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
// [718] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
// [719] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
// [720] pacman_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z pacman_direction
|
|
// [721] ghost1_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost1_direction
|
|
// [722] ghost2_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost2_direction
|
|
// [723] ghost3_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost3_direction
|
|
// [724] ghost4_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost4_direction
|
|
// [725] pacman_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z pacman_xfine
|
|
// [726] ghost1_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost1_xfine
|
|
// [727] ghost2_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost2_xfine
|
|
// [728] ghost3_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost3_xfine
|
|
// [729] ghost4_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost4_xfine
|
|
// [730] ghost1_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost1_yfine
|
|
// [731] ghost2_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost2_yfine
|
|
// [732] ghost3_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost3_yfine
|
|
// [733] ghost4_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost4_yfine
|
|
// [734] pacman_yfine = $3e -- vbuz1=vbuc1
|
|
lda #$3e
|
|
sta.z pacman_yfine
|
|
// [735] ghost1_respawn = $a -- vbuz1=vbuc1
|
|
lda #$a
|
|
sta.z ghost1_respawn
|
|
// [736] ghost2_respawn = $14 -- vbuz1=vbuc1
|
|
lda #$14
|
|
sta.z ghost2_respawn
|
|
// [737] ghost3_respawn = $1e -- vbuz1=vbuc1
|
|
lda #$1e
|
|
sta.z ghost3_respawn
|
|
// [738] ghost4_respawn = $28 -- vbuz1=vbuc1
|
|
lda #$28
|
|
sta.z ghost4_respawn
|
|
jmp __breturn
|
|
// spawn_all::@return
|
|
__breturn:
|
|
// [739] return
|
|
rts
|
|
}
|
|
// level_tile_directions
|
|
// Get the open directions at a given (xtile, ytile) position
|
|
// Returns the open DIRECTIONs as bits
|
|
// If xtile of ytile is outside the legal range the empty tile (0) is returned
|
|
// __register(A) char level_tile_directions(__register(X) char xtile, __register(A) char ytile)
|
|
level_tile_directions: {
|
|
.label ytiles = $31
|
|
// [741] if(level_tile_directions::xtile#5>=$31+1) goto level_tile_directions::@return -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #$31+1
|
|
bcs __breturn_from_level_tile_directions
|
|
jmp __b2
|
|
// level_tile_directions::@2
|
|
__b2:
|
|
// [742] if(level_tile_directions::ytile#5>=$24+1) goto level_tile_directions::@return -- vbuaa_ge_vbuc1_then_la1
|
|
cmp #$24+1
|
|
bcs __breturn_from___b2
|
|
jmp __b1
|
|
// level_tile_directions::@1
|
|
__b1:
|
|
// [743] level_tile_directions::$5 = level_tile_directions::ytile#5 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [744] level_tile_directions::ytiles#0 = LEVEL_TILES_DIRECTIONS + LEVEL_YTILE_OFFSET[level_tile_directions::$5] -- pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa
|
|
tay
|
|
clc
|
|
lda #<LEVEL_TILES_DIRECTIONS
|
|
adc LEVEL_YTILE_OFFSET,y
|
|
sta.z ytiles
|
|
lda #>LEVEL_TILES_DIRECTIONS
|
|
adc LEVEL_YTILE_OFFSET+1,y
|
|
sta.z ytiles+1
|
|
// [745] level_tile_directions::return#0 = level_tile_directions::ytiles#0[level_tile_directions::xtile#5] -- vbuaa=pbuz1_derefidx_vbuxx
|
|
txa
|
|
tay
|
|
lda (ytiles),y
|
|
// [746] phi from level_tile_directions::@1 to level_tile_directions::@return [phi:level_tile_directions::@1->level_tile_directions::@return]
|
|
__breturn_from___b1:
|
|
// [746] phi level_tile_directions::return#2 = level_tile_directions::return#0 [phi:level_tile_directions::@1->level_tile_directions::@return#0] -- register_copy
|
|
jmp __breturn
|
|
// [746] phi from level_tile_directions level_tile_directions::@2 to level_tile_directions::@return [phi:level_tile_directions/level_tile_directions::@2->level_tile_directions::@return]
|
|
__breturn_from_level_tile_directions:
|
|
__breturn_from___b2:
|
|
// [746] phi level_tile_directions::return#2 = 0 [phi:level_tile_directions/level_tile_directions::@2->level_tile_directions::@return#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
jmp __breturn
|
|
// level_tile_directions::@return
|
|
__breturn:
|
|
// [747] return
|
|
rts
|
|
}
|
|
// choose_direction
|
|
// Choose the open direction that brings the ghost closest to the target
|
|
// Uses Manhattan distance calculation
|
|
// __zp($33) char choose_direction(__zp($49) char open_directions, __register(Y) char ghost_xtile, __zp($34) char ghost_ytile, __register(X) char target_xtile, __zp($27) char target_ytile)
|
|
choose_direction: {
|
|
.label open_directions = $49
|
|
.label ghost_ytile = $34
|
|
.label target_ytile = $27
|
|
.label xdiff = $4b
|
|
.label ydiff = $34
|
|
.label dist_left = $22
|
|
.label return = $33
|
|
.label direction = $33
|
|
.label dist_min = $22
|
|
// [749] choose_direction::xdiff#0 = choose_direction::ghost_xtile#4 - choose_direction::target_xtile#4 -- vbuz1=vbuyy_minus_vbuxx
|
|
tya
|
|
stx.z $ff
|
|
sec
|
|
sbc.z $ff
|
|
sta.z xdiff
|
|
// [750] choose_direction::ydiff#0 = choose_direction::ghost_ytile#4 - choose_direction::target_ytile#4 -- vbuz1=vbuz1_minus_vbuz2
|
|
lda.z ydiff
|
|
sec
|
|
sbc.z target_ytile
|
|
sta.z ydiff
|
|
// [751] choose_direction::$2 = choose_direction::open_directions#10 & UP -- vbuaa=vbuz1_band_vbuc1
|
|
lda #UP
|
|
and.z open_directions
|
|
// [752] if(0==choose_direction::$2) goto choose_direction::@1 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b1_from_choose_direction
|
|
jmp __b5
|
|
// choose_direction::@5
|
|
__b5:
|
|
// [753] choose_direction::dist_up#0 = ABS[choose_direction::xdiff#0] + (ABS+-1)[choose_direction::ydiff#0] -- vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
|
|
ldy.z xdiff
|
|
lda ABS,y
|
|
ldy.z ydiff
|
|
clc
|
|
adc ABS+-1,y
|
|
tay
|
|
// [754] if(choose_direction::dist_up#0>=$ff) goto choose_direction::@1 -- vbuyy_ge_vbuc1_then_la1
|
|
cpy #$ff
|
|
bcs __b1_from___b5
|
|
// [755] phi from choose_direction::@5 to choose_direction::@6 [phi:choose_direction::@5->choose_direction::@6]
|
|
__b6_from___b5:
|
|
jmp __b6
|
|
// choose_direction::@6
|
|
__b6:
|
|
// [756] phi from choose_direction::@6 to choose_direction::@1 [phi:choose_direction::@6->choose_direction::@1]
|
|
__b1_from___b6:
|
|
// [756] phi choose_direction::direction#10 = UP [phi:choose_direction::@6->choose_direction::@1#0] -- vbuz1=vbuc1
|
|
lda #UP
|
|
sta.z direction
|
|
// [756] phi choose_direction::dist_min#6 = choose_direction::dist_up#0 [phi:choose_direction::@6->choose_direction::@1#1] -- register_copy
|
|
jmp __b1
|
|
// [756] phi from choose_direction choose_direction::@5 to choose_direction::@1 [phi:choose_direction/choose_direction::@5->choose_direction::@1]
|
|
__b1_from_choose_direction:
|
|
__b1_from___b5:
|
|
// [756] phi choose_direction::direction#10 = STOP [phi:choose_direction/choose_direction::@5->choose_direction::@1#0] -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z direction
|
|
// [756] phi choose_direction::dist_min#6 = $ff [phi:choose_direction/choose_direction::@5->choose_direction::@1#1] -- vbuyy=vbuc1
|
|
ldy #$ff
|
|
jmp __b1
|
|
// choose_direction::@1
|
|
__b1:
|
|
// [757] choose_direction::$4 = choose_direction::open_directions#10 & DOWN -- vbuaa=vbuz1_band_vbuc1
|
|
lda #DOWN
|
|
and.z open_directions
|
|
// [758] if(0==choose_direction::$4) goto choose_direction::@10 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b10
|
|
jmp __b7
|
|
// choose_direction::@7
|
|
__b7:
|
|
// [759] choose_direction::dist_down#0 = ABS[choose_direction::xdiff#0] + (ABS+1)[choose_direction::ydiff#0] -- vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
|
|
ldx.z xdiff
|
|
lda ABS,x
|
|
ldx.z ydiff
|
|
clc
|
|
adc ABS+1,x
|
|
tax
|
|
// [760] if(choose_direction::dist_down#0>=choose_direction::dist_min#6) goto choose_direction::@11 -- vbuxx_ge_vbuyy_then_la1
|
|
sty.z $ff
|
|
cpx.z $ff
|
|
bcs __b11
|
|
// [762] phi from choose_direction::@7 to choose_direction::@2 [phi:choose_direction::@7->choose_direction::@2]
|
|
__b2_from___b7:
|
|
// [762] phi choose_direction::direction#8 = DOWN [phi:choose_direction::@7->choose_direction::@2#0] -- vbuz1=vbuc1
|
|
lda #DOWN
|
|
sta.z direction
|
|
// [762] phi choose_direction::dist_min#10 = choose_direction::dist_down#0 [phi:choose_direction::@7->choose_direction::@2#1] -- register_copy
|
|
jmp __b2
|
|
// choose_direction::@11
|
|
__b11:
|
|
// [761] choose_direction::dist_min#14 = choose_direction::dist_min#6 -- vbuxx=vbuyy
|
|
tya
|
|
tax
|
|
// [762] phi from choose_direction::@10 choose_direction::@11 to choose_direction::@2 [phi:choose_direction::@10/choose_direction::@11->choose_direction::@2]
|
|
__b2_from___b10:
|
|
__b2_from___b11:
|
|
// [762] phi choose_direction::direction#8 = choose_direction::direction#10 [phi:choose_direction::@10/choose_direction::@11->choose_direction::@2#0] -- register_copy
|
|
// [762] phi choose_direction::dist_min#10 = choose_direction::dist_min#13 [phi:choose_direction::@10/choose_direction::@11->choose_direction::@2#1] -- register_copy
|
|
jmp __b2
|
|
// choose_direction::@2
|
|
__b2:
|
|
// [763] choose_direction::$6 = choose_direction::open_directions#10 & LEFT -- vbuaa=vbuz1_band_vbuc1
|
|
lda #LEFT
|
|
and.z open_directions
|
|
// [764] if(0==choose_direction::$6) goto choose_direction::@12 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b12
|
|
jmp __b8
|
|
// choose_direction::@8
|
|
__b8:
|
|
// [765] choose_direction::dist_left#0 = (ABS+-1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] -- vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3
|
|
ldy.z xdiff
|
|
lda ABS+-1,y
|
|
ldy.z ydiff
|
|
clc
|
|
adc ABS,y
|
|
sta.z dist_left
|
|
// [766] if(choose_direction::dist_left#0>=choose_direction::dist_min#10) goto choose_direction::@13 -- vbuz1_ge_vbuxx_then_la1
|
|
lda.z dist_left
|
|
stx.z $ff
|
|
cmp.z $ff
|
|
bcs __b13
|
|
// [768] phi from choose_direction::@8 to choose_direction::@3 [phi:choose_direction::@8->choose_direction::@3]
|
|
__b3_from___b8:
|
|
// [768] phi choose_direction::dist_min#11 = choose_direction::dist_left#0 [phi:choose_direction::@8->choose_direction::@3#0] -- register_copy
|
|
// [768] phi choose_direction::direction#6 = LEFT [phi:choose_direction::@8->choose_direction::@3#1] -- vbuz1=vbuc1
|
|
lda #LEFT
|
|
sta.z direction
|
|
jmp __b3
|
|
// choose_direction::@13
|
|
__b13:
|
|
// [767] choose_direction::dist_min#18 = choose_direction::dist_min#10 -- vbuz1=vbuxx
|
|
stx.z dist_min
|
|
// [768] phi from choose_direction::@12 choose_direction::@13 to choose_direction::@3 [phi:choose_direction::@12/choose_direction::@13->choose_direction::@3]
|
|
__b3_from___b12:
|
|
__b3_from___b13:
|
|
// [768] phi choose_direction::dist_min#11 = choose_direction::dist_min#17 [phi:choose_direction::@12/choose_direction::@13->choose_direction::@3#0] -- register_copy
|
|
// [768] phi choose_direction::direction#6 = choose_direction::direction#8 [phi:choose_direction::@12/choose_direction::@13->choose_direction::@3#1] -- register_copy
|
|
jmp __b3
|
|
// choose_direction::@3
|
|
__b3:
|
|
// [769] choose_direction::$8 = choose_direction::open_directions#10 & RIGHT -- vbuaa=vbuz1_band_vbuc1
|
|
lda #RIGHT
|
|
and.z open_directions
|
|
// [770] if(0==choose_direction::$8) goto choose_direction::@4 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b4_from___b3
|
|
jmp __b9
|
|
// choose_direction::@9
|
|
__b9:
|
|
// [771] choose_direction::dist_right#0 = (ABS+1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
|
|
ldy.z xdiff
|
|
lda ABS+1,y
|
|
ldy.z ydiff
|
|
clc
|
|
adc ABS,y
|
|
// [772] if(choose_direction::dist_right#0>=choose_direction::dist_min#11) goto choose_direction::@14 -- vbuaa_ge_vbuz1_then_la1
|
|
cmp.z dist_min
|
|
bcs __b14_from___b9
|
|
// [774] phi from choose_direction::@9 to choose_direction::@4 [phi:choose_direction::@9->choose_direction::@4]
|
|
__b4_from___b9:
|
|
// [774] phi choose_direction::return#10 = RIGHT [phi:choose_direction::@9->choose_direction::@4#0] -- vbuz1=vbuc1
|
|
lda #RIGHT
|
|
sta.z return
|
|
jmp __b4
|
|
// [773] phi from choose_direction::@9 to choose_direction::@14 [phi:choose_direction::@9->choose_direction::@14]
|
|
__b14_from___b9:
|
|
jmp __b14
|
|
// choose_direction::@14
|
|
__b14:
|
|
// [774] phi from choose_direction::@14 choose_direction::@3 to choose_direction::@4 [phi:choose_direction::@14/choose_direction::@3->choose_direction::@4]
|
|
__b4_from___b14:
|
|
__b4_from___b3:
|
|
// [774] phi choose_direction::return#10 = choose_direction::direction#6 [phi:choose_direction::@14/choose_direction::@3->choose_direction::@4#0] -- register_copy
|
|
jmp __b4
|
|
// choose_direction::@4
|
|
__b4:
|
|
jmp __breturn
|
|
// choose_direction::@return
|
|
__breturn:
|
|
// [775] return
|
|
rts
|
|
// choose_direction::@12
|
|
__b12:
|
|
// [776] choose_direction::dist_min#17 = choose_direction::dist_min#10 -- vbuz1=vbuxx
|
|
stx.z dist_min
|
|
jmp __b3_from___b12
|
|
// choose_direction::@10
|
|
__b10:
|
|
// [777] choose_direction::dist_min#13 = choose_direction::dist_min#6 -- vbuxx=vbuyy
|
|
tya
|
|
tax
|
|
jmp __b2_from___b10
|
|
}
|
|
// memset
|
|
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
|
|
// void * memset(__zp($b) void *str, char c, __zp(5) unsigned int num)
|
|
memset: {
|
|
.label end = 5
|
|
.label dst = $b
|
|
.label num = 5
|
|
.label str = $b
|
|
// [779] if(memset::num#5<=0) goto memset::@return -- vwuz1_le_0_then_la1
|
|
lda.z num
|
|
bne !+
|
|
lda.z num+1
|
|
beq __breturn
|
|
!:
|
|
jmp __b1
|
|
// memset::@1
|
|
__b1:
|
|
// [780] memset::end#0 = (char *)memset::str#6 + memset::num#5 -- pbuz1=pbuz2_plus_vwuz1
|
|
clc
|
|
lda.z end
|
|
adc.z str
|
|
sta.z end
|
|
lda.z end+1
|
|
adc.z str+1
|
|
sta.z end+1
|
|
// [781] memset::dst#4 = (char *)memset::str#6
|
|
// [782] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2]
|
|
__b2_from___b1:
|
|
__b2_from___b3:
|
|
// [782] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy
|
|
jmp __b2
|
|
// memset::@2
|
|
__b2:
|
|
// [783] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1
|
|
lda.z dst+1
|
|
cmp.z end+1
|
|
bne __b3
|
|
lda.z dst
|
|
cmp.z end
|
|
bne __b3
|
|
jmp __breturn
|
|
// memset::@return
|
|
__breturn:
|
|
// [784] return
|
|
rts
|
|
// memset::@3
|
|
__b3:
|
|
// [785] *memset::dst#2 = 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
ldy #0
|
|
sta (dst),y
|
|
// [786] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dst
|
|
bne !+
|
|
inc.z dst+1
|
|
!:
|
|
jmp __b2_from___b3
|
|
}
|
|
// byteboozer_decrunch
|
|
// Decrunch crunched data using ByteBoozer
|
|
// - crunched: Pointer to the start of the crunched data
|
|
// void byteboozer_decrunch(__zp($24) char * volatile crunched)
|
|
byteboozer_decrunch: {
|
|
.label crunched = $24
|
|
// asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch }
|
|
ldy crunched
|
|
ldx crunched+1
|
|
jsr b2.Decrunch
|
|
jmp __breturn
|
|
// byteboozer_decrunch::@return
|
|
__breturn:
|
|
// [788] return
|
|
rts
|
|
}
|
|
// merge_code
|
|
// Merge unrolled cycle-exact logic code into an unrolled cycle-exact raster code.
|
|
// The logic-code is merged into the raster code ensuring cycle-exact execution. If a logic-code block does not fit within the remaining cycle-budget of a raster-slot then NOPs/BIT $EA are used to reach the cycle-budget.
|
|
// If the logic-code runs out before the raster-code ends then the remaining raster-slots are filled with NOP/BIT$EA.
|
|
// If the raster-code runs out before the logic-code then the rest of the logic-code is added at the end.
|
|
// An RTS is added at the very end.
|
|
//
|
|
// Parameters:
|
|
// - dest_code: Address where the merged code is placed
|
|
// - raster_code: The unrolled raster code blocks with information about cycles to be filled. Format is decribed below.
|
|
// - logic_code: The unrolled logic code with information about cycles spent. Format is decribed below.
|
|
//
|
|
// Format of unrolled raster code.
|
|
// A number of blocks that have the following structure:
|
|
// <nn>* 0xff <cc>
|
|
// <nn>* : some bytes of code. any number of bytes are allowed.
|
|
// 0xff : signals the end of a block.
|
|
// <cc> : If <cc> is 00 then this is the last block of the unrolled raster code.
|
|
// If <cc> is non-zero it means that <cc> cycles must be spent here (the cycle budget of the slot). The merger merges logic code into the slot and fills with NOP's to match the number of cycles needed.
|
|
//
|
|
// Format of unrolled logic code.
|
|
// A number of blocks that has the following structure:
|
|
// <cc> <nn>* 0xff
|
|
// <cc> : If <cc> is 00 then this is the last block of the unrolled logic code. No more bytes are used.
|
|
// If <cc> is non-zero it holds the number of cycles used by the block of code.
|
|
// <nn>* : some bytes of code. any number of bytes are allowed. This code uses exactly the number of cycles specified by <cc>
|
|
// 0xff : signals the end of a block.
|
|
// void merge_code(__zp(9) char *dest_code, __zp($b) char *raster_code, __zp(5) char *logic_code)
|
|
merge_code: {
|
|
// Cycle-count signalling the last block of the logic-code
|
|
.const LOGIC_EXIT = 0
|
|
// Value signalling the end of a block of the logic-code
|
|
.const LOGIC_END = $ff
|
|
// Cycle-count signalling the last block of the raster-code
|
|
.const RASTER_EXIT = 0
|
|
// Value signalling the end of a block of the raster-code
|
|
.const RASTER_END = $ff
|
|
.label dest_code = 9
|
|
.label raster_code = $b
|
|
.label logic_cycles = 2
|
|
.label logic_code = 5
|
|
// [790] phi from merge_code to merge_code::@1 [phi:merge_code->merge_code::@1]
|
|
__b1_from_merge_code:
|
|
// [790] phi merge_code::logic_code#18 = LOGIC_CODE_UNMERGED [phi:merge_code->merge_code::@1#0] -- pbuz1=pbuc1
|
|
lda #<LOGIC_CODE_UNMERGED
|
|
sta.z logic_code
|
|
lda #>LOGIC_CODE_UNMERGED
|
|
sta.z logic_code+1
|
|
// [790] phi merge_code::dest_code#14 = RASTER_CODE [phi:merge_code->merge_code::@1#1] -- pbuz1=pbuc1
|
|
lda #<RASTER_CODE
|
|
sta.z dest_code
|
|
lda #>RASTER_CODE
|
|
sta.z dest_code+1
|
|
// [790] phi merge_code::raster_code#4 = RASTER_CODE_UNMERGED [phi:merge_code->merge_code::@1#2] -- pbuz1=pbuc1
|
|
lda #<RASTER_CODE_UNMERGED
|
|
sta.z raster_code
|
|
lda #>RASTER_CODE_UNMERGED
|
|
sta.z raster_code+1
|
|
jmp __b1
|
|
// Output raster code until meeting RASTER_END signalling the end of a block
|
|
// merge_code::@1
|
|
__b1:
|
|
// [791] if(*merge_code::raster_code#4!=merge_code::RASTER_END) goto merge_code::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (raster_code),y
|
|
cmp #RASTER_END
|
|
bne __b2
|
|
jmp __b3
|
|
// merge_code::@3
|
|
__b3:
|
|
// [792] merge_code::raster_code#1 = ++ merge_code::raster_code#4 -- pbuz1=_inc_pbuz1
|
|
inc.z raster_code
|
|
bne !+
|
|
inc.z raster_code+1
|
|
!:
|
|
// [793] merge_code::cycle_budget#0 = *merge_code::raster_code#1 -- vbuxx=_deref_pbuz1
|
|
// Find the number of cycles
|
|
ldy #0
|
|
lda (raster_code),y
|
|
tax
|
|
// [794] merge_code::raster_code#2 = ++ merge_code::raster_code#1 -- pbuz1=_inc_pbuz1
|
|
inc.z raster_code
|
|
bne !+
|
|
inc.z raster_code+1
|
|
!:
|
|
// [795] if(merge_code::cycle_budget#0!=merge_code::RASTER_EXIT) goto merge_code::@4 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #RASTER_EXIT
|
|
bne __b4_from___b3
|
|
// [796] phi from merge_code::@19 merge_code::@3 to merge_code::@14 [phi:merge_code::@19/merge_code::@3->merge_code::@14]
|
|
__b14_from___b19:
|
|
__b14_from___b3:
|
|
// [796] phi merge_code::dest_code#12 = merge_code::dest_code#13 [phi:merge_code::@19/merge_code::@3->merge_code::@14#0] -- register_copy
|
|
// [796] phi merge_code::logic_code#12 = merge_code::logic_code#5 [phi:merge_code::@19/merge_code::@3->merge_code::@14#1] -- register_copy
|
|
jmp __b14
|
|
// No more raster code - fill in the rest of the logic code
|
|
// merge_code::@14
|
|
__b14:
|
|
// [797] if(*merge_code::logic_code#12!=merge_code::LOGIC_EXIT) goto merge_code::@15 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (logic_code),y
|
|
cmp #LOGIC_EXIT
|
|
bne __b15
|
|
jmp __b16
|
|
// merge_code::@16
|
|
__b16:
|
|
// [798] *merge_code::dest_code#12 = $60 -- _deref_pbuz1=vbuc1
|
|
// And add an RTS
|
|
lda #$60
|
|
ldy #0
|
|
sta (dest_code),y
|
|
jmp __breturn
|
|
// merge_code::@return
|
|
__breturn:
|
|
// [799] return
|
|
rts
|
|
// merge_code::@15
|
|
__b15:
|
|
// [800] merge_code::logic_code#3 = ++ merge_code::logic_code#12 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
// [801] phi from merge_code::@15 merge_code::@18 to merge_code::@17 [phi:merge_code::@15/merge_code::@18->merge_code::@17]
|
|
__b17_from___b15:
|
|
__b17_from___b18:
|
|
// [801] phi merge_code::dest_code#13 = merge_code::dest_code#12 [phi:merge_code::@15/merge_code::@18->merge_code::@17#0] -- register_copy
|
|
// [801] phi merge_code::logic_code#14 = merge_code::logic_code#3 [phi:merge_code::@15/merge_code::@18->merge_code::@17#1] -- register_copy
|
|
jmp __b17
|
|
// Fill in the logic-code
|
|
// merge_code::@17
|
|
__b17:
|
|
// [802] if(*merge_code::logic_code#14!=merge_code::LOGIC_END) goto merge_code::@18 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (logic_code),y
|
|
cmp #LOGIC_END
|
|
bne __b18
|
|
jmp __b19
|
|
// merge_code::@19
|
|
__b19:
|
|
// [803] merge_code::logic_code#5 = ++ merge_code::logic_code#14 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
jmp __b14_from___b19
|
|
// merge_code::@18
|
|
__b18:
|
|
// [804] *merge_code::dest_code#13 = *merge_code::logic_code#14 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (logic_code),y
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// [805] merge_code::dest_code#6 = ++ merge_code::dest_code#13 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [806] merge_code::logic_code#4 = ++ merge_code::logic_code#14 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
jmp __b17_from___b18
|
|
// Fit the cycle budget with logic-code
|
|
// [807] phi from merge_code::@3 merge_code::@8 to merge_code::@4 [phi:merge_code::@3/merge_code::@8->merge_code::@4]
|
|
__b4_from___b3:
|
|
__b4_from___b8:
|
|
// [807] phi merge_code::dest_code#21 = merge_code::dest_code#14 [phi:merge_code::@3/merge_code::@8->merge_code::@4#0] -- register_copy
|
|
// [807] phi merge_code::logic_code#17 = merge_code::logic_code#18 [phi:merge_code::@3/merge_code::@8->merge_code::@4#1] -- register_copy
|
|
// [807] phi merge_code::cycle_budget#13 = merge_code::cycle_budget#0 [phi:merge_code::@3/merge_code::@8->merge_code::@4#2] -- register_copy
|
|
jmp __b4
|
|
// merge_code::@4
|
|
__b4:
|
|
// [808] if(merge_code::cycle_budget#13<=0) goto merge_code::@10 -- vbuxx_le_0_then_la1
|
|
cpx #0
|
|
beq __b10_from___b4
|
|
jmp __b5
|
|
// merge_code::@5
|
|
__b5:
|
|
// [809] merge_code::logic_cycles#0 = *merge_code::logic_code#17 -- vbuz1=_deref_pbuz2
|
|
// Find the number of logic code cycles
|
|
ldy #0
|
|
lda (logic_code),y
|
|
sta.z logic_cycles
|
|
// [810] merge_code::$5 = merge_code::cycle_budget#13 - 1 -- vbuyy=vbuxx_minus_1
|
|
txa
|
|
tay
|
|
dey
|
|
// [811] if(merge_code::logic_cycles#0!=merge_code::LOGIC_EXIT) goto merge_code::@20 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #LOGIC_EXIT
|
|
cmp.z logic_cycles
|
|
bne __b20
|
|
// [812] phi from merge_code::@12 merge_code::@13 merge_code::@4 merge_code::@5 to merge_code::@10 [phi:merge_code::@12/merge_code::@13/merge_code::@4/merge_code::@5->merge_code::@10]
|
|
__b10_from___b12:
|
|
__b10_from___b13:
|
|
__b10_from___b4:
|
|
__b10_from___b5:
|
|
// [812] phi merge_code::dest_code#10 = merge_code::dest_code#3 [phi:merge_code::@12/merge_code::@13/merge_code::@4/merge_code::@5->merge_code::@10#0] -- register_copy
|
|
// [812] phi merge_code::cycle_budget#10 = merge_code::cycle_budget#2 [phi:merge_code::@12/merge_code::@13/merge_code::@4/merge_code::@5->merge_code::@10#1] -- register_copy
|
|
jmp __b10
|
|
// Fit the cycle budget with NOPs
|
|
// merge_code::@10
|
|
__b10:
|
|
// [813] if(merge_code::cycle_budget#10>0) goto merge_code::@11 -- vbuxx_gt_0_then_la1
|
|
cpx #0
|
|
bne __b11
|
|
// [790] phi from merge_code::@10 merge_code::@2 to merge_code::@1 [phi:merge_code::@10/merge_code::@2->merge_code::@1]
|
|
__b1_from___b10:
|
|
__b1_from___b2:
|
|
// [790] phi merge_code::logic_code#18 = merge_code::logic_code#17 [phi:merge_code::@10/merge_code::@2->merge_code::@1#0] -- register_copy
|
|
// [790] phi merge_code::dest_code#14 = merge_code::dest_code#10 [phi:merge_code::@10/merge_code::@2->merge_code::@1#1] -- register_copy
|
|
// [790] phi merge_code::raster_code#4 = merge_code::raster_code#2 [phi:merge_code::@10/merge_code::@2->merge_code::@1#2] -- register_copy
|
|
jmp __b1
|
|
// merge_code::@11
|
|
__b11:
|
|
// [814] if(merge_code::cycle_budget#10==3) goto merge_code::@12 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #3
|
|
beq __b12
|
|
jmp __b13
|
|
// merge_code::@13
|
|
__b13:
|
|
// [815] *merge_code::dest_code#10 = $ea -- _deref_pbuz1=vbuc1
|
|
lda #$ea
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// [816] merge_code::dest_code#4 = ++ merge_code::dest_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [817] merge_code::cycle_budget#3 = merge_code::cycle_budget#10 - 2 -- vbuxx=vbuxx_minus_2
|
|
// NOP
|
|
dex
|
|
dex
|
|
jmp __b10_from___b13
|
|
// merge_code::@12
|
|
__b12:
|
|
// [818] *merge_code::dest_code#10 = $24 -- _deref_pbuz1=vbuc1
|
|
lda #$24
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// [819] merge_code::dest_code#2 = ++ merge_code::dest_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [820] *merge_code::dest_code#2 = $ea -- _deref_pbuz1=vbuc1
|
|
// BIT $EA
|
|
lda #$ea
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// [821] merge_code::dest_code#3 = ++ merge_code::dest_code#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [822] merge_code::cycle_budget#2 = merge_code::cycle_budget#10 - 3 -- vbuxx=vbuxx_minus_vbuc1
|
|
txa
|
|
axs #3
|
|
jmp __b10_from___b12
|
|
// merge_code::@20
|
|
__b20:
|
|
// [823] if(merge_code::logic_cycles#0<merge_code::$5) goto merge_code::@9 -- vbuz1_lt_vbuyy_then_la1
|
|
cpy.z logic_cycles
|
|
beq !+
|
|
bcs __b9
|
|
!:
|
|
jmp __b21
|
|
// merge_code::@21
|
|
__b21:
|
|
// [824] if(merge_code::logic_cycles#0==merge_code::cycle_budget#13) goto merge_code::@9 -- vbuz1_eq_vbuxx_then_la1
|
|
cpx.z logic_cycles
|
|
beq __b9
|
|
// [812] phi from merge_code::@21 to merge_code::@10 [phi:merge_code::@21->merge_code::@10]
|
|
__b10_from___b21:
|
|
jmp __b10
|
|
// merge_code::@9
|
|
__b9:
|
|
// [825] merge_code::logic_code#0 = ++ merge_code::logic_code#17 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
// [826] phi from merge_code::@7 merge_code::@9 to merge_code::@6 [phi:merge_code::@7/merge_code::@9->merge_code::@6]
|
|
__b6_from___b7:
|
|
__b6_from___b9:
|
|
// [826] phi merge_code::dest_code#15 = merge_code::dest_code#1 [phi:merge_code::@7/merge_code::@9->merge_code::@6#0] -- register_copy
|
|
// [826] phi merge_code::logic_code#10 = merge_code::logic_code#1 [phi:merge_code::@7/merge_code::@9->merge_code::@6#1] -- register_copy
|
|
jmp __b6
|
|
// Fill in the logic-code
|
|
// merge_code::@6
|
|
__b6:
|
|
// [827] if(*merge_code::logic_code#10!=merge_code::LOGIC_END) goto merge_code::@7 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (logic_code),y
|
|
cmp #LOGIC_END
|
|
bne __b7
|
|
jmp __b8
|
|
// merge_code::@8
|
|
__b8:
|
|
// [828] merge_code::logic_code#2 = ++ merge_code::logic_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
// [829] merge_code::cycle_budget#1 = merge_code::cycle_budget#13 - merge_code::logic_cycles#0 -- vbuxx=vbuxx_minus_vbuz1
|
|
// Reduce the cycle budget
|
|
txa
|
|
sec
|
|
sbc.z logic_cycles
|
|
tax
|
|
jmp __b4_from___b8
|
|
// merge_code::@7
|
|
__b7:
|
|
// [830] *merge_code::dest_code#15 = *merge_code::logic_code#10 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (logic_code),y
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// [831] merge_code::dest_code#1 = ++ merge_code::dest_code#15 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [832] merge_code::logic_code#1 = ++ merge_code::logic_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
jmp __b6_from___b7
|
|
// merge_code::@2
|
|
__b2:
|
|
// [833] *merge_code::dest_code#14 = *merge_code::raster_code#4 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (raster_code),y
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// [834] merge_code::dest_code#0 = ++ merge_code::dest_code#14 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [835] merge_code::raster_code#0 = ++ merge_code::raster_code#4 -- pbuz1=_inc_pbuz1
|
|
inc.z raster_code
|
|
bne !+
|
|
inc.z raster_code+1
|
|
!:
|
|
jmp __b1_from___b2
|
|
}
|
|
// init_render_index
|
|
// Initialize the RENDER_INDEX table from sub-tables
|
|
init_render_index: {
|
|
.label __10 = $d
|
|
.label __11 = $d
|
|
.label render_index_xcol = 5
|
|
.label canvas_xcol = 3
|
|
.label canvas = $d
|
|
.label render_index = 5
|
|
.label x_col = $14
|
|
.label render_index_xcol_1 = $b
|
|
.label y_pos = $10
|
|
// Special column in sprite#9
|
|
.label render_ypos_table = 9
|
|
.label __12 = $d
|
|
// [837] phi from init_render_index to init_render_index::@1 [phi:init_render_index->init_render_index::@1]
|
|
__b1_from_init_render_index:
|
|
// [837] phi init_render_index::render_index_xcol#0 = RENDER_INDEX [phi:init_render_index->init_render_index::@1#0] -- pbuz1=pbuc1
|
|
lda #<RENDER_INDEX
|
|
sta.z render_index_xcol
|
|
lda #>RENDER_INDEX
|
|
sta.z render_index_xcol+1
|
|
// [837] phi init_render_index::x_col#2 = 0 [phi:init_render_index->init_render_index::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z x_col
|
|
jmp __b1
|
|
// init_render_index::@1
|
|
__b1:
|
|
// [838] if(init_render_index::x_col#2<$1a) goto init_render_index::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z x_col
|
|
cmp #$1a
|
|
bcc __b2
|
|
jmp __b3
|
|
// init_render_index::@3
|
|
__b3:
|
|
// [839] *(RENDER_INDEX+$18*$100+RENDER_OFFSET_YPOS_INC) = 0 -- _deref_pbuc1=vbuc2
|
|
// Fix the first entry of the inc_offset in the last column (set it to point to 0,0,6,6...)
|
|
lda #0
|
|
sta RENDER_INDEX+$18*$100+RENDER_OFFSET_YPOS_INC
|
|
// [840] *(RENDER_INDEX+$19*$100+RENDER_OFFSET_YPOS_INC) = 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta RENDER_INDEX+$19*$100+RENDER_OFFSET_YPOS_INC
|
|
jmp __breturn
|
|
// init_render_index::@return
|
|
__breturn:
|
|
// [841] return
|
|
rts
|
|
// init_render_index::@2
|
|
__b2:
|
|
// [842] if(init_render_index::x_col#2<$18) goto init_render_index::@4 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z x_col
|
|
cmp #$18
|
|
bcc __b4_from___b2
|
|
// [843] phi from init_render_index::@2 to init_render_index::@10 [phi:init_render_index::@2->init_render_index::@10]
|
|
__b10_from___b2:
|
|
jmp __b10
|
|
// init_render_index::@10
|
|
__b10:
|
|
// [844] phi from init_render_index::@10 to init_render_index::@4 [phi:init_render_index::@10->init_render_index::@4]
|
|
__b4_from___b10:
|
|
// [844] phi init_render_index::ypos_inc_offset#7 = $b [phi:init_render_index::@10->init_render_index::@4#0] -- vbuxx=vbuc1
|
|
ldx #$b
|
|
// [844] phi init_render_index::render_ypos_table#4 = RENDER_YPOS_9TH [phi:init_render_index::@10->init_render_index::@4#1] -- pwuz1=pwuc1
|
|
lda #<RENDER_YPOS_9TH
|
|
sta.z render_ypos_table
|
|
lda #>RENDER_YPOS_9TH
|
|
sta.z render_ypos_table+1
|
|
jmp __b4
|
|
// [844] phi from init_render_index::@2 to init_render_index::@4 [phi:init_render_index::@2->init_render_index::@4]
|
|
__b4_from___b2:
|
|
// [844] phi init_render_index::ypos_inc_offset#7 = 0 [phi:init_render_index::@2->init_render_index::@4#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [844] phi init_render_index::render_ypos_table#4 = RENDER_YPOS [phi:init_render_index::@2->init_render_index::@4#1] -- pwuz1=pwuc1
|
|
lda #<RENDER_YPOS
|
|
sta.z render_ypos_table
|
|
lda #>RENDER_YPOS
|
|
sta.z render_ypos_table+1
|
|
jmp __b4
|
|
// init_render_index::@4
|
|
__b4:
|
|
// [845] init_render_index::$9 = init_render_index::x_col#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z x_col
|
|
asl
|
|
// [846] init_render_index::canvas_xcol#0 = RENDER_XCOLS[init_render_index::$9] -- pbuz1=qbuc1_derefidx_vbuaa
|
|
tay
|
|
lda RENDER_XCOLS,y
|
|
sta.z canvas_xcol
|
|
lda RENDER_XCOLS+1,y
|
|
sta.z canvas_xcol+1
|
|
// [847] init_render_index::render_index_xcol#7 = init_render_index::render_index_xcol#0 -- pbuz1=pbuz2
|
|
lda.z render_index_xcol
|
|
sta.z render_index_xcol_1
|
|
lda.z render_index_xcol+1
|
|
sta.z render_index_xcol_1+1
|
|
// [848] phi from init_render_index::@4 to init_render_index::@5 [phi:init_render_index::@4->init_render_index::@5]
|
|
__b5_from___b4:
|
|
// [848] phi init_render_index::ypos_inc_offset#4 = init_render_index::ypos_inc_offset#7 [phi:init_render_index::@4->init_render_index::@5#0] -- register_copy
|
|
// [848] phi init_render_index::render_index_xcol#2 = init_render_index::render_index_xcol#7 [phi:init_render_index::@4->init_render_index::@5#1] -- register_copy
|
|
// [848] phi init_render_index::y_pos#2 = 0 [phi:init_render_index::@4->init_render_index::@5#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y_pos
|
|
jmp __b5
|
|
// init_render_index::@5
|
|
__b5:
|
|
// [849] if(init_render_index::y_pos#2<$94) goto init_render_index::@6 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z y_pos
|
|
cmp #$94
|
|
bcc __b6
|
|
jmp __b7
|
|
// init_render_index::@7
|
|
__b7:
|
|
// [850] init_render_index::render_index#1 = init_render_index::render_index_xcol#0 + $100 -- pbuz1=pbuz1_plus_vwuc1
|
|
lda.z render_index
|
|
clc
|
|
adc #<$100
|
|
sta.z render_index
|
|
lda.z render_index+1
|
|
adc #>$100
|
|
sta.z render_index+1
|
|
// [851] init_render_index::x_col#1 = ++ init_render_index::x_col#2 -- vbuz1=_inc_vbuz1
|
|
inc.z x_col
|
|
// [837] phi from init_render_index::@7 to init_render_index::@1 [phi:init_render_index::@7->init_render_index::@1]
|
|
__b1_from___b7:
|
|
// [837] phi init_render_index::render_index_xcol#0 = init_render_index::render_index#1 [phi:init_render_index::@7->init_render_index::@1#0] -- register_copy
|
|
// [837] phi init_render_index::x_col#2 = init_render_index::x_col#1 [phi:init_render_index::@7->init_render_index::@1#1] -- register_copy
|
|
jmp __b1
|
|
// init_render_index::@6
|
|
__b6:
|
|
// [852] init_render_index::$11 = (unsigned int)init_render_index::y_pos#2 -- vwuz1=_word_vbuz2
|
|
lda.z y_pos
|
|
sta.z __11
|
|
lda #0
|
|
sta.z __11+1
|
|
// [853] init_render_index::$10 = init_render_index::$11 << 1 -- vwuz1=vwuz1_rol_1
|
|
asl.z __10
|
|
rol.z __10+1
|
|
// [854] init_render_index::$12 = init_render_index::render_ypos_table#4 + init_render_index::$10 -- pwuz1=pwuz2_plus_vwuz1
|
|
clc
|
|
lda.z __12
|
|
adc.z render_ypos_table
|
|
sta.z __12
|
|
lda.z __12+1
|
|
adc.z render_ypos_table+1
|
|
sta.z __12+1
|
|
// [855] init_render_index::canvas#0 = init_render_index::canvas_xcol#0 + *init_render_index::$12 -- pbuz1=pbuz2_plus__deref_pwuz1
|
|
ldy #0
|
|
clc
|
|
lda (canvas),y
|
|
adc.z canvas_xcol
|
|
pha
|
|
iny
|
|
lda (canvas),y
|
|
adc.z canvas_xcol+1
|
|
sta.z canvas+1
|
|
pla
|
|
sta.z canvas
|
|
// [856] init_render_index::$5 = byte0 init_render_index::canvas#0 -- vbuaa=_byte0_pbuz1
|
|
lda.z canvas
|
|
// [857] *init_render_index::render_index_xcol#2 = init_render_index::$5 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (render_index_xcol_1),y
|
|
// [858] init_render_index::$6 = byte1 init_render_index::canvas#0 -- vbuaa=_byte1_pbuz1
|
|
lda.z canvas+1
|
|
// [859] init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_HI] = init_render_index::$6 -- pbuz1_derefidx_vbuc1=vbuaa
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
sta (render_index_xcol_1),y
|
|
// [860] init_render_index::render_index_xcol#2[RENDER_OFFSET_YPOS_INC] = init_render_index::ypos_inc_offset#4 -- pbuz1_derefidx_vbuc1=vbuxx
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
txa
|
|
sta (render_index_xcol_1),y
|
|
// [861] init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#4 + 2 -- vbuxx=vbuxx_plus_2
|
|
inx
|
|
inx
|
|
// [862] if(init_render_index::ypos_inc_offset#2<$17) goto init_render_index::@8 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$17
|
|
bcc __b8_from___b6
|
|
jmp __b9
|
|
// init_render_index::@9
|
|
__b9:
|
|
// [863] init_render_index::ypos_inc_offset#3 = init_render_index::ypos_inc_offset#2 - $15 -- vbuxx=vbuxx_minus_vbuc1
|
|
txa
|
|
axs #$15
|
|
// [864] phi from init_render_index::@6 init_render_index::@9 to init_render_index::@8 [phi:init_render_index::@6/init_render_index::@9->init_render_index::@8]
|
|
__b8_from___b6:
|
|
__b8_from___b9:
|
|
// [864] phi init_render_index::ypos_inc_offset#8 = init_render_index::ypos_inc_offset#2 [phi:init_render_index::@6/init_render_index::@9->init_render_index::@8#0] -- register_copy
|
|
jmp __b8
|
|
// init_render_index::@8
|
|
__b8:
|
|
// [865] init_render_index::render_index_xcol#1 = ++ init_render_index::render_index_xcol#2 -- pbuz1=_inc_pbuz1
|
|
inc.z render_index_xcol_1
|
|
bne !+
|
|
inc.z render_index_xcol_1+1
|
|
!:
|
|
// [866] init_render_index::y_pos#1 = init_render_index::y_pos#2 + 2 -- vbuz1=vbuz1_plus_2
|
|
lda.z y_pos
|
|
clc
|
|
adc #2
|
|
sta.z y_pos
|
|
// [848] phi from init_render_index::@8 to init_render_index::@5 [phi:init_render_index::@8->init_render_index::@5]
|
|
__b5_from___b8:
|
|
// [848] phi init_render_index::ypos_inc_offset#4 = init_render_index::ypos_inc_offset#8 [phi:init_render_index::@8->init_render_index::@5#0] -- register_copy
|
|
// [848] phi init_render_index::render_index_xcol#2 = init_render_index::render_index_xcol#1 [phi:init_render_index::@8->init_render_index::@5#1] -- register_copy
|
|
// [848] phi init_render_index::y_pos#2 = init_render_index::y_pos#1 [phi:init_render_index::@8->init_render_index::@5#2] -- register_copy
|
|
jmp __b5
|
|
}
|
|
// splash_show
|
|
// Show the splash screen
|
|
splash_show: {
|
|
// Show splash screen
|
|
.label splash = $b
|
|
.label ypos = $10
|
|
.label xcol = $14
|
|
// [868] phi from splash_show to splash_show::@1 [phi:splash_show->splash_show::@1]
|
|
__b1_from_splash_show:
|
|
// [868] phi splash_show::splash#4 = SPLASH [phi:splash_show->splash_show::@1#0] -- pbuz1=pbuc1
|
|
lda #<SPLASH
|
|
sta.z splash
|
|
lda #>SPLASH
|
|
sta.z splash+1
|
|
// [868] phi splash_show::xcol#2 = 0 [phi:splash_show->splash_show::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xcol
|
|
jmp __b1
|
|
// splash_show::@1
|
|
__b1:
|
|
// [869] if(splash_show::xcol#2<$19) goto splash_show::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xcol
|
|
cmp #$19
|
|
bcc __b2_from___b1
|
|
jmp __breturn
|
|
// splash_show::@return
|
|
__breturn:
|
|
// [870] return
|
|
rts
|
|
// [871] phi from splash_show::@1 to splash_show::@2 [phi:splash_show::@1->splash_show::@2]
|
|
__b2_from___b1:
|
|
// [871] phi splash_show::splash#2 = splash_show::splash#4 [phi:splash_show::@1->splash_show::@2#0] -- register_copy
|
|
// [871] phi splash_show::ypos#2 = 0 [phi:splash_show::@1->splash_show::@2#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ypos
|
|
jmp __b2
|
|
// splash_show::@2
|
|
__b2:
|
|
// [872] if(splash_show::ypos#2<$93) goto splash_show::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ypos
|
|
cmp #$93
|
|
bcc __b3
|
|
jmp __b4
|
|
// splash_show::@4
|
|
__b4:
|
|
// [873] splash_show::xcol#1 = ++ splash_show::xcol#2 -- vbuz1=_inc_vbuz1
|
|
inc.z xcol
|
|
// [868] phi from splash_show::@4 to splash_show::@1 [phi:splash_show::@4->splash_show::@1]
|
|
__b1_from___b4:
|
|
// [868] phi splash_show::splash#4 = splash_show::splash#2 [phi:splash_show::@4->splash_show::@1#0] -- register_copy
|
|
// [868] phi splash_show::xcol#2 = splash_show::xcol#1 [phi:splash_show::@4->splash_show::@1#1] -- register_copy
|
|
jmp __b1
|
|
// splash_show::@3
|
|
__b3:
|
|
// [874] splash_show::pixels#0 = *splash_show::splash#2 -- vbuxx=_deref_pbuz1
|
|
// Render 8px x 1px
|
|
ldy #0
|
|
lda (splash),y
|
|
tax
|
|
// [875] splash_show::splash#1 = ++ splash_show::splash#2 -- pbuz1=_inc_pbuz1
|
|
inc.z splash
|
|
bne !+
|
|
inc.z splash+1
|
|
!:
|
|
// [876] render::xcol#1 = splash_show::xcol#2
|
|
// [877] render::ypos#1 = splash_show::ypos#2
|
|
// [878] render::pixels#1 = splash_show::pixels#0 -- vbuz1=vbuxx
|
|
stx.z render.pixels
|
|
// [879] call render
|
|
// [999] phi from splash_show::@3 to render [phi:splash_show::@3->render]
|
|
render_from___b3:
|
|
// [999] phi render::pixels#4 = render::pixels#1 [phi:splash_show::@3->render#0] -- register_copy
|
|
// [999] phi render::xcol#2 = render::xcol#1 [phi:splash_show::@3->render#1] -- register_copy
|
|
// [999] phi render::ypos#2 = render::ypos#1 [phi:splash_show::@3->render#2] -- register_copy
|
|
jsr render
|
|
jmp __b5
|
|
// splash_show::@5
|
|
__b5:
|
|
// [880] splash_show::ypos#1 = ++ splash_show::ypos#2 -- vbuz1=_inc_vbuz1
|
|
inc.z ypos
|
|
// [871] phi from splash_show::@5 to splash_show::@2 [phi:splash_show::@5->splash_show::@2]
|
|
__b2_from___b5:
|
|
// [871] phi splash_show::splash#2 = splash_show::splash#1 [phi:splash_show::@5->splash_show::@2#0] -- register_copy
|
|
// [871] phi splash_show::ypos#2 = splash_show::ypos#1 [phi:splash_show::@5->splash_show::@2#1] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// init_bobs_restore
|
|
// Initialize bobs_restore with data to prevent crash on the first call
|
|
init_bobs_restore: {
|
|
.label CANVAS_HIDDEN = $ea00
|
|
.label bob_restore = 9
|
|
// [882] phi from init_bobs_restore to init_bobs_restore::@1 [phi:init_bobs_restore->init_bobs_restore::@1]
|
|
__b1_from_init_bobs_restore:
|
|
// [882] phi init_bobs_restore::bob_restore#5 = bobs_restore [phi:init_bobs_restore->init_bobs_restore::@1#0] -- pbuz1=pbuc1
|
|
lda #<bobs_restore
|
|
sta.z bob_restore
|
|
lda #>bobs_restore
|
|
sta.z bob_restore+1
|
|
// [882] phi init_bobs_restore::bob#2 = 0 [phi:init_bobs_restore->init_bobs_restore::@1#1] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b1
|
|
// init_bobs_restore::@1
|
|
__b1:
|
|
// [883] if(init_bobs_restore::bob#2<NUM_BOBS*2) goto init_bobs_restore::@3 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #NUM_BOBS*2
|
|
bcc __b3_from___b1
|
|
jmp __b2
|
|
// init_bobs_restore::@2
|
|
__b2:
|
|
// [884] logic_tile_ptr = LEVEL_TILES+(unsigned int)$40*$12+$c -- pbuz1=pbuc1
|
|
// Also set the logic tile to something sane
|
|
lda #<LEVEL_TILES+$40*$12+$c
|
|
sta.z logic_tile_ptr
|
|
lda #>LEVEL_TILES+$40*$12+$c
|
|
sta.z logic_tile_ptr+1
|
|
// [885] logic_tile_xcol = $c -- vbuz1=vbuc1
|
|
lda #$c
|
|
sta.z logic_tile_xcol
|
|
// [886] logic_tile_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z logic_tile_yfine
|
|
jmp __breturn
|
|
// init_bobs_restore::@return
|
|
__breturn:
|
|
// [887] return
|
|
rts
|
|
// [888] phi from init_bobs_restore::@1 to init_bobs_restore::@3 [phi:init_bobs_restore::@1->init_bobs_restore::@3]
|
|
__b3_from___b1:
|
|
// [888] phi init_bobs_restore::i#2 = 0 [phi:init_bobs_restore::@1->init_bobs_restore::@3#0] -- vbuyy=vbuc1
|
|
ldy #0
|
|
jmp __b3
|
|
// init_bobs_restore::@3
|
|
__b3:
|
|
// [889] if(init_bobs_restore::i#2<SIZE_BOB_RESTORE) goto init_bobs_restore::@4 -- vbuyy_lt_vbuc1_then_la1
|
|
cpy #SIZE_BOB_RESTORE
|
|
bcc __b4
|
|
jmp __b5
|
|
// init_bobs_restore::@5
|
|
__b5:
|
|
// [890] *init_bobs_restore::bob_restore#5 = 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
ldy #0
|
|
sta (bob_restore),y
|
|
// [891] init_bobs_restore::bob_restore#5[1] = byte1 init_bobs_restore::CANVAS_HIDDEN -- pbuz1_derefidx_vbuc1=vbuc2
|
|
lda #>CANVAS_HIDDEN
|
|
ldy #1
|
|
sta (bob_restore),y
|
|
// [892] init_bobs_restore::bob_restore#5[3] = 0 -- pbuz1_derefidx_vbuc1=vbuc2
|
|
lda #0
|
|
ldy #3
|
|
sta (bob_restore),y
|
|
// [893] init_bobs_restore::bob_restore#5[4] = byte1 init_bobs_restore::CANVAS_HIDDEN -- pbuz1_derefidx_vbuc1=vbuc2
|
|
lda #>CANVAS_HIDDEN
|
|
ldy #4
|
|
sta (bob_restore),y
|
|
// [894] init_bobs_restore::bob_restore#1 = init_bobs_restore::bob_restore#5 + SIZE_BOB_RESTORE -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #SIZE_BOB_RESTORE
|
|
clc
|
|
adc.z bob_restore
|
|
sta.z bob_restore
|
|
bcc !+
|
|
inc.z bob_restore+1
|
|
!:
|
|
// [895] init_bobs_restore::bob#1 = ++ init_bobs_restore::bob#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [882] phi from init_bobs_restore::@5 to init_bobs_restore::@1 [phi:init_bobs_restore::@5->init_bobs_restore::@1]
|
|
__b1_from___b5:
|
|
// [882] phi init_bobs_restore::bob_restore#5 = init_bobs_restore::bob_restore#1 [phi:init_bobs_restore::@5->init_bobs_restore::@1#0] -- register_copy
|
|
// [882] phi init_bobs_restore::bob#2 = init_bobs_restore::bob#1 [phi:init_bobs_restore::@5->init_bobs_restore::@1#1] -- register_copy
|
|
jmp __b1
|
|
// init_bobs_restore::@4
|
|
__b4:
|
|
// [896] init_bobs_restore::bob_restore#5[init_bobs_restore::i#2] = 0 -- pbuz1_derefidx_vbuyy=vbuc1
|
|
lda #0
|
|
sta (bob_restore),y
|
|
// [897] init_bobs_restore::i#1 = ++ init_bobs_restore::i#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [888] phi from init_bobs_restore::@4 to init_bobs_restore::@3 [phi:init_bobs_restore::@4->init_bobs_restore::@3]
|
|
__b3_from___b4:
|
|
// [888] phi init_bobs_restore::i#2 = init_bobs_restore::i#1 [phi:init_bobs_restore::@4->init_bobs_restore::@3#0] -- register_copy
|
|
jmp __b3
|
|
}
|
|
// init_sprite_pointers
|
|
// Initialize sprite pointers on all screens (in both graphics banks)
|
|
init_sprite_pointers: {
|
|
.const SPRITE_ID_0 = $ff&(SPRITES_1&$3fff)/$40
|
|
.label sprites_ptr_1 = 9
|
|
.label sprites_ptr_2 = 7
|
|
// [899] phi from init_sprite_pointers to init_sprite_pointers::@1 [phi:init_sprite_pointers->init_sprite_pointers::@1]
|
|
__b1_from_init_sprite_pointers:
|
|
// [899] phi init_sprite_pointers::sprites_ptr_2#5 = SCREENS_2+OFFSET_SPRITE_PTRS [phi:init_sprite_pointers->init_sprite_pointers::@1#0] -- pbuz1=pbuc1
|
|
lda #<SCREENS_2+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_2
|
|
lda #>SCREENS_2+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_2+1
|
|
// [899] phi init_sprite_pointers::sprites_ptr_1#5 = SCREENS_1+OFFSET_SPRITE_PTRS [phi:init_sprite_pointers->init_sprite_pointers::@1#1] -- pbuz1=pbuc1
|
|
lda #<SCREENS_1+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_1
|
|
lda #>SCREENS_1+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_1+1
|
|
// [899] phi init_sprite_pointers::screen#2 = 0 [phi:init_sprite_pointers->init_sprite_pointers::@1#2] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b1
|
|
// init_sprite_pointers::@1
|
|
__b1:
|
|
// [900] if(init_sprite_pointers::screen#2<$e) goto init_sprite_pointers::@2 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$e
|
|
bcc __b2_from___b1
|
|
jmp __breturn
|
|
// init_sprite_pointers::@return
|
|
__breturn:
|
|
// [901] return
|
|
rts
|
|
// [902] phi from init_sprite_pointers::@1 to init_sprite_pointers::@2 [phi:init_sprite_pointers::@1->init_sprite_pointers::@2]
|
|
__b2_from___b1:
|
|
// [902] phi init_sprite_pointers::sprite#2 = 0 [phi:init_sprite_pointers::@1->init_sprite_pointers::@2#0] -- vbuyy=vbuc1
|
|
ldy #0
|
|
jmp __b2
|
|
// init_sprite_pointers::@2
|
|
__b2:
|
|
// [903] if(init_sprite_pointers::sprite#2<8) goto init_sprite_pointers::@3 -- vbuyy_lt_vbuc1_then_la1
|
|
cpy #8
|
|
bcc __b3
|
|
jmp __b4
|
|
// init_sprite_pointers::@4
|
|
__b4:
|
|
// [904] init_sprite_pointers::sprites_ptr_1#1 = init_sprite_pointers::sprites_ptr_1#5 + $400 -- pbuz1=pbuz1_plus_vwuc1
|
|
lda.z sprites_ptr_1
|
|
clc
|
|
adc #<$400
|
|
sta.z sprites_ptr_1
|
|
lda.z sprites_ptr_1+1
|
|
adc #>$400
|
|
sta.z sprites_ptr_1+1
|
|
// [905] init_sprite_pointers::sprites_ptr_2#1 = init_sprite_pointers::sprites_ptr_2#5 + $400 -- pbuz1=pbuz1_plus_vwuc1
|
|
lda.z sprites_ptr_2
|
|
clc
|
|
adc #<$400
|
|
sta.z sprites_ptr_2
|
|
lda.z sprites_ptr_2+1
|
|
adc #>$400
|
|
sta.z sprites_ptr_2+1
|
|
// [906] init_sprite_pointers::screen#1 = ++ init_sprite_pointers::screen#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [899] phi from init_sprite_pointers::@4 to init_sprite_pointers::@1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1]
|
|
__b1_from___b4:
|
|
// [899] phi init_sprite_pointers::sprites_ptr_2#5 = init_sprite_pointers::sprites_ptr_2#1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1#0] -- register_copy
|
|
// [899] phi init_sprite_pointers::sprites_ptr_1#5 = init_sprite_pointers::sprites_ptr_1#1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1#1] -- register_copy
|
|
// [899] phi init_sprite_pointers::screen#2 = init_sprite_pointers::screen#1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1#2] -- register_copy
|
|
jmp __b1
|
|
// init_sprite_pointers::@3
|
|
__b3:
|
|
// [907] init_sprite_pointers::$2 = init_sprite_pointers::SPRITE_ID_0 + init_sprite_pointers::screen#2 -- vbuaa=vbuc1_plus_vbuxx
|
|
txa
|
|
clc
|
|
adc #SPRITE_ID_0
|
|
// [908] init_sprite_pointers::sprite_id#0 = init_sprite_pointers::$2 + init_sprite_pointers::sprites_id[init_sprite_pointers::sprite#2] -- vbuaa=vbuaa_plus_pbuc1_derefidx_vbuyy
|
|
clc
|
|
adc sprites_id,y
|
|
// [909] init_sprite_pointers::sprites_ptr_1#5[init_sprite_pointers::sprite#2] = init_sprite_pointers::sprite_id#0 -- pbuz1_derefidx_vbuyy=vbuaa
|
|
sta (sprites_ptr_1),y
|
|
// [910] init_sprite_pointers::sprites_ptr_2#5[init_sprite_pointers::sprite#2] = init_sprite_pointers::sprite_id#0 -- pbuz1_derefidx_vbuyy=vbuaa
|
|
sta (sprites_ptr_2),y
|
|
// [911] init_sprite_pointers::sprite#1 = ++ init_sprite_pointers::sprite#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [902] phi from init_sprite_pointers::@3 to init_sprite_pointers::@2 [phi:init_sprite_pointers::@3->init_sprite_pointers::@2]
|
|
__b2_from___b3:
|
|
// [902] phi init_sprite_pointers::sprite#2 = init_sprite_pointers::sprite#1 [phi:init_sprite_pointers::@3->init_sprite_pointers::@2#0] -- register_copy
|
|
jmp __b2
|
|
.segment Data
|
|
sprites_id: .byte 0, $70, $60, $50, $40, $30, $20, $10
|
|
}
|
|
.segment Code
|
|
// memcpy
|
|
// Copy block of memory (forwards)
|
|
// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination.
|
|
// void * memcpy(void *destination, void *source, unsigned int num)
|
|
memcpy: {
|
|
.label destination = INTRO_MUSIC_CRUNCHED_UPPER
|
|
.label source = INTRO_MUSIC_CRUNCHED
|
|
.label src_end = source+INTRO_MUSIC_CRUNCHED_SIZE
|
|
.label dst = 9
|
|
.label src = 7
|
|
// [913] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1]
|
|
__b1_from_memcpy:
|
|
// [913] phi memcpy::dst#2 = (char *)memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1
|
|
lda #<destination
|
|
sta.z dst
|
|
lda #>destination
|
|
sta.z dst+1
|
|
// [913] phi memcpy::src#2 = (char *)memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1
|
|
lda #<source
|
|
sta.z src
|
|
lda #>source
|
|
sta.z src+1
|
|
jmp __b1
|
|
// memcpy::@1
|
|
__b1:
|
|
// [914] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1
|
|
lda.z src+1
|
|
cmp #>src_end
|
|
bne __b2
|
|
lda.z src
|
|
cmp #<src_end
|
|
bne __b2
|
|
jmp __breturn
|
|
// memcpy::@return
|
|
__breturn:
|
|
// [915] return
|
|
rts
|
|
// memcpy::@2
|
|
__b2:
|
|
// [916] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (src),y
|
|
ldy #0
|
|
sta (dst),y
|
|
// [917] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dst
|
|
bne !+
|
|
inc.z dst+1
|
|
!:
|
|
// [918] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1
|
|
inc.z src
|
|
bne !+
|
|
inc.z src+1
|
|
!:
|
|
// [913] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1]
|
|
__b1_from___b2:
|
|
// [913] phi memcpy::dst#2 = memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy
|
|
// [913] phi memcpy::src#2 = memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// joyinit
|
|
// Prepare for joystick control
|
|
joyinit: {
|
|
// [919] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 0 -- _deref_pbuc1=vbuc2
|
|
// Joystick Read Mode
|
|
lda #0
|
|
sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR
|
|
jmp __breturn
|
|
// joyinit::@return
|
|
__breturn:
|
|
// [920] return
|
|
rts
|
|
}
|
|
// joyfire
|
|
// Return 1 if joy #2 fire is pressed
|
|
joyfire: {
|
|
// [921] joyfire::$0 = *((char *)CIA1) & $10 -- vbuaa=_deref_pbuc1_band_vbuc2
|
|
lda #$10
|
|
and CIA1
|
|
// [922] if(joyfire::$0==0) goto joyfire::@1 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq __b1_from_joyfire
|
|
// [924] phi from joyfire to joyfire::@return [phi:joyfire->joyfire::@return]
|
|
__breturn_from_joyfire:
|
|
// [924] phi joyfire::return#4 = 0 [phi:joyfire->joyfire::@return#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
jmp __breturn
|
|
// [923] phi from joyfire to joyfire::@1 [phi:joyfire->joyfire::@1]
|
|
__b1_from_joyfire:
|
|
jmp __b1
|
|
// joyfire::@1
|
|
__b1:
|
|
// [924] phi from joyfire::@1 to joyfire::@return [phi:joyfire::@1->joyfire::@return]
|
|
__breturn_from___b1:
|
|
// [924] phi joyfire::return#4 = 1 [phi:joyfire::@1->joyfire::@return#0] -- vbuaa=vbuc1
|
|
lda #1
|
|
jmp __breturn
|
|
// joyfire::@return
|
|
__breturn:
|
|
// [925] return
|
|
rts
|
|
}
|
|
// init_level_tile_directions
|
|
// Initialize the LEVEL_TILES_DIRECTIONS table with bits representing all open (non-blocked) movement directions from a tile
|
|
init_level_tile_directions: {
|
|
.label directions = 9
|
|
.label ytile = $14
|
|
.label open_directions = $f
|
|
.label xtile = $10
|
|
// [927] phi from init_level_tile_directions to init_level_tile_directions::@1 [phi:init_level_tile_directions->init_level_tile_directions::@1]
|
|
__b1_from_init_level_tile_directions:
|
|
// [927] phi init_level_tile_directions::directions#7 = LEVEL_TILES_DIRECTIONS [phi:init_level_tile_directions->init_level_tile_directions::@1#0] -- pbuz1=pbuc1
|
|
lda #<LEVEL_TILES_DIRECTIONS
|
|
sta.z directions
|
|
lda #>LEVEL_TILES_DIRECTIONS
|
|
sta.z directions+1
|
|
// [927] phi init_level_tile_directions::ytile#15 = 0 [phi:init_level_tile_directions->init_level_tile_directions::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ytile
|
|
jmp __b1
|
|
// init_level_tile_directions::@1
|
|
__b1:
|
|
// [928] if(init_level_tile_directions::ytile#15<$25) goto init_level_tile_directions::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ytile
|
|
cmp #$25
|
|
bcc __b2_from___b1
|
|
jmp __breturn
|
|
// init_level_tile_directions::@return
|
|
__breturn:
|
|
// [929] return
|
|
rts
|
|
// [930] phi from init_level_tile_directions::@1 to init_level_tile_directions::@2 [phi:init_level_tile_directions::@1->init_level_tile_directions::@2]
|
|
__b2_from___b1:
|
|
// [930] phi init_level_tile_directions::xtile#10 = 0 [phi:init_level_tile_directions::@1->init_level_tile_directions::@2#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xtile
|
|
jmp __b2
|
|
// init_level_tile_directions::@2
|
|
__b2:
|
|
// [931] if(init_level_tile_directions::xtile#10<$32) goto init_level_tile_directions::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xtile
|
|
cmp #$32
|
|
bcc __b3
|
|
jmp __b4
|
|
// init_level_tile_directions::@4
|
|
__b4:
|
|
// [932] init_level_tile_directions::directions#1 = init_level_tile_directions::directions#7 + $40 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$40
|
|
clc
|
|
adc.z directions
|
|
sta.z directions
|
|
bcc !+
|
|
inc.z directions+1
|
|
!:
|
|
// [933] init_level_tile_directions::ytile#1 = ++ init_level_tile_directions::ytile#15 -- vbuz1=_inc_vbuz1
|
|
inc.z ytile
|
|
// [927] phi from init_level_tile_directions::@4 to init_level_tile_directions::@1 [phi:init_level_tile_directions::@4->init_level_tile_directions::@1]
|
|
__b1_from___b4:
|
|
// [927] phi init_level_tile_directions::directions#7 = init_level_tile_directions::directions#1 [phi:init_level_tile_directions::@4->init_level_tile_directions::@1#0] -- register_copy
|
|
// [927] phi init_level_tile_directions::ytile#15 = init_level_tile_directions::ytile#1 [phi:init_level_tile_directions::@4->init_level_tile_directions::@1#1] -- register_copy
|
|
jmp __b1
|
|
// init_level_tile_directions::@3
|
|
__b3:
|
|
// [934] level_tile_get::xtile#0 = init_level_tile_directions::xtile#10 - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z xtile
|
|
dex
|
|
// [935] level_tile_get::ytile#0 = init_level_tile_directions::ytile#15 -- vbuaa=vbuz1
|
|
lda.z ytile
|
|
// [936] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@3 to level_tile_get [phi:init_level_tile_directions::@3->level_tile_get]
|
|
level_tile_get_from___b3:
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#0 [phi:init_level_tile_directions::@3->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#0 [phi:init_level_tile_directions::@3->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// [937] level_tile_get::return#3 = level_tile_get::return#2
|
|
jmp __b13
|
|
// init_level_tile_directions::@13
|
|
__b13:
|
|
// [938] init_level_tile_directions::$3 = level_tile_get::return#3 -- vbuxx=vbuaa
|
|
tax
|
|
// [939] if(TILES_TYPE[init_level_tile_directions::$3]==WALL) goto init_level_tile_directions::@5 -- pbuc1_derefidx_vbuxx_eq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #WALL
|
|
beq __b5_from___b13
|
|
// [940] phi from init_level_tile_directions::@13 to init_level_tile_directions::@9 [phi:init_level_tile_directions::@13->init_level_tile_directions::@9]
|
|
__b9_from___b13:
|
|
jmp __b9
|
|
// init_level_tile_directions::@9
|
|
__b9:
|
|
// [941] phi from init_level_tile_directions::@9 to init_level_tile_directions::@5 [phi:init_level_tile_directions::@9->init_level_tile_directions::@5]
|
|
__b5_from___b9:
|
|
// [941] phi init_level_tile_directions::open_directions#11 = LEFT [phi:init_level_tile_directions::@9->init_level_tile_directions::@5#0] -- vbuz1=vbuc1
|
|
lda #LEFT
|
|
sta.z open_directions
|
|
jmp __b5
|
|
// [941] phi from init_level_tile_directions::@13 to init_level_tile_directions::@5 [phi:init_level_tile_directions::@13->init_level_tile_directions::@5]
|
|
__b5_from___b13:
|
|
// [941] phi init_level_tile_directions::open_directions#11 = 0 [phi:init_level_tile_directions::@13->init_level_tile_directions::@5#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z open_directions
|
|
jmp __b5
|
|
// init_level_tile_directions::@5
|
|
__b5:
|
|
// [942] level_tile_get::xtile#1 = init_level_tile_directions::xtile#10 + 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z xtile
|
|
inx
|
|
// [943] level_tile_get::ytile#1 = init_level_tile_directions::ytile#15 -- vbuaa=vbuz1
|
|
lda.z ytile
|
|
// [944] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@5 to level_tile_get [phi:init_level_tile_directions::@5->level_tile_get]
|
|
level_tile_get_from___b5:
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#1 [phi:init_level_tile_directions::@5->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#1 [phi:init_level_tile_directions::@5->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// [945] level_tile_get::return#4 = level_tile_get::return#2
|
|
jmp __b14
|
|
// init_level_tile_directions::@14
|
|
__b14:
|
|
// [946] init_level_tile_directions::$7 = level_tile_get::return#4 -- vbuxx=vbuaa
|
|
tax
|
|
// [947] if(TILES_TYPE[init_level_tile_directions::$7]==WALL) goto init_level_tile_directions::@6 -- pbuc1_derefidx_vbuxx_eq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #WALL
|
|
beq __b6_from___b14
|
|
jmp __b10
|
|
// init_level_tile_directions::@10
|
|
__b10:
|
|
// [948] init_level_tile_directions::open_directions#2 = init_level_tile_directions::open_directions#11 | RIGHT -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #RIGHT
|
|
ora.z open_directions
|
|
sta.z open_directions
|
|
// [949] phi from init_level_tile_directions::@10 init_level_tile_directions::@14 to init_level_tile_directions::@6 [phi:init_level_tile_directions::@10/init_level_tile_directions::@14->init_level_tile_directions::@6]
|
|
__b6_from___b10:
|
|
__b6_from___b14:
|
|
// [949] phi init_level_tile_directions::open_directions#12 = init_level_tile_directions::open_directions#2 [phi:init_level_tile_directions::@10/init_level_tile_directions::@14->init_level_tile_directions::@6#0] -- register_copy
|
|
jmp __b6
|
|
// init_level_tile_directions::@6
|
|
__b6:
|
|
// [950] level_tile_get::ytile#2 = init_level_tile_directions::ytile#15 - 1 -- vbuaa=vbuz1_minus_1
|
|
lda.z ytile
|
|
sec
|
|
sbc #1
|
|
// [951] level_tile_get::xtile#2 = init_level_tile_directions::xtile#10 -- vbuxx=vbuz1
|
|
ldx.z xtile
|
|
// [952] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@6 to level_tile_get [phi:init_level_tile_directions::@6->level_tile_get]
|
|
level_tile_get_from___b6:
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#2 [phi:init_level_tile_directions::@6->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#2 [phi:init_level_tile_directions::@6->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// [953] level_tile_get::return#10 = level_tile_get::return#2
|
|
jmp __b15
|
|
// init_level_tile_directions::@15
|
|
__b15:
|
|
// [954] init_level_tile_directions::$11 = level_tile_get::return#10
|
|
// [955] if(TILES_TYPE[init_level_tile_directions::$11]==WALL) goto init_level_tile_directions::@7 -- pbuc1_derefidx_vbuaa_eq_vbuc2_then_la1
|
|
tay
|
|
lda TILES_TYPE,y
|
|
cmp #WALL
|
|
beq __b7_from___b15
|
|
jmp __b11
|
|
// init_level_tile_directions::@11
|
|
__b11:
|
|
// [956] init_level_tile_directions::open_directions#3 = init_level_tile_directions::open_directions#12 | UP -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #UP
|
|
ora.z open_directions
|
|
sta.z open_directions
|
|
// [957] phi from init_level_tile_directions::@11 init_level_tile_directions::@15 to init_level_tile_directions::@7 [phi:init_level_tile_directions::@11/init_level_tile_directions::@15->init_level_tile_directions::@7]
|
|
__b7_from___b11:
|
|
__b7_from___b15:
|
|
// [957] phi init_level_tile_directions::open_directions#13 = init_level_tile_directions::open_directions#3 [phi:init_level_tile_directions::@11/init_level_tile_directions::@15->init_level_tile_directions::@7#0] -- register_copy
|
|
jmp __b7
|
|
// init_level_tile_directions::@7
|
|
__b7:
|
|
// [958] level_tile_get::ytile#3 = init_level_tile_directions::ytile#15 + 1 -- vbuaa=vbuz1_plus_1
|
|
lda.z ytile
|
|
clc
|
|
adc #1
|
|
// [959] level_tile_get::xtile#3 = init_level_tile_directions::xtile#10 -- vbuxx=vbuz1
|
|
ldx.z xtile
|
|
// [960] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@7 to level_tile_get [phi:init_level_tile_directions::@7->level_tile_get]
|
|
level_tile_get_from___b7:
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#3 [phi:init_level_tile_directions::@7->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#3 [phi:init_level_tile_directions::@7->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// [961] level_tile_get::return#11 = level_tile_get::return#2
|
|
jmp __b16
|
|
// init_level_tile_directions::@16
|
|
__b16:
|
|
// [962] init_level_tile_directions::$15 = level_tile_get::return#11
|
|
// [963] if(TILES_TYPE[init_level_tile_directions::$15]==WALL) goto init_level_tile_directions::@8 -- pbuc1_derefidx_vbuaa_eq_vbuc2_then_la1
|
|
tay
|
|
lda TILES_TYPE,y
|
|
cmp #WALL
|
|
beq __b8_from___b16
|
|
jmp __b12
|
|
// init_level_tile_directions::@12
|
|
__b12:
|
|
// [964] init_level_tile_directions::open_directions#4 = init_level_tile_directions::open_directions#13 | DOWN -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #DOWN
|
|
ora.z open_directions
|
|
sta.z open_directions
|
|
// [965] phi from init_level_tile_directions::@12 init_level_tile_directions::@16 to init_level_tile_directions::@8 [phi:init_level_tile_directions::@12/init_level_tile_directions::@16->init_level_tile_directions::@8]
|
|
__b8_from___b12:
|
|
__b8_from___b16:
|
|
// [965] phi init_level_tile_directions::open_directions#8 = init_level_tile_directions::open_directions#4 [phi:init_level_tile_directions::@12/init_level_tile_directions::@16->init_level_tile_directions::@8#0] -- register_copy
|
|
jmp __b8
|
|
// init_level_tile_directions::@8
|
|
__b8:
|
|
// [966] init_level_tile_directions::directions#7[init_level_tile_directions::xtile#10] = init_level_tile_directions::open_directions#8 -- pbuz1_derefidx_vbuz2=vbuz3
|
|
lda.z open_directions
|
|
ldy.z xtile
|
|
sta (directions),y
|
|
// [967] init_level_tile_directions::xtile#1 = ++ init_level_tile_directions::xtile#10 -- vbuz1=_inc_vbuz1
|
|
inc.z xtile
|
|
// [930] phi from init_level_tile_directions::@8 to init_level_tile_directions::@2 [phi:init_level_tile_directions::@8->init_level_tile_directions::@2]
|
|
__b2_from___b8:
|
|
// [930] phi init_level_tile_directions::xtile#10 = init_level_tile_directions::xtile#1 [phi:init_level_tile_directions::@8->init_level_tile_directions::@2#0] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// level_show
|
|
// Show the level by rendering all tiles
|
|
// Returns the number of pills on the level
|
|
level_show: {
|
|
.label return = 9
|
|
.label level = 7
|
|
.label ytile = $10
|
|
.label tile_right = 2
|
|
.label xtile = $13
|
|
.label count = 9
|
|
.label xcol = $f
|
|
// [969] phi from level_show to level_show::@1 [phi:level_show->level_show::@1]
|
|
__b1_from_level_show:
|
|
// [969] phi level_show::level#8 = LEVEL_TILES [phi:level_show->level_show::@1#0] -- pbuz1=pbuc1
|
|
lda #<LEVEL_TILES
|
|
sta.z level
|
|
lda #>LEVEL_TILES
|
|
sta.z level+1
|
|
// [969] phi level_show::count#12 = 0 [phi:level_show->level_show::@1#1] -- vwuz1=vwuc1
|
|
lda #<0
|
|
sta.z count
|
|
lda #>0
|
|
sta.z count+1
|
|
// [969] phi level_show::ytile#2 = 0 [phi:level_show->level_show::@1#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ytile
|
|
jmp __b1
|
|
// level_show::@1
|
|
__b1:
|
|
// [970] if(level_show::ytile#2<$25) goto level_show::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ytile
|
|
cmp #$25
|
|
bcc __b2_from___b1
|
|
jmp __breturn
|
|
// level_show::@return
|
|
__breturn:
|
|
// [971] return
|
|
rts
|
|
// [972] phi from level_show::@1 to level_show::@2 [phi:level_show::@1->level_show::@2]
|
|
__b2_from___b1:
|
|
// [972] phi level_show::count#10 = level_show::count#12 [phi:level_show::@1->level_show::@2#0] -- register_copy
|
|
// [972] phi level_show::xtile#3 = 0 [phi:level_show::@1->level_show::@2#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xtile
|
|
// [972] phi level_show::xcol#2 = 0 [phi:level_show::@1->level_show::@2#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xcol
|
|
jmp __b2
|
|
// level_show::@2
|
|
__b2:
|
|
// [973] if(level_show::xcol#2<$19) goto level_show::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xcol
|
|
cmp #$19
|
|
bcc __b3
|
|
jmp __b4
|
|
// level_show::@4
|
|
__b4:
|
|
// [974] level_show::level#1 = level_show::level#8 + $40 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$40
|
|
clc
|
|
adc.z level
|
|
sta.z level
|
|
bcc !+
|
|
inc.z level+1
|
|
!:
|
|
// [975] level_show::ytile#1 = ++ level_show::ytile#2 -- vbuz1=_inc_vbuz1
|
|
inc.z ytile
|
|
// [969] phi from level_show::@4 to level_show::@1 [phi:level_show::@4->level_show::@1]
|
|
__b1_from___b4:
|
|
// [969] phi level_show::level#8 = level_show::level#1 [phi:level_show::@4->level_show::@1#0] -- register_copy
|
|
// [969] phi level_show::count#12 = level_show::count#10 [phi:level_show::@4->level_show::@1#1] -- register_copy
|
|
// [969] phi level_show::ytile#2 = level_show::ytile#1 [phi:level_show::@4->level_show::@1#2] -- register_copy
|
|
jmp __b1
|
|
// level_show::@3
|
|
__b3:
|
|
// [976] level_show::tile_left#0 = level_show::level#8[level_show::xtile#3] -- vbuxx=pbuz1_derefidx_vbuz2
|
|
ldy.z xtile
|
|
lda (level),y
|
|
tax
|
|
// [977] level_show::xtile#1 = ++ level_show::xtile#3 -- vbuyy=_inc_vbuz1
|
|
ldy.z xtile
|
|
iny
|
|
// [978] if(TILES_TYPE[level_show::tile_left#0]!=PILL) goto level_show::@5 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #PILL
|
|
bne __b5_from___b3
|
|
jmp __b7
|
|
// level_show::@7
|
|
__b7:
|
|
// [979] level_show::count#1 = ++ level_show::count#10 -- vwuz1=_inc_vwuz1
|
|
inc.z count
|
|
bne !+
|
|
inc.z count+1
|
|
!:
|
|
// [980] phi from level_show::@3 level_show::@7 to level_show::@5 [phi:level_show::@3/level_show::@7->level_show::@5]
|
|
__b5_from___b3:
|
|
__b5_from___b7:
|
|
// [980] phi level_show::count#5 = level_show::count#10 [phi:level_show::@3/level_show::@7->level_show::@5#0] -- register_copy
|
|
jmp __b5
|
|
// level_show::@5
|
|
__b5:
|
|
// [981] level_show::tile_right#0 = level_show::level#8[level_show::xtile#1] -- vbuz1=pbuz2_derefidx_vbuyy
|
|
lda (level),y
|
|
sta.z tile_right
|
|
// [982] level_show::xtile#2 = ++ level_show::xtile#1 -- vbuz1=_inc_vbuyy
|
|
iny
|
|
sty.z xtile
|
|
// [983] if(TILES_TYPE[level_show::tile_right#0]!=PILL) goto level_show::@6 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
|
lda #PILL
|
|
ldy.z tile_right
|
|
cmp TILES_TYPE,y
|
|
bne __b6_from___b5
|
|
jmp __b8
|
|
// level_show::@8
|
|
__b8:
|
|
// [984] level_show::count#2 = ++ level_show::count#5 -- vwuz1=_inc_vwuz1
|
|
inc.z count
|
|
bne !+
|
|
inc.z count+1
|
|
!:
|
|
// [985] phi from level_show::@5 level_show::@8 to level_show::@6 [phi:level_show::@5/level_show::@8->level_show::@6]
|
|
__b6_from___b5:
|
|
__b6_from___b8:
|
|
// [985] phi level_show::count#11 = level_show::count#5 [phi:level_show::@5/level_show::@8->level_show::@6#0] -- register_copy
|
|
jmp __b6
|
|
// level_show::@6
|
|
__b6:
|
|
// [986] render_tiles::xcol#0 = level_show::xcol#2
|
|
// [987] render_tiles::ytile#0 = level_show::ytile#2
|
|
// [988] render_tiles::tile_left#0 = level_show::tile_left#0
|
|
// [989] render_tiles::tile_right#0 = level_show::tile_right#0 -- vbuyy=vbuz1
|
|
ldy.z tile_right
|
|
// [990] call render_tiles
|
|
jsr render_tiles
|
|
jmp __b9
|
|
// level_show::@9
|
|
__b9:
|
|
// [991] level_show::xcol#1 = ++ level_show::xcol#2 -- vbuz1=_inc_vbuz1
|
|
inc.z xcol
|
|
// [972] phi from level_show::@9 to level_show::@2 [phi:level_show::@9->level_show::@2]
|
|
__b2_from___b9:
|
|
// [972] phi level_show::count#10 = level_show::count#11 [phi:level_show::@9->level_show::@2#0] -- register_copy
|
|
// [972] phi level_show::xtile#3 = level_show::xtile#2 [phi:level_show::@9->level_show::@2#1] -- register_copy
|
|
// [972] phi level_show::xcol#2 = level_show::xcol#1 [phi:level_show::@9->level_show::@2#2] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// pacman_sound_init
|
|
// Sound effects for pacman
|
|
pacman_sound_init: {
|
|
// [992] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = $f -- _deref_pbuc1=vbuc2
|
|
// Set master volume
|
|
lda #$f
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE
|
|
// [993] *((unsigned int *)SID) = 0 -- _deref_pwuc1=vbuc2
|
|
// Channel 1 is Pacman eating sound
|
|
lda #<0
|
|
sta SID
|
|
lda #>0
|
|
sta SID+1
|
|
// [994] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = 0 -- _deref_pwuc1=vbuc2
|
|
lda #<0
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH
|
|
lda #>0
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH+1
|
|
// [995] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL
|
|
// [996] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY
|
|
// [997] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = $f0 -- _deref_pbuc1=vbuc2
|
|
lda #$f0
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE
|
|
jmp __breturn
|
|
// pacman_sound_init::@return
|
|
__breturn:
|
|
// [998] return
|
|
rts
|
|
}
|
|
// render
|
|
// Render graphic pixels into the 9 all-border sprites
|
|
// - xcol: x column (0-24). The x-column represents 8 bits of data, 4 mc pixels, 16 on-screen pixels (due to x-expanded sprites)
|
|
// - ypos: y position (0-145). The y-position is a line on the screen. Since every second line is black each ypos represents a 2 pixel distance.
|
|
// - pixels: The pixel data to set
|
|
// void render(__zp($14) char xcol, __zp($10) char ypos, __zp($13) char pixels)
|
|
render: {
|
|
.label render_index_xcol = $d
|
|
.label canvas_offset = 9
|
|
.label canvas1 = 7
|
|
.label canvas2 = 9
|
|
.label ypix = 2
|
|
.label xcol = $14
|
|
.label ypos = $10
|
|
.label pixels = $13
|
|
// [1000] render::ytile#0 = render::ypos#2 >> 2 -- vbuyy=vbuz1_ror_2
|
|
lda.z ypos
|
|
lsr
|
|
lsr
|
|
tay
|
|
// [1001] render::$1 = byte1 RENDER_INDEX + render::xcol#2 -- vbuxx=vbuc1_plus_vbuz1
|
|
lax.z xcol
|
|
axs #-[>RENDER_INDEX]
|
|
// [1002] render::$2 = render::ytile#0 << 1 -- vbuaa=vbuyy_rol_1
|
|
tya
|
|
asl
|
|
// [1003] render::render_index_xcol#0 = render::$1 w= render::$2 -- vwuz1=vbuxx_word_vbuaa
|
|
stx.z render_index_xcol+1
|
|
sta.z render_index_xcol
|
|
// [1004] render::canvas_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render::render_index_xcol#0) -- vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset+1
|
|
ldy #0
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset
|
|
// [1005] render::canvas1#0 = SPRITES_1 + render::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz2
|
|
lda.z canvas_offset
|
|
clc
|
|
adc #<SPRITES_1
|
|
sta.z canvas1
|
|
lda.z canvas_offset+1
|
|
adc #>SPRITES_1
|
|
sta.z canvas1+1
|
|
// [1006] render::canvas2#0 = SPRITES_2 + render::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz1
|
|
lda.z canvas2
|
|
clc
|
|
adc #<SPRITES_2
|
|
sta.z canvas2
|
|
lda.z canvas2+1
|
|
adc #>SPRITES_2
|
|
sta.z canvas2+1
|
|
// [1007] render::ypos_inc_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] -- vbuxx=pbuz1_derefidx_vbuc1
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
lda (render_index_xcol),y
|
|
tax
|
|
// [1008] render::ypix#0 = render::ypos#2 & 3 -- vbuz1=vbuz2_band_vbuc1
|
|
// Move the last few y-pixels
|
|
lda #3
|
|
and.z ypos
|
|
sta.z ypix
|
|
// [1009] phi from render to render::@1 [phi:render->render::@1]
|
|
__b1_from_render:
|
|
// [1009] phi render::canvas2#2 = render::canvas2#0 [phi:render->render::@1#0] -- register_copy
|
|
// [1009] phi render::ypos_inc_offset#2 = render::ypos_inc_offset#0 [phi:render->render::@1#1] -- register_copy
|
|
// [1009] phi render::canvas1#2 = render::canvas1#0 [phi:render->render::@1#2] -- register_copy
|
|
// [1009] phi render::i#2 = 0 [phi:render->render::@1#3] -- vbuyy=vbuc1
|
|
ldy #0
|
|
jmp __b1
|
|
// render::@1
|
|
__b1:
|
|
// [1010] if(render::i#2<render::ypix#0) goto render::@2 -- vbuyy_lt_vbuz1_then_la1
|
|
cpy.z ypix
|
|
bcc __b2
|
|
jmp __b3
|
|
// render::@3
|
|
__b3:
|
|
// [1011] *render::canvas1#2 = render::pixels#4 -- _deref_pbuz1=vbuz2
|
|
// Render the pixels
|
|
lda.z pixels
|
|
ldy #0
|
|
sta (canvas1),y
|
|
// [1012] *render::canvas2#2 = render::pixels#4 -- _deref_pbuz1=vbuz2
|
|
lda.z pixels
|
|
ldy #0
|
|
sta (canvas2),y
|
|
jmp __breturn
|
|
// render::@return
|
|
__breturn:
|
|
// [1013] return
|
|
rts
|
|
// render::@2
|
|
__b2:
|
|
// [1014] render::canvas1#1 = render::canvas1#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas1
|
|
sta.z canvas1
|
|
bcc !+
|
|
inc.z canvas1+1
|
|
!:
|
|
// [1015] render::canvas2#1 = render::canvas2#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas2
|
|
sta.z canvas2
|
|
bcc !+
|
|
inc.z canvas2+1
|
|
!:
|
|
// [1016] render::ypos_inc_offset#1 = ++ render::ypos_inc_offset#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [1017] render::i#1 = ++ render::i#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [1009] phi from render::@2 to render::@1 [phi:render::@2->render::@1]
|
|
__b1_from___b2:
|
|
// [1009] phi render::canvas2#2 = render::canvas2#1 [phi:render::@2->render::@1#0] -- register_copy
|
|
// [1009] phi render::ypos_inc_offset#2 = render::ypos_inc_offset#1 [phi:render::@2->render::@1#1] -- register_copy
|
|
// [1009] phi render::canvas1#2 = render::canvas1#1 [phi:render::@2->render::@1#2] -- register_copy
|
|
// [1009] phi render::i#2 = render::i#1 [phi:render::@2->render::@1#3] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// level_tile_get
|
|
// Get the level tile at a given (xtile, ytile) position
|
|
// Returns the TILE ID
|
|
// If xtile of ytile is outside the legal range the empty tile (0) is returned
|
|
// __register(A) char level_tile_get(__register(X) char xtile, __register(A) char ytile)
|
|
level_tile_get: {
|
|
.label ytiles = $d
|
|
// [1019] if(level_tile_get::xtile#4>=$31+1) goto level_tile_get::@return -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #$31+1
|
|
bcs __breturn_from_level_tile_get
|
|
jmp __b2
|
|
// level_tile_get::@2
|
|
__b2:
|
|
// [1020] if(level_tile_get::ytile#4>=$24+1) goto level_tile_get::@return -- vbuaa_ge_vbuc1_then_la1
|
|
cmp #$24+1
|
|
bcs __breturn_from___b2
|
|
jmp __b1
|
|
// level_tile_get::@1
|
|
__b1:
|
|
// [1021] level_tile_get::$5 = level_tile_get::ytile#4 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [1022] level_tile_get::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[level_tile_get::$5] -- pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa
|
|
tay
|
|
clc
|
|
lda #<LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET,y
|
|
sta.z ytiles
|
|
lda #>LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET+1,y
|
|
sta.z ytiles+1
|
|
// [1023] level_tile_get::return#0 = level_tile_get::ytiles#0[level_tile_get::xtile#4] -- vbuaa=pbuz1_derefidx_vbuxx
|
|
txa
|
|
tay
|
|
lda (ytiles),y
|
|
// [1024] phi from level_tile_get::@1 to level_tile_get::@return [phi:level_tile_get::@1->level_tile_get::@return]
|
|
__breturn_from___b1:
|
|
// [1024] phi level_tile_get::return#2 = level_tile_get::return#0 [phi:level_tile_get::@1->level_tile_get::@return#0] -- register_copy
|
|
jmp __breturn
|
|
// [1024] phi from level_tile_get level_tile_get::@2 to level_tile_get::@return [phi:level_tile_get/level_tile_get::@2->level_tile_get::@return]
|
|
__breturn_from_level_tile_get:
|
|
__breturn_from___b2:
|
|
// [1024] phi level_tile_get::return#2 = 0 [phi:level_tile_get/level_tile_get::@2->level_tile_get::@return#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
jmp __breturn
|
|
// level_tile_get::@return
|
|
__breturn:
|
|
// [1025] return
|
|
rts
|
|
}
|
|
// render_tiles
|
|
// Renders 2x1 tiles on the canvas.
|
|
// Tiles are 4x4 px. This renders 8px x 4px.
|
|
// - xcol: The x column position (0-24) (a column is 8 pixels)
|
|
// - ytile: The y tile position (0-37). Tile y position 0 is a special half-tile at the top of the screen.
|
|
// - tile_left: The left tile ID.
|
|
// - tile_right: The right tile ID.
|
|
// void render_tiles(__zp($f) char xcol, __zp($10) char ytile, __register(X) char tile_left, __register(Y) char tile_right)
|
|
render_tiles: {
|
|
.label tile_left_pixels = $d
|
|
.label tile_right_pixels = $b
|
|
.label render_index_xcol = $11
|
|
.label canvas_offset = 3
|
|
.label canvas1 = 5
|
|
.label canvas2 = 3
|
|
.label y = 2
|
|
.label xcol = $f
|
|
.label ytile = $10
|
|
// [1026] render_tiles::$0 = render_tiles::tile_left#0 << 2 -- vbuaa=vbuxx_rol_2
|
|
txa
|
|
asl
|
|
asl
|
|
// [1027] render_tiles::tile_left_pixels#0 = TILES_LEFT + render_tiles::$0 -- pbuz1=pbuc1_plus_vbuaa
|
|
clc
|
|
adc #<TILES_LEFT
|
|
sta.z tile_left_pixels
|
|
lda #>TILES_LEFT
|
|
adc #0
|
|
sta.z tile_left_pixels+1
|
|
// [1028] render_tiles::$2 = render_tiles::tile_right#0 << 2 -- vbuaa=vbuyy_rol_2
|
|
tya
|
|
asl
|
|
asl
|
|
// [1029] render_tiles::tile_right_pixels#0 = TILES_RIGHT + render_tiles::$2 -- pbuz1=pbuc1_plus_vbuaa
|
|
clc
|
|
adc #<TILES_RIGHT
|
|
sta.z tile_right_pixels
|
|
lda #>TILES_RIGHT
|
|
adc #0
|
|
sta.z tile_right_pixels+1
|
|
// [1030] render_tiles::$4 = byte1 RENDER_INDEX + render_tiles::xcol#0 -- vbuxx=vbuc1_plus_vbuz1
|
|
lax.z xcol
|
|
axs #-[>RENDER_INDEX]
|
|
// [1031] render_tiles::$5 = render_tiles::ytile#0 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z ytile
|
|
asl
|
|
// [1032] render_tiles::render_index_xcol#0 = render_tiles::$4 w= render_tiles::$5 -- vwuz1=vbuxx_word_vbuaa
|
|
stx.z render_index_xcol+1
|
|
sta.z render_index_xcol
|
|
// [1033] render_tiles::canvas_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render_tiles::render_index_xcol#0) -- vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset+1
|
|
ldy #0
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset
|
|
// [1034] render_tiles::canvas1#0 = SPRITES_1 + render_tiles::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz2
|
|
lda.z canvas_offset
|
|
clc
|
|
adc #<SPRITES_1
|
|
sta.z canvas1
|
|
lda.z canvas_offset+1
|
|
adc #>SPRITES_1
|
|
sta.z canvas1+1
|
|
// [1035] render_tiles::canvas2#0 = SPRITES_2 + render_tiles::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz1
|
|
lda.z canvas2
|
|
clc
|
|
adc #<SPRITES_2
|
|
sta.z canvas2
|
|
lda.z canvas2+1
|
|
adc #>SPRITES_2
|
|
sta.z canvas2+1
|
|
// [1036] render_tiles::ypos_inc_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] -- vbuxx=pbuz1_derefidx_vbuc1
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
lda (render_index_xcol),y
|
|
tax
|
|
// [1037] phi from render_tiles to render_tiles::@1 [phi:render_tiles->render_tiles::@1]
|
|
__b1_from_render_tiles:
|
|
// [1037] phi render_tiles::ypos_inc_offset#2 = render_tiles::ypos_inc_offset#0 [phi:render_tiles->render_tiles::@1#0] -- register_copy
|
|
// [1037] phi render_tiles::canvas2#2 = render_tiles::canvas2#0 [phi:render_tiles->render_tiles::@1#1] -- register_copy
|
|
// [1037] phi render_tiles::canvas1#2 = render_tiles::canvas1#0 [phi:render_tiles->render_tiles::@1#2] -- register_copy
|
|
// [1037] phi render_tiles::y#2 = 0 [phi:render_tiles->render_tiles::@1#3] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
jmp __b1
|
|
// render_tiles::@1
|
|
__b1:
|
|
// [1038] if(render_tiles::y#2<4) goto render_tiles::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z y
|
|
cmp #4
|
|
bcc __b2
|
|
jmp __breturn
|
|
// render_tiles::@return
|
|
__breturn:
|
|
// [1039] return
|
|
rts
|
|
// render_tiles::@2
|
|
__b2:
|
|
// [1040] render_tiles::pixels#0 = render_tiles::tile_left_pixels#0[render_tiles::y#2] | render_tiles::tile_right_pixels#0[render_tiles::y#2] -- vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
|
|
ldy.z y
|
|
lda (tile_left_pixels),y
|
|
ora (tile_right_pixels),y
|
|
// [1041] *render_tiles::canvas1#2 = render_tiles::pixels#0 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (canvas1),y
|
|
// [1042] *render_tiles::canvas2#2 = render_tiles::pixels#0 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (canvas2),y
|
|
// [1043] render_tiles::canvas1#1 = render_tiles::canvas1#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas1
|
|
sta.z canvas1
|
|
bcc !+
|
|
inc.z canvas1+1
|
|
!:
|
|
// [1044] render_tiles::canvas2#1 = render_tiles::canvas2#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas2
|
|
sta.z canvas2
|
|
bcc !+
|
|
inc.z canvas2+1
|
|
!:
|
|
// [1045] render_tiles::ypos_inc_offset#1 = ++ render_tiles::ypos_inc_offset#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [1046] render_tiles::y#1 = ++ render_tiles::y#2 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [1037] phi from render_tiles::@2 to render_tiles::@1 [phi:render_tiles::@2->render_tiles::@1]
|
|
__b1_from___b2:
|
|
// [1037] phi render_tiles::ypos_inc_offset#2 = render_tiles::ypos_inc_offset#1 [phi:render_tiles::@2->render_tiles::@1#0] -- register_copy
|
|
// [1037] phi render_tiles::canvas2#2 = render_tiles::canvas2#1 [phi:render_tiles::@2->render_tiles::@1#1] -- register_copy
|
|
// [1037] phi render_tiles::canvas1#2 = render_tiles::canvas1#1 [phi:render_tiles::@2->render_tiles::@1#2] -- register_copy
|
|
// [1037] phi render_tiles::y#2 = render_tiles::y#1 [phi:render_tiles::@2->render_tiles::@1#3] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// File Data
|
|
.segment Data
|
|
// The byteboozer decruncher
|
|
BYTEBOOZER:
|
|
.const B2_ZP_BASE = $fc
|
|
#import "byteboozer_decrunch.asm"
|
|
|
|
// Pacman eating sound
|
|
PACMAN_CH1_FREQ_HI: .byte $23, $1d, $1a, $17, $15, $12, 0, 0, 0, 0, 0, $19, $1a, $1c, $1d, $20, $23, 0, 0, 0, 0, 0
|
|
PACMAN_CH1_CONTROL: .byte $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0, $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0
|
|
// Address of the first pixel each x column
|
|
RENDER_XCOLS: .word 0, 1, 2, $400, $401, $402, $800, $801, $802, $c00, $c01, $c02, $1000, $1001, $1002, $1400, $1401, $1402, $1800, $1801, $1802, $1c00, $1c01, $1c02, 0, 0
|
|
// Offset for each y-position from the first pixel of an X column
|
|
RENDER_YPOS: .word 0, 0, 0, 6, $c, $12, $18, $1e, $24, $2a, $30, $36, $3c, $40+3, $40+9, $40+$f, $40+$15, $40+$1b, $40+$21, $40+$27, $40+$2d, $40+$33, $40+$39, $80, $80+6, $80+$c, $80+$12, $80+$18, $80+$1e, $80+$24, $80+$2a, $80+$30, $80+$36, $80+$3c, $c0+3, $c0+9, $c0+$f, $c0+$15, $c0+$1b, $c0+$21, $c0+$27, $c0+$2d, $c0+$33, $c0+$39, $100, $100+6, $100+$c, $100+$12, $100+$18, $100+$1e, $100+$24, $100+$2a, $100+$30, $100+$36, $100+$3c, $140+3, $140+9, $140+$f, $140+$15, $140+$1b, $140+$21, $140+$27, $140+$2d, $140+$33, $140+$39, $180, $180+6, $180+$c, $180+$12, $180+$18, $180+$1e, $180+$24, $180+$2a, $180+$30, $180+$36, $180+$3c, $1c0+3, $1c0+9, $1c0+$f, $1c0+$15, $1c0+$1b, $1c0+$21, $1c0+$27, $1c0+$2d, $1c0+$33, $1c0+$39, $200, $200+6, $200+$c, $200+$12, $200+$18, $200+$1e, $200+$24, $200+$2a, $200+$30, $200+$36, $200+$3c, $240+3, $240+9, $240+$f, $240+$15, $240+$1b, $240+$21, $240+$27, $240+$2d, $240+$33, $240+$39, $280, $280+6, $280+$c, $280+$12, $280+$18, $280+$1e, $280+$24, $280+$2a, $280+$30, $280+$36, $280+$3c, $2c0+3, $2c0+9, $2c0+$f, $2c0+$15, $2c0+$1b, $2c0+$21, $2c0+$27, $2c0+$2d, $2c0+$33, $2c0+$39, $300, $300+6, $300+$c, $300+$12, $300+$18, $300+$1e, $300+$24, $300+$2a, $300+$30, $300+$36, $300+$3c, $340+3, $340+9, $340+$f, $340+$15, $340+$1b, $340+$21, $340+$27, $340+$2d, $340+$33, $340+$39
|
|
// Offset for each y-position from the first pixel of an X column in sprite#9
|
|
RENDER_YPOS_9TH: .word 3, 3, 3, 9, $f, $15, $1b, $21, $27, $2d, $33, $39, $40, $40+6, $40+$c, $40+$12, $40+$18, $40+$1e, $40+$24, $40+$2a, $40+$30, $40+$36, $40+$3c, $80+3, $80+9, $80+$f, $80+$15, $80+$1b, $80+$21, $80+$27, $80+$2d, $80+$33, $80+$39, $c0, $c0+6, $c0+$c, $c0+$12, $c0+$18, $c0+$1e, $c0+$24, $c0+$2a, $c0+$30, $c0+$36, $c0+$3c, $100+3, $100+9, $100+$f, $100+$15, $100+$1b, $100+$21, $100+$27, $100+$2d, $100+$33, $100+$39, $140, $140+6, $140+$c, $140+$12, $140+$18, $140+$1e, $140+$24, $140+$2a, $140+$30, $140+$36, $140+$3c, $180+3, $180+9, $180+$f, $180+$15, $180+$1b, $180+$21, $180+$27, $180+$2d, $180+$33, $180+$39, $1c0, $1c0+6, $1c0+$c, $1c0+$12, $1c0+$18, $1c0+$1e, $1c0+$24, $1c0+$2a, $1c0+$30, $1c0+$36, $1c0+$3c, $200+3, $200+9, $200+$f, $200+$15, $200+$1b, $200+$21, $200+$27, $200+$2d, $200+$33, $200+$39, $240, $240+6, $240+$c, $240+$12, $240+$18, $240+$1e, $240+$24, $240+$2a, $240+$30, $240+$36, $240+$3c, $280+3, $280+9, $280+$f, $280+$15, $280+$1b, $280+$21, $280+$27, $280+$2d, $280+$33, $280+$39, $2c0, $2c0+6, $2c0+$c, $2c0+$12, $2c0+$18, $2c0+$1e, $2c0+$24, $2c0+$2a, $2c0+$30, $2c0+$36, $2c0+$3c, $300+3, $300+9, $300+$f, $300+$15, $300+$1b, $300+$21, $300+$27, $300+$2d, $300+$33, $300+$39, $340, $340+6, $340+$c, $340+$12, $340+$18, $340+$1e, $340+$24, $340+$2a, $340+$30, $340+$36, $340+$3c
|
|
// Increment for each y-position from the first pixel of an X column
|
|
.align $20
|
|
RENDER_YPOS_INC: .byte 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7
|
|
// The BOB x column position (0-24) (a column is 8 pixels)
|
|
bobs_xcol: .byte $a, $a, $a, $a, $a
|
|
// The BOB y fine position (0-99). The y-position is a line on the screen. Since every second line is black each ypos represents a 2 pixel distance.
|
|
bobs_yfine: .byte $2d, $2d, $2d, $2d, $2d
|
|
// The BOB ID in the BOB data tables
|
|
bobs_bob_id: .byte 0, 0, 0, 0, 0
|
|
// The BOB restore data: 18 bytes per BOB. Doubled for double-buffering.
|
|
// char * left_canvas;
|
|
// char left_ypos_inc_offset;
|
|
// char * right_canvas;
|
|
// char right_ypos_inc_offset;
|
|
// char[12] restore_pixels;
|
|
.align $100
|
|
bobs_restore: .fill NUM_BOBS*SIZE_BOB_RESTORE*2, 0
|
|
.segment Init
|
|
// The level represented as 4x4 px tiles. Each byte is the ID of a tile from the tile set.
|
|
// The level is 50 tiles * 37 tiles. The first tile line are special half-tiles (where only the last 2 pixel rows are shown).
|
|
// The level data is organized as 37 rows of 50 tile IDs.
|
|
LEVEL_TILES_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = LEVEL_TILES "LEVEL TILE GRAPHICS"
|
|
.var pic_level = LoadPicture("pacman-tiled.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// Maps the tile pixels (a 16 bit number) to the tile ID
|
|
.var TILESET = Hashtable()
|
|
// Maps the tile ID to the pixels (a 16 bit number)
|
|
.var TILESET_BY_ID = Hashtable()
|
|
// Tile ID 0 is empty
|
|
.eval TILESET.put(0, 0)
|
|
.eval TILESET_BY_ID.put(0, 0)
|
|
|
|
.align $100
|
|
// TABLE LEVEL_TILES[64*37]
|
|
// The level is 50 tiles * 37 tiles. The first tile line are special half-tiles (where only the last 2 pixel rows are shown).
|
|
// The level data is organized as 37 rows of 64 bytes containing tile IDs. (the last 14 are unused to achieve 64-byte alignment)
|
|
.for(var ytile=0; ytile<37; ytile++) {
|
|
.for(var xtile=0; xtile<50; xtile++) {
|
|
// Find the tile pixels (4x4 px - 16 bits)
|
|
.var pixels = 0;
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = pic_level.getMulticolorByte(xtile/2,ytile*4+i)
|
|
.if((xtile&1)==0) {
|
|
// left nibble
|
|
.eval pix = floor(pix / $10)
|
|
} else {
|
|
// right nibble
|
|
.eval pix = pix & $0f
|
|
}
|
|
.eval pixels = pixels*$10 + pix
|
|
}
|
|
.var tile_id = 0
|
|
.if(TILESET.containsKey(pixels)) {
|
|
.eval tile_id = TILESET.get(pixels)
|
|
} else {
|
|
.eval tile_id = TILESET.keys().size()
|
|
.eval TILESET.put(pixels, tile_id)
|
|
.eval TILESET_BY_ID.put(tile_id, pixels)
|
|
// .print "tile "+tile_id+" : "+toHexString(pixels,4)
|
|
}
|
|
// Output the tile ID
|
|
.byte tile_id
|
|
}
|
|
.fill 14, 0
|
|
}
|
|
|
|
.align $100
|
|
// TABLE char TILES_LEFT[0x80]
|
|
// The left tile graphics. A tile is 4x4 px. The left tiles contain tile graphics for the 4 left bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix<<4
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
|
|
.align $80
|
|
// TABLE char TILES_RIGHT[0x80]
|
|
// The right tile graphics. A tile is 4x4 px. The right tiles contain tile graphics for the 4 right bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
.align $80
|
|
// TABLE char TILES_TYPE[0x20]
|
|
// 0: empty (all black), 1:pill, 2:powerup, 4: wall (contains blue pixels)
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.var tile_type = 0
|
|
.if(pixels==$0220) .eval tile_type=1 // 1:pill
|
|
.if(pixels==$aaaa) .eval tile_type=2 // 2:powerup
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
// Detect wall - any blue pixels (%01)
|
|
.if( (pix&%0100)==%0100) .eval tile_type = 4; // 4:wall
|
|
.if( (pix&%0001)==%0001) .eval tile_type = 4; // 4:wall
|
|
.eval pixels = pixels << 4
|
|
}
|
|
.byte tile_type
|
|
//.print "tile "+tile_id+" gfx "+toHexString(TILESET_BY_ID.get(tile_id),4) + " type "+tile_type
|
|
}
|
|
|
|
}
|
|
|
|
// BOB data: One table per bob byte (left/right, mask/pixels = 4 tables). The index into the table is the bob_id + row*BOB_ROW_SIZE.
|
|
BOB_GRAPHICS_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = BOB_MASK_LEFT "BOB GRAPHICS TABLES"
|
|
.var bobs_pic = LoadPicture("pacman-bobs.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// TABLE char BOB_MASK_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_MASK_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,24+scroll*6+row)
|
|
.for(var blue=0; blue<8;blue++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,48+scroll*6+row)
|
|
}
|
|
}
|
|
|
|
// Splash screen 25 xcol * 147 ypos bytes
|
|
SPLASH_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = SPLASH "SPLASH SCREEN" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_splash_mc = LoadPicture("pacman-splash.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// 0:BLACK, 1:YELLOW
|
|
.var pic_splash_yellow = LoadPicture("pacman-splash.png", List().add($000000, $bfce72))
|
|
// 0:BLACK, 1:BLUE
|
|
.var pic_splash_blue = LoadPicture("pacman-splash.png", List().add($000000, $352879))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<147; ypos++) {
|
|
.if(ypos>25 && ypos<123) {
|
|
// Sprites in the sides are in single color blue on splash screen
|
|
.byte pic_splash_blue.getSinglecolorByte(xcol,ypos)
|
|
} else .if(xcol>2 && xcol<21) {
|
|
// Sprites 2-7 are in single color yellow on splash screen
|
|
.byte pic_splash_yellow.getSinglecolorByte(xcol,ypos)
|
|
} else {
|
|
// Sprites 0&1 are in multi color on splash screen
|
|
.byte pic_splash_mc.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Victory graphics 25 xcol * 25 ypos bytes
|
|
WIN_GFX_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = WIN_GFX "WIN GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_win = LoadPicture("pacman-win.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_win.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Game Over graphics 25 xcol * 25 ypos bytes
|
|
GAMEOVER_GFX_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = GAMEOVER_GFX "GAMEOVER GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_gameover = LoadPicture("pacman-gameover.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_gameover.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Renders the BOBs at the given positions
|
|
// The bob logic code will be merged with raster code using code-merger.c
|
|
// First restores the canvas from previously rendered bobs, and then renders the bobs at the given positions.
|
|
// BOBs are 16px*6px graphics (2 x-columns * 6px) with masks and pixels
|
|
// Uses the bobs_xcol, bobs_yfine, bobs_bob_id and bob_restore for data about the bobs
|
|
// Implemented in inline kick assembler
|
|
LOGIC_CODE_CRUNCHED:
|
|
.macro LOGIC_BEGIN(cycles) {
|
|
.byte cycles
|
|
}
|
|
.macro LOGIC_END() {
|
|
.byte $ff
|
|
}
|
|
.modify B2() {
|
|
.pc = LOGIC_CODE_UNMERGED "LOGIC CODE UNMERGED"
|
|
LOGIC_BEGIN(2)
|
|
clc
|
|
LOGIC_END()
|
|
|
|
// ******************************************
|
|
// Restores the canvas under the rendered bobs
|
|
// ******************************************
|
|
|
|
.for(var bob=NUM_BOBS-1;bob>=0; bob--) {
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// char * volatile left_canvas = *((char**)&bob_restore[0]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = bob_restore[2];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
// char * volatile rigt_canvas = *((char**)&bob_restore[3]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
sta.z rigt_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
// char rigt_ypos_inc_offset = bob_restore[5];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
sta.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Restore Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// *left_canvas = bob_restore[6] ;
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// *rigt_canvas = bob_restore[7];
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
|
|
// ******************************************
|
|
// Render two tiles on the canvas
|
|
// ******************************************
|
|
|
|
// y==0 from bob restore
|
|
LOGIC_BEGIN(12)
|
|
// char tile_left_idx = 4 * logic_tile_ptr[0];
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_left_idx
|
|
LOGIC_END()
|
|
// char logic_tile_right_idx = 4 * logic_tile_ptr[1];
|
|
LOGIC_BEGIN(2)
|
|
iny
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(12)
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_right_idx
|
|
LOGIC_END()
|
|
// char * render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, ytile*2 };
|
|
LOGIC_BEGIN(8)
|
|
lda #>RENDER_INDEX
|
|
adc logic_tile_xcol
|
|
sta.z left_render_index_xcol+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(6)
|
|
lda logic_tile_yfine
|
|
sta.z left_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// unsigned int canvas_offset = {render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] };
|
|
// char * left_canvas = canvas_base_hi*$100 + canvas_offset;
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(11)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = render_index_xcol[RENDER_OFFSET_YPOS_INC];
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Render Tile Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<4;row++) {
|
|
|
|
// *left_canvas = tile_left_pixels[y] | tile_right_pixels[y];
|
|
LOGIC_BEGIN(3)
|
|
ldx logic_tile_left_idx
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(17)
|
|
lda TILES_LEFT+row,x
|
|
ldx logic_tile_right_idx
|
|
ora TILES_RIGHT+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
}
|
|
|
|
// ******************************************
|
|
// Renders the BOBs at the given positions
|
|
// ******************************************
|
|
|
|
.for(var bob=0;bob<NUM_BOBS; bob++) {
|
|
// char * left_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, yfine };
|
|
// char * rigt_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol+1, yfine };
|
|
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(14)
|
|
lda #>RENDER_INDEX
|
|
adc bobs_xcol+bob
|
|
sta.z left_render_index_xcol+1
|
|
adc #1
|
|
sta.z rigt_render_index_xcol+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_yfine+bob
|
|
sta.z left_render_index_xcol
|
|
sta.z rigt_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// char * left_canvas = (char*){ left_render_index_xcol[85], left_render_index_xcol[0] };
|
|
// bob_restore[0] = <left_canvas; bob_restore[1] = >left_canvas;
|
|
// char * rigt_canvas = (char*){ rigt_render_index_xcol[85], rigt_render_index_xcol[0] };
|
|
// bob_restore[3] = <rigt_canvas; bob_restore[4] = >rigt_canvas;
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (rigt_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z rigt_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
LOGIC_END()
|
|
|
|
// char left_ypos_inc_offset = left_render_index_xcol[170];
|
|
// bob_restore[2] = left_ypos_inc_offset;
|
|
// char rigt_ypos_inc_offset = rigt_render_index_xcol[170];
|
|
// bob_restore[5] = rigt_ypos_inc_offset;
|
|
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
LOGIC_END()
|
|
|
|
// Render Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// bob_restore[6] = *left_canvas;
|
|
// *left_canvas = *left_canvas & BOB_MASK_LEFT_0[bob_id] | BOB_PIXEL_LEFT_0[bob_id];
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (left_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (rigt_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(4)
|
|
ldx bobs_bob_id+bob
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(19)
|
|
lda (left_canvas),y
|
|
and BOB_MASK_LEFT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_LEFT+row*BOB_ROW_SIZE,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// bob_restore[7] = *rigt_canvas;
|
|
// *rigt_canvas = *rigt_canvas & BOB_MASK_RIGT_0[bob_id] | BOB_PIXEL_RIGT_0[bob_id];
|
|
LOGIC_BEGIN(19)
|
|
lda (rigt_canvas),y
|
|
and BOB_MASK_RIGT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_RIGT+row*BOB_ROW_SIZE,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
//LOGIC_BEGIN(6)
|
|
//lda #0
|
|
//sta $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(0) // end of logic code
|
|
}
|
|
|
|
// Raster-code for displaying 9 sprites on the entire screen - with open side borders
|
|
// The uncrunched code will be merged with logic code using code-merger.c
|
|
// The unmerged raster-code is identical for both buffers!
|
|
RASTER_CODE_CRUNCHED:
|
|
.macro RASTER_CYCLES(cycles) {
|
|
.byte $ff, cycles
|
|
}
|
|
.modify B2() {
|
|
.pc = RASTER_CODE_UNMERGED "RASTER CODE UNMERGED"
|
|
RASTER_CYCLES(29)
|
|
// Line 7 cycle 44
|
|
// Raster Line
|
|
.var raster_line = 7
|
|
// Line in the sprite
|
|
.var sprite_line = 20
|
|
// Current sprite ypos
|
|
.var sprite_ypos = 7
|
|
// Current sprite screen (graphics bank not important since sprite layout in the banks is identical)
|
|
.var sprite_screen = SCREENS_1
|
|
.var available_cycles = 0;
|
|
.for(var i=0;i<293;i++) {
|
|
// Line cycle count
|
|
.var line_cycles = 46
|
|
.if(raster_line>=70 && raster_line<238) {
|
|
// Only 2 sprites on these lines - so more cycles available
|
|
.eval line_cycles = 58
|
|
}
|
|
// Create 9th sprite by moving sprite 0
|
|
.if(mod(raster_line,2)==0) {
|
|
lda #$6f
|
|
sta $d000
|
|
} else {
|
|
lda #$e7
|
|
sta $d000
|
|
}
|
|
.eval line_cycles -= 6;
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
.eval line_cycles -= 12;
|
|
.eval raster_line++
|
|
.eval sprite_line++
|
|
.if(sprite_line==21) {
|
|
.eval sprite_line = 0
|
|
.eval sprite_ypos += 21
|
|
}
|
|
// Set sprite single-color mode on splash
|
|
.if(raster_line==53) {
|
|
lda side_sprites_mc
|
|
sta $d01c
|
|
lda side_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
}
|
|
// Set sprite multi-color mode on splash
|
|
.if(raster_line==248) {
|
|
lda bottom_sprites_mc
|
|
sta $d01c
|
|
lda bottom_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
//.print "raster:"+raster_line+" multi-color"
|
|
}
|
|
// Open top border
|
|
.if(raster_line==55) {
|
|
lda #VICII_RSEL|VICII_ECM|VICII_BMM|7
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" top border rsel=1"
|
|
}
|
|
// Open bottom border
|
|
.if(raster_line==250) {
|
|
lda #VICII_ECM|VICII_BMM|7 // DEN=0, RSEL=0
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" bottom border rsel=0"
|
|
}
|
|
// Move sprites down
|
|
.if(sprite_line>=2 && sprite_line<=9) {
|
|
.if(sprite_ypos<300) {
|
|
.var sprite_id = sprite_line-2
|
|
.if(sprite_id==0 || sprite_id==1 || sprite_ypos<=55 || sprite_ypos>=(246-21)) {
|
|
lda #sprite_ypos
|
|
sta SPRITES_YPOS+2*sprite_id
|
|
.eval line_cycles -= 6;
|
|
//.print "raster:"+raster_line+" sprite:"+sprite_id+" ypos:"+sprite_ypos
|
|
}
|
|
}
|
|
}
|
|
// Change sprite data
|
|
.if(sprite_line==20) {
|
|
.eval sprite_screen += $400
|
|
lda #sprite_screen/$40
|
|
sta VICII_MEMORY
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" sprite data $"+toHexString(sprite_screen)
|
|
}
|
|
// Spend the rest of the cycles on NOPS
|
|
.if(line_cycles<0 || line_cycles==1) .error "Too many cycles spent on line "+raster_line
|
|
.if(line_cycles>0) {
|
|
//.print "raster:"+raster_line+" cycles $"+toHexString(line_cycles)
|
|
RASTER_CYCLES(line_cycles)
|
|
.eval line_cycles -= line_cycles
|
|
.eval available_cycles += line_cycles
|
|
}
|
|
}
|
|
//.print "Available cycles: "+available_cycles
|
|
|
|
lda #$6f
|
|
sta $d000
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
RASTER_CYCLES(00) // End of raster code
|
|
}
|
|
|
|
// SID tune
|
|
// Pacman 2 channel music by Metal/Camelot
|
|
INTRO_MUSIC_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = INTRO_MUSIC "INTRO MUSIC"
|
|
.const music = LoadBinary("pacman-2chn-simpler.prg", BF_C64FILE)
|
|
.fill music.getSize(), music.get(i)
|
|
}
|
|
|
|
.segment Data
|
|
// Offset of the LEVEL_TILE data within the LEVEL_TILE data (each row is 64 bytes of data)
|
|
LEVEL_YTILE_OFFSET: .word 0, $40, $80, $c0, $100, $140, $180, $1c0, $200, $240, $280, $2c0, $300, $340, $380, $3c0, $400, $440, $480, $4c0, $500, $540, $580, $5c0, $600, $640, $680, $6c0, $700, $740, $780, $7c0, $800, $840, $880, $8c0, $900
|
|
// Used to choose a single direction when presented with multiple potential directions.
|
|
// Used to eliminate diagonal joy directions and convert them to a single direction
|
|
// Priority: (4)up, (8)down, (16)left, (32)right
|
|
.align $40
|
|
DIRECTION_SINGLE: .byte 0, 0, 0, 0, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $20, $20, $20, $20, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4
|
|
// Used to eliminate a single direction (the one that the ghost came from)
|
|
// The value DIRECTION_ELIMINATE[current_direction] is ANDed onto the open directions to remove the current direction
|
|
.align $40
|
|
DIRECTION_ELIMINATE: .byte $ff, 0, 0, 0, $f7, 0, 0, 0, $fb, 0, 0, 0, 0, 0, 0, 0, $df, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $ef
|
|
// Used to reverse direction direction (when a ghost changes between chase and scatter)
|
|
.align $40
|
|
DIRECTION_REVERSE: .byte 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, $20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $10
|
|
// The animation frames for pacman. The index into this is DIRECTION + anim_frame_idx.
|
|
.align $40
|
|
pacman_frames: .byte 8, 8, 8, 8, 8, $18, $14, $18, 8, $20, $1c, $20, 0, 0, 0, 0, 8, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, $c, $10, $c
|
|
// The animation frames for ghost. The index into thos is DIRECTION + anim_frame_idx.
|
|
.align $80
|
|
ghost_frames: .byte 0, 0, 0, 0, $3c, $40, $3c, $40, $34, $38, $34, $38, 0, 0, 0, 0, $2c, $30, $2c, $30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $24, $28, $24, $28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $5c, $60, $5c, $60, $54, $58, $54, $58, 0, 0, 0, 0, $4c, $50, $4c, $50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $44, $48, $44, $48
|
|
// Lookup the absolute value of a signed number
|
|
// PRE_ and POST_ are used to ensure lookup of ABS-1,y works for y=0 and ABS+1,y works for y=0xff
|
|
.align $100
|
|
ABS_PRE: .byte 1
|
|
ABS:
|
|
.for(var i=0;i<$100;i++) {
|
|
.var x = (i<$80)?i:($100-i);
|
|
.byte abs(x)
|
|
}
|
|
|
|
ABS_POST: .byte 0
|
|
|
|
ASSEMBLER OPTIMIZATIONS
|
|
Removing instruction jmp __init1
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp toD0181
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp toDd002
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp toDd001
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b11
|
|
Removing instruction jmp __b12
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp __b161
|
|
Removing instruction jmp __b15
|
|
Removing instruction jmp __b44
|
|
Removing instruction jmp __b16
|
|
Removing instruction jmp __b17
|
|
Removing instruction jmp __b18
|
|
Removing instruction jmp __b19
|
|
Removing instruction jmp __b47
|
|
Removing instruction jmp __b60
|
|
Removing instruction jmp __b48
|
|
Removing instruction jmp __b61
|
|
Removing instruction jmp __b62
|
|
Removing instruction jmp __b50
|
|
Removing instruction jmp __b162
|
|
Removing instruction jmp __b64
|
|
Removing instruction jmp __b163
|
|
Removing instruction jmp __b65
|
|
Removing instruction jmp __b164
|
|
Removing instruction jmp __b66
|
|
Removing instruction jmp __b165
|
|
Removing instruction jmp __b68
|
|
Removing instruction jmp __b69
|
|
Removing instruction jmp __b70
|
|
Removing instruction jmp __b71
|
|
Removing instruction jmp __b63
|
|
Removing instruction jmp __b58
|
|
Removing instruction jmp __b59
|
|
Removing instruction jmp __b20
|
|
Removing instruction jmp __b21
|
|
Removing instruction jmp __b22
|
|
Removing instruction jmp __b23
|
|
Removing instruction jmp __b24
|
|
Removing instruction jmp __b76
|
|
Removing instruction jmp __b166
|
|
Removing instruction jmp __b82
|
|
Removing instruction jmp __b83
|
|
Removing instruction jmp __b152
|
|
Removing instruction jmp __b84
|
|
Removing instruction jmp __b85
|
|
Removing instruction jmp __b80
|
|
Removing instruction jmp __b153
|
|
Removing instruction jmp __b86
|
|
Removing instruction jmp __b87
|
|
Removing instruction jmp __b88
|
|
Removing instruction jmp __b25
|
|
Removing instruction jmp __b26
|
|
Removing instruction jmp __b27
|
|
Removing instruction jmp __b28
|
|
Removing instruction jmp __b29
|
|
Removing instruction jmp __b93
|
|
Removing instruction jmp __b167
|
|
Removing instruction jmp __b99
|
|
Removing instruction jmp __b100
|
|
Removing instruction jmp __b154
|
|
Removing instruction jmp __b101
|
|
Removing instruction jmp __b102
|
|
Removing instruction jmp __b97
|
|
Removing instruction jmp __b155
|
|
Removing instruction jmp __b103
|
|
Removing instruction jmp __b104
|
|
Removing instruction jmp __b105
|
|
Removing instruction jmp __b30
|
|
Removing instruction jmp __b31
|
|
Removing instruction jmp __b32
|
|
Removing instruction jmp __b33
|
|
Removing instruction jmp __b34
|
|
Removing instruction jmp __b110
|
|
Removing instruction jmp __b168
|
|
Removing instruction jmp __b116
|
|
Removing instruction jmp __b117
|
|
Removing instruction jmp __b156
|
|
Removing instruction jmp __b118
|
|
Removing instruction jmp __b119
|
|
Removing instruction jmp __b114
|
|
Removing instruction jmp __b157
|
|
Removing instruction jmp __b120
|
|
Removing instruction jmp __b121
|
|
Removing instruction jmp __b122
|
|
Removing instruction jmp __b35
|
|
Removing instruction jmp __b36
|
|
Removing instruction jmp __b37
|
|
Removing instruction jmp __b38
|
|
Removing instruction jmp __b39
|
|
Removing instruction jmp __b127
|
|
Removing instruction jmp __b169
|
|
Removing instruction jmp __b133
|
|
Removing instruction jmp __b134
|
|
Removing instruction jmp __b158
|
|
Removing instruction jmp __b135
|
|
Removing instruction jmp __b136
|
|
Removing instruction jmp __b131
|
|
Removing instruction jmp __b159
|
|
Removing instruction jmp __b137
|
|
Removing instruction jmp __b138
|
|
Removing instruction jmp __b139
|
|
Removing instruction jmp __b40
|
|
Removing instruction jmp __b41
|
|
Removing instruction jmp __b42
|
|
Removing instruction jmp __b43
|
|
Removing instruction jmp __b143
|
|
Removing instruction jmp __b170
|
|
Removing instruction jmp __b147
|
|
Removing instruction jmp __b160
|
|
Removing instruction jmp __b148
|
|
Removing instruction jmp __b149
|
|
Removing instruction jmp __b145
|
|
Removing instruction jmp __b150
|
|
Removing instruction jmp __b151
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp SEI1
|
|
Removing instruction jmp __b18
|
|
Removing instruction jmp __b22
|
|
Removing instruction jmp __b23
|
|
Removing instruction jmp __b24
|
|
Removing instruction jmp __b25
|
|
Removing instruction jmp __b26
|
|
Removing instruction jmp __b27
|
|
Removing instruction jmp __b28
|
|
Removing instruction jmp __b29
|
|
Removing instruction jmp __b30
|
|
Removing instruction jmp __b31
|
|
Removing instruction jmp __b32
|
|
Removing instruction jmp __b33
|
|
Removing instruction jmp __b34
|
|
Removing instruction jmp __b35
|
|
Removing instruction jmp __b36
|
|
Removing instruction jmp __b37
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp toDd001
|
|
Removing instruction jmp __b19
|
|
Removing instruction jmp toD0181
|
|
Removing instruction jmp __b20
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b11
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b12
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp CLI1
|
|
Removing instruction jmp __b21
|
|
Removing instruction jmp __b38
|
|
Removing instruction jmp __b14
|
|
Removing instruction jmp __b39
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b17
|
|
Removing instruction jmp __b16
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp SEI1
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b14
|
|
Removing instruction jmp __b15
|
|
Removing instruction jmp __b16
|
|
Removing instruction jmp __b17
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b18
|
|
Removing instruction jmp __b19
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b11
|
|
Removing instruction jmp __b12
|
|
Removing instruction jmp CLI1
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp __b20
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b14
|
|
Removing instruction jmp __b19
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b17
|
|
Removing instruction jmp __b16
|
|
Removing instruction jmp __b11
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp __b18
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b14
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b14
|
|
Removing instruction jmp __b16
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b17
|
|
Removing instruction jmp __b19
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp __b21
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b13
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b14
|
|
Removing instruction jmp __b10
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b15
|
|
Removing instruction jmp __b11
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b16
|
|
Removing instruction jmp __b12
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b7
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b9
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
Removing instruction lda #0
|
|
Removing instruction lda #<0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #<0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #<0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #<0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #<0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #<0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #7
|
|
Removing instruction lda #7
|
|
Removing instruction lda #7
|
|
Removing instruction lda #7
|
|
Removing instruction lda #7
|
|
Removing instruction lda #7
|
|
Removing instruction lda #7
|
|
Removing instruction lda.z frame
|
|
Removing instruction lda.z game_logic_substep
|
|
Removing instruction lda #1
|
|
Removing instruction lda #1
|
|
Removing instruction lda #1
|
|
Replacing instruction ldy.z __210 with TAY
|
|
Replacing instruction lda.z pacman_xtile with TYA
|
|
Replacing instruction lda.z pacman_xtile with TYA
|
|
Removing instruction lda.z ghost4_ytile
|
|
Replacing instruction ldx #2 with TAX
|
|
Removing instruction lda #1
|
|
Removing instruction lda #2
|
|
Removing instruction lda.z ghost3_ytile
|
|
Replacing instruction ldx #2 with TAX
|
|
Removing instruction lda #1
|
|
Removing instruction lda.z ghost2_ytile
|
|
Replacing instruction ldx #2 with TAX
|
|
Removing instruction lda #1
|
|
Removing instruction lda.z ghost1_ytile
|
|
Replacing instruction ldx #2 with TAX
|
|
Removing instruction lda #1
|
|
Removing instruction lda #1
|
|
Removing instruction lda #1
|
|
Removing instruction ldy.z pacman_ch1_idx
|
|
Removing instruction lda #0
|
|
Replacing instruction lda #0 with TXA
|
|
Removing instruction lda #$ff
|
|
Removing instruction lda #BLACK
|
|
Removing instruction lda #BLACK
|
|
Removing instruction lda #$ff
|
|
Removing instruction lda #$ff
|
|
Removing instruction lda #YELLOW
|
|
Removing instruction lda #YELLOW
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #STOP
|
|
Removing instruction lda #STOP
|
|
Removing instruction lda #STOP
|
|
Removing instruction lda #STOP
|
|
Removing instruction lda #$32
|
|
Removing instruction lda #$32
|
|
Removing instruction lda #$32
|
|
Removing instruction lda #$32
|
|
Removing instruction lda #$23
|
|
Removing instruction lda #$23
|
|
Removing instruction lda #$23
|
|
Removing instruction lda.z dist_left
|
|
Replacing instruction ldy #0 with TAY
|
|
Removing instruction ldy #0
|
|
Removing instruction ldy #0
|
|
Removing instruction ldy #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda.z canvas
|
|
Replacing instruction ldy #0 with TAY
|
|
Removing instruction ldy #0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction ldy.z xtile
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #<0
|
|
Removing instruction lda #>0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda.z canvas_offset
|
|
Removing instruction lda.z pixels
|
|
Removing instruction ldy #0
|
|
Removing instruction lda.z canvas_offset
|
|
Removing instruction ldy #0
|
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
|
Replacing label toDd001_from___b5 with __b6
|
|
Replacing label __b1_from___b2 with __b1
|
|
Replacing label __b44_from___b14 with __b44
|
|
Replacing label __b47_from___b17 with __b47_from___b46
|
|
Replacing label __b47_from___b18 with __b47_from___b46
|
|
Replacing label __b47_from___b58 with __b47_from___b59
|
|
Replacing label __b47_from___b45 with __b47_from___b46
|
|
Replacing label __b14_from___b15 with __b14
|
|
Replacing label __b14_from___b16 with __b14
|
|
Replacing label __b4_from___b3 with __b4
|
|
Replacing label __b14_from___b15 with __b14
|
|
Replacing label __b14_from___b16 with __b14
|
|
Replacing label __b9_from___b2 with __b9_from___b3
|
|
Replacing label __breturn_from_level_tile_directions with __breturn_from___b2
|
|
Replacing label __b1_from_choose_direction with __b1_from___b5
|
|
Replacing label __b4_from___b3 with __b4
|
|
Replacing label __b14_from___b9 with __b4
|
|
Replacing label __b3_from___b12 with __b3
|
|
Replacing label __b2_from___b10 with __b2
|
|
Replacing label __b2_from___b3 with __b2
|
|
Replacing label __b4_from___b3 with __b4
|
|
Replacing label __b14_from___b19 with __b14_from___b3
|
|
Replacing label __b10_from___b4 with __b10_from___b5
|
|
Replacing label __b10_from___b13 with __b10_from___b5
|
|
Replacing label __b10_from___b12 with __b10_from___b5
|
|
Replacing label __b4_from___b8 with __b4
|
|
Replacing label __b6_from___b7 with __b6_from___b9
|
|
Replacing label __b8_from___b6 with __b8
|
|
Replacing label __b1_from_joyfire with __b1
|
|
Replacing label __b6_from___b14 with __b6
|
|
Replacing label __b7_from___b15 with __b7
|
|
Replacing label __b8_from___b16 with __b8
|
|
Replacing label __b5_from___b3 with __b5
|
|
Replacing label __b6_from___b5 with __b6
|
|
Replacing label __breturn_from_level_tile_get with __breturn_from___b2
|
|
Removing instruction __b1_from___init1:
|
|
Removing instruction main_from___b1:
|
|
Removing instruction toD0181_from_irq_screen_top:
|
|
Removing instruction toD0181:
|
|
Removing instruction toDd002_from___b5:
|
|
Removing instruction toDd002:
|
|
Removing instruction __b4_from___b1:
|
|
Removing instruction __b8_from___b4:
|
|
Removing instruction __breturn:
|
|
Removing instruction toDd001_from___b5:
|
|
Removing instruction toDd001:
|
|
Removing instruction __b1_from_main:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b44_from___b14:
|
|
Removing instruction __b44_from___b15:
|
|
Removing instruction __b47_from___b19:
|
|
Removing instruction __b47_from___b58:
|
|
Removing instruction __b47_from___b17:
|
|
Removing instruction __b47_from___b18:
|
|
Removing instruction __b47_from___b45:
|
|
Removing instruction __b24_from___b23:
|
|
Removing instruction __b25_from___b24:
|
|
Removing instruction __b26_from___b25:
|
|
Removing instruction memset_from___b26:
|
|
Removing instruction __b27_from___b26:
|
|
Removing instruction __b29_from___b28:
|
|
Removing instruction __b30_from___b29:
|
|
Removing instruction __b31_from___b30:
|
|
Removing instruction __b33_from___b32:
|
|
Removing instruction __b34_from___b33:
|
|
Removing instruction __b36_from___b35:
|
|
Removing instruction toDd001_from___b2:
|
|
Removing instruction toDd001:
|
|
Removing instruction toD0181_from___b19:
|
|
Removing instruction toD0181:
|
|
Removing instruction __b21_from_CLI1:
|
|
Removing instruction __b14_from___b15:
|
|
Removing instruction __b14_from___b16:
|
|
Removing instruction __b14_from___b38:
|
|
Removing instruction __b17_from___b15:
|
|
Removing instruction __b4_from___b3:
|
|
Removing instruction __b4_from___b5:
|
|
Removing instruction __b14_from___b6:
|
|
Removing instruction __b15_from___b14:
|
|
Removing instruction __b16_from___b15:
|
|
Removing instruction level_show_from___b16:
|
|
Removing instruction __b18_from___b9:
|
|
Removing instruction __b9_from___b2:
|
|
Removing instruction __b14_from___b10:
|
|
Removing instruction __b14_from___b15:
|
|
Removing instruction __b14_from___b16:
|
|
Removing instruction __b17_from___b15:
|
|
Removing instruction __breturn_from_level_tile_directions:
|
|
Removing instruction __b6_from___b5:
|
|
Removing instruction __b1_from___b6:
|
|
Removing instruction __b1_from_choose_direction:
|
|
Removing instruction __b2_from___b10:
|
|
Removing instruction __b2_from___b11:
|
|
Removing instruction __b3_from___b12:
|
|
Removing instruction __b3_from___b13:
|
|
Removing instruction __b14_from___b9:
|
|
Removing instruction __b14:
|
|
Removing instruction __b4_from___b14:
|
|
Removing instruction __b4_from___b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b2_from___b3:
|
|
Removing instruction __b14_from___b19:
|
|
Removing instruction __b17_from___b15:
|
|
Removing instruction __b4_from___b3:
|
|
Removing instruction __b4_from___b8:
|
|
Removing instruction __b10_from___b12:
|
|
Removing instruction __b10_from___b13:
|
|
Removing instruction __b10_from___b4:
|
|
Removing instruction __b1_from___b10:
|
|
Removing instruction __b6_from___b7:
|
|
Removing instruction __b10_from___b2:
|
|
Removing instruction __b4_from___b10:
|
|
Removing instruction __b8_from___b6:
|
|
Removing instruction __b8_from___b9:
|
|
Removing instruction __b1_from_joyfire:
|
|
Removing instruction __breturn_from___b1:
|
|
Removing instruction __b9_from___b13:
|
|
Removing instruction __b5_from___b9:
|
|
Removing instruction __b6_from___b10:
|
|
Removing instruction __b6_from___b14:
|
|
Removing instruction __b7_from___b11:
|
|
Removing instruction __b7_from___b15:
|
|
Removing instruction __b8_from___b12:
|
|
Removing instruction __b8_from___b16:
|
|
Removing instruction __b5_from___b3:
|
|
Removing instruction __b5_from___b7:
|
|
Removing instruction __b6_from___b5:
|
|
Removing instruction __b6_from___b8:
|
|
Removing instruction __breturn_from_level_tile_get:
|
|
Succesful ASM optimization Pass5RedundantLabelElimination
|
|
Removing instruction __init1:
|
|
Removing instruction __b1:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b5:
|
|
Removing instruction __b7:
|
|
Removing instruction __b4:
|
|
Removing instruction __b8:
|
|
Removing instruction splash_run_from_main:
|
|
Removing instruction gameplay_run_from___b1:
|
|
Removing instruction __b2:
|
|
Removing instruction __b8:
|
|
Removing instruction __b9:
|
|
Removing instruction __b10:
|
|
Removing instruction __b11:
|
|
Removing instruction __b12:
|
|
Removing instruction __b13:
|
|
Removing instruction __b161:
|
|
Removing instruction __b15:
|
|
Removing instruction __b16:
|
|
Removing instruction __b17:
|
|
Removing instruction __b18:
|
|
Removing instruction __b19:
|
|
Removing instruction __b60:
|
|
Removing instruction __b61:
|
|
Removing instruction __b62:
|
|
Removing instruction __b162:
|
|
Removing instruction __b163:
|
|
Removing instruction __b164:
|
|
Removing instruction __b165:
|
|
Removing instruction __b68:
|
|
Removing instruction __b69:
|
|
Removing instruction __b70:
|
|
Removing instruction __b71:
|
|
Removing instruction __b63:
|
|
Removing instruction __b58:
|
|
Removing instruction __b59:
|
|
Removing instruction __b20:
|
|
Removing instruction __b21:
|
|
Removing instruction __b22:
|
|
Removing instruction __b23:
|
|
Removing instruction __b24:
|
|
Removing instruction __b166:
|
|
Removing instruction __b83:
|
|
Removing instruction level_tile_directions_from___b83:
|
|
Removing instruction __b152:
|
|
Removing instruction __b84:
|
|
Removing instruction __b85:
|
|
Removing instruction __b80_from___b85:
|
|
Removing instruction choose_direction_from___b80:
|
|
Removing instruction __b153:
|
|
Removing instruction __b86:
|
|
Removing instruction __b87:
|
|
Removing instruction __b88:
|
|
Removing instruction __b25:
|
|
Removing instruction __b26:
|
|
Removing instruction __b27:
|
|
Removing instruction __b28:
|
|
Removing instruction __b29:
|
|
Removing instruction __b167:
|
|
Removing instruction __b100:
|
|
Removing instruction level_tile_directions_from___b100:
|
|
Removing instruction __b154:
|
|
Removing instruction __b101:
|
|
Removing instruction __b102:
|
|
Removing instruction __b97_from___b102:
|
|
Removing instruction choose_direction_from___b97:
|
|
Removing instruction __b155:
|
|
Removing instruction __b103:
|
|
Removing instruction __b104:
|
|
Removing instruction __b105:
|
|
Removing instruction __b30:
|
|
Removing instruction __b31:
|
|
Removing instruction __b32:
|
|
Removing instruction __b33:
|
|
Removing instruction __b34:
|
|
Removing instruction __b168:
|
|
Removing instruction __b117:
|
|
Removing instruction level_tile_directions_from___b117:
|
|
Removing instruction __b156:
|
|
Removing instruction __b118:
|
|
Removing instruction __b119:
|
|
Removing instruction __b114_from___b119:
|
|
Removing instruction choose_direction_from___b114:
|
|
Removing instruction __b157:
|
|
Removing instruction __b120:
|
|
Removing instruction __b121:
|
|
Removing instruction __b122:
|
|
Removing instruction __b35:
|
|
Removing instruction __b36:
|
|
Removing instruction __b37:
|
|
Removing instruction __b38:
|
|
Removing instruction __b39:
|
|
Removing instruction __b169:
|
|
Removing instruction __b134:
|
|
Removing instruction level_tile_directions_from___b134:
|
|
Removing instruction __b158:
|
|
Removing instruction __b135:
|
|
Removing instruction __b136:
|
|
Removing instruction __b131_from___b136:
|
|
Removing instruction choose_direction_from___b131:
|
|
Removing instruction __b159:
|
|
Removing instruction __b137:
|
|
Removing instruction __b138:
|
|
Removing instruction __b139:
|
|
Removing instruction __b40:
|
|
Removing instruction __b41:
|
|
Removing instruction __b42:
|
|
Removing instruction __b43:
|
|
Removing instruction __b170:
|
|
Removing instruction level_tile_directions_from___b147:
|
|
Removing instruction __b160:
|
|
Removing instruction __b148:
|
|
Removing instruction __b149:
|
|
Removing instruction __b150:
|
|
Removing instruction __b151:
|
|
Removing instruction __b1:
|
|
Removing instruction __b2:
|
|
Removing instruction SEI1:
|
|
Removing instruction __b18:
|
|
Removing instruction memset_from___b18:
|
|
Removing instruction __b22:
|
|
Removing instruction __b23:
|
|
Removing instruction __b24:
|
|
Removing instruction merge_code_from___b24:
|
|
Removing instruction __b25:
|
|
Removing instruction memset_from___b25:
|
|
Removing instruction __b26:
|
|
Removing instruction __b27:
|
|
Removing instruction init_render_index_from___b27:
|
|
Removing instruction __b28:
|
|
Removing instruction __b29:
|
|
Removing instruction splash_show_from___b29:
|
|
Removing instruction __b30:
|
|
Removing instruction memset_from___b30:
|
|
Removing instruction __b31:
|
|
Removing instruction init_bobs_restore_from___b31:
|
|
Removing instruction __b32:
|
|
Removing instruction __b33:
|
|
Removing instruction init_sprite_pointers_from___b33:
|
|
Removing instruction __b34:
|
|
Removing instruction memcpy_from___b34:
|
|
Removing instruction __b35:
|
|
Removing instruction __b36:
|
|
Removing instruction memset_from___b36:
|
|
Removing instruction __b37:
|
|
Removing instruction __b2_from___b37:
|
|
Removing instruction __b19:
|
|
Removing instruction __b20:
|
|
Removing instruction __b6_from___b20:
|
|
Removing instruction __b8:
|
|
Removing instruction __b9_from___b8:
|
|
Removing instruction __b11:
|
|
Removing instruction __b1:
|
|
Removing instruction __b13:
|
|
Removing instruction CLI1:
|
|
Removing instruction __b21:
|
|
Removing instruction __b38:
|
|
Removing instruction __b39:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b17:
|
|
Removing instruction __b16:
|
|
Removing instruction __b9_from___b10:
|
|
Removing instruction __b6_from___b7:
|
|
Removing instruction __b5:
|
|
Removing instruction __b2_from___b4:
|
|
Removing instruction SEI1:
|
|
Removing instruction __b1_from_SEI1:
|
|
Removing instruction __b3:
|
|
Removing instruction __b4_from___b3:
|
|
Removing instruction __b6:
|
|
Removing instruction __b14:
|
|
Removing instruction init_level_tile_directions_from___b14:
|
|
Removing instruction __b15:
|
|
Removing instruction init_sprite_pointers_from___b15:
|
|
Removing instruction __b16:
|
|
Removing instruction __b17:
|
|
Removing instruction __b7_from___b17:
|
|
Removing instruction __b9:
|
|
Removing instruction __b18:
|
|
Removing instruction __b19:
|
|
Removing instruction __b12:
|
|
Removing instruction CLI1:
|
|
Removing instruction __b20:
|
|
Removing instruction __b7_from___b8:
|
|
Removing instruction __b4_from___b5:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b4_from_done_run:
|
|
Removing instruction __b6_from___b4:
|
|
Removing instruction __b8:
|
|
Removing instruction __b1:
|
|
Removing instruction __b3:
|
|
Removing instruction __b10:
|
|
Removing instruction __b19:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b17:
|
|
Removing instruction __b16:
|
|
Removing instruction __b13:
|
|
Removing instruction __b9_from___b13:
|
|
Removing instruction render_from___b12:
|
|
Removing instruction __b18:
|
|
Removing instruction __b11_from___b18:
|
|
Removing instruction __b6_from___b7:
|
|
Removing instruction __b4_from___b5:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b2:
|
|
Removing instruction __b1:
|
|
Removing instruction __breturn_from___b1:
|
|
Removing instruction __b5:
|
|
Removing instruction __b6:
|
|
Removing instruction __b7:
|
|
Removing instruction __b2_from___b7:
|
|
Removing instruction __b8:
|
|
Removing instruction __b3_from___b8:
|
|
Removing instruction __b9:
|
|
Removing instruction __b4_from___b9:
|
|
Removing instruction __b1:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_merge_code:
|
|
Removing instruction __b3:
|
|
Removing instruction __b14:
|
|
Removing instruction __b16:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b17:
|
|
Removing instruction __b19:
|
|
Removing instruction __b5:
|
|
Removing instruction __b13:
|
|
Removing instruction __b21:
|
|
Removing instruction __b10_from___b21:
|
|
Removing instruction __b6:
|
|
Removing instruction __b8:
|
|
Removing instruction __b1_from_init_render_index:
|
|
Removing instruction __b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b10:
|
|
Removing instruction __b5_from___b4:
|
|
Removing instruction __b7:
|
|
Removing instruction __b1_from___b7:
|
|
Removing instruction __b9:
|
|
Removing instruction __b5_from___b8:
|
|
Removing instruction __b1_from_splash_show:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b4:
|
|
Removing instruction __b1_from___b4:
|
|
Removing instruction render_from___b3:
|
|
Removing instruction __b5:
|
|
Removing instruction __b2_from___b5:
|
|
Removing instruction __b1_from_init_bobs_restore:
|
|
Removing instruction __b2:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b5:
|
|
Removing instruction __b1_from___b5:
|
|
Removing instruction __b3_from___b4:
|
|
Removing instruction __b1_from_init_sprite_pointers:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b4:
|
|
Removing instruction __b1_from___b4:
|
|
Removing instruction __b2_from___b3:
|
|
Removing instruction __b1_from_memcpy:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __breturn:
|
|
Removing instruction __breturn_from_joyfire:
|
|
Removing instruction __b1_from_init_level_tile_directions:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b4:
|
|
Removing instruction __b1_from___b4:
|
|
Removing instruction level_tile_get_from___b3:
|
|
Removing instruction __b13:
|
|
Removing instruction __b9:
|
|
Removing instruction level_tile_get_from___b5:
|
|
Removing instruction __b14:
|
|
Removing instruction __b10:
|
|
Removing instruction level_tile_get_from___b6:
|
|
Removing instruction __b15:
|
|
Removing instruction __b11:
|
|
Removing instruction level_tile_get_from___b7:
|
|
Removing instruction __b16:
|
|
Removing instruction __b12:
|
|
Removing instruction __b2_from___b8:
|
|
Removing instruction __b1_from_level_show:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b4:
|
|
Removing instruction __b1_from___b4:
|
|
Removing instruction __b7:
|
|
Removing instruction __b8:
|
|
Removing instruction __b9:
|
|
Removing instruction __b2_from___b9:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_render:
|
|
Removing instruction __b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2:
|
|
Removing instruction __b1:
|
|
Removing instruction __breturn_from___b1:
|
|
Removing instruction __b1_from_render_tiles:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from___b2:
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __b4
|
|
Skipping double jump to __b1 in jmp __b1_from___b2
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Succesful ASM optimization Pass5DoubleJumpElimination
|
|
Relabelling long label __b47_from___b59 to __b8
|
|
Relabelling long label __b47_from___b46 to __b9
|
|
Relabelling long label __b80_from___b84 to __b10
|
|
Relabelling long label __b97_from___b101 to __b11
|
|
Relabelling long label __b114_from___b118 to __b12
|
|
Relabelling long label __b131_from___b135 to __b13
|
|
Relabelling long label __b9_from___b3 to __b1
|
|
Relabelling long label __b11_from___b9 to __b3
|
|
Relabelling long label __breturn_from___b2 to __b1
|
|
Relabelling long label __b1_from___b5 to __b5
|
|
Relabelling long label __b14_from___b3 to __b3
|
|
Relabelling long label __b17_from___b18 to __b5
|
|
Relabelling long label __b10_from___b5 to __b6
|
|
Relabelling long label __b1_from___b2 to __b8
|
|
Relabelling long label __b6_from___b9 to __b13
|
|
Relabelling long label __b4_from___b2 to __b3
|
|
Relabelling long label __b2_from___b1 to __b4
|
|
Relabelling long label __b3_from___b1 to __b2
|
|
Relabelling long label __b2_from___b1 to __b4
|
|
Relabelling long label __b2_from___b1 to __b4
|
|
Relabelling long label __b5_from___b13 to __b9
|
|
Relabelling long label __b2_from___b1 to __b4
|
|
Relabelling long label __breturn_from___b2 to __b1
|
|
Succesful ASM optimization Pass5RelabelLongLabels
|
|
Removing instruction ldy.z pacman_xtile
|
|
Replacing instruction ldx #0 with TAX
|
|
Removing instruction ldy #0
|
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
|
Removing instruction __breturn:
|
|
Removing instruction __b8:
|
|
Removing instruction __breturn:
|
|
Removing instruction __breturn:
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
Fixing long branch [850] bcs __breturn to bcc
|
|
Fixing long branch [964] bne __b50 to beq
|
|
Fixing long branch [973] bcc __b9 to bcs
|
|
Fixing long branch [984] bcc __b9 to bcs
|
|
Fixing long branch [1081] bne __breturn to beq
|
|
Fixing long branch [1103] bne __breturn to beq
|
|
Fixing long branch [1204] bne __breturn to beq
|
|
Fixing long branch [1226] bne __breturn to beq
|
|
Fixing long branch [1328] bne __breturn to beq
|
|
Fixing long branch [1350] bne __breturn to beq
|
|
Fixing long branch [1453] bne __breturn to beq
|
|
Fixing long branch [1475] bne __breturn to beq
|
|
Fixing long branch [1553] bne __breturn to beq
|
|
Fixing long branch [580] beq __b2 to bne
|
|
Fixing long branch [585] beq __b3 to bne
|
|
Fixing long branch [590] beq __b4 to bne
|
|
Fixing long branch [595] beq __b5 to bne
|
|
Fixing long branch [600] beq __b6 to bne
|
|
Fixing long branch [605] beq __b7 to bne
|
|
Fixing long branch [726] beq __b45 to bne
|
|
Fixing long branch [731] beq __b46 to bne
|
|
Fixing long branch [779] beq __b49 to bne
|
|
Fixing long branch [826] bcc __b51 to bcs
|
|
Fixing long branch [1015] bne __b72 to beq
|
|
Fixing long branch [1021] beq __b73 to bne
|
|
Fixing long branch [1026] beq __b74 to bne
|
|
Fixing long branch [1031] beq __b75 to bne
|
|
Fixing long branch [1146] bne __b89 to beq
|
|
Fixing long branch [1152] beq __b90 to bne
|
|
Fixing long branch [1157] beq __b91 to bne
|
|
Fixing long branch [1162] beq __b92 to bne
|
|
Fixing long branch [1278] bne __b106 to beq
|
|
Fixing long branch [1284] beq __b107 to bne
|
|
Fixing long branch [1289] beq __b108 to bne
|
|
Fixing long branch [1294] beq __b109 to bne
|
|
Fixing long branch [1410] bne __b123 to beq
|
|
Fixing long branch [1417] beq __b124 to bne
|
|
Fixing long branch [1422] beq __b125 to bne
|
|
Fixing long branch [1427] beq __b126 to bne
|
|
Fixing long branch [1764] bcc __b3 to bcs
|
|
Fixing long branch [1929] bcc __b2 to bcs
|
|
Fixing long branch [1945] bcc __b5 to bcs
|
|
Fixing long branch [2071] bcc __b5 to bcs
|
|
Fixing long branch [2438] bne __b2 to beq
|
|
|
|
FINAL SYMBOL TABLE
|
|
__constant char ABS[$100] = kickasm {{ .for(var i=0;i<$100;i++) {
|
|
.var x = (i<$80)?i:($100-i);
|
|
.byte abs(x)
|
|
}
|
|
}}
|
|
__constant char ABS_POST[1] = { 0 }
|
|
__constant char ABS_PRE[1] = { 1 }
|
|
__constant char * const BANK_1 = (char *) 16384
|
|
__constant char * const BANK_2 = (char *) 49152
|
|
__constant const char BLACK = 0
|
|
__constant const char BLUE = 6
|
|
__constant char BOB_GRAPHICS_CRUNCHED[] = kickasm( uses BOB_MASK_LEFT) {{ .modify B2() {
|
|
.pc = BOB_MASK_LEFT "BOB GRAPHICS TABLES"
|
|
.var bobs_pic = LoadPicture("pacman-bobs.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// TABLE char BOB_MASK_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_MASK_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,24+scroll*6+row)
|
|
.for(var blue=0; blue<8;blue++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,48+scroll*6+row)
|
|
}
|
|
}
|
|
}}
|
|
__constant char * const BOB_MASK_LEFT = (char *) 21504
|
|
__constant char * const BOB_MASK_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*6
|
|
__constant char * const BOB_PIXEL_LEFT = BOB_MASK_LEFT+BOB_ROW_SIZE*$c
|
|
__constant char * const BOB_PIXEL_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*$12
|
|
__constant const char BOB_ROW_SIZE = $80
|
|
__constant char * const BORDER_COLOR = (char *) 53280
|
|
__constant char BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc
|
|
#import "byteboozer_decrunch.asm"
|
|
}}
|
|
__constant char CHASE = 0
|
|
__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320
|
|
__constant char * const CIA1_INTERRUPT = (char *) 56333
|
|
__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576
|
|
__constant const char CIA_INTERRUPT_CLEAR = $7f
|
|
__constant char DIRECTION::DOWN = 8
|
|
__constant char DIRECTION::LEFT = $10
|
|
__constant char DIRECTION::RIGHT = $20
|
|
__constant char DIRECTION::STOP = 0
|
|
__constant char DIRECTION::UP = 4
|
|
__constant char DIRECTION_ELIMINATE[$21] = { $ff, 0, 0, 0, $f7, 0, 0, 0, $fb, 0, 0, 0, 0, 0, 0, 0, $df, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $ef }
|
|
__constant char DIRECTION_REVERSE[$21] = { 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, $20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $10 }
|
|
__constant char DIRECTION_SINGLE[$40] = { 0, 0, 0, 0, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $20, $20, $20, $20, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4 }
|
|
__constant char DOWN = 8
|
|
__constant char EMPTY = 0
|
|
__constant char FRIGHTENED = 2
|
|
__constant char * const GAMEOVER_GFX = (char *) 42752
|
|
__constant char GAMEOVER_GFX_CRUNCHED[] = kickasm( uses GAMEOVER_GFX) {{ .modify B2() {
|
|
.pc = GAMEOVER_GFX "GAMEOVER GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_gameover = LoadPicture("pacman-gameover.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_gameover.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}}
|
|
__constant char GHOSTS_MODE::CHASE = 0
|
|
__constant char GHOSTS_MODE::FRIGHTENED = 2
|
|
__constant char GHOSTS_MODE::SCATTER = 1
|
|
__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534
|
|
__constant char * const INTRO_MUSIC = (char *) 12288
|
|
__constant char INTRO_MUSIC_CRUNCHED[] = kickasm( uses INTRO_MUSIC) {{ .modify B2() {
|
|
.pc = INTRO_MUSIC "INTRO MUSIC"
|
|
.const music = LoadBinary("pacman-2chn-simpler.prg", BF_C64FILE)
|
|
.fill music.getSize(), music.get(i)
|
|
}
|
|
}}
|
|
__constant const unsigned int INTRO_MUSIC_CRUNCHED_SIZE = $600
|
|
__constant char * const INTRO_MUSIC_CRUNCHED_UPPER = (char *) 42752
|
|
__constant const char IRQ_RASTER = 1
|
|
__constant const char IRQ_SCREEN_TOP_LINE = 5
|
|
__constant char * const IRQ_STATUS = (char *) 53273
|
|
__constant char LEFT = $10
|
|
__constant char * const LEVEL_TILES = (char *) 18432
|
|
__constant char LEVEL_TILES_CRUNCHED[] = kickasm( uses LEVEL_TILES) {{ .modify B2() {
|
|
.pc = LEVEL_TILES "LEVEL TILE GRAPHICS"
|
|
.var pic_level = LoadPicture("pacman-tiled.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// Maps the tile pixels (a 16 bit number) to the tile ID
|
|
.var TILESET = Hashtable()
|
|
// Maps the tile ID to the pixels (a 16 bit number)
|
|
.var TILESET_BY_ID = Hashtable()
|
|
// Tile ID 0 is empty
|
|
.eval TILESET.put(0, 0)
|
|
.eval TILESET_BY_ID.put(0, 0)
|
|
|
|
.align $100
|
|
// TABLE LEVEL_TILES[64*37]
|
|
// The level is 50 tiles * 37 tiles. The first tile line are special half-tiles (where only the last 2 pixel rows are shown).
|
|
// The level data is organized as 37 rows of 64 bytes containing tile IDs. (the last 14 are unused to achieve 64-byte alignment)
|
|
.for(var ytile=0; ytile<37; ytile++) {
|
|
.for(var xtile=0; xtile<50; xtile++) {
|
|
// Find the tile pixels (4x4 px - 16 bits)
|
|
.var pixels = 0;
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = pic_level.getMulticolorByte(xtile/2,ytile*4+i)
|
|
.if((xtile&1)==0) {
|
|
// left nibble
|
|
.eval pix = floor(pix / $10)
|
|
} else {
|
|
// right nibble
|
|
.eval pix = pix & $0f
|
|
}
|
|
.eval pixels = pixels*$10 + pix
|
|
}
|
|
.var tile_id = 0
|
|
.if(TILESET.containsKey(pixels)) {
|
|
.eval tile_id = TILESET.get(pixels)
|
|
} else {
|
|
.eval tile_id = TILESET.keys().size()
|
|
.eval TILESET.put(pixels, tile_id)
|
|
.eval TILESET_BY_ID.put(tile_id, pixels)
|
|
// .print "tile "+tile_id+" : "+toHexString(pixels,4)
|
|
}
|
|
// Output the tile ID
|
|
.byte tile_id
|
|
}
|
|
.fill 14, 0
|
|
}
|
|
|
|
.align $100
|
|
// TABLE char TILES_LEFT[0x80]
|
|
// The left tile graphics. A tile is 4x4 px. The left tiles contain tile graphics for the 4 left bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix<<4
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
|
|
.align $80
|
|
// TABLE char TILES_RIGHT[0x80]
|
|
// The right tile graphics. A tile is 4x4 px. The right tiles contain tile graphics for the 4 right bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
.align $80
|
|
// TABLE char TILES_TYPE[0x20]
|
|
// 0: empty (all black), 1:pill, 2:powerup, 4: wall (contains blue pixels)
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.var tile_type = 0
|
|
.if(pixels==$0220) .eval tile_type=1 // 1:pill
|
|
.if(pixels==$aaaa) .eval tile_type=2 // 2:powerup
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
// Detect wall - any blue pixels (%01)
|
|
.if( (pix&%0100)==%0100) .eval tile_type = 4; // 4:wall
|
|
.if( (pix&%0001)==%0001) .eval tile_type = 4; // 4:wall
|
|
.eval pixels = pixels << 4
|
|
}
|
|
.byte tile_type
|
|
//.print "tile "+tile_id+" gfx "+toHexString(TILESET_BY_ID.get(tile_id),4) + " type "+tile_type
|
|
}
|
|
|
|
}
|
|
}}
|
|
__constant char * const LEVEL_TILES_DIRECTIONS = (char *) 15872
|
|
__constant unsigned int LEVEL_YTILE_OFFSET[$25] = { 0, $40, $80, $c0, $100, $140, $180, $1c0, $200, $240, $280, $2c0, $300, $340, $380, $3c0, $400, $440, $480, $4c0, $500, $540, $580, $5c0, $600, $640, $680, $6c0, $700, $740, $780, $7c0, $800, $840, $880, $8c0, $900 }
|
|
__constant char LOGIC_CODE_CRUNCHED[] = kickasm( uses bobs_xcol uses bobs_yfine uses bobs_bob_id uses bobs_restore uses RENDER_INDEX uses RENDER_OFFSET_CANVAS_LO uses RENDER_OFFSET_CANVAS_HI uses RENDER_OFFSET_YPOS_INC uses SIZE_BOB_RESTORE uses BOB_ROW_SIZE uses NUM_BOBS uses left_render_index_xcol uses left_canvas uses left_ypos_inc_offset uses rigt_render_index_xcol uses rigt_canvas uses rigt_ypos_inc_offset uses BOB_MASK_LEFT uses BOB_PIXEL_LEFT uses BOB_MASK_RIGT uses BOB_PIXEL_RIGT uses canvas_base_hi uses bobs_restore_base uses RENDER_YPOS_INC uses logic_tile_ptr uses logic_tile_xcol uses logic_tile_yfine uses logic_tile_left_idx uses logic_tile_right_idx) {{ .macro LOGIC_BEGIN(cycles) {
|
|
.byte cycles
|
|
}
|
|
.macro LOGIC_END() {
|
|
.byte $ff
|
|
}
|
|
.modify B2() {
|
|
.pc = LOGIC_CODE_UNMERGED "LOGIC CODE UNMERGED"
|
|
LOGIC_BEGIN(2)
|
|
clc
|
|
LOGIC_END()
|
|
|
|
// ******************************************
|
|
// Restores the canvas under the rendered bobs
|
|
// ******************************************
|
|
|
|
.for(var bob=NUM_BOBS-1;bob>=0; bob--) {
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// char * volatile left_canvas = *((char**)&bob_restore[0]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = bob_restore[2];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
// char * volatile rigt_canvas = *((char**)&bob_restore[3]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
sta.z rigt_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
// char rigt_ypos_inc_offset = bob_restore[5];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
sta.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Restore Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// *left_canvas = bob_restore[6] ;
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// *rigt_canvas = bob_restore[7];
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
|
|
// ******************************************
|
|
// Render two tiles on the canvas
|
|
// ******************************************
|
|
|
|
// y==0 from bob restore
|
|
LOGIC_BEGIN(12)
|
|
// char tile_left_idx = 4 * logic_tile_ptr[0];
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_left_idx
|
|
LOGIC_END()
|
|
// char logic_tile_right_idx = 4 * logic_tile_ptr[1];
|
|
LOGIC_BEGIN(2)
|
|
iny
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(12)
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_right_idx
|
|
LOGIC_END()
|
|
// char * render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, ytile*2 };
|
|
LOGIC_BEGIN(8)
|
|
lda #>RENDER_INDEX
|
|
adc logic_tile_xcol
|
|
sta.z left_render_index_xcol+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(6)
|
|
lda logic_tile_yfine
|
|
sta.z left_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// unsigned int canvas_offset = {render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] };
|
|
// char * left_canvas = canvas_base_hi*$100 + canvas_offset;
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(11)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = render_index_xcol[RENDER_OFFSET_YPOS_INC];
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Render Tile Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<4;row++) {
|
|
|
|
// *left_canvas = tile_left_pixels[y] | tile_right_pixels[y];
|
|
LOGIC_BEGIN(3)
|
|
ldx logic_tile_left_idx
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(17)
|
|
lda TILES_LEFT+row,x
|
|
ldx logic_tile_right_idx
|
|
ora TILES_RIGHT+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
}
|
|
|
|
// ******************************************
|
|
// Renders the BOBs at the given positions
|
|
// ******************************************
|
|
|
|
.for(var bob=0;bob<NUM_BOBS; bob++) {
|
|
// char * left_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, yfine };
|
|
// char * rigt_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol+1, yfine };
|
|
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(14)
|
|
lda #>RENDER_INDEX
|
|
adc bobs_xcol+bob
|
|
sta.z left_render_index_xcol+1
|
|
adc #1
|
|
sta.z rigt_render_index_xcol+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_yfine+bob
|
|
sta.z left_render_index_xcol
|
|
sta.z rigt_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// char * left_canvas = (char*){ left_render_index_xcol[85], left_render_index_xcol[0] };
|
|
// bob_restore[0] = <left_canvas; bob_restore[1] = >left_canvas;
|
|
// char * rigt_canvas = (char*){ rigt_render_index_xcol[85], rigt_render_index_xcol[0] };
|
|
// bob_restore[3] = <rigt_canvas; bob_restore[4] = >rigt_canvas;
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (rigt_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z rigt_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
LOGIC_END()
|
|
|
|
// char left_ypos_inc_offset = left_render_index_xcol[170];
|
|
// bob_restore[2] = left_ypos_inc_offset;
|
|
// char rigt_ypos_inc_offset = rigt_render_index_xcol[170];
|
|
// bob_restore[5] = rigt_ypos_inc_offset;
|
|
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
LOGIC_END()
|
|
|
|
// Render Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// bob_restore[6] = *left_canvas;
|
|
// *left_canvas = *left_canvas & BOB_MASK_LEFT_0[bob_id] | BOB_PIXEL_LEFT_0[bob_id];
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (left_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (rigt_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(4)
|
|
ldx bobs_bob_id+bob
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(19)
|
|
lda (left_canvas),y
|
|
and BOB_MASK_LEFT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_LEFT+row*BOB_ROW_SIZE,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// bob_restore[7] = *rigt_canvas;
|
|
// *rigt_canvas = *rigt_canvas & BOB_MASK_RIGT_0[bob_id] | BOB_PIXEL_RIGT_0[bob_id];
|
|
LOGIC_BEGIN(19)
|
|
lda (rigt_canvas),y
|
|
and BOB_MASK_RIGT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_RIGT+row*BOB_ROW_SIZE,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
//LOGIC_BEGIN(6)
|
|
//lda #0
|
|
//sta $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(0) // end of logic code
|
|
}
|
|
}}
|
|
__constant char * const LOGIC_CODE_UNMERGED = (char *) 57344
|
|
__constant const char NUM_BOBS = 5
|
|
__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8
|
|
__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR = $27
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y = 1
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR = $28
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y = 3
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y = 5
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y = 7
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y = 9
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y = $b
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y = $d
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y = $f
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X = $1d
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC = $1c
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1 = $25
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2 = $26
|
|
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB = $10
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY = 5
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL = 4
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH = 2
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE = 6
|
|
__constant char OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18
|
|
__constant char PACMAN_CH1_CONTROL[] = { $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0, $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0 }
|
|
__constant char PACMAN_CH1_FREQ_HI[] = { $23, $1d, $1a, $17, $15, $12, 0, 0, 0, 0, 0, $19, $1a, $1c, $1d, $20, $23, 0, 0, 0, 0, 0 }
|
|
__constant char PILL = 1
|
|
__constant char POWERUP = 2
|
|
__constant char * const PROCPORT = (char *) 1
|
|
__constant char * const PROCPORT_DDR = (char *) 0
|
|
__constant const char PROCPORT_DDR_MEMORY_MASK = 7
|
|
__constant const char PROCPORT_RAM_ALL = 0
|
|
__constant const char PROCPORT_RAM_IO = 5
|
|
__constant char * const RASTER = (char *) 53266
|
|
__constant char * const RASTER_CODE = (char *) 32768
|
|
__constant char RASTER_CODE_CRUNCHED[] = kickasm( uses VICII_CONTROL2 uses BORDER_COLOR uses RASTER_CODE_UNMERGED uses side_sprites_color uses side_sprites_mc uses bottom_sprites_color uses bottom_sprites_mc) {{ .macro RASTER_CYCLES(cycles) {
|
|
.byte $ff, cycles
|
|
}
|
|
.modify B2() {
|
|
.pc = RASTER_CODE_UNMERGED "RASTER CODE UNMERGED"
|
|
RASTER_CYCLES(29)
|
|
// Line 7 cycle 44
|
|
// Raster Line
|
|
.var raster_line = 7
|
|
// Line in the sprite
|
|
.var sprite_line = 20
|
|
// Current sprite ypos
|
|
.var sprite_ypos = 7
|
|
// Current sprite screen (graphics bank not important since sprite layout in the banks is identical)
|
|
.var sprite_screen = SCREENS_1
|
|
.var available_cycles = 0;
|
|
.for(var i=0;i<293;i++) {
|
|
// Line cycle count
|
|
.var line_cycles = 46
|
|
.if(raster_line>=70 && raster_line<238) {
|
|
// Only 2 sprites on these lines - so more cycles available
|
|
.eval line_cycles = 58
|
|
}
|
|
// Create 9th sprite by moving sprite 0
|
|
.if(mod(raster_line,2)==0) {
|
|
lda #$6f
|
|
sta $d000
|
|
} else {
|
|
lda #$e7
|
|
sta $d000
|
|
}
|
|
.eval line_cycles -= 6;
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
.eval line_cycles -= 12;
|
|
.eval raster_line++
|
|
.eval sprite_line++
|
|
.if(sprite_line==21) {
|
|
.eval sprite_line = 0
|
|
.eval sprite_ypos += 21
|
|
}
|
|
// Set sprite single-color mode on splash
|
|
.if(raster_line==53) {
|
|
lda side_sprites_mc
|
|
sta $d01c
|
|
lda side_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
}
|
|
// Set sprite multi-color mode on splash
|
|
.if(raster_line==248) {
|
|
lda bottom_sprites_mc
|
|
sta $d01c
|
|
lda bottom_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
//.print "raster:"+raster_line+" multi-color"
|
|
}
|
|
// Open top border
|
|
.if(raster_line==55) {
|
|
lda #VICII_RSEL|VICII_ECM|VICII_BMM|7
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" top border rsel=1"
|
|
}
|
|
// Open bottom border
|
|
.if(raster_line==250) {
|
|
lda #VICII_ECM|VICII_BMM|7 // DEN=0, RSEL=0
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" bottom border rsel=0"
|
|
}
|
|
// Move sprites down
|
|
.if(sprite_line>=2 && sprite_line<=9) {
|
|
.if(sprite_ypos<300) {
|
|
.var sprite_id = sprite_line-2
|
|
.if(sprite_id==0 || sprite_id==1 || sprite_ypos<=55 || sprite_ypos>=(246-21)) {
|
|
lda #sprite_ypos
|
|
sta SPRITES_YPOS+2*sprite_id
|
|
.eval line_cycles -= 6;
|
|
//.print "raster:"+raster_line+" sprite:"+sprite_id+" ypos:"+sprite_ypos
|
|
}
|
|
}
|
|
}
|
|
// Change sprite data
|
|
.if(sprite_line==20) {
|
|
.eval sprite_screen += $400
|
|
lda #sprite_screen/$40
|
|
sta VICII_MEMORY
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" sprite data $"+toHexString(sprite_screen)
|
|
}
|
|
// Spend the rest of the cycles on NOPS
|
|
.if(line_cycles<0 || line_cycles==1) .error "Too many cycles spent on line "+raster_line
|
|
.if(line_cycles>0) {
|
|
//.print "raster:"+raster_line+" cycles $"+toHexString(line_cycles)
|
|
RASTER_CYCLES(line_cycles)
|
|
.eval line_cycles -= line_cycles
|
|
.eval available_cycles += line_cycles
|
|
}
|
|
}
|
|
//.print "Available cycles: "+available_cycles
|
|
|
|
lda #$6f
|
|
sta $d000
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
RASTER_CYCLES(00) // End of raster code
|
|
}
|
|
}}
|
|
__constant char * const RASTER_CODE_UNMERGED = (char *) 24576
|
|
__constant const char RED = 2
|
|
__constant char * const RENDER_INDEX = (char *) 46592
|
|
__constant const char RENDER_OFFSET_CANVAS_HI = $50
|
|
__constant const char RENDER_OFFSET_CANVAS_LO = 0
|
|
__constant const char RENDER_OFFSET_YPOS_INC = $a0
|
|
__constant char *RENDER_XCOLS[$1a] = { 0, 1, 2, $400, $401, $402, $800, $801, $802, $c00, $c01, $c02, $1000, $1001, $1002, $1400, $1401, $1402, $1800, $1801, $1802, $1c00, $1c01, $1c02, 0, 0 }
|
|
__constant unsigned int RENDER_YPOS[$95] = { 0, 0, 0, 6, $c, $12, $18, $1e, $24, $2a, $30, $36, $3c, (unsigned int)$40+3, (unsigned int)$40+9, (unsigned int)$40+$f, (unsigned int)$40+$15, (unsigned int)$40+$1b, (unsigned int)$40+$21, (unsigned int)$40+$27, (unsigned int)$40+$2d, (unsigned int)$40+$33, (unsigned int)$40+$39, $80, (unsigned int)$80+6, (unsigned int)$80+$c, (unsigned int)$80+$12, (unsigned int)$80+$18, (unsigned int)$80+$1e, (unsigned int)$80+$24, (unsigned int)$80+$2a, (unsigned int)$80+$30, (unsigned int)$80+$36, (unsigned int)$80+$3c, (unsigned int)$c0+3, (unsigned int)$c0+9, (unsigned int)$c0+$f, (unsigned int)$c0+$15, (unsigned int)$c0+$1b, (unsigned int)$c0+$21, (unsigned int)$c0+$27, (unsigned int)$c0+$2d, (unsigned int)$c0+$33, (unsigned int)$c0+$39, $100, $100+6, $100+$c, $100+$12, $100+$18, $100+$1e, $100+$24, $100+$2a, $100+$30, $100+$36, $100+$3c, $140+3, $140+9, $140+$f, $140+$15, $140+$1b, $140+$21, $140+$27, $140+$2d, $140+$33, $140+$39, $180, $180+6, $180+$c, $180+$12, $180+$18, $180+$1e, $180+$24, $180+$2a, $180+$30, $180+$36, $180+$3c, $1c0+3, $1c0+9, $1c0+$f, $1c0+$15, $1c0+$1b, $1c0+$21, $1c0+$27, $1c0+$2d, $1c0+$33, $1c0+$39, $200, $200+6, $200+$c, $200+$12, $200+$18, $200+$1e, $200+$24, $200+$2a, $200+$30, $200+$36, $200+$3c, $240+3, $240+9, $240+$f, $240+$15, $240+$1b, $240+$21, $240+$27, $240+$2d, $240+$33, $240+$39, $280, $280+6, $280+$c, $280+$12, $280+$18, $280+$1e, $280+$24, $280+$2a, $280+$30, $280+$36, $280+$3c, $2c0+3, $2c0+9, $2c0+$f, $2c0+$15, $2c0+$1b, $2c0+$21, $2c0+$27, $2c0+$2d, $2c0+$33, $2c0+$39, $300, $300+6, $300+$c, $300+$12, $300+$18, $300+$1e, $300+$24, $300+$2a, $300+$30, $300+$36, $300+$3c, $340+3, $340+9, $340+$f, $340+$15, $340+$1b, $340+$21, $340+$27, $340+$2d, $340+$33, $340+$39 }
|
|
__constant unsigned int RENDER_YPOS_9TH[$95] = { 3, 3, 3, 9, $f, $15, $1b, $21, $27, $2d, $33, $39, $40, (unsigned int)$40+6, (unsigned int)$40+$c, (unsigned int)$40+$12, (unsigned int)$40+$18, (unsigned int)$40+$1e, (unsigned int)$40+$24, (unsigned int)$40+$2a, (unsigned int)$40+$30, (unsigned int)$40+$36, (unsigned int)$40+$3c, (unsigned int)$80+3, (unsigned int)$80+9, (unsigned int)$80+$f, (unsigned int)$80+$15, (unsigned int)$80+$1b, (unsigned int)$80+$21, (unsigned int)$80+$27, (unsigned int)$80+$2d, (unsigned int)$80+$33, (unsigned int)$80+$39, $c0, (unsigned int)$c0+6, (unsigned int)$c0+$c, (unsigned int)$c0+$12, (unsigned int)$c0+$18, (unsigned int)$c0+$1e, (unsigned int)$c0+$24, (unsigned int)$c0+$2a, (unsigned int)$c0+$30, (unsigned int)$c0+$36, (unsigned int)$c0+$3c, $100+3, $100+9, $100+$f, $100+$15, $100+$1b, $100+$21, $100+$27, $100+$2d, $100+$33, $100+$39, $140, $140+6, $140+$c, $140+$12, $140+$18, $140+$1e, $140+$24, $140+$2a, $140+$30, $140+$36, $140+$3c, $180+3, $180+9, $180+$f, $180+$15, $180+$1b, $180+$21, $180+$27, $180+$2d, $180+$33, $180+$39, $1c0, $1c0+6, $1c0+$c, $1c0+$12, $1c0+$18, $1c0+$1e, $1c0+$24, $1c0+$2a, $1c0+$30, $1c0+$36, $1c0+$3c, $200+3, $200+9, $200+$f, $200+$15, $200+$1b, $200+$21, $200+$27, $200+$2d, $200+$33, $200+$39, $240, $240+6, $240+$c, $240+$12, $240+$18, $240+$1e, $240+$24, $240+$2a, $240+$30, $240+$36, $240+$3c, $280+3, $280+9, $280+$f, $280+$15, $280+$1b, $280+$21, $280+$27, $280+$2d, $280+$33, $280+$39, $2c0, $2c0+6, $2c0+$c, $2c0+$12, $2c0+$18, $2c0+$1e, $2c0+$24, $2c0+$2a, $2c0+$30, $2c0+$36, $2c0+$3c, $300+3, $300+9, $300+$f, $300+$15, $300+$1b, $300+$21, $300+$27, $300+$2d, $300+$33, $300+$39, $340, $340+6, $340+$c, $340+$12, $340+$18, $340+$1e, $340+$24, $340+$2a, $340+$30, $340+$36, $340+$3c }
|
|
__constant char RENDER_YPOS_INC[$a0] = { 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7 }
|
|
__constant char RIGHT = $20
|
|
__constant char SCATTER = 1
|
|
__constant char * const SCREENS_1 = (char *) 16384
|
|
__constant char * const SCREENS_2 = (char *) 49152
|
|
__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *) 54272
|
|
__constant char * const SID_CH1_FREQ_HI = (char *) 54273
|
|
__constant char SIZEOF_CHAR = 1
|
|
__constant const char SIZE_BOB_RESTORE = $12
|
|
__constant char * const SPLASH = (char *) 16384
|
|
__constant char SPLASH_CRUNCHED[] = kickasm( uses SPLASH) {{ .modify B2() {
|
|
.pc = SPLASH "SPLASH SCREEN" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_splash_mc = LoadPicture("pacman-splash.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// 0:BLACK, 1:YELLOW
|
|
.var pic_splash_yellow = LoadPicture("pacman-splash.png", List().add($000000, $bfce72))
|
|
// 0:BLACK, 1:BLUE
|
|
.var pic_splash_blue = LoadPicture("pacman-splash.png", List().add($000000, $352879))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<147; ypos++) {
|
|
.if(ypos>25 && ypos<123) {
|
|
// Sprites in the sides are in single color blue on splash screen
|
|
.byte pic_splash_blue.getSinglecolorByte(xcol,ypos)
|
|
} else .if(xcol>2 && xcol<21) {
|
|
// Sprites 2-7 are in single color yellow on splash screen
|
|
.byte pic_splash_yellow.getSinglecolorByte(xcol,ypos)
|
|
} else {
|
|
// Sprites 0&1 are in multi color on splash screen
|
|
.byte pic_splash_mc.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}}
|
|
__constant char * const SPRITES_1 = (char *) 24576
|
|
__constant char * const SPRITES_2 = (char *) 57344
|
|
__constant char * const SPRITES_COLOR = (char *) 53287
|
|
__constant char * const SPRITES_XPOS = (char *) 53248
|
|
__constant char * const SPRITES_YPOS = (char *) 53249
|
|
__constant char STOP = 0
|
|
__constant char * const TILES_LEFT = LEVEL_TILES+$a00
|
|
__constant char * const TILES_RIGHT = LEVEL_TILES+$a80
|
|
__constant char * const TILES_TYPE = LEVEL_TILES+$b00
|
|
__constant char TILE_TYPE::EMPTY = 0
|
|
__constant char TILE_TYPE::PILL = 1
|
|
__constant char TILE_TYPE::POWERUP = 2
|
|
__constant char TILE_TYPE::WALL = 4
|
|
__constant char UP = 4
|
|
__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248
|
|
__constant const char VICII_BMM = $20
|
|
__constant char * const VICII_CONTROL1 = (char *) 53265
|
|
__constant char * const VICII_CONTROL2 = (char *) 53270
|
|
__constant const char VICII_DEN = $10
|
|
__constant const char VICII_ECM = $40
|
|
__constant char * const VICII_MEMORY = (char *) 53272
|
|
__constant const char VICII_RSEL = 8
|
|
__constant const char VICII_RST8 = $80
|
|
__constant char WALL = 4
|
|
__constant char * const WIN_GFX = (char *) 42752
|
|
__constant char WIN_GFX_CRUNCHED[] = kickasm( uses WIN_GFX) {{ .modify B2() {
|
|
.pc = WIN_GFX "WIN GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_win = LoadPicture("pacman-win.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_win.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}}
|
|
__constant const char YELLOW = 7
|
|
void __start()
|
|
__loadstore volatile char anim_frame_idx // zp[1]:96 0.9019607843137255
|
|
__constant char bobs_bob_id[NUM_BOBS] = { 0, 0, 0, 0, 0 }
|
|
__constant char bobs_restore[NUM_BOBS*SIZE_BOB_RESTORE*2] = { fill( NUM_BOBS*SIZE_BOB_RESTORE*2, 0) }
|
|
__loadstore volatile char bobs_restore_base // zp[1]:33 1070.0
|
|
__constant char bobs_xcol[NUM_BOBS] = { $a, $a, $a, $a, $a }
|
|
__constant char bobs_yfine[NUM_BOBS] = { $2d, $2d, $2d, $2d, $2d }
|
|
__loadstore volatile char bottom_sprites_color // zp[1]:24 11040.0
|
|
__loadstore volatile char bottom_sprites_mc // zp[1]:25 11040.0
|
|
void byteboozer_decrunch(char * volatile crunched)
|
|
__loadstore char * volatile byteboozer_decrunch::crunched // zp[2]:36 438.5
|
|
__loadstore volatile char canvas_base_hi // zp[1]:32 1070.0
|
|
char choose_direction(char open_directions , char ghost_xtile , char ghost_ytile , char target_xtile , char target_ytile)
|
|
char choose_direction::$2 // reg byte a 202.0
|
|
char choose_direction::$4 // reg byte a 202.0
|
|
char choose_direction::$6 // reg byte a 202.0
|
|
char choose_direction::$8 // reg byte a 202.0
|
|
char choose_direction::direction
|
|
char choose_direction::direction#10 // direction zp[1]:51 28.857142857142858
|
|
char choose_direction::direction#6 // direction zp[1]:51 67.33333333333333
|
|
char choose_direction::direction#8 // direction zp[1]:51 57.714285714285715
|
|
char choose_direction::dist_down
|
|
char choose_direction::dist_down#0 // reg byte x 151.5
|
|
char choose_direction::dist_left
|
|
char choose_direction::dist_left#0 // dist_left zp[1]:34 151.5
|
|
char choose_direction::dist_min
|
|
char choose_direction::dist_min#10 // reg byte x 121.2
|
|
char choose_direction::dist_min#11 // dist_min zp[1]:34 101.0
|
|
char choose_direction::dist_min#13 // reg byte x 202.0
|
|
char choose_direction::dist_min#14 // reg byte x 202.0
|
|
char choose_direction::dist_min#17 // dist_min zp[1]:34 202.0
|
|
char choose_direction::dist_min#18 // dist_min zp[1]:34 202.0
|
|
char choose_direction::dist_min#6 // reg byte y 80.8
|
|
char choose_direction::dist_right
|
|
char choose_direction::dist_right#0 // reg byte a 202.0
|
|
char choose_direction::dist_up
|
|
char choose_direction::dist_up#0 // reg byte y 101.0
|
|
char choose_direction::ghost_xtile
|
|
char choose_direction::ghost_xtile#0 // reg byte y 5.5
|
|
char choose_direction::ghost_xtile#1 // reg byte y 5.5
|
|
char choose_direction::ghost_xtile#2 // reg byte y 5.5
|
|
char choose_direction::ghost_xtile#3 // reg byte y 5.5
|
|
char choose_direction::ghost_xtile#4 // reg byte y 145.0
|
|
char choose_direction::ghost_ytile
|
|
char choose_direction::ghost_ytile#0 // ghost_ytile zp[1]:52 7.333333333333333
|
|
char choose_direction::ghost_ytile#1 // ghost_ytile zp[1]:52 7.333333333333333
|
|
char choose_direction::ghost_ytile#2 // ghost_ytile zp[1]:52 7.333333333333333
|
|
char choose_direction::ghost_ytile#3 // ghost_ytile zp[1]:52 7.333333333333333
|
|
char choose_direction::ghost_ytile#4 // ghost_ytile zp[1]:52 72.5
|
|
char choose_direction::open_directions
|
|
char choose_direction::open_directions#0 // open_directions zp[1]:73 4.4
|
|
char choose_direction::open_directions#1 // open_directions zp[1]:73 4.4
|
|
char choose_direction::open_directions#10 // open_directions zp[1]:73 19.478260869565215
|
|
char choose_direction::open_directions#2 // open_directions zp[1]:73 4.4
|
|
char choose_direction::open_directions#3 // open_directions zp[1]:73 4.4
|
|
char choose_direction::return
|
|
char choose_direction::return#0 // reg byte a 22.0
|
|
char choose_direction::return#1 // reg byte a 22.0
|
|
char choose_direction::return#10 // return zp[1]:51 41.0
|
|
char choose_direction::return#2 // reg byte a 22.0
|
|
char choose_direction::return#3 // reg byte a 22.0
|
|
char choose_direction::target_xtile
|
|
char choose_direction::target_xtile#0 // reg byte x 11.0
|
|
char choose_direction::target_xtile#1 // reg byte x 11.0
|
|
char choose_direction::target_xtile#2 // reg byte x 11.0
|
|
char choose_direction::target_xtile#3 // reg byte x 11.0
|
|
char choose_direction::target_xtile#4 // reg byte x 145.0
|
|
char choose_direction::target_ytile
|
|
char choose_direction::target_ytile#0 // target_ytile zp[1]:39 22.0
|
|
char choose_direction::target_ytile#1 // target_ytile zp[1]:39 22.0
|
|
char choose_direction::target_ytile#2 // target_ytile zp[1]:39 22.0
|
|
char choose_direction::target_ytile#3 // target_ytile zp[1]:39 22.0
|
|
char choose_direction::target_ytile#4 // target_ytile zp[1]:39 72.5
|
|
char choose_direction::xdiff
|
|
char choose_direction::xdiff#0 // xdiff zp[1]:75 21.041666666666664
|
|
char choose_direction::ydiff
|
|
char choose_direction::ydiff#0 // ydiff zp[1]:52 21.956521739130434
|
|
void done_run()
|
|
char done_run::$8 // reg byte a 2000002.0
|
|
char *done_run::gfx
|
|
char *done_run::gfx#1 // gfx zp[2]:5 333333.6666666667
|
|
char *done_run::gfx#2 // gfx zp[2]:5 800001.25
|
|
char *done_run::gfx#4 // gfx zp[2]:5 100001.0
|
|
char done_run::i
|
|
char done_run::i#1 // reg byte x 200002.0
|
|
char done_run::i#2 // reg byte x 133334.66666666666
|
|
char done_run::i1
|
|
char done_run::i1#1 // reg byte x 200002.0
|
|
char done_run::i1#2 // reg byte x 120001.2
|
|
char done_run::pixels
|
|
char done_run::pixels#0 // reg byte x 500000.5
|
|
char done_run::xcol
|
|
char done_run::xcol#1 // xcol zp[1]:20 200002.0
|
|
char done_run::xcol#2 // xcol zp[1]:20 118182.18181818182
|
|
char done_run::ypos
|
|
char done_run::ypos#1 // ypos zp[1]:16 2000002.0
|
|
char done_run::ypos#2 // ypos zp[1]:16 500000.5
|
|
__loadstore volatile char frame // zp[1]:101 0.5
|
|
void game_logic()
|
|
char game_logic::$119 // reg byte a 22.0
|
|
char game_logic::$14 // reg byte x 22.0
|
|
char game_logic::$140 // reg byte a 22.0
|
|
char game_logic::$15 // reg byte a 22.0
|
|
char game_logic::$161 // reg byte a 22.0
|
|
char game_logic::$17 // reg byte a 22.0
|
|
char game_logic::$18 // reg byte x 22.0
|
|
char game_logic::$182 // reg byte a 22.0
|
|
char game_logic::$19 // reg byte x 11.0
|
|
char game_logic::$199 // reg byte a 22.0
|
|
char game_logic::$2 // reg byte x 22.0
|
|
char game_logic::$20 // reg byte a 22.0
|
|
char game_logic::$200 // reg byte a 22.0
|
|
char game_logic::$204 // reg byte a 22.0
|
|
char game_logic::$21 // reg byte a 22.0
|
|
char game_logic::$210 // zp[1]:34 2.588235294117647
|
|
char game_logic::$220 // reg byte x 11.0
|
|
char game_logic::$223 // reg byte x 11.0
|
|
char game_logic::$226 // reg byte x 11.0
|
|
char game_logic::$229 // reg byte x 11.0
|
|
char game_logic::$232 // reg byte x 11.0
|
|
char game_logic::$25 // reg byte a 22.0
|
|
char game_logic::$26 // reg byte x 22.0
|
|
char game_logic::$27 // reg byte x 11.0
|
|
char game_logic::$28 // reg byte a 22.0
|
|
char game_logic::$29 // reg byte a 22.0
|
|
char game_logic::$3 // reg byte a 22.0
|
|
char game_logic::$31 // reg byte a 22.0
|
|
char game_logic::$32 // reg byte x 22.0
|
|
char game_logic::$33 // reg byte x 11.0
|
|
char game_logic::$34 // reg byte a 22.0
|
|
char game_logic::$35 // reg byte a 22.0
|
|
char game_logic::$37 // reg byte a 22.0
|
|
char game_logic::$38 // reg byte x 22.0
|
|
char game_logic::$39 // reg byte x 11.0
|
|
char game_logic::$40 // reg byte a 22.0
|
|
char game_logic::$41 // reg byte a 22.0
|
|
char game_logic::$43 // reg byte a 22.0
|
|
char game_logic::$44 // reg byte x 22.0
|
|
char game_logic::$45 // reg byte x 11.0
|
|
char game_logic::$46 // reg byte a 22.0
|
|
char game_logic::$47 // reg byte a 22.0
|
|
char game_logic::$65 // reg byte a 22.0
|
|
char game_logic::$66 // reg byte a 22.0
|
|
char *game_logic::$67 // zp[2]:69 22.0
|
|
char game_logic::$68 // reg byte a 22.0
|
|
char game_logic::$69 // reg byte a 22.0
|
|
char game_logic::$70 // reg byte a 22.0
|
|
char *game_logic::$71 // zp[2]:69 22.0
|
|
char game_logic::$72 // reg byte a 22.0
|
|
char game_logic::$75 // reg byte x 11.0
|
|
char game_logic::$77 // reg byte y 11.0
|
|
char game_logic::$80 // reg byte x 11.0
|
|
char game_logic::$82 // reg byte y 11.0
|
|
char game_logic::$85 // reg byte x 11.0
|
|
char game_logic::$87 // reg byte y 11.0
|
|
char game_logic::$90 // reg byte x 11.0
|
|
char game_logic::$92 // reg byte y 11.0
|
|
char game_logic::do_reverse
|
|
char game_logic::do_reverse#4 // reg byte a 11.0
|
|
char game_logic::ghost1_bob_xfine
|
|
char game_logic::ghost1_bob_xfine#0 // reg byte y 5.5
|
|
char game_logic::ghost1_xtile
|
|
char game_logic::ghost1_xtile#0 // ghost1_xtile zp[1]:93 2.357142857142857
|
|
char game_logic::ghost1_ytile
|
|
char game_logic::ghost1_ytile#0 // ghost1_ytile zp[1]:52 2.357142857142857
|
|
char game_logic::ghost2_bob_xfine
|
|
char game_logic::ghost2_bob_xfine#0 // reg byte y 5.5
|
|
char game_logic::ghost2_xtile
|
|
char game_logic::ghost2_xtile#0 // ghost2_xtile zp[1]:92 2.357142857142857
|
|
char game_logic::ghost2_ytile
|
|
char game_logic::ghost2_ytile#0 // ghost2_ytile zp[1]:52 2.357142857142857
|
|
char game_logic::ghost3_bob_xfine
|
|
char game_logic::ghost3_bob_xfine#0 // reg byte y 5.5
|
|
char game_logic::ghost3_xtile
|
|
char game_logic::ghost3_xtile#0 // ghost3_xtile zp[1]:91 2.357142857142857
|
|
char game_logic::ghost3_ytile
|
|
char game_logic::ghost3_ytile#0 // ghost3_ytile zp[1]:52 2.357142857142857
|
|
char game_logic::ghost4_bob_xfine
|
|
char game_logic::ghost4_bob_xfine#0 // reg byte y 5.5
|
|
char game_logic::ghost4_xtile
|
|
char game_logic::ghost4_xtile#0 // ghost4_xtile zp[1]:51 2.357142857142857
|
|
char game_logic::ghost4_ytile
|
|
char game_logic::ghost4_ytile#0 // ghost4_ytile zp[1]:52 2.357142857142857
|
|
char game_logic::ghost_frame_idx
|
|
char game_logic::ghost_frame_idx#0 // ghost_frame_idx zp[1]:74 16.5
|
|
char game_logic::ghost_frame_idx#1 // ghost_frame_idx zp[1]:74 22.0
|
|
char game_logic::ghost_frame_idx#2 // ghost_frame_idx zp[1]:74 1.9999999999999998
|
|
char game_logic::joy_directions
|
|
char game_logic::joy_directions#0 // reg byte a 16.5
|
|
char game_logic::new_direction
|
|
char game_logic::new_direction#0 // reg byte a 16.5
|
|
char game_logic::open_directions
|
|
char game_logic::open_directions#0 // reg byte a 22.0
|
|
char game_logic::open_directions#1 // reg byte y 5.5
|
|
char game_logic::open_directions1
|
|
char game_logic::open_directions1#0 // reg byte a 22.0
|
|
char game_logic::open_directions1#1 // reg byte y 5.5
|
|
char game_logic::open_directions2
|
|
char game_logic::open_directions2#0 // reg byte a 22.0
|
|
char game_logic::open_directions2#1 // reg byte y 5.5
|
|
char game_logic::open_directions3
|
|
char game_logic::open_directions3#0 // reg byte a 22.0
|
|
char game_logic::open_directions3#1 // reg byte y 5.5
|
|
char game_logic::open_directions4
|
|
char game_logic::open_directions4#0 // reg byte x 3.666666666666667
|
|
char game_logic::pacman_bob_xfine
|
|
char game_logic::pacman_bob_xfine#0 // reg byte y 5.5
|
|
char game_logic::pacman_xtile
|
|
char game_logic::pacman_xtile#0 // pacman_xtile zp[1]:73 6.769230769230768
|
|
char game_logic::pacman_xtile1
|
|
char game_logic::pacman_xtile1#0 // reg byte x 11.0
|
|
char game_logic::pacman_ytile
|
|
char game_logic::pacman_ytile#0 // reg byte a 22.0
|
|
char game_logic::pacman_ytile1
|
|
char game_logic::pacman_ytile1#0 // reg byte a 11.0
|
|
char game_logic::target_xtile
|
|
char game_logic::target_xtile#2 // reg byte x 11.0
|
|
char game_logic::target_xtile#3 // reg byte x 5.5
|
|
char game_logic::target_xtile1
|
|
char game_logic::target_xtile1#2 // reg byte x 11.0
|
|
char game_logic::target_xtile1#3 // reg byte x 5.5
|
|
char game_logic::target_xtile2
|
|
char game_logic::target_xtile2#2 // reg byte x 11.0
|
|
char game_logic::target_xtile2#3 // reg byte x 5.5
|
|
char game_logic::target_xtile3
|
|
char game_logic::target_xtile3#2 // reg byte x 11.0
|
|
char game_logic::target_xtile3#3 // reg byte x 5.5
|
|
char game_logic::target_ytile
|
|
char game_logic::target_ytile#2 // target_ytile zp[1]:39 22.0
|
|
char game_logic::target_ytile#3 // target_ytile zp[1]:39 4.4
|
|
char game_logic::target_ytile1
|
|
char game_logic::target_ytile1#2 // target_ytile1 zp[1]:39 22.0
|
|
char game_logic::target_ytile1#3 // target_ytile1 zp[1]:39 4.4
|
|
char game_logic::target_ytile2
|
|
char game_logic::target_ytile2#2 // target_ytile2 zp[1]:39 22.0
|
|
char game_logic::target_ytile2#3 // target_ytile2 zp[1]:39 4.4
|
|
char game_logic::target_ytile3
|
|
char game_logic::target_ytile3#2 // target_ytile3 zp[1]:39 22.0
|
|
char game_logic::target_ytile3#3 // target_ytile3 zp[1]:39 4.4
|
|
char game_logic::tile_id
|
|
char game_logic::tile_id#0 // reg byte x 16.5
|
|
char *game_logic::ytiles
|
|
char *game_logic::ytiles#0 // ytiles zp[2]:69 5.5
|
|
__loadstore volatile char game_logic_substep // zp[1]:90 2.947368421052632
|
|
__loadstore volatile char game_playable // zp[1]:65 69.48275862068965
|
|
void gameplay_run()
|
|
unsigned int gameplay_run::$4 // zp[2]:9 2002.0
|
|
char gameplay_run::i
|
|
char gameplay_run::i#1 // reg byte x 200002.0
|
|
char gameplay_run::i#2 // reg byte x 133334.66666666666
|
|
char gameplay_run::i1
|
|
char gameplay_run::i1#1 // reg byte x 200002.0
|
|
char gameplay_run::i1#2 // reg byte x 133334.66666666666
|
|
char gameplay_run::i2
|
|
char gameplay_run::i2#1 // reg byte x 200002.0
|
|
char gameplay_run::i2#2 // reg byte x 133334.66666666666
|
|
__loadstore volatile char ghost1_direction // zp[1]:54 122.24096385542168
|
|
__loadstore volatile char ghost1_respawn // zp[1]:38 271.8378378378378
|
|
__loadstore volatile char ghost1_reverse // zp[1]:97 0.7291666666666666
|
|
__loadstore volatile char ghost1_substep // zp[1]:45 223.51111111111112
|
|
__loadstore volatile char ghost1_xfine // zp[1]:59 84.55
|
|
__loadstore volatile char ghost1_yfine // zp[1]:60 82.13008130081302
|
|
__loadstore volatile char ghost2_direction // zp[1]:55 110.28260869565217
|
|
__loadstore volatile char ghost2_respawn // zp[1]:40 264.6842105263158
|
|
__loadstore volatile char ghost2_reverse // zp[1]:98 0.7142857142857143
|
|
__loadstore volatile char ghost2_substep // zp[1]:46 218.65217391304347
|
|
__loadstore volatile char ghost2_xfine // zp[1]:62 76.28571428571428
|
|
__loadstore volatile char ghost2_yfine // zp[1]:63 74.27941176470588
|
|
__loadstore volatile char ghost3_direction // zp[1]:56 100.45544554455446
|
|
__loadstore volatile char ghost3_respawn // zp[1]:41 257.8974358974359
|
|
__loadstore volatile char ghost3_reverse // zp[1]:99 0.7
|
|
__loadstore volatile char ghost3_substep // zp[1]:47 214.0
|
|
__loadstore volatile char ghost3_xfine // zp[1]:64 69.4931506849315
|
|
__loadstore volatile char ghost3_yfine // zp[1]:66 67.7986577181208
|
|
__loadstore volatile char ghost4_direction // zp[1]:57 92.23636363636363
|
|
__loadstore volatile char ghost4_respawn // zp[1]:42 251.45000000000002
|
|
__loadstore volatile char ghost4_reverse // zp[1]:100 0.6862745098039216
|
|
__loadstore volatile char ghost4_substep // zp[1]:48 209.54166666666666
|
|
__loadstore volatile char ghost4_xfine // zp[1]:67 63.81132075471698
|
|
__loadstore volatile char ghost4_yfine // zp[1]:68 62.358024691358025
|
|
__constant char ghost_frames[] = { 0, 0, 0, 0, $3c, $40, $3c, $40, $34, $38, $34, $38, 0, 0, 0, 0, $2c, $30, $2c, $30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $24, $28, $24, $28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $5c, $60, $5c, $60, $54, $58, $54, $58, 0, 0, 0, 0, $4c, $50, $4c, $50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $44, $48, $44, $48 }
|
|
__loadstore volatile char ghosts_mode // zp[1]:95 1.1044776119402984
|
|
__loadstore volatile char ghosts_mode_count // zp[1]:43 234.93023255813955
|
|
void init_bobs_restore()
|
|
__constant char *init_bobs_restore::CANVAS_HIDDEN = (char *) 59904
|
|
char init_bobs_restore::bob
|
|
char init_bobs_restore::bob#1 // reg byte x 20002.0
|
|
char init_bobs_restore::bob#2 // reg byte x 2727.5454545454545
|
|
char *init_bobs_restore::bob_restore
|
|
char *init_bobs_restore::bob_restore#1 // bob_restore zp[2]:9 10001.0
|
|
char *init_bobs_restore::bob_restore#5 // bob_restore zp[2]:9 16000.7
|
|
char init_bobs_restore::i
|
|
char init_bobs_restore::i#1 // reg byte y 200002.0
|
|
char init_bobs_restore::i#2 // reg byte y 133334.66666666666
|
|
void init_level_tile_directions()
|
|
char init_level_tile_directions::$11 // reg byte a 2.0000002E7
|
|
char init_level_tile_directions::$15 // reg byte a 2.0000002E7
|
|
char init_level_tile_directions::$3 // reg byte x 2.0000002E7
|
|
char init_level_tile_directions::$7 // reg byte x 2.0000002E7
|
|
char *init_level_tile_directions::directions
|
|
char *init_level_tile_directions::directions#1 // directions zp[2]:9 1000001.0
|
|
char *init_level_tile_directions::directions#7 // directions zp[2]:9 315789.55263157893
|
|
char init_level_tile_directions::open_directions
|
|
char init_level_tile_directions::open_directions#11 // open_directions zp[1]:15 2857143.1428571427
|
|
char init_level_tile_directions::open_directions#12 // open_directions zp[1]:15 5714286.285714285
|
|
char init_level_tile_directions::open_directions#13 // open_directions zp[1]:15 5714286.285714285
|
|
char init_level_tile_directions::open_directions#2 // open_directions zp[1]:15 2.0000002E7
|
|
char init_level_tile_directions::open_directions#3 // open_directions zp[1]:15 2.0000002E7
|
|
char init_level_tile_directions::open_directions#4 // open_directions zp[1]:15 2.0000002E7
|
|
char init_level_tile_directions::open_directions#8 // open_directions zp[1]:15 3.0000003E7
|
|
char init_level_tile_directions::xtile
|
|
char init_level_tile_directions::xtile#1 // xtile zp[1]:16 2.0000002E7
|
|
char init_level_tile_directions::xtile#10 // xtile zp[1]:16 2285714.514285714
|
|
char init_level_tile_directions::ytile
|
|
char init_level_tile_directions::ytile#1 // ytile zp[1]:20 2000002.0
|
|
char init_level_tile_directions::ytile#15 // ytile zp[1]:20 1102564.282051282
|
|
void init_render_index()
|
|
unsigned int init_render_index::$10 // zp[2]:13 200002.0
|
|
unsigned int init_render_index::$11 // zp[2]:13 200002.0
|
|
unsigned int *init_render_index::$12 // zp[2]:13 200002.0
|
|
char init_render_index::$5 // reg byte a 200002.0
|
|
char init_render_index::$6 // reg byte a 200002.0
|
|
char init_render_index::$9 // reg byte a 20002.0
|
|
char *init_render_index::canvas
|
|
char *init_render_index::canvas#0 // canvas zp[2]:13 100001.0
|
|
char *init_render_index::canvas_xcol
|
|
char *init_render_index::canvas_xcol#0 // canvas_xcol zp[2]:3 5789.578947368421
|
|
char *init_render_index::render_index
|
|
char *init_render_index::render_index#1 // render_index zp[2]:5 10001.0
|
|
char *init_render_index::render_index_xcol
|
|
char *init_render_index::render_index_xcol#0 // render_index_xcol zp[2]:5 1200.1200000000001
|
|
char *init_render_index::render_index_xcol#1 // render_index_xcol_1 zp[2]:11 100001.0
|
|
char *init_render_index::render_index_xcol#2 // render_index_xcol_1 zp[2]:11 34000.4
|
|
char *init_render_index::render_index_xcol#7 // render_index_xcol_1 zp[2]:11 20002.0
|
|
unsigned int *init_render_index::render_ypos_table
|
|
unsigned int *init_render_index::render_ypos_table#4 // render_ypos_table zp[2]:9 4761.952380952381
|
|
char init_render_index::x_col
|
|
char init_render_index::x_col#1 // x_col zp[1]:20 20002.0
|
|
char init_render_index::x_col#2 // x_col zp[1]:20 1923.2692307692307
|
|
char init_render_index::y_pos
|
|
char init_render_index::y_pos#1 // y_pos zp[1]:16 200002.0
|
|
char init_render_index::y_pos#2 // y_pos zp[1]:16 18750.1875
|
|
char init_render_index::ypos_inc_offset
|
|
char init_render_index::ypos_inc_offset#2 // reg byte x 200002.0
|
|
char init_render_index::ypos_inc_offset#3 // reg byte x 200002.0
|
|
char init_render_index::ypos_inc_offset#4 // reg byte x 28182.181818181816
|
|
char init_render_index::ypos_inc_offset#7 // reg byte x 2500.25
|
|
char init_render_index::ypos_inc_offset#8 // reg byte x 100001.0
|
|
void init_sprite_pointers()
|
|
char init_sprite_pointers::$2 // reg byte a 2.0000002E7
|
|
__constant const char init_sprite_pointers::SPRITE_ID_0 = (char)SPRITES_1&$3fff/$40
|
|
char init_sprite_pointers::screen
|
|
char init_sprite_pointers::screen#1 // reg byte x 2000002.0
|
|
char init_sprite_pointers::screen#2 // reg byte x 1181818.5454545454
|
|
char init_sprite_pointers::sprite
|
|
char init_sprite_pointers::sprite#1 // reg byte y 2.0000002E7
|
|
char init_sprite_pointers::sprite#2 // reg byte y 1.0000001E7
|
|
char init_sprite_pointers::sprite_id
|
|
char init_sprite_pointers::sprite_id#0 // reg byte a 1.50000015E7
|
|
__constant char init_sprite_pointers::sprites_id[] = { 0, $70, $60, $50, $40, $30, $20, $10 }
|
|
char *init_sprite_pointers::sprites_ptr_1
|
|
char *init_sprite_pointers::sprites_ptr_1#1 // sprites_ptr_1 zp[2]:9 666667.3333333334
|
|
char *init_sprite_pointers::sprites_ptr_1#5 // sprites_ptr_1 zp[2]:9 1333333.6666666667
|
|
char *init_sprite_pointers::sprites_ptr_2
|
|
char *init_sprite_pointers::sprites_ptr_2#1 // sprites_ptr_2 zp[2]:7 1000001.0
|
|
char *init_sprite_pointers::sprites_ptr_2#5 // sprites_ptr_2 zp[2]:7 1200000.3
|
|
__interrupt(hardware_clobber) void irq_screen_top()
|
|
char irq_screen_top::$1 // reg byte a 4.0
|
|
char irq_screen_top::$2 // reg byte a 4.0
|
|
char *irq_screen_top::toD0181_gfx
|
|
char irq_screen_top::toD0181_return
|
|
__constant char irq_screen_top::toD0181_return#0 = 0 // toD0181_return
|
|
char *irq_screen_top::toD0181_screen
|
|
char *irq_screen_top::toDd001_gfx
|
|
char irq_screen_top::toDd001_return
|
|
__constant char irq_screen_top::toDd001_return#0 = 0 // toDd001_return
|
|
char *irq_screen_top::toDd002_gfx
|
|
char irq_screen_top::toDd002_return
|
|
__constant char irq_screen_top::toDd002_return#0 = 3^byte1 (unsigned int)SCREENS_1/$40 // toDd002_return
|
|
char joyfire()
|
|
char joyfire::$0 // reg byte a 2.0000002E7
|
|
char joyfire::return
|
|
char joyfire::return#0 // reg byte a 2000002.0
|
|
char joyfire::return#1 // reg byte a 20002.0
|
|
char joyfire::return#4 // reg byte a 252500.5
|
|
void joyinit()
|
|
__loadstore char * volatile left_canvas // zp[2]:80 20.0
|
|
__loadstore char * volatile left_render_index_xcol // zp[2]:78 20.0
|
|
__loadstore volatile char left_ypos_inc_offset // zp[1]:82 20.0
|
|
unsigned int level_show()
|
|
unsigned int level_show::count
|
|
unsigned int level_show::count#1 // count zp[2]:9 2.0000002E7
|
|
unsigned int level_show::count#10 // count zp[2]:9 4571429.285714285
|
|
unsigned int level_show::count#11 // count zp[2]:9 4285714.714285715
|
|
unsigned int level_show::count#12 // count zp[2]:9 500250.75
|
|
unsigned int level_show::count#2 // count zp[2]:9 2.0000002E7
|
|
unsigned int level_show::count#5 // count zp[2]:9 1.0000001E7
|
|
char *level_show::level
|
|
char *level_show::level#1 // level zp[2]:7 1000001.0
|
|
char *level_show::level#8 // level zp[2]:7 1100000.2
|
|
unsigned int level_show::return
|
|
unsigned int level_show::return#0 // return zp[2]:9 2002.0
|
|
char level_show::tile_left
|
|
char level_show::tile_left#0 // reg byte x 2500000.25
|
|
char level_show::tile_right
|
|
char level_show::tile_right#0 // tile_right zp[1]:2 3750000.375
|
|
char level_show::xcol
|
|
char level_show::xcol#1 // xcol zp[1]:15 2.0000002E7
|
|
char level_show::xcol#2 // xcol zp[1]:15 2352941.411764706
|
|
char level_show::xtile
|
|
char level_show::xtile#1 // reg byte y 6000000.6
|
|
char level_show::xtile#2 // xtile zp[1]:19 2000000.2
|
|
char level_show::xtile#3 // xtile zp[1]:19 1.0000001E7
|
|
char level_show::ytile
|
|
char level_show::ytile#1 // ytile zp[1]:16 2000002.0
|
|
char level_show::ytile#2 // ytile zp[1]:16 619047.8095238095
|
|
char level_tile_directions(char xtile , char ytile)
|
|
char level_tile_directions::$5 // reg byte a 202.0
|
|
char level_tile_directions::return
|
|
char level_tile_directions::return#0 // reg byte a 202.0
|
|
char level_tile_directions::return#10 // reg byte a 22.0
|
|
char level_tile_directions::return#11 // reg byte a 22.0
|
|
char level_tile_directions::return#12 // reg byte a 22.0
|
|
char level_tile_directions::return#13 // reg byte a 22.0
|
|
char level_tile_directions::return#2 // reg byte a 22.285714285714285
|
|
char level_tile_directions::return#3 // reg byte a 22.0
|
|
char level_tile_directions::xtile
|
|
char level_tile_directions::xtile#0 // reg byte x 11.0
|
|
char level_tile_directions::xtile#1 // reg byte x 11.0
|
|
char level_tile_directions::xtile#2 // reg byte x 11.0
|
|
char level_tile_directions::xtile#3 // reg byte x 11.0
|
|
char level_tile_directions::xtile#4 // reg byte x 11.0
|
|
char level_tile_directions::xtile#5 // reg byte x 51.4
|
|
char level_tile_directions::ytile
|
|
char level_tile_directions::ytile#0 // reg byte a 22.0
|
|
char level_tile_directions::ytile#1 // reg byte a 22.0
|
|
char level_tile_directions::ytile#2 // reg byte a 22.0
|
|
char level_tile_directions::ytile#3 // reg byte a 22.0
|
|
char level_tile_directions::ytile#4 // reg byte a 22.0
|
|
char level_tile_directions::ytile#5 // reg byte a 85.66666666666666
|
|
char *level_tile_directions::ytiles
|
|
char *level_tile_directions::ytiles#0 // ytiles zp[2]:49 202.0
|
|
char level_tile_get(char xtile , char ytile)
|
|
char level_tile_get::$5 // reg byte a 2.00000002E8
|
|
char level_tile_get::return
|
|
char level_tile_get::return#0 // reg byte a 2.00000002E8
|
|
char level_tile_get::return#10 // reg byte a 2.0000002E7
|
|
char level_tile_get::return#11 // reg byte a 2.0000002E7
|
|
char level_tile_get::return#2 // reg byte a 2.3333334166666668E7
|
|
char level_tile_get::return#3 // reg byte a 2.0000002E7
|
|
char level_tile_get::return#4 // reg byte a 2.0000002E7
|
|
char level_tile_get::xtile
|
|
char level_tile_get::xtile#0 // reg byte x 1.0000001E7
|
|
char level_tile_get::xtile#1 // reg byte x 1.0000001E7
|
|
char level_tile_get::xtile#2 // reg byte x 2.0000002E7
|
|
char level_tile_get::xtile#3 // reg byte x 2.0000002E7
|
|
char level_tile_get::xtile#4 // reg byte x 4.80000012E7
|
|
char level_tile_get::ytile
|
|
char level_tile_get::ytile#0 // reg byte a 2.0000002E7
|
|
char level_tile_get::ytile#1 // reg byte a 2.0000002E7
|
|
char level_tile_get::ytile#2 // reg byte a 1.0000001E7
|
|
char level_tile_get::ytile#3 // reg byte a 1.0000001E7
|
|
char level_tile_get::ytile#4 // reg byte a 8.0000002E7
|
|
char *level_tile_get::ytiles
|
|
char *level_tile_get::ytiles#0 // ytiles zp[2]:13 2.00000002E8
|
|
__loadstore volatile char logic_tile_left_idx // zp[1]:76 20.0
|
|
__loadstore volatile char * volatile logic_tile_ptr // zp[2]:26 10250.0
|
|
__loadstore volatile char logic_tile_right_idx // zp[1]:77 20.0
|
|
__loadstore volatile char logic_tile_xcol // zp[1]:28 10250.0
|
|
__loadstore volatile char logic_tile_yfine // zp[1]:29 10250.0
|
|
void main()
|
|
void * memcpy(void *destination , void *source , unsigned int num)
|
|
void *memcpy::destination
|
|
__constant void *memcpy::destination#0 = (void *)INTRO_MUSIC_CRUNCHED_UPPER // destination
|
|
char *memcpy::dst
|
|
char *memcpy::dst#1 // dst zp[2]:9 10001.0
|
|
char *memcpy::dst#2 // dst zp[2]:9 10001.0
|
|
unsigned int memcpy::num
|
|
void *memcpy::return
|
|
void *memcpy::source
|
|
__constant void *memcpy::source#0 = (void *)INTRO_MUSIC_CRUNCHED // source
|
|
char *memcpy::src
|
|
char *memcpy::src#1 // src zp[2]:7 20002.0
|
|
char *memcpy::src#2 // src zp[2]:7 10001.0
|
|
char *memcpy::src_end
|
|
__constant char *memcpy::src_end#0 = (char *)memcpy::source#0+INTRO_MUSIC_CRUNCHED_SIZE // src_end
|
|
void * memset(void *str , char c , unsigned int num)
|
|
char memset::c
|
|
char *memset::dst
|
|
char *memset::dst#1 // dst zp[2]:11 20002.0
|
|
char *memset::dst#2 // dst zp[2]:11 13668.333333333332
|
|
char *memset::dst#4 // dst zp[2]:11 2002.0
|
|
char *memset::end
|
|
char *memset::end#0 // end zp[2]:5 1833.6666666666665
|
|
unsigned int memset::num
|
|
unsigned int memset::num#5 // num zp[2]:5 1001.0
|
|
void *memset::return
|
|
void *memset::str
|
|
void *memset::str#6 // str zp[2]:11
|
|
void merge_code(char *dest_code , char *raster_code , char *logic_code)
|
|
char merge_code::$5 // reg byte y 100001.0
|
|
__constant const char merge_code::LOGIC_END = $ff
|
|
__constant const char merge_code::LOGIC_EXIT = 0
|
|
__constant const char merge_code::RASTER_END = $ff
|
|
__constant const char merge_code::RASTER_EXIT = 0
|
|
char merge_code::cycle_budget
|
|
char merge_code::cycle_budget#0 // reg byte x 10001.0
|
|
char merge_code::cycle_budget#1 // reg byte x 200002.0
|
|
char merge_code::cycle_budget#10 // reg byte x 88889.77777777777
|
|
char merge_code::cycle_budget#13 // reg byte x 50714.857142857145
|
|
char merge_code::cycle_budget#2 // reg byte x 200002.0
|
|
char merge_code::cycle_budget#3 // reg byte x 200002.0
|
|
char *merge_code::dest_code
|
|
char *merge_code::dest_code#0 // dest_code zp[2]:9 10001.0
|
|
char *merge_code::dest_code#1 // dest_code zp[2]:9 1000001.0
|
|
char *merge_code::dest_code#10 // dest_code zp[2]:9 180001.80000000002
|
|
char *merge_code::dest_code#12 // dest_code zp[2]:9 10334.666666666666
|
|
char *merge_code::dest_code#13 // dest_code zp[2]:9 80001.25
|
|
char *merge_code::dest_code#14 // dest_code zp[2]:9 21429.428571428572
|
|
char *merge_code::dest_code#15 // dest_code zp[2]:9 640001.0
|
|
char *merge_code::dest_code#2 // dest_code zp[2]:9 150001.5
|
|
char *merge_code::dest_code#21 // dest_code zp[2]:9 51250.625
|
|
char *merge_code::dest_code#3 // dest_code zp[2]:9 100001.0
|
|
char *merge_code::dest_code#4 // dest_code zp[2]:9 100001.0
|
|
char *merge_code::dest_code#6 // dest_code zp[2]:9 100001.0
|
|
char *merge_code::logic_code
|
|
char *merge_code::logic_code#0 // logic_code zp[2]:5 200002.0
|
|
char *merge_code::logic_code#1 // logic_code zp[2]:5 2000002.0
|
|
char *merge_code::logic_code#10 // logic_code zp[2]:5 1050001.5
|
|
char *merge_code::logic_code#12 // logic_code zp[2]:5 20002.0
|
|
char *merge_code::logic_code#14 // logic_code zp[2]:5 105001.5
|
|
char *merge_code::logic_code#17 // logic_code zp[2]:5 22778.055555555555
|
|
char *merge_code::logic_code#18 // logic_code zp[2]:5 15556.111111111113
|
|
char *merge_code::logic_code#2 // logic_code zp[2]:5 100001.0
|
|
char *merge_code::logic_code#3 // logic_code zp[2]:5 20002.0
|
|
char *merge_code::logic_code#4 // logic_code zp[2]:5 200002.0
|
|
char *merge_code::logic_code#5 // logic_code zp[2]:5 20002.0
|
|
char merge_code::logic_cycles
|
|
char merge_code::logic_cycles#0 // logic_cycles zp[1]:2 41667.08333333333
|
|
char *merge_code::raster_code
|
|
char *merge_code::raster_code#0 // raster_code zp[2]:11 20002.0
|
|
char *merge_code::raster_code#1 // raster_code zp[2]:11 15001.5
|
|
char *merge_code::raster_code#2 // raster_code zp[2]:11 3928.6428571428573
|
|
char *merge_code::raster_code#4 // raster_code zp[2]:11 37501.5
|
|
__constant void (* const musicInit)() = (void (*)())INTRO_MUSIC
|
|
__constant void (* const musicPlay)() = (void (*)())INTRO_MUSIC+6
|
|
__loadstore volatile char music_play_next // zp[1]:21 69506.875
|
|
__loadstore volatile char pacman_ch1_enabled // zp[1]:102 0.08254716981132076
|
|
__loadstore volatile char pacman_ch1_idx // zp[1]:94 1.9428571428571428
|
|
__loadstore volatile char pacman_direction // zp[1]:53 132.92105263157893
|
|
__constant char pacman_frames[] = { 8, 8, 8, 8, 8, $18, $14, $18, 8, $20, $1c, $20, 0, 0, 0, 0, 8, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, $c, $10, $c }
|
|
__loadstore volatile char pacman_lives // zp[1]:35 656.4415584415585
|
|
void pacman_sound_init()
|
|
void pacman_sound_play()
|
|
__loadstore volatile char pacman_substep // zp[1]:44 233.39534883720933
|
|
__loadstore volatile char pacman_wins // zp[1]:31 2040.32
|
|
__loadstore volatile char pacman_xfine // zp[1]:71 47.719626168224295
|
|
__loadstore volatile char pacman_yfine // zp[1]:72 46.21818181818182
|
|
__loadstore volatile char phase // zp[1]:61 78.03703703703704
|
|
__loadstore volatile unsigned int pill_count // zp[2]:88 14.191780821917808
|
|
void render(char xcol , char ypos , char pixels)
|
|
char render::$1 // reg byte x 1.0000001E7
|
|
char render::$2 // reg byte a 2.0000002E7
|
|
char *render::canvas1
|
|
char *render::canvas1#0 // canvas1 zp[2]:7 5000000.5
|
|
char *render::canvas1#1 // canvas1 zp[2]:7 5.00000000005E10
|
|
char *render::canvas1#2 // canvas1 zp[2]:7 1.00010000002E11
|
|
char *render::canvas2
|
|
char *render::canvas2#0 // canvas2 zp[2]:9 6666667.333333333
|
|
char *render::canvas2#1 // canvas2 zp[2]:9 6.6666666667333336E10
|
|
char *render::canvas2#2 // canvas2 zp[2]:9 5.0005000001E10
|
|
unsigned int render::canvas_offset
|
|
unsigned int render::canvas_offset#0 // canvas_offset zp[2]:9 1.50000015E7
|
|
char render::i
|
|
char render::i#1 // reg byte y 2.00000000002E11
|
|
char render::i#2 // reg byte y 6.0000000000600006E10
|
|
char render::pixels
|
|
char render::pixels#0 // pixels zp[1]:19 2000002.0
|
|
char render::pixels#1 // pixels zp[1]:19 200002.0
|
|
char render::pixels#4 // pixels zp[1]:19 1241176.705882353
|
|
char *render::render_index_xcol
|
|
unsigned int render::render_index_xcol#0 // render_index_xcol zp[2]:13 2500000.25
|
|
char render::xcol
|
|
char render::xcol#0 // xcol zp[1]:20 666667.3333333334
|
|
char render::xcol#1 // xcol zp[1]:20 66667.33333333333
|
|
char render::xcol#2 // xcol zp[1]:20 5550001.5
|
|
char render::ypix
|
|
char render::ypix#0 // ypix zp[1]:2 1.4287142857428572E10
|
|
char render::ypos
|
|
char render::ypos#0 // ypos zp[1]:16 1000001.0
|
|
char render::ypos#1 // ypos zp[1]:16 100001.0
|
|
char render::ypos#2 // ypos zp[1]:16 2344444.888888889
|
|
char render::ypos_inc_offset
|
|
char render::ypos_inc_offset#0 // reg byte x 1.0000001E7
|
|
char render::ypos_inc_offset#1 // reg byte x 1.00000000001E11
|
|
char render::ypos_inc_offset#2 // reg byte x 1.0000250000125E11
|
|
char render::ytile
|
|
char render::ytile#0 // reg byte y 1.0000001E7
|
|
void render_tiles(char xcol , char ytile , char tile_left , char tile_right)
|
|
char render_tiles::$0 // reg byte a 2.00000002E8
|
|
char render_tiles::$2 // reg byte a 2.00000002E8
|
|
char render_tiles::$4 // reg byte x 1.00000001E8
|
|
char render_tiles::$5 // reg byte a 2.00000002E8
|
|
char *render_tiles::canvas1
|
|
char *render_tiles::canvas1#0 // canvas1 zp[2]:5 6.6666667333333336E7
|
|
char *render_tiles::canvas1#1 // canvas1 zp[2]:5 5.000000000005E11
|
|
char *render_tiles::canvas1#2 // canvas1 zp[2]:5 6.000200000008E11
|
|
char *render_tiles::canvas2
|
|
char *render_tiles::canvas2#0 // canvas2 zp[2]:3 1.00000001E8
|
|
char *render_tiles::canvas2#1 // canvas2 zp[2]:3 6.666666666673334E11
|
|
char *render_tiles::canvas2#2 // canvas2 zp[2]:3 5.000166666673334E11
|
|
unsigned int render_tiles::canvas_offset
|
|
unsigned int render_tiles::canvas_offset#0 // canvas_offset zp[2]:3 1.500000015E8
|
|
char render_tiles::pixels
|
|
char render_tiles::pixels#0 // reg byte a 1.5000000000015E12
|
|
char *render_tiles::render_index_xcol
|
|
unsigned int render_tiles::render_index_xcol#0 // render_index_xcol zp[2]:17 2.500000025E7
|
|
char render_tiles::tile_left
|
|
char render_tiles::tile_left#0 // reg byte x 5.5000001E7
|
|
char *render_tiles::tile_left_pixels
|
|
char *render_tiles::tile_left_pixels#0 // tile_left_pixels zp[2]:13 5.2636842105368416E10
|
|
char render_tiles::tile_right
|
|
char render_tiles::tile_right#0 // reg byte y 3.6666667333333336E7
|
|
char *render_tiles::tile_right_pixels
|
|
char *render_tiles::tile_right_pixels#0 // tile_right_pixels zp[2]:11 5.882941176482353E10
|
|
char render_tiles::xcol
|
|
char render_tiles::xcol#0 // xcol zp[1]:15 1.375000025E7
|
|
char render_tiles::y
|
|
char render_tiles::y#1 // y zp[1]:2 2.000000000002E12
|
|
char render_tiles::y#2 // y zp[1]:2 6.25000000000625E11
|
|
char render_tiles::ypos_inc_offset
|
|
char render_tiles::ypos_inc_offset#0 // reg byte x 2.00000002E8
|
|
char render_tiles::ypos_inc_offset#1 // reg byte x 1.000000000001E12
|
|
char render_tiles::ypos_inc_offset#2 // reg byte x 5.714428571435714E11
|
|
char render_tiles::ytile
|
|
char render_tiles::ytile#0 // ytile zp[1]:16 1.375000025E7
|
|
__loadstore char * volatile rigt_canvas // zp[2]:85 20.0
|
|
__loadstore char * volatile rigt_render_index_xcol // zp[2]:83 20.0
|
|
__loadstore volatile char rigt_ypos_inc_offset // zp[1]:87 20.0
|
|
__loadstore volatile char side_sprites_color // zp[1]:22 11040.0
|
|
__loadstore volatile char side_sprites_mc // zp[1]:23 11040.0
|
|
void spawn_all()
|
|
void splash_run()
|
|
char splash_run::$25 // reg byte a 2002.0
|
|
char splash_run::$30 // reg byte a 20002.0
|
|
char splash_run::$34 // reg byte y 1334.6666666666667
|
|
char splash_run::i
|
|
char splash_run::i#1 // i zp[1]:20 2002.0
|
|
char splash_run::i#2 // i zp[1]:20 364.0
|
|
char splash_run::i1
|
|
char splash_run::i1#1 // reg byte x 2002.0
|
|
char splash_run::i1#2 // reg byte x 1334.6666666666667
|
|
char splash_run::i2
|
|
char splash_run::i2#1 // reg byte x 2002.0
|
|
char splash_run::i2#2 // reg byte x 1201.2
|
|
char splash_run::msb
|
|
char splash_run::msb#1 // reg byte x 1001.0
|
|
char splash_run::msb#10 // reg byte x 175.25
|
|
char splash_run::msb#2 // reg byte x 2002.0
|
|
char splash_run::msb#8 // reg byte x 1501.5
|
|
__constant unsigned int splash_run::sprites_xpos[] = { $1e7, $13f, $10f, $df, $af, $7f, $4f, $1f }
|
|
char *splash_run::toD0181_gfx
|
|
char splash_run::toD0181_return
|
|
__constant char splash_run::toD0181_return#0 = 0 // toD0181_return
|
|
char *splash_run::toD0181_screen
|
|
char *splash_run::toDd001_gfx
|
|
char splash_run::toDd001_return
|
|
__constant char splash_run::toDd001_return#0 = 3^byte1 (unsigned int)SCREENS_1/$40 // toDd001_return
|
|
unsigned int splash_run::xpos
|
|
unsigned int splash_run::xpos#0 // xpos zp[2]:5 667.3333333333334
|
|
void splash_show()
|
|
char splash_show::pixels
|
|
char splash_show::pixels#0 // reg byte x 50000.5
|
|
char *splash_show::splash
|
|
char *splash_show::splash#1 // splash zp[2]:11 33333.666666666664
|
|
char *splash_show::splash#2 // splash zp[2]:11 80001.25
|
|
char *splash_show::splash#4 // splash zp[2]:11 10001.0
|
|
char splash_show::xcol
|
|
char splash_show::xcol#1 // xcol zp[1]:20 20002.0
|
|
char splash_show::xcol#2 // xcol zp[1]:20 11818.545454545454
|
|
char splash_show::ypos
|
|
char splash_show::ypos#1 // ypos zp[1]:16 200002.0
|
|
char splash_show::ypos#2 // ypos zp[1]:16 50000.5
|
|
__loadstore volatile char top_sprites_color // zp[1]:30 3403.666666666667
|
|
__loadstore volatile char top_sprites_mc // zp[1]:58 92.0
|
|
|
|
zp[1]:74 [ game_logic::ghost_frame_idx#2 game_logic::ghost_frame_idx#0 game_logic::ghost_frame_idx#1 ]
|
|
reg byte a [ game_logic::do_reverse#4 ]
|
|
reg byte x [ game_logic::target_xtile#3 game_logic::target_xtile#2 ]
|
|
zp[1]:39 [ game_logic::target_ytile#3 game_logic::target_ytile#2 choose_direction::target_ytile#4 choose_direction::target_ytile#2 choose_direction::target_ytile#3 choose_direction::target_ytile#0 choose_direction::target_ytile#1 game_logic::target_ytile1#3 game_logic::target_ytile1#2 game_logic::target_ytile2#3 game_logic::target_ytile2#2 game_logic::target_ytile3#3 game_logic::target_ytile3#2 ]
|
|
reg byte x [ game_logic::target_xtile1#3 game_logic::target_xtile1#2 ]
|
|
reg byte x [ game_logic::target_xtile2#3 game_logic::target_xtile2#2 ]
|
|
reg byte x [ game_logic::target_xtile3#3 game_logic::target_xtile3#2 ]
|
|
reg byte x [ splash_run::msb#10 splash_run::msb#8 splash_run::msb#1 splash_run::msb#2 ]
|
|
reg byte x [ splash_run::i1#2 splash_run::i1#1 ]
|
|
reg byte x [ splash_run::i2#2 splash_run::i2#1 ]
|
|
reg byte x [ gameplay_run::i#2 gameplay_run::i#1 ]
|
|
reg byte x [ gameplay_run::i1#2 gameplay_run::i1#1 ]
|
|
reg byte x [ gameplay_run::i2#2 gameplay_run::i2#1 ]
|
|
reg byte x [ done_run::i#2 done_run::i#1 ]
|
|
reg byte x [ done_run::i1#2 done_run::i1#1 ]
|
|
reg byte x [ level_tile_directions::xtile#5 level_tile_directions::xtile#1 level_tile_directions::xtile#2 level_tile_directions::xtile#3 level_tile_directions::xtile#4 level_tile_directions::xtile#0 ]
|
|
reg byte a [ level_tile_directions::ytile#5 level_tile_directions::ytile#1 level_tile_directions::ytile#2 level_tile_directions::ytile#3 level_tile_directions::ytile#4 level_tile_directions::ytile#0 ]
|
|
reg byte a [ level_tile_directions::return#2 level_tile_directions::return#0 ]
|
|
reg byte y [ choose_direction::ghost_xtile#4 choose_direction::ghost_xtile#2 choose_direction::ghost_xtile#3 choose_direction::ghost_xtile#0 choose_direction::ghost_xtile#1 ]
|
|
reg byte x [ choose_direction::target_xtile#4 choose_direction::target_xtile#2 choose_direction::target_xtile#3 choose_direction::target_xtile#0 choose_direction::target_xtile#1 ]
|
|
zp[1]:52 [ choose_direction::ghost_ytile#4 choose_direction::ghost_ytile#2 choose_direction::ghost_ytile#3 choose_direction::ghost_ytile#0 choose_direction::ghost_ytile#1 game_logic::ghost4_ytile#0 game_logic::ghost3_ytile#0 game_logic::ghost2_ytile#0 game_logic::ghost1_ytile#0 choose_direction::ydiff#0 ]
|
|
reg byte y [ choose_direction::dist_min#6 choose_direction::dist_up#0 ]
|
|
reg byte x [ choose_direction::dist_min#10 choose_direction::dist_min#13 choose_direction::dist_min#14 choose_direction::dist_down#0 ]
|
|
reg byte x [ merge_code::cycle_budget#10 merge_code::cycle_budget#2 merge_code::cycle_budget#3 merge_code::cycle_budget#13 merge_code::cycle_budget#0 merge_code::cycle_budget#1 ]
|
|
reg byte x [ init_render_index::ypos_inc_offset#4 init_render_index::ypos_inc_offset#7 init_render_index::ypos_inc_offset#8 init_render_index::ypos_inc_offset#2 init_render_index::ypos_inc_offset#3 ]
|
|
reg byte x [ init_bobs_restore::bob#2 init_bobs_restore::bob#1 ]
|
|
reg byte y [ init_bobs_restore::i#2 init_bobs_restore::i#1 ]
|
|
reg byte x [ init_sprite_pointers::screen#2 init_sprite_pointers::screen#1 ]
|
|
reg byte y [ init_sprite_pointers::sprite#2 init_sprite_pointers::sprite#1 ]
|
|
reg byte a [ joyfire::return#4 ]
|
|
zp[1]:20 [ init_level_tile_directions::ytile#15 init_level_tile_directions::ytile#1 splash_run::i#2 splash_run::i#1 init_render_index::x_col#2 init_render_index::x_col#1 done_run::xcol#2 done_run::xcol#1 render::xcol#2 render::xcol#0 render::xcol#1 splash_show::xcol#2 splash_show::xcol#1 ]
|
|
zp[1]:16 [ level_show::ytile#2 level_show::ytile#1 render_tiles::ytile#0 init_level_tile_directions::xtile#10 init_level_tile_directions::xtile#1 init_render_index::y_pos#2 init_render_index::y_pos#1 done_run::ypos#2 done_run::ypos#1 render::ypos#2 render::ypos#0 render::ypos#1 splash_show::ypos#2 splash_show::ypos#1 ]
|
|
zp[1]:15 [ level_show::xcol#2 level_show::xcol#1 render_tiles::xcol#0 init_level_tile_directions::open_directions#8 init_level_tile_directions::open_directions#4 init_level_tile_directions::open_directions#13 init_level_tile_directions::open_directions#3 init_level_tile_directions::open_directions#12 init_level_tile_directions::open_directions#2 init_level_tile_directions::open_directions#11 ]
|
|
zp[1]:19 [ render::pixels#4 render::pixels#0 render::pixels#1 level_show::xtile#3 level_show::xtile#2 ]
|
|
reg byte y [ render::i#2 render::i#1 ]
|
|
zp[2]:7 [ render::canvas1#2 render::canvas1#0 render::canvas1#1 level_show::level#8 level_show::level#1 memcpy::src#2 memcpy::src#1 init_sprite_pointers::sprites_ptr_2#5 init_sprite_pointers::sprites_ptr_2#1 ]
|
|
reg byte x [ render::ypos_inc_offset#2 render::ypos_inc_offset#0 render::ypos_inc_offset#1 ]
|
|
zp[2]:9 [ render::canvas2#2 render::canvas2#0 render::canvas2#1 render::canvas_offset#0 level_show::count#5 level_show::count#12 level_show::count#10 level_show::count#11 level_show::count#1 level_show::count#2 level_show::return#0 gameplay_run::$4 init_level_tile_directions::directions#7 init_level_tile_directions::directions#1 memcpy::dst#2 memcpy::dst#1 init_sprite_pointers::sprites_ptr_1#5 init_sprite_pointers::sprites_ptr_1#1 init_bobs_restore::bob_restore#5 init_bobs_restore::bob_restore#1 init_render_index::render_ypos_table#4 merge_code::dest_code#21 merge_code::dest_code#12 merge_code::dest_code#13 merge_code::dest_code#14 merge_code::dest_code#10 merge_code::dest_code#0 merge_code::dest_code#6 merge_code::dest_code#15 merge_code::dest_code#3 merge_code::dest_code#4 merge_code::dest_code#1 merge_code::dest_code#2 ]
|
|
reg byte x [ level_tile_get::xtile#4 level_tile_get::xtile#0 level_tile_get::xtile#1 level_tile_get::xtile#2 level_tile_get::xtile#3 ]
|
|
reg byte a [ level_tile_get::ytile#4 level_tile_get::ytile#0 level_tile_get::ytile#1 level_tile_get::ytile#2 level_tile_get::ytile#3 ]
|
|
reg byte a [ level_tile_get::return#2 level_tile_get::return#0 ]
|
|
reg byte x [ render_tiles::ypos_inc_offset#2 render_tiles::ypos_inc_offset#0 render_tiles::ypos_inc_offset#1 ]
|
|
zp[1]:102 [ pacman_ch1_enabled ]
|
|
zp[1]:94 [ pacman_ch1_idx ]
|
|
zp[2]:26 [ logic_tile_ptr ]
|
|
zp[1]:28 [ logic_tile_xcol ]
|
|
zp[1]:29 [ logic_tile_yfine ]
|
|
zp[1]:76 [ logic_tile_left_idx ]
|
|
zp[1]:77 [ logic_tile_right_idx ]
|
|
zp[2]:78 [ left_render_index_xcol ]
|
|
zp[2]:80 [ left_canvas ]
|
|
zp[1]:82 [ left_ypos_inc_offset ]
|
|
zp[2]:83 [ rigt_render_index_xcol ]
|
|
zp[2]:85 [ rigt_canvas ]
|
|
zp[1]:87 [ rigt_ypos_inc_offset ]
|
|
zp[1]:32 [ canvas_base_hi ]
|
|
zp[1]:33 [ bobs_restore_base ]
|
|
zp[1]:30 [ top_sprites_color ]
|
|
zp[1]:58 [ top_sprites_mc ]
|
|
zp[1]:22 [ side_sprites_color ]
|
|
zp[1]:23 [ side_sprites_mc ]
|
|
zp[1]:24 [ bottom_sprites_color ]
|
|
zp[1]:25 [ bottom_sprites_mc ]
|
|
zp[2]:88 [ pill_count ]
|
|
zp[1]:31 [ pacman_wins ]
|
|
zp[1]:35 [ pacman_lives ]
|
|
zp[1]:21 [ music_play_next ]
|
|
zp[1]:61 [ phase ]
|
|
zp[1]:101 [ frame ]
|
|
zp[1]:96 [ anim_frame_idx ]
|
|
zp[1]:71 [ pacman_xfine ]
|
|
zp[1]:72 [ pacman_yfine ]
|
|
zp[1]:53 [ pacman_direction ]
|
|
zp[1]:44 [ pacman_substep ]
|
|
zp[1]:95 [ ghosts_mode ]
|
|
zp[1]:43 [ ghosts_mode_count ]
|
|
zp[1]:59 [ ghost1_xfine ]
|
|
zp[1]:60 [ ghost1_yfine ]
|
|
zp[1]:54 [ ghost1_direction ]
|
|
zp[1]:45 [ ghost1_substep ]
|
|
zp[1]:97 [ ghost1_reverse ]
|
|
zp[1]:38 [ ghost1_respawn ]
|
|
zp[1]:62 [ ghost2_xfine ]
|
|
zp[1]:63 [ ghost2_yfine ]
|
|
zp[1]:55 [ ghost2_direction ]
|
|
zp[1]:46 [ ghost2_substep ]
|
|
zp[1]:98 [ ghost2_reverse ]
|
|
zp[1]:40 [ ghost2_respawn ]
|
|
zp[1]:64 [ ghost3_xfine ]
|
|
zp[1]:66 [ ghost3_yfine ]
|
|
zp[1]:56 [ ghost3_direction ]
|
|
zp[1]:47 [ ghost3_substep ]
|
|
zp[1]:99 [ ghost3_reverse ]
|
|
zp[1]:41 [ ghost3_respawn ]
|
|
zp[1]:67 [ ghost4_xfine ]
|
|
zp[1]:68 [ ghost4_yfine ]
|
|
zp[1]:57 [ ghost4_direction ]
|
|
zp[1]:48 [ ghost4_substep ]
|
|
zp[1]:100 [ ghost4_reverse ]
|
|
zp[1]:42 [ ghost4_respawn ]
|
|
zp[1]:90 [ game_logic_substep ]
|
|
zp[1]:65 [ game_playable ]
|
|
reg byte a [ irq_screen_top::$1 ]
|
|
reg byte a [ irq_screen_top::$2 ]
|
|
reg byte x [ game_logic::$2 ]
|
|
reg byte a [ game_logic::$3 ]
|
|
reg byte x [ game_logic::$14 ]
|
|
reg byte a [ game_logic::$15 ]
|
|
reg byte y [ game_logic::pacman_bob_xfine#0 ]
|
|
reg byte a [ game_logic::$17 ]
|
|
reg byte x [ game_logic::$18 ]
|
|
reg byte x [ game_logic::$19 ]
|
|
reg byte a [ game_logic::$20 ]
|
|
reg byte a [ game_logic::$21 ]
|
|
reg byte y [ game_logic::ghost1_bob_xfine#0 ]
|
|
reg byte a [ game_logic::$25 ]
|
|
reg byte x [ game_logic::$26 ]
|
|
reg byte x [ game_logic::$27 ]
|
|
reg byte a [ game_logic::$28 ]
|
|
reg byte a [ game_logic::$29 ]
|
|
reg byte y [ game_logic::ghost2_bob_xfine#0 ]
|
|
reg byte a [ game_logic::$31 ]
|
|
reg byte x [ game_logic::$32 ]
|
|
reg byte x [ game_logic::$33 ]
|
|
reg byte a [ game_logic::$34 ]
|
|
reg byte a [ game_logic::$35 ]
|
|
reg byte y [ game_logic::ghost3_bob_xfine#0 ]
|
|
reg byte a [ game_logic::$37 ]
|
|
reg byte x [ game_logic::$38 ]
|
|
reg byte x [ game_logic::$39 ]
|
|
reg byte a [ game_logic::$40 ]
|
|
reg byte a [ game_logic::$41 ]
|
|
reg byte y [ game_logic::ghost4_bob_xfine#0 ]
|
|
reg byte a [ game_logic::$43 ]
|
|
reg byte x [ game_logic::$44 ]
|
|
reg byte x [ game_logic::$45 ]
|
|
reg byte a [ game_logic::$46 ]
|
|
reg byte a [ game_logic::$47 ]
|
|
zp[1]:73 [ game_logic::pacman_xtile#0 choose_direction::open_directions#10 choose_direction::open_directions#2 choose_direction::open_directions#3 choose_direction::open_directions#0 choose_direction::open_directions#1 ]
|
|
reg byte a [ game_logic::pacman_ytile#0 ]
|
|
zp[1]:34 [ game_logic::$210 choose_direction::dist_min#11 choose_direction::dist_left#0 choose_direction::dist_min#17 choose_direction::dist_min#18 ]
|
|
zp[2]:69 [ game_logic::ytiles#0 game_logic::$67 game_logic::$71 ]
|
|
reg byte x [ game_logic::tile_id#0 ]
|
|
reg byte a [ game_logic::$65 ]
|
|
reg byte a [ game_logic::$66 ]
|
|
reg byte a [ game_logic::$68 ]
|
|
reg byte x [ game_logic::$75 ]
|
|
reg byte y [ game_logic::$77 ]
|
|
reg byte x [ game_logic::$80 ]
|
|
reg byte y [ game_logic::$82 ]
|
|
reg byte x [ game_logic::$85 ]
|
|
reg byte y [ game_logic::$87 ]
|
|
reg byte x [ game_logic::$90 ]
|
|
reg byte y [ game_logic::$92 ]
|
|
reg byte a [ game_logic::$69 ]
|
|
reg byte a [ game_logic::$70 ]
|
|
reg byte a [ game_logic::$72 ]
|
|
reg byte x [ game_logic::$220 ]
|
|
zp[1]:51 [ game_logic::ghost4_xtile#0 choose_direction::return#10 choose_direction::direction#6 choose_direction::direction#8 choose_direction::direction#10 ]
|
|
reg byte a [ level_tile_directions::return#3 ]
|
|
reg byte a [ game_logic::open_directions#0 ]
|
|
reg byte y [ game_logic::open_directions#1 ]
|
|
reg byte a [ choose_direction::return#0 ]
|
|
reg byte a [ game_logic::$119 ]
|
|
reg byte x [ game_logic::$223 ]
|
|
zp[1]:91 [ game_logic::ghost3_xtile#0 ]
|
|
reg byte a [ level_tile_directions::return#10 ]
|
|
reg byte a [ game_logic::open_directions1#0 ]
|
|
reg byte y [ game_logic::open_directions1#1 ]
|
|
reg byte a [ choose_direction::return#1 ]
|
|
reg byte a [ game_logic::$140 ]
|
|
reg byte x [ game_logic::$226 ]
|
|
zp[1]:92 [ game_logic::ghost2_xtile#0 ]
|
|
reg byte a [ level_tile_directions::return#11 ]
|
|
reg byte a [ game_logic::open_directions2#0 ]
|
|
reg byte y [ game_logic::open_directions2#1 ]
|
|
reg byte a [ choose_direction::return#2 ]
|
|
reg byte a [ game_logic::$161 ]
|
|
reg byte x [ game_logic::$229 ]
|
|
zp[1]:93 [ game_logic::ghost1_xtile#0 ]
|
|
reg byte a [ level_tile_directions::return#12 ]
|
|
reg byte a [ game_logic::open_directions3#0 ]
|
|
reg byte y [ game_logic::open_directions3#1 ]
|
|
reg byte a [ choose_direction::return#3 ]
|
|
reg byte a [ game_logic::$182 ]
|
|
reg byte x [ game_logic::$232 ]
|
|
reg byte x [ game_logic::pacman_xtile1#0 ]
|
|
reg byte a [ game_logic::pacman_ytile1#0 ]
|
|
reg byte a [ level_tile_directions::return#13 ]
|
|
reg byte x [ game_logic::open_directions4#0 ]
|
|
reg byte a [ game_logic::$199 ]
|
|
reg byte a [ game_logic::$200 ]
|
|
reg byte a [ game_logic::joy_directions#0 ]
|
|
reg byte a [ game_logic::$204 ]
|
|
reg byte a [ game_logic::new_direction#0 ]
|
|
zp[2]:36 [ byteboozer_decrunch::crunched ]
|
|
reg byte a [ joyfire::return#1 ]
|
|
reg byte a [ splash_run::$30 ]
|
|
reg byte y [ splash_run::$34 ]
|
|
zp[2]:5 [ splash_run::xpos#0 render_tiles::canvas1#2 render_tiles::canvas1#0 render_tiles::canvas1#1 init_render_index::render_index_xcol#0 init_render_index::render_index#1 merge_code::logic_code#12 merge_code::logic_code#5 merge_code::logic_code#18 merge_code::logic_code#17 merge_code::logic_code#2 merge_code::logic_code#14 merge_code::logic_code#3 merge_code::logic_code#4 merge_code::logic_code#10 merge_code::logic_code#1 merge_code::logic_code#0 memset::num#5 memset::end#0 done_run::gfx#4 done_run::gfx#2 done_run::gfx#1 ]
|
|
reg byte a [ splash_run::$25 ]
|
|
reg byte a [ joyfire::return#0 ]
|
|
reg byte a [ done_run::$8 ]
|
|
reg byte x [ done_run::pixels#0 ]
|
|
reg byte a [ level_tile_directions::$5 ]
|
|
zp[2]:49 [ level_tile_directions::ytiles#0 ]
|
|
zp[1]:75 [ choose_direction::xdiff#0 ]
|
|
reg byte a [ choose_direction::$2 ]
|
|
reg byte a [ choose_direction::$4 ]
|
|
reg byte a [ choose_direction::$6 ]
|
|
reg byte a [ choose_direction::$8 ]
|
|
reg byte a [ choose_direction::dist_right#0 ]
|
|
reg byte y [ merge_code::$5 ]
|
|
reg byte a [ init_render_index::$9 ]
|
|
zp[2]:3 [ init_render_index::canvas_xcol#0 render_tiles::canvas2#2 render_tiles::canvas2#0 render_tiles::canvas2#1 render_tiles::canvas_offset#0 ]
|
|
reg byte a [ init_render_index::$5 ]
|
|
reg byte a [ init_render_index::$6 ]
|
|
reg byte x [ splash_show::pixels#0 ]
|
|
reg byte a [ init_sprite_pointers::$2 ]
|
|
reg byte a [ init_sprite_pointers::sprite_id#0 ]
|
|
reg byte a [ joyfire::$0 ]
|
|
reg byte a [ level_tile_get::return#3 ]
|
|
reg byte x [ init_level_tile_directions::$3 ]
|
|
reg byte a [ level_tile_get::return#4 ]
|
|
reg byte x [ init_level_tile_directions::$7 ]
|
|
reg byte a [ level_tile_get::return#10 ]
|
|
reg byte a [ init_level_tile_directions::$11 ]
|
|
reg byte a [ level_tile_get::return#11 ]
|
|
reg byte a [ init_level_tile_directions::$15 ]
|
|
reg byte x [ level_show::tile_left#0 ]
|
|
reg byte y [ level_show::xtile#1 ]
|
|
reg byte x [ render_tiles::tile_left#0 ]
|
|
reg byte y [ render_tiles::tile_right#0 ]
|
|
reg byte y [ render::ytile#0 ]
|
|
reg byte x [ render::$1 ]
|
|
reg byte a [ render::$2 ]
|
|
zp[1]:2 [ render::ypix#0 level_show::tile_right#0 merge_code::logic_cycles#0 render_tiles::y#2 render_tiles::y#1 ]
|
|
reg byte a [ level_tile_get::$5 ]
|
|
reg byte a [ render_tiles::$0 ]
|
|
zp[2]:13 [ render_tiles::tile_left_pixels#0 level_tile_get::ytiles#0 render::render_index_xcol#0 init_render_index::$11 init_render_index::$10 init_render_index::$12 init_render_index::canvas#0 ]
|
|
reg byte a [ render_tiles::$2 ]
|
|
zp[2]:11 [ render_tiles::tile_right_pixels#0 splash_show::splash#4 splash_show::splash#2 splash_show::splash#1 init_render_index::render_index_xcol#2 init_render_index::render_index_xcol#7 init_render_index::render_index_xcol#1 merge_code::raster_code#4 merge_code::raster_code#2 merge_code::raster_code#0 merge_code::raster_code#1 memset::str#6 memset::dst#2 memset::dst#4 memset::dst#1 ]
|
|
reg byte x [ render_tiles::$4 ]
|
|
reg byte a [ render_tiles::$5 ]
|
|
zp[2]:17 [ render_tiles::render_index_xcol#0 ]
|
|
reg byte a [ render_tiles::pixels#0 ]
|
|
|
|
|
|
FINAL ASSEMBLER
|
|
Score: 1949462
|
|
|
|
// File Comments
|
|
// Camelot Borderline Entry
|
|
// Pacman made with 9 sprites in in the borders
|
|
// Upstart
|
|
// Commodore 64 PRG executable file
|
|
.plugin "se.triad.kickass.CruncherPlugins"
|
|
.file [name="pacman.prg", type="prg", segments="Program", modify="B2exe", _jmpAdress=__start]
|
|
.segmentdef Program [segments="Code, Data, Init"]
|
|
.segmentdef Code [start=$810]
|
|
.segmentdef Data [startAfter="Code"]
|
|
.segmentdef Init [startAfter="Data"]
|
|
// Global Constants & labels
|
|
/// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
|
|
.const CIA_INTERRUPT_CLEAR = $7f
|
|
/// The offset of the sprite pointers from the screen start address
|
|
.const OFFSET_SPRITE_PTRS = $3f8
|
|
/// $D011 Control Register #1 Bit#7: RST8 9th Bit for $D012 Rasterline counter
|
|
.const VICII_RST8 = $80
|
|
/// $D011 Control Register #1 Bit#6: ECM Turn Extended Color Mode on/off
|
|
.const VICII_ECM = $40
|
|
/// $D011 Control Register #1 Bit#5: BMM Turn Bitmap Mode on/off
|
|
.const VICII_BMM = $20
|
|
/// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off
|
|
.const VICII_DEN = $10
|
|
/// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows
|
|
/// RSEL| Display window height | First line | Last line
|
|
/// ----+--------------------------+-------------+----------
|
|
/// 0 | 24 text lines/192 pixels | 55 ($37) | 246 ($f6)
|
|
/// 1 | 25 text lines/200 pixels | 51 ($33) | 250 ($fa)
|
|
.const VICII_RSEL = 8
|
|
/// VICII IRQ Status/Enable Raster
|
|
// @see #IRQ_ENABLE #IRQ_STATUS
|
|
/// 0 | RST| Reaching a certain raster line. The line is specified by writing
|
|
/// | | to register 0xd012 and bit 7 of $d011 and internally stored by
|
|
/// | | the VIC for the raster compare. The test for reaching the
|
|
/// | | interrupt raster line is done in cycle 0 of every line (for line
|
|
/// | | 0, in cycle 1).
|
|
.const IRQ_RASTER = 1
|
|
/// Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written
|
|
.const PROCPORT_DDR_MEMORY_MASK = 7
|
|
/// RAM in all three areas 0xA000, 0xD000, 0xE000
|
|
.const PROCPORT_RAM_ALL = 0
|
|
/// RAM in 0xA000, 0xE000 I/O in 0xD000
|
|
.const PROCPORT_RAM_IO = 5
|
|
/// The colors of the C64
|
|
.const BLACK = 0
|
|
.const RED = 2
|
|
.const BLUE = 6
|
|
.const YELLOW = 7
|
|
.const EMPTY = 0
|
|
.const PILL = 1
|
|
.const POWERUP = 2
|
|
.const WALL = 4
|
|
// Address of the (decrunched) splash screen
|
|
.const BOB_ROW_SIZE = $80
|
|
.const RENDER_OFFSET_CANVAS_LO = 0
|
|
.const RENDER_OFFSET_CANVAS_HI = $50
|
|
.const RENDER_OFFSET_YPOS_INC = $a0
|
|
// The number of bobs rendered
|
|
.const NUM_BOBS = 5
|
|
// The size of the BOB restore structure
|
|
.const SIZE_BOB_RESTORE = $12
|
|
// Size of the crunched music
|
|
.const INTRO_MUSIC_CRUNCHED_SIZE = $600
|
|
// The raster line for irq_screen_top()
|
|
.const IRQ_SCREEN_TOP_LINE = 5
|
|
.const STOP = 0
|
|
.const UP = 4
|
|
.const DOWN = 8
|
|
.const LEFT = $10
|
|
.const RIGHT = $20
|
|
.const CHASE = 0
|
|
.const SCATTER = 1
|
|
.const FRIGHTENED = 2
|
|
.const OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2
|
|
.const OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH = 2
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL = 4
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY = 5
|
|
.const OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE = 6
|
|
.const OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
|
|
.const OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB = $10
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X = $1d
|
|
.const OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20
|
|
.const OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1 = $25
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2 = $26
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC = $1c
|
|
.const OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16
|
|
.const OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11
|
|
.const OFFSET_STRUCT_MOS6569_VICII_RASTER = $12
|
|
.const OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y = 1
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y = 3
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y = 5
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y = 7
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y = 9
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y = $b
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y = $d
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y = $f
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR = $27
|
|
.const OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR = $28
|
|
.const OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19
|
|
.const SIZEOF_CHAR = 1
|
|
/// Sprite X position register for sprite #0
|
|
.label SPRITES_XPOS = $d000
|
|
/// Sprite Y position register for sprite #0
|
|
.label SPRITES_YPOS = $d001
|
|
/// Sprite colors register for sprite #0
|
|
.label SPRITES_COLOR = $d027
|
|
/// $D012 RASTER Raster counter
|
|
.label RASTER = $d012
|
|
/// $D020 Border Color
|
|
.label BORDER_COLOR = $d020
|
|
/// $D011 Control Register #1
|
|
/// - Bit#0-#2: YSCROLL Screen Soft Scroll Vertical
|
|
/// - Bit#3: RSEL Switch betweem 25 or 24 visible rows
|
|
/// RSEL| Display window height | First line | Last line
|
|
/// ----+--------------------------+-------------+----------
|
|
/// 0 | 24 text lines/192 pixels | 55 ($37) | 246 ($f6)
|
|
/// 1 | 25 text lines/200 pixels | 51 ($33) | 250 ($fa)
|
|
/// - Bit#4: DEN Switch VIC-II output on/off
|
|
/// - Bit#5: BMM Turn Bitmap Mode on/off
|
|
/// - Bit#6: ECM Turn Extended Color Mode on/off
|
|
/// - Bit#7: RST8 9th Bit for $D012 Rasterline counter
|
|
/// Initial Value: %10011011
|
|
.label VICII_CONTROL1 = $d011
|
|
/// $D016 Control register 2
|
|
/// - Bit#0-#2: XSCROLL Screen Soft Scroll Horizontal
|
|
/// - Bit#3: CSEL Switch betweem 40 or 38 visible columns
|
|
/// CSEL| Display window width | First X coo. | Last X coo.
|
|
/// ----+--------------------------+--------------+------------
|
|
/// 0 | 38 characters/304 pixels | 31 ($1f) | 334 ($14e)
|
|
/// 1 | 40 characters/320 pixels | 24 ($18) | 343 ($157)
|
|
/// - Bit#4: MCM Turn Multicolor Mode on/off
|
|
/// - Bit#5-#7: not used
|
|
/// Initial Value: %00001000
|
|
.label VICII_CONTROL2 = $d016
|
|
/// $D018 VIC-II base addresses
|
|
/// - Bit#0: not used
|
|
/// - Bit#1-#3: CB Address Bits 11-13 of the Character Set (*2048)
|
|
/// - Bit#4-#7: VM Address Bits 10-13 of the Screen RAM (*1024)
|
|
/// Initial Value: %00010100
|
|
.label VICII_MEMORY = $d018
|
|
/// VIC II IRQ Status Register
|
|
.label IRQ_STATUS = $d019
|
|
/// Channel 1 Frequency High byte
|
|
.label SID_CH1_FREQ_HI = $d401
|
|
/// Processor port data direction register
|
|
.label PROCPORT_DDR = 0
|
|
/// Processor Port Register controlling RAM/ROM configuration and the datasette
|
|
.label PROCPORT = 1
|
|
/// The SID MOS 6581/8580
|
|
.label SID = $d400
|
|
/// The VIC-II MOS 6567/6569
|
|
.label VICII = $d000
|
|
/// The CIA#1: keyboard matrix, joystick #1/#2
|
|
.label CIA1 = $dc00
|
|
/// The CIA#2: Serial bus, RS-232, VIC memory bank
|
|
.label CIA2 = $dd00
|
|
/// CIA#1 Interrupt for reading in ASM
|
|
.label CIA1_INTERRUPT = $dc0d
|
|
/// The vector used when the HARDWARE serves IRQ interrupts
|
|
.label HARDWARE_IRQ = $fffe
|
|
// Graphics Bank 1
|
|
// Address of the sprites
|
|
.label BANK_1 = $4000
|
|
// Address of the sprites
|
|
.label SPRITES_1 = $6000
|
|
// Use sprite pointers on all screens (0x43f8, 0x47f8, ...)
|
|
.label SCREENS_1 = $4000
|
|
// Graphics Bank 2
|
|
// Address of the sprites
|
|
.label BANK_2 = $c000
|
|
// Address of the sprites
|
|
.label SPRITES_2 = $e000
|
|
// Use sprite pointers on all screens (0x43f8, 0x47f8, ...)
|
|
.label SCREENS_2 = $c000
|
|
// The location where the logic code will be located before merging
|
|
.label LOGIC_CODE_UNMERGED = $e000
|
|
// The location where the screen raster code will be located before merging
|
|
.label RASTER_CODE_UNMERGED = $6000
|
|
// The location where the screen raster code will be located when running
|
|
.label RASTER_CODE = $8000
|
|
// Address of the (decrunched) splash screen
|
|
.label SPLASH = $4000
|
|
// Address for the victory graphics
|
|
.label WIN_GFX = $a700
|
|
// Address for the gameover graphics
|
|
.label GAMEOVER_GFX = $a700
|
|
// Address used by (decrunched) tiles
|
|
.label LEVEL_TILES = $4800
|
|
.label TILES_LEFT = LEVEL_TILES+$a00
|
|
.label TILES_RIGHT = LEVEL_TILES+$a80
|
|
.label TILES_TYPE = LEVEL_TILES+$b00
|
|
// Address used for table containing available directions for all tiles
|
|
// TABLE LEVEL_TILES_DIRECTIONS[64*37]
|
|
// The level data is organized as 37 rows of 64 bytes. Each row is 50 bytes containing DIRECTION bits plus 14 unused bytes to achieve 64-byte alignment.
|
|
.label LEVEL_TILES_DIRECTIONS = $3e00
|
|
.label BOB_MASK_LEFT = $5400
|
|
.label BOB_MASK_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*6
|
|
.label BOB_PIXEL_LEFT = BOB_MASK_LEFT+BOB_ROW_SIZE*$c
|
|
.label BOB_PIXEL_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*$12
|
|
// Tables pointing to the graphics.
|
|
// Each page represents one X column (1 byte wide, 4 MC pixels)
|
|
// On each page:
|
|
// - 0xNN00-0xNN4A : low-byte of the graphics for (X-column, Y-fine)
|
|
// - 0xNN50-0xNN9A : high-byte of the graphics for (X-column, Y-fine)
|
|
// - 0xNNA0-0xNNEA : index into RENDER_YPOS_INC for incrementing the y-pos.
|
|
.label RENDER_INDEX = $b600
|
|
// Upper memory location used during decrunching
|
|
.label INTRO_MUSIC_CRUNCHED_UPPER = $a700
|
|
// Address of the music during run-time
|
|
.label INTRO_MUSIC = $3000
|
|
// Pointer to the music init routine
|
|
.label musicInit = INTRO_MUSIC
|
|
// Pointer to the music play routine
|
|
.label musicPlay = INTRO_MUSIC+6
|
|
// Is the pacman eating sound enabled
|
|
.label pacman_ch1_enabled = $66
|
|
// Index into the eating sound
|
|
.label pacman_ch1_idx = $5e
|
|
// Pointer to the tile to render in the logic code
|
|
.label logic_tile_ptr = $1a
|
|
// The x-column of the tile to render
|
|
.label logic_tile_xcol = $1c
|
|
// The y-fine of the tile to render
|
|
.label logic_tile_yfine = $1d
|
|
// The ID*4 of the left tile to render
|
|
.label logic_tile_left_idx = $4c
|
|
// The ID*4 of the right tile to render
|
|
.label logic_tile_right_idx = $4d
|
|
// Variables used by the logic-code renderer and restorer
|
|
.label left_render_index_xcol = $4e
|
|
.label left_canvas = $50
|
|
.label left_ypos_inc_offset = $52
|
|
.label rigt_render_index_xcol = $53
|
|
.label rigt_canvas = $55
|
|
.label rigt_ypos_inc_offset = $57
|
|
// The high-byte of the start-address of the canvas currently being rendered to
|
|
.label canvas_base_hi = $20
|
|
// The offset used for bobs_restore - used to achieve double buffering
|
|
.label bobs_restore_base = $21
|
|
// Sprite settings used for the top/side/bottom sprites.
|
|
// Used for achieving single-color sprites on the splash and multi-color sprites in the game
|
|
.label top_sprites_color = $1e
|
|
.label top_sprites_mc = $3a
|
|
.label side_sprites_color = $16
|
|
.label side_sprites_mc = $17
|
|
.label bottom_sprites_color = $18
|
|
.label bottom_sprites_mc = $19
|
|
// The number of pills left
|
|
.label pill_count = $58
|
|
// 1 When pacman wins
|
|
.label pacman_wins = $1f
|
|
// The number of pacman lives left
|
|
.label pacman_lives = $23
|
|
// Signal for playing th next music frame during the intro
|
|
.label music_play_next = $15
|
|
// 0: intro, 1: game
|
|
.label phase = $3d
|
|
// The double buffer frame (0=BANK_1, 1=BANK_2)
|
|
.label frame = $65
|
|
// The animation frame IDX (within the current direction) [0-3]
|
|
.label anim_frame_idx = $60
|
|
// Pacman x fine position (0-99).
|
|
.label pacman_xfine = $47
|
|
// Pacman y fine position (0-70).
|
|
.label pacman_yfine = $48
|
|
// The pacman movement current direction
|
|
.label pacman_direction = $35
|
|
// Pacman movement substep (0: on tile, 1: between tiles).
|
|
.label pacman_substep = $2c
|
|
// Mode determining ghost target mode. 0: chase, 1: scatter
|
|
.label ghosts_mode = $5f
|
|
// Counts frames to change ghost mode (7 seconds scatter, 20 seconds chase )
|
|
.label ghosts_mode_count = $2b
|
|
// Ghost 1 x fine position (0-99).
|
|
.label ghost1_xfine = $3b
|
|
// Ghost 1 y fine position (0-70).
|
|
.label ghost1_yfine = $3c
|
|
// Ghost 1 movement current direction
|
|
.label ghost1_direction = $36
|
|
// Ghost 1 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost1_substep = $2d
|
|
// Ghost 1 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost1_reverse = $61
|
|
// Ghost 1 respawn timer
|
|
.label ghost1_respawn = $26
|
|
// Ghost 2 x fine position (0-99).
|
|
.label ghost2_xfine = $3e
|
|
// Ghost 2 y fine position (0-70).
|
|
.label ghost2_yfine = $3f
|
|
// Ghost 2 movement current direction
|
|
.label ghost2_direction = $37
|
|
// Ghost 2 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost2_substep = $2e
|
|
// Ghost 2 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost2_reverse = $62
|
|
// Ghost 2 respawn timer
|
|
.label ghost2_respawn = $28
|
|
// Ghost 3 x fine position (0-99).
|
|
.label ghost3_xfine = $40
|
|
// Ghost 3 y fine position (0-70).
|
|
.label ghost3_yfine = $42
|
|
// Ghost 3 movement current direction
|
|
.label ghost3_direction = $38
|
|
// Ghost 3 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost3_substep = $2f
|
|
// Ghost 3 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost3_reverse = $63
|
|
// Ghost 3 respawn timer
|
|
.label ghost3_respawn = $29
|
|
// Ghost 4 x fine position (0-99).
|
|
.label ghost4_xfine = $43
|
|
// Ghost 4 y fine position (0-70).
|
|
.label ghost4_yfine = $44
|
|
// Ghost 4 movement current direction
|
|
.label ghost4_direction = $39
|
|
// Ghost 4 movement substep (0: on tile, 1: between tiles).
|
|
.label ghost4_substep = $30
|
|
// Ghost 4 movement should be reversed (0: normal, 1: reverse direction)
|
|
.label ghost4_reverse = $64
|
|
// Ghost 4 respawn timer
|
|
.label ghost4_respawn = $2a
|
|
// Game logic sub-step [0-7]. Each frame a different sub-step is animated
|
|
.label game_logic_substep = $5a
|
|
// 1 when the game is playable and characters should move around
|
|
.label game_playable = $41
|
|
.segment Code
|
|
// __start
|
|
__start: {
|
|
// __start::__init1
|
|
// volatile char pacman_ch1_enabled = 0
|
|
// [1] pacman_ch1_enabled = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_ch1_enabled
|
|
// volatile char pacman_ch1_idx = 0
|
|
// [2] pacman_ch1_idx = 0 -- vbuz1=vbuc1
|
|
sta.z pacman_ch1_idx
|
|
// volatile char* logic_tile_ptr
|
|
// [3] logic_tile_ptr = (volatile char *) 0 -- pbuz1=pbuc1
|
|
sta.z logic_tile_ptr
|
|
sta.z logic_tile_ptr+1
|
|
// volatile char logic_tile_xcol
|
|
// [4] logic_tile_xcol = 0 -- vbuz1=vbuc1
|
|
sta.z logic_tile_xcol
|
|
// volatile char logic_tile_yfine
|
|
// [5] logic_tile_yfine = 0 -- vbuz1=vbuc1
|
|
sta.z logic_tile_yfine
|
|
// volatile char logic_tile_left_idx
|
|
// [6] logic_tile_left_idx = 0 -- vbuz1=vbuc1
|
|
sta.z logic_tile_left_idx
|
|
// volatile char logic_tile_right_idx
|
|
// [7] logic_tile_right_idx = 0 -- vbuz1=vbuc1
|
|
sta.z logic_tile_right_idx
|
|
// char * volatile left_render_index_xcol
|
|
// [8] left_render_index_xcol = (char *) 0 -- pbuz1=pbuc1
|
|
sta.z left_render_index_xcol
|
|
sta.z left_render_index_xcol+1
|
|
// char * volatile left_canvas
|
|
// [9] left_canvas = (char *) 0 -- pbuz1=pbuc1
|
|
sta.z left_canvas
|
|
sta.z left_canvas+1
|
|
// volatile char left_ypos_inc_offset
|
|
// [10] left_ypos_inc_offset = 0 -- vbuz1=vbuc1
|
|
sta.z left_ypos_inc_offset
|
|
// char * volatile rigt_render_index_xcol
|
|
// [11] rigt_render_index_xcol = (char *) 0 -- pbuz1=pbuc1
|
|
sta.z rigt_render_index_xcol
|
|
sta.z rigt_render_index_xcol+1
|
|
// char * volatile rigt_canvas
|
|
// [12] rigt_canvas = (char *) 0 -- pbuz1=pbuc1
|
|
sta.z rigt_canvas
|
|
sta.z rigt_canvas+1
|
|
// volatile char rigt_ypos_inc_offset
|
|
// [13] rigt_ypos_inc_offset = 0 -- vbuz1=vbuc1
|
|
sta.z rigt_ypos_inc_offset
|
|
// volatile char canvas_base_hi
|
|
// [14] canvas_base_hi = 0 -- vbuz1=vbuc1
|
|
sta.z canvas_base_hi
|
|
// volatile char bobs_restore_base
|
|
// [15] bobs_restore_base = 0 -- vbuz1=vbuc1
|
|
sta.z bobs_restore_base
|
|
// volatile char top_sprites_color
|
|
// [16] top_sprites_color = 0 -- vbuz1=vbuc1
|
|
sta.z top_sprites_color
|
|
// volatile char top_sprites_mc
|
|
// [17] top_sprites_mc = 0 -- vbuz1=vbuc1
|
|
sta.z top_sprites_mc
|
|
// volatile char side_sprites_color
|
|
// [18] side_sprites_color = 0 -- vbuz1=vbuc1
|
|
sta.z side_sprites_color
|
|
// volatile char side_sprites_mc
|
|
// [19] side_sprites_mc = 0 -- vbuz1=vbuc1
|
|
sta.z side_sprites_mc
|
|
// volatile char bottom_sprites_color
|
|
// [20] bottom_sprites_color = 0 -- vbuz1=vbuc1
|
|
sta.z bottom_sprites_color
|
|
// volatile char bottom_sprites_mc
|
|
// [21] bottom_sprites_mc = 0 -- vbuz1=vbuc1
|
|
sta.z bottom_sprites_mc
|
|
// volatile unsigned int pill_count
|
|
// [22] pill_count = 0 -- vwuz1=vwuc1
|
|
sta.z pill_count
|
|
sta.z pill_count+1
|
|
// volatile char pacman_wins = 0
|
|
// [23] pacman_wins = 0 -- vbuz1=vbuc1
|
|
sta.z pacman_wins
|
|
// volatile char pacman_lives = 3
|
|
// [24] pacman_lives = 3 -- vbuz1=vbuc1
|
|
lda #3
|
|
sta.z pacman_lives
|
|
// volatile char music_play_next = 0
|
|
// [25] music_play_next = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z music_play_next
|
|
// volatile char phase = 0
|
|
// [26] phase = 0 -- vbuz1=vbuc1
|
|
sta.z phase
|
|
// volatile char frame = 0
|
|
// [27] frame = 0 -- vbuz1=vbuc1
|
|
sta.z frame
|
|
// volatile char anim_frame_idx = 0
|
|
// [28] anim_frame_idx = 0 -- vbuz1=vbuc1
|
|
sta.z anim_frame_idx
|
|
// volatile char pacman_xfine = 45
|
|
// [29] pacman_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z pacman_xfine
|
|
// volatile char pacman_yfine = 35
|
|
// [30] pacman_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z pacman_yfine
|
|
// volatile enum DIRECTION pacman_direction = STOP
|
|
// [31] pacman_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z pacman_direction
|
|
// volatile char pacman_substep = 0
|
|
// [32] pacman_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_substep
|
|
// volatile enum GHOSTS_MODE ghosts_mode = 1
|
|
// [33] ghosts_mode = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghosts_mode
|
|
// volatile char ghosts_mode_count = 0
|
|
// [34] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
// volatile char ghost1_xfine = 45
|
|
// [35] ghost1_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost1_xfine
|
|
// volatile char ghost1_yfine = 35
|
|
// [36] ghost1_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost1_yfine
|
|
// volatile enum DIRECTION ghost1_direction = STOP
|
|
// [37] ghost1_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost1_direction
|
|
// volatile char ghost1_substep = 0
|
|
// [38] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
// volatile char ghost1_reverse = 0
|
|
// [39] ghost1_reverse = 0 -- vbuz1=vbuc1
|
|
sta.z ghost1_reverse
|
|
// volatile char ghost1_respawn = 0
|
|
// [40] ghost1_respawn = 0 -- vbuz1=vbuc1
|
|
sta.z ghost1_respawn
|
|
// volatile char ghost2_xfine = 45
|
|
// [41] ghost2_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost2_xfine
|
|
// volatile char ghost2_yfine = 35
|
|
// [42] ghost2_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost2_yfine
|
|
// volatile enum DIRECTION ghost2_direction = STOP
|
|
// [43] ghost2_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost2_direction
|
|
// volatile char ghost2_substep = 0
|
|
// [44] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
// volatile char ghost2_reverse = 0
|
|
// [45] ghost2_reverse = 0 -- vbuz1=vbuc1
|
|
sta.z ghost2_reverse
|
|
// volatile char ghost2_respawn = 0
|
|
// [46] ghost2_respawn = 0 -- vbuz1=vbuc1
|
|
sta.z ghost2_respawn
|
|
// volatile char ghost3_xfine = 45
|
|
// [47] ghost3_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost3_xfine
|
|
// volatile char ghost3_yfine = 35
|
|
// [48] ghost3_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost3_yfine
|
|
// volatile enum DIRECTION ghost3_direction = STOP
|
|
// [49] ghost3_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost3_direction
|
|
// volatile char ghost3_substep = 0
|
|
// [50] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
// volatile char ghost3_reverse = 0
|
|
// [51] ghost3_reverse = 0 -- vbuz1=vbuc1
|
|
sta.z ghost3_reverse
|
|
// volatile char ghost3_respawn = 0
|
|
// [52] ghost3_respawn = 0 -- vbuz1=vbuc1
|
|
sta.z ghost3_respawn
|
|
// volatile char ghost4_xfine = 45
|
|
// [53] ghost4_xfine = $2d -- vbuz1=vbuc1
|
|
lda #$2d
|
|
sta.z ghost4_xfine
|
|
// volatile char ghost4_yfine = 35
|
|
// [54] ghost4_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost4_yfine
|
|
// volatile enum DIRECTION ghost4_direction = STOP
|
|
// [55] ghost4_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost4_direction
|
|
// volatile char ghost4_substep = 0
|
|
// [56] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
// volatile char ghost4_reverse = 0
|
|
// [57] ghost4_reverse = 0 -- vbuz1=vbuc1
|
|
sta.z ghost4_reverse
|
|
// volatile char ghost4_respawn = 0
|
|
// [58] ghost4_respawn = 0 -- vbuz1=vbuc1
|
|
sta.z ghost4_respawn
|
|
// volatile char game_logic_substep = 0
|
|
// [59] game_logic_substep = 0 -- vbuz1=vbuc1
|
|
sta.z game_logic_substep
|
|
// volatile char game_playable = 0
|
|
// [60] game_playable = 0 -- vbuz1=vbuc1
|
|
sta.z game_playable
|
|
// [61] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
|
|
// __start::@1
|
|
// [62] call main
|
|
// [101] phi from __start::@1 to main [phi:__start::@1->main]
|
|
jsr main
|
|
// __start::@return
|
|
// [63] return
|
|
rts
|
|
}
|
|
// irq_screen_top
|
|
// Interrupt Routine at Screen Top
|
|
irq_screen_top: {
|
|
.const toDd001_return = 0
|
|
.const toDd002_return = 3^(>SCREENS_1)/$40
|
|
.const toD0181_return = 0
|
|
// interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry
|
|
sta rega+1
|
|
stx regx+1
|
|
sty regy+1
|
|
// kickasm
|
|
// kickasm( uses HARDWARE_IRQ uses RASTER uses IRQ_STATUS uses IRQ_RASTER uses VICII_CONTROL1 uses VICII_RSEL uses VICII_MEMORY) {{ // Stabilize the raster by using the double IRQ method // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS // Set-up IRQ for the next line inc RASTER // Point IRQ to almost stable code lda #<stable sta HARDWARE_IRQ lda #>stable sta HARDWARE_IRQ+1 tsx // Save stack pointer cli // Reenable interrupts // Wait for new IRQ using NOP's to ensure minimal jitter when it hits .fill 15, NOP .align $20 stable: txs // Restore stack pointer ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles) !: dex bne !- nop lda RASTER cmp RASTER bne !+ // And correct the last cycle of potential jitter !: // Raster is now completely stable! (Line 0x007 cycle 7) }}
|
|
// Stabilize the raster by using the double IRQ method
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta IRQ_STATUS
|
|
// Set-up IRQ for the next line
|
|
inc RASTER
|
|
// Point IRQ to almost stable code
|
|
lda #<stable
|
|
sta HARDWARE_IRQ
|
|
lda #>stable
|
|
sta HARDWARE_IRQ+1
|
|
tsx // Save stack pointer
|
|
cli // Reenable interrupts
|
|
// Wait for new IRQ using NOP's to ensure minimal jitter when it hits
|
|
.fill 15, NOP
|
|
.align $20
|
|
stable:
|
|
txs // Restore stack pointer
|
|
ldx #9 // Wait till the raster has almost crossed to the next line (48 cycles)
|
|
!: dex
|
|
bne !-
|
|
nop
|
|
lda RASTER
|
|
cmp RASTER
|
|
bne !+ // And correct the last cycle of potential jitter
|
|
!:
|
|
// Raster is now completely stable! (Line 0x007 cycle 7)
|
|
|
|
// asm
|
|
// asm { jsrRASTER_CODE }
|
|
jsr RASTER_CODE
|
|
// VICII->SPRITE0_Y =7
|
|
// [66] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
// Move sprites back to the top
|
|
lda #7
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y
|
|
// VICII->SPRITE1_Y =7
|
|
// [67] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_Y
|
|
// VICII->SPRITE2_Y =7
|
|
// [68] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE2_Y
|
|
// VICII->SPRITE3_Y =7
|
|
// [69] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE3_Y
|
|
// VICII->SPRITE4_Y =7
|
|
// [70] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE4_Y
|
|
// VICII->SPRITE5_Y =7
|
|
// [71] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE5_Y
|
|
// VICII->SPRITE6_Y =7
|
|
// [72] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE6_Y
|
|
// VICII->SPRITE7_Y =7
|
|
// [73] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y) = 7 -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE7_Y
|
|
// [74] phi from irq_screen_top to irq_screen_top::toD0181 [phi:irq_screen_top->irq_screen_top::toD0181]
|
|
// irq_screen_top::toD0181
|
|
// irq_screen_top::@5
|
|
// VICII->MEMORY = toD018(SCREENS_1, SCREENS_1)
|
|
// [75] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = irq_screen_top::toD0181_return#0 -- _deref_pbuc1=vbuc2
|
|
// Select first screen (graphics bank not important since layout in the banks is identical)
|
|
lda #toD0181_return
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY
|
|
// VICII->SPRITES_MC = top_sprites_mc
|
|
// [76] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc -- _deref_pbuc1=vbuz1
|
|
// Set the top sprites color/MC
|
|
lda.z top_sprites_mc
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC
|
|
// VICII->SPRITE0_COLOR = top_sprites_color
|
|
// [77] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR) = top_sprites_color -- _deref_pbuc1=vbuz1
|
|
lda.z top_sprites_color
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR
|
|
// VICII->SPRITE1_COLOR = top_sprites_color
|
|
// [78] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR) = top_sprites_color -- _deref_pbuc1=vbuz1
|
|
lda.z top_sprites_color
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITE1_COLOR
|
|
// frame+1
|
|
// [79] irq_screen_top::$1 = frame + 1 -- vbuaa=vbuz1_plus_1
|
|
lda.z frame
|
|
clc
|
|
adc #1
|
|
// (frame+1) & 1
|
|
// [80] irq_screen_top::$2 = irq_screen_top::$1 & 1 -- vbuaa=vbuaa_band_vbuc1
|
|
and #1
|
|
// frame = (frame+1) & 1
|
|
// [81] frame = irq_screen_top::$2 -- vbuz1=vbuaa
|
|
// Move to next frame
|
|
sta.z frame
|
|
// if(frame)
|
|
// [82] if(0!=frame) goto irq_screen_top::toDd001 -- 0_neq_vbuz1_then_la1
|
|
bne __b6
|
|
// [83] phi from irq_screen_top::@5 to irq_screen_top::toDd002 [phi:irq_screen_top::@5->irq_screen_top::toDd002]
|
|
// irq_screen_top::toDd002
|
|
// irq_screen_top::@7
|
|
// CIA2->PORT_A = toDd00(SCREENS_1)
|
|
// [84] *((char *)CIA2) = irq_screen_top::toDd002_return#0 -- _deref_pbuc1=vbuc2
|
|
// Change graphics bank
|
|
lda #toDd002_return
|
|
sta CIA2
|
|
// canvas_base_hi = BYTE1(SPRITES_2)
|
|
// [85] canvas_base_hi = byte1 SPRITES_2 -- vbuz1=vbuc1
|
|
// Set the next canvas base address
|
|
lda #>SPRITES_2
|
|
sta.z canvas_base_hi
|
|
// bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE
|
|
// [86] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE -- vbuz1=vbuc1
|
|
lda #NUM_BOBS*SIZE_BOB_RESTORE
|
|
sta.z bobs_restore_base
|
|
// irq_screen_top::@1
|
|
__b1:
|
|
// if(phase==0)
|
|
// [87] if(phase==0) goto irq_screen_top::@2 -- vbuz1_eq_0_then_la1
|
|
lda.z phase
|
|
beq __b2
|
|
// [88] phi from irq_screen_top::@1 to irq_screen_top::@4 [phi:irq_screen_top::@1->irq_screen_top::@4]
|
|
// irq_screen_top::@4
|
|
// game_logic()
|
|
// [89] call game_logic
|
|
// Game phase
|
|
// Perform game logic
|
|
jsr game_logic
|
|
// [90] phi from irq_screen_top::@4 to irq_screen_top::@8 [phi:irq_screen_top::@4->irq_screen_top::@8]
|
|
// irq_screen_top::@8
|
|
// pacman_sound_play()
|
|
// [91] call pacman_sound_play
|
|
// Play sounds
|
|
jsr pacman_sound_play
|
|
// irq_screen_top::@3
|
|
__b3:
|
|
// VICII->IRQ_STATUS = IRQ_RASTER
|
|
// [92] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Acknowledge the IRQ
|
|
lda #IRQ_RASTER
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS
|
|
// VICII->RASTER = IRQ_SCREEN_TOP_LINE
|
|
// [93] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE -- _deref_pbuc1=vbuc2
|
|
// Trigger IRQ at screen top again
|
|
lda #IRQ_SCREEN_TOP_LINE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
// *HARDWARE_IRQ = &irq_screen_top
|
|
// [94] *HARDWARE_IRQ = &irq_screen_top -- _deref_qprc1=pprc2
|
|
lda #<irq_screen_top
|
|
sta HARDWARE_IRQ
|
|
lda #>irq_screen_top
|
|
sta HARDWARE_IRQ+1
|
|
// irq_screen_top::@return
|
|
// }
|
|
// [95] return
|
|
// interrupt(isr_hardware_clobber_exit) -- isr_hardware_all_exit
|
|
rega:
|
|
lda #0
|
|
regx:
|
|
ldx #0
|
|
regy:
|
|
ldy #0
|
|
rti
|
|
// irq_screen_top::@2
|
|
__b2:
|
|
// music_play_next = 1
|
|
// [96] music_play_next = 1 -- vbuz1=vbuc1
|
|
// intro phase
|
|
// Play intro music
|
|
lda #1
|
|
sta.z music_play_next
|
|
jmp __b3
|
|
// [97] phi from irq_screen_top::@5 to irq_screen_top::toDd001 [phi:irq_screen_top::@5->irq_screen_top::toDd001]
|
|
// irq_screen_top::toDd001
|
|
// irq_screen_top::@6
|
|
__b6:
|
|
// CIA2->PORT_A = toDd00(SCREENS_2)
|
|
// [98] *((char *)CIA2) = irq_screen_top::toDd001_return#0 -- _deref_pbuc1=vbuc2
|
|
// Change graphics bank
|
|
lda #toDd001_return
|
|
sta CIA2
|
|
// canvas_base_hi = BYTE1(SPRITES_1)
|
|
// [99] canvas_base_hi = byte1 SPRITES_1 -- vbuz1=vbuc1
|
|
// Set the next canvas base address
|
|
lda #>SPRITES_1
|
|
sta.z canvas_base_hi
|
|
// bobs_restore_base = 0
|
|
// [100] bobs_restore_base = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z bobs_restore_base
|
|
jmp __b1
|
|
}
|
|
// main
|
|
main: {
|
|
// splash_run()
|
|
// [102] call splash_run
|
|
// Show the splash screen
|
|
// [509] phi from main to splash_run [phi:main->splash_run]
|
|
jsr splash_run
|
|
// [103] phi from main main::@2 to main::@1 [phi:main/main::@2->main::@1]
|
|
// main::@1
|
|
__b1:
|
|
// gameplay_run()
|
|
// [104] call gameplay_run
|
|
// Run the gameplay
|
|
// [616] phi from main::@1 to gameplay_run [phi:main::@1->gameplay_run]
|
|
jsr gameplay_run
|
|
// [105] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
|
|
// main::@2
|
|
// done_run()
|
|
// [106] call done_run
|
|
// Show victory or game over image
|
|
jsr done_run
|
|
jmp __b1
|
|
}
|
|
// game_logic
|
|
// Perform game logic such as moving pacman and ghosts
|
|
game_logic: {
|
|
.label __67 = $45
|
|
.label __71 = $45
|
|
.label __210 = $22
|
|
.label ghost_frame_idx = $4a
|
|
.label pacman_xtile = $49
|
|
.label ytiles = $45
|
|
.label ghost4_xtile = $33
|
|
.label ghost4_ytile = $34
|
|
.label target_ytile = $27
|
|
.label ghost3_xtile = $5b
|
|
.label ghost3_ytile = $34
|
|
.label target_ytile1 = $27
|
|
.label ghost2_xtile = $5c
|
|
.label ghost2_ytile = $34
|
|
.label target_ytile2 = $27
|
|
.label ghost1_xtile = $5d
|
|
.label ghost1_ytile = $34
|
|
.label target_ytile3 = $27
|
|
// if(game_playable==0)
|
|
// [107] if(game_playable!=0) goto game_logic::@1 -- vbuz1_neq_0_then_la1
|
|
lda.z game_playable
|
|
bne __b1
|
|
// game_logic::@return
|
|
__breturn:
|
|
// }
|
|
// [108] return
|
|
rts
|
|
// game_logic::@1
|
|
__b1:
|
|
// game_logic_substep+1
|
|
// [109] game_logic::$2 = game_logic_substep + 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z game_logic_substep
|
|
inx
|
|
// (game_logic_substep+1)&7
|
|
// [110] game_logic::$3 = game_logic::$2 & 7 -- vbuaa=vbuxx_band_vbuc1
|
|
txa
|
|
and #7
|
|
// game_logic_substep = (game_logic_substep+1)&7
|
|
// [111] game_logic_substep = game_logic::$3 -- vbuz1=vbuaa
|
|
// Move to next sub-step
|
|
sta.z game_logic_substep
|
|
// if(game_logic_substep==0)
|
|
// [112] if(game_logic_substep==0) goto game_logic::@2 -- vbuz1_eq_0_then_la1
|
|
bne !__b2+
|
|
jmp __b2
|
|
!__b2:
|
|
// game_logic::@8
|
|
// if(game_logic_substep==1)
|
|
// [113] if(game_logic_substep==1) goto game_logic::@3 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp.z game_logic_substep
|
|
bne !__b3+
|
|
jmp __b3
|
|
!__b3:
|
|
// game_logic::@9
|
|
// if(game_logic_substep==2)
|
|
// [114] if(game_logic_substep==2) goto game_logic::@4 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #2
|
|
cmp.z game_logic_substep
|
|
bne !__b4+
|
|
jmp __b4
|
|
!__b4:
|
|
// game_logic::@10
|
|
// if(game_logic_substep==4)
|
|
// [115] if(game_logic_substep==4) goto game_logic::@5 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #4
|
|
cmp.z game_logic_substep
|
|
bne !__b5+
|
|
jmp __b5
|
|
!__b5:
|
|
// game_logic::@11
|
|
// if(game_logic_substep==5)
|
|
// [116] if(game_logic_substep==5) goto game_logic::@6 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #5
|
|
cmp.z game_logic_substep
|
|
bne !__b6+
|
|
jmp __b6
|
|
!__b6:
|
|
// game_logic::@12
|
|
// if(game_logic_substep==6)
|
|
// [117] if(game_logic_substep==6) goto game_logic::@7 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #6
|
|
cmp.z game_logic_substep
|
|
bne !__b7+
|
|
jmp __b7
|
|
!__b7:
|
|
// game_logic::@13
|
|
// if(game_logic_substep==3 || game_logic_substep==7)
|
|
// [118] if(game_logic_substep==3) goto game_logic::@14 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #3
|
|
cmp.z game_logic_substep
|
|
beq __b14
|
|
// game_logic::@161
|
|
// [119] if(game_logic_substep==7) goto game_logic::@14 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #7
|
|
cmp.z game_logic_substep
|
|
beq __b14
|
|
rts
|
|
// game_logic::@14
|
|
__b14:
|
|
// anim_frame_idx+1
|
|
// [120] game_logic::$14 = anim_frame_idx + 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z anim_frame_idx
|
|
inx
|
|
// (anim_frame_idx+1) & 3
|
|
// [121] game_logic::$15 = game_logic::$14 & 3 -- vbuaa=vbuxx_band_vbuc1
|
|
txa
|
|
and #3
|
|
// anim_frame_idx = (anim_frame_idx+1) & 3
|
|
// [122] anim_frame_idx = game_logic::$15 -- vbuz1=vbuaa
|
|
// Update animation and bobs
|
|
sta.z anim_frame_idx
|
|
// char pacman_bob_xfine = pacman_xfine-1
|
|
// [123] game_logic::pacman_bob_xfine#0 = pacman_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z pacman_xfine
|
|
tay
|
|
dey
|
|
// pacman_bob_xfine/4
|
|
// [124] game_logic::$17 = game_logic::pacman_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// bobs_xcol[0] = pacman_bob_xfine/4
|
|
// [125] *bobs_xcol = game_logic::$17 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol
|
|
// pacman_yfine-1
|
|
// [126] game_logic::$18 = pacman_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z pacman_yfine
|
|
dex
|
|
// bobs_yfine[0] = pacman_yfine-1
|
|
// [127] *bobs_yfine = game_logic::$18 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine
|
|
// pacman_direction|anim_frame_idx
|
|
// [128] game_logic::$19 = pacman_direction | anim_frame_idx -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z pacman_direction
|
|
ora.z anim_frame_idx
|
|
tax
|
|
// pacman_bob_xfine&3
|
|
// [129] game_logic::$20 = game_logic::pacman_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// pacman_frames[pacman_direction|anim_frame_idx] + (pacman_bob_xfine&3)
|
|
// [130] game_logic::$21 = pacman_frames[game_logic::$19] + game_logic::$20 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc pacman_frames,x
|
|
// bobs_bob_id[0] = pacman_frames[pacman_direction|anim_frame_idx] + (pacman_bob_xfine&3)
|
|
// [131] *bobs_bob_id = game_logic::$21 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id
|
|
// char ghost_frame_idx = anim_frame_idx
|
|
// [132] game_logic::ghost_frame_idx#0 = anim_frame_idx -- vbuz1=vbuz2
|
|
lda.z anim_frame_idx
|
|
sta.z ghost_frame_idx
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [133] if(ghosts_mode!=FRIGHTENED) goto game_logic::@44 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
bne __b44
|
|
// game_logic::@15
|
|
// ghost_frame_idx |= 0x40
|
|
// [134] game_logic::ghost_frame_idx#1 = game_logic::ghost_frame_idx#0 | $40 -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #$40
|
|
ora.z ghost_frame_idx
|
|
sta.z ghost_frame_idx
|
|
// [135] phi from game_logic::@14 game_logic::@15 to game_logic::@44 [phi:game_logic::@14/game_logic::@15->game_logic::@44]
|
|
// [135] phi game_logic::ghost_frame_idx#2 = game_logic::ghost_frame_idx#0 [phi:game_logic::@14/game_logic::@15->game_logic::@44#0] -- register_copy
|
|
// game_logic::@44
|
|
__b44:
|
|
// char ghost1_bob_xfine = ghost1_xfine-1
|
|
// [136] game_logic::ghost1_bob_xfine#0 = ghost1_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost1_xfine
|
|
tay
|
|
dey
|
|
// ghost1_bob_xfine/4
|
|
// [137] game_logic::$25 = game_logic::ghost1_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// bobs_xcol[1] = ghost1_bob_xfine/4
|
|
// [138] *(bobs_xcol+1) = game_logic::$25 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+1
|
|
// ghost1_yfine-1
|
|
// [139] game_logic::$26 = ghost1_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost1_yfine
|
|
dex
|
|
// bobs_yfine[1] = ghost1_yfine-1
|
|
// [140] *(bobs_yfine+1) = game_logic::$26 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+1
|
|
// ghost1_direction|ghost_frame_idx
|
|
// [141] game_logic::$27 = ghost1_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost1_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// ghost1_bob_xfine&3
|
|
// [142] game_logic::$28 = game_logic::ghost1_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// ghost_frames[ghost1_direction|ghost_frame_idx] + (ghost1_bob_xfine&3)
|
|
// [143] game_logic::$29 = ghost_frames[game_logic::$27] + game_logic::$28 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// bobs_bob_id[1] = ghost_frames[ghost1_direction|ghost_frame_idx] + (ghost1_bob_xfine&3)
|
|
// [144] *(bobs_bob_id+1) = game_logic::$29 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+1
|
|
// char ghost2_bob_xfine = ghost2_xfine-1
|
|
// [145] game_logic::ghost2_bob_xfine#0 = ghost2_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost2_xfine
|
|
tay
|
|
dey
|
|
// ghost2_bob_xfine/4
|
|
// [146] game_logic::$31 = game_logic::ghost2_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// bobs_xcol[2] = ghost2_bob_xfine/4
|
|
// [147] *(bobs_xcol+2) = game_logic::$31 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+2
|
|
// ghost2_yfine-1
|
|
// [148] game_logic::$32 = ghost2_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost2_yfine
|
|
dex
|
|
// bobs_yfine[2] = ghost2_yfine-1
|
|
// [149] *(bobs_yfine+2) = game_logic::$32 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+2
|
|
// ghost2_direction|ghost_frame_idx
|
|
// [150] game_logic::$33 = ghost2_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost2_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// ghost2_bob_xfine&3
|
|
// [151] game_logic::$34 = game_logic::ghost2_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// ghost_frames[ghost2_direction|ghost_frame_idx] + (ghost2_bob_xfine&3)
|
|
// [152] game_logic::$35 = ghost_frames[game_logic::$33] + game_logic::$34 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// bobs_bob_id[2] = ghost_frames[ghost2_direction|ghost_frame_idx] + (ghost2_bob_xfine&3)
|
|
// [153] *(bobs_bob_id+2) = game_logic::$35 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+2
|
|
// char ghost3_bob_xfine = ghost3_xfine-1
|
|
// [154] game_logic::ghost3_bob_xfine#0 = ghost3_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost3_xfine
|
|
tay
|
|
dey
|
|
// ghost3_bob_xfine/4
|
|
// [155] game_logic::$37 = game_logic::ghost3_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// bobs_xcol[3] = ghost3_bob_xfine/4
|
|
// [156] *(bobs_xcol+3) = game_logic::$37 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+3
|
|
// ghost3_yfine-1
|
|
// [157] game_logic::$38 = ghost3_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost3_yfine
|
|
dex
|
|
// bobs_yfine[3] = ghost3_yfine-1
|
|
// [158] *(bobs_yfine+3) = game_logic::$38 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+3
|
|
// ghost3_direction|ghost_frame_idx
|
|
// [159] game_logic::$39 = ghost3_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost3_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// ghost3_bob_xfine&3
|
|
// [160] game_logic::$40 = game_logic::ghost3_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// ghost_frames[ghost3_direction|ghost_frame_idx] + (ghost3_bob_xfine&3)
|
|
// [161] game_logic::$41 = ghost_frames[game_logic::$39] + game_logic::$40 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// bobs_bob_id[3] = ghost_frames[ghost3_direction|ghost_frame_idx] + (ghost3_bob_xfine&3)
|
|
// [162] *(bobs_bob_id+3) = game_logic::$41 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+3
|
|
// char ghost4_bob_xfine = ghost4_xfine-1
|
|
// [163] game_logic::ghost4_bob_xfine#0 = ghost4_xfine - 1 -- vbuyy=vbuz1_minus_1
|
|
lda.z ghost4_xfine
|
|
tay
|
|
dey
|
|
// ghost4_bob_xfine/4
|
|
// [164] game_logic::$43 = game_logic::ghost4_bob_xfine#0 >> 2 -- vbuaa=vbuyy_ror_2
|
|
tya
|
|
lsr
|
|
lsr
|
|
// bobs_xcol[4] = ghost4_bob_xfine/4
|
|
// [165] *(bobs_xcol+4) = game_logic::$43 -- _deref_pbuc1=vbuaa
|
|
sta bobs_xcol+4
|
|
// ghost4_yfine-1
|
|
// [166] game_logic::$44 = ghost4_yfine - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z ghost4_yfine
|
|
dex
|
|
// bobs_yfine[4] = ghost4_yfine-1
|
|
// [167] *(bobs_yfine+4) = game_logic::$44 -- _deref_pbuc1=vbuxx
|
|
stx bobs_yfine+4
|
|
// ghost4_direction|ghost_frame_idx
|
|
// [168] game_logic::$45 = ghost4_direction | game_logic::ghost_frame_idx#2 -- vbuxx=vbuz1_bor_vbuz2
|
|
lda.z ghost4_direction
|
|
ora.z ghost_frame_idx
|
|
tax
|
|
// ghost4_bob_xfine&3
|
|
// [169] game_logic::$46 = game_logic::ghost4_bob_xfine#0 & 3 -- vbuaa=vbuyy_band_vbuc1
|
|
tya
|
|
and #3
|
|
// ghost_frames[ghost4_direction|ghost_frame_idx] + (ghost4_bob_xfine&3)
|
|
// [170] game_logic::$47 = ghost_frames[game_logic::$45] + game_logic::$46 -- vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
|
|
clc
|
|
adc ghost_frames,x
|
|
// bobs_bob_id[4] = ghost_frames[ghost4_direction|ghost_frame_idx] + (ghost4_bob_xfine&3)
|
|
// [171] *(bobs_bob_id+4) = game_logic::$47 -- _deref_pbuc1=vbuaa
|
|
sta bobs_bob_id+4
|
|
rts
|
|
// game_logic::@7
|
|
__b7:
|
|
// ghosts_mode_count++;
|
|
// [172] ghosts_mode_count = ++ ghosts_mode_count -- vbuz1=_inc_vbuz1
|
|
inc.z ghosts_mode_count
|
|
// if(ghosts_mode==SCATTER)
|
|
// [173] if(ghosts_mode==SCATTER) goto game_logic::@45 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
bne !__b45+
|
|
jmp __b45
|
|
!__b45:
|
|
// game_logic::@16
|
|
// if(ghosts_mode==CHASE)
|
|
// [174] if(ghosts_mode==CHASE) goto game_logic::@46 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #CHASE
|
|
cmp.z ghosts_mode
|
|
bne !__b46+
|
|
jmp __b46
|
|
!__b46:
|
|
// game_logic::@17
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [175] if(ghosts_mode!=FRIGHTENED) goto game_logic::@47 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
bne __b9
|
|
// game_logic::@18
|
|
// if(ghosts_mode_count>50)
|
|
// [176] if(ghosts_mode_count<$32+1) goto game_logic::@47 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ghosts_mode_count
|
|
cmp #$32+1
|
|
bcc __b9
|
|
// game_logic::@19
|
|
// ghosts_mode = CHASE
|
|
// [177] ghosts_mode = CHASE -- vbuz1=vbuc1
|
|
lda #CHASE
|
|
sta.z ghosts_mode
|
|
// ghosts_mode_count = 0
|
|
// [178] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
// [179] phi from game_logic::@19 game_logic::@58 game_logic::@59 to game_logic::@47 [phi:game_logic::@19/game_logic::@58/game_logic::@59->game_logic::@47]
|
|
__b8:
|
|
// [179] phi game_logic::do_reverse#4 = 1 [phi:game_logic::@19/game_logic::@58/game_logic::@59->game_logic::@47#0] -- vbuaa=vbuc1
|
|
lda #1
|
|
jmp __b47
|
|
// [179] phi from game_logic::@17 game_logic::@18 game_logic::@45 game_logic::@46 to game_logic::@47 [phi:game_logic::@17/game_logic::@18/game_logic::@45/game_logic::@46->game_logic::@47]
|
|
__b9:
|
|
// [179] phi game_logic::do_reverse#4 = 0 [phi:game_logic::@17/game_logic::@18/game_logic::@45/game_logic::@46->game_logic::@47#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
// game_logic::@47
|
|
__b47:
|
|
// if(do_reverse)
|
|
// [180] if(0==game_logic::do_reverse#4) goto game_logic::@48 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b48
|
|
// game_logic::@60
|
|
// ghost1_reverse = 1
|
|
// [181] ghost1_reverse = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost1_reverse
|
|
// ghost2_reverse = 1
|
|
// [182] ghost2_reverse = 1 -- vbuz1=vbuc1
|
|
sta.z ghost2_reverse
|
|
// ghost3_reverse = 1
|
|
// [183] ghost3_reverse = 1 -- vbuz1=vbuc1
|
|
sta.z ghost3_reverse
|
|
// ghost4_reverse = 1
|
|
// [184] ghost4_reverse = 1 -- vbuz1=vbuc1
|
|
sta.z ghost4_reverse
|
|
// game_logic::@48
|
|
__b48:
|
|
// char pacman_xtile = pacman_xfine/2
|
|
// [185] game_logic::pacman_xtile#0 = pacman_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine if pacman is on a pill tile - and handle it
|
|
lda.z pacman_xfine
|
|
lsr
|
|
sta.z pacman_xtile
|
|
// char pacman_ytile = pacman_yfine/2
|
|
// [186] game_logic::pacman_ytile#0 = pacman_yfine >> 1 -- vbuaa=vbuz1_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
// char* ytiles = LEVEL_TILES + LEVEL_YTILE_OFFSET[pacman_ytile]
|
|
// [187] game_logic::$210 = game_logic::pacman_ytile#0 << 1 -- vbuz1=vbuaa_rol_1
|
|
asl
|
|
sta.z __210
|
|
// [188] game_logic::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[game_logic::$210] -- pbuz1=pbuc1_plus_pwuc2_derefidx_vbuz2
|
|
tay
|
|
clc
|
|
lda #<LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET,y
|
|
sta.z ytiles
|
|
lda #>LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET+1,y
|
|
sta.z ytiles+1
|
|
// char tile_id = ytiles[pacman_xtile]
|
|
// [189] game_logic::tile_id#0 = game_logic::ytiles#0[game_logic::pacman_xtile#0] -- vbuxx=pbuz1_derefidx_vbuz2
|
|
ldy.z pacman_xtile
|
|
lda (ytiles),y
|
|
tax
|
|
// if(TILES_TYPE[tile_id]==PILL)
|
|
// [190] if(TILES_TYPE[game_logic::tile_id#0]==PILL) goto game_logic::@49 -- pbuc1_derefidx_vbuxx_eq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #PILL
|
|
bne !__b49+
|
|
jmp __b49
|
|
!__b49:
|
|
// game_logic::@61
|
|
// if(TILES_TYPE[tile_id]==POWERUP)
|
|
// [191] if(TILES_TYPE[game_logic::tile_id#0]!=POWERUP) goto game_logic::@50 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #POWERUP
|
|
bne __b50
|
|
// game_logic::@62
|
|
// ytiles[pacman_xtile] = EMPTY
|
|
// [192] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY -- pbuz1_derefidx_vbuz2=vbuc1
|
|
// Empty the tile
|
|
lda #EMPTY
|
|
sta (ytiles),y
|
|
// pacman_xtile/2
|
|
// [193] game_logic::$65 = game_logic::pacman_xtile#0 >> 1 -- vbuaa=vbuz1_ror_1
|
|
tya
|
|
lsr
|
|
// logic_tile_xcol = pacman_xtile/2
|
|
// [194] logic_tile_xcol = game_logic::$65 -- vbuz1=vbuaa
|
|
// Ask the logic code renderer to update the tile
|
|
sta.z logic_tile_xcol
|
|
// pacman_xtile & 0xfe
|
|
// [195] game_logic::$66 = game_logic::pacman_xtile#0 & $fe -- vbuaa=vbuz1_band_vbuc1
|
|
lda #$fe
|
|
and.z pacman_xtile
|
|
// ytiles + (pacman_xtile & 0xfe)
|
|
// [196] game_logic::$67 = game_logic::ytiles#0 + game_logic::$66 -- pbuz1=pbuz1_plus_vbuaa
|
|
clc
|
|
adc.z __67
|
|
sta.z __67
|
|
bcc !+
|
|
inc.z __67+1
|
|
!:
|
|
// logic_tile_ptr = ytiles + (pacman_xtile & 0xfe)
|
|
// [197] logic_tile_ptr = game_logic::$67 -- pbuz1=pbuz2
|
|
lda.z __67
|
|
sta.z logic_tile_ptr
|
|
lda.z __67+1
|
|
sta.z logic_tile_ptr+1
|
|
// pacman_ytile*2
|
|
// [198] game_logic::$68 = game_logic::$210 -- vbuaa=vbuz1
|
|
lda.z __210
|
|
// logic_tile_yfine = pacman_ytile*2
|
|
// [199] logic_tile_yfine = game_logic::$68 -- vbuz1=vbuaa
|
|
sta.z logic_tile_yfine
|
|
// ghosts_mode = FRIGHTENED
|
|
// [200] ghosts_mode = FRIGHTENED -- vbuz1=vbuc1
|
|
// Start power-up mode
|
|
lda #FRIGHTENED
|
|
sta.z ghosts_mode
|
|
// ghosts_mode_count = 0
|
|
// [201] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
// game_logic::@50
|
|
__b50:
|
|
// pacman_xfine-ghost1_xfine
|
|
// [202] game_logic::$75 = pacman_xfine - ghost1_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost1_xfine
|
|
tax
|
|
// pacman_yfine-ghost1_yfine
|
|
// [203] game_logic::$77 = pacman_yfine - ghost1_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost1_yfine
|
|
tay
|
|
// if(ABS[pacman_xfine-ghost1_xfine]<2 && ABS[pacman_yfine-ghost1_yfine]<2)
|
|
// [204] if(ABS[game_logic::$75]>=2) goto game_logic::@64 -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
// Check if anyone dies
|
|
lda ABS,x
|
|
cmp #2
|
|
bcs __b64
|
|
// game_logic::@162
|
|
// [205] if(ABS[game_logic::$77]<2) goto game_logic::@51 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcs !__b51+
|
|
jmp __b51
|
|
!__b51:
|
|
// game_logic::@64
|
|
__b64:
|
|
// pacman_xfine-ghost2_xfine
|
|
// [206] game_logic::$80 = pacman_xfine - ghost2_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost2_xfine
|
|
tax
|
|
// pacman_yfine-ghost2_yfine
|
|
// [207] game_logic::$82 = pacman_yfine - ghost2_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost2_yfine
|
|
tay
|
|
// if(ABS[pacman_xfine-ghost2_xfine]<2 && ABS[pacman_yfine-ghost2_yfine]<2)
|
|
// [208] if(ABS[game_logic::$80]>=2) goto game_logic::@65 -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
lda ABS,x
|
|
cmp #2
|
|
bcs __b65
|
|
// game_logic::@163
|
|
// [209] if(ABS[game_logic::$82]<2) goto game_logic::@52 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcc __b52
|
|
// game_logic::@65
|
|
__b65:
|
|
// pacman_xfine-ghost3_xfine
|
|
// [210] game_logic::$85 = pacman_xfine - ghost3_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost3_xfine
|
|
tax
|
|
// pacman_yfine-ghost3_yfine
|
|
// [211] game_logic::$87 = pacman_yfine - ghost3_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost3_yfine
|
|
tay
|
|
// if(ABS[pacman_xfine-ghost3_xfine]<2 && ABS[pacman_yfine-ghost3_yfine]<2)
|
|
// [212] if(ABS[game_logic::$85]>=2) goto game_logic::@66 -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
lda ABS,x
|
|
cmp #2
|
|
bcs __b66
|
|
// game_logic::@164
|
|
// [213] if(ABS[game_logic::$87]<2) goto game_logic::@53 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcc __b53
|
|
// game_logic::@66
|
|
__b66:
|
|
// pacman_xfine-ghost4_xfine
|
|
// [214] game_logic::$90 = pacman_xfine - ghost4_xfine -- vbuxx=vbuz1_minus_vbuz2
|
|
lda.z pacman_xfine
|
|
sec
|
|
sbc.z ghost4_xfine
|
|
tax
|
|
// pacman_yfine-ghost4_yfine
|
|
// [215] game_logic::$92 = pacman_yfine - ghost4_yfine -- vbuyy=vbuz1_minus_vbuz2
|
|
lda.z pacman_yfine
|
|
sec
|
|
sbc.z ghost4_yfine
|
|
tay
|
|
// if(ABS[pacman_xfine-ghost4_xfine]<2 && ABS[pacman_yfine-ghost4_yfine]<2)
|
|
// [216] if(ABS[game_logic::$90]>=2) goto game_logic::@return -- pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
|
|
lda ABS,x
|
|
cmp #2
|
|
bcc !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@165
|
|
// [217] if(ABS[game_logic::$92]<2) goto game_logic::@67 -- pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
|
|
lda ABS,y
|
|
cmp #2
|
|
bcc __b67
|
|
rts
|
|
// game_logic::@67
|
|
__b67:
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [218] if(ghosts_mode==FRIGHTENED) goto game_logic::@54 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b54
|
|
// game_logic::@68
|
|
// pacman_lives--;
|
|
// [219] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// spawn_all()
|
|
// [220] call spawn_all
|
|
jsr spawn_all
|
|
rts
|
|
// game_logic::@54
|
|
__b54:
|
|
// ghost4_direction = STOP
|
|
// [221] ghost4_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost4_direction
|
|
// ghost4_xfine = 50
|
|
// [222] ghost4_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost4_xfine
|
|
// ghost4_yfine = 35
|
|
// [223] ghost4_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost4_yfine
|
|
// ghost4_substep = 0
|
|
// [224] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
// ghost4_respawn = 50
|
|
// [225] ghost4_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost4_respawn
|
|
rts
|
|
// game_logic::@53
|
|
__b53:
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [226] if(ghosts_mode==FRIGHTENED) goto game_logic::@55 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b55
|
|
// game_logic::@69
|
|
// pacman_lives--;
|
|
// [227] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// spawn_all()
|
|
// [228] call spawn_all
|
|
jsr spawn_all
|
|
rts
|
|
// game_logic::@55
|
|
__b55:
|
|
// ghost3_direction = STOP
|
|
// [229] ghost3_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost3_direction
|
|
// ghost3_xfine = 50
|
|
// [230] ghost3_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost3_xfine
|
|
// ghost3_yfine = 35
|
|
// [231] ghost3_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost3_yfine
|
|
// ghost3_substep = 0
|
|
// [232] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
// ghost3_respawn = 50
|
|
// [233] ghost3_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost3_respawn
|
|
rts
|
|
// game_logic::@52
|
|
__b52:
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [234] if(ghosts_mode==FRIGHTENED) goto game_logic::@56 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b56
|
|
// game_logic::@70
|
|
// pacman_lives--;
|
|
// [235] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// spawn_all()
|
|
// [236] call spawn_all
|
|
jsr spawn_all
|
|
rts
|
|
// game_logic::@56
|
|
__b56:
|
|
// ghost2_direction = STOP
|
|
// [237] ghost2_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z ghost2_direction
|
|
// ghost2_xfine = 50
|
|
// [238] ghost2_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost2_xfine
|
|
// ghost2_yfine = 35
|
|
// [239] ghost2_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost2_yfine
|
|
// ghost2_substep = 0
|
|
// [240] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
// ghost2_respawn = 50
|
|
// [241] ghost2_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost2_respawn
|
|
rts
|
|
// game_logic::@51
|
|
__b51:
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [242] if(ghosts_mode==FRIGHTENED) goto game_logic::@57 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b57
|
|
// game_logic::@71
|
|
// pacman_lives--;
|
|
// [243] pacman_lives = -- pacman_lives -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_lives
|
|
// spawn_all()
|
|
// [244] call spawn_all
|
|
jsr spawn_all
|
|
rts
|
|
// game_logic::@57
|
|
__b57:
|
|
// ghost1_direction = STOP
|
|
// [245] ghost1_direction = STOP -- vbuz1=vbuc1
|
|
// ghost dies
|
|
lda #STOP
|
|
sta.z ghost1_direction
|
|
// ghost1_xfine = 50
|
|
// [246] ghost1_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost1_xfine
|
|
// ghost1_yfine = 35
|
|
// [247] ghost1_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost1_yfine
|
|
// ghost1_substep = 0
|
|
// [248] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
// ghost1_respawn = 50
|
|
// [249] ghost1_respawn = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z ghost1_respawn
|
|
rts
|
|
// game_logic::@49
|
|
__b49:
|
|
// ytiles[pacman_xtile] = EMPTY
|
|
// [250] game_logic::ytiles#0[game_logic::pacman_xtile#0] = EMPTY -- pbuz1_derefidx_vbuz2=vbuc1
|
|
// Empty the tile
|
|
lda #EMPTY
|
|
ldy.z pacman_xtile
|
|
sta (ytiles),y
|
|
// pacman_xtile/2
|
|
// [251] game_logic::$69 = game_logic::pacman_xtile#0 >> 1 -- vbuaa=vbuz1_ror_1
|
|
tya
|
|
lsr
|
|
// logic_tile_xcol = pacman_xtile/2
|
|
// [252] logic_tile_xcol = game_logic::$69 -- vbuz1=vbuaa
|
|
// Ask the logic code renderer to update the tile
|
|
sta.z logic_tile_xcol
|
|
// pacman_xtile & 0xfe
|
|
// [253] game_logic::$70 = game_logic::pacman_xtile#0 & $fe -- vbuaa=vbuz1_band_vbuc1
|
|
lda #$fe
|
|
and.z pacman_xtile
|
|
// ytiles + (pacman_xtile & 0xfe)
|
|
// [254] game_logic::$71 = game_logic::ytiles#0 + game_logic::$70 -- pbuz1=pbuz1_plus_vbuaa
|
|
clc
|
|
adc.z __71
|
|
sta.z __71
|
|
bcc !+
|
|
inc.z __71+1
|
|
!:
|
|
// logic_tile_ptr = ytiles + (pacman_xtile & 0xfe)
|
|
// [255] logic_tile_ptr = game_logic::$71 -- pbuz1=pbuz2
|
|
lda.z __71
|
|
sta.z logic_tile_ptr
|
|
lda.z __71+1
|
|
sta.z logic_tile_ptr+1
|
|
// pacman_ytile*2
|
|
// [256] game_logic::$72 = game_logic::$210 -- vbuaa=vbuz1
|
|
lda.z __210
|
|
// logic_tile_yfine = pacman_ytile*2
|
|
// [257] logic_tile_yfine = game_logic::$72 -- vbuz1=vbuaa
|
|
sta.z logic_tile_yfine
|
|
// if(--pill_count==0)
|
|
// [258] pill_count = -- pill_count -- vwuz1=_dec_vwuz1
|
|
lda.z pill_count
|
|
bne !+
|
|
dec.z pill_count+1
|
|
!:
|
|
dec.z pill_count
|
|
// [259] if(pill_count!=0) goto game_logic::@50 -- vwuz1_neq_0_then_la1
|
|
lda.z pill_count
|
|
ora.z pill_count+1
|
|
beq !__b50+
|
|
jmp __b50
|
|
!__b50:
|
|
// game_logic::@63
|
|
// pacman_wins = 1
|
|
// [260] pacman_wins = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z pacman_wins
|
|
jmp __b50
|
|
// game_logic::@46
|
|
__b46:
|
|
// if(ghosts_mode_count>150)
|
|
// [261] if(ghosts_mode_count<$96+1) goto game_logic::@47 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ghosts_mode_count
|
|
cmp #$96+1
|
|
bcs !__b9+
|
|
jmp __b9
|
|
!__b9:
|
|
// game_logic::@58
|
|
// ghosts_mode = SCATTER
|
|
// [262] ghosts_mode = SCATTER -- vbuz1=vbuc1
|
|
lda #SCATTER
|
|
sta.z ghosts_mode
|
|
// ghosts_mode_count = 0
|
|
// [263] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
jmp __b8
|
|
// game_logic::@45
|
|
__b45:
|
|
// if(ghosts_mode_count>50)
|
|
// [264] if(ghosts_mode_count<$32+1) goto game_logic::@47 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ghosts_mode_count
|
|
cmp #$32+1
|
|
bcs !__b9+
|
|
jmp __b9
|
|
!__b9:
|
|
// game_logic::@59
|
|
// ghosts_mode = CHASE
|
|
// [265] ghosts_mode = CHASE -- vbuz1=vbuc1
|
|
lda #CHASE
|
|
sta.z ghosts_mode
|
|
// ghosts_mode_count = 0
|
|
// [266] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
jmp __b8
|
|
// game_logic::@6
|
|
__b6:
|
|
// if(ghost4_respawn)
|
|
// [267] if(0!=ghost4_respawn) goto game_logic::@72 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost4_respawn
|
|
beq !__b72+
|
|
jmp __b72
|
|
!__b72:
|
|
// game_logic::@20
|
|
// if(ghost4_direction==RIGHT)
|
|
// [268] if(ghost4_direction==RIGHT) goto game_logic::@73 -- vbuz1_eq_vbuc1_then_la1
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost4_direction
|
|
bne !__b73+
|
|
jmp __b73
|
|
!__b73:
|
|
// game_logic::@21
|
|
// if(ghost4_direction==DOWN)
|
|
// [269] if(ghost4_direction==DOWN) goto game_logic::@74 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost4_direction
|
|
bne !__b74+
|
|
jmp __b74
|
|
!__b74:
|
|
// game_logic::@22
|
|
// if(ghost4_direction==LEFT)
|
|
// [270] if(ghost4_direction==LEFT) goto game_logic::@75 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost4_direction
|
|
bne !__b75+
|
|
jmp __b75
|
|
!__b75:
|
|
// game_logic::@23
|
|
// if(ghost4_direction==UP)
|
|
// [271] if(ghost4_direction!=UP) goto game_logic::@76 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost4_direction
|
|
bne __b76
|
|
// game_logic::@24
|
|
// --ghost4_yfine;
|
|
// [272] ghost4_yfine = -- ghost4_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost4_yfine
|
|
// game_logic::@76
|
|
__b76:
|
|
// ghost4_direction!=STOP
|
|
// [273] game_logic::$220 = ghost4_direction -- vbuxx=vbuz1
|
|
ldx.z ghost4_direction
|
|
// if(ghost4_substep==0 && ghost4_direction!=STOP)
|
|
// [274] if(ghost4_substep!=0) goto game_logic::@82 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost4_substep
|
|
bne __b82
|
|
// game_logic::@166
|
|
// [275] if(game_logic::$220!=STOP) goto game_logic::@77 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b77
|
|
// game_logic::@82
|
|
__b82:
|
|
// ghost4_substep = 0
|
|
// [276] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
// if(ghost4_reverse)
|
|
// [277] if(0!=ghost4_reverse) goto game_logic::@78 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost4_reverse
|
|
bne __b78
|
|
// game_logic::@83
|
|
// char ghost4_xtile = ghost4_xfine/2
|
|
// [278] game_logic::ghost4_xtile#0 = ghost4_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost4_xfine
|
|
lsr
|
|
sta.z ghost4_xtile
|
|
// char ghost4_ytile = ghost4_yfine/2
|
|
// [279] game_logic::ghost4_ytile#0 = ghost4_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost4_yfine
|
|
lsr
|
|
sta.z ghost4_ytile
|
|
// char open_directions = level_tile_directions(ghost4_xtile, ghost4_ytile)
|
|
// [280] level_tile_directions::xtile#0 = game_logic::ghost4_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost4_xtile
|
|
// [281] level_tile_directions::ytile#0 = game_logic::ghost4_ytile#0 -- vbuaa=vbuz1
|
|
// [282] call level_tile_directions
|
|
// [740] phi from game_logic::@83 to level_tile_directions [phi:game_logic::@83->level_tile_directions]
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#0 [phi:game_logic::@83->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#0 [phi:game_logic::@83->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// char open_directions = level_tile_directions(ghost4_xtile, ghost4_ytile)
|
|
// [283] level_tile_directions::return#3 = level_tile_directions::return#2
|
|
// game_logic::@152
|
|
// [284] game_logic::open_directions#0 = level_tile_directions::return#3
|
|
// open_directions &= DIRECTION_ELIMINATE[ghost4_direction]
|
|
// [285] game_logic::open_directions#1 = game_logic::open_directions#0 & DIRECTION_ELIMINATE[ghost4_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost4_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [286] if(ghosts_mode==FRIGHTENED) goto game_logic::@79 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b79
|
|
// game_logic::@84
|
|
// if(ghosts_mode==SCATTER)
|
|
// [287] if(ghosts_mode==SCATTER) goto game_logic::@80 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b10
|
|
// game_logic::@85
|
|
// target_xtile = pacman_xfine/2
|
|
// [288] game_logic::target_xtile#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// target_ytile = pacman_yfine/2
|
|
// [289] game_logic::target_ytile#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile
|
|
// [290] phi from game_logic::@85 to game_logic::@80 [phi:game_logic::@85->game_logic::@80]
|
|
// [290] phi game_logic::target_ytile#3 = game_logic::target_ytile#2 [phi:game_logic::@85->game_logic::@80#0] -- register_copy
|
|
// [290] phi game_logic::target_xtile#3 = game_logic::target_xtile#2 [phi:game_logic::@85->game_logic::@80#1] -- register_copy
|
|
jmp __b80
|
|
// [290] phi from game_logic::@84 to game_logic::@80 [phi:game_logic::@84->game_logic::@80]
|
|
__b10:
|
|
// [290] phi game_logic::target_ytile#3 = 2 [phi:game_logic::@84->game_logic::@80#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile
|
|
// [290] phi game_logic::target_xtile#3 = 2 [phi:game_logic::@84->game_logic::@80#1] -- vbuxx=vbuc1
|
|
tax
|
|
// game_logic::@80
|
|
__b80:
|
|
// choose_direction( open_directions, ghost4_xtile, ghost4_ytile, target_xtile, target_ytile )
|
|
// [291] choose_direction::open_directions#0 = game_logic::open_directions#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [292] choose_direction::ghost_xtile#0 = game_logic::ghost4_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost4_xtile
|
|
// [293] choose_direction::ghost_ytile#0 = game_logic::ghost4_ytile#0
|
|
// [294] choose_direction::target_xtile#0 = game_logic::target_xtile#3
|
|
// [295] choose_direction::target_ytile#0 = game_logic::target_ytile#3
|
|
// [296] call choose_direction
|
|
// [748] phi from game_logic::@80 to choose_direction [phi:game_logic::@80->choose_direction]
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#0 [phi:game_logic::@80->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#0 [phi:game_logic::@80->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#0 [phi:game_logic::@80->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#0 [phi:game_logic::@80->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#0 [phi:game_logic::@80->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// choose_direction( open_directions, ghost4_xtile, ghost4_ytile, target_xtile, target_ytile )
|
|
// [297] choose_direction::return#0 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
// game_logic::@153
|
|
// [298] game_logic::$119 = choose_direction::return#0
|
|
// ghost4_direction = choose_direction( open_directions, ghost4_xtile, ghost4_ytile, target_xtile, target_ytile )
|
|
// [299] ghost4_direction = game_logic::$119 -- vbuz1=vbuaa
|
|
sta.z ghost4_direction
|
|
rts
|
|
// game_logic::@79
|
|
__b79:
|
|
// ghost4_direction = DIRECTION_SINGLE[open_directions]
|
|
// [300] ghost4_direction = DIRECTION_SINGLE[game_logic::open_directions#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost4_direction
|
|
rts
|
|
// game_logic::@78
|
|
__b78:
|
|
// ghost4_direction = DIRECTION_REVERSE[ghost4_direction]
|
|
// [301] ghost4_direction = DIRECTION_REVERSE[ghost4_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost4_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost4_direction
|
|
// ghost4_reverse = 0
|
|
// [302] ghost4_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_reverse
|
|
rts
|
|
// game_logic::@77
|
|
__b77:
|
|
// ghost4_substep = 1
|
|
// [303] ghost4_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost4_substep
|
|
// if(ghost4_xfine==1)
|
|
// [304] if(ghost4_xfine==1) goto game_logic::@81 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
cmp.z ghost4_xfine
|
|
beq __b81
|
|
// game_logic::@86
|
|
// if(ghost4_xfine==97)
|
|
// [305] if(ghost4_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost4_xfine
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@87
|
|
// ghost4_xfine = 1
|
|
// [306] ghost4_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost4_xfine
|
|
rts
|
|
// game_logic::@81
|
|
__b81:
|
|
// ghost4_xfine = 97
|
|
// [307] ghost4_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost4_xfine
|
|
rts
|
|
// game_logic::@75
|
|
__b75:
|
|
// --ghost4_xfine;
|
|
// [308] ghost4_xfine = -- ghost4_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost4_xfine
|
|
jmp __b76
|
|
// game_logic::@74
|
|
__b74:
|
|
// ++ghost4_yfine;
|
|
// [309] ghost4_yfine = ++ ghost4_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost4_yfine
|
|
jmp __b76
|
|
// game_logic::@73
|
|
__b73:
|
|
// ++ghost4_xfine;
|
|
// [310] ghost4_xfine = ++ ghost4_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost4_xfine
|
|
jmp __b76
|
|
// game_logic::@72
|
|
__b72:
|
|
// if(--ghost4_respawn==0)
|
|
// [311] ghost4_respawn = -- ghost4_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost4_respawn
|
|
// [312] if(ghost4_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost4_respawn
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@88
|
|
// ghost4_direction = RIGHT
|
|
// [313] ghost4_direction = RIGHT -- vbuz1=vbuc1
|
|
// Spawn ghost
|
|
lda #RIGHT
|
|
sta.z ghost4_direction
|
|
// ghost4_xfine = 2
|
|
// [314] ghost4_xfine = 2 -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z ghost4_xfine
|
|
// ghost4_yfine = 2
|
|
// [315] ghost4_yfine = 2 -- vbuz1=vbuc1
|
|
sta.z ghost4_yfine
|
|
// ghost4_substep = 0
|
|
// [316] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost4_substep
|
|
rts
|
|
// game_logic::@5
|
|
__b5:
|
|
// if(ghost3_respawn)
|
|
// [317] if(0!=ghost3_respawn) goto game_logic::@89 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost3_respawn
|
|
beq !__b89+
|
|
jmp __b89
|
|
!__b89:
|
|
// game_logic::@25
|
|
// if(ghost3_direction==RIGHT)
|
|
// [318] if(ghost3_direction==RIGHT) goto game_logic::@90 -- vbuz1_eq_vbuc1_then_la1
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost3_direction
|
|
bne !__b90+
|
|
jmp __b90
|
|
!__b90:
|
|
// game_logic::@26
|
|
// if(ghost3_direction==DOWN)
|
|
// [319] if(ghost3_direction==DOWN) goto game_logic::@91 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost3_direction
|
|
bne !__b91+
|
|
jmp __b91
|
|
!__b91:
|
|
// game_logic::@27
|
|
// if(ghost3_direction==LEFT)
|
|
// [320] if(ghost3_direction==LEFT) goto game_logic::@92 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost3_direction
|
|
bne !__b92+
|
|
jmp __b92
|
|
!__b92:
|
|
// game_logic::@28
|
|
// if(ghost3_direction==UP)
|
|
// [321] if(ghost3_direction!=UP) goto game_logic::@93 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost3_direction
|
|
bne __b93
|
|
// game_logic::@29
|
|
// --ghost3_yfine;
|
|
// [322] ghost3_yfine = -- ghost3_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost3_yfine
|
|
// game_logic::@93
|
|
__b93:
|
|
// ghost3_direction!=STOP
|
|
// [323] game_logic::$223 = ghost3_direction -- vbuxx=vbuz1
|
|
ldx.z ghost3_direction
|
|
// if(ghost3_substep==0 && ghost3_direction!=STOP)
|
|
// [324] if(ghost3_substep!=0) goto game_logic::@99 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost3_substep
|
|
bne __b99
|
|
// game_logic::@167
|
|
// [325] if(game_logic::$223!=STOP) goto game_logic::@94 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b94
|
|
// game_logic::@99
|
|
__b99:
|
|
// ghost3_substep = 0
|
|
// [326] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
// if(ghost3_reverse)
|
|
// [327] if(0!=ghost3_reverse) goto game_logic::@95 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost3_reverse
|
|
bne __b95
|
|
// game_logic::@100
|
|
// char ghost3_xtile = ghost3_xfine/2
|
|
// [328] game_logic::ghost3_xtile#0 = ghost3_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost3_xfine
|
|
lsr
|
|
sta.z ghost3_xtile
|
|
// char ghost3_ytile = ghost3_yfine/2
|
|
// [329] game_logic::ghost3_ytile#0 = ghost3_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost3_yfine
|
|
lsr
|
|
sta.z ghost3_ytile
|
|
// char open_directions = level_tile_directions(ghost3_xtile, ghost3_ytile)
|
|
// [330] level_tile_directions::xtile#1 = game_logic::ghost3_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost3_xtile
|
|
// [331] level_tile_directions::ytile#1 = game_logic::ghost3_ytile#0 -- vbuaa=vbuz1
|
|
// [332] call level_tile_directions
|
|
// [740] phi from game_logic::@100 to level_tile_directions [phi:game_logic::@100->level_tile_directions]
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#1 [phi:game_logic::@100->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#1 [phi:game_logic::@100->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// char open_directions = level_tile_directions(ghost3_xtile, ghost3_ytile)
|
|
// [333] level_tile_directions::return#10 = level_tile_directions::return#2
|
|
// game_logic::@154
|
|
// [334] game_logic::open_directions1#0 = level_tile_directions::return#10
|
|
// open_directions &= DIRECTION_ELIMINATE[ghost3_direction]
|
|
// [335] game_logic::open_directions1#1 = game_logic::open_directions1#0 & DIRECTION_ELIMINATE[ghost3_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost3_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [336] if(ghosts_mode==FRIGHTENED) goto game_logic::@96 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b96
|
|
// game_logic::@101
|
|
// if(ghosts_mode==SCATTER)
|
|
// [337] if(ghosts_mode==SCATTER) goto game_logic::@97 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b11
|
|
// game_logic::@102
|
|
// target_xtile = pacman_xfine/2
|
|
// [338] game_logic::target_xtile1#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// target_ytile = pacman_yfine/2
|
|
// [339] game_logic::target_ytile1#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile1
|
|
// [340] phi from game_logic::@102 to game_logic::@97 [phi:game_logic::@102->game_logic::@97]
|
|
// [340] phi game_logic::target_ytile1#3 = game_logic::target_ytile1#2 [phi:game_logic::@102->game_logic::@97#0] -- register_copy
|
|
// [340] phi game_logic::target_xtile1#3 = game_logic::target_xtile1#2 [phi:game_logic::@102->game_logic::@97#1] -- register_copy
|
|
jmp __b97
|
|
// [340] phi from game_logic::@101 to game_logic::@97 [phi:game_logic::@101->game_logic::@97]
|
|
__b11:
|
|
// [340] phi game_logic::target_ytile1#3 = 2 [phi:game_logic::@101->game_logic::@97#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile1
|
|
// [340] phi game_logic::target_xtile1#3 = 2 [phi:game_logic::@101->game_logic::@97#1] -- vbuxx=vbuc1
|
|
tax
|
|
// game_logic::@97
|
|
__b97:
|
|
// choose_direction( open_directions, ghost3_xtile, ghost3_ytile, target_xtile, target_ytile )
|
|
// [341] choose_direction::open_directions#1 = game_logic::open_directions1#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [342] choose_direction::ghost_xtile#1 = game_logic::ghost3_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost3_xtile
|
|
// [343] choose_direction::ghost_ytile#1 = game_logic::ghost3_ytile#0
|
|
// [344] choose_direction::target_xtile#1 = game_logic::target_xtile1#3
|
|
// [345] choose_direction::target_ytile#1 = game_logic::target_ytile1#3
|
|
// [346] call choose_direction
|
|
// [748] phi from game_logic::@97 to choose_direction [phi:game_logic::@97->choose_direction]
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#1 [phi:game_logic::@97->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#1 [phi:game_logic::@97->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#1 [phi:game_logic::@97->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#1 [phi:game_logic::@97->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#1 [phi:game_logic::@97->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// choose_direction( open_directions, ghost3_xtile, ghost3_ytile, target_xtile, target_ytile )
|
|
// [347] choose_direction::return#1 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
// game_logic::@155
|
|
// [348] game_logic::$140 = choose_direction::return#1
|
|
// ghost3_direction = choose_direction( open_directions, ghost3_xtile, ghost3_ytile, target_xtile, target_ytile )
|
|
// [349] ghost3_direction = game_logic::$140 -- vbuz1=vbuaa
|
|
sta.z ghost3_direction
|
|
rts
|
|
// game_logic::@96
|
|
__b96:
|
|
// ghost3_direction = DIRECTION_SINGLE[open_directions]
|
|
// [350] ghost3_direction = DIRECTION_SINGLE[game_logic::open_directions1#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost3_direction
|
|
rts
|
|
// game_logic::@95
|
|
__b95:
|
|
// ghost3_direction = DIRECTION_REVERSE[ghost3_direction]
|
|
// [351] ghost3_direction = DIRECTION_REVERSE[ghost3_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost3_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost3_direction
|
|
// ghost3_reverse = 0
|
|
// [352] ghost3_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_reverse
|
|
rts
|
|
// game_logic::@94
|
|
__b94:
|
|
// ghost3_substep = 1
|
|
// [353] ghost3_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost3_substep
|
|
// if(ghost3_xfine==1)
|
|
// [354] if(ghost3_xfine==1) goto game_logic::@98 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
cmp.z ghost3_xfine
|
|
beq __b98
|
|
// game_logic::@103
|
|
// if(ghost3_xfine==97)
|
|
// [355] if(ghost3_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost3_xfine
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@104
|
|
// ghost3_xfine = 1
|
|
// [356] ghost3_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost3_xfine
|
|
rts
|
|
// game_logic::@98
|
|
__b98:
|
|
// ghost3_xfine = 97
|
|
// [357] ghost3_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost3_xfine
|
|
rts
|
|
// game_logic::@92
|
|
__b92:
|
|
// --ghost3_xfine;
|
|
// [358] ghost3_xfine = -- ghost3_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost3_xfine
|
|
jmp __b93
|
|
// game_logic::@91
|
|
__b91:
|
|
// ++ghost3_yfine;
|
|
// [359] ghost3_yfine = ++ ghost3_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost3_yfine
|
|
jmp __b93
|
|
// game_logic::@90
|
|
__b90:
|
|
// ++ghost3_xfine;
|
|
// [360] ghost3_xfine = ++ ghost3_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost3_xfine
|
|
jmp __b93
|
|
// game_logic::@89
|
|
__b89:
|
|
// if(--ghost3_respawn==0)
|
|
// [361] ghost3_respawn = -- ghost3_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost3_respawn
|
|
// [362] if(ghost3_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost3_respawn
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@105
|
|
// ghost3_direction = UP
|
|
// [363] ghost3_direction = UP -- vbuz1=vbuc1
|
|
// Spawn ghost
|
|
lda #UP
|
|
sta.z ghost3_direction
|
|
// ghost3_xfine = 2
|
|
// [364] ghost3_xfine = 2 -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z ghost3_xfine
|
|
// ghost3_yfine = 70
|
|
// [365] ghost3_yfine = $46 -- vbuz1=vbuc1
|
|
lda #$46
|
|
sta.z ghost3_yfine
|
|
// ghost3_substep = 0
|
|
// [366] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost3_substep
|
|
rts
|
|
// game_logic::@4
|
|
__b4:
|
|
// if(ghost2_respawn)
|
|
// [367] if(0!=ghost2_respawn) goto game_logic::@106 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost2_respawn
|
|
beq !__b106+
|
|
jmp __b106
|
|
!__b106:
|
|
// game_logic::@30
|
|
// if(ghost2_direction==RIGHT)
|
|
// [368] if(ghost2_direction==RIGHT) goto game_logic::@107 -- vbuz1_eq_vbuc1_then_la1
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost2_direction
|
|
bne !__b107+
|
|
jmp __b107
|
|
!__b107:
|
|
// game_logic::@31
|
|
// if(ghost2_direction==DOWN)
|
|
// [369] if(ghost2_direction==DOWN) goto game_logic::@108 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost2_direction
|
|
bne !__b108+
|
|
jmp __b108
|
|
!__b108:
|
|
// game_logic::@32
|
|
// if(ghost2_direction==LEFT)
|
|
// [370] if(ghost2_direction==LEFT) goto game_logic::@109 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost2_direction
|
|
bne !__b109+
|
|
jmp __b109
|
|
!__b109:
|
|
// game_logic::@33
|
|
// if(ghost2_direction==UP)
|
|
// [371] if(ghost2_direction!=UP) goto game_logic::@110 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost2_direction
|
|
bne __b110
|
|
// game_logic::@34
|
|
// --ghost2_yfine;
|
|
// [372] ghost2_yfine = -- ghost2_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost2_yfine
|
|
// game_logic::@110
|
|
__b110:
|
|
// ghost2_direction!=STOP
|
|
// [373] game_logic::$226 = ghost2_direction -- vbuxx=vbuz1
|
|
ldx.z ghost2_direction
|
|
// if(ghost2_substep==0 && ghost2_direction!=STOP)
|
|
// [374] if(ghost2_substep!=0) goto game_logic::@116 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost2_substep
|
|
bne __b116
|
|
// game_logic::@168
|
|
// [375] if(game_logic::$226!=STOP) goto game_logic::@111 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b111
|
|
// game_logic::@116
|
|
__b116:
|
|
// ghost2_substep = 0
|
|
// [376] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
// if(ghost2_reverse)
|
|
// [377] if(0!=ghost2_reverse) goto game_logic::@112 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost2_reverse
|
|
bne __b112
|
|
// game_logic::@117
|
|
// char ghost2_xtile = ghost2_xfine/2
|
|
// [378] game_logic::ghost2_xtile#0 = ghost2_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost2_xfine
|
|
lsr
|
|
sta.z ghost2_xtile
|
|
// char ghost2_ytile = ghost2_yfine/2
|
|
// [379] game_logic::ghost2_ytile#0 = ghost2_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost2_yfine
|
|
lsr
|
|
sta.z ghost2_ytile
|
|
// char open_directions = level_tile_directions(ghost2_xtile, ghost2_ytile)
|
|
// [380] level_tile_directions::xtile#2 = game_logic::ghost2_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost2_xtile
|
|
// [381] level_tile_directions::ytile#2 = game_logic::ghost2_ytile#0 -- vbuaa=vbuz1
|
|
// [382] call level_tile_directions
|
|
// [740] phi from game_logic::@117 to level_tile_directions [phi:game_logic::@117->level_tile_directions]
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#2 [phi:game_logic::@117->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#2 [phi:game_logic::@117->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// char open_directions = level_tile_directions(ghost2_xtile, ghost2_ytile)
|
|
// [383] level_tile_directions::return#11 = level_tile_directions::return#2
|
|
// game_logic::@156
|
|
// [384] game_logic::open_directions2#0 = level_tile_directions::return#11
|
|
// open_directions &= DIRECTION_ELIMINATE[ghost2_direction]
|
|
// [385] game_logic::open_directions2#1 = game_logic::open_directions2#0 & DIRECTION_ELIMINATE[ghost2_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost2_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [386] if(ghosts_mode==FRIGHTENED) goto game_logic::@113 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b113
|
|
// game_logic::@118
|
|
// if(ghosts_mode==SCATTER)
|
|
// [387] if(ghosts_mode==SCATTER) goto game_logic::@114 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b12
|
|
// game_logic::@119
|
|
// target_xtile = pacman_xfine/2
|
|
// [388] game_logic::target_xtile2#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// target_ytile = pacman_yfine/2
|
|
// [389] game_logic::target_ytile2#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile2
|
|
// [390] phi from game_logic::@119 to game_logic::@114 [phi:game_logic::@119->game_logic::@114]
|
|
// [390] phi game_logic::target_ytile2#3 = game_logic::target_ytile2#2 [phi:game_logic::@119->game_logic::@114#0] -- register_copy
|
|
// [390] phi game_logic::target_xtile2#3 = game_logic::target_xtile2#2 [phi:game_logic::@119->game_logic::@114#1] -- register_copy
|
|
jmp __b114
|
|
// [390] phi from game_logic::@118 to game_logic::@114 [phi:game_logic::@118->game_logic::@114]
|
|
__b12:
|
|
// [390] phi game_logic::target_ytile2#3 = 2 [phi:game_logic::@118->game_logic::@114#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile2
|
|
// [390] phi game_logic::target_xtile2#3 = 2 [phi:game_logic::@118->game_logic::@114#1] -- vbuxx=vbuc1
|
|
tax
|
|
// game_logic::@114
|
|
__b114:
|
|
// choose_direction( open_directions, ghost2_xtile, ghost2_ytile, target_xtile, target_ytile )
|
|
// [391] choose_direction::open_directions#2 = game_logic::open_directions2#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [392] choose_direction::ghost_xtile#2 = game_logic::ghost2_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost2_xtile
|
|
// [393] choose_direction::ghost_ytile#2 = game_logic::ghost2_ytile#0
|
|
// [394] choose_direction::target_xtile#2 = game_logic::target_xtile2#3
|
|
// [395] choose_direction::target_ytile#2 = game_logic::target_ytile2#3
|
|
// [396] call choose_direction
|
|
// [748] phi from game_logic::@114 to choose_direction [phi:game_logic::@114->choose_direction]
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#2 [phi:game_logic::@114->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#2 [phi:game_logic::@114->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#2 [phi:game_logic::@114->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#2 [phi:game_logic::@114->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#2 [phi:game_logic::@114->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// choose_direction( open_directions, ghost2_xtile, ghost2_ytile, target_xtile, target_ytile )
|
|
// [397] choose_direction::return#2 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
// game_logic::@157
|
|
// [398] game_logic::$161 = choose_direction::return#2
|
|
// ghost2_direction = choose_direction( open_directions, ghost2_xtile, ghost2_ytile, target_xtile, target_ytile )
|
|
// [399] ghost2_direction = game_logic::$161 -- vbuz1=vbuaa
|
|
sta.z ghost2_direction
|
|
rts
|
|
// game_logic::@113
|
|
__b113:
|
|
// ghost2_direction = DIRECTION_SINGLE[open_directions]
|
|
// [400] ghost2_direction = DIRECTION_SINGLE[game_logic::open_directions2#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost2_direction
|
|
rts
|
|
// game_logic::@112
|
|
__b112:
|
|
// ghost2_direction = DIRECTION_REVERSE[ghost2_direction]
|
|
// [401] ghost2_direction = DIRECTION_REVERSE[ghost2_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost2_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost2_direction
|
|
// ghost2_reverse = 0
|
|
// [402] ghost2_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_reverse
|
|
rts
|
|
// game_logic::@111
|
|
__b111:
|
|
// ghost2_substep = 1
|
|
// [403] ghost2_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost2_substep
|
|
// if(ghost2_xfine==1)
|
|
// [404] if(ghost2_xfine==1) goto game_logic::@115 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
cmp.z ghost2_xfine
|
|
beq __b115
|
|
// game_logic::@120
|
|
// if(ghost2_xfine==97)
|
|
// [405] if(ghost2_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost2_xfine
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@121
|
|
// ghost2_xfine = 1
|
|
// [406] ghost2_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost2_xfine
|
|
rts
|
|
// game_logic::@115
|
|
__b115:
|
|
// ghost2_xfine = 97
|
|
// [407] ghost2_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost2_xfine
|
|
rts
|
|
// game_logic::@109
|
|
__b109:
|
|
// --ghost2_xfine;
|
|
// [408] ghost2_xfine = -- ghost2_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost2_xfine
|
|
jmp __b110
|
|
// game_logic::@108
|
|
__b108:
|
|
// ++ghost2_yfine;
|
|
// [409] ghost2_yfine = ++ ghost2_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost2_yfine
|
|
jmp __b110
|
|
// game_logic::@107
|
|
__b107:
|
|
// ++ghost2_xfine;
|
|
// [410] ghost2_xfine = ++ ghost2_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost2_xfine
|
|
jmp __b110
|
|
// game_logic::@106
|
|
__b106:
|
|
// if(--ghost2_respawn==0)
|
|
// [411] ghost2_respawn = -- ghost2_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost2_respawn
|
|
// [412] if(ghost2_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost2_respawn
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@122
|
|
// ghost2_direction = LEFT
|
|
// [413] ghost2_direction = LEFT -- vbuz1=vbuc1
|
|
// Spawn ghost
|
|
lda #LEFT
|
|
sta.z ghost2_direction
|
|
// ghost2_xfine = 96
|
|
// [414] ghost2_xfine = $60 -- vbuz1=vbuc1
|
|
lda #$60
|
|
sta.z ghost2_xfine
|
|
// ghost2_yfine = 70
|
|
// [415] ghost2_yfine = $46 -- vbuz1=vbuc1
|
|
lda #$46
|
|
sta.z ghost2_yfine
|
|
// ghost2_substep = 0
|
|
// [416] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost2_substep
|
|
rts
|
|
// game_logic::@3
|
|
__b3:
|
|
// if(ghost1_respawn)
|
|
// [417] if(0!=ghost1_respawn) goto game_logic::@123 -- 0_neq_vbuz1_then_la1
|
|
// Ghost spawn timer
|
|
lda.z ghost1_respawn
|
|
beq !__b123+
|
|
jmp __b123
|
|
!__b123:
|
|
// game_logic::@35
|
|
// if(ghost1_direction==RIGHT)
|
|
// [418] if(ghost1_direction==RIGHT) goto game_logic::@124 -- vbuz1_eq_vbuc1_then_la1
|
|
// Ghost 1 animation
|
|
// Move in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z ghost1_direction
|
|
bne !__b124+
|
|
jmp __b124
|
|
!__b124:
|
|
// game_logic::@36
|
|
// if(ghost1_direction==DOWN)
|
|
// [419] if(ghost1_direction==DOWN) goto game_logic::@125 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z ghost1_direction
|
|
bne !__b125+
|
|
jmp __b125
|
|
!__b125:
|
|
// game_logic::@37
|
|
// if(ghost1_direction==LEFT)
|
|
// [420] if(ghost1_direction==LEFT) goto game_logic::@126 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z ghost1_direction
|
|
bne !__b126+
|
|
jmp __b126
|
|
!__b126:
|
|
// game_logic::@38
|
|
// if(ghost1_direction==UP)
|
|
// [421] if(ghost1_direction!=UP) goto game_logic::@127 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z ghost1_direction
|
|
bne __b127
|
|
// game_logic::@39
|
|
// --ghost1_yfine;
|
|
// [422] ghost1_yfine = -- ghost1_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost1_yfine
|
|
// game_logic::@127
|
|
__b127:
|
|
// ghost1_direction!=STOP
|
|
// [423] game_logic::$229 = ghost1_direction -- vbuxx=vbuz1
|
|
ldx.z ghost1_direction
|
|
// if(ghost1_substep==0 && ghost1_direction!=STOP)
|
|
// [424] if(ghost1_substep!=0) goto game_logic::@133 -- vbuz1_neq_0_then_la1
|
|
lda.z ghost1_substep
|
|
bne __b133
|
|
// game_logic::@169
|
|
// [425] if(game_logic::$229!=STOP) goto game_logic::@128 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b128
|
|
// game_logic::@133
|
|
__b133:
|
|
// ghost1_substep = 0
|
|
// [426] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
// Ghost is on a tile
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
// if(ghost1_reverse)
|
|
// [427] if(0!=ghost1_reverse) goto game_logic::@129 -- 0_neq_vbuz1_then_la1
|
|
lda.z ghost1_reverse
|
|
bne __b129
|
|
// game_logic::@134
|
|
// char ghost1_xtile = ghost1_xfine/2
|
|
// [428] game_logic::ghost1_xtile#0 = ghost1_xfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z ghost1_xfine
|
|
lsr
|
|
sta.z ghost1_xtile
|
|
// char ghost1_ytile = ghost1_yfine/2
|
|
// [429] game_logic::ghost1_ytile#0 = ghost1_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z ghost1_yfine
|
|
lsr
|
|
sta.z ghost1_ytile
|
|
// char open_directions = level_tile_directions(ghost1_xtile, ghost1_ytile)
|
|
// [430] level_tile_directions::xtile#3 = game_logic::ghost1_xtile#0 -- vbuxx=vbuz1
|
|
ldx.z ghost1_xtile
|
|
// [431] level_tile_directions::ytile#3 = game_logic::ghost1_ytile#0 -- vbuaa=vbuz1
|
|
// [432] call level_tile_directions
|
|
// [740] phi from game_logic::@134 to level_tile_directions [phi:game_logic::@134->level_tile_directions]
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#3 [phi:game_logic::@134->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#3 [phi:game_logic::@134->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// char open_directions = level_tile_directions(ghost1_xtile, ghost1_ytile)
|
|
// [433] level_tile_directions::return#12 = level_tile_directions::return#2
|
|
// game_logic::@158
|
|
// [434] game_logic::open_directions3#0 = level_tile_directions::return#12
|
|
// open_directions &= DIRECTION_ELIMINATE[ghost1_direction]
|
|
// [435] game_logic::open_directions3#1 = game_logic::open_directions3#0 & DIRECTION_ELIMINATE[ghost1_direction] -- vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
|
|
// Eliminate the direction ghost came from
|
|
ldy.z ghost1_direction
|
|
and DIRECTION_ELIMINATE,y
|
|
tay
|
|
// if(ghosts_mode==FRIGHTENED)
|
|
// [436] if(ghosts_mode==FRIGHTENED) goto game_logic::@130 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #FRIGHTENED
|
|
cmp.z ghosts_mode
|
|
beq __b130
|
|
// game_logic::@135
|
|
// if(ghosts_mode==SCATTER)
|
|
// [437] if(ghosts_mode==SCATTER) goto game_logic::@131 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #SCATTER
|
|
cmp.z ghosts_mode
|
|
beq __b13
|
|
// game_logic::@136
|
|
// target_xtile = pacman_xfine/2
|
|
// [438] game_logic::target_xtile3#2 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// target_ytile = pacman_yfine/2
|
|
// [439] game_logic::target_ytile3#2 = pacman_yfine >> 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
sta.z target_ytile3
|
|
// [440] phi from game_logic::@136 to game_logic::@131 [phi:game_logic::@136->game_logic::@131]
|
|
// [440] phi game_logic::target_ytile3#3 = game_logic::target_ytile3#2 [phi:game_logic::@136->game_logic::@131#0] -- register_copy
|
|
// [440] phi game_logic::target_xtile3#3 = game_logic::target_xtile3#2 [phi:game_logic::@136->game_logic::@131#1] -- register_copy
|
|
jmp __b131
|
|
// [440] phi from game_logic::@135 to game_logic::@131 [phi:game_logic::@135->game_logic::@131]
|
|
__b13:
|
|
// [440] phi game_logic::target_ytile3#3 = 2 [phi:game_logic::@135->game_logic::@131#0] -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z target_ytile3
|
|
// [440] phi game_logic::target_xtile3#3 = 2 [phi:game_logic::@135->game_logic::@131#1] -- vbuxx=vbuc1
|
|
tax
|
|
// game_logic::@131
|
|
__b131:
|
|
// choose_direction( open_directions, ghost1_xtile, ghost1_ytile, target_xtile, target_ytile )
|
|
// [441] choose_direction::open_directions#3 = game_logic::open_directions3#1 -- vbuz1=vbuyy
|
|
sty.z choose_direction.open_directions
|
|
// [442] choose_direction::ghost_xtile#3 = game_logic::ghost1_xtile#0 -- vbuyy=vbuz1
|
|
ldy.z ghost1_xtile
|
|
// [443] choose_direction::ghost_ytile#3 = game_logic::ghost1_ytile#0
|
|
// [444] choose_direction::target_xtile#3 = game_logic::target_xtile3#3
|
|
// [445] choose_direction::target_ytile#3 = game_logic::target_ytile3#3
|
|
// [446] call choose_direction
|
|
// [748] phi from game_logic::@131 to choose_direction [phi:game_logic::@131->choose_direction]
|
|
// [748] phi choose_direction::open_directions#10 = choose_direction::open_directions#3 [phi:game_logic::@131->choose_direction#0] -- register_copy
|
|
// [748] phi choose_direction::target_ytile#4 = choose_direction::target_ytile#3 [phi:game_logic::@131->choose_direction#1] -- register_copy
|
|
// [748] phi choose_direction::ghost_ytile#4 = choose_direction::ghost_ytile#3 [phi:game_logic::@131->choose_direction#2] -- register_copy
|
|
// [748] phi choose_direction::target_xtile#4 = choose_direction::target_xtile#3 [phi:game_logic::@131->choose_direction#3] -- register_copy
|
|
// [748] phi choose_direction::ghost_xtile#4 = choose_direction::ghost_xtile#3 [phi:game_logic::@131->choose_direction#4] -- register_copy
|
|
jsr choose_direction
|
|
// choose_direction( open_directions, ghost1_xtile, ghost1_ytile, target_xtile, target_ytile )
|
|
// [447] choose_direction::return#3 = choose_direction::return#10 -- vbuaa=vbuz1
|
|
lda.z choose_direction.return
|
|
// game_logic::@159
|
|
// [448] game_logic::$182 = choose_direction::return#3
|
|
// ghost1_direction = choose_direction( open_directions, ghost1_xtile, ghost1_ytile, target_xtile, target_ytile )
|
|
// [449] ghost1_direction = game_logic::$182 -- vbuz1=vbuaa
|
|
sta.z ghost1_direction
|
|
rts
|
|
// game_logic::@130
|
|
__b130:
|
|
// ghost1_direction = DIRECTION_SINGLE[open_directions]
|
|
// [450] ghost1_direction = DIRECTION_SINGLE[game_logic::open_directions3#1] -- vbuz1=pbuc1_derefidx_vbuyy
|
|
// Choose a random direction between the open directions
|
|
lda DIRECTION_SINGLE,y
|
|
sta.z ghost1_direction
|
|
rts
|
|
// game_logic::@129
|
|
__b129:
|
|
// ghost1_direction = DIRECTION_REVERSE[ghost1_direction]
|
|
// [451] ghost1_direction = DIRECTION_REVERSE[ghost1_direction] -- vbuz1=pbuc1_derefidx_vbuz1
|
|
// If we are changing between scatter & chase then reverse the direction
|
|
ldy.z ghost1_direction
|
|
lda DIRECTION_REVERSE,y
|
|
sta.z ghost1_direction
|
|
// ghost1_reverse = 0
|
|
// [452] ghost1_reverse = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_reverse
|
|
rts
|
|
// game_logic::@128
|
|
__b128:
|
|
// ghost1_substep = 1
|
|
// [453] ghost1_substep = 1 -- vbuz1=vbuc1
|
|
// Ghost was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z ghost1_substep
|
|
// if(ghost1_xfine==1)
|
|
// [454] if(ghost1_xfine==1) goto game_logic::@132 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
cmp.z ghost1_xfine
|
|
beq __b132
|
|
// game_logic::@137
|
|
// if(ghost1_xfine==97)
|
|
// [455] if(ghost1_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z ghost1_xfine
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@138
|
|
// ghost1_xfine = 1
|
|
// [456] ghost1_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z ghost1_xfine
|
|
rts
|
|
// game_logic::@132
|
|
__b132:
|
|
// ghost1_xfine = 97
|
|
// [457] ghost1_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z ghost1_xfine
|
|
rts
|
|
// game_logic::@126
|
|
__b126:
|
|
// --ghost1_xfine;
|
|
// [458] ghost1_xfine = -- ghost1_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z ghost1_xfine
|
|
jmp __b127
|
|
// game_logic::@125
|
|
__b125:
|
|
// ++ghost1_yfine;
|
|
// [459] ghost1_yfine = ++ ghost1_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost1_yfine
|
|
jmp __b127
|
|
// game_logic::@124
|
|
__b124:
|
|
// ++ghost1_xfine;
|
|
// [460] ghost1_xfine = ++ ghost1_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z ghost1_xfine
|
|
jmp __b127
|
|
// game_logic::@123
|
|
__b123:
|
|
// if(--ghost1_respawn==0)
|
|
// [461] ghost1_respawn = -- ghost1_respawn -- vbuz1=_dec_vbuz1
|
|
dec.z ghost1_respawn
|
|
// [462] if(ghost1_respawn!=0) goto game_logic::@return -- vbuz1_neq_0_then_la1
|
|
lda.z ghost1_respawn
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@139
|
|
// ghost1_direction = DOWN
|
|
// [463] ghost1_direction = DOWN -- vbuz1=vbuc1
|
|
// Spawn ghost 1
|
|
lda #DOWN
|
|
sta.z ghost1_direction
|
|
// ghost1_xfine = 96
|
|
// [464] ghost1_xfine = $60 -- vbuz1=vbuc1
|
|
lda #$60
|
|
sta.z ghost1_xfine
|
|
// ghost1_yfine = 2
|
|
// [465] ghost1_yfine = 2 -- vbuz1=vbuc1
|
|
lda #2
|
|
sta.z ghost1_yfine
|
|
// ghost1_substep = 0
|
|
// [466] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghost1_substep
|
|
rts
|
|
// game_logic::@2
|
|
__b2:
|
|
// if(pacman_direction==RIGHT)
|
|
// [467] if(pacman_direction==RIGHT) goto game_logic::@140 -- vbuz1_eq_vbuc1_then_la1
|
|
// Animate pacman
|
|
// Move pacman in the current direction (unless he is stopped)
|
|
lda #RIGHT
|
|
cmp.z pacman_direction
|
|
beq __b140
|
|
// game_logic::@40
|
|
// if(pacman_direction==DOWN)
|
|
// [468] if(pacman_direction==DOWN) goto game_logic::@141 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #DOWN
|
|
cmp.z pacman_direction
|
|
beq __b141
|
|
// game_logic::@41
|
|
// if(pacman_direction==LEFT)
|
|
// [469] if(pacman_direction==LEFT) goto game_logic::@142 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #LEFT
|
|
cmp.z pacman_direction
|
|
beq __b142
|
|
// game_logic::@42
|
|
// if(pacman_direction==UP)
|
|
// [470] if(pacman_direction!=UP) goto game_logic::@143 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #UP
|
|
cmp.z pacman_direction
|
|
bne __b143
|
|
// game_logic::@43
|
|
// --pacman_yfine;
|
|
// [471] pacman_yfine = -- pacman_yfine -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_yfine
|
|
// game_logic::@143
|
|
__b143:
|
|
// pacman_direction!=STOP
|
|
// [472] game_logic::$232 = pacman_direction -- vbuxx=vbuz1
|
|
ldx.z pacman_direction
|
|
// if(pacman_substep==0 && pacman_direction!=STOP)
|
|
// [473] if(pacman_substep!=0) goto game_logic::@147 -- vbuz1_neq_0_then_la1
|
|
lda.z pacman_substep
|
|
bne __b147
|
|
// game_logic::@170
|
|
// [474] if(game_logic::$232!=STOP) goto game_logic::@144 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #STOP
|
|
bne __b144
|
|
// game_logic::@147
|
|
__b147:
|
|
// pacman_substep = 0
|
|
// [475] pacman_substep = 0 -- vbuz1=vbuc1
|
|
// Pacman is on a (new) tile
|
|
lda #0
|
|
sta.z pacman_substep
|
|
// char pacman_xtile = pacman_xfine/2
|
|
// [476] game_logic::pacman_xtile1#0 = pacman_xfine >> 1 -- vbuxx=vbuz1_ror_1
|
|
// Examine open directions from the new tile to determine next action
|
|
lda.z pacman_xfine
|
|
lsr
|
|
tax
|
|
// char pacman_ytile = pacman_yfine/2
|
|
// [477] game_logic::pacman_ytile1#0 = pacman_yfine >> 1 -- vbuaa=vbuz1_ror_1
|
|
lda.z pacman_yfine
|
|
lsr
|
|
// char open_directions = level_tile_directions(pacman_xtile, pacman_ytile)
|
|
// [478] level_tile_directions::xtile#4 = game_logic::pacman_xtile1#0
|
|
// [479] level_tile_directions::ytile#4 = game_logic::pacman_ytile1#0
|
|
// [480] call level_tile_directions
|
|
// [740] phi from game_logic::@147 to level_tile_directions [phi:game_logic::@147->level_tile_directions]
|
|
// [740] phi level_tile_directions::ytile#5 = level_tile_directions::ytile#4 [phi:game_logic::@147->level_tile_directions#0] -- register_copy
|
|
// [740] phi level_tile_directions::xtile#5 = level_tile_directions::xtile#4 [phi:game_logic::@147->level_tile_directions#1] -- register_copy
|
|
jsr level_tile_directions
|
|
// char open_directions = level_tile_directions(pacman_xtile, pacman_ytile)
|
|
// [481] level_tile_directions::return#13 = level_tile_directions::return#2
|
|
// game_logic::@160
|
|
// [482] game_logic::open_directions4#0 = level_tile_directions::return#13 -- vbuxx=vbuaa
|
|
tax
|
|
// CIA1->PORT_A & 0x0f
|
|
// [483] game_logic::$199 = *((char *)CIA1) & $f -- vbuaa=_deref_pbuc1_band_vbuc2
|
|
lda #$f
|
|
and CIA1
|
|
// (CIA1->PORT_A & 0x0f)^0x0f
|
|
// [484] game_logic::$200 = game_logic::$199 ^ $f -- vbuaa=vbuaa_bxor_vbuc1
|
|
eor #$f
|
|
// char joy_directions = ((CIA1->PORT_A & 0x0f)^0x0f)*4
|
|
// [485] game_logic::joy_directions#0 = game_logic::$200 << 2 -- vbuaa=vbuaa_rol_2
|
|
// Read joystick#2 - arrange bits to match DIRECTION
|
|
asl
|
|
asl
|
|
// if(joy_directions!=0)
|
|
// [486] if(game_logic::joy_directions#0==0) goto game_logic::@145 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq __b145
|
|
// game_logic::@148
|
|
// joy_directions&open_directions
|
|
// [487] game_logic::$204 = game_logic::joy_directions#0 & game_logic::open_directions4#0 -- vbuaa=vbuaa_band_vbuxx
|
|
stx.z $ff
|
|
and.z $ff
|
|
// char new_direction = DIRECTION_SINGLE[joy_directions&open_directions]
|
|
// [488] game_logic::new_direction#0 = DIRECTION_SINGLE[game_logic::$204] -- vbuaa=pbuc1_derefidx_vbuaa
|
|
tay
|
|
lda DIRECTION_SINGLE,y
|
|
// if(new_direction!=0)
|
|
// [489] if(game_logic::new_direction#0==0) goto game_logic::@145 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq __b145
|
|
// game_logic::@149
|
|
// pacman_direction = new_direction
|
|
// [490] pacman_direction = game_logic::new_direction#0 -- vbuz1=vbuaa
|
|
sta.z pacman_direction
|
|
// game_logic::@145
|
|
__b145:
|
|
// pacman_direction &= open_directions
|
|
// [491] pacman_direction = pacman_direction & game_logic::open_directions4#0 -- vbuz1=vbuz1_band_vbuxx
|
|
// Stop pacman if the current direction is no longer open
|
|
lda.z pacman_direction
|
|
sax.z pacman_direction
|
|
rts
|
|
// game_logic::@144
|
|
__b144:
|
|
// pacman_substep = 1
|
|
// [492] pacman_substep = 1 -- vbuz1=vbuc1
|
|
// Pacman was on a tile and is moving, so he is now between tiles
|
|
lda #1
|
|
sta.z pacman_substep
|
|
// pacman_ch1_enabled = 1
|
|
// [493] pacman_ch1_enabled = 1 -- vbuz1=vbuc1
|
|
// Enable the eating sound whenever pacman is moving
|
|
sta.z pacman_ch1_enabled
|
|
// if(pacman_xfine==1)
|
|
// [494] if(pacman_xfine==1) goto game_logic::@146 -- vbuz1_eq_vbuc1_then_la1
|
|
// Teleport if we are in the magic positions
|
|
cmp.z pacman_xfine
|
|
beq __b146
|
|
// game_logic::@150
|
|
// if(pacman_xfine==97)
|
|
// [495] if(pacman_xfine!=$61) goto game_logic::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$61
|
|
cmp.z pacman_xfine
|
|
beq !__breturn+
|
|
jmp __breturn
|
|
!__breturn:
|
|
// game_logic::@151
|
|
// pacman_xfine = 1
|
|
// [496] pacman_xfine = 1 -- vbuz1=vbuc1
|
|
lda #1
|
|
sta.z pacman_xfine
|
|
rts
|
|
// game_logic::@146
|
|
__b146:
|
|
// pacman_xfine = 97
|
|
// [497] pacman_xfine = $61 -- vbuz1=vbuc1
|
|
lda #$61
|
|
sta.z pacman_xfine
|
|
rts
|
|
// game_logic::@142
|
|
__b142:
|
|
// --pacman_xfine;
|
|
// [498] pacman_xfine = -- pacman_xfine -- vbuz1=_dec_vbuz1
|
|
dec.z pacman_xfine
|
|
jmp __b143
|
|
// game_logic::@141
|
|
__b141:
|
|
// ++pacman_yfine;
|
|
// [499] pacman_yfine = ++ pacman_yfine -- vbuz1=_inc_vbuz1
|
|
inc.z pacman_yfine
|
|
jmp __b143
|
|
// game_logic::@140
|
|
__b140:
|
|
// ++pacman_xfine;
|
|
// [500] pacman_xfine = ++ pacman_xfine -- vbuz1=_inc_vbuz1
|
|
inc.z pacman_xfine
|
|
jmp __b143
|
|
}
|
|
// pacman_sound_play
|
|
pacman_sound_play: {
|
|
// if(pacman_ch1_enabled)
|
|
// [501] if(0==pacman_ch1_enabled) goto pacman_sound_play::@return -- 0_eq_vbuz1_then_la1
|
|
lda.z pacman_ch1_enabled
|
|
beq __breturn
|
|
// pacman_sound_play::@1
|
|
// *SID_CH1_FREQ_HI = PACMAN_CH1_FREQ_HI[pacman_ch1_idx]
|
|
// [502] *SID_CH1_FREQ_HI = PACMAN_CH1_FREQ_HI[pacman_ch1_idx] -- _deref_pbuc1=pbuc2_derefidx_vbuz1
|
|
// Play the entire sound - and then reset and disable it
|
|
ldy.z pacman_ch1_idx
|
|
lda PACMAN_CH1_FREQ_HI,y
|
|
sta SID_CH1_FREQ_HI
|
|
// SID->CH1_CONTROL = PACMAN_CH1_CONTROL[pacman_ch1_idx]
|
|
// [503] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = PACMAN_CH1_CONTROL[pacman_ch1_idx] -- _deref_pbuc1=pbuc2_derefidx_vbuz1
|
|
lda PACMAN_CH1_CONTROL,y
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL
|
|
// if(++pacman_ch1_idx==sizeof(PACMAN_CH1_FREQ_HI))
|
|
// [504] pacman_ch1_idx = ++ pacman_ch1_idx -- vbuz1=_inc_vbuz1
|
|
inc.z pacman_ch1_idx
|
|
// [505] if(pacman_ch1_idx!=$16*SIZEOF_CHAR) goto pacman_sound_play::@return -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$16*SIZEOF_CHAR
|
|
cmp.z pacman_ch1_idx
|
|
bne __breturn
|
|
// pacman_sound_play::@2
|
|
// pacman_ch1_idx = 0
|
|
// [506] pacman_ch1_idx = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z pacman_ch1_idx
|
|
// pacman_ch1_enabled = 0
|
|
// [507] pacman_ch1_enabled = 0 -- vbuz1=vbuc1
|
|
sta.z pacman_ch1_enabled
|
|
// pacman_sound_play::@return
|
|
__breturn:
|
|
// }
|
|
// [508] return
|
|
rts
|
|
}
|
|
// splash_run
|
|
// Initializes all data for the splash and shows the splash.
|
|
// Returns when the splash is complete and the user clicks the joystidk #2 button
|
|
splash_run: {
|
|
.const toDd001_return = 3^(>SCREENS_1)/$40
|
|
.const toD0181_return = 0
|
|
.label xpos = 5
|
|
.label i = $14
|
|
// splash_run::SEI1
|
|
// asm
|
|
// asm { sei }
|
|
sei
|
|
// splash_run::@18
|
|
// CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR
|
|
// [511] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2
|
|
// Disable CIA 1 Timer IRQ
|
|
lda #CIA_INTERRUPT_CLEAR
|
|
sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT
|
|
// *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
// [512] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2
|
|
// Disable kernal & basic & IO
|
|
lda #PROCPORT_DDR_MEMORY_MASK
|
|
sta.z PROCPORT_DDR
|
|
// *PROCPORT = PROCPORT_RAM_ALL
|
|
// [513] *PROCPORT = PROCPORT_RAM_ALL -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_ALL
|
|
sta.z PROCPORT
|
|
// memset((char*)0x4000, 0, 0xc00)
|
|
// [514] call memset
|
|
// Reset memory to avoid crashes
|
|
// [778] phi from splash_run::@18 to memset [phi:splash_run::@18->memset]
|
|
// [778] phi memset::str#6 = (void *)(char *) 16384 [phi:splash_run::@18->memset#0] -- pvoz1=pvoc1
|
|
lda #<$4000
|
|
sta.z memset.str
|
|
lda #>$4000
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $c00 [phi:splash_run::@18->memset#1] -- vwuz1=vwuc1
|
|
lda #<$c00
|
|
sta.z memset.num
|
|
lda #>$c00
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// splash_run::@22
|
|
// byteboozer_decrunch(RASTER_CODE_CRUNCHED)
|
|
// [515] byteboozer_decrunch::crunched = RASTER_CODE_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<RASTER_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>RASTER_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [516] call byteboozer_decrunch
|
|
// Decrunch raster code
|
|
jsr byteboozer_decrunch
|
|
// splash_run::@23
|
|
// byteboozer_decrunch(LOGIC_CODE_CRUNCHED)
|
|
// [517] byteboozer_decrunch::crunched = LOGIC_CODE_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<LOGIC_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>LOGIC_CODE_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [518] call byteboozer_decrunch
|
|
// Decrunch logic code
|
|
jsr byteboozer_decrunch
|
|
// [519] phi from splash_run::@23 to splash_run::@24 [phi:splash_run::@23->splash_run::@24]
|
|
// splash_run::@24
|
|
// merge_code(RASTER_CODE, RASTER_CODE_UNMERGED, LOGIC_CODE_UNMERGED)
|
|
// [520] call merge_code
|
|
// Merge the raster with the logic-code
|
|
// [789] phi from splash_run::@24 to merge_code [phi:splash_run::@24->merge_code]
|
|
jsr merge_code
|
|
// [521] phi from splash_run::@24 to splash_run::@25 [phi:splash_run::@24->splash_run::@25]
|
|
// splash_run::@25
|
|
// memset(BANK_1+0x2000, 0x00, 0x1fff)
|
|
// [522] call memset
|
|
// Clear the graphics banks
|
|
// [778] phi from splash_run::@25 to memset [phi:splash_run::@25->memset]
|
|
// [778] phi memset::str#6 = (void *)BANK_1+$2000 [phi:splash_run::@25->memset#0] -- pvoz1=pvoc1
|
|
lda #<BANK_1+$2000
|
|
sta.z memset.str
|
|
lda #>BANK_1+$2000
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $1fff [phi:splash_run::@25->memset#1] -- vwuz1=vwuc1
|
|
lda #<$1fff
|
|
sta.z memset.num
|
|
lda #>$1fff
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// [523] phi from splash_run::@25 to splash_run::@26 [phi:splash_run::@25->splash_run::@26]
|
|
// splash_run::@26
|
|
// memset(BANK_2, 0x00, 0x3fff)
|
|
// [524] call memset
|
|
// [778] phi from splash_run::@26 to memset [phi:splash_run::@26->memset]
|
|
// [778] phi memset::str#6 = (void *)BANK_2 [phi:splash_run::@26->memset#0] -- pvoz1=pvoc1
|
|
lda #<BANK_2
|
|
sta.z memset.str
|
|
lda #>BANK_2
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $3fff [phi:splash_run::@26->memset#1] -- vwuz1=vwuc1
|
|
lda #<$3fff
|
|
sta.z memset.num
|
|
lda #>$3fff
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// [525] phi from splash_run::@26 to splash_run::@27 [phi:splash_run::@26->splash_run::@27]
|
|
// splash_run::@27
|
|
// init_render_index()
|
|
// [526] call init_render_index
|
|
// Initialize the renderer tables
|
|
// [836] phi from splash_run::@27 to init_render_index [phi:splash_run::@27->init_render_index]
|
|
jsr init_render_index
|
|
// splash_run::@28
|
|
// byteboozer_decrunch(SPLASH_CRUNCHED)
|
|
// [527] byteboozer_decrunch::crunched = SPLASH_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<SPLASH_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>SPLASH_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [528] call byteboozer_decrunch
|
|
// decrunch splash screen
|
|
jsr byteboozer_decrunch
|
|
// [529] phi from splash_run::@28 to splash_run::@29 [phi:splash_run::@28->splash_run::@29]
|
|
// splash_run::@29
|
|
// splash_show()
|
|
// [530] call splash_show
|
|
// Show the splash screen
|
|
// [867] phi from splash_run::@29 to splash_show [phi:splash_run::@29->splash_show]
|
|
jsr splash_show
|
|
// [531] phi from splash_run::@29 to splash_run::@30 [phi:splash_run::@29->splash_run::@30]
|
|
// splash_run::@30
|
|
// memset(BANK_1, 0x00, 0x1fff)
|
|
// [532] call memset
|
|
// Clear the graphics bank
|
|
// [778] phi from splash_run::@30 to memset [phi:splash_run::@30->memset]
|
|
// [778] phi memset::str#6 = (void *)BANK_1 [phi:splash_run::@30->memset#0] -- pvoz1=pvoc1
|
|
lda #<BANK_1
|
|
sta.z memset.str
|
|
lda #>BANK_1
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = $1fff [phi:splash_run::@30->memset#1] -- vwuz1=vwuc1
|
|
lda #<$1fff
|
|
sta.z memset.num
|
|
lda #>$1fff
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// [533] phi from splash_run::@30 to splash_run::@31 [phi:splash_run::@30->splash_run::@31]
|
|
// splash_run::@31
|
|
// init_bobs_restore()
|
|
// [534] call init_bobs_restore
|
|
// Initialize bobs_restore to "safe" values
|
|
// [881] phi from splash_run::@31 to init_bobs_restore [phi:splash_run::@31->init_bobs_restore]
|
|
jsr init_bobs_restore
|
|
// splash_run::@32
|
|
// byteboozer_decrunch(BOB_GRAPHICS_CRUNCHED)
|
|
// [535] byteboozer_decrunch::crunched = BOB_GRAPHICS_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<BOB_GRAPHICS_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>BOB_GRAPHICS_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [536] call byteboozer_decrunch
|
|
// decrunch bobs graphics tables
|
|
jsr byteboozer_decrunch
|
|
// [537] phi from splash_run::@32 to splash_run::@33 [phi:splash_run::@32->splash_run::@33]
|
|
// splash_run::@33
|
|
// init_sprite_pointers()
|
|
// [538] call init_sprite_pointers
|
|
// Set sprite pointers on all screens (in both graphics banks)
|
|
// [898] phi from splash_run::@33 to init_sprite_pointers [phi:splash_run::@33->init_sprite_pointers]
|
|
jsr init_sprite_pointers
|
|
// [539] phi from splash_run::@33 to splash_run::@34 [phi:splash_run::@33->splash_run::@34]
|
|
// splash_run::@34
|
|
// memcpy(INTRO_MUSIC_CRUNCHED_UPPER, INTRO_MUSIC_CRUNCHED, INTRO_MUSIC_CRUNCHED_SIZE)
|
|
// [540] call memcpy
|
|
// Move the crunched music to upper memory before decrunching it
|
|
// [912] phi from splash_run::@34 to memcpy [phi:splash_run::@34->memcpy]
|
|
jsr memcpy
|
|
// splash_run::@35
|
|
// byteboozer_decrunch(INTRO_MUSIC_CRUNCHED_UPPER)
|
|
// [541] byteboozer_decrunch::crunched = INTRO_MUSIC_CRUNCHED_UPPER -- pbuz1=pbuc1
|
|
lda #<INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [542] call byteboozer_decrunch
|
|
// zero-fill the entire Init segment
|
|
//memset(LEVEL_TILES_CRUNCHED, 0, INTRO_MUSIC_CRUNCHED+INTRO_MUSIC_CRUNCHED_SIZE-LEVEL_TILES_CRUNCHED);
|
|
// decrunch intro music
|
|
jsr byteboozer_decrunch
|
|
// [543] phi from splash_run::@35 to splash_run::@36 [phi:splash_run::@35->splash_run::@36]
|
|
// splash_run::@36
|
|
// memset(INTRO_MUSIC_CRUNCHED_UPPER, 0, INTRO_MUSIC_CRUNCHED_SIZE)
|
|
// [544] call memset
|
|
// Zero-fill the upper memory
|
|
// [778] phi from splash_run::@36 to memset [phi:splash_run::@36->memset]
|
|
// [778] phi memset::str#6 = (void *)INTRO_MUSIC_CRUNCHED_UPPER [phi:splash_run::@36->memset#0] -- pvoz1=pvoc1
|
|
lda #<INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z memset.str
|
|
lda #>INTRO_MUSIC_CRUNCHED_UPPER
|
|
sta.z memset.str+1
|
|
// [778] phi memset::num#5 = INTRO_MUSIC_CRUNCHED_SIZE [phi:splash_run::@36->memset#1] -- vwuz1=vwuc1
|
|
lda #<INTRO_MUSIC_CRUNCHED_SIZE
|
|
sta.z memset.num
|
|
lda #>INTRO_MUSIC_CRUNCHED_SIZE
|
|
sta.z memset.num+1
|
|
jsr memset
|
|
// splash_run::@37
|
|
// *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
|
|
// [545] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2
|
|
// Disable kernal & basic - enable IO
|
|
lda #PROCPORT_DDR_MEMORY_MASK
|
|
sta.z PROCPORT_DDR
|
|
// *PROCPORT = PROCPORT_RAM_IO
|
|
// [546] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2
|
|
lda #PROCPORT_RAM_IO
|
|
sta.z PROCPORT
|
|
// [547] phi from splash_run::@37 to splash_run::@2 [phi:splash_run::@37->splash_run::@2]
|
|
// [547] phi splash_run::msb#10 = 0 [phi:splash_run::@37->splash_run::@2#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [547] phi splash_run::i#2 = 0 [phi:splash_run::@37->splash_run::@2#1] -- vbuz1=vbuc1
|
|
txa
|
|
sta.z i
|
|
// splash_run::@2
|
|
__b2:
|
|
// for(char i=0;i<8;i++)
|
|
// [548] if(splash_run::i#2<8) goto splash_run::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z i
|
|
cmp #8
|
|
bcs !__b3+
|
|
jmp __b3
|
|
!__b3:
|
|
// [549] phi from splash_run::@2 to splash_run::toDd001 [phi:splash_run::@2->splash_run::toDd001]
|
|
// splash_run::toDd001
|
|
// splash_run::@19
|
|
// CIA2->PORT_A = toDd00(SCREENS_1)
|
|
// [550] *((char *)CIA2) = splash_run::toDd001_return#0 -- _deref_pbuc1=vbuc2
|
|
// Set initial graphics bank
|
|
lda #toDd001_return
|
|
sta CIA2
|
|
// canvas_base_hi = BYTE1(SPRITES_2)
|
|
// [551] canvas_base_hi = byte1 SPRITES_2 -- vbuz1=vbuc1
|
|
// Set initial render/restore buffer
|
|
lda #>SPRITES_2
|
|
sta.z canvas_base_hi
|
|
// bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE
|
|
// [552] bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE -- vbuz1=vbuc1
|
|
lda #NUM_BOBS*SIZE_BOB_RESTORE
|
|
sta.z bobs_restore_base
|
|
// [553] phi from splash_run::@19 to splash_run::toD0181 [phi:splash_run::@19->splash_run::toD0181]
|
|
// splash_run::toD0181
|
|
// splash_run::@20
|
|
// VICII->MEMORY = toD018(SCREENS_1, SCREENS_1)
|
|
// [554] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = splash_run::toD0181_return#0 -- _deref_pbuc1=vbuc2
|
|
// Select first screen
|
|
lda #toD0181_return
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY
|
|
// VICII->SPRITES_XMSB = msb
|
|
// [555] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB) = splash_run::msb#10 -- _deref_pbuc1=vbuxx
|
|
stx VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB
|
|
// VICII->SPRITES_ENABLE = 0xff
|
|
// [556] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff -- _deref_pbuc1=vbuc2
|
|
lda #$ff
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE
|
|
// VICII->SPRITES_EXPAND_X = 0xff
|
|
// [557] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X) = $ff -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_EXPAND_X
|
|
// VICII->BORDER_COLOR = BLACK
|
|
// [558] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2
|
|
lda #BLACK
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR
|
|
// VICII->BG_COLOR = BLACK
|
|
// [559] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR
|
|
// VICII->SPRITES_MCOLOR1 = BLUE
|
|
// [560] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE -- _deref_pbuc1=vbuc2
|
|
lda #BLUE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1
|
|
// VICII->SPRITES_MCOLOR2 = RED
|
|
// [561] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED -- _deref_pbuc1=vbuc2
|
|
lda #RED
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2
|
|
// top_sprites_mc = 0x03
|
|
// [562] top_sprites_mc = 3 -- vbuz1=vbuc1
|
|
// On the splash screen sprites all sprites are SC - except sprite #0,1 on the top/bottom of the screen
|
|
lda #3
|
|
sta.z top_sprites_mc
|
|
// side_sprites_mc = 0x00
|
|
// [563] side_sprites_mc = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z side_sprites_mc
|
|
// bottom_sprites_mc = 0x03
|
|
// [564] bottom_sprites_mc = 3 -- vbuz1=vbuc1
|
|
lda #3
|
|
sta.z bottom_sprites_mc
|
|
// top_sprites_color = YELLOW
|
|
// [565] top_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
// On the splash top/bottom sc-sprites are yellow and side-sprites are blue
|
|
lda #YELLOW
|
|
sta.z top_sprites_color
|
|
// side_sprites_color = BLUE
|
|
// [566] side_sprites_color = BLUE -- vbuz1=vbuc1
|
|
lda #BLUE
|
|
sta.z side_sprites_color
|
|
// bottom_sprites_color = YELLOW
|
|
// [567] bottom_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
lda #YELLOW
|
|
sta.z bottom_sprites_color
|
|
// VICII->SPRITES_MC = top_sprites_mc
|
|
// [568] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc -- _deref_pbuc1=vbuz1
|
|
// Set the initial top colors/MC
|
|
lda.z top_sprites_mc
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC
|
|
// [569] phi from splash_run::@20 to splash_run::@6 [phi:splash_run::@20->splash_run::@6]
|
|
// [569] phi splash_run::i1#2 = 0 [phi:splash_run::@20->splash_run::@6#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// Set initial Sprite Color
|
|
// splash_run::@6
|
|
__b6:
|
|
// for(char i=0;i<8;i++)
|
|
// [570] if(splash_run::i1#2<8) goto splash_run::@7 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #8
|
|
bcc __b7
|
|
// splash_run::@8
|
|
// VICII->CONTROL2 = 0x08
|
|
// [571] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 8 -- _deref_pbuc1=vbuc2
|
|
// Set VICII CONTROL2 ($d016) to 8 to allow ASL, LSR to be used for opening the border
|
|
lda #8
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2
|
|
// [572] phi from splash_run::@8 to splash_run::@9 [phi:splash_run::@8->splash_run::@9]
|
|
// [572] phi splash_run::i2#2 = 0 [phi:splash_run::@8->splash_run::@9#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// Move the bobs to the center to avoid interference while rendering the level
|
|
// splash_run::@9
|
|
__b9:
|
|
// for(char i=0;i<4;i++)
|
|
// [573] if(splash_run::i2#2<4) goto splash_run::@10 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #4
|
|
bcc __b10
|
|
// splash_run::@11
|
|
// asm
|
|
// asm { lda#1 staINTRO_MUSIC+$69 }
|
|
// Disable SID CH#3
|
|
lda #1
|
|
sta INTRO_MUSIC+$69
|
|
// asm { lda#0 }
|
|
// Init music
|
|
lda #0
|
|
// (*musicInit)()
|
|
// [576] callexecute *musicInit -- call__deref_pprc1
|
|
jsr musicInit
|
|
// splash_run::@1
|
|
// phase = 0
|
|
// [577] phase = 0 -- vbuz1=vbuc1
|
|
// Set phase to intro
|
|
lda #0
|
|
sta.z phase
|
|
// VICII->CONTROL1 = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
// [578] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM -- _deref_pbuc1=vbuc2
|
|
// Start a hyperscreen with no badlines and open borders
|
|
// Set screen height to 25 lines (preparing for the hyperscreen), enable display
|
|
// Set an illegal mode to prevent any character graphics
|
|
lda #VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
// Wait for line 0xfa (lower border)
|
|
// splash_run::@12
|
|
__b12:
|
|
// while(VICII->RASTER!=0xfa)
|
|
// [579] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto splash_run::@12 -- _deref_pbuc1_neq_vbuc2_then_la1
|
|
lda #$fa
|
|
cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
bne __b12
|
|
// splash_run::@13
|
|
// VICII->CONTROL1 &= ~(VICII_RST8|VICII_RSEL|VICII_DEN)
|
|
// [580] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN -- _deref_pbuc1=_deref_pbuc1_band_vbuc2
|
|
// Open lower/upper border using RSEL - and disable all graphics (except sprites)
|
|
// Set up RASTER IRQ to start at irq_screen_top() (RST8=0)
|
|
lda #(VICII_RST8|VICII_RSEL|VICII_DEN)^$ff
|
|
and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
// VICII->RASTER = IRQ_SCREEN_TOP_LINE
|
|
// [581] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE -- _deref_pbuc1=vbuc2
|
|
lda #IRQ_SCREEN_TOP_LINE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
// *HARDWARE_IRQ = &irq_screen_top
|
|
// [582] *HARDWARE_IRQ = &irq_screen_top -- _deref_qprc1=pprc2
|
|
lda #<irq_screen_top
|
|
sta HARDWARE_IRQ
|
|
lda #>irq_screen_top
|
|
sta HARDWARE_IRQ+1
|
|
// VICII->IRQ_ENABLE = IRQ_RASTER
|
|
// [583] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Enable Raster Interrupt
|
|
lda #IRQ_RASTER
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE
|
|
// asm
|
|
// asm { ldaCIA1_INTERRUPT }
|
|
// Acknowledge any timer IRQ
|
|
lda CIA1_INTERRUPT
|
|
// *IRQ_STATUS = 0x0f
|
|
// [585] *IRQ_STATUS = $f -- _deref_pbuc1=vbuc2
|
|
// Acknowledge any VIC IRQ
|
|
lda #$f
|
|
sta IRQ_STATUS
|
|
// splash_run::CLI1
|
|
// asm
|
|
// asm { cli }
|
|
cli
|
|
// [587] phi from splash_run::CLI1 to splash_run::@21 [phi:splash_run::CLI1->splash_run::@21]
|
|
// splash_run::@21
|
|
// joyinit()
|
|
// [588] call joyinit
|
|
// Prepare for joystick control
|
|
jsr joyinit
|
|
// splash_run::@38
|
|
// music_play_next = 0
|
|
// [589] music_play_next = 0 -- vbuz1=vbuc1
|
|
// Wait for fire
|
|
lda #0
|
|
sta.z music_play_next
|
|
// [590] phi from splash_run::@15 splash_run::@16 splash_run::@38 to splash_run::@14 [phi:splash_run::@15/splash_run::@16/splash_run::@38->splash_run::@14]
|
|
// splash_run::@14
|
|
__b14:
|
|
// joyfire()
|
|
// [591] call joyfire
|
|
jsr joyfire
|
|
// [592] joyfire::return#1 = joyfire::return#4
|
|
// splash_run::@39
|
|
// [593] splash_run::$30 = joyfire::return#1
|
|
// while(!joyfire())
|
|
// [594] if(0==splash_run::$30) goto splash_run::@15 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b15
|
|
// splash_run::@return
|
|
// }
|
|
// [595] return
|
|
rts
|
|
// splash_run::@15
|
|
__b15:
|
|
// if(music_play_next)
|
|
// [596] if(0==music_play_next) goto splash_run::@14 -- 0_eq_vbuz1_then_la1
|
|
lda.z music_play_next
|
|
beq __b14
|
|
// [597] phi from splash_run::@15 to splash_run::@17 [phi:splash_run::@15->splash_run::@17]
|
|
// splash_run::@17
|
|
// (*musicPlay)()
|
|
// [598] callexecute *musicPlay -- call__deref_pprc1
|
|
//VICII->BG_COLOR=1;
|
|
jsr musicPlay
|
|
// splash_run::@16
|
|
// music_play_next = 0
|
|
// [599] music_play_next = 0 -- vbuz1=vbuc1
|
|
//VICII->BG_COLOR=0;
|
|
lda #0
|
|
sta.z music_play_next
|
|
jmp __b14
|
|
// splash_run::@10
|
|
__b10:
|
|
// bobs_xcol[i] = 10
|
|
// [600] bobs_xcol[splash_run::i2#2] = $a -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$a
|
|
sta bobs_xcol,x
|
|
// bobs_yfine[i] = 45
|
|
// [601] bobs_yfine[splash_run::i2#2] = $2d -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$2d
|
|
sta bobs_yfine,x
|
|
// bobs_bob_id[i] = 0
|
|
// [602] bobs_bob_id[splash_run::i2#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta bobs_bob_id,x
|
|
// for(char i=0;i<4;i++)
|
|
// [603] splash_run::i2#1 = ++ splash_run::i2#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [572] phi from splash_run::@10 to splash_run::@9 [phi:splash_run::@10->splash_run::@9]
|
|
// [572] phi splash_run::i2#2 = splash_run::i2#1 [phi:splash_run::@10->splash_run::@9#0] -- register_copy
|
|
jmp __b9
|
|
// splash_run::@7
|
|
__b7:
|
|
// SPRITES_COLOR[i] = top_sprites_color
|
|
// [604] SPRITES_COLOR[splash_run::i1#2] = top_sprites_color -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z top_sprites_color
|
|
sta SPRITES_COLOR,x
|
|
// for(char i=0;i<8;i++)
|
|
// [605] splash_run::i1#1 = ++ splash_run::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [569] phi from splash_run::@7 to splash_run::@6 [phi:splash_run::@7->splash_run::@6]
|
|
// [569] phi splash_run::i1#2 = splash_run::i1#1 [phi:splash_run::@7->splash_run::@6#0] -- register_copy
|
|
jmp __b6
|
|
// splash_run::@3
|
|
__b3:
|
|
// i*2
|
|
// [606] splash_run::$34 = splash_run::i#2 << 1 -- vbuyy=vbuz1_rol_1
|
|
lda.z i
|
|
asl
|
|
tay
|
|
// SPRITES_YPOS[i*2] = 7
|
|
// [607] SPRITES_YPOS[splash_run::$34] = 7 -- pbuc1_derefidx_vbuyy=vbuc2
|
|
lda #7
|
|
sta SPRITES_YPOS,y
|
|
// unsigned int xpos = sprites_xpos[i]
|
|
// [608] splash_run::xpos#0 = splash_run::sprites_xpos[splash_run::$34] -- vwuz1=pwuc1_derefidx_vbuyy
|
|
lda sprites_xpos,y
|
|
sta.z xpos
|
|
lda sprites_xpos+1,y
|
|
sta.z xpos+1
|
|
// SPRITES_XPOS[i*2] = (char)xpos
|
|
// [609] SPRITES_XPOS[splash_run::$34] = (char)splash_run::xpos#0 -- pbuc1_derefidx_vbuyy=_byte_vwuz1
|
|
lda.z xpos
|
|
sta SPRITES_XPOS,y
|
|
// msb /= 2
|
|
// [610] splash_run::msb#1 = splash_run::msb#10 >> 1 -- vbuxx=vbuxx_ror_1
|
|
txa
|
|
lsr
|
|
tax
|
|
// BYTE1(xpos)
|
|
// [611] splash_run::$25 = byte1 splash_run::xpos#0 -- vbuaa=_byte1_vwuz1
|
|
lda.z xpos+1
|
|
// if(BYTE1(xpos))
|
|
// [612] if(0==splash_run::$25) goto splash_run::@4 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b4
|
|
// splash_run::@5
|
|
// msb |=0x80
|
|
// [613] splash_run::msb#2 = splash_run::msb#1 | $80 -- vbuxx=vbuxx_bor_vbuc1
|
|
txa
|
|
ora #$80
|
|
tax
|
|
// [614] phi from splash_run::@3 splash_run::@5 to splash_run::@4 [phi:splash_run::@3/splash_run::@5->splash_run::@4]
|
|
// [614] phi splash_run::msb#8 = splash_run::msb#1 [phi:splash_run::@3/splash_run::@5->splash_run::@4#0] -- register_copy
|
|
// splash_run::@4
|
|
__b4:
|
|
// for(char i=0;i<8;i++)
|
|
// [615] splash_run::i#1 = ++ splash_run::i#2 -- vbuz1=_inc_vbuz1
|
|
inc.z i
|
|
// [547] phi from splash_run::@4 to splash_run::@2 [phi:splash_run::@4->splash_run::@2]
|
|
// [547] phi splash_run::msb#10 = splash_run::msb#8 [phi:splash_run::@4->splash_run::@2#0] -- register_copy
|
|
// [547] phi splash_run::i#2 = splash_run::i#1 [phi:splash_run::@4->splash_run::@2#1] -- register_copy
|
|
jmp __b2
|
|
.segment Data
|
|
// Sprite positions
|
|
sprites_xpos: .word $1e7, $13f, $10f, $df, $af, $7f, $4f, $1f
|
|
}
|
|
.segment Code
|
|
// gameplay_run
|
|
// Initialize all data for gameplay and runs the game.
|
|
// Exits when the user has won or lost
|
|
gameplay_run: {
|
|
.label __4 = 9
|
|
// gameplay_run::SEI1
|
|
// asm
|
|
// asm { sei }
|
|
sei
|
|
// [618] phi from gameplay_run::SEI1 to gameplay_run::@1 [phi:gameplay_run::SEI1->gameplay_run::@1]
|
|
// [618] phi gameplay_run::i#2 = 0 [phi:gameplay_run::SEI1->gameplay_run::@1#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// Stop any sound
|
|
// gameplay_run::@1
|
|
__b1:
|
|
// for(char i=0;i<0x2f;i++)
|
|
// [619] if(gameplay_run::i#2<$2f) goto gameplay_run::@2 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$2f
|
|
bcs !__b2+
|
|
jmp __b2
|
|
!__b2:
|
|
// gameplay_run::@3
|
|
// pacman_wins = 0
|
|
// [620] pacman_wins = 0 -- vbuz1=vbuc1
|
|
// Pacman has not won yet
|
|
lda #0
|
|
sta.z pacman_wins
|
|
// pacman_lives = 3
|
|
// [621] pacman_lives = 3 -- vbuz1=vbuc1
|
|
// Pacman has 3 lives
|
|
lda #3
|
|
sta.z pacman_lives
|
|
// VICII->SPRITES_MCOLOR1 = BLACK
|
|
// [622] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLACK -- _deref_pbuc1=vbuc2
|
|
// During transition all sprites are black
|
|
lda #BLACK
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1
|
|
// VICII->SPRITES_MCOLOR2 = BLACK
|
|
// [623] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = BLACK -- _deref_pbuc1=vbuc2
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2
|
|
// [624] phi from gameplay_run::@3 to gameplay_run::@4 [phi:gameplay_run::@3->gameplay_run::@4]
|
|
// [624] phi gameplay_run::i1#2 = 0 [phi:gameplay_run::@3->gameplay_run::@4#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// gameplay_run::@4
|
|
__b4:
|
|
// for(char i=0;i<8;i++)
|
|
// [625] if(gameplay_run::i1#2<8) goto gameplay_run::@5 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #8
|
|
bcs !__b5+
|
|
jmp __b5
|
|
!__b5:
|
|
// gameplay_run::@6
|
|
// byteboozer_decrunch(LEVEL_TILES_CRUNCHED)
|
|
// [626] byteboozer_decrunch::crunched = LEVEL_TILES_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<LEVEL_TILES_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>LEVEL_TILES_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [627] call byteboozer_decrunch
|
|
// decrunch level tiles
|
|
jsr byteboozer_decrunch
|
|
// [628] phi from gameplay_run::@6 to gameplay_run::@14 [phi:gameplay_run::@6->gameplay_run::@14]
|
|
// gameplay_run::@14
|
|
// init_level_tile_directions()
|
|
// [629] call init_level_tile_directions
|
|
// Initialize tile directions
|
|
// [926] phi from gameplay_run::@14 to init_level_tile_directions [phi:gameplay_run::@14->init_level_tile_directions]
|
|
jsr init_level_tile_directions
|
|
// [630] phi from gameplay_run::@14 to gameplay_run::@15 [phi:gameplay_run::@14->gameplay_run::@15]
|
|
// gameplay_run::@15
|
|
// init_sprite_pointers()
|
|
// [631] call init_sprite_pointers
|
|
// Set sprite pointers on all screens (in both graphics banks)
|
|
// [898] phi from gameplay_run::@15 to init_sprite_pointers [phi:gameplay_run::@15->init_sprite_pointers]
|
|
jsr init_sprite_pointers
|
|
// [632] phi from gameplay_run::@15 to gameplay_run::@16 [phi:gameplay_run::@15->gameplay_run::@16]
|
|
// gameplay_run::@16
|
|
// level_show()
|
|
// [633] call level_show
|
|
// [968] phi from gameplay_run::@16 to level_show [phi:gameplay_run::@16->level_show]
|
|
jsr level_show
|
|
// level_show()
|
|
// [634] level_show::return#0 = level_show::count#12
|
|
// gameplay_run::@17
|
|
// [635] gameplay_run::$4 = level_show::return#0
|
|
// pill_count = level_show()
|
|
// [636] pill_count = gameplay_run::$4 -- vwuz1=vwuz2
|
|
// Show the level
|
|
lda.z __4
|
|
sta.z pill_count
|
|
lda.z __4+1
|
|
sta.z pill_count+1
|
|
// top_sprites_mc = 0xff
|
|
// [637] top_sprites_mc = $ff -- vbuz1=vbuc1
|
|
// During gameplay all sprites are MC.
|
|
lda #$ff
|
|
sta.z top_sprites_mc
|
|
// side_sprites_mc = 0xff
|
|
// [638] side_sprites_mc = $ff -- vbuz1=vbuc1
|
|
sta.z side_sprites_mc
|
|
// bottom_sprites_mc = 0xff
|
|
// [639] bottom_sprites_mc = $ff -- vbuz1=vbuc1
|
|
sta.z bottom_sprites_mc
|
|
// top_sprites_color = YELLOW
|
|
// [640] top_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
// During gameplay all sprites are yellow
|
|
lda #YELLOW
|
|
sta.z top_sprites_color
|
|
// side_sprites_color = YELLOW
|
|
// [641] side_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
sta.z side_sprites_color
|
|
// bottom_sprites_color = YELLOW
|
|
// [642] bottom_sprites_color = YELLOW -- vbuz1=vbuc1
|
|
sta.z bottom_sprites_color
|
|
// VICII->SPRITES_MC = top_sprites_mc
|
|
// [643] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC) = top_sprites_mc -- _deref_pbuc1=vbuz1
|
|
// Set the initial top colors/MC
|
|
lda.z top_sprites_mc
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC
|
|
// [644] phi from gameplay_run::@17 to gameplay_run::@7 [phi:gameplay_run::@17->gameplay_run::@7]
|
|
// [644] phi gameplay_run::i2#2 = 0 [phi:gameplay_run::@17->gameplay_run::@7#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// Set initial Sprite Color
|
|
// gameplay_run::@7
|
|
__b7:
|
|
// for(char i=0;i<8;i++)
|
|
// [645] if(gameplay_run::i2#2<8) goto gameplay_run::@8 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #8
|
|
bcc __b8
|
|
// gameplay_run::@9
|
|
// VICII->SPRITES_MCOLOR1 = BLUE
|
|
// [646] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1) = BLUE -- _deref_pbuc1=vbuc2
|
|
// Set sprite MC-colors for the game
|
|
lda #BLUE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1
|
|
// VICII->SPRITES_MCOLOR2 = RED
|
|
// [647] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2) = RED -- _deref_pbuc1=vbuc2
|
|
lda #RED
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2
|
|
// phase = 1
|
|
// [648] phase = 1 -- vbuz1=vbuc1
|
|
// Set phase to game
|
|
lda #1
|
|
sta.z phase
|
|
// spawn_all()
|
|
// [649] call spawn_all
|
|
// Spawn pacman and all ghosts
|
|
jsr spawn_all
|
|
// [650] phi from gameplay_run::@9 to gameplay_run::@18 [phi:gameplay_run::@9->gameplay_run::@18]
|
|
// gameplay_run::@18
|
|
// pacman_sound_init()
|
|
// [651] call pacman_sound_init
|
|
// Initialize the game sound
|
|
jsr pacman_sound_init
|
|
// gameplay_run::@19
|
|
// game_playable = 1
|
|
// [652] game_playable = 1 -- vbuz1=vbuc1
|
|
// Start the game play
|
|
lda #1
|
|
sta.z game_playable
|
|
// VICII->CONTROL1 = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
// [653] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM -- _deref_pbuc1=vbuc2
|
|
// Turn on raster after transition
|
|
// Start a hyperscreen with no badlines and open borders
|
|
// Set screen height to 25 lines (preparing for the hyperscreen), enable display
|
|
lda #VICII_RSEL|VICII_DEN|VICII_ECM|VICII_BMM
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
// Wait at least one frames for DEN to take effect
|
|
// gameplay_run::@10
|
|
__b10:
|
|
// while(VICII->RASTER!=0xfb)
|
|
// [654] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fb) goto gameplay_run::@10 -- _deref_pbuc1_neq_vbuc2_then_la1
|
|
lda #$fb
|
|
cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
bne __b10
|
|
// gameplay_run::@11
|
|
__b11:
|
|
// while(VICII->RASTER!=0xfa)
|
|
// [655] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fa) goto gameplay_run::@11 -- _deref_pbuc1_neq_vbuc2_then_la1
|
|
lda #$fa
|
|
cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
bne __b11
|
|
// gameplay_run::@12
|
|
// VICII->CONTROL1 &= ~(VICII_RST8|VICII_RSEL|VICII_DEN)
|
|
// [656] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & ~VICII_RST8|VICII_RSEL|VICII_DEN -- _deref_pbuc1=_deref_pbuc1_band_vbuc2
|
|
// Open lower/upper border using RSEL - and disable all graphics (except sprites)
|
|
// Set up RASTER IRQ to start at irq_screen_top() (RST8=0)
|
|
lda #(VICII_RST8|VICII_RSEL|VICII_DEN)^$ff
|
|
and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1
|
|
// VICII->RASTER = IRQ_SCREEN_TOP_LINE
|
|
// [657] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_SCREEN_TOP_LINE -- _deref_pbuc1=vbuc2
|
|
lda #IRQ_SCREEN_TOP_LINE
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER
|
|
// *HARDWARE_IRQ = &irq_screen_top
|
|
// [658] *HARDWARE_IRQ = &irq_screen_top -- _deref_qprc1=pprc2
|
|
lda #<irq_screen_top
|
|
sta HARDWARE_IRQ
|
|
lda #>irq_screen_top
|
|
sta HARDWARE_IRQ+1
|
|
// VICII->IRQ_ENABLE = IRQ_RASTER
|
|
// [659] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2
|
|
// Enable Raster Interrupt
|
|
lda #IRQ_RASTER
|
|
sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE
|
|
// asm
|
|
// asm { ldaCIA1_INTERRUPT }
|
|
// Acknowledge any timer IRQ
|
|
lda CIA1_INTERRUPT
|
|
// *IRQ_STATUS = 0x0f
|
|
// [661] *IRQ_STATUS = $f -- _deref_pbuc1=vbuc2
|
|
// Acknowledge any VIC IRQ
|
|
lda #$f
|
|
sta IRQ_STATUS
|
|
// gameplay_run::CLI1
|
|
// asm
|
|
// asm { cli }
|
|
cli
|
|
// gameplay_run::@13
|
|
__b13:
|
|
// if(pacman_wins || pacman_lives==0)
|
|
// [663] if(0!=pacman_wins) goto gameplay_run::@return -- 0_neq_vbuz1_then_la1
|
|
lda.z pacman_wins
|
|
bne __breturn
|
|
// gameplay_run::@20
|
|
// [664] if(pacman_lives==0) goto gameplay_run::@return -- vbuz1_eq_0_then_la1
|
|
lda.z pacman_lives
|
|
beq __breturn
|
|
jmp __b13
|
|
// gameplay_run::@return
|
|
__breturn:
|
|
// }
|
|
// [665] return
|
|
rts
|
|
// gameplay_run::@8
|
|
__b8:
|
|
// SPRITES_COLOR[i] = top_sprites_color
|
|
// [666] SPRITES_COLOR[gameplay_run::i2#2] = top_sprites_color -- pbuc1_derefidx_vbuxx=vbuz1
|
|
lda.z top_sprites_color
|
|
sta SPRITES_COLOR,x
|
|
// for(char i=0;i<8;i++)
|
|
// [667] gameplay_run::i2#1 = ++ gameplay_run::i2#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [644] phi from gameplay_run::@8 to gameplay_run::@7 [phi:gameplay_run::@8->gameplay_run::@7]
|
|
// [644] phi gameplay_run::i2#2 = gameplay_run::i2#1 [phi:gameplay_run::@8->gameplay_run::@7#0] -- register_copy
|
|
jmp __b7
|
|
// gameplay_run::@5
|
|
__b5:
|
|
// SPRITES_COLOR[i] = BLACK
|
|
// [668] SPRITES_COLOR[gameplay_run::i1#2] = BLACK -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #BLACK
|
|
sta SPRITES_COLOR,x
|
|
// for(char i=0;i<8;i++)
|
|
// [669] gameplay_run::i1#1 = ++ gameplay_run::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [624] phi from gameplay_run::@5 to gameplay_run::@4 [phi:gameplay_run::@5->gameplay_run::@4]
|
|
// [624] phi gameplay_run::i1#2 = gameplay_run::i1#1 [phi:gameplay_run::@5->gameplay_run::@4#0] -- register_copy
|
|
jmp __b4
|
|
// gameplay_run::@2
|
|
__b2:
|
|
// ((char*)SID)[i] = 0
|
|
// [670] ((char *)SID)[gameplay_run::i#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta SID,x
|
|
// for(char i=0;i<0x2f;i++)
|
|
// [671] gameplay_run::i#1 = ++ gameplay_run::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [618] phi from gameplay_run::@2 to gameplay_run::@1 [phi:gameplay_run::@2->gameplay_run::@1]
|
|
// [618] phi gameplay_run::i#2 = gameplay_run::i#1 [phi:gameplay_run::@2->gameplay_run::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// done_run
|
|
// Show Victory or Game Over Image
|
|
// Returns when the user clicks the joystick button
|
|
done_run: {
|
|
// Show the win graphics
|
|
.label gfx = 5
|
|
.label ypos = $10
|
|
.label xcol = $14
|
|
// game_playable = 0
|
|
// [672] game_playable = 0 -- vbuz1=vbuc1
|
|
// Stop the game play
|
|
lda #0
|
|
sta.z game_playable
|
|
// phase = 0
|
|
// [673] phase = 0 -- vbuz1=vbuc1
|
|
// Set phase to intro
|
|
sta.z phase
|
|
// [674] phi from done_run to done_run::@4 [phi:done_run->done_run::@4]
|
|
// [674] phi done_run::i#2 = 0 [phi:done_run->done_run::@4#0] -- vbuxx=vbuc1
|
|
tax
|
|
// Stop any sound
|
|
// done_run::@4
|
|
__b4:
|
|
// for(char i=0;i<0x2f;i++)
|
|
// [675] if(done_run::i#2<$2f) goto done_run::@5 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$2f
|
|
bcs !__b5+
|
|
jmp __b5
|
|
!__b5:
|
|
// [676] phi from done_run::@4 to done_run::@6 [phi:done_run::@4->done_run::@6]
|
|
// [676] phi done_run::i1#2 = 0 [phi:done_run::@4->done_run::@6#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// Move the bobs to the center to avoid interference while rendering the level
|
|
// done_run::@6
|
|
__b6:
|
|
// for(char i=0;i<4;i++)
|
|
// [677] if(done_run::i1#2<4) goto done_run::@7 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #4
|
|
bcc __b7
|
|
// done_run::@8
|
|
// asm
|
|
// asm { lda#0 }
|
|
// Init music
|
|
lda #0
|
|
// (*musicInit)()
|
|
// [679] callexecute *musicInit -- call__deref_pprc1
|
|
jsr musicInit
|
|
// done_run::@1
|
|
// if(pacman_wins)
|
|
// [680] if(0!=pacman_wins) goto done_run::@2 -- 0_neq_vbuz1_then_la1
|
|
lda.z pacman_wins
|
|
bne __b2
|
|
// done_run::@3
|
|
// byteboozer_decrunch(GAMEOVER_GFX_CRUNCHED)
|
|
// [681] byteboozer_decrunch::crunched = GAMEOVER_GFX_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<GAMEOVER_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>GAMEOVER_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [682] call byteboozer_decrunch
|
|
// decrunch game over graphics
|
|
jsr byteboozer_decrunch
|
|
// [683] phi from done_run::@2 done_run::@3 to done_run::@9 [phi:done_run::@2/done_run::@3->done_run::@9]
|
|
__b1:
|
|
// [683] phi done_run::gfx#4 = WIN_GFX [phi:done_run::@2/done_run::@3->done_run::@9#0] -- pbuz1=pbuc1
|
|
lda #<WIN_GFX
|
|
sta.z gfx
|
|
lda #>WIN_GFX
|
|
sta.z gfx+1
|
|
// [683] phi done_run::xcol#2 = 0 [phi:done_run::@2/done_run::@3->done_run::@9#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xcol
|
|
// done_run::@9
|
|
__b9:
|
|
// for(char xcol=0;xcol<25;xcol++)
|
|
// [684] if(done_run::xcol#2<$19) goto done_run::@11 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xcol
|
|
cmp #$19
|
|
bcc __b3
|
|
// done_run::@10
|
|
// music_play_next = 0
|
|
// [685] music_play_next = 0 -- vbuz1=vbuc1
|
|
// Wait for fire
|
|
lda #0
|
|
sta.z music_play_next
|
|
// [686] phi from done_run::@10 done_run::@15 done_run::@16 to done_run::@14 [phi:done_run::@10/done_run::@15/done_run::@16->done_run::@14]
|
|
// done_run::@14
|
|
__b14:
|
|
// joyfire()
|
|
// [687] call joyfire
|
|
jsr joyfire
|
|
// [688] joyfire::return#0 = joyfire::return#4
|
|
// done_run::@19
|
|
// [689] done_run::$8 = joyfire::return#0
|
|
// while(!joyfire())
|
|
// [690] if(0==done_run::$8) goto done_run::@15 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b15
|
|
// done_run::@return
|
|
// }
|
|
// [691] return
|
|
rts
|
|
// done_run::@15
|
|
__b15:
|
|
// if(music_play_next)
|
|
// [692] if(0==music_play_next) goto done_run::@14 -- 0_eq_vbuz1_then_la1
|
|
lda.z music_play_next
|
|
beq __b14
|
|
// [693] phi from done_run::@15 to done_run::@17 [phi:done_run::@15->done_run::@17]
|
|
// done_run::@17
|
|
// (*musicPlay)()
|
|
// [694] callexecute *musicPlay -- call__deref_pprc1
|
|
//VICII->BG_COLOR=1;
|
|
jsr musicPlay
|
|
// done_run::@16
|
|
// music_play_next = 0
|
|
// [695] music_play_next = 0 -- vbuz1=vbuc1
|
|
//VICII->BG_COLOR=0;
|
|
lda #0
|
|
sta.z music_play_next
|
|
jmp __b14
|
|
// [696] phi from done_run::@9 to done_run::@11 [phi:done_run::@9->done_run::@11]
|
|
__b3:
|
|
// [696] phi done_run::gfx#2 = done_run::gfx#4 [phi:done_run::@9->done_run::@11#0] -- register_copy
|
|
// [696] phi done_run::ypos#2 = 0 [phi:done_run::@9->done_run::@11#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ypos
|
|
// done_run::@11
|
|
__b11:
|
|
// for(char ypos=0;ypos<25;ypos++)
|
|
// [697] if(done_run::ypos#2<$19) goto done_run::@12 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ypos
|
|
cmp #$19
|
|
bcc __b12
|
|
// done_run::@13
|
|
// for(char xcol=0;xcol<25;xcol++)
|
|
// [698] done_run::xcol#1 = ++ done_run::xcol#2 -- vbuz1=_inc_vbuz1
|
|
inc.z xcol
|
|
// [683] phi from done_run::@13 to done_run::@9 [phi:done_run::@13->done_run::@9]
|
|
// [683] phi done_run::gfx#4 = done_run::gfx#2 [phi:done_run::@13->done_run::@9#0] -- register_copy
|
|
// [683] phi done_run::xcol#2 = done_run::xcol#1 [phi:done_run::@13->done_run::@9#1] -- register_copy
|
|
jmp __b9
|
|
// done_run::@12
|
|
__b12:
|
|
// char pixels = *gfx++
|
|
// [699] done_run::pixels#0 = *done_run::gfx#2 -- vbuxx=_deref_pbuz1
|
|
// Render 8px x 1px
|
|
ldy #0
|
|
lda (gfx),y
|
|
tax
|
|
// [700] done_run::gfx#1 = ++ done_run::gfx#2 -- pbuz1=_inc_pbuz1
|
|
inc.z gfx
|
|
bne !+
|
|
inc.z gfx+1
|
|
!:
|
|
// render(xcol, ypos, pixels)
|
|
// [701] render::xcol#0 = done_run::xcol#2
|
|
// [702] render::ypos#0 = done_run::ypos#2
|
|
// [703] render::pixels#0 = done_run::pixels#0 -- vbuz1=vbuxx
|
|
stx.z render.pixels
|
|
// [704] call render
|
|
// [999] phi from done_run::@12 to render [phi:done_run::@12->render]
|
|
// [999] phi render::pixels#4 = render::pixels#0 [phi:done_run::@12->render#0] -- register_copy
|
|
// [999] phi render::xcol#2 = render::xcol#0 [phi:done_run::@12->render#1] -- register_copy
|
|
// [999] phi render::ypos#2 = render::ypos#0 [phi:done_run::@12->render#2] -- register_copy
|
|
jsr render
|
|
// done_run::@18
|
|
// for(char ypos=0;ypos<25;ypos++)
|
|
// [705] done_run::ypos#1 = ++ done_run::ypos#2 -- vbuz1=_inc_vbuz1
|
|
inc.z ypos
|
|
// [696] phi from done_run::@18 to done_run::@11 [phi:done_run::@18->done_run::@11]
|
|
// [696] phi done_run::gfx#2 = done_run::gfx#1 [phi:done_run::@18->done_run::@11#0] -- register_copy
|
|
// [696] phi done_run::ypos#2 = done_run::ypos#1 [phi:done_run::@18->done_run::@11#1] -- register_copy
|
|
jmp __b11
|
|
// done_run::@2
|
|
__b2:
|
|
// byteboozer_decrunch(WIN_GFX_CRUNCHED)
|
|
// [706] byteboozer_decrunch::crunched = WIN_GFX_CRUNCHED -- pbuz1=pbuc1
|
|
lda #<WIN_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched
|
|
lda #>WIN_GFX_CRUNCHED
|
|
sta.z byteboozer_decrunch.crunched+1
|
|
// [707] call byteboozer_decrunch
|
|
// decrunch win graphics
|
|
jsr byteboozer_decrunch
|
|
jmp __b1
|
|
// done_run::@7
|
|
__b7:
|
|
// bobs_xcol[i] = 10
|
|
// [708] bobs_xcol[done_run::i1#2] = $a -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$a
|
|
sta bobs_xcol,x
|
|
// bobs_yfine[i] = 45
|
|
// [709] bobs_yfine[done_run::i1#2] = $2d -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #$2d
|
|
sta bobs_yfine,x
|
|
// bobs_bob_id[i] = 0
|
|
// [710] bobs_bob_id[done_run::i1#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta bobs_bob_id,x
|
|
// for(char i=0;i<4;i++)
|
|
// [711] done_run::i1#1 = ++ done_run::i1#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [676] phi from done_run::@7 to done_run::@6 [phi:done_run::@7->done_run::@6]
|
|
// [676] phi done_run::i1#2 = done_run::i1#1 [phi:done_run::@7->done_run::@6#0] -- register_copy
|
|
jmp __b6
|
|
// done_run::@5
|
|
__b5:
|
|
// ((char*)SID)[i] = 0
|
|
// [712] ((char *)SID)[done_run::i#2] = 0 -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #0
|
|
sta SID,x
|
|
// for(char i=0;i<0x2f;i++)
|
|
// [713] done_run::i#1 = ++ done_run::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [674] phi from done_run::@5 to done_run::@4 [phi:done_run::@5->done_run::@4]
|
|
// [674] phi done_run::i#2 = done_run::i#1 [phi:done_run::@5->done_run::@4#0] -- register_copy
|
|
jmp __b4
|
|
}
|
|
// spawn_all
|
|
// Spawn pacman and all ghosts
|
|
spawn_all: {
|
|
// ghosts_mode_count = 0
|
|
// [714] ghosts_mode_count = 0 -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ghosts_mode_count
|
|
// pacman_substep = 0
|
|
// [715] pacman_substep = 0 -- vbuz1=vbuc1
|
|
sta.z pacman_substep
|
|
// ghost1_substep = 0
|
|
// [716] ghost1_substep = 0 -- vbuz1=vbuc1
|
|
sta.z ghost1_substep
|
|
// ghost2_substep = 0
|
|
// [717] ghost2_substep = 0 -- vbuz1=vbuc1
|
|
sta.z ghost2_substep
|
|
// ghost3_substep = 0
|
|
// [718] ghost3_substep = 0 -- vbuz1=vbuc1
|
|
sta.z ghost3_substep
|
|
// ghost4_substep = 0
|
|
// [719] ghost4_substep = 0 -- vbuz1=vbuc1
|
|
sta.z ghost4_substep
|
|
// pacman_direction = STOP
|
|
// [720] pacman_direction = STOP -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z pacman_direction
|
|
// ghost1_direction = STOP
|
|
// [721] ghost1_direction = STOP -- vbuz1=vbuc1
|
|
sta.z ghost1_direction
|
|
// ghost2_direction = STOP
|
|
// [722] ghost2_direction = STOP -- vbuz1=vbuc1
|
|
sta.z ghost2_direction
|
|
// ghost3_direction = STOP
|
|
// [723] ghost3_direction = STOP -- vbuz1=vbuc1
|
|
sta.z ghost3_direction
|
|
// ghost4_direction = STOP
|
|
// [724] ghost4_direction = STOP -- vbuz1=vbuc1
|
|
sta.z ghost4_direction
|
|
// pacman_xfine = 50
|
|
// [725] pacman_xfine = $32 -- vbuz1=vbuc1
|
|
lda #$32
|
|
sta.z pacman_xfine
|
|
// ghost1_xfine = 50
|
|
// [726] ghost1_xfine = $32 -- vbuz1=vbuc1
|
|
sta.z ghost1_xfine
|
|
// ghost2_xfine = 50
|
|
// [727] ghost2_xfine = $32 -- vbuz1=vbuc1
|
|
sta.z ghost2_xfine
|
|
// ghost3_xfine = 50
|
|
// [728] ghost3_xfine = $32 -- vbuz1=vbuc1
|
|
sta.z ghost3_xfine
|
|
// ghost4_xfine = 50
|
|
// [729] ghost4_xfine = $32 -- vbuz1=vbuc1
|
|
sta.z ghost4_xfine
|
|
// ghost1_yfine = 35
|
|
// [730] ghost1_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z ghost1_yfine
|
|
// ghost2_yfine = 35
|
|
// [731] ghost2_yfine = $23 -- vbuz1=vbuc1
|
|
sta.z ghost2_yfine
|
|
// ghost3_yfine = 35
|
|
// [732] ghost3_yfine = $23 -- vbuz1=vbuc1
|
|
sta.z ghost3_yfine
|
|
// ghost4_yfine = 35
|
|
// [733] ghost4_yfine = $23 -- vbuz1=vbuc1
|
|
sta.z ghost4_yfine
|
|
// pacman_yfine = 62
|
|
// [734] pacman_yfine = $3e -- vbuz1=vbuc1
|
|
lda #$3e
|
|
sta.z pacman_yfine
|
|
// ghost1_respawn = 10
|
|
// [735] ghost1_respawn = $a -- vbuz1=vbuc1
|
|
lda #$a
|
|
sta.z ghost1_respawn
|
|
// ghost2_respawn = 20
|
|
// [736] ghost2_respawn = $14 -- vbuz1=vbuc1
|
|
lda #$14
|
|
sta.z ghost2_respawn
|
|
// ghost3_respawn = 30
|
|
// [737] ghost3_respawn = $1e -- vbuz1=vbuc1
|
|
lda #$1e
|
|
sta.z ghost3_respawn
|
|
// ghost4_respawn = 40
|
|
// [738] ghost4_respawn = $28 -- vbuz1=vbuc1
|
|
lda #$28
|
|
sta.z ghost4_respawn
|
|
// spawn_all::@return
|
|
// }
|
|
// [739] return
|
|
rts
|
|
}
|
|
// level_tile_directions
|
|
// Get the open directions at a given (xtile, ytile) position
|
|
// Returns the open DIRECTIONs as bits
|
|
// If xtile of ytile is outside the legal range the empty tile (0) is returned
|
|
// __register(A) char level_tile_directions(__register(X) char xtile, __register(A) char ytile)
|
|
level_tile_directions: {
|
|
.label ytiles = $31
|
|
// if(xtile>49 || ytile>36)
|
|
// [741] if(level_tile_directions::xtile#5>=$31+1) goto level_tile_directions::@return -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #$31+1
|
|
bcs __b1
|
|
// level_tile_directions::@2
|
|
// [742] if(level_tile_directions::ytile#5>=$24+1) goto level_tile_directions::@return -- vbuaa_ge_vbuc1_then_la1
|
|
cmp #$24+1
|
|
bcs __b1
|
|
// level_tile_directions::@1
|
|
// char* ytiles = LEVEL_TILES_DIRECTIONS + LEVEL_YTILE_OFFSET[ytile]
|
|
// [743] level_tile_directions::$5 = level_tile_directions::ytile#5 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [744] level_tile_directions::ytiles#0 = LEVEL_TILES_DIRECTIONS + LEVEL_YTILE_OFFSET[level_tile_directions::$5] -- pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa
|
|
tay
|
|
clc
|
|
lda #<LEVEL_TILES_DIRECTIONS
|
|
adc LEVEL_YTILE_OFFSET,y
|
|
sta.z ytiles
|
|
lda #>LEVEL_TILES_DIRECTIONS
|
|
adc LEVEL_YTILE_OFFSET+1,y
|
|
sta.z ytiles+1
|
|
// return ytiles[xtile];
|
|
// [745] level_tile_directions::return#0 = level_tile_directions::ytiles#0[level_tile_directions::xtile#5] -- vbuaa=pbuz1_derefidx_vbuxx
|
|
txa
|
|
tay
|
|
lda (ytiles),y
|
|
// [746] phi from level_tile_directions::@1 to level_tile_directions::@return [phi:level_tile_directions::@1->level_tile_directions::@return]
|
|
// [746] phi level_tile_directions::return#2 = level_tile_directions::return#0 [phi:level_tile_directions::@1->level_tile_directions::@return#0] -- register_copy
|
|
rts
|
|
// [746] phi from level_tile_directions level_tile_directions::@2 to level_tile_directions::@return [phi:level_tile_directions/level_tile_directions::@2->level_tile_directions::@return]
|
|
__b1:
|
|
// [746] phi level_tile_directions::return#2 = 0 [phi:level_tile_directions/level_tile_directions::@2->level_tile_directions::@return#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
// level_tile_directions::@return
|
|
// }
|
|
// [747] return
|
|
rts
|
|
}
|
|
// choose_direction
|
|
// Choose the open direction that brings the ghost closest to the target
|
|
// Uses Manhattan distance calculation
|
|
// __zp($33) char choose_direction(__zp($49) char open_directions, __register(Y) char ghost_xtile, __zp($34) char ghost_ytile, __register(X) char target_xtile, __zp($27) char target_ytile)
|
|
choose_direction: {
|
|
.label open_directions = $49
|
|
.label ghost_ytile = $34
|
|
.label target_ytile = $27
|
|
.label xdiff = $4b
|
|
.label ydiff = $34
|
|
.label dist_left = $22
|
|
.label return = $33
|
|
.label direction = $33
|
|
.label dist_min = $22
|
|
// char xdiff = ghost_xtile-target_xtile
|
|
// [749] choose_direction::xdiff#0 = choose_direction::ghost_xtile#4 - choose_direction::target_xtile#4 -- vbuz1=vbuyy_minus_vbuxx
|
|
tya
|
|
stx.z $ff
|
|
sec
|
|
sbc.z $ff
|
|
sta.z xdiff
|
|
// char ydiff = ghost_ytile-target_ytile
|
|
// [750] choose_direction::ydiff#0 = choose_direction::ghost_ytile#4 - choose_direction::target_ytile#4 -- vbuz1=vbuz1_minus_vbuz2
|
|
lda.z ydiff
|
|
sec
|
|
sbc.z target_ytile
|
|
sta.z ydiff
|
|
// open_directions&UP
|
|
// [751] choose_direction::$2 = choose_direction::open_directions#10 & UP -- vbuaa=vbuz1_band_vbuc1
|
|
lda #UP
|
|
and.z open_directions
|
|
// if(open_directions&UP)
|
|
// [752] if(0==choose_direction::$2) goto choose_direction::@1 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b5
|
|
// choose_direction::@5
|
|
// char dist_up = ABS[xdiff] + ABS[ydiff-1]
|
|
// [753] choose_direction::dist_up#0 = ABS[choose_direction::xdiff#0] + (ABS+-1)[choose_direction::ydiff#0] -- vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
|
|
ldy.z xdiff
|
|
lda ABS,y
|
|
ldy.z ydiff
|
|
clc
|
|
adc ABS+-1,y
|
|
tay
|
|
// if(dist_up<dist_min)
|
|
// [754] if(choose_direction::dist_up#0>=$ff) goto choose_direction::@1 -- vbuyy_ge_vbuc1_then_la1
|
|
cpy #$ff
|
|
bcs __b5
|
|
// [755] phi from choose_direction::@5 to choose_direction::@6 [phi:choose_direction::@5->choose_direction::@6]
|
|
// choose_direction::@6
|
|
// [756] phi from choose_direction::@6 to choose_direction::@1 [phi:choose_direction::@6->choose_direction::@1]
|
|
// [756] phi choose_direction::direction#10 = UP [phi:choose_direction::@6->choose_direction::@1#0] -- vbuz1=vbuc1
|
|
lda #UP
|
|
sta.z direction
|
|
// [756] phi choose_direction::dist_min#6 = choose_direction::dist_up#0 [phi:choose_direction::@6->choose_direction::@1#1] -- register_copy
|
|
jmp __b1
|
|
// [756] phi from choose_direction choose_direction::@5 to choose_direction::@1 [phi:choose_direction/choose_direction::@5->choose_direction::@1]
|
|
__b5:
|
|
// [756] phi choose_direction::direction#10 = STOP [phi:choose_direction/choose_direction::@5->choose_direction::@1#0] -- vbuz1=vbuc1
|
|
lda #STOP
|
|
sta.z direction
|
|
// [756] phi choose_direction::dist_min#6 = $ff [phi:choose_direction/choose_direction::@5->choose_direction::@1#1] -- vbuyy=vbuc1
|
|
ldy #$ff
|
|
// choose_direction::@1
|
|
__b1:
|
|
// open_directions&DOWN
|
|
// [757] choose_direction::$4 = choose_direction::open_directions#10 & DOWN -- vbuaa=vbuz1_band_vbuc1
|
|
lda #DOWN
|
|
and.z open_directions
|
|
// if(open_directions&DOWN)
|
|
// [758] if(0==choose_direction::$4) goto choose_direction::@10 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b10
|
|
// choose_direction::@7
|
|
// char dist_down = ABS[xdiff] + ABS[ydiff+1]
|
|
// [759] choose_direction::dist_down#0 = ABS[choose_direction::xdiff#0] + (ABS+1)[choose_direction::ydiff#0] -- vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
|
|
ldx.z xdiff
|
|
lda ABS,x
|
|
ldx.z ydiff
|
|
clc
|
|
adc ABS+1,x
|
|
tax
|
|
// if(dist_down<dist_min)
|
|
// [760] if(choose_direction::dist_down#0>=choose_direction::dist_min#6) goto choose_direction::@11 -- vbuxx_ge_vbuyy_then_la1
|
|
sty.z $ff
|
|
cpx.z $ff
|
|
bcs __b11
|
|
// [762] phi from choose_direction::@7 to choose_direction::@2 [phi:choose_direction::@7->choose_direction::@2]
|
|
// [762] phi choose_direction::direction#8 = DOWN [phi:choose_direction::@7->choose_direction::@2#0] -- vbuz1=vbuc1
|
|
lda #DOWN
|
|
sta.z direction
|
|
// [762] phi choose_direction::dist_min#10 = choose_direction::dist_down#0 [phi:choose_direction::@7->choose_direction::@2#1] -- register_copy
|
|
jmp __b2
|
|
// choose_direction::@11
|
|
__b11:
|
|
// [761] choose_direction::dist_min#14 = choose_direction::dist_min#6 -- vbuxx=vbuyy
|
|
tya
|
|
tax
|
|
// [762] phi from choose_direction::@10 choose_direction::@11 to choose_direction::@2 [phi:choose_direction::@10/choose_direction::@11->choose_direction::@2]
|
|
// [762] phi choose_direction::direction#8 = choose_direction::direction#10 [phi:choose_direction::@10/choose_direction::@11->choose_direction::@2#0] -- register_copy
|
|
// [762] phi choose_direction::dist_min#10 = choose_direction::dist_min#13 [phi:choose_direction::@10/choose_direction::@11->choose_direction::@2#1] -- register_copy
|
|
// choose_direction::@2
|
|
__b2:
|
|
// open_directions&LEFT
|
|
// [763] choose_direction::$6 = choose_direction::open_directions#10 & LEFT -- vbuaa=vbuz1_band_vbuc1
|
|
lda #LEFT
|
|
and.z open_directions
|
|
// if(open_directions&LEFT)
|
|
// [764] if(0==choose_direction::$6) goto choose_direction::@12 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b12
|
|
// choose_direction::@8
|
|
// char dist_left = ABS[xdiff-1] + ABS[ydiff]
|
|
// [765] choose_direction::dist_left#0 = (ABS+-1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] -- vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3
|
|
ldy.z xdiff
|
|
lda ABS+-1,y
|
|
ldy.z ydiff
|
|
clc
|
|
adc ABS,y
|
|
sta.z dist_left
|
|
// if(dist_left<dist_min)
|
|
// [766] if(choose_direction::dist_left#0>=choose_direction::dist_min#10) goto choose_direction::@13 -- vbuz1_ge_vbuxx_then_la1
|
|
stx.z $ff
|
|
cmp.z $ff
|
|
bcs __b13
|
|
// [768] phi from choose_direction::@8 to choose_direction::@3 [phi:choose_direction::@8->choose_direction::@3]
|
|
// [768] phi choose_direction::dist_min#11 = choose_direction::dist_left#0 [phi:choose_direction::@8->choose_direction::@3#0] -- register_copy
|
|
// [768] phi choose_direction::direction#6 = LEFT [phi:choose_direction::@8->choose_direction::@3#1] -- vbuz1=vbuc1
|
|
lda #LEFT
|
|
sta.z direction
|
|
jmp __b3
|
|
// choose_direction::@13
|
|
__b13:
|
|
// [767] choose_direction::dist_min#18 = choose_direction::dist_min#10 -- vbuz1=vbuxx
|
|
stx.z dist_min
|
|
// [768] phi from choose_direction::@12 choose_direction::@13 to choose_direction::@3 [phi:choose_direction::@12/choose_direction::@13->choose_direction::@3]
|
|
// [768] phi choose_direction::dist_min#11 = choose_direction::dist_min#17 [phi:choose_direction::@12/choose_direction::@13->choose_direction::@3#0] -- register_copy
|
|
// [768] phi choose_direction::direction#6 = choose_direction::direction#8 [phi:choose_direction::@12/choose_direction::@13->choose_direction::@3#1] -- register_copy
|
|
// choose_direction::@3
|
|
__b3:
|
|
// open_directions&RIGHT
|
|
// [769] choose_direction::$8 = choose_direction::open_directions#10 & RIGHT -- vbuaa=vbuz1_band_vbuc1
|
|
lda #RIGHT
|
|
and.z open_directions
|
|
// if(open_directions&RIGHT)
|
|
// [770] if(0==choose_direction::$8) goto choose_direction::@4 -- 0_eq_vbuaa_then_la1
|
|
cmp #0
|
|
beq __b4
|
|
// choose_direction::@9
|
|
// char dist_right = ABS[xdiff+1] + ABS[ydiff]
|
|
// [771] choose_direction::dist_right#0 = (ABS+1)[choose_direction::xdiff#0] + ABS[choose_direction::ydiff#0] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2
|
|
ldy.z xdiff
|
|
lda ABS+1,y
|
|
ldy.z ydiff
|
|
clc
|
|
adc ABS,y
|
|
// if(dist_right<dist_min)
|
|
// [772] if(choose_direction::dist_right#0>=choose_direction::dist_min#11) goto choose_direction::@14 -- vbuaa_ge_vbuz1_then_la1
|
|
cmp.z dist_min
|
|
bcs __b4
|
|
// [774] phi from choose_direction::@9 to choose_direction::@4 [phi:choose_direction::@9->choose_direction::@4]
|
|
// [774] phi choose_direction::return#10 = RIGHT [phi:choose_direction::@9->choose_direction::@4#0] -- vbuz1=vbuc1
|
|
lda #RIGHT
|
|
sta.z return
|
|
rts
|
|
// [773] phi from choose_direction::@9 to choose_direction::@14 [phi:choose_direction::@9->choose_direction::@14]
|
|
// choose_direction::@14
|
|
// [774] phi from choose_direction::@14 choose_direction::@3 to choose_direction::@4 [phi:choose_direction::@14/choose_direction::@3->choose_direction::@4]
|
|
// [774] phi choose_direction::return#10 = choose_direction::direction#6 [phi:choose_direction::@14/choose_direction::@3->choose_direction::@4#0] -- register_copy
|
|
// choose_direction::@4
|
|
__b4:
|
|
// choose_direction::@return
|
|
// }
|
|
// [775] return
|
|
rts
|
|
// choose_direction::@12
|
|
__b12:
|
|
// [776] choose_direction::dist_min#17 = choose_direction::dist_min#10 -- vbuz1=vbuxx
|
|
stx.z dist_min
|
|
jmp __b3
|
|
// choose_direction::@10
|
|
__b10:
|
|
// [777] choose_direction::dist_min#13 = choose_direction::dist_min#6 -- vbuxx=vbuyy
|
|
tya
|
|
tax
|
|
jmp __b2
|
|
}
|
|
// memset
|
|
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
|
|
// void * memset(__zp($b) void *str, char c, __zp(5) unsigned int num)
|
|
memset: {
|
|
.label end = 5
|
|
.label dst = $b
|
|
.label num = 5
|
|
.label str = $b
|
|
// if(num>0)
|
|
// [779] if(memset::num#5<=0) goto memset::@return -- vwuz1_le_0_then_la1
|
|
lda.z num
|
|
bne !+
|
|
lda.z num+1
|
|
beq __breturn
|
|
!:
|
|
// memset::@1
|
|
// char* end = (char*)str + num
|
|
// [780] memset::end#0 = (char *)memset::str#6 + memset::num#5 -- pbuz1=pbuz2_plus_vwuz1
|
|
clc
|
|
lda.z end
|
|
adc.z str
|
|
sta.z end
|
|
lda.z end+1
|
|
adc.z str+1
|
|
sta.z end+1
|
|
// [781] memset::dst#4 = (char *)memset::str#6
|
|
// [782] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2]
|
|
// [782] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy
|
|
// memset::@2
|
|
__b2:
|
|
// for(char* dst = str; dst!=end; dst++)
|
|
// [783] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1
|
|
lda.z dst+1
|
|
cmp.z end+1
|
|
bne __b3
|
|
lda.z dst
|
|
cmp.z end
|
|
bne __b3
|
|
// memset::@return
|
|
__breturn:
|
|
// }
|
|
// [784] return
|
|
rts
|
|
// memset::@3
|
|
__b3:
|
|
// *dst = c
|
|
// [785] *memset::dst#2 = 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
tay
|
|
sta (dst),y
|
|
// for(char* dst = str; dst!=end; dst++)
|
|
// [786] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dst
|
|
bne !+
|
|
inc.z dst+1
|
|
!:
|
|
jmp __b2
|
|
}
|
|
// byteboozer_decrunch
|
|
// Decrunch crunched data using ByteBoozer
|
|
// - crunched: Pointer to the start of the crunched data
|
|
// void byteboozer_decrunch(__zp($24) char * volatile crunched)
|
|
byteboozer_decrunch: {
|
|
.label crunched = $24
|
|
// asm
|
|
// asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch }
|
|
ldy crunched
|
|
ldx crunched+1
|
|
jsr b2.Decrunch
|
|
// byteboozer_decrunch::@return
|
|
// }
|
|
// [788] return
|
|
rts
|
|
}
|
|
// merge_code
|
|
// Merge unrolled cycle-exact logic code into an unrolled cycle-exact raster code.
|
|
// The logic-code is merged into the raster code ensuring cycle-exact execution. If a logic-code block does not fit within the remaining cycle-budget of a raster-slot then NOPs/BIT $EA are used to reach the cycle-budget.
|
|
// If the logic-code runs out before the raster-code ends then the remaining raster-slots are filled with NOP/BIT$EA.
|
|
// If the raster-code runs out before the logic-code then the rest of the logic-code is added at the end.
|
|
// An RTS is added at the very end.
|
|
//
|
|
// Parameters:
|
|
// - dest_code: Address where the merged code is placed
|
|
// - raster_code: The unrolled raster code blocks with information about cycles to be filled. Format is decribed below.
|
|
// - logic_code: The unrolled logic code with information about cycles spent. Format is decribed below.
|
|
//
|
|
// Format of unrolled raster code.
|
|
// A number of blocks that have the following structure:
|
|
// <nn>* 0xff <cc>
|
|
// <nn>* : some bytes of code. any number of bytes are allowed.
|
|
// 0xff : signals the end of a block.
|
|
// <cc> : If <cc> is 00 then this is the last block of the unrolled raster code.
|
|
// If <cc> is non-zero it means that <cc> cycles must be spent here (the cycle budget of the slot). The merger merges logic code into the slot and fills with NOP's to match the number of cycles needed.
|
|
//
|
|
// Format of unrolled logic code.
|
|
// A number of blocks that has the following structure:
|
|
// <cc> <nn>* 0xff
|
|
// <cc> : If <cc> is 00 then this is the last block of the unrolled logic code. No more bytes are used.
|
|
// If <cc> is non-zero it holds the number of cycles used by the block of code.
|
|
// <nn>* : some bytes of code. any number of bytes are allowed. This code uses exactly the number of cycles specified by <cc>
|
|
// 0xff : signals the end of a block.
|
|
// void merge_code(__zp(9) char *dest_code, __zp($b) char *raster_code, __zp(5) char *logic_code)
|
|
merge_code: {
|
|
// Cycle-count signalling the last block of the logic-code
|
|
.const LOGIC_EXIT = 0
|
|
// Value signalling the end of a block of the logic-code
|
|
.const LOGIC_END = $ff
|
|
// Cycle-count signalling the last block of the raster-code
|
|
.const RASTER_EXIT = 0
|
|
// Value signalling the end of a block of the raster-code
|
|
.const RASTER_END = $ff
|
|
.label dest_code = 9
|
|
.label raster_code = $b
|
|
.label logic_cycles = 2
|
|
.label logic_code = 5
|
|
// [790] phi from merge_code to merge_code::@1 [phi:merge_code->merge_code::@1]
|
|
// [790] phi merge_code::logic_code#18 = LOGIC_CODE_UNMERGED [phi:merge_code->merge_code::@1#0] -- pbuz1=pbuc1
|
|
lda #<LOGIC_CODE_UNMERGED
|
|
sta.z logic_code
|
|
lda #>LOGIC_CODE_UNMERGED
|
|
sta.z logic_code+1
|
|
// [790] phi merge_code::dest_code#14 = RASTER_CODE [phi:merge_code->merge_code::@1#1] -- pbuz1=pbuc1
|
|
lda #<RASTER_CODE
|
|
sta.z dest_code
|
|
lda #>RASTER_CODE
|
|
sta.z dest_code+1
|
|
// [790] phi merge_code::raster_code#4 = RASTER_CODE_UNMERGED [phi:merge_code->merge_code::@1#2] -- pbuz1=pbuc1
|
|
lda #<RASTER_CODE_UNMERGED
|
|
sta.z raster_code
|
|
lda #>RASTER_CODE_UNMERGED
|
|
sta.z raster_code+1
|
|
// Output raster code until meeting RASTER_END signalling the end of a block
|
|
// merge_code::@1
|
|
__b1:
|
|
// while(*raster_code!=RASTER_END)
|
|
// [791] if(*merge_code::raster_code#4!=merge_code::RASTER_END) goto merge_code::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (raster_code),y
|
|
cmp #RASTER_END
|
|
beq !__b2+
|
|
jmp __b2
|
|
!__b2:
|
|
// merge_code::@3
|
|
// raster_code++;
|
|
// [792] merge_code::raster_code#1 = ++ merge_code::raster_code#4 -- pbuz1=_inc_pbuz1
|
|
inc.z raster_code
|
|
bne !+
|
|
inc.z raster_code+1
|
|
!:
|
|
// char cycle_budget = *raster_code++
|
|
// [793] merge_code::cycle_budget#0 = *merge_code::raster_code#1 -- vbuxx=_deref_pbuz1
|
|
// Find the number of cycles
|
|
ldy #0
|
|
lda (raster_code),y
|
|
tax
|
|
// [794] merge_code::raster_code#2 = ++ merge_code::raster_code#1 -- pbuz1=_inc_pbuz1
|
|
inc.z raster_code
|
|
bne !+
|
|
inc.z raster_code+1
|
|
!:
|
|
// if(cycle_budget==RASTER_EXIT)
|
|
// [795] if(merge_code::cycle_budget#0!=merge_code::RASTER_EXIT) goto merge_code::@4 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #RASTER_EXIT
|
|
bne __b4
|
|
// [796] phi from merge_code::@19 merge_code::@3 to merge_code::@14 [phi:merge_code::@19/merge_code::@3->merge_code::@14]
|
|
__b3:
|
|
// [796] phi merge_code::dest_code#12 = merge_code::dest_code#13 [phi:merge_code::@19/merge_code::@3->merge_code::@14#0] -- register_copy
|
|
// [796] phi merge_code::logic_code#12 = merge_code::logic_code#5 [phi:merge_code::@19/merge_code::@3->merge_code::@14#1] -- register_copy
|
|
// No more raster code - fill in the rest of the logic code
|
|
// merge_code::@14
|
|
// while(*logic_code!=LOGIC_EXIT)
|
|
// [797] if(*merge_code::logic_code#12!=merge_code::LOGIC_EXIT) goto merge_code::@15 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (logic_code),y
|
|
cmp #LOGIC_EXIT
|
|
bne __b15
|
|
// merge_code::@16
|
|
// *dest_code++ = 0x60
|
|
// [798] *merge_code::dest_code#12 = $60 -- _deref_pbuz1=vbuc1
|
|
// And add an RTS
|
|
lda #$60
|
|
sta (dest_code),y
|
|
// merge_code::@return
|
|
// }
|
|
// [799] return
|
|
rts
|
|
// merge_code::@15
|
|
__b15:
|
|
// logic_code++;
|
|
// [800] merge_code::logic_code#3 = ++ merge_code::logic_code#12 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
// [801] phi from merge_code::@15 merge_code::@18 to merge_code::@17 [phi:merge_code::@15/merge_code::@18->merge_code::@17]
|
|
__b5:
|
|
// [801] phi merge_code::dest_code#13 = merge_code::dest_code#12 [phi:merge_code::@15/merge_code::@18->merge_code::@17#0] -- register_copy
|
|
// [801] phi merge_code::logic_code#14 = merge_code::logic_code#3 [phi:merge_code::@15/merge_code::@18->merge_code::@17#1] -- register_copy
|
|
// Fill in the logic-code
|
|
// merge_code::@17
|
|
// while(*logic_code!=LOGIC_END)
|
|
// [802] if(*merge_code::logic_code#14!=merge_code::LOGIC_END) goto merge_code::@18 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (logic_code),y
|
|
cmp #LOGIC_END
|
|
bne __b18
|
|
// merge_code::@19
|
|
// logic_code++;
|
|
// [803] merge_code::logic_code#5 = ++ merge_code::logic_code#14 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
jmp __b3
|
|
// merge_code::@18
|
|
__b18:
|
|
// *dest_code++ = *logic_code++
|
|
// [804] *merge_code::dest_code#13 = *merge_code::logic_code#14 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (logic_code),y
|
|
sta (dest_code),y
|
|
// *dest_code++ = *logic_code++;
|
|
// [805] merge_code::dest_code#6 = ++ merge_code::dest_code#13 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [806] merge_code::logic_code#4 = ++ merge_code::logic_code#14 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
jmp __b5
|
|
// Fit the cycle budget with logic-code
|
|
// [807] phi from merge_code::@3 merge_code::@8 to merge_code::@4 [phi:merge_code::@3/merge_code::@8->merge_code::@4]
|
|
// [807] phi merge_code::dest_code#21 = merge_code::dest_code#14 [phi:merge_code::@3/merge_code::@8->merge_code::@4#0] -- register_copy
|
|
// [807] phi merge_code::logic_code#17 = merge_code::logic_code#18 [phi:merge_code::@3/merge_code::@8->merge_code::@4#1] -- register_copy
|
|
// [807] phi merge_code::cycle_budget#13 = merge_code::cycle_budget#0 [phi:merge_code::@3/merge_code::@8->merge_code::@4#2] -- register_copy
|
|
// merge_code::@4
|
|
__b4:
|
|
// while(cycle_budget>0)
|
|
// [808] if(merge_code::cycle_budget#13<=0) goto merge_code::@10 -- vbuxx_le_0_then_la1
|
|
cpx #0
|
|
beq __b6
|
|
// merge_code::@5
|
|
// char logic_cycles = *logic_code
|
|
// [809] merge_code::logic_cycles#0 = *merge_code::logic_code#17 -- vbuz1=_deref_pbuz2
|
|
// Find the number of logic code cycles
|
|
ldy #0
|
|
lda (logic_code),y
|
|
sta.z logic_cycles
|
|
// cycle_budget-1
|
|
// [810] merge_code::$5 = merge_code::cycle_budget#13 - 1 -- vbuyy=vbuxx_minus_1
|
|
txa
|
|
tay
|
|
dey
|
|
// if(logic_cycles!=LOGIC_EXIT && (logic_cycles < cycle_budget-1 || logic_cycles==cycle_budget))
|
|
// [811] if(merge_code::logic_cycles#0!=merge_code::LOGIC_EXIT) goto merge_code::@20 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #LOGIC_EXIT
|
|
cmp.z logic_cycles
|
|
bne __b20
|
|
// [812] phi from merge_code::@12 merge_code::@13 merge_code::@4 merge_code::@5 to merge_code::@10 [phi:merge_code::@12/merge_code::@13/merge_code::@4/merge_code::@5->merge_code::@10]
|
|
__b6:
|
|
// [812] phi merge_code::dest_code#10 = merge_code::dest_code#3 [phi:merge_code::@12/merge_code::@13/merge_code::@4/merge_code::@5->merge_code::@10#0] -- register_copy
|
|
// [812] phi merge_code::cycle_budget#10 = merge_code::cycle_budget#2 [phi:merge_code::@12/merge_code::@13/merge_code::@4/merge_code::@5->merge_code::@10#1] -- register_copy
|
|
// Fit the cycle budget with NOPs
|
|
// merge_code::@10
|
|
__b10:
|
|
// while(cycle_budget>0)
|
|
// [813] if(merge_code::cycle_budget#10>0) goto merge_code::@11 -- vbuxx_gt_0_then_la1
|
|
cpx #0
|
|
bne __b11
|
|
// [790] phi from merge_code::@10 merge_code::@2 to merge_code::@1 [phi:merge_code::@10/merge_code::@2->merge_code::@1]
|
|
// [790] phi merge_code::logic_code#18 = merge_code::logic_code#17 [phi:merge_code::@10/merge_code::@2->merge_code::@1#0] -- register_copy
|
|
// [790] phi merge_code::dest_code#14 = merge_code::dest_code#10 [phi:merge_code::@10/merge_code::@2->merge_code::@1#1] -- register_copy
|
|
// [790] phi merge_code::raster_code#4 = merge_code::raster_code#2 [phi:merge_code::@10/merge_code::@2->merge_code::@1#2] -- register_copy
|
|
jmp __b1
|
|
// merge_code::@11
|
|
__b11:
|
|
// if(cycle_budget==3)
|
|
// [814] if(merge_code::cycle_budget#10==3) goto merge_code::@12 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #3
|
|
beq __b12
|
|
// merge_code::@13
|
|
// *dest_code++ = 0xEA
|
|
// [815] *merge_code::dest_code#10 = $ea -- _deref_pbuz1=vbuc1
|
|
lda #$ea
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// *dest_code++ = 0xEA;
|
|
// [816] merge_code::dest_code#4 = ++ merge_code::dest_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// cycle_budget -= 2
|
|
// [817] merge_code::cycle_budget#3 = merge_code::cycle_budget#10 - 2 -- vbuxx=vbuxx_minus_2
|
|
// NOP
|
|
dex
|
|
dex
|
|
jmp __b6
|
|
// merge_code::@12
|
|
__b12:
|
|
// *dest_code++ = 0x24
|
|
// [818] *merge_code::dest_code#10 = $24 -- _deref_pbuz1=vbuc1
|
|
lda #$24
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// *dest_code++ = 0x24;
|
|
// [819] merge_code::dest_code#2 = ++ merge_code::dest_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// *dest_code++ = 0xEA
|
|
// [820] *merge_code::dest_code#2 = $ea -- _deref_pbuz1=vbuc1
|
|
// BIT $EA
|
|
lda #$ea
|
|
ldy #0
|
|
sta (dest_code),y
|
|
// *dest_code++ = 0xEA;
|
|
// [821] merge_code::dest_code#3 = ++ merge_code::dest_code#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// cycle_budget -= 3
|
|
// [822] merge_code::cycle_budget#2 = merge_code::cycle_budget#10 - 3 -- vbuxx=vbuxx_minus_vbuc1
|
|
txa
|
|
axs #3
|
|
jmp __b6
|
|
// merge_code::@20
|
|
__b20:
|
|
// if(logic_cycles!=LOGIC_EXIT && (logic_cycles < cycle_budget-1 || logic_cycles==cycle_budget))
|
|
// [823] if(merge_code::logic_cycles#0<merge_code::$5) goto merge_code::@9 -- vbuz1_lt_vbuyy_then_la1
|
|
cpy.z logic_cycles
|
|
beq !+
|
|
bcs __b9
|
|
!:
|
|
// merge_code::@21
|
|
// [824] if(merge_code::logic_cycles#0==merge_code::cycle_budget#13) goto merge_code::@9 -- vbuz1_eq_vbuxx_then_la1
|
|
cpx.z logic_cycles
|
|
beq __b9
|
|
// [812] phi from merge_code::@21 to merge_code::@10 [phi:merge_code::@21->merge_code::@10]
|
|
jmp __b10
|
|
// merge_code::@9
|
|
__b9:
|
|
// logic_code++;
|
|
// [825] merge_code::logic_code#0 = ++ merge_code::logic_code#17 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
// [826] phi from merge_code::@7 merge_code::@9 to merge_code::@6 [phi:merge_code::@7/merge_code::@9->merge_code::@6]
|
|
__b13:
|
|
// [826] phi merge_code::dest_code#15 = merge_code::dest_code#1 [phi:merge_code::@7/merge_code::@9->merge_code::@6#0] -- register_copy
|
|
// [826] phi merge_code::logic_code#10 = merge_code::logic_code#1 [phi:merge_code::@7/merge_code::@9->merge_code::@6#1] -- register_copy
|
|
// Fill in the logic-code
|
|
// merge_code::@6
|
|
// while(*logic_code!=LOGIC_END)
|
|
// [827] if(*merge_code::logic_code#10!=merge_code::LOGIC_END) goto merge_code::@7 -- _deref_pbuz1_neq_vbuc1_then_la1
|
|
ldy #0
|
|
lda (logic_code),y
|
|
cmp #LOGIC_END
|
|
bne __b7
|
|
// merge_code::@8
|
|
// logic_code++;
|
|
// [828] merge_code::logic_code#2 = ++ merge_code::logic_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
// cycle_budget -= logic_cycles
|
|
// [829] merge_code::cycle_budget#1 = merge_code::cycle_budget#13 - merge_code::logic_cycles#0 -- vbuxx=vbuxx_minus_vbuz1
|
|
// Reduce the cycle budget
|
|
txa
|
|
sec
|
|
sbc.z logic_cycles
|
|
tax
|
|
jmp __b4
|
|
// merge_code::@7
|
|
__b7:
|
|
// *dest_code++ = *logic_code++
|
|
// [830] *merge_code::dest_code#15 = *merge_code::logic_code#10 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (logic_code),y
|
|
sta (dest_code),y
|
|
// *dest_code++ = *logic_code++;
|
|
// [831] merge_code::dest_code#1 = ++ merge_code::dest_code#15 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [832] merge_code::logic_code#1 = ++ merge_code::logic_code#10 -- pbuz1=_inc_pbuz1
|
|
inc.z logic_code
|
|
bne !+
|
|
inc.z logic_code+1
|
|
!:
|
|
jmp __b13
|
|
// merge_code::@2
|
|
__b2:
|
|
// *dest_code++ = *raster_code++
|
|
// [833] *merge_code::dest_code#14 = *merge_code::raster_code#4 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (raster_code),y
|
|
sta (dest_code),y
|
|
// *dest_code++ = *raster_code++;
|
|
// [834] merge_code::dest_code#0 = ++ merge_code::dest_code#14 -- pbuz1=_inc_pbuz1
|
|
inc.z dest_code
|
|
bne !+
|
|
inc.z dest_code+1
|
|
!:
|
|
// [835] merge_code::raster_code#0 = ++ merge_code::raster_code#4 -- pbuz1=_inc_pbuz1
|
|
inc.z raster_code
|
|
bne !+
|
|
inc.z raster_code+1
|
|
!:
|
|
jmp __b1
|
|
}
|
|
// init_render_index
|
|
// Initialize the RENDER_INDEX table from sub-tables
|
|
init_render_index: {
|
|
.label __10 = $d
|
|
.label __11 = $d
|
|
.label render_index_xcol = 5
|
|
.label canvas_xcol = 3
|
|
.label canvas = $d
|
|
.label render_index = 5
|
|
.label x_col = $14
|
|
.label render_index_xcol_1 = $b
|
|
.label y_pos = $10
|
|
// Special column in sprite#9
|
|
.label render_ypos_table = 9
|
|
.label __12 = $d
|
|
// [837] phi from init_render_index to init_render_index::@1 [phi:init_render_index->init_render_index::@1]
|
|
// [837] phi init_render_index::render_index_xcol#0 = RENDER_INDEX [phi:init_render_index->init_render_index::@1#0] -- pbuz1=pbuc1
|
|
lda #<RENDER_INDEX
|
|
sta.z render_index_xcol
|
|
lda #>RENDER_INDEX
|
|
sta.z render_index_xcol+1
|
|
// [837] phi init_render_index::x_col#2 = 0 [phi:init_render_index->init_render_index::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z x_col
|
|
// init_render_index::@1
|
|
__b1:
|
|
// for(char x_col=0;x_col<26;x_col++)
|
|
// [838] if(init_render_index::x_col#2<$1a) goto init_render_index::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z x_col
|
|
cmp #$1a
|
|
bcc __b2
|
|
// init_render_index::@3
|
|
// (RENDER_INDEX+24*0x100)[RENDER_OFFSET_YPOS_INC] = 0
|
|
// [839] *(RENDER_INDEX+$18*$100+RENDER_OFFSET_YPOS_INC) = 0 -- _deref_pbuc1=vbuc2
|
|
// Fix the first entry of the inc_offset in the last column (set it to point to 0,0,6,6...)
|
|
lda #0
|
|
sta RENDER_INDEX+$18*$100+RENDER_OFFSET_YPOS_INC
|
|
// (RENDER_INDEX+25*0x100)[RENDER_OFFSET_YPOS_INC] = 0
|
|
// [840] *(RENDER_INDEX+$19*$100+RENDER_OFFSET_YPOS_INC) = 0 -- _deref_pbuc1=vbuc2
|
|
sta RENDER_INDEX+$19*$100+RENDER_OFFSET_YPOS_INC
|
|
// init_render_index::@return
|
|
// }
|
|
// [841] return
|
|
rts
|
|
// init_render_index::@2
|
|
__b2:
|
|
// if(x_col>=24)
|
|
// [842] if(init_render_index::x_col#2<$18) goto init_render_index::@4 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z x_col
|
|
cmp #$18
|
|
bcc __b3
|
|
// [843] phi from init_render_index::@2 to init_render_index::@10 [phi:init_render_index::@2->init_render_index::@10]
|
|
// init_render_index::@10
|
|
// [844] phi from init_render_index::@10 to init_render_index::@4 [phi:init_render_index::@10->init_render_index::@4]
|
|
// [844] phi init_render_index::ypos_inc_offset#7 = $b [phi:init_render_index::@10->init_render_index::@4#0] -- vbuxx=vbuc1
|
|
ldx #$b
|
|
// [844] phi init_render_index::render_ypos_table#4 = RENDER_YPOS_9TH [phi:init_render_index::@10->init_render_index::@4#1] -- pwuz1=pwuc1
|
|
lda #<RENDER_YPOS_9TH
|
|
sta.z render_ypos_table
|
|
lda #>RENDER_YPOS_9TH
|
|
sta.z render_ypos_table+1
|
|
jmp __b4
|
|
// [844] phi from init_render_index::@2 to init_render_index::@4 [phi:init_render_index::@2->init_render_index::@4]
|
|
__b3:
|
|
// [844] phi init_render_index::ypos_inc_offset#7 = 0 [phi:init_render_index::@2->init_render_index::@4#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [844] phi init_render_index::render_ypos_table#4 = RENDER_YPOS [phi:init_render_index::@2->init_render_index::@4#1] -- pwuz1=pwuc1
|
|
lda #<RENDER_YPOS
|
|
sta.z render_ypos_table
|
|
lda #>RENDER_YPOS
|
|
sta.z render_ypos_table+1
|
|
// init_render_index::@4
|
|
__b4:
|
|
// char * canvas_xcol = RENDER_XCOLS[x_col]
|
|
// [845] init_render_index::$9 = init_render_index::x_col#2 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z x_col
|
|
asl
|
|
// [846] init_render_index::canvas_xcol#0 = RENDER_XCOLS[init_render_index::$9] -- pbuz1=qbuc1_derefidx_vbuaa
|
|
tay
|
|
lda RENDER_XCOLS,y
|
|
sta.z canvas_xcol
|
|
lda RENDER_XCOLS+1,y
|
|
sta.z canvas_xcol+1
|
|
// [847] init_render_index::render_index_xcol#7 = init_render_index::render_index_xcol#0 -- pbuz1=pbuz2
|
|
lda.z render_index_xcol
|
|
sta.z render_index_xcol_1
|
|
lda.z render_index_xcol+1
|
|
sta.z render_index_xcol_1+1
|
|
// [848] phi from init_render_index::@4 to init_render_index::@5 [phi:init_render_index::@4->init_render_index::@5]
|
|
// [848] phi init_render_index::ypos_inc_offset#4 = init_render_index::ypos_inc_offset#7 [phi:init_render_index::@4->init_render_index::@5#0] -- register_copy
|
|
// [848] phi init_render_index::render_index_xcol#2 = init_render_index::render_index_xcol#7 [phi:init_render_index::@4->init_render_index::@5#1] -- register_copy
|
|
// [848] phi init_render_index::y_pos#2 = 0 [phi:init_render_index::@4->init_render_index::@5#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y_pos
|
|
// init_render_index::@5
|
|
__b5:
|
|
// for(char y_pos=0;y_pos<148;y_pos+=2)
|
|
// [849] if(init_render_index::y_pos#2<$94) goto init_render_index::@6 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z y_pos
|
|
cmp #$94
|
|
bcc __b6
|
|
// init_render_index::@7
|
|
// render_index += 0x100
|
|
// [850] init_render_index::render_index#1 = init_render_index::render_index_xcol#0 + $100 -- pbuz1=pbuz1_plus_vwuc1
|
|
lda.z render_index
|
|
clc
|
|
adc #<$100
|
|
sta.z render_index
|
|
lda.z render_index+1
|
|
adc #>$100
|
|
sta.z render_index+1
|
|
// for(char x_col=0;x_col<26;x_col++)
|
|
// [851] init_render_index::x_col#1 = ++ init_render_index::x_col#2 -- vbuz1=_inc_vbuz1
|
|
inc.z x_col
|
|
// [837] phi from init_render_index::@7 to init_render_index::@1 [phi:init_render_index::@7->init_render_index::@1]
|
|
// [837] phi init_render_index::render_index_xcol#0 = init_render_index::render_index#1 [phi:init_render_index::@7->init_render_index::@1#0] -- register_copy
|
|
// [837] phi init_render_index::x_col#2 = init_render_index::x_col#1 [phi:init_render_index::@7->init_render_index::@1#1] -- register_copy
|
|
jmp __b1
|
|
// init_render_index::@6
|
|
__b6:
|
|
// char * canvas = canvas_xcol + render_ypos_table[(unsigned int)y_pos]
|
|
// [852] init_render_index::$11 = (unsigned int)init_render_index::y_pos#2 -- vwuz1=_word_vbuz2
|
|
lda.z y_pos
|
|
sta.z __11
|
|
lda #0
|
|
sta.z __11+1
|
|
// [853] init_render_index::$10 = init_render_index::$11 << 1 -- vwuz1=vwuz1_rol_1
|
|
asl.z __10
|
|
rol.z __10+1
|
|
// [854] init_render_index::$12 = init_render_index::render_ypos_table#4 + init_render_index::$10 -- pwuz1=pwuz2_plus_vwuz1
|
|
clc
|
|
lda.z __12
|
|
adc.z render_ypos_table
|
|
sta.z __12
|
|
lda.z __12+1
|
|
adc.z render_ypos_table+1
|
|
sta.z __12+1
|
|
// [855] init_render_index::canvas#0 = init_render_index::canvas_xcol#0 + *init_render_index::$12 -- pbuz1=pbuz2_plus__deref_pwuz1
|
|
ldy #0
|
|
clc
|
|
lda (canvas),y
|
|
adc.z canvas_xcol
|
|
pha
|
|
iny
|
|
lda (canvas),y
|
|
adc.z canvas_xcol+1
|
|
sta.z canvas+1
|
|
pla
|
|
sta.z canvas
|
|
// BYTE0(canvas)
|
|
// [856] init_render_index::$5 = byte0 init_render_index::canvas#0 -- vbuaa=_byte0_pbuz1
|
|
// render_index_xcol[RENDER_OFFSET_CANVAS_LO] = BYTE0(canvas)
|
|
// [857] *init_render_index::render_index_xcol#2 = init_render_index::$5 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (render_index_xcol_1),y
|
|
// BYTE1(canvas)
|
|
// [858] init_render_index::$6 = byte1 init_render_index::canvas#0 -- vbuaa=_byte1_pbuz1
|
|
lda.z canvas+1
|
|
// render_index_xcol[RENDER_OFFSET_CANVAS_HI] = BYTE1(canvas)
|
|
// [859] init_render_index::render_index_xcol#2[RENDER_OFFSET_CANVAS_HI] = init_render_index::$6 -- pbuz1_derefidx_vbuc1=vbuaa
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
sta (render_index_xcol_1),y
|
|
// render_index_xcol[RENDER_OFFSET_YPOS_INC] = ypos_inc_offset
|
|
// [860] init_render_index::render_index_xcol#2[RENDER_OFFSET_YPOS_INC] = init_render_index::ypos_inc_offset#4 -- pbuz1_derefidx_vbuc1=vbuxx
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
txa
|
|
sta (render_index_xcol_1),y
|
|
// ypos_inc_offset += 2
|
|
// [861] init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#4 + 2 -- vbuxx=vbuxx_plus_2
|
|
inx
|
|
inx
|
|
// if(ypos_inc_offset>=23)
|
|
// [862] if(init_render_index::ypos_inc_offset#2<$17) goto init_render_index::@8 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$17
|
|
bcc __b8
|
|
// init_render_index::@9
|
|
// ypos_inc_offset-=21
|
|
// [863] init_render_index::ypos_inc_offset#3 = init_render_index::ypos_inc_offset#2 - $15 -- vbuxx=vbuxx_minus_vbuc1
|
|
txa
|
|
axs #$15
|
|
// [864] phi from init_render_index::@6 init_render_index::@9 to init_render_index::@8 [phi:init_render_index::@6/init_render_index::@9->init_render_index::@8]
|
|
// [864] phi init_render_index::ypos_inc_offset#8 = init_render_index::ypos_inc_offset#2 [phi:init_render_index::@6/init_render_index::@9->init_render_index::@8#0] -- register_copy
|
|
// init_render_index::@8
|
|
__b8:
|
|
// render_index_xcol++;
|
|
// [865] init_render_index::render_index_xcol#1 = ++ init_render_index::render_index_xcol#2 -- pbuz1=_inc_pbuz1
|
|
inc.z render_index_xcol_1
|
|
bne !+
|
|
inc.z render_index_xcol_1+1
|
|
!:
|
|
// y_pos+=2
|
|
// [866] init_render_index::y_pos#1 = init_render_index::y_pos#2 + 2 -- vbuz1=vbuz1_plus_2
|
|
lda.z y_pos
|
|
clc
|
|
adc #2
|
|
sta.z y_pos
|
|
// [848] phi from init_render_index::@8 to init_render_index::@5 [phi:init_render_index::@8->init_render_index::@5]
|
|
// [848] phi init_render_index::ypos_inc_offset#4 = init_render_index::ypos_inc_offset#8 [phi:init_render_index::@8->init_render_index::@5#0] -- register_copy
|
|
// [848] phi init_render_index::render_index_xcol#2 = init_render_index::render_index_xcol#1 [phi:init_render_index::@8->init_render_index::@5#1] -- register_copy
|
|
// [848] phi init_render_index::y_pos#2 = init_render_index::y_pos#1 [phi:init_render_index::@8->init_render_index::@5#2] -- register_copy
|
|
jmp __b5
|
|
}
|
|
// splash_show
|
|
// Show the splash screen
|
|
splash_show: {
|
|
// Show splash screen
|
|
.label splash = $b
|
|
.label ypos = $10
|
|
.label xcol = $14
|
|
// [868] phi from splash_show to splash_show::@1 [phi:splash_show->splash_show::@1]
|
|
// [868] phi splash_show::splash#4 = SPLASH [phi:splash_show->splash_show::@1#0] -- pbuz1=pbuc1
|
|
lda #<SPLASH
|
|
sta.z splash
|
|
lda #>SPLASH
|
|
sta.z splash+1
|
|
// [868] phi splash_show::xcol#2 = 0 [phi:splash_show->splash_show::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xcol
|
|
// splash_show::@1
|
|
__b1:
|
|
// for(char xcol=0;xcol<25;xcol++)
|
|
// [869] if(splash_show::xcol#2<$19) goto splash_show::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xcol
|
|
cmp #$19
|
|
bcc __b4
|
|
// splash_show::@return
|
|
// }
|
|
// [870] return
|
|
rts
|
|
// [871] phi from splash_show::@1 to splash_show::@2 [phi:splash_show::@1->splash_show::@2]
|
|
__b4:
|
|
// [871] phi splash_show::splash#2 = splash_show::splash#4 [phi:splash_show::@1->splash_show::@2#0] -- register_copy
|
|
// [871] phi splash_show::ypos#2 = 0 [phi:splash_show::@1->splash_show::@2#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ypos
|
|
// splash_show::@2
|
|
__b2:
|
|
// for(char ypos=0;ypos<147;ypos++)
|
|
// [872] if(splash_show::ypos#2<$93) goto splash_show::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ypos
|
|
cmp #$93
|
|
bcc __b3
|
|
// splash_show::@4
|
|
// for(char xcol=0;xcol<25;xcol++)
|
|
// [873] splash_show::xcol#1 = ++ splash_show::xcol#2 -- vbuz1=_inc_vbuz1
|
|
inc.z xcol
|
|
// [868] phi from splash_show::@4 to splash_show::@1 [phi:splash_show::@4->splash_show::@1]
|
|
// [868] phi splash_show::splash#4 = splash_show::splash#2 [phi:splash_show::@4->splash_show::@1#0] -- register_copy
|
|
// [868] phi splash_show::xcol#2 = splash_show::xcol#1 [phi:splash_show::@4->splash_show::@1#1] -- register_copy
|
|
jmp __b1
|
|
// splash_show::@3
|
|
__b3:
|
|
// char pixels = *splash++
|
|
// [874] splash_show::pixels#0 = *splash_show::splash#2 -- vbuxx=_deref_pbuz1
|
|
// Render 8px x 1px
|
|
ldy #0
|
|
lda (splash),y
|
|
tax
|
|
// [875] splash_show::splash#1 = ++ splash_show::splash#2 -- pbuz1=_inc_pbuz1
|
|
inc.z splash
|
|
bne !+
|
|
inc.z splash+1
|
|
!:
|
|
// render(xcol, ypos, pixels)
|
|
// [876] render::xcol#1 = splash_show::xcol#2
|
|
// [877] render::ypos#1 = splash_show::ypos#2
|
|
// [878] render::pixels#1 = splash_show::pixels#0 -- vbuz1=vbuxx
|
|
stx.z render.pixels
|
|
// [879] call render
|
|
// [999] phi from splash_show::@3 to render [phi:splash_show::@3->render]
|
|
// [999] phi render::pixels#4 = render::pixels#1 [phi:splash_show::@3->render#0] -- register_copy
|
|
// [999] phi render::xcol#2 = render::xcol#1 [phi:splash_show::@3->render#1] -- register_copy
|
|
// [999] phi render::ypos#2 = render::ypos#1 [phi:splash_show::@3->render#2] -- register_copy
|
|
jsr render
|
|
// splash_show::@5
|
|
// for(char ypos=0;ypos<147;ypos++)
|
|
// [880] splash_show::ypos#1 = ++ splash_show::ypos#2 -- vbuz1=_inc_vbuz1
|
|
inc.z ypos
|
|
// [871] phi from splash_show::@5 to splash_show::@2 [phi:splash_show::@5->splash_show::@2]
|
|
// [871] phi splash_show::splash#2 = splash_show::splash#1 [phi:splash_show::@5->splash_show::@2#0] -- register_copy
|
|
// [871] phi splash_show::ypos#2 = splash_show::ypos#1 [phi:splash_show::@5->splash_show::@2#1] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// init_bobs_restore
|
|
// Initialize bobs_restore with data to prevent crash on the first call
|
|
init_bobs_restore: {
|
|
.label CANVAS_HIDDEN = $ea00
|
|
.label bob_restore = 9
|
|
// [882] phi from init_bobs_restore to init_bobs_restore::@1 [phi:init_bobs_restore->init_bobs_restore::@1]
|
|
// [882] phi init_bobs_restore::bob_restore#5 = bobs_restore [phi:init_bobs_restore->init_bobs_restore::@1#0] -- pbuz1=pbuc1
|
|
lda #<bobs_restore
|
|
sta.z bob_restore
|
|
lda #>bobs_restore
|
|
sta.z bob_restore+1
|
|
// [882] phi init_bobs_restore::bob#2 = 0 [phi:init_bobs_restore->init_bobs_restore::@1#1] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// init_bobs_restore::@1
|
|
__b1:
|
|
// for(char bob=0;bob<NUM_BOBS*2;bob++)
|
|
// [883] if(init_bobs_restore::bob#2<NUM_BOBS*2) goto init_bobs_restore::@3 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #NUM_BOBS*2
|
|
bcc __b2
|
|
// init_bobs_restore::@2
|
|
// logic_tile_ptr = LEVEL_TILES + 64*18 + 12
|
|
// [884] logic_tile_ptr = LEVEL_TILES+(unsigned int)$40*$12+$c -- pbuz1=pbuc1
|
|
// Also set the logic tile to something sane
|
|
lda #<LEVEL_TILES+$40*$12+$c
|
|
sta.z logic_tile_ptr
|
|
lda #>LEVEL_TILES+$40*$12+$c
|
|
sta.z logic_tile_ptr+1
|
|
// logic_tile_xcol = 12
|
|
// [885] logic_tile_xcol = $c -- vbuz1=vbuc1
|
|
lda #$c
|
|
sta.z logic_tile_xcol
|
|
// logic_tile_yfine = 35
|
|
// [886] logic_tile_yfine = $23 -- vbuz1=vbuc1
|
|
lda #$23
|
|
sta.z logic_tile_yfine
|
|
// init_bobs_restore::@return
|
|
// }
|
|
// [887] return
|
|
rts
|
|
// [888] phi from init_bobs_restore::@1 to init_bobs_restore::@3 [phi:init_bobs_restore::@1->init_bobs_restore::@3]
|
|
__b2:
|
|
// [888] phi init_bobs_restore::i#2 = 0 [phi:init_bobs_restore::@1->init_bobs_restore::@3#0] -- vbuyy=vbuc1
|
|
ldy #0
|
|
// init_bobs_restore::@3
|
|
__b3:
|
|
// for(char i=0;i<SIZE_BOB_RESTORE;i++)
|
|
// [889] if(init_bobs_restore::i#2<SIZE_BOB_RESTORE) goto init_bobs_restore::@4 -- vbuyy_lt_vbuc1_then_la1
|
|
cpy #SIZE_BOB_RESTORE
|
|
bcc __b4
|
|
// init_bobs_restore::@5
|
|
// bob_restore[0] = BYTE0(CANVAS_HIDDEN)
|
|
// [890] *init_bobs_restore::bob_restore#5 = 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
tay
|
|
sta (bob_restore),y
|
|
// bob_restore[1] = BYTE1(CANVAS_HIDDEN)
|
|
// [891] init_bobs_restore::bob_restore#5[1] = byte1 init_bobs_restore::CANVAS_HIDDEN -- pbuz1_derefidx_vbuc1=vbuc2
|
|
lda #>CANVAS_HIDDEN
|
|
ldy #1
|
|
sta (bob_restore),y
|
|
// bob_restore[3] = BYTE0(CANVAS_HIDDEN)
|
|
// [892] init_bobs_restore::bob_restore#5[3] = 0 -- pbuz1_derefidx_vbuc1=vbuc2
|
|
lda #0
|
|
ldy #3
|
|
sta (bob_restore),y
|
|
// bob_restore[4] = BYTE1(CANVAS_HIDDEN)
|
|
// [893] init_bobs_restore::bob_restore#5[4] = byte1 init_bobs_restore::CANVAS_HIDDEN -- pbuz1_derefidx_vbuc1=vbuc2
|
|
lda #>CANVAS_HIDDEN
|
|
ldy #4
|
|
sta (bob_restore),y
|
|
// bob_restore += SIZE_BOB_RESTORE
|
|
// [894] init_bobs_restore::bob_restore#1 = init_bobs_restore::bob_restore#5 + SIZE_BOB_RESTORE -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #SIZE_BOB_RESTORE
|
|
clc
|
|
adc.z bob_restore
|
|
sta.z bob_restore
|
|
bcc !+
|
|
inc.z bob_restore+1
|
|
!:
|
|
// for(char bob=0;bob<NUM_BOBS*2;bob++)
|
|
// [895] init_bobs_restore::bob#1 = ++ init_bobs_restore::bob#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [882] phi from init_bobs_restore::@5 to init_bobs_restore::@1 [phi:init_bobs_restore::@5->init_bobs_restore::@1]
|
|
// [882] phi init_bobs_restore::bob_restore#5 = init_bobs_restore::bob_restore#1 [phi:init_bobs_restore::@5->init_bobs_restore::@1#0] -- register_copy
|
|
// [882] phi init_bobs_restore::bob#2 = init_bobs_restore::bob#1 [phi:init_bobs_restore::@5->init_bobs_restore::@1#1] -- register_copy
|
|
jmp __b1
|
|
// init_bobs_restore::@4
|
|
__b4:
|
|
// bob_restore[i] = 0
|
|
// [896] init_bobs_restore::bob_restore#5[init_bobs_restore::i#2] = 0 -- pbuz1_derefidx_vbuyy=vbuc1
|
|
lda #0
|
|
sta (bob_restore),y
|
|
// for(char i=0;i<SIZE_BOB_RESTORE;i++)
|
|
// [897] init_bobs_restore::i#1 = ++ init_bobs_restore::i#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [888] phi from init_bobs_restore::@4 to init_bobs_restore::@3 [phi:init_bobs_restore::@4->init_bobs_restore::@3]
|
|
// [888] phi init_bobs_restore::i#2 = init_bobs_restore::i#1 [phi:init_bobs_restore::@4->init_bobs_restore::@3#0] -- register_copy
|
|
jmp __b3
|
|
}
|
|
// init_sprite_pointers
|
|
// Initialize sprite pointers on all screens (in both graphics banks)
|
|
init_sprite_pointers: {
|
|
.const SPRITE_ID_0 = $ff&(SPRITES_1&$3fff)/$40
|
|
.label sprites_ptr_1 = 9
|
|
.label sprites_ptr_2 = 7
|
|
// [899] phi from init_sprite_pointers to init_sprite_pointers::@1 [phi:init_sprite_pointers->init_sprite_pointers::@1]
|
|
// [899] phi init_sprite_pointers::sprites_ptr_2#5 = SCREENS_2+OFFSET_SPRITE_PTRS [phi:init_sprite_pointers->init_sprite_pointers::@1#0] -- pbuz1=pbuc1
|
|
lda #<SCREENS_2+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_2
|
|
lda #>SCREENS_2+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_2+1
|
|
// [899] phi init_sprite_pointers::sprites_ptr_1#5 = SCREENS_1+OFFSET_SPRITE_PTRS [phi:init_sprite_pointers->init_sprite_pointers::@1#1] -- pbuz1=pbuc1
|
|
lda #<SCREENS_1+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_1
|
|
lda #>SCREENS_1+OFFSET_SPRITE_PTRS
|
|
sta.z sprites_ptr_1+1
|
|
// [899] phi init_sprite_pointers::screen#2 = 0 [phi:init_sprite_pointers->init_sprite_pointers::@1#2] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// init_sprite_pointers::@1
|
|
__b1:
|
|
// for(char screen=0;screen<14;screen++)
|
|
// [900] if(init_sprite_pointers::screen#2<$e) goto init_sprite_pointers::@2 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$e
|
|
bcc __b4
|
|
// init_sprite_pointers::@return
|
|
// }
|
|
// [901] return
|
|
rts
|
|
// [902] phi from init_sprite_pointers::@1 to init_sprite_pointers::@2 [phi:init_sprite_pointers::@1->init_sprite_pointers::@2]
|
|
__b4:
|
|
// [902] phi init_sprite_pointers::sprite#2 = 0 [phi:init_sprite_pointers::@1->init_sprite_pointers::@2#0] -- vbuyy=vbuc1
|
|
ldy #0
|
|
// init_sprite_pointers::@2
|
|
__b2:
|
|
// for(char sprite=0; sprite<8; sprite++)
|
|
// [903] if(init_sprite_pointers::sprite#2<8) goto init_sprite_pointers::@3 -- vbuyy_lt_vbuc1_then_la1
|
|
cpy #8
|
|
bcc __b3
|
|
// init_sprite_pointers::@4
|
|
// sprites_ptr_1 += 0x400
|
|
// [904] init_sprite_pointers::sprites_ptr_1#1 = init_sprite_pointers::sprites_ptr_1#5 + $400 -- pbuz1=pbuz1_plus_vwuc1
|
|
lda.z sprites_ptr_1
|
|
clc
|
|
adc #<$400
|
|
sta.z sprites_ptr_1
|
|
lda.z sprites_ptr_1+1
|
|
adc #>$400
|
|
sta.z sprites_ptr_1+1
|
|
// sprites_ptr_2 += 0x400
|
|
// [905] init_sprite_pointers::sprites_ptr_2#1 = init_sprite_pointers::sprites_ptr_2#5 + $400 -- pbuz1=pbuz1_plus_vwuc1
|
|
lda.z sprites_ptr_2
|
|
clc
|
|
adc #<$400
|
|
sta.z sprites_ptr_2
|
|
lda.z sprites_ptr_2+1
|
|
adc #>$400
|
|
sta.z sprites_ptr_2+1
|
|
// for(char screen=0;screen<14;screen++)
|
|
// [906] init_sprite_pointers::screen#1 = ++ init_sprite_pointers::screen#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [899] phi from init_sprite_pointers::@4 to init_sprite_pointers::@1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1]
|
|
// [899] phi init_sprite_pointers::sprites_ptr_2#5 = init_sprite_pointers::sprites_ptr_2#1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1#0] -- register_copy
|
|
// [899] phi init_sprite_pointers::sprites_ptr_1#5 = init_sprite_pointers::sprites_ptr_1#1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1#1] -- register_copy
|
|
// [899] phi init_sprite_pointers::screen#2 = init_sprite_pointers::screen#1 [phi:init_sprite_pointers::@4->init_sprite_pointers::@1#2] -- register_copy
|
|
jmp __b1
|
|
// init_sprite_pointers::@3
|
|
__b3:
|
|
// SPRITE_ID_0 + screen
|
|
// [907] init_sprite_pointers::$2 = init_sprite_pointers::SPRITE_ID_0 + init_sprite_pointers::screen#2 -- vbuaa=vbuc1_plus_vbuxx
|
|
txa
|
|
clc
|
|
adc #SPRITE_ID_0
|
|
// char sprite_id = SPRITE_ID_0 + screen + sprites_id[sprite]
|
|
// [908] init_sprite_pointers::sprite_id#0 = init_sprite_pointers::$2 + init_sprite_pointers::sprites_id[init_sprite_pointers::sprite#2] -- vbuaa=vbuaa_plus_pbuc1_derefidx_vbuyy
|
|
clc
|
|
adc sprites_id,y
|
|
// sprites_ptr_1[sprite] = sprite_id
|
|
// [909] init_sprite_pointers::sprites_ptr_1#5[init_sprite_pointers::sprite#2] = init_sprite_pointers::sprite_id#0 -- pbuz1_derefidx_vbuyy=vbuaa
|
|
sta (sprites_ptr_1),y
|
|
// sprites_ptr_2[sprite] = sprite_id
|
|
// [910] init_sprite_pointers::sprites_ptr_2#5[init_sprite_pointers::sprite#2] = init_sprite_pointers::sprite_id#0 -- pbuz1_derefidx_vbuyy=vbuaa
|
|
sta (sprites_ptr_2),y
|
|
// for(char sprite=0; sprite<8; sprite++)
|
|
// [911] init_sprite_pointers::sprite#1 = ++ init_sprite_pointers::sprite#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [902] phi from init_sprite_pointers::@3 to init_sprite_pointers::@2 [phi:init_sprite_pointers::@3->init_sprite_pointers::@2]
|
|
// [902] phi init_sprite_pointers::sprite#2 = init_sprite_pointers::sprite#1 [phi:init_sprite_pointers::@3->init_sprite_pointers::@2#0] -- register_copy
|
|
jmp __b2
|
|
.segment Data
|
|
sprites_id: .byte 0, $70, $60, $50, $40, $30, $20, $10
|
|
}
|
|
.segment Code
|
|
// memcpy
|
|
// Copy block of memory (forwards)
|
|
// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination.
|
|
// void * memcpy(void *destination, void *source, unsigned int num)
|
|
memcpy: {
|
|
.label destination = INTRO_MUSIC_CRUNCHED_UPPER
|
|
.label source = INTRO_MUSIC_CRUNCHED
|
|
.label src_end = source+INTRO_MUSIC_CRUNCHED_SIZE
|
|
.label dst = 9
|
|
.label src = 7
|
|
// [913] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1]
|
|
// [913] phi memcpy::dst#2 = (char *)memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1
|
|
lda #<destination
|
|
sta.z dst
|
|
lda #>destination
|
|
sta.z dst+1
|
|
// [913] phi memcpy::src#2 = (char *)memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1
|
|
lda #<source
|
|
sta.z src
|
|
lda #>source
|
|
sta.z src+1
|
|
// memcpy::@1
|
|
__b1:
|
|
// while(src!=src_end)
|
|
// [914] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1
|
|
lda.z src+1
|
|
cmp #>src_end
|
|
bne __b2
|
|
lda.z src
|
|
cmp #<src_end
|
|
bne __b2
|
|
// memcpy::@return
|
|
// }
|
|
// [915] return
|
|
rts
|
|
// memcpy::@2
|
|
__b2:
|
|
// *dst++ = *src++
|
|
// [916] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (src),y
|
|
sta (dst),y
|
|
// *dst++ = *src++;
|
|
// [917] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1
|
|
inc.z dst
|
|
bne !+
|
|
inc.z dst+1
|
|
!:
|
|
// [918] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1
|
|
inc.z src
|
|
bne !+
|
|
inc.z src+1
|
|
!:
|
|
// [913] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1]
|
|
// [913] phi memcpy::dst#2 = memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy
|
|
// [913] phi memcpy::src#2 = memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// joyinit
|
|
// Prepare for joystick control
|
|
joyinit: {
|
|
// CIA1->PORT_A_DDR = 0x00
|
|
// [919] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 0 -- _deref_pbuc1=vbuc2
|
|
// Joystick Read Mode
|
|
lda #0
|
|
sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR
|
|
// joyinit::@return
|
|
// }
|
|
// [920] return
|
|
rts
|
|
}
|
|
// joyfire
|
|
// Return 1 if joy #2 fire is pressed
|
|
joyfire: {
|
|
// CIA1->PORT_A & 0x10
|
|
// [921] joyfire::$0 = *((char *)CIA1) & $10 -- vbuaa=_deref_pbuc1_band_vbuc2
|
|
lda #$10
|
|
and CIA1
|
|
// if( (CIA1->PORT_A & 0x10) == 0 )
|
|
// [922] if(joyfire::$0==0) goto joyfire::@1 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq __b1
|
|
// [924] phi from joyfire to joyfire::@return [phi:joyfire->joyfire::@return]
|
|
// [924] phi joyfire::return#4 = 0 [phi:joyfire->joyfire::@return#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
rts
|
|
// [923] phi from joyfire to joyfire::@1 [phi:joyfire->joyfire::@1]
|
|
// joyfire::@1
|
|
__b1:
|
|
// [924] phi from joyfire::@1 to joyfire::@return [phi:joyfire::@1->joyfire::@return]
|
|
// [924] phi joyfire::return#4 = 1 [phi:joyfire::@1->joyfire::@return#0] -- vbuaa=vbuc1
|
|
lda #1
|
|
// joyfire::@return
|
|
// }
|
|
// [925] return
|
|
rts
|
|
}
|
|
// init_level_tile_directions
|
|
// Initialize the LEVEL_TILES_DIRECTIONS table with bits representing all open (non-blocked) movement directions from a tile
|
|
init_level_tile_directions: {
|
|
.label directions = 9
|
|
.label ytile = $14
|
|
.label open_directions = $f
|
|
.label xtile = $10
|
|
// [927] phi from init_level_tile_directions to init_level_tile_directions::@1 [phi:init_level_tile_directions->init_level_tile_directions::@1]
|
|
// [927] phi init_level_tile_directions::directions#7 = LEVEL_TILES_DIRECTIONS [phi:init_level_tile_directions->init_level_tile_directions::@1#0] -- pbuz1=pbuc1
|
|
lda #<LEVEL_TILES_DIRECTIONS
|
|
sta.z directions
|
|
lda #>LEVEL_TILES_DIRECTIONS
|
|
sta.z directions+1
|
|
// [927] phi init_level_tile_directions::ytile#15 = 0 [phi:init_level_tile_directions->init_level_tile_directions::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z ytile
|
|
// init_level_tile_directions::@1
|
|
__b1:
|
|
// for(char ytile=0;ytile<37;ytile++)
|
|
// [928] if(init_level_tile_directions::ytile#15<$25) goto init_level_tile_directions::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ytile
|
|
cmp #$25
|
|
bcc __b4
|
|
// init_level_tile_directions::@return
|
|
// }
|
|
// [929] return
|
|
rts
|
|
// [930] phi from init_level_tile_directions::@1 to init_level_tile_directions::@2 [phi:init_level_tile_directions::@1->init_level_tile_directions::@2]
|
|
__b4:
|
|
// [930] phi init_level_tile_directions::xtile#10 = 0 [phi:init_level_tile_directions::@1->init_level_tile_directions::@2#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xtile
|
|
// init_level_tile_directions::@2
|
|
__b2:
|
|
// for(char xtile=0; xtile<50; xtile++)
|
|
// [931] if(init_level_tile_directions::xtile#10<$32) goto init_level_tile_directions::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xtile
|
|
cmp #$32
|
|
bcc __b3
|
|
// init_level_tile_directions::@4
|
|
// directions += 0x40
|
|
// [932] init_level_tile_directions::directions#1 = init_level_tile_directions::directions#7 + $40 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$40
|
|
clc
|
|
adc.z directions
|
|
sta.z directions
|
|
bcc !+
|
|
inc.z directions+1
|
|
!:
|
|
// for(char ytile=0;ytile<37;ytile++)
|
|
// [933] init_level_tile_directions::ytile#1 = ++ init_level_tile_directions::ytile#15 -- vbuz1=_inc_vbuz1
|
|
inc.z ytile
|
|
// [927] phi from init_level_tile_directions::@4 to init_level_tile_directions::@1 [phi:init_level_tile_directions::@4->init_level_tile_directions::@1]
|
|
// [927] phi init_level_tile_directions::directions#7 = init_level_tile_directions::directions#1 [phi:init_level_tile_directions::@4->init_level_tile_directions::@1#0] -- register_copy
|
|
// [927] phi init_level_tile_directions::ytile#15 = init_level_tile_directions::ytile#1 [phi:init_level_tile_directions::@4->init_level_tile_directions::@1#1] -- register_copy
|
|
jmp __b1
|
|
// init_level_tile_directions::@3
|
|
__b3:
|
|
// level_tile_get(xtile-1, ytile)
|
|
// [934] level_tile_get::xtile#0 = init_level_tile_directions::xtile#10 - 1 -- vbuxx=vbuz1_minus_1
|
|
ldx.z xtile
|
|
dex
|
|
// [935] level_tile_get::ytile#0 = init_level_tile_directions::ytile#15 -- vbuaa=vbuz1
|
|
lda.z ytile
|
|
// [936] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@3 to level_tile_get [phi:init_level_tile_directions::@3->level_tile_get]
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#0 [phi:init_level_tile_directions::@3->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#0 [phi:init_level_tile_directions::@3->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// level_tile_get(xtile-1, ytile)
|
|
// [937] level_tile_get::return#3 = level_tile_get::return#2
|
|
// init_level_tile_directions::@13
|
|
// [938] init_level_tile_directions::$3 = level_tile_get::return#3 -- vbuxx=vbuaa
|
|
tax
|
|
// if(TILES_TYPE[level_tile_get(xtile-1, ytile)]!=WALL)
|
|
// [939] if(TILES_TYPE[init_level_tile_directions::$3]==WALL) goto init_level_tile_directions::@5 -- pbuc1_derefidx_vbuxx_eq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #WALL
|
|
beq __b9
|
|
// [940] phi from init_level_tile_directions::@13 to init_level_tile_directions::@9 [phi:init_level_tile_directions::@13->init_level_tile_directions::@9]
|
|
// init_level_tile_directions::@9
|
|
// [941] phi from init_level_tile_directions::@9 to init_level_tile_directions::@5 [phi:init_level_tile_directions::@9->init_level_tile_directions::@5]
|
|
// [941] phi init_level_tile_directions::open_directions#11 = LEFT [phi:init_level_tile_directions::@9->init_level_tile_directions::@5#0] -- vbuz1=vbuc1
|
|
lda #LEFT
|
|
sta.z open_directions
|
|
jmp __b5
|
|
// [941] phi from init_level_tile_directions::@13 to init_level_tile_directions::@5 [phi:init_level_tile_directions::@13->init_level_tile_directions::@5]
|
|
__b9:
|
|
// [941] phi init_level_tile_directions::open_directions#11 = 0 [phi:init_level_tile_directions::@13->init_level_tile_directions::@5#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z open_directions
|
|
// init_level_tile_directions::@5
|
|
__b5:
|
|
// level_tile_get(xtile+1, ytile)
|
|
// [942] level_tile_get::xtile#1 = init_level_tile_directions::xtile#10 + 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z xtile
|
|
inx
|
|
// [943] level_tile_get::ytile#1 = init_level_tile_directions::ytile#15 -- vbuaa=vbuz1
|
|
lda.z ytile
|
|
// [944] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@5 to level_tile_get [phi:init_level_tile_directions::@5->level_tile_get]
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#1 [phi:init_level_tile_directions::@5->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#1 [phi:init_level_tile_directions::@5->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// level_tile_get(xtile+1, ytile)
|
|
// [945] level_tile_get::return#4 = level_tile_get::return#2
|
|
// init_level_tile_directions::@14
|
|
// [946] init_level_tile_directions::$7 = level_tile_get::return#4 -- vbuxx=vbuaa
|
|
tax
|
|
// if(TILES_TYPE[level_tile_get(xtile+1, ytile)]!=WALL)
|
|
// [947] if(TILES_TYPE[init_level_tile_directions::$7]==WALL) goto init_level_tile_directions::@6 -- pbuc1_derefidx_vbuxx_eq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #WALL
|
|
beq __b6
|
|
// init_level_tile_directions::@10
|
|
// open_directions |= RIGHT
|
|
// [948] init_level_tile_directions::open_directions#2 = init_level_tile_directions::open_directions#11 | RIGHT -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #RIGHT
|
|
ora.z open_directions
|
|
sta.z open_directions
|
|
// [949] phi from init_level_tile_directions::@10 init_level_tile_directions::@14 to init_level_tile_directions::@6 [phi:init_level_tile_directions::@10/init_level_tile_directions::@14->init_level_tile_directions::@6]
|
|
// [949] phi init_level_tile_directions::open_directions#12 = init_level_tile_directions::open_directions#2 [phi:init_level_tile_directions::@10/init_level_tile_directions::@14->init_level_tile_directions::@6#0] -- register_copy
|
|
// init_level_tile_directions::@6
|
|
__b6:
|
|
// level_tile_get(xtile, ytile-1)
|
|
// [950] level_tile_get::ytile#2 = init_level_tile_directions::ytile#15 - 1 -- vbuaa=vbuz1_minus_1
|
|
lda.z ytile
|
|
sec
|
|
sbc #1
|
|
// [951] level_tile_get::xtile#2 = init_level_tile_directions::xtile#10 -- vbuxx=vbuz1
|
|
ldx.z xtile
|
|
// [952] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@6 to level_tile_get [phi:init_level_tile_directions::@6->level_tile_get]
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#2 [phi:init_level_tile_directions::@6->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#2 [phi:init_level_tile_directions::@6->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// level_tile_get(xtile, ytile-1)
|
|
// [953] level_tile_get::return#10 = level_tile_get::return#2
|
|
// init_level_tile_directions::@15
|
|
// [954] init_level_tile_directions::$11 = level_tile_get::return#10
|
|
// if(TILES_TYPE[level_tile_get(xtile, ytile-1)]!=WALL)
|
|
// [955] if(TILES_TYPE[init_level_tile_directions::$11]==WALL) goto init_level_tile_directions::@7 -- pbuc1_derefidx_vbuaa_eq_vbuc2_then_la1
|
|
tay
|
|
lda TILES_TYPE,y
|
|
cmp #WALL
|
|
beq __b7
|
|
// init_level_tile_directions::@11
|
|
// open_directions |= UP
|
|
// [956] init_level_tile_directions::open_directions#3 = init_level_tile_directions::open_directions#12 | UP -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #UP
|
|
ora.z open_directions
|
|
sta.z open_directions
|
|
// [957] phi from init_level_tile_directions::@11 init_level_tile_directions::@15 to init_level_tile_directions::@7 [phi:init_level_tile_directions::@11/init_level_tile_directions::@15->init_level_tile_directions::@7]
|
|
// [957] phi init_level_tile_directions::open_directions#13 = init_level_tile_directions::open_directions#3 [phi:init_level_tile_directions::@11/init_level_tile_directions::@15->init_level_tile_directions::@7#0] -- register_copy
|
|
// init_level_tile_directions::@7
|
|
__b7:
|
|
// level_tile_get(xtile, ytile+1)
|
|
// [958] level_tile_get::ytile#3 = init_level_tile_directions::ytile#15 + 1 -- vbuaa=vbuz1_plus_1
|
|
lda.z ytile
|
|
clc
|
|
adc #1
|
|
// [959] level_tile_get::xtile#3 = init_level_tile_directions::xtile#10 -- vbuxx=vbuz1
|
|
ldx.z xtile
|
|
// [960] call level_tile_get
|
|
// [1018] phi from init_level_tile_directions::@7 to level_tile_get [phi:init_level_tile_directions::@7->level_tile_get]
|
|
// [1018] phi level_tile_get::ytile#4 = level_tile_get::ytile#3 [phi:init_level_tile_directions::@7->level_tile_get#0] -- register_copy
|
|
// [1018] phi level_tile_get::xtile#4 = level_tile_get::xtile#3 [phi:init_level_tile_directions::@7->level_tile_get#1] -- register_copy
|
|
jsr level_tile_get
|
|
// level_tile_get(xtile, ytile+1)
|
|
// [961] level_tile_get::return#11 = level_tile_get::return#2
|
|
// init_level_tile_directions::@16
|
|
// [962] init_level_tile_directions::$15 = level_tile_get::return#11
|
|
// if(TILES_TYPE[level_tile_get(xtile, ytile+1)]!=WALL)
|
|
// [963] if(TILES_TYPE[init_level_tile_directions::$15]==WALL) goto init_level_tile_directions::@8 -- pbuc1_derefidx_vbuaa_eq_vbuc2_then_la1
|
|
tay
|
|
lda TILES_TYPE,y
|
|
cmp #WALL
|
|
beq __b8
|
|
// init_level_tile_directions::@12
|
|
// open_directions |= DOWN
|
|
// [964] init_level_tile_directions::open_directions#4 = init_level_tile_directions::open_directions#13 | DOWN -- vbuz1=vbuz1_bor_vbuc1
|
|
lda #DOWN
|
|
ora.z open_directions
|
|
sta.z open_directions
|
|
// [965] phi from init_level_tile_directions::@12 init_level_tile_directions::@16 to init_level_tile_directions::@8 [phi:init_level_tile_directions::@12/init_level_tile_directions::@16->init_level_tile_directions::@8]
|
|
// [965] phi init_level_tile_directions::open_directions#8 = init_level_tile_directions::open_directions#4 [phi:init_level_tile_directions::@12/init_level_tile_directions::@16->init_level_tile_directions::@8#0] -- register_copy
|
|
// init_level_tile_directions::@8
|
|
__b8:
|
|
// directions[xtile] = open_directions
|
|
// [966] init_level_tile_directions::directions#7[init_level_tile_directions::xtile#10] = init_level_tile_directions::open_directions#8 -- pbuz1_derefidx_vbuz2=vbuz3
|
|
lda.z open_directions
|
|
ldy.z xtile
|
|
sta (directions),y
|
|
// for(char xtile=0; xtile<50; xtile++)
|
|
// [967] init_level_tile_directions::xtile#1 = ++ init_level_tile_directions::xtile#10 -- vbuz1=_inc_vbuz1
|
|
inc.z xtile
|
|
// [930] phi from init_level_tile_directions::@8 to init_level_tile_directions::@2 [phi:init_level_tile_directions::@8->init_level_tile_directions::@2]
|
|
// [930] phi init_level_tile_directions::xtile#10 = init_level_tile_directions::xtile#1 [phi:init_level_tile_directions::@8->init_level_tile_directions::@2#0] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// level_show
|
|
// Show the level by rendering all tiles
|
|
// Returns the number of pills on the level
|
|
level_show: {
|
|
.label return = 9
|
|
.label level = 7
|
|
.label ytile = $10
|
|
.label tile_right = 2
|
|
.label xtile = $13
|
|
.label count = 9
|
|
.label xcol = $f
|
|
// [969] phi from level_show to level_show::@1 [phi:level_show->level_show::@1]
|
|
// [969] phi level_show::level#8 = LEVEL_TILES [phi:level_show->level_show::@1#0] -- pbuz1=pbuc1
|
|
lda #<LEVEL_TILES
|
|
sta.z level
|
|
lda #>LEVEL_TILES
|
|
sta.z level+1
|
|
// [969] phi level_show::count#12 = 0 [phi:level_show->level_show::@1#1] -- vwuz1=vwuc1
|
|
lda #<0
|
|
sta.z count
|
|
sta.z count+1
|
|
// [969] phi level_show::ytile#2 = 0 [phi:level_show->level_show::@1#2] -- vbuz1=vbuc1
|
|
sta.z ytile
|
|
// level_show::@1
|
|
__b1:
|
|
// for(char ytile=0;ytile<37;ytile++)
|
|
// [970] if(level_show::ytile#2<$25) goto level_show::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z ytile
|
|
cmp #$25
|
|
bcc __b4
|
|
// level_show::@return
|
|
// }
|
|
// [971] return
|
|
rts
|
|
// [972] phi from level_show::@1 to level_show::@2 [phi:level_show::@1->level_show::@2]
|
|
__b4:
|
|
// [972] phi level_show::count#10 = level_show::count#12 [phi:level_show::@1->level_show::@2#0] -- register_copy
|
|
// [972] phi level_show::xtile#3 = 0 [phi:level_show::@1->level_show::@2#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z xtile
|
|
// [972] phi level_show::xcol#2 = 0 [phi:level_show::@1->level_show::@2#2] -- vbuz1=vbuc1
|
|
sta.z xcol
|
|
// level_show::@2
|
|
__b2:
|
|
// for(char xcol=0, xtile=0; xcol<25; xcol++)
|
|
// [973] if(level_show::xcol#2<$19) goto level_show::@3 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z xcol
|
|
cmp #$19
|
|
bcc __b3
|
|
// level_show::@4
|
|
// level += 0x40
|
|
// [974] level_show::level#1 = level_show::level#8 + $40 -- pbuz1=pbuz1_plus_vbuc1
|
|
lda #$40
|
|
clc
|
|
adc.z level
|
|
sta.z level
|
|
bcc !+
|
|
inc.z level+1
|
|
!:
|
|
// for(char ytile=0;ytile<37;ytile++)
|
|
// [975] level_show::ytile#1 = ++ level_show::ytile#2 -- vbuz1=_inc_vbuz1
|
|
inc.z ytile
|
|
// [969] phi from level_show::@4 to level_show::@1 [phi:level_show::@4->level_show::@1]
|
|
// [969] phi level_show::level#8 = level_show::level#1 [phi:level_show::@4->level_show::@1#0] -- register_copy
|
|
// [969] phi level_show::count#12 = level_show::count#10 [phi:level_show::@4->level_show::@1#1] -- register_copy
|
|
// [969] phi level_show::ytile#2 = level_show::ytile#1 [phi:level_show::@4->level_show::@1#2] -- register_copy
|
|
jmp __b1
|
|
// level_show::@3
|
|
__b3:
|
|
// char tile_left = level[xtile++]
|
|
// [976] level_show::tile_left#0 = level_show::level#8[level_show::xtile#3] -- vbuxx=pbuz1_derefidx_vbuz2
|
|
ldy.z xtile
|
|
lda (level),y
|
|
tax
|
|
// [977] level_show::xtile#1 = ++ level_show::xtile#3 -- vbuyy=_inc_vbuz1
|
|
iny
|
|
// if(TILES_TYPE[tile_left]==PILL)
|
|
// [978] if(TILES_TYPE[level_show::tile_left#0]!=PILL) goto level_show::@5 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
|
lda TILES_TYPE,x
|
|
cmp #PILL
|
|
bne __b5
|
|
// level_show::@7
|
|
// count++;
|
|
// [979] level_show::count#1 = ++ level_show::count#10 -- vwuz1=_inc_vwuz1
|
|
inc.z count
|
|
bne !+
|
|
inc.z count+1
|
|
!:
|
|
// [980] phi from level_show::@3 level_show::@7 to level_show::@5 [phi:level_show::@3/level_show::@7->level_show::@5]
|
|
// [980] phi level_show::count#5 = level_show::count#10 [phi:level_show::@3/level_show::@7->level_show::@5#0] -- register_copy
|
|
// level_show::@5
|
|
__b5:
|
|
// char tile_right = level[xtile++]
|
|
// [981] level_show::tile_right#0 = level_show::level#8[level_show::xtile#1] -- vbuz1=pbuz2_derefidx_vbuyy
|
|
lda (level),y
|
|
sta.z tile_right
|
|
// [982] level_show::xtile#2 = ++ level_show::xtile#1 -- vbuz1=_inc_vbuyy
|
|
iny
|
|
sty.z xtile
|
|
// if(TILES_TYPE[tile_right]==PILL)
|
|
// [983] if(TILES_TYPE[level_show::tile_right#0]!=PILL) goto level_show::@6 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
|
lda #PILL
|
|
ldy.z tile_right
|
|
cmp TILES_TYPE,y
|
|
bne __b6
|
|
// level_show::@8
|
|
// count++;
|
|
// [984] level_show::count#2 = ++ level_show::count#5 -- vwuz1=_inc_vwuz1
|
|
inc.z count
|
|
bne !+
|
|
inc.z count+1
|
|
!:
|
|
// [985] phi from level_show::@5 level_show::@8 to level_show::@6 [phi:level_show::@5/level_show::@8->level_show::@6]
|
|
// [985] phi level_show::count#11 = level_show::count#5 [phi:level_show::@5/level_show::@8->level_show::@6#0] -- register_copy
|
|
// level_show::@6
|
|
__b6:
|
|
// render_tiles(xcol, ytile, tile_left, tile_right)
|
|
// [986] render_tiles::xcol#0 = level_show::xcol#2
|
|
// [987] render_tiles::ytile#0 = level_show::ytile#2
|
|
// [988] render_tiles::tile_left#0 = level_show::tile_left#0
|
|
// [989] render_tiles::tile_right#0 = level_show::tile_right#0 -- vbuyy=vbuz1
|
|
ldy.z tile_right
|
|
// [990] call render_tiles
|
|
jsr render_tiles
|
|
// level_show::@9
|
|
// for(char xcol=0, xtile=0; xcol<25; xcol++)
|
|
// [991] level_show::xcol#1 = ++ level_show::xcol#2 -- vbuz1=_inc_vbuz1
|
|
inc.z xcol
|
|
// [972] phi from level_show::@9 to level_show::@2 [phi:level_show::@9->level_show::@2]
|
|
// [972] phi level_show::count#10 = level_show::count#11 [phi:level_show::@9->level_show::@2#0] -- register_copy
|
|
// [972] phi level_show::xtile#3 = level_show::xtile#2 [phi:level_show::@9->level_show::@2#1] -- register_copy
|
|
// [972] phi level_show::xcol#2 = level_show::xcol#1 [phi:level_show::@9->level_show::@2#2] -- register_copy
|
|
jmp __b2
|
|
}
|
|
// pacman_sound_init
|
|
// Sound effects for pacman
|
|
pacman_sound_init: {
|
|
// SID->VOLUME_FILTER_MODE = 0x0f
|
|
// [992] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = $f -- _deref_pbuc1=vbuc2
|
|
// Set master volume
|
|
lda #$f
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE
|
|
// SID->CH1_FREQ = 0
|
|
// [993] *((unsigned int *)SID) = 0 -- _deref_pwuc1=vbuc2
|
|
// Channel 1 is Pacman eating sound
|
|
lda #<0
|
|
sta SID
|
|
sta SID+1
|
|
// SID->CH1_PULSE_WIDTH = 0
|
|
// [994] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH) = 0 -- _deref_pwuc1=vbuc2
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_PULSE_WIDTH+1
|
|
// SID->CH1_CONTROL = 0
|
|
// [995] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL) = 0 -- _deref_pbuc1=vbuc2
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_CONTROL
|
|
// SID->CH1_ATTACK_DECAY = 0
|
|
// [996] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY) = 0 -- _deref_pbuc1=vbuc2
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_ATTACK_DECAY
|
|
// SID->CH1_SUSTAIN_RELEASE = 0xf0
|
|
// [997] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE) = $f0 -- _deref_pbuc1=vbuc2
|
|
lda #$f0
|
|
sta SID+OFFSET_STRUCT_MOS6581_SID_CH1_SUSTAIN_RELEASE
|
|
// pacman_sound_init::@return
|
|
// }
|
|
// [998] return
|
|
rts
|
|
}
|
|
// render
|
|
// Render graphic pixels into the 9 all-border sprites
|
|
// - xcol: x column (0-24). The x-column represents 8 bits of data, 4 mc pixels, 16 on-screen pixels (due to x-expanded sprites)
|
|
// - ypos: y position (0-145). The y-position is a line on the screen. Since every second line is black each ypos represents a 2 pixel distance.
|
|
// - pixels: The pixel data to set
|
|
// void render(__zp($14) char xcol, __zp($10) char ypos, __zp($13) char pixels)
|
|
render: {
|
|
.label render_index_xcol = $d
|
|
.label canvas_offset = 9
|
|
.label canvas1 = 7
|
|
.label canvas2 = 9
|
|
.label ypix = 2
|
|
.label xcol = $14
|
|
.label ypos = $10
|
|
.label pixels = $13
|
|
// char ytile = ypos/4
|
|
// [1000] render::ytile#0 = render::ypos#2 >> 2 -- vbuyy=vbuz1_ror_2
|
|
lda.z ypos
|
|
lsr
|
|
lsr
|
|
tay
|
|
// BYTE1(RENDER_INDEX) + xcol
|
|
// [1001] render::$1 = byte1 RENDER_INDEX + render::xcol#2 -- vbuxx=vbuc1_plus_vbuz1
|
|
lax.z xcol
|
|
axs #-[>RENDER_INDEX]
|
|
// ytile*2
|
|
// [1002] render::$2 = render::ytile#0 << 1 -- vbuaa=vbuyy_rol_1
|
|
tya
|
|
asl
|
|
// MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 )
|
|
// [1003] render::render_index_xcol#0 = render::$1 w= render::$2 -- vwuz1=vbuxx_word_vbuaa
|
|
stx.z render_index_xcol+1
|
|
sta.z render_index_xcol
|
|
// unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] )
|
|
// [1004] render::canvas_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render::render_index_xcol#0) -- vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset+1
|
|
ldy #0
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset
|
|
// char * canvas1 = SPRITES_1 + canvas_offset
|
|
// [1005] render::canvas1#0 = SPRITES_1 + render::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz2
|
|
clc
|
|
adc #<SPRITES_1
|
|
sta.z canvas1
|
|
lda.z canvas_offset+1
|
|
adc #>SPRITES_1
|
|
sta.z canvas1+1
|
|
// char * canvas2 = SPRITES_2 + canvas_offset
|
|
// [1006] render::canvas2#0 = SPRITES_2 + render::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz1
|
|
lda.z canvas2
|
|
clc
|
|
adc #<SPRITES_2
|
|
sta.z canvas2
|
|
lda.z canvas2+1
|
|
adc #>SPRITES_2
|
|
sta.z canvas2+1
|
|
// char ypos_inc_offset = render_index_xcol[RENDER_OFFSET_YPOS_INC]
|
|
// [1007] render::ypos_inc_offset#0 = ((char *)render::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] -- vbuxx=pbuz1_derefidx_vbuc1
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
lda (render_index_xcol),y
|
|
tax
|
|
// char ypix = ypos&3
|
|
// [1008] render::ypix#0 = render::ypos#2 & 3 -- vbuz1=vbuz2_band_vbuc1
|
|
// Move the last few y-pixels
|
|
lda #3
|
|
and.z ypos
|
|
sta.z ypix
|
|
// [1009] phi from render to render::@1 [phi:render->render::@1]
|
|
// [1009] phi render::canvas2#2 = render::canvas2#0 [phi:render->render::@1#0] -- register_copy
|
|
// [1009] phi render::ypos_inc_offset#2 = render::ypos_inc_offset#0 [phi:render->render::@1#1] -- register_copy
|
|
// [1009] phi render::canvas1#2 = render::canvas1#0 [phi:render->render::@1#2] -- register_copy
|
|
// [1009] phi render::i#2 = 0 [phi:render->render::@1#3] -- vbuyy=vbuc1
|
|
ldy #0
|
|
// render::@1
|
|
__b1:
|
|
// for(char i=0;i<ypix;i++)
|
|
// [1010] if(render::i#2<render::ypix#0) goto render::@2 -- vbuyy_lt_vbuz1_then_la1
|
|
cpy.z ypix
|
|
bcc __b2
|
|
// render::@3
|
|
// *canvas1 = pixels
|
|
// [1011] *render::canvas1#2 = render::pixels#4 -- _deref_pbuz1=vbuz2
|
|
// Render the pixels
|
|
lda.z pixels
|
|
ldy #0
|
|
sta (canvas1),y
|
|
// *canvas2 = pixels
|
|
// [1012] *render::canvas2#2 = render::pixels#4 -- _deref_pbuz1=vbuz2
|
|
sta (canvas2),y
|
|
// render::@return
|
|
// }
|
|
// [1013] return
|
|
rts
|
|
// render::@2
|
|
__b2:
|
|
// canvas1 += RENDER_YPOS_INC[ypos_inc_offset]
|
|
// [1014] render::canvas1#1 = render::canvas1#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas1
|
|
sta.z canvas1
|
|
bcc !+
|
|
inc.z canvas1+1
|
|
!:
|
|
// canvas2 += RENDER_YPOS_INC[ypos_inc_offset]
|
|
// [1015] render::canvas2#1 = render::canvas2#2 + RENDER_YPOS_INC[render::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas2
|
|
sta.z canvas2
|
|
bcc !+
|
|
inc.z canvas2+1
|
|
!:
|
|
// ypos_inc_offset++;
|
|
// [1016] render::ypos_inc_offset#1 = ++ render::ypos_inc_offset#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// for(char i=0;i<ypix;i++)
|
|
// [1017] render::i#1 = ++ render::i#2 -- vbuyy=_inc_vbuyy
|
|
iny
|
|
// [1009] phi from render::@2 to render::@1 [phi:render::@2->render::@1]
|
|
// [1009] phi render::canvas2#2 = render::canvas2#1 [phi:render::@2->render::@1#0] -- register_copy
|
|
// [1009] phi render::ypos_inc_offset#2 = render::ypos_inc_offset#1 [phi:render::@2->render::@1#1] -- register_copy
|
|
// [1009] phi render::canvas1#2 = render::canvas1#1 [phi:render::@2->render::@1#2] -- register_copy
|
|
// [1009] phi render::i#2 = render::i#1 [phi:render::@2->render::@1#3] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// level_tile_get
|
|
// Get the level tile at a given (xtile, ytile) position
|
|
// Returns the TILE ID
|
|
// If xtile of ytile is outside the legal range the empty tile (0) is returned
|
|
// __register(A) char level_tile_get(__register(X) char xtile, __register(A) char ytile)
|
|
level_tile_get: {
|
|
.label ytiles = $d
|
|
// if(xtile>49 || ytile>36)
|
|
// [1019] if(level_tile_get::xtile#4>=$31+1) goto level_tile_get::@return -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #$31+1
|
|
bcs __b1
|
|
// level_tile_get::@2
|
|
// [1020] if(level_tile_get::ytile#4>=$24+1) goto level_tile_get::@return -- vbuaa_ge_vbuc1_then_la1
|
|
cmp #$24+1
|
|
bcs __b1
|
|
// level_tile_get::@1
|
|
// char* ytiles = LEVEL_TILES + LEVEL_YTILE_OFFSET[ytile]
|
|
// [1021] level_tile_get::$5 = level_tile_get::ytile#4 << 1 -- vbuaa=vbuaa_rol_1
|
|
asl
|
|
// [1022] level_tile_get::ytiles#0 = LEVEL_TILES + LEVEL_YTILE_OFFSET[level_tile_get::$5] -- pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa
|
|
tay
|
|
clc
|
|
lda #<LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET,y
|
|
sta.z ytiles
|
|
lda #>LEVEL_TILES
|
|
adc LEVEL_YTILE_OFFSET+1,y
|
|
sta.z ytiles+1
|
|
// return ytiles[xtile];
|
|
// [1023] level_tile_get::return#0 = level_tile_get::ytiles#0[level_tile_get::xtile#4] -- vbuaa=pbuz1_derefidx_vbuxx
|
|
txa
|
|
tay
|
|
lda (ytiles),y
|
|
// [1024] phi from level_tile_get::@1 to level_tile_get::@return [phi:level_tile_get::@1->level_tile_get::@return]
|
|
// [1024] phi level_tile_get::return#2 = level_tile_get::return#0 [phi:level_tile_get::@1->level_tile_get::@return#0] -- register_copy
|
|
rts
|
|
// [1024] phi from level_tile_get level_tile_get::@2 to level_tile_get::@return [phi:level_tile_get/level_tile_get::@2->level_tile_get::@return]
|
|
__b1:
|
|
// [1024] phi level_tile_get::return#2 = 0 [phi:level_tile_get/level_tile_get::@2->level_tile_get::@return#0] -- vbuaa=vbuc1
|
|
lda #0
|
|
// level_tile_get::@return
|
|
// }
|
|
// [1025] return
|
|
rts
|
|
}
|
|
// render_tiles
|
|
// Renders 2x1 tiles on the canvas.
|
|
// Tiles are 4x4 px. This renders 8px x 4px.
|
|
// - xcol: The x column position (0-24) (a column is 8 pixels)
|
|
// - ytile: The y tile position (0-37). Tile y position 0 is a special half-tile at the top of the screen.
|
|
// - tile_left: The left tile ID.
|
|
// - tile_right: The right tile ID.
|
|
// void render_tiles(__zp($f) char xcol, __zp($10) char ytile, __register(X) char tile_left, __register(Y) char tile_right)
|
|
render_tiles: {
|
|
.label tile_left_pixels = $d
|
|
.label tile_right_pixels = $b
|
|
.label render_index_xcol = $11
|
|
.label canvas_offset = 3
|
|
.label canvas1 = 5
|
|
.label canvas2 = 3
|
|
.label y = 2
|
|
.label xcol = $f
|
|
.label ytile = $10
|
|
// tile_left*4
|
|
// [1026] render_tiles::$0 = render_tiles::tile_left#0 << 2 -- vbuaa=vbuxx_rol_2
|
|
txa
|
|
asl
|
|
asl
|
|
// char * tile_left_pixels = TILES_LEFT + tile_left*4
|
|
// [1027] render_tiles::tile_left_pixels#0 = TILES_LEFT + render_tiles::$0 -- pbuz1=pbuc1_plus_vbuaa
|
|
clc
|
|
adc #<TILES_LEFT
|
|
sta.z tile_left_pixels
|
|
lda #>TILES_LEFT
|
|
adc #0
|
|
sta.z tile_left_pixels+1
|
|
// tile_right*4
|
|
// [1028] render_tiles::$2 = render_tiles::tile_right#0 << 2 -- vbuaa=vbuyy_rol_2
|
|
tya
|
|
asl
|
|
asl
|
|
// char * tile_right_pixels = TILES_RIGHT + tile_right*4
|
|
// [1029] render_tiles::tile_right_pixels#0 = TILES_RIGHT + render_tiles::$2 -- pbuz1=pbuc1_plus_vbuaa
|
|
clc
|
|
adc #<TILES_RIGHT
|
|
sta.z tile_right_pixels
|
|
lda #>TILES_RIGHT
|
|
adc #0
|
|
sta.z tile_right_pixels+1
|
|
// BYTE1(RENDER_INDEX) + xcol
|
|
// [1030] render_tiles::$4 = byte1 RENDER_INDEX + render_tiles::xcol#0 -- vbuxx=vbuc1_plus_vbuz1
|
|
lax.z xcol
|
|
axs #-[>RENDER_INDEX]
|
|
// ytile*2
|
|
// [1031] render_tiles::$5 = render_tiles::ytile#0 << 1 -- vbuaa=vbuz1_rol_1
|
|
lda.z ytile
|
|
asl
|
|
// MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 )
|
|
// [1032] render_tiles::render_index_xcol#0 = render_tiles::$4 w= render_tiles::$5 -- vwuz1=vbuxx_word_vbuaa
|
|
stx.z render_index_xcol+1
|
|
sta.z render_index_xcol
|
|
// unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] )
|
|
// [1033] render_tiles::canvas_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((char *)render_tiles::render_index_xcol#0) -- vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset+1
|
|
ldy #0
|
|
lda (render_index_xcol),y
|
|
sta.z canvas_offset
|
|
// char * canvas1 = SPRITES_1 + canvas_offset
|
|
// [1034] render_tiles::canvas1#0 = SPRITES_1 + render_tiles::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz2
|
|
clc
|
|
adc #<SPRITES_1
|
|
sta.z canvas1
|
|
lda.z canvas_offset+1
|
|
adc #>SPRITES_1
|
|
sta.z canvas1+1
|
|
// char * canvas2 = SPRITES_2 + canvas_offset
|
|
// [1035] render_tiles::canvas2#0 = SPRITES_2 + render_tiles::canvas_offset#0 -- pbuz1=pbuc1_plus_vwuz1
|
|
lda.z canvas2
|
|
clc
|
|
adc #<SPRITES_2
|
|
sta.z canvas2
|
|
lda.z canvas2+1
|
|
adc #>SPRITES_2
|
|
sta.z canvas2+1
|
|
// char ypos_inc_offset = render_index_xcol[RENDER_OFFSET_YPOS_INC]
|
|
// [1036] render_tiles::ypos_inc_offset#0 = ((char *)render_tiles::render_index_xcol#0)[RENDER_OFFSET_YPOS_INC] -- vbuxx=pbuz1_derefidx_vbuc1
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
lda (render_index_xcol),y
|
|
tax
|
|
// [1037] phi from render_tiles to render_tiles::@1 [phi:render_tiles->render_tiles::@1]
|
|
// [1037] phi render_tiles::ypos_inc_offset#2 = render_tiles::ypos_inc_offset#0 [phi:render_tiles->render_tiles::@1#0] -- register_copy
|
|
// [1037] phi render_tiles::canvas2#2 = render_tiles::canvas2#0 [phi:render_tiles->render_tiles::@1#1] -- register_copy
|
|
// [1037] phi render_tiles::canvas1#2 = render_tiles::canvas1#0 [phi:render_tiles->render_tiles::@1#2] -- register_copy
|
|
// [1037] phi render_tiles::y#2 = 0 [phi:render_tiles->render_tiles::@1#3] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
// render_tiles::@1
|
|
__b1:
|
|
// for(char y=0;y<4;y++)
|
|
// [1038] if(render_tiles::y#2<4) goto render_tiles::@2 -- vbuz1_lt_vbuc1_then_la1
|
|
lda.z y
|
|
cmp #4
|
|
bcc __b2
|
|
// render_tiles::@return
|
|
// }
|
|
// [1039] return
|
|
rts
|
|
// render_tiles::@2
|
|
__b2:
|
|
// char pixels = tile_left_pixels[y] | tile_right_pixels[y]
|
|
// [1040] render_tiles::pixels#0 = render_tiles::tile_left_pixels#0[render_tiles::y#2] | render_tiles::tile_right_pixels#0[render_tiles::y#2] -- vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
|
|
ldy.z y
|
|
lda (tile_left_pixels),y
|
|
ora (tile_right_pixels),y
|
|
// *canvas1 = pixels
|
|
// [1041] *render_tiles::canvas1#2 = render_tiles::pixels#0 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (canvas1),y
|
|
// *canvas2 = pixels
|
|
// [1042] *render_tiles::canvas2#2 = render_tiles::pixels#0 -- _deref_pbuz1=vbuaa
|
|
sta (canvas2),y
|
|
// canvas1 += RENDER_YPOS_INC[ypos_inc_offset]
|
|
// [1043] render_tiles::canvas1#1 = render_tiles::canvas1#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas1
|
|
sta.z canvas1
|
|
bcc !+
|
|
inc.z canvas1+1
|
|
!:
|
|
// canvas2 += RENDER_YPOS_INC[ypos_inc_offset]
|
|
// [1044] render_tiles::canvas2#1 = render_tiles::canvas2#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2] -- pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
|
|
lda RENDER_YPOS_INC,x
|
|
clc
|
|
adc.z canvas2
|
|
sta.z canvas2
|
|
bcc !+
|
|
inc.z canvas2+1
|
|
!:
|
|
// ypos_inc_offset++;
|
|
// [1045] render_tiles::ypos_inc_offset#1 = ++ render_tiles::ypos_inc_offset#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// for(char y=0;y<4;y++)
|
|
// [1046] render_tiles::y#1 = ++ render_tiles::y#2 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [1037] phi from render_tiles::@2 to render_tiles::@1 [phi:render_tiles::@2->render_tiles::@1]
|
|
// [1037] phi render_tiles::ypos_inc_offset#2 = render_tiles::ypos_inc_offset#1 [phi:render_tiles::@2->render_tiles::@1#0] -- register_copy
|
|
// [1037] phi render_tiles::canvas2#2 = render_tiles::canvas2#1 [phi:render_tiles::@2->render_tiles::@1#1] -- register_copy
|
|
// [1037] phi render_tiles::canvas1#2 = render_tiles::canvas1#1 [phi:render_tiles::@2->render_tiles::@1#2] -- register_copy
|
|
// [1037] phi render_tiles::y#2 = render_tiles::y#1 [phi:render_tiles::@2->render_tiles::@1#3] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// File Data
|
|
.segment Data
|
|
// The byteboozer decruncher
|
|
BYTEBOOZER:
|
|
.const B2_ZP_BASE = $fc
|
|
#import "byteboozer_decrunch.asm"
|
|
|
|
// Pacman eating sound
|
|
PACMAN_CH1_FREQ_HI: .byte $23, $1d, $1a, $17, $15, $12, 0, 0, 0, 0, 0, $19, $1a, $1c, $1d, $20, $23, 0, 0, 0, 0, 0
|
|
PACMAN_CH1_CONTROL: .byte $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0, $21, $21, $21, $21, $21, $21, 0, 0, 0, 0, 0
|
|
// Address of the first pixel each x column
|
|
RENDER_XCOLS: .word 0, 1, 2, $400, $401, $402, $800, $801, $802, $c00, $c01, $c02, $1000, $1001, $1002, $1400, $1401, $1402, $1800, $1801, $1802, $1c00, $1c01, $1c02, 0, 0
|
|
// Offset for each y-position from the first pixel of an X column
|
|
RENDER_YPOS: .word 0, 0, 0, 6, $c, $12, $18, $1e, $24, $2a, $30, $36, $3c, $40+3, $40+9, $40+$f, $40+$15, $40+$1b, $40+$21, $40+$27, $40+$2d, $40+$33, $40+$39, $80, $80+6, $80+$c, $80+$12, $80+$18, $80+$1e, $80+$24, $80+$2a, $80+$30, $80+$36, $80+$3c, $c0+3, $c0+9, $c0+$f, $c0+$15, $c0+$1b, $c0+$21, $c0+$27, $c0+$2d, $c0+$33, $c0+$39, $100, $100+6, $100+$c, $100+$12, $100+$18, $100+$1e, $100+$24, $100+$2a, $100+$30, $100+$36, $100+$3c, $140+3, $140+9, $140+$f, $140+$15, $140+$1b, $140+$21, $140+$27, $140+$2d, $140+$33, $140+$39, $180, $180+6, $180+$c, $180+$12, $180+$18, $180+$1e, $180+$24, $180+$2a, $180+$30, $180+$36, $180+$3c, $1c0+3, $1c0+9, $1c0+$f, $1c0+$15, $1c0+$1b, $1c0+$21, $1c0+$27, $1c0+$2d, $1c0+$33, $1c0+$39, $200, $200+6, $200+$c, $200+$12, $200+$18, $200+$1e, $200+$24, $200+$2a, $200+$30, $200+$36, $200+$3c, $240+3, $240+9, $240+$f, $240+$15, $240+$1b, $240+$21, $240+$27, $240+$2d, $240+$33, $240+$39, $280, $280+6, $280+$c, $280+$12, $280+$18, $280+$1e, $280+$24, $280+$2a, $280+$30, $280+$36, $280+$3c, $2c0+3, $2c0+9, $2c0+$f, $2c0+$15, $2c0+$1b, $2c0+$21, $2c0+$27, $2c0+$2d, $2c0+$33, $2c0+$39, $300, $300+6, $300+$c, $300+$12, $300+$18, $300+$1e, $300+$24, $300+$2a, $300+$30, $300+$36, $300+$3c, $340+3, $340+9, $340+$f, $340+$15, $340+$1b, $340+$21, $340+$27, $340+$2d, $340+$33, $340+$39
|
|
// Offset for each y-position from the first pixel of an X column in sprite#9
|
|
RENDER_YPOS_9TH: .word 3, 3, 3, 9, $f, $15, $1b, $21, $27, $2d, $33, $39, $40, $40+6, $40+$c, $40+$12, $40+$18, $40+$1e, $40+$24, $40+$2a, $40+$30, $40+$36, $40+$3c, $80+3, $80+9, $80+$f, $80+$15, $80+$1b, $80+$21, $80+$27, $80+$2d, $80+$33, $80+$39, $c0, $c0+6, $c0+$c, $c0+$12, $c0+$18, $c0+$1e, $c0+$24, $c0+$2a, $c0+$30, $c0+$36, $c0+$3c, $100+3, $100+9, $100+$f, $100+$15, $100+$1b, $100+$21, $100+$27, $100+$2d, $100+$33, $100+$39, $140, $140+6, $140+$c, $140+$12, $140+$18, $140+$1e, $140+$24, $140+$2a, $140+$30, $140+$36, $140+$3c, $180+3, $180+9, $180+$f, $180+$15, $180+$1b, $180+$21, $180+$27, $180+$2d, $180+$33, $180+$39, $1c0, $1c0+6, $1c0+$c, $1c0+$12, $1c0+$18, $1c0+$1e, $1c0+$24, $1c0+$2a, $1c0+$30, $1c0+$36, $1c0+$3c, $200+3, $200+9, $200+$f, $200+$15, $200+$1b, $200+$21, $200+$27, $200+$2d, $200+$33, $200+$39, $240, $240+6, $240+$c, $240+$12, $240+$18, $240+$1e, $240+$24, $240+$2a, $240+$30, $240+$36, $240+$3c, $280+3, $280+9, $280+$f, $280+$15, $280+$1b, $280+$21, $280+$27, $280+$2d, $280+$33, $280+$39, $2c0, $2c0+6, $2c0+$c, $2c0+$12, $2c0+$18, $2c0+$1e, $2c0+$24, $2c0+$2a, $2c0+$30, $2c0+$36, $2c0+$3c, $300+3, $300+9, $300+$f, $300+$15, $300+$1b, $300+$21, $300+$27, $300+$2d, $300+$33, $300+$39, $340, $340+6, $340+$c, $340+$12, $340+$18, $340+$1e, $340+$24, $340+$2a, $340+$30, $340+$36, $340+$3c
|
|
// Increment for each y-position from the first pixel of an X column
|
|
.align $20
|
|
RENDER_YPOS_INC: .byte 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7
|
|
// The BOB x column position (0-24) (a column is 8 pixels)
|
|
bobs_xcol: .byte $a, $a, $a, $a, $a
|
|
// The BOB y fine position (0-99). The y-position is a line on the screen. Since every second line is black each ypos represents a 2 pixel distance.
|
|
bobs_yfine: .byte $2d, $2d, $2d, $2d, $2d
|
|
// The BOB ID in the BOB data tables
|
|
bobs_bob_id: .byte 0, 0, 0, 0, 0
|
|
// The BOB restore data: 18 bytes per BOB. Doubled for double-buffering.
|
|
// char * left_canvas;
|
|
// char left_ypos_inc_offset;
|
|
// char * right_canvas;
|
|
// char right_ypos_inc_offset;
|
|
// char[12] restore_pixels;
|
|
.align $100
|
|
bobs_restore: .fill NUM_BOBS*SIZE_BOB_RESTORE*2, 0
|
|
.segment Init
|
|
// The level represented as 4x4 px tiles. Each byte is the ID of a tile from the tile set.
|
|
// The level is 50 tiles * 37 tiles. The first tile line are special half-tiles (where only the last 2 pixel rows are shown).
|
|
// The level data is organized as 37 rows of 50 tile IDs.
|
|
LEVEL_TILES_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = LEVEL_TILES "LEVEL TILE GRAPHICS"
|
|
.var pic_level = LoadPicture("pacman-tiled.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// Maps the tile pixels (a 16 bit number) to the tile ID
|
|
.var TILESET = Hashtable()
|
|
// Maps the tile ID to the pixels (a 16 bit number)
|
|
.var TILESET_BY_ID = Hashtable()
|
|
// Tile ID 0 is empty
|
|
.eval TILESET.put(0, 0)
|
|
.eval TILESET_BY_ID.put(0, 0)
|
|
|
|
.align $100
|
|
// TABLE LEVEL_TILES[64*37]
|
|
// The level is 50 tiles * 37 tiles. The first tile line are special half-tiles (where only the last 2 pixel rows are shown).
|
|
// The level data is organized as 37 rows of 64 bytes containing tile IDs. (the last 14 are unused to achieve 64-byte alignment)
|
|
.for(var ytile=0; ytile<37; ytile++) {
|
|
.for(var xtile=0; xtile<50; xtile++) {
|
|
// Find the tile pixels (4x4 px - 16 bits)
|
|
.var pixels = 0;
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = pic_level.getMulticolorByte(xtile/2,ytile*4+i)
|
|
.if((xtile&1)==0) {
|
|
// left nibble
|
|
.eval pix = floor(pix / $10)
|
|
} else {
|
|
// right nibble
|
|
.eval pix = pix & $0f
|
|
}
|
|
.eval pixels = pixels*$10 + pix
|
|
}
|
|
.var tile_id = 0
|
|
.if(TILESET.containsKey(pixels)) {
|
|
.eval tile_id = TILESET.get(pixels)
|
|
} else {
|
|
.eval tile_id = TILESET.keys().size()
|
|
.eval TILESET.put(pixels, tile_id)
|
|
.eval TILESET_BY_ID.put(tile_id, pixels)
|
|
// .print "tile "+tile_id+" : "+toHexString(pixels,4)
|
|
}
|
|
// Output the tile ID
|
|
.byte tile_id
|
|
}
|
|
.fill 14, 0
|
|
}
|
|
|
|
.align $100
|
|
// TABLE char TILES_LEFT[0x80]
|
|
// The left tile graphics. A tile is 4x4 px. The left tiles contain tile graphics for the 4 left bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix<<4
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
|
|
.align $80
|
|
// TABLE char TILES_RIGHT[0x80]
|
|
// The right tile graphics. A tile is 4x4 px. The right tiles contain tile graphics for the 4 right bits of a char. Each tile is 4 bytes.
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
.byte pix
|
|
.eval pixels = pixels << 4
|
|
}
|
|
}
|
|
.align $80
|
|
// TABLE char TILES_TYPE[0x20]
|
|
// 0: empty (all black), 1:pill, 2:powerup, 4: wall (contains blue pixels)
|
|
.for(var tile_id=0;tile_id<TILESET_BY_ID.keys().size();tile_id++) {
|
|
.var pixels = TILESET_BY_ID.get(tile_id)
|
|
.var tile_type = 0
|
|
.if(pixels==$0220) .eval tile_type=1 // 1:pill
|
|
.if(pixels==$aaaa) .eval tile_type=2 // 2:powerup
|
|
.for(var i=0; i<4; i++) {
|
|
.var pix = (pixels & $f000) >> 12
|
|
// Detect wall - any blue pixels (%01)
|
|
.if( (pix&%0100)==%0100) .eval tile_type = 4; // 4:wall
|
|
.if( (pix&%0001)==%0001) .eval tile_type = 4; // 4:wall
|
|
.eval pixels = pixels << 4
|
|
}
|
|
.byte tile_type
|
|
//.print "tile "+tile_id+" gfx "+toHexString(TILESET_BY_ID.get(tile_id),4) + " type "+tile_type
|
|
}
|
|
|
|
}
|
|
|
|
// BOB data: One table per bob byte (left/right, mask/pixels = 4 tables). The index into the table is the bob_id + row*BOB_ROW_SIZE.
|
|
BOB_GRAPHICS_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = BOB_MASK_LEFT "BOB GRAPHICS TABLES"
|
|
.var bobs_pic = LoadPicture("pacman-bobs.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// TABLE char BOB_MASK_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(0,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_MASK_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,24+scroll*6+row)
|
|
.for(var blue=0; blue<8;blue++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(1,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_LEFT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(2+ghost*2,48+scroll*6+row)
|
|
}
|
|
// TABLE char BOB_PIXEL_RIGT[BOB_ROW_SIZE*6]
|
|
.for(var row=0; row<6;row++) {
|
|
.align BOB_ROW_SIZE
|
|
.for(var pac=0; pac<9;pac++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+pac*2,scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,24+scroll*6+row)
|
|
.for(var ghost=0; ghost<8;ghost++)
|
|
.for(var scroll=0; scroll<4;scroll++)
|
|
.byte bobs_pic.getMulticolorByte(3+ghost*2,48+scroll*6+row)
|
|
}
|
|
}
|
|
|
|
// Splash screen 25 xcol * 147 ypos bytes
|
|
SPLASH_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = SPLASH "SPLASH SCREEN" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_splash_mc = LoadPicture("pacman-splash.png", List().add($000000, $352879, $bfce72, $883932))
|
|
// 0:BLACK, 1:YELLOW
|
|
.var pic_splash_yellow = LoadPicture("pacman-splash.png", List().add($000000, $bfce72))
|
|
// 0:BLACK, 1:BLUE
|
|
.var pic_splash_blue = LoadPicture("pacman-splash.png", List().add($000000, $352879))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<147; ypos++) {
|
|
.if(ypos>25 && ypos<123) {
|
|
// Sprites in the sides are in single color blue on splash screen
|
|
.byte pic_splash_blue.getSinglecolorByte(xcol,ypos)
|
|
} else .if(xcol>2 && xcol<21) {
|
|
// Sprites 2-7 are in single color yellow on splash screen
|
|
.byte pic_splash_yellow.getSinglecolorByte(xcol,ypos)
|
|
} else {
|
|
// Sprites 0&1 are in multi color on splash screen
|
|
.byte pic_splash_mc.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Victory graphics 25 xcol * 25 ypos bytes
|
|
WIN_GFX_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = WIN_GFX "WIN GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_win = LoadPicture("pacman-win.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_win.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Game Over graphics 25 xcol * 25 ypos bytes
|
|
GAMEOVER_GFX_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = GAMEOVER_GFX "GAMEOVER GRAPHICS" // 00:BLACK, 01:BLUE, 10:YELLOW, 11:RED
|
|
.var pic_gameover = LoadPicture("pacman-gameover.png", List().add($000000, $352879, $bfce72, $883932))
|
|
.for(var xcol=0; xcol<25; xcol++) {
|
|
.for(var ypos=0; ypos<25; ypos++) {
|
|
.byte pic_gameover.getMulticolorByte(xcol,ypos)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Renders the BOBs at the given positions
|
|
// The bob logic code will be merged with raster code using code-merger.c
|
|
// First restores the canvas from previously rendered bobs, and then renders the bobs at the given positions.
|
|
// BOBs are 16px*6px graphics (2 x-columns * 6px) with masks and pixels
|
|
// Uses the bobs_xcol, bobs_yfine, bobs_bob_id and bob_restore for data about the bobs
|
|
// Implemented in inline kick assembler
|
|
LOGIC_CODE_CRUNCHED:
|
|
.macro LOGIC_BEGIN(cycles) {
|
|
.byte cycles
|
|
}
|
|
.macro LOGIC_END() {
|
|
.byte $ff
|
|
}
|
|
.modify B2() {
|
|
.pc = LOGIC_CODE_UNMERGED "LOGIC CODE UNMERGED"
|
|
LOGIC_BEGIN(2)
|
|
clc
|
|
LOGIC_END()
|
|
|
|
// ******************************************
|
|
// Restores the canvas under the rendered bobs
|
|
// ******************************************
|
|
|
|
.for(var bob=NUM_BOBS-1;bob>=0; bob--) {
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// char * volatile left_canvas = *((char**)&bob_restore[0]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = bob_restore[2];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
// char * volatile rigt_canvas = *((char**)&bob_restore[3]);
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
sta.z rigt_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
// char rigt_ypos_inc_offset = bob_restore[5];
|
|
LOGIC_BEGIN(7)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
sta.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Restore Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
// *left_canvas = bob_restore[6] ;
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// *rigt_canvas = bob_restore[7];
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
|
|
// ******************************************
|
|
// Render two tiles on the canvas
|
|
// ******************************************
|
|
|
|
// y==0 from bob restore
|
|
LOGIC_BEGIN(12)
|
|
// char tile_left_idx = 4 * logic_tile_ptr[0];
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_left_idx
|
|
LOGIC_END()
|
|
// char logic_tile_right_idx = 4 * logic_tile_ptr[1];
|
|
LOGIC_BEGIN(2)
|
|
iny
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(12)
|
|
lda (logic_tile_ptr),y
|
|
asl
|
|
asl
|
|
sta logic_tile_right_idx
|
|
LOGIC_END()
|
|
// char * render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, ytile*2 };
|
|
LOGIC_BEGIN(8)
|
|
lda #>RENDER_INDEX
|
|
adc logic_tile_xcol
|
|
sta.z left_render_index_xcol+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(6)
|
|
lda logic_tile_yfine
|
|
sta.z left_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// unsigned int canvas_offset = {render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] };
|
|
// char * left_canvas = canvas_base_hi*$100 + canvas_offset;
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(11)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
// char left_ypos_inc_offset = render_index_xcol[RENDER_OFFSET_YPOS_INC];
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(8)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// Render Tile Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<4;row++) {
|
|
|
|
// *left_canvas = tile_left_pixels[y] | tile_right_pixels[y];
|
|
LOGIC_BEGIN(3)
|
|
ldx logic_tile_left_idx
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(17)
|
|
lda TILES_LEFT+row,x
|
|
ldx logic_tile_right_idx
|
|
ora TILES_RIGHT+row,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
}
|
|
|
|
// ******************************************
|
|
// Renders the BOBs at the given positions
|
|
// ******************************************
|
|
|
|
.for(var bob=0;bob<NUM_BOBS; bob++) {
|
|
// char * left_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, yfine };
|
|
// char * rigt_render_index_xcol = (char*){ (>RENDER_INDEX) + xcol+1, yfine };
|
|
|
|
//LOGIC_BEGIN(6)
|
|
//inc $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(14)
|
|
lda #>RENDER_INDEX
|
|
adc bobs_xcol+bob
|
|
sta.z left_render_index_xcol+1
|
|
adc #1
|
|
sta.z rigt_render_index_xcol+1
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(10)
|
|
lda bobs_yfine+bob
|
|
sta.z left_render_index_xcol
|
|
sta.z rigt_render_index_xcol
|
|
LOGIC_END()
|
|
|
|
// char * left_canvas = (char*){ left_render_index_xcol[85], left_render_index_xcol[0] };
|
|
// bob_restore[0] = <left_canvas; bob_restore[1] = >left_canvas;
|
|
// char * rigt_canvas = (char*){ rigt_render_index_xcol[85], rigt_render_index_xcol[0] };
|
|
// bob_restore[3] = <rigt_canvas; bob_restore[4] = >rigt_canvas;
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_LO
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+0,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_canvas
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+3,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_CANVAS_HI
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (left_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z left_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+1,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(16)
|
|
lda (rigt_render_index_xcol),y
|
|
adc canvas_base_hi
|
|
sta.z rigt_canvas+1
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+4,x
|
|
LOGIC_END()
|
|
|
|
// char left_ypos_inc_offset = left_render_index_xcol[170];
|
|
// bob_restore[2] = left_ypos_inc_offset;
|
|
// char rigt_ypos_inc_offset = rigt_render_index_xcol[170];
|
|
// bob_restore[5] = rigt_ypos_inc_offset;
|
|
|
|
LOGIC_BEGIN(2)
|
|
ldy #RENDER_OFFSET_YPOS_INC
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (left_render_index_xcol),y
|
|
sta.z left_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+2,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(13)
|
|
lda (rigt_render_index_xcol),y
|
|
sta.z rigt_ypos_inc_offset
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+5,x
|
|
LOGIC_END()
|
|
|
|
// Render Bob Rows
|
|
LOGIC_BEGIN(2)
|
|
ldy #0
|
|
LOGIC_END()
|
|
.for(var row=0;row<6;row++) {
|
|
|
|
//left_canvas += RENDER_YPOS_INC[left_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z left_canvas
|
|
sta.z left_canvas
|
|
lda.z left_canvas+1
|
|
adc #0
|
|
sta.z left_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z left_ypos_inc_offset
|
|
LOGIC_END()
|
|
//rigt_canvas += RENDER_YPOS_INC[rigt_ypos_inc_offset++];
|
|
LOGIC_BEGIN(3)
|
|
ldx.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(18)
|
|
lda RENDER_YPOS_INC,x
|
|
adc.z rigt_canvas
|
|
sta.z rigt_canvas
|
|
lda.z rigt_canvas+1
|
|
adc #0
|
|
sta.z rigt_canvas+1
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(5)
|
|
inc.z rigt_ypos_inc_offset
|
|
LOGIC_END()
|
|
|
|
// bob_restore[6] = *left_canvas;
|
|
// *left_canvas = *left_canvas & BOB_MASK_LEFT_0[bob_id] | BOB_PIXEL_LEFT_0[bob_id];
|
|
LOGIC_BEGIN(3)
|
|
ldx bobs_restore_base
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (left_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+6+row,x
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(10)
|
|
lda (rigt_canvas),y
|
|
sta bobs_restore+SIZE_BOB_RESTORE*bob+12+row,x
|
|
LOGIC_END()
|
|
|
|
LOGIC_BEGIN(4)
|
|
ldx bobs_bob_id+bob
|
|
LOGIC_END()
|
|
LOGIC_BEGIN(19)
|
|
lda (left_canvas),y
|
|
and BOB_MASK_LEFT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_LEFT+row*BOB_ROW_SIZE,x
|
|
sta (left_canvas),y
|
|
LOGIC_END()
|
|
// bob_restore[7] = *rigt_canvas;
|
|
// *rigt_canvas = *rigt_canvas & BOB_MASK_RIGT_0[bob_id] | BOB_PIXEL_RIGT_0[bob_id];
|
|
LOGIC_BEGIN(19)
|
|
lda (rigt_canvas),y
|
|
and BOB_MASK_RIGT+row*BOB_ROW_SIZE,x
|
|
ora BOB_PIXEL_RIGT+row*BOB_ROW_SIZE,x
|
|
sta (rigt_canvas),y
|
|
LOGIC_END()
|
|
}
|
|
}
|
|
//LOGIC_BEGIN(6)
|
|
//lda #0
|
|
//sta $d021
|
|
//LOGIC_END()
|
|
|
|
LOGIC_BEGIN(0) // end of logic code
|
|
}
|
|
|
|
// Raster-code for displaying 9 sprites on the entire screen - with open side borders
|
|
// The uncrunched code will be merged with logic code using code-merger.c
|
|
// The unmerged raster-code is identical for both buffers!
|
|
RASTER_CODE_CRUNCHED:
|
|
.macro RASTER_CYCLES(cycles) {
|
|
.byte $ff, cycles
|
|
}
|
|
.modify B2() {
|
|
.pc = RASTER_CODE_UNMERGED "RASTER CODE UNMERGED"
|
|
RASTER_CYCLES(29)
|
|
// Line 7 cycle 44
|
|
// Raster Line
|
|
.var raster_line = 7
|
|
// Line in the sprite
|
|
.var sprite_line = 20
|
|
// Current sprite ypos
|
|
.var sprite_ypos = 7
|
|
// Current sprite screen (graphics bank not important since sprite layout in the banks is identical)
|
|
.var sprite_screen = SCREENS_1
|
|
.var available_cycles = 0;
|
|
.for(var i=0;i<293;i++) {
|
|
// Line cycle count
|
|
.var line_cycles = 46
|
|
.if(raster_line>=70 && raster_line<238) {
|
|
// Only 2 sprites on these lines - so more cycles available
|
|
.eval line_cycles = 58
|
|
}
|
|
// Create 9th sprite by moving sprite 0
|
|
.if(mod(raster_line,2)==0) {
|
|
lda #$6f
|
|
sta $d000
|
|
} else {
|
|
lda #$e7
|
|
sta $d000
|
|
}
|
|
.eval line_cycles -= 6;
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
.eval line_cycles -= 12;
|
|
.eval raster_line++
|
|
.eval sprite_line++
|
|
.if(sprite_line==21) {
|
|
.eval sprite_line = 0
|
|
.eval sprite_ypos += 21
|
|
}
|
|
// Set sprite single-color mode on splash
|
|
.if(raster_line==53) {
|
|
lda side_sprites_mc
|
|
sta $d01c
|
|
lda side_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
}
|
|
// Set sprite multi-color mode on splash
|
|
.if(raster_line==248) {
|
|
lda bottom_sprites_mc
|
|
sta $d01c
|
|
lda bottom_sprites_color
|
|
sta $d027
|
|
sta $d028
|
|
.eval line_cycles -= 18
|
|
//.print "raster:"+raster_line+" multi-color"
|
|
}
|
|
// Open top border
|
|
.if(raster_line==55) {
|
|
lda #VICII_RSEL|VICII_ECM|VICII_BMM|7
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" top border rsel=1"
|
|
}
|
|
// Open bottom border
|
|
.if(raster_line==250) {
|
|
lda #VICII_ECM|VICII_BMM|7 // DEN=0, RSEL=0
|
|
sta VICII_CONTROL1
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" bottom border rsel=0"
|
|
}
|
|
// Move sprites down
|
|
.if(sprite_line>=2 && sprite_line<=9) {
|
|
.if(sprite_ypos<300) {
|
|
.var sprite_id = sprite_line-2
|
|
.if(sprite_id==0 || sprite_id==1 || sprite_ypos<=55 || sprite_ypos>=(246-21)) {
|
|
lda #sprite_ypos
|
|
sta SPRITES_YPOS+2*sprite_id
|
|
.eval line_cycles -= 6;
|
|
//.print "raster:"+raster_line+" sprite:"+sprite_id+" ypos:"+sprite_ypos
|
|
}
|
|
}
|
|
}
|
|
// Change sprite data
|
|
.if(sprite_line==20) {
|
|
.eval sprite_screen += $400
|
|
lda #sprite_screen/$40
|
|
sta VICII_MEMORY
|
|
.eval line_cycles -= 6
|
|
//.print "raster:"+raster_line+" sprite data $"+toHexString(sprite_screen)
|
|
}
|
|
// Spend the rest of the cycles on NOPS
|
|
.if(line_cycles<0 || line_cycles==1) .error "Too many cycles spent on line "+raster_line
|
|
.if(line_cycles>0) {
|
|
//.print "raster:"+raster_line+" cycles $"+toHexString(line_cycles)
|
|
RASTER_CYCLES(line_cycles)
|
|
.eval line_cycles -= line_cycles
|
|
.eval available_cycles += line_cycles
|
|
}
|
|
}
|
|
//.print "Available cycles: "+available_cycles
|
|
|
|
lda #$6f
|
|
sta $d000
|
|
lda #$8
|
|
// Cycle 50. LSR abs is a 6 cycle RWM instruction.
|
|
lsr VICII_CONTROL2
|
|
sta VICII_CONTROL2
|
|
RASTER_CYCLES(00) // End of raster code
|
|
}
|
|
|
|
// SID tune
|
|
// Pacman 2 channel music by Metal/Camelot
|
|
INTRO_MUSIC_CRUNCHED:
|
|
.modify B2() {
|
|
.pc = INTRO_MUSIC "INTRO MUSIC"
|
|
.const music = LoadBinary("pacman-2chn-simpler.prg", BF_C64FILE)
|
|
.fill music.getSize(), music.get(i)
|
|
}
|
|
|
|
.segment Data
|
|
// Offset of the LEVEL_TILE data within the LEVEL_TILE data (each row is 64 bytes of data)
|
|
LEVEL_YTILE_OFFSET: .word 0, $40, $80, $c0, $100, $140, $180, $1c0, $200, $240, $280, $2c0, $300, $340, $380, $3c0, $400, $440, $480, $4c0, $500, $540, $580, $5c0, $600, $640, $680, $6c0, $700, $740, $780, $7c0, $800, $840, $880, $8c0, $900
|
|
// Used to choose a single direction when presented with multiple potential directions.
|
|
// Used to eliminate diagonal joy directions and convert them to a single direction
|
|
// Priority: (4)up, (8)down, (16)left, (32)right
|
|
.align $40
|
|
DIRECTION_SINGLE: .byte 0, 0, 0, 0, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $20, $20, $20, $20, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4, $10, $10, $10, $10, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 4
|
|
// Used to eliminate a single direction (the one that the ghost came from)
|
|
// The value DIRECTION_ELIMINATE[current_direction] is ANDed onto the open directions to remove the current direction
|
|
.align $40
|
|
DIRECTION_ELIMINATE: .byte $ff, 0, 0, 0, $f7, 0, 0, 0, $fb, 0, 0, 0, 0, 0, 0, 0, $df, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $ef
|
|
// Used to reverse direction direction (when a ghost changes between chase and scatter)
|
|
.align $40
|
|
DIRECTION_REVERSE: .byte 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, $20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, $10
|
|
// The animation frames for pacman. The index into this is DIRECTION + anim_frame_idx.
|
|
.align $40
|
|
pacman_frames: .byte 8, 8, 8, 8, 8, $18, $14, $18, 8, $20, $1c, $20, 0, 0, 0, 0, 8, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, $c, $10, $c
|
|
// The animation frames for ghost. The index into thos is DIRECTION + anim_frame_idx.
|
|
.align $80
|
|
ghost_frames: .byte 0, 0, 0, 0, $3c, $40, $3c, $40, $34, $38, $34, $38, 0, 0, 0, 0, $2c, $30, $2c, $30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $24, $28, $24, $28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $5c, $60, $5c, $60, $54, $58, $54, $58, 0, 0, 0, 0, $4c, $50, $4c, $50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $44, $48, $44, $48
|
|
// Lookup the absolute value of a signed number
|
|
// PRE_ and POST_ are used to ensure lookup of ABS-1,y works for y=0 and ABS+1,y works for y=0xff
|
|
.align $100
|
|
ABS_PRE: .byte 1
|
|
ABS:
|
|
.for(var i=0;i<$100;i++) {
|
|
.var x = (i<$80)?i:($100-i);
|
|
.byte abs(x)
|
|
}
|
|
|
|
ABS_POST: .byte 0
|
|
|