Tetris (Game Boy)/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Tetris (Game Boy).

Bank 0+1

Address Description
------- -----------
0000    RST_00
0008    RST_08
0010    RST_10
0018    RST_18
0020    RST_20
0028    RST_28
0030    RST_30
0038    RST_38
0040    VBlankInterrupt
0048    LCDCInterrupt
0050    TimerOverflowInterrupt
0058    SerialTransferCompleteInterrupt
005B    Jump_000_005b
0060    JoypadTransitionInterrupt
006B    fcn_0000006b
0078    serial_state_00
0086    serial_state_00.title_screen
0094    serial_state_00.not_syncpoint_55
009C    serial_state_00.set_clk
009F    serial_state_01
00A4    serial_state_02
00BA    serial_state_03
0100    entry0
0101    jmp_to_main
0104    HeaderLogo
0134    HeaderTitle
0144    HeaderNewLicenseeCode
0146    HeaderSGBFlag
0147    HeaderCartridgeType
0148    HeaderROMSize
0149    HeaderRAMSize
014A    HeaderDestinationCode
014B    HeaderOldLicenseeCode
014C    HeaderMaskROMVersion
014D    HeaderComplementCheck
014E    HeaderGlobalChecksum
0150    main
0156    main.wait_vb_oam1
015D    main.wait_vb_oam2
0166    hl_add_de_bcd_6digits
017E    vblank_irq_handler
0199    vblank_irq_handler.no_serial
01FB    vblank_irq_handler.skip_score_printing
020C    clear_wram
0214    clear_wram.loop_bc
021B    main2
0233    main2.wait_vblank
0260    main2.times_256
026B    main2.times_4096
027A    main2.times_8192
0286    main2.times_256_2
028F    main2.times_128
029A    main2.relocate_dma_routine
02C4    frame_synced_loop
02DB    frame_synced_loop.loop_b
02E0    frame_synced_loop.no_counter_dec
02ED    frame_synced_loop.wait_for_vblank_handler
02F8    next_state
0369    state_24_copyright_load
037E    state_24_copyright_load.loop_to_c400
0393    state_25_copyright_wait
03A0    state_35_copyright_timeout
03A9    input_delta_nz_03a9
03AE    state_06
03CE    state_06.until_cc00
03E9    state_06.times_12
041F    demo_prepare
045A    demo_prepare.not_last_demo
0479    state_07_title_screen
0488    state_07_title_screen.wait_for_demo
04A2    state_07_title_screen.serial_xfer_not_finished
04CD    state_07_title_screen.wait_serial
04D7    state_07_title_screen.start_2p
04D9    state_07_title_screen.exit
04E7    state_07_title_screen.set_expert_mode
04F0    state_07_title_screen.no_expert
04F3    state_07_title_screen.toggle_1p_2p
04F5    state_07_title_screen.apply_1p_2p
04FE    state_07_title_screen.use_1p_sprite
0502    state_07_title_screen.select_2p
0507    state_07_title_screen.select_1p
0509    state_07_title_screen.set_1p
050C    demo_check_end
052D    demo_check_end.start_not_pressed
053A    demo_check_end.if_last_demo
0542    demo_playback
0555    demo_playback.no_repeat
0571    demo_playback.repeat
0574    demo_playback.common
0583    demo_record
05AD    demo_record.input_repeat
05B3    demo_restore_input
05C0    start_xfer
05C7    state_2a
05D1    state_2a.reentry
05F7    state_2b_mp_music_selection
0613    state_2b_mp_music_selection.master
0620    state_2b_mp_music_selection.menu_continue
0644    state_2b_mp_music_selection.slave
065D    state_2b_mp_music_selection.schedule_data_out
0664    state_2b_mp_music_selection.to_state_16
066C    state_2b_mp_music_selection.start_or_a_pressed
0670    start_xfer2
0677    state_16_start_mp
068F    state_16_start_mp.while_b
0696    state_16_start_mp.reentry
06C8    state_16_start_mp.loop_b
0705    data_0705
0725    memcpy_hl_de_b
072C    state_17_072c
0743    jr_000_0743
074A    jr_000_074a
0755    jr_000_0755
075F    start_not_pressed
076A    jr_000_076a
076D    Jump_000_076d
078A    jr_000_078a
078E    jr_000_078e
07A2    jr_000_07a2
07AA    jr_000_07aa
07AC    jr_000_07ac
07B4    jr_000_07b4
07BD    jr_000_07bd
07D6    jr_000_07d6
07DB    jr_000_07db
07E1    jr_000_07e1
07E8    jr_000_07e8
07EE    jr_000_07ee
07F6    height_coords_player1
07F8    data_07f8
07FA    data_07fa
07FC    data_07fc
07FE    data_07fe
0800    data_0800
0802    height_coords_player2
0804    data_0804
0806    data_0806
0808    data_0808
080A    data_080a
080C    data_080c
080E    copy_coords_maybe
0825    state_18
0828    Jump_000_0828
08A4    jr_000_08a4
08C4    loaded_to_c080
08D4    data_08d4
08E4    state_19
08ED    jr_000_08ed
08F2    jr_000_08f2
08FD    jr_000_08fd
0903    jr_000_0903
0916    jr_000_0916
0918    jr_000_0918
0923    jr_000_0923
0925    jr_000_0925
093D    jr_000_093d
0948    jr_000_0948
094A    jr_000_094a
0964    jr_000_0964
096D    jr_000_096d
0974    jr_000_0974
0985    jr_000_0985
0995    jr_000_0995
09A2    jr_000_09a2
09AA    jr_000_09aa
09BB    jr_000_09bb
09C6    Jump_000_09c6
09E4    jr_000_09e4
09F6    Jump_000_09f6
0A00    jr_000_0a00
0A06    jr_000_0a06
0A14    jr_000_0a14
0A24    jr_000_0a24
0A26    jr_000_0a26
0A2F    jr_000_0a2f
0A3E    jr_000_0a3e
0A4C    jr_000_0a4c
0A5C    jr_000_0a5c
0A65    jr_000_0a65
0A70    jr_000_0a70
0A7E    jr_000_0a7e
0A8C    fcn_00000a8c
0A93    jr_000_0a93
0A98    burn_cycles
0A9B    burn_cycles.loop
0AA1    randomizer_mp
0AAA    jr_000_0aaa
0AAD    jr_000_0aad
0AAE    jr_000_0aae
0ABB    jr_000_0abb
0AC9    jr_000_0ac9
0AD2    state_1c
0AF1    jr_000_0af1
0B02    jr_000_0b02
0B0A    jr_000_0b02.loop_18
0B1C    jr_000_0b02.loop
0B21    jr_000_0b02.loop_10
0B2A    jr_000_0b02.break
0B31    state_1a
0B73    jr_000_0b73
0B83    jr_000_0b83
0B94    jr_000_0b94
0B9B    fcn_00000b9b
0BA5    jr_000_0ba5
0BA8    jr_000_0ba8
0BB5    jr_000_0bb5
0BC7    jr_000_0bc7
0BD6    jr_000_0bd6
0BF0    fcn_00000bf0
0C1C    jr_000_0c1c
0C1E    jr_000_0c1e
0C25    jr_000_0c25
0C27    jr_000_0c27
0C2E    jr_000_0c2e
0C3A    jr_000_0c3a
0C4D    jr_000_0c4d
0C50    jr_000_0c50
0C60    jr_000_0c60
0C64    jr_000_0c64
0C7C    jr_000_0c7c
0C82    jr_000_0c82
0C8C    fcn_00000c8c
0C98    fcn_00000c8c.else
0CA2    fcn_00000c8c.if_end
0CAA    fcn_00000c8c.loop_c1
0CB3    fcn_00000c8c.loop_c2
0CB5    fcn_00000c8c.loop_b1
0CCD    fcn_00000c8c.loop_c3
0CD2    fcn_00000c8c.loop_b2
0CEB    state_1b
0D03    jr_000_0d03
0D09    jr_000_0d09
0D13    jr_000_0d13
0D27    jr_000_0d27
0D32    state_1d
0D40    jr_000_0d40
0D4F    jr_000_0d4f
0D65    jr_000_0d65
0D7E    jr_000_0d7e
0D8B    jr_000_0d8b
0D91    jr_000_0d91
0D99    state_20
0DAD    jr_000_0dad
0DB6    jr_000_0db6
0DBD    fcn_00000dbd
0DE5    jr_000_0de5
0E03    jr_000_0e03
0E0F    jr_000_0e0f
0E13    jr_000_0e13
0E23    state_1e
0E31    jr_000_0e31
0E40    jr_000_0e40
0E56    jr_000_0e56
0E6F    jr_000_0e6f
0E7C    jr_000_0e7c
0E82    jr_000_0e82
0E8A    state_21
0E9E    jr_000_0e9e
0EA7    jr_000_0ea7
0EAE    fcn_00000eae
0ECF    jr_000_0ecf
0EF3    jr_000_0ef3
0F03    jr_000_0f03
0F07    jr_000_0f07
0F17    Call_000_0f17
0F33    jr_000_0f33
0F39    jr_000_0f39
0F3C    data_0f3c
0F60    fcn_00000f60
0F69    jr_000_0f69
0F6F    fcn_00000f6f
0FB9    jr_000_0fb9
0FC1    jr_000_0fc1
0FDB    jr_000_0fdb
0FE0    jr_000_0fe0
0FEB    jr_000_0feb
100F    jr_000_100f
1029    jr_000_1029
102E    jr_000_102e
1039    jr_000_1039
1052    jr_000_1052
1062    jr_000_1062
106A    fcn_0000106a
1072    jr_000_1072
1085    fcn_00001085
10A3    jr_000_10a3
10AC    jr_000_10ac
10B0    jr_000_10b0
10B2    jr_000_10b2
10B5    jr_000_10b5
10BB    jr_000_10bb
10C2    jr_000_10c2
10C6    jr_000_10c6
10CA    jr_000_10ca
10D1    jr_000_10d1
10D8    fcn_000010d8
10DA    jr_000_10da
10E8    jr_000_10e8
10ED    data_10ed
10F3    data_10f3
10FE    data_10fe
1109    data_1109
1112    state_1f
113A    jr_000_113a
113F    fcn_0000113f
1158    jr_000_1158
115A    jr_000_115a
1160    jr_000_1160
1167    state_26
11B2    fcn_000011b2
11E6    state_27
11FC    state_28
1205    jr_000_1205
121C    state_29
1225    jr_000_1225
1244    state_02
1277    jr_000_1277
127B    state_03
129D    jr_000_129d
12AD    jr_000_12ad
12B3    state_2c
12F5    text_congrats_12f5
1305    state_2d
131B    state_34_rocket
1324    state_2e
1351    state_2f_start_thrusters
1367    state_30
1370    jr_000_1370
137E    state_31
13B1    jr_000_13b1
13B5    state_32
13CF    jr_000_13cf
13DF    jr_000_13df
13E5    state_33
13FA    animate_rocket_thruster
140C    jr_000_140c
141B    data_141b
1422    data_1422
1429    data_1429
1430    data_1430
1437    fill_every_20th_HL_from_DE_B_times
1444    state_08
144F    state_08.setup_gfx
147D    state_08.if_mode_a
148C    state_09
148D    load_stored_u16_and_idx_to_de
1492    update_music_menu_sprite
14A8    a_type_menu_coord
14AA    b_type_menu_coord
14AC    c_type_menu_coord
14AE    off_menu_coord
14B0    state_0f_menu_music
14C8    jr_000_14c8
14E0    jr_000_14e0
14E7    jr_000_14e7
14EB    jr_000_14eb
14F3    jr_000_14f3
14FE    jr_000_14fe
1509    jr_000_1509
1512    jr_000_1512
1517    store_music_selection
1521    jr_000_1521
1525    state_0e
154B    jr_000_154b
1553    jr_000_1553
155E    jr_000_155e
155F    jr_000_155f
1563    jr_000_1563
1572    jr_000_1572
1577    jr_000_1577
157B    state_10
15BA    jr_000_15ba
15BC    jr_000_15bc
15BF    state_11_a_level_select
15F1    jr_000_15f1
15F6    jr_000_15f6
1603    jr_000_1603
1607    jr_000_1607
160D    jr_000_160d
1615    menu_mode_a_level_coords
1617    data_1617
1619    data_1619
161B    data_161b
161D    data_161d
161F    data_161f
1621    data_1621
1623    data_1623
1625    data_1625
1627    data_1627
1629    state_12
1670    jr_000_1670
1672    jr_000_1672
1675    jr_000_1675
167A    state_13_mode_b_level
16AE    jr_000_16ae
16B3    jr_000_16b3
16C0    jr_000_16c0
16C4    jr_000_16c4
16CA    jr_000_16ca
16D2    mode_b_level_coords
16E6    jr_000_16e6
16EB    state_14_mode_b_height
1715    button_down_1715
1717    jr_000_1717
1719    jr_000_1719
171D    button_r_171d
1722    jr_000_1722
172F    jr_000_172f
1733    button_l_1733
1739    button_u_1739
1741    mode_b_height_coords
174E    copy_coords_prelude
1755    load_mp_height_sprite
1766    sprite_flash_10_frames
1776    load_C_sprites
1779    load_C_sprites.loop
178A    clear_c000_a0
1790    jr_000_1790
1795    update_scores_a
17A0    jr_000_17a0
17A7    jr_000_17a7
17AF    process_mode_b_params
17BA    jr_000_17ba
17C1    jr_000_17c1
17C6    jr_000_17c6
17CD    jr_000_17cd
17D5    copy_6_nibbles_to_byte_wo_prefix
17D7    jr_000_17d7
17E7    jr_000_17e7
17F1    jr_000_17f1
17F7    memcpy_de_hl_3_descending
17F9    memcpy_de_hl_B_descending
1800    insert_highscore_and_blit_top3
1808    jr_000_1808
180E    jr_000_180e
1819    jr_000_1819
1822    jr_000_1822
1834    jr_000_1834
183C    jr_000_183c
1841    jr_000_1841
1858    jr_000_1858
1862    jr_000_1862
1866    jr_000_1866
1880    jr_000_1880
188B    jr_000_188b
18AA    jr_000_18aa
18AD    jr_000_18ad
18B6    jr_000_18b6
18CA    copy_top3_to_vram
18D6    jr_000_18d6
18D7    jr_000_18d7
18D9    jr_000_18d9
18F7    jr_000_18f7
18FC    fill_c9a4_with_60_3x0e_rowlen_2e
1906    jr_000_1906
1909    jr_000_1909
1913    state_15_highscore
191B    jr_000_191b
1921    jr_000_1921
1941    jr_000_1941
1944    jr_000_1944
1968    jr_000_1968
197C    jr_000_197c
197F    jr_000_197f
1987    jr_000_1987
1992    jr_000_1992
1998    jr_000_1998
1999    jr_000_1999
19A0    jr_000_19a0
19A8    jr_000_19a8
19B0    jr_000_19b0
19BB    jr_000_19bb
19C2    jr_000_19c2
19C5    jr_000_19c5
19CC    jr_000_19cc
19E7    jr_000_19e7
19EE    Jump_000_19ee
19FE    wait_hblank_write_a_to_hl
19FF    wait_hblank_write_b_to_hl
1A07    state_0a_start_game
1A3F    jr_000_1a3f
1A71    jr_000_1a71
1A8F    jr_000_1a8f
1A98    jr_000_1a98
1AA6    jr_000_1aa6
1AD6    jr_000_1ad6
1AE0    jr_000_1ae0
1AE8    update_level_speed
1AF9    jr_000_1af9
1AFA    jr_000_1afa
1B06    level_drop_delays
1B1B    fcn_00001b1b
1B23    jr_000_1b23
1B26    jr_000_1b26
1B28    jr_000_1b28
1B2F    jr_000_1b2f
1B35    jr_000_1b35
1B40    data_1b40
1B68    draw_garbage_blocks
1B69    jr_000_1b69
1B6F    do_1b6f
1B72    jr_000_1b72
1B74    jr_000_1b74
1B7F    jr_000_1b7f
1B8B    jr_000_1b8b
1B8D    jr_000_1b8d
1BA0    jr_000_1ba0
1BA1    jr_000_1ba1
1BAD    jr_000_1bad
1BC2    jr_000_1bc2
1BC8    jr_000_1bc8
1BCE    state_00_game_running
1BF4    jr_000_1bf4
1C03    jr_000_1c03
1C0A    jr_000_1c0a
1C0D    handle_start_select
1C3F    jr_000_1c3f
1C4D    jr_000_1c4d
1C50    jr_000_1c50
1C5A    jr_000_1c5a
1C6A    jr_000_1c6a
1C88    fcn_00001c88
1CA1    jr_000_1ca1
1CAA    jr_000_1caa
1CC1    jr_000_1cc1
1CC9    loc_00001cc9
1CCB    fcn_00001ccb
1CD3    jr_000_1cd3
1CDD    data_1cdd
1CE2    state_01
1D06    state_04
1D0F    jr_000_1d0f
1D23    jr_000_1d23
1D26    state_05
1D62    state_05.loop_b
1D66    state_05.skip_for_lvl0
1D84    fcn_00001d84
1D8B    fcn_00001d84.loop_b
1D93    fcn_00001d84.loop_b2
1DA2    fcn_00001d84.loop_b3
1DB1    fcn_00001d84.nibble_to_byte_even
1DB7    fcn_00001d84.nibble_to_byte_odd
1DC0    state_0b
1DCE    state_22_mode_b_lines_min
1DFA    jr_000_1dfa
1E0F    jr_000_1e0f
1E18    jr_000_1e18
1E31    data_1e31
1E3B    jr_000_1e3b
1E41    state_23
1E51    jr_000_1e51
1E6A    jr_000_1e6a
1E86    jr_000_1e86
1E89    jr_000_1e89
1E8F    jr_000_1e8f
1E95    jr_000_1e95
1ED7    score_sum_up_items
1F12    score_sum_up_items.sum_up
1F16    state_0c
1F1F    state_0d
1F37    jr_000_1f37
1F6C    jr_000_1f6c
1F6E    jr_000_1f6e
1F71    jr_000_1f71
1F7D    memcpy_hl_de_Crows_8cols_rowlen_20
1F80    jr_000_1f80
1F91    fcn_00001f91
1FC3    jr_000_1fc3
1FC9    jr_000_1fc9
1FD7    set_playfield_c8_to_a_vblank_action_02_blit_line17
1FDD    set_playfield_to_a_maybe
1FE5    jr_000_1fe5
1FE8    jr_000_1fe8
1FF2    clear_2_lines_at_cbc2
1FFC    jr_000_1ffc
1FFE    jr_000_1ffe
2007    draw_next_piece
2024    jr_000_2024
2033    jr_000_2033
2041    randomizer
2043    jr_000_2043
2046    jr_000_2046
2047    jr_000_2047
2054    jr_000_2054
2062    jr_000_2062
2065    jr_000_2065
2071    jr_000_2071
2083    piece_down_after_timeout
209C    move_down
20A4    jr_000_20a4
20B1    jr_000_20b1
20B5    jr_000_20b5
20C2    piece_down
2100    jr_000_2100
2103    jr_000_2103
2124    jr_000_2124
2126    transfer_fastdrop_bonus
2127    transfer_fastdrop_bonus.loop_c
212E    transfer_fastdrop_bonus.break
213E    drop2_clear_lines
2153    drop2_clear_lines.loop_b
2156    drop2_clear_lines.loop_c
216B    drop2_clear_lines.next_line
219B    drop2_clear_lines.mode_b
21AA    drop2_clear_lines.common
21CF    drop2_clear_lines.exit
21D8    drop2_clear_lines.pop_hl
21DB    drop2_clear_lines.mode_b_lines_min
21E0    drop3_animate_line_clear
21F6    drop3_animate_line_clear.next_line
2206    drop3_animate_line_clear.not_sixth_iter
2208    drop3_animate_line_clear.loop_c
2211    drop3_animate_line_clear.loop
221F    drop3_animate_line_clear.seventh_iter
222A    drop3_animate_line_clear.exit
222E    drop3_animate_line_clear.flash_odd
2238    drop3_animate_line_clear.loop_b
2248    drop3_animate_line_clear.no_lines_cleared
224D    shift_lines_down
225A    shift_lines_down.load_next_ptr
2265    shift_lines_down.next_line
2268    shift_lines_down.next_col
2287    shift_lines_down.loop_b
2293    reset_cleared_lines
2299    jr_000_2299
229E    vblank_action_02_blit_line17
22AD    vblank_action_03_blit_line16
22BC    vblank_action_04_blit_line15
22CB    fcn_000022cb
22DA    fcn_000022da
22E9    fcn_000022e9
22F8    vblank_action_08_blit_line11_and_unknown
230F    vblank_action_08_blit_line11_and_unknown.exit
2315    vblank_action_08_blit_line11_and_unknown.vblank_enabled
2323    fcn_00002323
2332    fcn_00002332
2341    fcn_00002341
2350    fcn_00002350
235F    fcn_0000235f
236E    fcn_0000236e
237D    fcn_0000237d
238C    vblank_action_10_blit_line3_next_level
239E    vblank_action_11_print_score_to_pause
23B7    vblank_action_12_print_score_to_ingame
23CC    vblank_action_13_blit_line0
23E9    vblank_action_13_blit_line0.jr_000_23e9
23FF    vblank_action_13_blit_line0.mode_a
241E    vblank_action_13_blit_line0.jr_000_241e
2428    vblank_action_13_blit_line0.jr_000_2428
242B    vblank_action_13_blit_line0.exit
242F    vblank_action_13_blit_line0.access_vram
243B    print_score
244B    level_advance
247E    level_advance.loop
2494    level_advance.break
249D    convert_byte_to_bcd
24A2    convert_byte_to_bcd.loop
24AA    convert_byte_to_bcd.break
24AC    memcpy_hl_de_10_incr_vaction
24AE    memcpy_hl_de_10_incr_vaction.loop_b
24BB    move_and_rotate
24DA    jr_000_24da
24E0    jr_000_24e0
24EA    jr_000_24ea
24EE    validate_rotation
2509    jr_000_2509
2527    jr_000_2527
253A    jr_000_253a
2549    jr_000_2549
254C    jr_000_254c
255E    jr_000_255e
2573    collision_detection
2578    collision_detection.loop
2596    jr_000_2596
259A    jr_000_259a
25A1    drop1_sprite_to_bg
25AB    drop1_sprite_to_bg.next_subsprite
25BD    drop1_sprite_to_bg.wait_hblank
25CF    drop1_sprite_to_bg.exit
25D9    score_sum_item
25F7    score_sum_item.upper_digit_is_zero
25FC    score_sum_item.loop_b
2618    score_sum_item.loop_b2
2626    score_sum_item.print_THIS_STAGE_sum
2639    score_sum_item.hl_points_to_zero
263A    Jump_000_263a
2651    reset_scores
2657    jr_000_2657
2660    jr_000_2660
2671    prepare_2_sprites_as_objs_at_c000
2673    prepare_a_sprite_as_objs_at_c000
2683    prepare_1_sprite_as_objs_at_c010
2696    prepare_1_sprite_as_objs_at_c020
26A9    memset_hl_8e_20_rowlen_20
26B0    jr_000_26b0
26B6    memcpy_hl_de_until_val_ff
26BE    nop_irq_handler
26BF    data_26bf
26C7    preview_initializer_26c7
26CF    preload_2c00
26D5    data_26d5
26DB    menu_mode_a_level_sprite_template
26E1    data_26e1
26E7    data_26e7
26ED    data_26ed
26F3    data_26f3
26F9    data_26f9
26FF    data_26ff
2705    data_2705
270B    data_270b
2711    data_2711
2717    data_2717
271D    data_271d
2723    data_2723
2729    data_2729
272F    data_272f
2735    orchestra_sprites
273B    data_273b
2741    data_2741
2747    data_2747
274D    data_274d
2753    data_2753
2759    data_2759
275F    data_275f
2765    data_2765
276B    data_276b
2771    data_2771
2777    data_2777
277D    data_277d
2783    data_2783
2789    data_2789
278F    data_278f
2795    set_range_9800_9bff_to_2f
2798    set_for_400_upto_HL_to_2f
279B    jr_000_279b
27A4    memcpy_de_hl_bc
27AD    load_font
27C3    load_font_tiles
27CC    jr_000_27cc
27D7    load_intro_tiles
27E4    load_tiles_BCbytes_from_HL
27EA    serial_state_04
27EA    state_36
27EB    load_map_ingame_screen
27EE    load_map_12rows_14cols_HL
27F0    load_map_Brows_14cols_HL
27F3    jr_000_27f3
2804    copy_lines_DE_HL_until_ff_sidefx
2807    jr_000_2807
281A    jr_000_281a
2820    wait_vblank_stop_lcd
2828    jr_000_2828
2839    unknown_tiles_2839
2889    score_summary_bg
293E    unknown_tiles_293e
2976    unknown_tiles_2976
29A6    read_input
29E3    sprite_coord_to_bg_addr
29F6    sprite_coord_to_bg_addr.loop_for_b
2A10    bg_addr_to_sprite_coord_unused
2A18    bg_addr_to_sprite_coord_unused.loop_b
2A36    print_decimal_len_6_chained
2A3A    print_decimal_len_6
2A3C    print_decimal_len_2xC
2A3F    print_decimal_len_2xC.next_byte
2A50    print_decimal_len_2xC.write_upper_digit
2A66    print_decimal_len_2xC.write_lower_digit
2A6F    print_decimal_len_2xC.upper_digit_nz
2A77    print_decimal_len_2xC.lower_digit_nz
2A7F    dma_c000_reloc_to_ffb6
2A85    dma_c000_reloc_to_ffb6.loop
2A89    compute_oam_data
2A97    compute_oam_data.next_sprite_recursion
2AA9    compute_oam_data.subsprite_end_reached
2AAE    compute_oam_data.sprite_hidden
2AB0    compute_oam_data.sprite_not_hidden
2AB5    compute_oam_data.loop2
2AD8    compute_oam_data.next_subsprite
2AF0    compute_oam_data.skip_subsprite_coord
2AF4    compute_oam_data.subsprite_not_fd_or_ff
2AF8    compute_oam_data.ordinary_subsprite
2B0B    compute_oam_data.negative_y_offset
2B15    compute_oam_data.y_offsets_applied
2B2A    compute_oam_data.negative_x_offset
2B34    compute_oam_data.x_offsets_applied
2B46    compute_oam_data.not_hidden
2B48    compute_oam_data.y_decided
2B64    sprite_lookup_table
2C20    Lblock_E
2C20    sprite_patterns
2C24    sprite_2c24
2C28    sprite_2c28
2C2C    sprite_2c2c
2C30    Jblock_W
2C34    sprite_2c34
2C38    sprite_2c38
2C3C    sprite_2c3c
2C40    Iblock_E
2C44    sprite_2c44
2C48    sprite_2c48
2C4C    sprite_2c4c
2C50    Oblock_E
2C54    sprite_2c54
2C58    sprite_2c58
2C5C    sprite_2c5c
2C60    Zblock_S
2C64    sprite_2c64
2C68    sprite_2c68
2C6C    sprite_2c6c
2C70    Sblock_S
2C74    sprite_2c74
2C78    sprite_2c78
2C7C    sprite_2c7c
2C80    Tblock_N
2C84    sprite_2c84
2C88    sprite_2c88
2C8C    sprite_2c8c
2C90    sprite_2c90
2C94    sprite_2c94
2C98    sprite_2c98
2C9C    sprite_2c9c
2CA0    sprite_2ca0
2CA4    sprite_2ca4
2CA8    sprite_2ca8
2CAC    sprite_2cac
2CB0    sprite_2cb0
2CB4    sprite_2cb4
2CB8    sprite_2cb8
2CBC    sprite_2cbc
2CC0    sprite_2cc0
2CC4    sprite_2cc4
2CC8    sprite_2cc8
2CCC    sprite_2ccc
2CD0    sprite_2cd0
2CD4    sprite_2cd4
2CD8    sprite_2cd8
2CDC    sprite_2cdc
2CE0    sprite_2ce0
2CE4    sprite_2ce4
2CE8    sprite_2ce8
2CEC    sprite_2cec
2CF0    sprite_2cf0
2CF4    sprite_2cf4
2CF8    sprite_2cf8
2CFC    sprite_2cfc
2D00    sprite_2d00
2D04    sprite_2d04
2D08    sprite_2d08
2D0C    sprite_2d0c
2D10    sprite_2d10
2D14    sprite_2d14
2D18    sprite_2d18
2D1C    sprite_2d1c
2D20    sprite_2d20
2D24    sprite_2d24
2D28    sprite_2d28
2D2C    sprite_2d2c
2D30    sprite_2d30
2D34    sprite_2d34
2D38    sprite_2d38
2D3C    sprite_2d3c
2D40    sprite_2d40
2D44    sprite_2d44
2D48    sprite_2d48
2D4C    sprite_2d4c
2D50    sprite_2d50
2D54    sprite_2d54
2D58    tileset_Lblock_E
2D68    tileset_Lblock_N
2D7A    tileset_Lblock_W
2D89    tileset_Lblock_S
2D9A    tileset_Jblock_W
2DAC    tileset_Jblock_S
2DBD    tileset_Jblock_E
2DCB    tileset_Jblock_N
2DDC    tileset_Iblock_E
2DEB    tileset_Iblock_N
2DFC    tileset_Iblock_W
2E0B    tileset_Iblock_S
2E1C    tileset_Oblock_E
2E2E    tileset_Oblock_N
2E40    tileset_Oblock_W
2E52    tileset_Oblock_S
2E64    tileset_Zblock_S
2E76    tileset_Zblock_E
2E86    tileset_Zblock_N
2E98    tileset_Zblock_W
2EA8    tileset_Sblock_S
2EB9    tileset_Sblock_E
2ECA    tileset_Sblock_N
2EDB    tileset_Sblock_W
2EEC    tileset_Tblock_S
2EFA    tileset_Tblock_E
2F0B    tileset_Tblock_N
2F1C    tileset_Tblock_W
2F2D    tileset_2f2d
2F36    tileset_2f36
2F3F    tileset_2f3f
2F48    tileset_2f48
2F51    tileset_2f51
2F55    tileset_2f55
2F59    tileset_2f59
2F5D    tileset_2f5d
2F61    tileset_2f61
2F65    tileset_2f65
2F69    tileset_2f69
2F6D    tileset_2f6d
2F71    tileset_2f71
2F75    tileset_2f75
2F79    tileset_2f79
2F84    tileset_2f84
2F8F    tileset_2f8f
2FA3    tileset_2fa3
2FB8    tileset_2fb8
2FC1    tileset_2fc1
2FCA    tileset_2fca
2FD1    tileset_2fd1
2FD8    tileset_2fd8
2FE3    tileset_2fe3
2FEE    tileset_2fee
3003    tileset_3003
3019    tileset_3019
3022    tileset_3022
302B    tileset_302b
3032    tileset_3032
3039    tileset_3039
3040    tileset_3040
3047    tileset_3047
304E    tileset_304e
3055    tileset_3055
305C    tileset_305c
3067    tileset_3067
306E    tileset_306e
3075    tileset_3075
307C    tileset_307c
3083    tileset_3083
308C    tileset_308c
3095    tileset_3095
309E    tileset_309e
30A7    tileset_30a7
30B0    tileset_30b0
30B9    tileset_30b9
30C0    tileset_30c0
30C7    sprite_30c7
30CB    tileset_30cb
30EA    sprite_30ea
30EE    sprite_30ee
30F2    sprite_30f2
30F6    sprite_30f6
30FA    sprite_30fa
30FE    sprite_30fe
3102    sprite_3102
3106    sprite_3106
310A    sprite_310a
310E    sprite_310e
3112    sprite_3112
3116    tileset_3116
311C    tileset_311c
3125    tileset_3125
312B    tileset_312b
3131    tileset_3131
313A    tileset_313a
3146    tileset_3146
315D    tileset_315d
3164    tileset_3164
317C    tileset_317c
318E    tileset_318e
319D    tileset_319d
31A3    tileset_31a3
31A9    coord_4by4
31C9    coord_1by8
31D9    coord_7by2
31F5    coord_2by2_topleft_6by4_below
322D    coord_3by3
323F    tiles_323f
3E8F    type_a_game_map
3FF7    type_b_game_map_3ff7
415F    font_tiles_1bpp
415F    font_tiles_1bpp.image_1bpp
4297    misc_tiles
4297    misc_tiles.image
4A07    copyright_bg_map
4A07    copyright_bg_map.data
4B6F    start_screen_bg_map.data
4B6F    start_screen_bg_map
4CD7    type_select_bg_map
4CD7    type_select_bg_map.data
4E3F    type_a_menu_bg_map
4E3F    type_a_menu_bg_map.data
4FA7    type_b_menu_bg_map
510F    data_510f
51C4    data_51c4
5214    maybe_mp_game_bg_map_5214
537C    state_18_bg_map
5424    foobar1
54CC    foobar2
54E4    foobar3
551C    foobar4
55AC    tiles_mario_luigi_rocket
62AC    data_62ac
62B0    demo_inputs
6450    data_6450
6480    jumptable_6480
6482    data_6482
6484    data_6484
6486    data_6486
6488    data_6488
648A    data_648a
648C    data_648c
648E    data_648e
6490    jumptable_6490
6492    data_6492
6494    data_6494
6496    data_6496
6498    data_6498
649A    data_649a
649C    data_649c
649E    data_649e
64A0    jumptable_64a0
64A2    data_64a2
64A4    data_64a4
64A6    data_64a6
64A8    jumptable_64a8
64AA    data_64aa
64AC    data_64ac
64AE    data_64ae
64B0    jumptable_64b0
64B2    data_64b2
64B4    data_64b4
64B6    data_64b6
64B8    data_64b8
64BA    data_64ba
64BC    data_64bc
64BE    data_64be
64C0    data_64c0
64C2    data_64c2
64C4    data_64c4
64C6    data_64c6
64C8    data_64c8
64CA    data_64ca
64CC    data_64cc
64CE    data_64ce
64D0    data_64d0
64D2    return
64D3    _snd_step
64E8    jr_001_64e8
64FA    step_00
650F    _snd_step_exit
6524    step_01_cont_with_30
6550    step_20_load_ch2_tone_exit
6553    jr_001_6553
6558    step_28_18_load_ch2_tone_exit
655D    step_02_cont_with_0
6563    iterate_and_exit
657B    ch2_tone_657b
657F    ch2_tone_657f
6583    Call_001_6583
6589    Call_001_6589
658F    Call_001_658f
6595    Call_001_6595
659B    data_659b
65A0    data_65a0
65A5    data_65a5
65AA    jt_6480_idx_0x00
65B2    jt_6480_idx_0x08
65C6    jt_6480_idx_0x01
65CE    jt_6480_idx_0x0c
65D3    jr_001_65d3
65E4    jr_001_65e4
65E7    data_65e7
65EC    data_65ec
65F1    jt_6480_idx_0x06
65F7    jt_6480_idx_0x0e
660E    Jump_001_660e
6617    jr_001_6617
661D    jr_001_661d
6623    data_6623
6628    jt_6480_idx_0x03
6640    data_6640
6645    data_6645
664A    data_664a
664F    data_664f
6654    jt_6480_idx_0x07
6660    jt_6480_idx_0x0f
6680    jr_001_6680
6685    jr_001_6685
668A    jr_001_668a
668F    jr_001_668f
6692    jr_memcpy_ff10_hl_5
6695    data_6695
669A    data_669a
66A5    data_66a5
66AF    jt_6480_idx_0x05
66C3    jt_6480_idx_0x0d
66E1    load_ch1_env_and_freq
66EC    data_66ec
66F7    data_66f7
66FC    jt_6480_idx_0x02
6714    jt_6480_idx_0x0a
6734    jt_6480_idx_0x04
6740    data_6740
6745    data_6745
6749    data_6749
674D    data_674d
6751    data_6751
6755    nr43_data_6755
6779    nr42_data_6779
679D    jt_6480_idx_0x12
67A5    jt_6480_idx_0x13
67AD    jt_6480_idx_0x17
67D4    jt_6480_idx_0x10
67DC    jt_6480_idx_0x11
67E4    jt_6480_idx_0x16
67E9    Jump_001_67e9
67FB    ch3_wave
6800    play_ch3_data_6ed9
6817    freq_lo_tremble
682A    jr_001_682a
6832    jr_001_6832
683C    ch3_stuff
685C    mode3_data_685c
685F    data_685f
686B    play_ch3_data_6ea9
6880    jr_001_6880
6883    jr_001_6883
6894    jr_001_6894
68A5    jr_001_68a5
68B6    ch3_changes_pitch_or_pattern_unknown
68D8    jr_001_68d8
68DC    jr_001_68dc
68DE    jr_001_68de
68E2    jr_001_68e2
6908    jr_001_6908
690D    fcn_0000690d
6932    jr_001_6932
6936    Jump_001_6936
6956    load_mode1_HL
695D    load_mode2_HL
6964    load_mode3_HL
696B    load_mode4_HL
6970    memcpy_c_hl_b_pop_bc
6978    fn_lookup_for_Aminus1_store_A_incr_e
697C    fn_lookup_for_Aminus1_incr_e
698B    inc_or_reset_DE_if_DEplus1
6996    jr_001_6996
6998    load_waveram_hl_10
699B    jr_001_699b
69A5    _snd_init
69C7    snd_reset
69DD    call_stored_jt_idx_0_or_1_set7_df9f
69F0    jr_001_69f0
69FC    jr_001_69fc
69FD    run_dff8_or_dff9_if_set
6A10    jr_001_6a10
6A1C    jr_001_6a1c
6A1D    jr_001_6a1d
6A21    progress_music_maybe
6A3C    load_data_from_6a3c
6A44    jr_001_6a44
6A4D    jr_001_6a4d
6A65    fcn_00006a65
6A8F    Jump_001_6a8f
6A9A    jr_001_6a9a
6AA4    jr_001_6aa4
6AA5    jr_001_6aa5
6AA8    jr_001_6aa8
6AAC    jr_001_6aac
6AB1    jr_001_6ab1
6ABE    unknown_data_6abe
6B02    deref_word_hl_to_de
6B0D    memcpy_de_hl_2
6B13    preload_stuff_from_64b0
6B64    jr_001_6b64
6B6A    jr_001_6b6a
6B7D    transfer_wave_patterns_DE
6B89    Jump_001_6b89
6BB3    jr_001_6bb3
6BB9    inc_HL
6BBF    jr_001_6bbf
6BC5    fcn_00006bc5
6BCE    double_deref_HL_to_B
6BD5    jr_001_6bd5
6BD8    Jump_001_6bd8
6BEF    jr_001_6bef
6C04    jr_001_6c04
6C09    Jump_001_6c09
6C10    jr_001_6c10
6C24    jr_001_6c24
6C3B    jr_001_6c3b
6C44    fcn_00006c44
6C52    loop_sets_df90_dfa0_etc
6C5C    Jump_001_6c5c
6C5E    Jump_001_6c5e
6C8B    jr_001_6c8b
6CB7    jr_001_6cb7
6CBC    Jump_001_6cbc
6CC4    jr_001_6cc4
6CD3    jr_001_6cd3
6CED    jr_001_6cd3.noreset
6CF8    jr_001_6cf8
6CFC    jr_001_6cfc
6D01    jr_001_6d01
6D0A    jr_001_6d0a
6D0D    jr_001_6d0d
6D16    jr_001_6d16
6D34    jr_001_6d34
6D39    Jump_001_6d39
6D4A    jr_001_6d4a
6D57    jr_001_6d57
6D5E    fcn_00006d5e
6D67    unknown_sound_mode_freq_low_6d67
6D89    jr_001_6d89
6D8B    jr_001_6d8b
6DA1    jr_001_6da1
6DA6    jr_001_6da6
6DB2    jr_001_6db2
6DBF    jr_001_6dbf
6DC1    jr_001_6dc1
6DC2    jr_001_6dc2
6E94    data_6e94
6EA9    wave_pattern_6ea9
6EA9    wave_pattern_6ea9.data
6EB9    wave_pattern_6eb9
6EC9    wave_pattern_6ec9
6ED9    wave_pattern_6ed9
6EE9    wave_pattern_6ee9
6EF9    ptr_from_64b0_tab_6ef9
6F05    ptr_from_64b0_tab_6f05
6F0E    ptr_from_64b0_tab_6f0e
6F2B    ptr_from_64b0_tab_6f2b
6F3F    table_64b0_entry_0x00
6F4A    table_64b0_entry_0x01
6F55    table_64b0_entry_0x02
6F60    table_64b0_entry_0x03
6F6B    table_64b0_entry_0x04
6F76    table_64b0_entry_0x05
6F81    table_64b0_entry_0x06
6F8C    table_64b0_entry_0x07
6F97    table_64b0_entry_0x08
6FA2    table_64b0_entry_0x09
6FAD    table_64b0_entry_0x0a
6FB8    table_64b0_entry_0x0b
6FC3    table_64b0_entry_0x0c
6FCE    table_64b0_entry_0x0d
6FD9    table_64b0_entry_0x0e
6FE4    table_64b0_entry_0x0f
6FEF    table_64b0_entry_0x10
6FFA    ptr_from_64b0_tab_6ffa
7016    data_from_6ffa_7016
7034    data_from_6ffa_7034
704D    data_from_6ffa_704d
7093    data_from_6ffa_7093
7142    ptr_from_64b0_tab_7142
714C    ptr_from_64b0_tab_714c
7156    ptr_from_64b0_tab_7156
7162    ptr_from_64b0_tab_7162
72B8    ptr_from_64b0_tab_72b8
72C6    ptr_from_64b0_tab_72c6
72D4    ptr_from_64b0_tab_72d4
730B    data_730b
733F    data_733f
7367    data_7367
73C9    data_73c9
7543    ptr_from_64b0_tab_7543
754B    ptr_from_64b0_tab_754b
7551    ptr_from_64b0_tab_7551
758D    ptr_from_64b0_tab_758d
7595    ptr_from_64b0_tab_7595
759B    ptr_from_64b0_tab_759b
75FC    ptr_from_64b0_tab_75fc
7600    ptr_from_64b0_tab_7600
7602    ptr_from_64b0_tab_7602
763B    ptr_from_64b0_tab_763b
7641    ptr_from_64b0_tab_7641
7663    ptr_from_64b0_tab_7663
7675    fcn_00007675
7876    ptr_from_64b0_tab_7876
787E    ptr_from_64b0_tab_787e
7886    ptr_from_64b0_tab_7886
7A00    ptr_from_64b0_tab_7a00
7A2A    ptr_from_64b0_tab_7a2a
7A6F    ptr_from_64b0_tab_7a6f
7A73    ptr_from_64b0_tab_7a73
7A75    ptr_from_64b0_tab_7a75
7ADF    ptr_from_64b0_tab_7adf
7AE3    ptr_from_64b0_tab_7ae3
7AE7    ptr_from_64b0_tab_7ae7
7B65    ptr_from_64b0_tab_7b65
7B6B    ptr_from_64b0_tab_7b6b
7B6F    ptr_from_64b0_tab_7b6f
7B73    ptr_from_64b0_tab_7b73
7C28    ptr_from_64b0_tab_7c28
7C2A    ptr_from_64b0_tab_7c2a
7C2C    ptr_from_64b0_tab_7c2c
7C7C    Call_001_7c7c
7D11    ptr_from_64b0_tab_7d11
7D21    ptr_from_64b0_tab_7d21
7E48    ptr_from_64b0_tab_7e48
7E4A    ptr_from_64b0_tab_7e4a
7E4C    ptr_from_64b0_tab_7e4c
7E9D    ptr_from_64b0_tab_7e9d
7EA9    ptr_from_64b0_tab_7ea9
7EB5    ptr_from_64b0_tab_7eb5
7FF0    snd_step
7FF3    snd_init


Generate next Tetromino

ROM0:2062 21 00 C2         ld   hl,C200
ROM0:2065 36 00            ld   (hl),00              ;wC200 = 0x00
ROM0:2067 2C               inc  l
ROM0:2068 36 18            ld   (hl),18              ;wC201 = 0x18
ROM0:206A 2C               inc  l
ROM0:206B 36 3F            ld   (hl),3F              ;wC202 = 0x3F
ROM0:206D 2C               inc  l
ROM0:206E FA 13 C2         ld   a,(C213)             ;load next Tetromino in accumulator
ROM0:2071 77               ld   (hl),a               ;wC203 = Tetromino
ROM0:2072 E6 FC            and  a,FC                 ;Tetromino & 252
ROM0:2074 4F               ld   c,a
ROM0:2075 F0 E4            ld   a,(ff00+E4)
ROM0:2077 A7               and  a
ROM0:2078 20 05            jr   nz,207F              ;if(hFFE4 ≠ 0), jump to 0:207F
ROM0:207A F0 C5            ld   a,(ff00+C5)
ROM0:207C A7               and  a
ROM0:207D 28 1D            jr   z,209C
ROM0:207F 26 C3            ld   h,C3
ROM0:2081 F0 B0            ld   a,(ff00+B0)
ROM0:2083 6F               ld   l,a                  ;hl = 0xC3xx
ROM0:2084 5E               ld   e,(hl)               ;e = (hl)
ROM0:2085 23               inc  hl                   ;hl++
ROM0:2086 7C               ld   a,h
ROM0:2087 FE C4            cp   a,C4
ROM0:2089 20 03            jr   nz,208E              ;if(h ≠ 0xC4), jump to 0:208E
ROM0:208B 21 00 C3         ld   hl,C300              ;hl = C300
ROM0:208E 7D               ld   a,l
ROM0:208F E0 B0            ld   (ff00+B0),a          ;hFFB0 = l
ROM0:2091 F0 D3            ld   a,(ff00+D3)
ROM0:2093 A7               and  a
ROM0:2094 28 2A            jr   z,20C0
ROM0:2096 F6 80            or   a,80
ROM0:2098 E0 D3            ld   (ff00+D3),a
ROM0:209A 18 24            jr   20C0
ROM0:209C 26 03            ld   h,03
ROM0:209E F0 04            ld   a,(ff00+04)
ROM0:20A0 47               ld   b,a
ROM0:20A1 AF               xor  a
ROM0:20A2 05               dec  b
ROM0:20A3 28 0A            jr   z,20AF
ROM0:20A5 3C               inc  a
ROM0:20A6 3C               inc  a
ROM0:20A7 3C               inc  a
ROM0:20A8 3C               inc  a
ROM0:20A9 FE 1C            cp   a,1C
ROM0:20AB 28 F4            jr   z,20A1
ROM0:20AD 18 F3            jr   20A2
ROM0:20AF 57               ld   d,a
ROM0:20B0 F0 AE            ld   a,(ff00+AE)
ROM0:20B2 5F               ld   e,a
ROM0:20B3 25               dec  h
ROM0:20B4 28 07            jr   z,20BD
ROM0:20B6 B2               or   d
ROM0:20B7 B1               or   c
ROM0:20B8 E6 FC            and  a,FC
ROM0:20BA B9               cp   c
ROM0:20BB 28 E1            jr   z,209E
ROM0:20BD 7A               ld   a,d
ROM0:20BE E0 AE            ld   (ff00+AE),a
ROM0:20C0 7B               ld   a,e
ROM0:20C1 EA 13 C2         ld   (C213),a             ;write next Tetromino to wC213
ROM0:20C4 CD EA 26         call 26EA
ROM0:20C7 F0 9A            ld   a,(ff00+9A)
ROM0:20C9 E0 99            ld   (ff00+99),a
ROM0:20CB C9               ret