Last active
August 25, 2021 23:04
-
-
Save rdeioris/fe24346e44e62250728c0ce71263388e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| SECTION "Setup", ROM0[$100] | |
| JP start | |
| SECTION "Main", ROM0[$150] | |
| start: | |
| LD SP, $FFFE | |
| CALL clear_vram | |
| CALL clear_oam | |
| LD HL, $8000 | |
| LD BC, tile_quad | |
| CALL set_tile | |
| LD BC, tile_block | |
| CALL set_tile | |
| LD BC, tile_hlines | |
| CALL set_tile | |
| LD BC, tile_blank | |
| CALL set_tile | |
| LD BC, tile_block | |
| CALL set_tile | |
| LD BC, tile_cross | |
| CALL set_tile | |
| LD BC, window_map | |
| LD DE, 1024 | |
| LD HL, $9C00 | |
| CALL load_map | |
| XOR A | |
| LD [$FF42], A | |
| LD [$FF43], A | |
| LD A, 100 | |
| LD [$FF4A], A | |
| LD [$FF4B], A | |
| CALL sprite_palette0 | |
| LD A, 30 | |
| LD [sprite_y], A | |
| LD [sprite_x], A | |
| LD A, [sprite_y] | |
| LD [$FE00], A | |
| LD A, [sprite_x] | |
| LD [$FE01], A | |
| LD A, 5 | |
| LD [$FE02], A | |
| LD A, 0 | |
| LD [$FE03], A | |
| CALL turn_on_lcd | |
| gameloop: | |
| LD A, [$FF44] | |
| CP $90 | |
| CALL Z, in_vblank | |
| LD A, [$FF44] | |
| CP $48 | |
| JP NC, scroll_x | |
| CALL wait_hblank | |
| LD A, [sprite_y] | |
| LD [$FE00], A | |
| LD A, [sprite_x] | |
| LD [$FE01], A | |
| CALL white_palette | |
| XOR A | |
| LD [$FF43], A | |
| CALL wait_non_hblank | |
| JP gameloop | |
| scroll_x: | |
| CALL wait_hblank | |
| CALL black_palette | |
| LD A, [scroll_var] | |
| LD [$FF43], A | |
| CALL wait_non_hblank | |
| JP gameloop | |
| in_vblank: | |
| LD A, $20 | |
| LD [$FF00], A | |
| LD A, [$FF00] | |
| LD A, [$FF00] | |
| LD A, [$FF00] | |
| LD A, [$FF00] | |
| LD A, [$FF00] | |
| BIT 0, A | |
| JP NZ, left | |
| LD HL, $FF4B | |
| INC [HL] | |
| left: | |
| BIT 1, A | |
| JP NZ, up | |
| LD HL, $FF4B | |
| DEC [HL] | |
| up: | |
| BIT 2, A | |
| JP NZ, down | |
| LD HL, $FF4A | |
| DEC [HL] | |
| down: | |
| BIT 3, A | |
| JP NZ, half_bottom_scroll | |
| LD HL, $FF4A | |
| INC [HL] | |
| half_bottom_scroll: | |
| LD A, [scroll_var] | |
| INC A | |
| LD [scroll_var],A | |
| LD HL, sprite_y | |
| INC [HL] | |
| LD HL, sprite_x | |
| INC [HL] | |
| RET | |
| wait_vblank: | |
| LD A, [$FF44] | |
| CP $90 | |
| JP NZ, wait_vblank | |
| RET | |
| wait_hblank: | |
| LD A, [$FF41] | |
| AND $03 | |
| JP NZ, wait_hblank | |
| RET | |
| wait_non_hblank: | |
| LD A, [$FF41] | |
| AND $03 | |
| JP Z, wait_non_hblank | |
| RET | |
| turn_off_lcd: | |
| CALL wait_vblank | |
| XOR A | |
| LD [$FF40], A | |
| RET | |
| turn_on_lcd: | |
| LD A, $f3 | |
| LD [$FF40], A | |
| RET | |
| clear_vram: | |
| CALL turn_off_lcd | |
| XOR A | |
| LD HL, $9FFF | |
| clear_vram_loop: | |
| LD [HL-], A | |
| BIT 7, H | |
| JP NZ, clear_vram_loop | |
| RET | |
| black_palette: | |
| LD A, $03 | |
| LD [$FF47], A | |
| RET | |
| white_palette: | |
| LD A, $C0 | |
| LD [$FF47], A | |
| RET | |
| sprite_palette0: | |
| LD A, $e4 | |
| LD [$FF48], A | |
| RET | |
| clear_oam: | |
| LD HL, $FE00 | |
| clear_oam_loop: | |
| XOR A | |
| LD [HL+], A | |
| LD A, $A0 | |
| CP A, L | |
| JP NZ, clear_oam_loop | |
| RET | |
| set_tile: | |
| LD D, 0 | |
| set_tile_loop: | |
| LD A, [BC] | |
| LD [HL+], A | |
| INC BC | |
| INC D | |
| LD A, D | |
| CP $10 | |
| JP NZ, set_tile_loop | |
| RET | |
| load_map: | |
| LD A, [BC] | |
| LD [HL+], A | |
| INC BC | |
| DEC DE | |
| LD A,D | |
| OR E | |
| JP NZ, load_map | |
| RET | |
| tile_quad: | |
| DB $FF,$FF,$81,$81,$81,$81,$81,$81,$81,$81,$81,$81,$81,$81,$FF,$FF | |
| tile_block: | |
| DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF | |
| tile_hlines: | |
| DB $FF,$FF,$00,$00,$FF,$FF,$00,$00,$FF,$FF,$00,$00,$FF,$FF,$00,$00 | |
| tile_blank: | |
| DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
| tile_cross: | |
| DB $18,$00,$18,$00,$18,$00,$FF,$FF,$FF,$FF,$00,$18,$00,$18,$00,$18 | |
| window_map: | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| DB 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 | |
| DB 4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3 | |
| SECTION "VARIABLES", WRAM0 | |
| scroll_var: | |
| DS 1 | |
| sprite_y: | |
| DS 1 | |
| sprite_x: | |
| DS 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment