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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
Load_Music:
.LOAD_BANK_OF =_music_Test
LD HL, ptr(=_music_Test+52)
LD A, L
ADD (HL)
LD L, A
LD A, H
ADC $00
LD H, A
LD A, bank(=_music_Test)
LD ($mem_current_vgm_pc), A
LD A, H
LD ($mem_current_vgm_pc+1), A
LD A, L
LD ($mem_current_vgm_pc+2), A
RET
Loop_Music:
.LOAD_BANK_OF =_music_Test
LD HL, ptr(=_music_Test+28)
LD BC, ptr(=_music_Test+28)
LD E, bank(=_music_Test+28)
LD A, B
SUB $40
LD B, A
LD A, (HL+)
ADD C
LD C, A
LD A, (HL+)
ADC B
LD B, A
LD A, (HL+)
ADC E
LD E, A
LD A, $00
SLA B
RL A
ADD E
LD E, A
SRA B
LD A, $40
ADD B
LD B, A
LD A, E
LD ($mem_current_vgm_pc), A
LD A, B
LD ($mem_current_vgm_pc+1), A
LD A, C
LD ($mem_current_vgm_pc+2), A
RET
Inc_HL_Fix_Bank:
PUSH AF
INC HL
LD A, H
CP $80
JR C, =.end
SUB $40
LD H, A
LD A, $saved_rom_bank
INC A
.CHANGE_BANK_TO_A
.end:
POP AF
RET
Play_Music:
LD A, ($mem_current_vgm_pc)
.CHANGE_BANK_TO_A
LD A, ($mem_current_vgm_pc+1)
LD H, A
LD A, ($mem_current_vgm_pc+2)
LD L, A
.next:
LD A, (HL)
CALL =Inc_HL_Fix_Bank
CP $b3
JR NZ, =.set_register.end
.set_register:
LD A, (HL)
CALL =Inc_HL_Fix_Bank
ADD $10
LD C, A
LD A, (HL)
CALL =Inc_HL_Fix_Bank
LD (C), A
JR =.next
.set_register.end:
CP $66
JP Z, =Loop_Music
CP $62
JR Z, =.panic.end
CP $61
JR NZ, =.the61thingy.end
.the61thingy:
CALL =Inc_HL_Fix_Bank
CALL =Inc_HL_Fix_Bank
JR =.panic.end
.the61thingy.end:
.panic:
LD A, $saved_rom_bank
STOP
.panic.end:
LD A, H
LD ($mem_current_vgm_pc+1), A
LD A, L
LD ($mem_current_vgm_pc+2), A
LD A, $saved_rom_bank
LD ($mem_current_vgm_pc), A
RET
|