掌機 - Game Boy Color - Assembly - Background Display



參考資訊:
https://bgb.bircd.org/
https://github.com/gbdev/rgbds
https://github.com/sinamas/gambatte
https://github.com/lancekindle/DMGreport

BG的內容就是第X個CHR


main.s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
LCDC     equ $ff40
LCDCF_ON equ %10000000
     
section "vblank", rom0[$0040]
    reti
 
section "lcdc", rom0[$0048]
    reti
 
section "timer", rom0[$0050]
    reti
 
section "serial", rom0[$0058]
    reti
 
section "joypad", rom0[$0060]
    reti
 
section "entry", rom0[$0100]
    nop
    jp _start
 
section "header", rom0[$0104]
    db $ce, $ed, $66, $66, $cc, $0d, $00, $0b, $03, $73, $00, $83, $00, $0c, $00, $0d
    db $00, $08, $11, $1f, $88, $89, $00, $0e, $dc, $cc, $6e, $e6, $dd, $dd, $d9, $99
    db $bb, $bb, $67, $63, $6e, $0e, $ec, $cc, $dd, $dc, $99, $9f, $bb, $b9, $33, $3e
    db "0123456789abcde"
    db $80
    db 0, 0
    db 0
    db 0
    db 0
    db 0
    db 1
    db $33
    db 0
    db 0
    dw 0
 
_start:
    di
 
    ld d, 32
    ld bc, tile
    ld hl, $8000
copy_tile:
    ld a, [bc]
    ld [hl+], a
    inc bc
    dec d
    jr nz, copy_tile
 
    ld b, 0
    ld hl, color
copy_palette:
    ld a, b
    ld [$ff68], a
    ld a, [hl]
    ld [$ff69], a
    inc hl
    inc b
    ld a, b
    cp 8
    jr nz, copy_palette
 
    ld a, 1
    ld [$9800], a
 
    jp @
 
color:
    dw $7fff
    dw $001f
    dw $03e0
    dw $7c00
 
tile:
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
    db %00000000
 
    db %11111111
    db %00000000
    db %11111111
    db %00000000
    db %11111111
    db %00000000
    db %11111111
    db %00000000
    db %11111111
    db %00000000
    db %11111111
    db %00000000
    db %11111111
    db %00000000
    db %11111111
    db %00000000

完成