Yu-Gi-Oh! Dark Duel Stories/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Yu-Gi-Oh! Dark Duel Stories.

Bank 0

rst

rst 00

ROM0:0000 D9               reti 

rst 08

ROM0:0008 C3 A2 11         jp   11A2          ;rst 08 instructions

rst 10

ROM0:0010 D9               reti 

rst 18

ROM0:0018 D9               reti

rst 20

ROM0:0020 D9               reti 

rst 28

ROM0:0028 D9               reti 

rst 30

ROM0:0030 D9               reti 

rst 38 (error trap)

ROM0:0038 00               nop  
ROM0:0039 18 FE            jr   0039

rst 40 (vblank)

ROM0:0040 C3 24 05         jp   0524

rst 48 (LCD)

ROM0:0048 00               nop  
ROM0:0049 D9               reti 

rst 50 (timer)

ROM0:0050 C3 2C 3D         jp   3D2C             ;Read Game Boy Sound file

rst 58 (serial)

ROM0:0058 C3 DA 02         jp   02DA

rst 60 (joypad)

ROM0:0060 D9               reti 

ROM start

ROM0:0100 00               nop  
ROM0:0101 C3 50 01         jp   0150
ROM0:0150 E0 DD            ld   (ff00+DD),a	;System running the game
ROM0:0152 21 00 C0         ld   hl,C000
ROM0:0155 01 FF 1F         ld   bc,1FFF
ROM0:0158 AF               xor  a
ROM0:0159 22               ldi  (hl),a		;Blanks WRAM
ROM0:015A 0B               dec  bc
ROM0:015B 78               ld   a,b
ROM0:015C B1               or   c
ROM0:015D 20 F9            jr   nz,0158		;Loops until WRAM is cleared
ROM0:015F 21 00 D0         ld   hl,D000
ROM0:0162 F9               ld   sp,hl
ROM0:0163 CD EF 11         call 11EF		;Game Boy Color check
ROM0:0166 CD D1 2F         call 2FD1
ROM0:0169 3E 01            ld   a,01
ROM0:016B E0 70            ld   (ff00+70),a	;WRAM Bank 1
ROM0:016D CD 8E 01         call 018E
ROM0:0170 CF               rst  08
...
ROM0:0173 CF               rst  08
...
ROM0:0176 CD D6 29         call 29D6
ROM0:0179 CD 8E 16         call 168E
ROM0:017C CD A0 04         call 04A0		;Initialize Joypad ?
ROM0:017F CD D8 0E         call 0ED8		;Sets (C5AE) and OAM pointer offset to 0
ROM0:0182 CD 99 02         call 0299		;Disable Serial (Game Link)
ROM0:0185 CF               rst  08
...
ROM0:0188 CF               rst  08
...
ROM0:018B 18 FE            jr   018B		;Error trap
ROM0:018D C9               ret

0:018E

ROM0:018E F5               push af
ROM0:018F 3E E0            ld   a,E0
ROM0:0191 E0 DF            ld   (ff00+DF),a	;(FFDF) = 0xE0
ROM0:0193 CD 11 02         call 0211		;Set (C5A0) and (C5A1) to 0
ROM0:0196 CD 9B 01         call 019B
ROM0:0199 F1               pop  af
ROM0:019A C9               ret  

0:019B

ROM0:019B F5               push af
ROM0:019C C5               push bc
ROM0:019D D5               push de
ROM0:019E E5               push hl
ROM0:019F 21 BF 01         ld   hl,01BF
ROM0:01A2 0E E0            ld   c,E0
ROM0:01A4 06 02            ld   b,02
ROM0:01A6 1E 05            ld   e,05
ROM0:01A8 2A               ldi  a,(hl)
ROM0:01A9 E2               ld   (ff00+c),a	;Copy array at 0:01BF to (FFE0)
ROM0:01AA 0C               inc  c
ROM0:01AB 1D               dec  e
ROM0:01AC 20 FA            jr   nz,01A8
ROM0:01AE 2A               ldi  a,(hl)
ROM0:01AF 5F               ld   e,a
ROM0:01B0 2A               ldi  a,(hl)
ROM0:01B1 57               ld   d,a
ROM0:01B2 2A               ldi  a,(hl)
ROM0:01B3 12               ld   (de),a
ROM0:01B4 13               inc  de
ROM0:01B5 2A               ldi  a,(hl)
ROM0:01B6 12               ld   (de),a
ROM0:01B7 05               dec  b
ROM0:01B8 20 EC            jr   nz,01A6
ROM0:01BA E1               pop  hl
ROM0:01BB D1               pop  de
ROM0:01BC C1               pop  bc
ROM0:01BD F1               pop  af
ROM0:01BE C9               ret  

0:01BF (array)

ROM0:01BF
76 CF 04 00 01 7E CF D1 41 76 CD 3D 00 03 7E CD 04 40

ROM Bank + WRAM Bank switching

ROM0:01D1 F5               push af
ROM0:01D2 C5               push bc
ROM0:01D3 D5               push de
ROM0:01D4 E5               push hl
ROM0:01D5 F8 08            ld   hl,sp+08
ROM0:01D7 2A               ldi  a,(hl)
ROM0:01D8 5F               ld   e,a
ROM0:01D9 56               ld   d,(hl)
ROM0:01DA 1A               ld   a,(de)
ROM0:01DB 47               ld   b,a
ROM0:01DC 13               inc  de
ROM0:01DD 7A               ld   a,d
ROM0:01DE 32               ldd  (hl),a
ROM0:01DF 73               ld   (hl),e
ROM0:01E0 F0 DF            ld   a,(ff00+DF)
ROM0:01E2 4F               ld   c,a
ROM0:01E3 F8 00            ld   hl,sp+00
ROM0:01E5 7D               ld   a,l
ROM0:01E6 E2               ld   (ff00+c),a
ROM0:01E7 0C               inc  c
ROM0:01E8 7C               ld   a,h
ROM0:01E9 E2               ld   (ff00+c),a
ROM0:01EA 0C               inc  c
ROM0:01EB FA 00 40         ld   a,(4000)	;ROM Bank
ROM0:01EE E2               ld   (ff00+c),a
ROM0:01EF 0C               inc  c
ROM0:01F0 FA 01 40         ld   a,(4001)	;WRAM Bank
ROM0:01F3 E2               ld   (ff00+c),a
ROM0:01F4 0C               inc  c
ROM0:01F5 F0 70            ld   a,(ff00+70)	;WRAM Bank switch
ROM0:01F7 E2               ld   (ff00+c),a
ROM0:01F8 78               ld   a,b
ROM0:01F9 E0 DF            ld   (ff00+DF),a
ROM0:01FB 4F               ld   c,a
ROM0:01FC F2               ld   a,(ff00+c)
ROM0:01FD 6F               ld   l,a
ROM0:01FE 0C               inc  c
ROM0:01FF F2               ld   a,(ff00+c)
ROM0:0200 67               ld   h,a
ROM0:0201 F9               ld   sp,hl
ROM0:0202 0C               inc  c
ROM0:0203 F2               ld   a,(ff00+c)
ROM0:0204 0C               inc  c
ROM0:0205 0C               inc  c
ROM0:0206 CD 00 12         call 1200		;ROM Bank switch
ROM0:0209 F2               ld   a,(ff00+c)
ROM0:020A E0 70            ld   (ff00+70),a
ROM0:020C E1               pop  hl
ROM0:020D D1               pop  de
ROM0:020E C1               pop  bc
ROM0:020F F1               pop  af
ROM0:0210 C9               ret

0:0211

ROM0:0211 F5               push af
ROM0:0212 AF               xor  a
ROM0:0213 EA A0 C5         ld   (C5A0),a
ROM0:0216 EA A1 C5         ld   (C5A1),a
ROM0:0219 F1               pop  af
ROM0:021A C9               ret  

0:021B

ROM0:021B F5               push af
ROM0:021C C5               push bc
ROM0:021D D5               push de
ROM0:021E FA A0 C5         ld   a,(C5A0)
ROM0:0221 5F               ld   e,a
ROM0:0222 FA A1 C5         ld   a,(C5A1)
ROM0:0225 BB               cp   e
ROM0:0226 20 04            jr   nz,022C
ROM0:0228 CD D1 01         call 01D1		;ROM Bank + WRAM Bank switching
ROM0:022B E5               push hl
ROM0:022C 16 C0            ld   d,C0
ROM0:022E 0E 80            ld   c,80
ROM0:0230 1A               ld   a,(de)
ROM0:0231 22               ldi  (hl),a
ROM0:0232 1C               inc  e
ROM0:0233 0D               dec  c
ROM0:0234 20 FA            jr   nz,0230
ROM0:0236 7B               ld   a,e
ROM0:0237 EA A0 C5         ld   (C5A0),a
ROM0:023A D1               pop  de
ROM0:023B C1               pop  bc
ROM0:023C F1               pop  af
ROM0:023D C9               ret  

0:023E

ROM0:023E D5               push de
ROM0:023F FA A0 C5         ld   a,(C5A0)
ROM0:0242 5F               ld   e,a
ROM0:0243 FA A1 C5         ld   a,(C5A1)
ROM0:0246 BB               cp   e
ROM0:0247 20 06            jr   nz,024F
ROM0:0249 CD D1 01         call 01D1		;ROM Bank + WRAM Bank switching
ROM0:024C E5               push hl
ROM0:024D 18 F4            jr   0243
ROM0:024F 16 C0            ld   d,C0
ROM0:0251 1A               ld   a,(de)
ROM0:0252 57               ld   d,a
ROM0:0253 1C               inc  e
ROM0:0254 7B               ld   a,e
ROM0:0255 EA A0 C5         ld   (C5A0),a
ROM0:0258 7A               ld   a,d
ROM0:0259 D1               pop  de
ROM0:025A C9               ret  

0:025B

ROM0:025B F5               push af
ROM0:025C D5               push de
ROM0:025D F5               push af
ROM0:025E FA A1 C5         ld   a,(C5A1)
ROM0:0261 5F               ld   e,a
ROM0:0262 3E 80            ld   a,80
ROM0:0264 83               add  e
ROM0:0265 57               ld   d,a
ROM0:0266 FA A0 C5         ld   a,(C5A0)
ROM0:0269 BA               cp   d
ROM0:026A 20 06            jr   nz,0272		;If(((C5A1) + 0x80) ≠ (C5A0)), jump to 0:0272
ROM0:026C CD D1 01         call 01D1		;ROM Bank + WRAM Bank switching
ROM0:026F E0 18            ld   (ff00+18),a	;NR23 - Channel 2 Frequency low
...
ROM0:0272 F1               pop  af
ROM0:0273 16 C0            ld   d,C0
ROM0:0275 12               ld   (de),a		;Write in (C000) - (C0FF) area
ROM0:0276 1C               inc  e
ROM0:0277 7B               ld   a,e
ROM0:0278 EA A1 C5         ld   (C5A1),a
ROM0:027B D1               pop  de
ROM0:027C F1               pop  af
ROM0:027D C9               ret

Game Link

0:0299

ROM0:0299 F5               push af
ROM0:029A E5               push hl
ROM0:029B F3               di   
ROM0:029C CD 69 1D         call 1D69
ROM0:029F 21 FF FF         ld   hl,FFFF
ROM0:02A2 CB 9E            res  3,(hl)		;Serial Interrupt Disabled
ROM0:02A4 21 0F FF         ld   hl,FF0F
ROM0:02A7 CB 9E            res  3,(hl)		;Serial Interrupt Flag = 0
ROM0:02A9 3E 00            ld   a,00
ROM0:02AB EA A3 C5         ld   (C5A3),a
ROM0:02AE AF               xor  a
ROM0:02AF EA A6 C5         ld   (C5A6),a
ROM0:02B2 EA A4 C5         ld   (C5A4),a
ROM0:02B5 EA A5 C5         ld   (C5A5),a
ROM0:02B8 EA A2 C5         ld   (C5A2),a
ROM0:02BB E0 02            ld   (ff00+02),a		;Serial Transfer control: No Transfer, Normal Clock Speed
ROM0:02BD 3E 00            ld   a,00
ROM0:02BF E0 01            ld   (ff00+01),a		;Serial Transfer data = 0
ROM0:02C1 21 02 FF         ld   hl,FF02
ROM0:02C4 CB 86            res  0,(hl)		;Serial Transfer control: External Clock
ROM0:02C6 FB               ei   
ROM0:02C7 E1               pop  hl
ROM0:02C8 F1               pop  af
ROM0:02C9 C9               ret

rst 58 - Serial Interrupt

ROM0:02DA F5               push af
ROM0:02DB C5               push bc
ROM0:02DC D5               push de
ROM0:02DD E5               push hl
ROM0:02DE FA A3 C5         ld   a,(C5A3)
ROM0:02E1 FE 00            cp   a,00
ROM0:02E3 20 05            jr   nz,02EA
ROM0:02E5 CD 00 03         call 0300
ROM0:02E8 18 10            jr   02FA
ROM0:02EA FE 02            cp   a,02
ROM0:02EC 20 05            jr   nz,02F3
ROM0:02EE CD 19 03         call 0319
ROM0:02F1 18 07            jr   02FA
ROM0:02F3 FE 04            cp   a,04
ROM0:02F5 20 03            jr   nz,02FA
ROM0:02F7 CD 24 03         call 0324
ROM0:02FA E1               pop  hl
ROM0:02FB D1               pop  de
ROM0:02FC C1               pop  bc
ROM0:02FD F1               pop  af
ROM0:02FE D9               reti 
ROM0:02FF C9               ret  

0:0300

ROM0:0300 F0 01            ld   a,(ff00+01)
ROM0:0302 EA A4 C5         ld   (C5A4),a
ROM0:0305 FE 20            cp   a,20
ROM0:0307 28 0F            jr   z,0318
ROM0:0309 3E 00            ld   a,00
ROM0:030B E0 01            ld   (ff00+01),a
ROM0:030D CD 80 04         call 0480
ROM0:0310 3E 00            ld   a,00
ROM0:0312 E0 02            ld   (ff00+02),a
ROM0:0314 3E 80            ld   a,80
ROM0:0316 E0 02            ld   (ff00+02),a
ROM0:0318 C9               ret  

0:0319

ROM0:0319 F0 01            ld   a,(ff00+01)
ROM0:031B EA A4 C5         ld   (C5A4),a
ROM0:031E 3E 01            ld   a,01
ROM0:0320 EA A2 C5         ld   (C5A2),a
ROM0:0323 C9               ret  

0:0324

ROM0:0324 F0 01            ld   a,(ff00+01)
ROM0:0326 EA A4 C5         ld   (C5A4),a
ROM0:0329 4F               ld   c,a
ROM0:032A E6 F0            and  a,F0
ROM0:032C FE 80            cp   a,80
ROM0:032E 20 08            jr   nz,0338
ROM0:0330 FA A4 C5         ld   a,(C5A4)
ROM0:0333 CD A8 1D         call 1DA8
ROM0:0336 18 07            jr   033F
ROM0:0338 FE 50            cp   a,50
ROM0:033A 28 03            jr   z,033F
ROM0:033C CD F6 1B         call 1BF6
ROM0:033F FA A5 C5         ld   a,(C5A5)
ROM0:0342 E0 01            ld   (ff00+01),a
ROM0:0344 21 02 FF         ld   hl,FF02
ROM0:0347 CB FE            set  7,(hl)
ROM0:0349 3E 01            ld   a,01
ROM0:034B EA A2 C5         ld   (C5A2),a
ROM0:034E AF               xor  a
ROM0:034F EA B5 C5         ld   (C5B5),a
ROM0:0352 EA B6 C5         ld   (C5B6),a
ROM0:0355 EA B7 C5         ld   (C5B7),a
ROM0:0358 C9               ret

Checks Game Link status

  • 0x359-0x39F Checks Game Link status, returns 0 if there's no error, or 1 if there's an error
ROM0:0359 C5               push bc
ROM0:035A D5               push de
ROM0:035B E5               push hl
ROM0:035C CD 99 02         call 0299
ROM0:035F CD 4B 1D         call 1D4B
ROM0:0362 1E 00            ld   e,00
ROM0:0364 06 0A            ld   b,0A
ROM0:0366 16 01            ld   d,01
ROM0:0368 0E 3C            ld   c,3C
ROM0:036A CD BF 03         call 03BF
ROM0:036D FE 00            cp   a,00
ROM0:036F 20 06            jr   nz,0377
ROM0:0371 1E 01            ld   e,01
ROM0:0373 16 00            ld   d,00
ROM0:0375 18 1A            jr   0391
ROM0:0377 0D               dec  c
ROM0:0378 20 F0            jr   nz,036A
ROM0:037A 0E 02            ld   c,02
ROM0:037C 05               dec  b
ROM0:037D 28 19            jr   z,0398
ROM0:037F CD A0 03         call 03A0
ROM0:0382 FE 00            cp   a,00
ROM0:0384 20 06            jr   nz,038C
ROM0:0386 1E 02            ld   e,02
ROM0:0388 16 00            ld   d,00
ROM0:038A 18 05            jr   0391
ROM0:038C 0D               dec  c
ROM0:038D 20 ED            jr   nz,037C
ROM0:038F 18 D7            jr   0368
ROM0:0391 CD E2 03         call 03E2
ROM0:0394 FE 00            cp   a,00
ROM0:0396 20 CA            jr   nz,0362
ROM0:0398 CD 5A 1D         call 1D5A
ROM0:039B 7A               ld   a,d
ROM0:039C E1               pop  hl
ROM0:039D D1               pop  de
ROM0:039E C1               pop  bc
ROM0:039F C9               ret

0:03A0

ROM0:03A0 E5               push hl
ROM0:03A1 21 02 FF         ld   hl,FF02
ROM0:03A4 36 00            ld   (hl),00
ROM0:03A6 3E 10            ld   a,10
ROM0:03A8 E0 01            ld   (ff00+01),a
ROM0:03AA 36 01            ld   (hl),01
ROM0:03AC CB FE            set  7,(hl)
ROM0:03AE CD 4B 11         call 114B
ROM0:03B1 2E 01            ld   l,01
ROM0:03B3 FA A4 C5         ld   a,(C5A4)
ROM0:03B6 FE 20            cp   a,20
ROM0:03B8 20 02            jr   nz,03BC
ROM0:03BA 2E 00            ld   l,00
ROM0:03BC 7D               ld   a,l
ROM0:03BD E1               pop  hl
ROM0:03BE C9               ret  

0:03BF

ROM0:03BF E5               push hl
ROM0:03C0 21 02 FF         ld   hl,FF02
ROM0:03C3 3E 00            ld   a,00
ROM0:03C5 77               ld   (hl),a
ROM0:03C6 3E 00            ld   a,00
ROM0:03C8 EA A4 C5         ld   (C5A4),a
ROM0:03CB 3E 20            ld   a,20
ROM0:03CD E0 01            ld   (ff00+01),a
ROM0:03CF CB FE            set  7,(hl)
ROM0:03D1 CD 4B 11         call 114B
ROM0:03D4 2E 01            ld   l,01
ROM0:03D6 FA A4 C5         ld   a,(C5A4)
ROM0:03D9 FE 10            cp   a,10
ROM0:03DB 20 02            jr   nz,03DF
ROM0:03DD 2E 00            ld   l,00
ROM0:03DF 7D               ld   a,l
ROM0:03E0 E1               pop  hl
ROM0:03E1 C9               ret

0:03E2

ROM0:03E2 C5               push bc
ROM0:03E3 D5               push de
ROM0:03E4 06 01            ld   b,01
ROM0:03E6 7B               ld   a,e
ROM0:03E7 FE 01            cp   a,01
ROM0:03E9 20 09            jr   nz,03F4
ROM0:03EB CD 22 04         call 0422
ROM0:03EE CD 4A 04         call 044A
ROM0:03F1 47               ld   b,a
ROM0:03F2 18 14            jr   0408
ROM0:03F4 FE 02            cp   a,02
ROM0:03F6 20 10            jr   nz,0408
ROM0:03F8 CD D9 1B         call 1BD9
ROM0:03FB CD 0F 04         call 040F
ROM0:03FE CD D9 1B         call 1BD9
ROM0:0401 CD 33 04         call 0433
ROM0:0404 47               ld   b,a
ROM0:0405 CD D9 1B         call 1BD9
ROM0:0408 D1               pop  de
ROM0:0409 C1               pop  bc
ROM0:040A C9               ret  

0:040B

ROM0:040B EA A3 C5         ld   (C5A3),a
ROM0:040E C9               ret  

Stop data transfer

ROM0:040F F5               push af
ROM0:0410 E5               push hl
ROM0:0411 3E 10            ld   a,10
ROM0:0413 EA A6 C5         ld   (C5A6),a
ROM0:0416 3E 02            ld   a,02
ROM0:0418 CD 0B 04         call 040B		;(C5A3) = 2
ROM0:041B 3E 01            ld   a,01
ROM0:041D E0 02            ld   (ff00+02),a	;Stop transfer, Fast Clock speed
ROM0:041F E1               pop  hl
ROM0:0420 F1               pop  af
ROM0:0421 C9               ret  

0:0422

ROM0:0422 F5               push af
ROM0:0423 3E 20            ld   a,20
ROM0:0425 EA A6 C5         ld   (C5A6),a	;(C5A6) = 0x20
ROM0:0428 3E 04            ld   a,04
ROM0:042A CD 0B 04         call 040B		;(C5A3) = 4
ROM0:042D 3E 00            ld   a,00
ROM0:042F E0 02            ld   (ff00+02),a
ROM0:0431 F1               pop  af
ROM0:0432 C9               ret  

0:0433

ROM0:0433 C5               push bc
ROM0:0434 06 01            ld   b,01
ROM0:0436 3E 50            ld   a,50
ROM0:0438 CD 61 04         call 0461
ROM0:043B CD 4B 11         call 114B
ROM0:043E FA A4 C5         ld   a,(C5A4)
ROM0:0441 FE 60            cp   a,60
ROM0:0443 20 02            jr   nz,0447
ROM0:0445 06 00            ld   b,00
ROM0:0447 78               ld   a,b
ROM0:0448 C1               pop  bc
ROM0:0449 C9               ret  

0:044A

ROM0:044A C5               push bc
ROM0:044B 06 01            ld   b,01
ROM0:044D 3E 60            ld   a,60
ROM0:044F CD 89 04         call 0489		;Start data transfer
ROM0:0452 CD 65 11         call 1165
ROM0:0455 FA A4 C5         ld   a,(C5A4)
ROM0:0458 FE 50            cp   a,50
ROM0:045A 20 02            jr   nz,045E
ROM0:045C 06 00            ld   b,00
ROM0:045E 78               ld   a,b
ROM0:045F C1               pop  bc
ROM0:0460 C9               ret  

0:0461

ROM0:0461 F5               push af
ROM0:0462 E5               push hl
ROM0:0463 F3               di   
ROM0:0464 21 02 FF         ld   hl,FF02
ROM0:0467 CD 74 04         call 0474
ROM0:046A 36 01            ld   (hl),01
ROM0:046C E0 01            ld   (ff00+01),a
ROM0:046E CB FE            set  7,(hl)
ROM0:0470 FB               ei   
ROM0:0471 E1               pop  hl
ROM0:0472 F1               pop  af
ROM0:0473 C9               ret  

0:0474

ROM0:0474 F5               push af
ROM0:0475 E5               push hl
ROM0:0476 21 02 FF         ld   hl,FF02
ROM0:0479 CB 7E            bit  7,(hl)
ROM0:047B 20 FC            jr   nz,0479
ROM0:047D E1               pop  hl
ROM0:047E F1               pop  af
ROM0:047F C9               ret  

0:0480

ROM0:0480 F5               push af
ROM0:0481 AF               xor  a
ROM0:0482 00               nop  
ROM0:0483 00               nop  
ROM0:0484 3D               dec  a
ROM0:0485 20 FB            jr   nz,0482
ROM0:0487 F1               pop  af
ROM0:0488 C9               ret  

Start data transfer

ROM0:0489 F5               push af
ROM0:048A E5               push hl
ROM0:048B F5               push af
ROM0:048C F3               di   
ROM0:048D AF               xor  a
ROM0:048E EA A2 C5         ld   (C5A2),a
ROM0:0491 3E 00            ld   a,00
ROM0:0493 E0 02            ld   (ff00+02),a	;Serial Transfer Control (R/W)
ROM0:0495 F1               pop  af
ROM0:0496 E0 01            ld   (ff00+01),a	;Serial transfer data (R/W)
ROM0:0498 3E 80            ld   a,80
ROM0:049A E0 02            ld   (ff00+02),a	;Start transfer, Normal Clock speed, External Clock
ROM0:049C FB               ei   
ROM0:049D E1               pop  hl
ROM0:049E F1               pop  af
ROM0:049F C9               ret  

0:04A0 (related to Joypad ?)

ROM0:04A0 F5               push af
ROM0:04A1 3E FF            ld   a,FF
ROM0:04A3 EA A7 C5         ld   (C5A7),a
ROM0:04A6 AF               xor  a
ROM0:04A7 EA A8 C5         ld   (C5A8),a
ROM0:04AA EA A9 C5         ld   (C5A9),a
ROM0:04AD 3E 14            ld   a,14
ROM0:04AF EA AA C5         ld   (C5AA),a
ROM0:04B2 F1               pop  af
ROM0:04B3 C9               ret

0:04B4 (Joypad inputs ?)

ROM0:04B4 F5               push af
ROM0:04B5 C5               push bc
ROM0:04B6 D5               push de
ROM0:04B7 3E 20            ld   a,20
ROM0:04B9 E0 00            ld   (ff00+00),a
ROM0:04BB F0 00            ld   a,(ff00+00)	;Joypad
ROM0:04BD F0 00            ld   a,(ff00+00)
ROM0:04BF 2F               cpl  
ROM0:04C0 E6 0F            and  a,0F
ROM0:04C2 CB 37            swap a
ROM0:04C4 47               ld   b,a
ROM0:04C5 3E 10            ld   a,10
ROM0:04C7 E0 00            ld   (ff00+00),a	;Disable Direction keys
ROM0:04C9 F0 00            ld   a,(ff00+00)
ROM0:04CB F0 00            ld   a,(ff00+00)
ROM0:04CD F0 00            ld   a,(ff00+00)
ROM0:04CF F0 00            ld   a,(ff00+00)
ROM0:04D1 F0 00            ld   a,(ff00+00)
ROM0:04D3 F0 00            ld   a,(ff00+00)
ROM0:04D5 2F               cpl  		;Enable Direction keys
ROM0:04D6 E6 0F            and  a,0F
ROM0:04D8 B0               or   b
ROM0:04D9 4F               ld   c,a
ROM0:04DA FA A7 C5         ld   a,(C5A7)
ROM0:04DD 57               ld   d,a
ROM0:04DE A9               xor  c
ROM0:04DF A1               and  c
ROM0:04E0 EA A8 C5         ld   (C5A8),a
ROM0:04E3 79               ld   a,c
ROM0:04E4 EA A7 C5         ld   (C5A7),a
ROM0:04E7 3E 30            ld   a,30
ROM0:04E9 E0 00            ld   (ff00+00),a
ROM0:04EB FA A7 C5         ld   a,(C5A7)
ROM0:04EE BA               cp   d
ROM0:04EF 20 19            jr   nz,050A
ROM0:04F1 3E 00            ld   a,00
ROM0:04F3 EA A9 C5         ld   (C5A9),a	;(C5A9) = 0
ROM0:04F6 FA AA C5         ld   a,(C5AA)
ROM0:04F9 3D               dec  a
ROM0:04FA EA AA C5         ld   (C5AA),a	;(C5AA) --
ROM0:04FD 20 09            jr   nz,0508		;If(a == 0), jump to 0:0508
ROM0:04FF 3E 03            ld   a,03
ROM0:0501 EA AA C5         ld   (C5AA),a	;Else (C5AA) = 3
ROM0:0504 7A               ld   a,d
ROM0:0505 EA A9 C5         ld   (C5A9),a
ROM0:0508 18 08            jr   0512
ROM0:050A EA A9 C5         ld   (C5A9),a
ROM0:050D 3E 14            ld   a,14
ROM0:050F EA AA C5         ld   (C5AA),a	;(C5AA) = 14
ROM0:0512 D1               pop  de
ROM0:0513 C1               pop  bc
ROM0:0514 F1               pop  af
ROM0:0515 C9               ret

Object Attribute Memory

rst 40 - Load pointer to OAM subroutine

ROM0:0524 F5               push af
ROM0:0525 E5               push hl
ROM0:0526 C5               push bc
ROM0:0527 D5               push de
ROM0:0528 06 00            ld   b,00
ROM0:052A FA AF C5         ld   a,(C5AF)
ROM0:052D 4F               ld   c,a
ROM0:052E 21 36 05         ld   hl,0536
ROM0:0531 09               add  hl,bc
ROM0:0532 2A               ldi  a,(hl)
ROM0:0533 66               ld   h,(hl)
ROM0:0534 6F               ld   l,a
ROM0:0535 E9               jp   hl
Pointer array
ROM0:0536
56 05 
60 05 
72 05 
87 05 
E6 05 
F5 05 
6B 08 
31 09 
81 0A 
C5 0B 
52 0C

0:0556

ROM0:0556 3E 01            ld   a,01
ROM0:0558 EA AC C5         ld   (C5AC),a
ROM0:055B D1               pop  de
ROM0:055C C1               pop  bc
ROM0:055D E1               pop  hl
ROM0:055E F1               pop  af
ROM0:055F D9               reti 

0:0560

ROM0:0560 3E 00            ld   a,00
ROM0:0562 EA AF C5         ld   (C5AF),a
ROM0:0565 3E 01            ld   a,01
ROM0:0567 EA AC C5         ld   (C5AC),a
ROM0:056A CD B4 04         call 04B4
ROM0:056D D1               pop  de
ROM0:056E C1               pop  bc
ROM0:056F E1               pop  hl
ROM0:0570 F1               pop  af
ROM0:0571 D9               reti 

0:0572 (OAM)

ROM0:0572 CD F5 FF         call FFF5		;OAM
ROM0:0575 3E 00            ld   a,00
ROM0:0577 EA AF C5         ld   (C5AF),a
ROM0:057A 3E 01            ld   a,01
ROM0:057C EA AC C5         ld   (C5AC),a
ROM0:057F CD B4 04         call 04B4
ROM0:0582 D1               pop  de
ROM0:0583 C1               pop  bc
ROM0:0584 E1               pop  hl
ROM0:0585 F1               pop  af
ROM0:0586 D9               reti 

0:0587 (OAM)

ROM0:0587 CD F5 FF         call FFF5		;OAM
ROM0:058A 01 00 C1         ld   bc,C100
ROM0:058D 1E 04            ld   e,04
ROM0:058F 0A               ld   a,(bc)
ROM0:0590 6F               ld   l,a
ROM0:0591 0C               inc  c
ROM0:0592 0A               ld   a,(bc)
ROM0:0593 67               ld   h,a
ROM0:0594 0C               inc  c
ROM0:0595 0A               ld   a,(bc)
ROM0:0596 22               ldi  (hl),a
ROM0:0597 0C               inc  c
ROM0:0598 0A               ld   a,(bc)
ROM0:0599 22               ldi  (hl),a
ROM0:059A 0C               inc  c
ROM0:059B 0A               ld   a,(bc)
ROM0:059C 22               ldi  (hl),a
ROM0:059D 0C               inc  c
ROM0:059E 0A               ld   a,(bc)
ROM0:059F 22               ldi  (hl),a
ROM0:05A0 0C               inc  c
ROM0:05A1 0A               ld   a,(bc)
ROM0:05A2 22               ldi  (hl),a
ROM0:05A3 0C               inc  c
ROM0:05A4 0A               ld   a,(bc)
ROM0:05A5 22               ldi  (hl),a
ROM0:05A6 0C               inc  c
ROM0:05A7 0A               ld   a,(bc)
ROM0:05A8 22               ldi  (hl),a
ROM0:05A9 0C               inc  c
ROM0:05AA 0A               ld   a,(bc)
ROM0:05AB 22               ldi  (hl),a
ROM0:05AC 0C               inc  c
ROM0:05AD 0A               ld   a,(bc)
ROM0:05AE 22               ldi  (hl),a
ROM0:05AF 0C               inc  c
ROM0:05B0 0A               ld   a,(bc)
ROM0:05B1 22               ldi  (hl),a
ROM0:05B2 0C               inc  c
ROM0:05B3 0A               ld   a,(bc)
ROM0:05B4 22               ldi  (hl),a
ROM0:05B5 0C               inc  c
ROM0:05B6 0A               ld   a,(bc)
ROM0:05B7 22               ldi  (hl),a
ROM0:05B8 0C               inc  c
ROM0:05B9 0A               ld   a,(bc)
ROM0:05BA 22               ldi  (hl),a
ROM0:05BB 0C               inc  c
ROM0:05BC 0A               ld   a,(bc)
ROM0:05BD 22               ldi  (hl),a
ROM0:05BE 0C               inc  c
ROM0:05BF 0A               ld   a,(bc)
ROM0:05C0 22               ldi  (hl),a
ROM0:05C1 0C               inc  c
ROM0:05C2 0A               ld   a,(bc)
ROM0:05C3 22               ldi  (hl),a
ROM0:05C4 0C               inc  c
ROM0:05C5 0A               ld   a,(bc)
ROM0:05C6 22               ldi  (hl),a
ROM0:05C7 0C               inc  c
ROM0:05C8 0A               ld   a,(bc)
ROM0:05C9 22               ldi  (hl),a
ROM0:05CA 0C               inc  c
ROM0:05CB 0A               ld   a,(bc)
ROM0:05CC 22               ldi  (hl),a
ROM0:05CD 0C               inc  c
ROM0:05CE 0A               ld   a,(bc)
ROM0:05CF 22               ldi  (hl),a
ROM0:05D0 0C               inc  c
ROM0:05D1 1D               dec  e
ROM0:05D2 20 BB            jr   nz,058F
ROM0:05D4 3E 00            ld   a,00
ROM0:05D6 EA AF C5         ld   (C5AF),a
ROM0:05D9 3E 01            ld   a,01
ROM0:05DB EA AC C5         ld   (C5AC),a
ROM0:05DE CD B4 04         call 04B4
ROM0:05E1 D1               pop  de
ROM0:05E2 C1               pop  bc
ROM0:05E3 E1               pop  hl
ROM0:05E4 F1               pop  af
ROM0:05E5 D9               reti 

0:05E6

ROM0:05E6 3E 00            ld   a,00
ROM0:05E8 EA AF C5         ld   (C5AF),a
ROM0:05EB 3E 01            ld   a,01
ROM0:05ED EA AC C5         ld   (C5AC),a
ROM0:05F0 D1               pop  de
ROM0:05F1 C1               pop  bc
ROM0:05F2 E1               pop  hl
ROM0:05F3 F1               pop  af
ROM0:05F4 D9               reti 

0:05F5 (OAM)

ROM0:05F5 CD F5 FF         call FFF5		;OAM
ROM0:05F8 01 00 C1         ld   bc,C100
ROM0:05FB 0A               ld   a,(bc)
ROM0:05FC 6F               ld   l,a
ROM0:05FD 0C               inc  c
ROM0:05FE 0A               ld   a,(bc)
ROM0:05FF 67               ld   h,a
ROM0:0600 0C               inc  c
ROM0:0601 0A               ld   a,(bc)
ROM0:0602 22               ldi  (hl),a
ROM0:0603 0C               inc  c
ROM0:0604 0A               ld   a,(bc)
ROM0:0605 22               ldi  (hl),a
ROM0:0606 0C               inc  c
ROM0:0607 0A               ld   a,(bc)
ROM0:0608 22               ldi  (hl),a
ROM0:0609 0C               inc  c
ROM0:060A 0A               ld   a,(bc)
ROM0:060B 22               ldi  (hl),a
ROM0:060C 0C               inc  c
ROM0:060D 0A               ld   a,(bc)
ROM0:060E 22               ldi  (hl),a
ROM0:060F 0C               inc  c
ROM0:0610 0A               ld   a,(bc)
ROM0:0611 22               ldi  (hl),a
ROM0:0612 0C               inc  c
ROM0:0613 0A               ld   a,(bc)
ROM0:0614 22               ldi  (hl),a
ROM0:0615 0C               inc  c
ROM0:0616 0A               ld   a,(bc)
ROM0:0617 22               ldi  (hl),a
ROM0:0618 0C               inc  c
ROM0:0619 0A               ld   a,(bc)
ROM0:061A 6F               ld   l,a
ROM0:061B 0C               inc  c
ROM0:061C 0A               ld   a,(bc)
ROM0:061D 67               ld   h,a
ROM0:061E 0C               inc  c
ROM0:061F 0A               ld   a,(bc)
ROM0:0620 22               ldi  (hl),a
ROM0:0621 0C               inc  c
ROM0:0622 0A               ld   a,(bc)
ROM0:0623 22               ldi  (hl),a
ROM0:0624 0C               inc  c
ROM0:0625 0A               ld   a,(bc)
ROM0:0626 22               ldi  (hl),a
ROM0:0627 0C               inc  c
ROM0:0628 0A               ld   a,(bc)
ROM0:0629 22               ldi  (hl),a
ROM0:062A 0C               inc  c
ROM0:062B 0A               ld   a,(bc)
ROM0:062C 22               ldi  (hl),a
ROM0:062D 0C               inc  c
ROM0:062E 0A               ld   a,(bc)
ROM0:062F 22               ldi  (hl),a
ROM0:0630 0C               inc  c
ROM0:0631 0A               ld   a,(bc)
ROM0:0632 22               ldi  (hl),a
ROM0:0633 0C               inc  c
ROM0:0634 0A               ld   a,(bc)
ROM0:0635 22               ldi  (hl),a
ROM0:0636 0C               inc  c
ROM0:0637 0A               ld   a,(bc)
ROM0:0638 6F               ld   l,a
ROM0:0639 0C               inc  c
ROM0:063A 0A               ld   a,(bc)
ROM0:063B 67               ld   h,a
ROM0:063C 0C               inc  c
ROM0:063D 0A               ld   a,(bc)
ROM0:063E 22               ldi  (hl),a
ROM0:063F 0C               inc  c
ROM0:0640 0A               ld   a,(bc)
ROM0:0641 22               ldi  (hl),a
ROM0:0642 0C               inc  c
ROM0:0643 0A               ld   a,(bc)
ROM0:0644 22               ldi  (hl),a
ROM0:0645 0C               inc  c
ROM0:0646 0A               ld   a,(bc)
ROM0:0647 22               ldi  (hl),a
ROM0:0648 0C               inc  c
ROM0:0649 0A               ld   a,(bc)
ROM0:064A 22               ldi  (hl),a
ROM0:064B 0C               inc  c
ROM0:064C 0A               ld   a,(bc)
ROM0:064D 22               ldi  (hl),a
ROM0:064E 0C               inc  c
ROM0:064F 0A               ld   a,(bc)
ROM0:0650 22               ldi  (hl),a
ROM0:0651 0C               inc  c
ROM0:0652 0A               ld   a,(bc)
ROM0:0653 22               ldi  (hl),a
ROM0:0654 0C               inc  c
ROM0:0655 0A               ld   a,(bc)
ROM0:0656 6F               ld   l,a
ROM0:0657 0C               inc  c
ROM0:0658 0A               ld   a,(bc)
ROM0:0659 67               ld   h,a
ROM0:065A 0C               inc  c
ROM0:065B 0A               ld   a,(bc)
ROM0:065C 22               ldi  (hl),a
ROM0:065D 0C               inc  c
ROM0:065E 0A               ld   a,(bc)
ROM0:065F 22               ldi  (hl),a
ROM0:0660 0C               inc  c
ROM0:0661 0A               ld   a,(bc)
ROM0:0662 22               ldi  (hl),a
ROM0:0663 0C               inc  c
ROM0:0664 0A               ld   a,(bc)
ROM0:0665 22               ldi  (hl),a
ROM0:0666 0C               inc  c
ROM0:0667 0A               ld   a,(bc)
ROM0:0668 22               ldi  (hl),a
ROM0:0669 0C               inc  c
ROM0:066A 0A               ld   a,(bc)
ROM0:066B 22               ldi  (hl),a
ROM0:066C 0C               inc  c
ROM0:066D 0A               ld   a,(bc)
ROM0:066E 22               ldi  (hl),a
ROM0:066F 0C               inc  c
ROM0:0670 0A               ld   a,(bc)
ROM0:0671 22               ldi  (hl),a
ROM0:0672 0C               inc  c
ROM0:0673 0A               ld   a,(bc)
ROM0:0674 6F               ld   l,a
ROM0:0675 0C               inc  c
ROM0:0676 0A               ld   a,(bc)
ROM0:0677 67               ld   h,a
ROM0:0678 0C               inc  c
ROM0:0679 0A               ld   a,(bc)
ROM0:067A 22               ldi  (hl),a
ROM0:067B 0C               inc  c
ROM0:067C 0A               ld   a,(bc)
ROM0:067D 22               ldi  (hl),a
ROM0:067E 0C               inc  c
ROM0:067F 0A               ld   a,(bc)
ROM0:0680 22               ldi  (hl),a
ROM0:0681 0C               inc  c
ROM0:0682 0A               ld   a,(bc)
ROM0:0683 22               ldi  (hl),a
ROM0:0684 0C               inc  c
ROM0:0685 0A               ld   a,(bc)
ROM0:0686 22               ldi  (hl),a
ROM0:0687 0C               inc  c
ROM0:0688 0A               ld   a,(bc)
ROM0:0689 22               ldi  (hl),a
ROM0:068A 0C               inc  c
ROM0:068B 0A               ld   a,(bc)
ROM0:068C 22               ldi  (hl),a
ROM0:068D 0C               inc  c
ROM0:068E 0A               ld   a,(bc)
ROM0:068F 22               ldi  (hl),a
ROM0:0690 0C               inc  c
ROM0:0691 0A               ld   a,(bc)
ROM0:0692 6F               ld   l,a
ROM0:0693 0C               inc  c
ROM0:0694 0A               ld   a,(bc)
ROM0:0695 67               ld   h,a
ROM0:0696 0C               inc  c
ROM0:0697 0A               ld   a,(bc)
ROM0:0698 22               ldi  (hl),a
ROM0:0699 0C               inc  c
ROM0:069A 0A               ld   a,(bc)
ROM0:069B 22               ldi  (hl),a
ROM0:069C 0C               inc  c
ROM0:069D 0A               ld   a,(bc)
ROM0:069E 22               ldi  (hl),a
ROM0:069F 0C               inc  c
ROM0:06A0 0A               ld   a,(bc)
ROM0:06A1 22               ldi  (hl),a
ROM0:06A2 0C               inc  c
ROM0:06A3 0A               ld   a,(bc)
ROM0:06A4 22               ldi  (hl),a
ROM0:06A5 0C               inc  c
ROM0:06A6 0A               ld   a,(bc)
ROM0:06A7 22               ldi  (hl),a
ROM0:06A8 0C               inc  c
ROM0:06A9 0A               ld   a,(bc)
ROM0:06AA 22               ldi  (hl),a
ROM0:06AB 0C               inc  c
ROM0:06AC 0A               ld   a,(bc)
ROM0:06AD 22               ldi  (hl),a
ROM0:06AE 0C               inc  c
ROM0:06AF 0A               ld   a,(bc)
ROM0:06B0 6F               ld   l,a
ROM0:06B1 0C               inc  c
ROM0:06B2 0A               ld   a,(bc)
ROM0:06B3 67               ld   h,a
ROM0:06B4 0C               inc  c
ROM0:06B5 0A               ld   a,(bc)
ROM0:06B6 22               ldi  (hl),a
ROM0:06B7 0C               inc  c
ROM0:06B8 0A               ld   a,(bc)
ROM0:06B9 22               ldi  (hl),a
ROM0:06BA 0C               inc  c
ROM0:06BB 0A               ld   a,(bc)
ROM0:06BC 22               ldi  (hl),a
ROM0:06BD 0C               inc  c
ROM0:06BE 0A               ld   a,(bc)
ROM0:06BF 22               ldi  (hl),a
ROM0:06C0 0C               inc  c
ROM0:06C1 0A               ld   a,(bc)
ROM0:06C2 22               ldi  (hl),a
ROM0:06C3 0C               inc  c
ROM0:06C4 0A               ld   a,(bc)
ROM0:06C5 22               ldi  (hl),a
ROM0:06C6 0C               inc  c
ROM0:06C7 0A               ld   a,(bc)
ROM0:06C8 22               ldi  (hl),a
ROM0:06C9 0C               inc  c
ROM0:06CA 0A               ld   a,(bc)
ROM0:06CB 22               ldi  (hl),a
ROM0:06CC 0C               inc  c
ROM0:06CD 0A               ld   a,(bc)
ROM0:06CE 6F               ld   l,a
ROM0:06CF 0C               inc  c
ROM0:06D0 0A               ld   a,(bc)
ROM0:06D1 67               ld   h,a
ROM0:06D2 0C               inc  c
ROM0:06D3 0A               ld   a,(bc)
ROM0:06D4 22               ldi  (hl),a
ROM0:06D5 0C               inc  c
ROM0:06D6 0A               ld   a,(bc)
ROM0:06D7 22               ldi  (hl),a
ROM0:06D8 0C               inc  c
ROM0:06D9 0A               ld   a,(bc)
ROM0:06DA 22               ldi  (hl),a
ROM0:06DB 0C               inc  c
ROM0:06DC 0A               ld   a,(bc)
ROM0:06DD 22               ldi  (hl),a
ROM0:06DE 0C               inc  c
ROM0:06DF 0A               ld   a,(bc)
ROM0:06E0 22               ldi  (hl),a
ROM0:06E1 0C               inc  c
ROM0:06E2 0A               ld   a,(bc)
ROM0:06E3 22               ldi  (hl),a
ROM0:06E4 0C               inc  c
ROM0:06E5 0A               ld   a,(bc)
ROM0:06E6 22               ldi  (hl),a
ROM0:06E7 0C               inc  c
ROM0:06E8 0A               ld   a,(bc)
ROM0:06E9 22               ldi  (hl),a
ROM0:06EA 0C               inc  c
ROM0:06EB 0A               ld   a,(bc)
ROM0:06EC 6F               ld   l,a
ROM0:06ED 0C               inc  c
ROM0:06EE 0A               ld   a,(bc)
ROM0:06EF 67               ld   h,a
ROM0:06F0 0C               inc  c
ROM0:06F1 0A               ld   a,(bc)
ROM0:06F2 22               ldi  (hl),a
ROM0:06F3 0C               inc  c
ROM0:06F4 0A               ld   a,(bc)
ROM0:06F5 22               ldi  (hl),a
ROM0:06F6 0C               inc  c
ROM0:06F7 0A               ld   a,(bc)
ROM0:06F8 22               ldi  (hl),a
ROM0:06F9 0C               inc  c
ROM0:06FA 0A               ld   a,(bc)
ROM0:06FB 22               ldi  (hl),a
ROM0:06FC 0C               inc  c
ROM0:06FD 0A               ld   a,(bc)
ROM0:06FE 22               ldi  (hl),a
ROM0:06FF 0C               inc  c
ROM0:0700 0A               ld   a,(bc)
ROM0:0701 22               ldi  (hl),a
ROM0:0702 0C               inc  c
ROM0:0703 0A               ld   a,(bc)
ROM0:0704 22               ldi  (hl),a
ROM0:0705 0C               inc  c
ROM0:0706 0A               ld   a,(bc)
ROM0:0707 22               ldi  (hl),a
ROM0:0708 0C               inc  c
ROM0:0709 0A               ld   a,(bc)
ROM0:070A 6F               ld   l,a
ROM0:070B 0C               inc  c
ROM0:070C 0A               ld   a,(bc)
ROM0:070D 67               ld   h,a
ROM0:070E 0C               inc  c
ROM0:070F 0A               ld   a,(bc)
ROM0:0710 22               ldi  (hl),a
ROM0:0711 0C               inc  c
ROM0:0712 0A               ld   a,(bc)
ROM0:0713 22               ldi  (hl),a
ROM0:0714 0C               inc  c
ROM0:0715 0A               ld   a,(bc)
ROM0:0716 22               ldi  (hl),a
ROM0:0717 0C               inc  c
ROM0:0718 0A               ld   a,(bc)
ROM0:0719 22               ldi  (hl),a
ROM0:071A 0C               inc  c
ROM0:071B 0A               ld   a,(bc)
ROM0:071C 22               ldi  (hl),a
ROM0:071D 0C               inc  c
ROM0:071E 0A               ld   a,(bc)
ROM0:071F 22               ldi  (hl),a
ROM0:0720 0C               inc  c
ROM0:0721 0A               ld   a,(bc)
ROM0:0722 22               ldi  (hl),a
ROM0:0723 0C               inc  c
ROM0:0724 0A               ld   a,(bc)
ROM0:0725 22               ldi  (hl),a
ROM0:0726 0C               inc  c
ROM0:0727 CD 17 12         call 1217
ROM0:072A 0A               ld   a,(bc)
ROM0:072B 6F               ld   l,a
ROM0:072C 0C               inc  c
ROM0:072D 0A               ld   a,(bc)
ROM0:072E 67               ld   h,a
ROM0:072F 0C               inc  c
ROM0:0730 0A               ld   a,(bc)
ROM0:0731 22               ldi  (hl),a
ROM0:0732 0C               inc  c
ROM0:0733 0A               ld   a,(bc)
ROM0:0734 22               ldi  (hl),a
ROM0:0735 0C               inc  c
ROM0:0736 0A               ld   a,(bc)
ROM0:0737 22               ldi  (hl),a
ROM0:0738 0C               inc  c
ROM0:0739 0A               ld   a,(bc)
ROM0:073A 22               ldi  (hl),a
ROM0:073B 0C               inc  c
ROM0:073C 0A               ld   a,(bc)
ROM0:073D 22               ldi  (hl),a
ROM0:073E 0C               inc  c
ROM0:073F 0A               ld   a,(bc)
ROM0:0740 22               ldi  (hl),a
ROM0:0741 0C               inc  c
ROM0:0742 0A               ld   a,(bc)
ROM0:0743 22               ldi  (hl),a
ROM0:0744 0C               inc  c
ROM0:0745 0A               ld   a,(bc)
ROM0:0746 22               ldi  (hl),a
ROM0:0747 0C               inc  c
ROM0:0748 0A               ld   a,(bc)
ROM0:0749 6F               ld   l,a
ROM0:074A 0C               inc  c
ROM0:074B 0A               ld   a,(bc)
ROM0:074C 67               ld   h,a
ROM0:074D 0C               inc  c
ROM0:074E 0A               ld   a,(bc)
ROM0:074F 22               ldi  (hl),a
ROM0:0750 0C               inc  c
ROM0:0751 0A               ld   a,(bc)
ROM0:0752 22               ldi  (hl),a
ROM0:0753 0C               inc  c
ROM0:0754 0A               ld   a,(bc)
ROM0:0755 22               ldi  (hl),a
ROM0:0756 0C               inc  c
ROM0:0757 0A               ld   a,(bc)
ROM0:0758 22               ldi  (hl),a
ROM0:0759 0C               inc  c
ROM0:075A 0A               ld   a,(bc)
ROM0:075B 22               ldi  (hl),a
ROM0:075C 0C               inc  c
ROM0:075D 0A               ld   a,(bc)
ROM0:075E 22               ldi  (hl),a
ROM0:075F 0C               inc  c
ROM0:0760 0A               ld   a,(bc)
ROM0:0761 22               ldi  (hl),a
ROM0:0762 0C               inc  c
ROM0:0763 0A               ld   a,(bc)
ROM0:0764 22               ldi  (hl),a
ROM0:0765 0C               inc  c
ROM0:0766 0A               ld   a,(bc)
ROM0:0767 6F               ld   l,a
ROM0:0768 0C               inc  c
ROM0:0769 0A               ld   a,(bc)
ROM0:076A 67               ld   h,a
ROM0:076B 0C               inc  c
ROM0:076C 0A               ld   a,(bc)
ROM0:076D 22               ldi  (hl),a
ROM0:076E 0C               inc  c
ROM0:076F 0A               ld   a,(bc)
ROM0:0770 22               ldi  (hl),a
ROM0:0771 0C               inc  c
ROM0:0772 0A               ld   a,(bc)
ROM0:0773 22               ldi  (hl),a
ROM0:0774 0C               inc  c
ROM0:0775 0A               ld   a,(bc)
ROM0:0776 22               ldi  (hl),a
ROM0:0777 0C               inc  c
ROM0:0778 0A               ld   a,(bc)
ROM0:0779 22               ldi  (hl),a
ROM0:077A 0C               inc  c
ROM0:077B 0A               ld   a,(bc)
ROM0:077C 22               ldi  (hl),a
ROM0:077D 0C               inc  c
ROM0:077E 0A               ld   a,(bc)
ROM0:077F 22               ldi  (hl),a
ROM0:0780 0C               inc  c
ROM0:0781 0A               ld   a,(bc)
ROM0:0782 22               ldi  (hl),a
ROM0:0783 0C               inc  c
ROM0:0784 0A               ld   a,(bc)
ROM0:0785 6F               ld   l,a
ROM0:0786 0C               inc  c
ROM0:0787 0A               ld   a,(bc)
ROM0:0788 67               ld   h,a
ROM0:0789 0C               inc  c
ROM0:078A 0A               ld   a,(bc)
ROM0:078B 22               ldi  (hl),a
ROM0:078C 0C               inc  c
ROM0:078D 0A               ld   a,(bc)
ROM0:078E 22               ldi  (hl),a
ROM0:078F 0C               inc  c
ROM0:0790 0A               ld   a,(bc)
ROM0:0791 22               ldi  (hl),a
ROM0:0792 0C               inc  c
ROM0:0793 0A               ld   a,(bc)
ROM0:0794 22               ldi  (hl),a
ROM0:0795 0C               inc  c
ROM0:0796 0A               ld   a,(bc)
ROM0:0797 22               ldi  (hl),a
ROM0:0798 0C               inc  c
ROM0:0799 0A               ld   a,(bc)
ROM0:079A 22               ldi  (hl),a
ROM0:079B 0C               inc  c
ROM0:079C 0A               ld   a,(bc)
ROM0:079D 22               ldi  (hl),a
ROM0:079E 0C               inc  c
ROM0:079F 0A               ld   a,(bc)
ROM0:07A0 22               ldi  (hl),a
ROM0:07A1 0C               inc  c
ROM0:07A2 0A               ld   a,(bc)
ROM0:07A3 6F               ld   l,a
ROM0:07A4 0C               inc  c
ROM0:07A5 0A               ld   a,(bc)
ROM0:07A6 67               ld   h,a
ROM0:07A7 0C               inc  c
ROM0:07A8 0A               ld   a,(bc)
ROM0:07A9 22               ldi  (hl),a
ROM0:07AA 0C               inc  c
ROM0:07AB 0A               ld   a,(bc)
ROM0:07AC 22               ldi  (hl),a
ROM0:07AD 0C               inc  c
ROM0:07AE 0A               ld   a,(bc)
ROM0:07AF 22               ldi  (hl),a
ROM0:07B0 0C               inc  c
ROM0:07B1 0A               ld   a,(bc)
ROM0:07B2 22               ldi  (hl),a
ROM0:07B3 0C               inc  c
ROM0:07B4 0A               ld   a,(bc)
ROM0:07B5 22               ldi  (hl),a
ROM0:07B6 0C               inc  c
ROM0:07B7 0A               ld   a,(bc)
ROM0:07B8 22               ldi  (hl),a
ROM0:07B9 0C               inc  c
ROM0:07BA 0A               ld   a,(bc)
ROM0:07BB 22               ldi  (hl),a
ROM0:07BC 0C               inc  c
ROM0:07BD 0A               ld   a,(bc)
ROM0:07BE 22               ldi  (hl),a
ROM0:07BF 0C               inc  c
ROM0:07C0 0A               ld   a,(bc)
ROM0:07C1 6F               ld   l,a
ROM0:07C2 0C               inc  c
ROM0:07C3 0A               ld   a,(bc)
ROM0:07C4 67               ld   h,a
ROM0:07C5 0C               inc  c
ROM0:07C6 0A               ld   a,(bc)
ROM0:07C7 22               ldi  (hl),a
ROM0:07C8 0C               inc  c
ROM0:07C9 0A               ld   a,(bc)
ROM0:07CA 22               ldi  (hl),a
ROM0:07CB 0C               inc  c
ROM0:07CC 0A               ld   a,(bc)
ROM0:07CD 22               ldi  (hl),a
ROM0:07CE 0C               inc  c
ROM0:07CF 0A               ld   a,(bc)
ROM0:07D0 22               ldi  (hl),a
ROM0:07D1 0C               inc  c
ROM0:07D2 0A               ld   a,(bc)
ROM0:07D3 22               ldi  (hl),a
ROM0:07D4 0C               inc  c
ROM0:07D5 0A               ld   a,(bc)
ROM0:07D6 22               ldi  (hl),a
ROM0:07D7 0C               inc  c
ROM0:07D8 0A               ld   a,(bc)
ROM0:07D9 22               ldi  (hl),a
ROM0:07DA 0C               inc  c
ROM0:07DB 0A               ld   a,(bc)
ROM0:07DC 22               ldi  (hl),a
ROM0:07DD 0C               inc  c
ROM0:07DE 0A               ld   a,(bc)
ROM0:07DF 6F               ld   l,a
ROM0:07E0 0C               inc  c
ROM0:07E1 0A               ld   a,(bc)
ROM0:07E2 67               ld   h,a
ROM0:07E3 0C               inc  c
ROM0:07E4 0A               ld   a,(bc)
ROM0:07E5 22               ldi  (hl),a
ROM0:07E6 0C               inc  c
ROM0:07E7 0A               ld   a,(bc)
ROM0:07E8 22               ldi  (hl),a
ROM0:07E9 0C               inc  c
ROM0:07EA 0A               ld   a,(bc)
ROM0:07EB 22               ldi  (hl),a
ROM0:07EC 0C               inc  c
ROM0:07ED 0A               ld   a,(bc)
ROM0:07EE 22               ldi  (hl),a
ROM0:07EF 0C               inc  c
ROM0:07F0 0A               ld   a,(bc)
ROM0:07F1 22               ldi  (hl),a
ROM0:07F2 0C               inc  c
ROM0:07F3 0A               ld   a,(bc)
ROM0:07F4 22               ldi  (hl),a
ROM0:07F5 0C               inc  c
ROM0:07F6 0A               ld   a,(bc)
ROM0:07F7 22               ldi  (hl),a
ROM0:07F8 0C               inc  c
ROM0:07F9 0A               ld   a,(bc)
ROM0:07FA 22               ldi  (hl),a
ROM0:07FB 0C               inc  c
ROM0:07FC 0A               ld   a,(bc)
ROM0:07FD 6F               ld   l,a
ROM0:07FE 0C               inc  c
ROM0:07FF 0A               ld   a,(bc)
ROM0:0800 67               ld   h,a
ROM0:0801 0C               inc  c
ROM0:0802 0A               ld   a,(bc)
ROM0:0803 22               ldi  (hl),a
ROM0:0804 0C               inc  c
ROM0:0805 0A               ld   a,(bc)
ROM0:0806 22               ldi  (hl),a
ROM0:0807 0C               inc  c
ROM0:0808 0A               ld   a,(bc)
ROM0:0809 22               ldi  (hl),a
ROM0:080A 0C               inc  c
ROM0:080B 0A               ld   a,(bc)
ROM0:080C 22               ldi  (hl),a
ROM0:080D 0C               inc  c
ROM0:080E 0A               ld   a,(bc)
ROM0:080F 22               ldi  (hl),a
ROM0:0810 0C               inc  c
ROM0:0811 0A               ld   a,(bc)
ROM0:0812 22               ldi  (hl),a
ROM0:0813 0C               inc  c
ROM0:0814 0A               ld   a,(bc)
ROM0:0815 22               ldi  (hl),a
ROM0:0816 0C               inc  c
ROM0:0817 0A               ld   a,(bc)
ROM0:0818 22               ldi  (hl),a
ROM0:0819 0C               inc  c
ROM0:081A 0A               ld   a,(bc)
ROM0:081B 6F               ld   l,a
ROM0:081C 0C               inc  c
ROM0:081D 0A               ld   a,(bc)
ROM0:081E 67               ld   h,a
ROM0:081F 0C               inc  c
ROM0:0820 0A               ld   a,(bc)
ROM0:0821 22               ldi  (hl),a
ROM0:0822 0C               inc  c
ROM0:0823 0A               ld   a,(bc)
ROM0:0824 22               ldi  (hl),a
ROM0:0825 0C               inc  c
ROM0:0826 0A               ld   a,(bc)
ROM0:0827 22               ldi  (hl),a
ROM0:0828 0C               inc  c
ROM0:0829 0A               ld   a,(bc)
ROM0:082A 22               ldi  (hl),a
ROM0:082B 0C               inc  c
ROM0:082C 0A               ld   a,(bc)
ROM0:082D 22               ldi  (hl),a
ROM0:082E 0C               inc  c
ROM0:082F 0A               ld   a,(bc)
ROM0:0830 22               ldi  (hl),a
ROM0:0831 0C               inc  c
ROM0:0832 0A               ld   a,(bc)
ROM0:0833 22               ldi  (hl),a
ROM0:0834 0C               inc  c
ROM0:0835 0A               ld   a,(bc)
ROM0:0836 22               ldi  (hl),a
ROM0:0837 0C               inc  c
ROM0:0838 0A               ld   a,(bc)
ROM0:0839 6F               ld   l,a
ROM0:083A 0C               inc  c
ROM0:083B 0A               ld   a,(bc)
ROM0:083C 67               ld   h,a
ROM0:083D 0C               inc  c
ROM0:083E 0A               ld   a,(bc)
ROM0:083F 22               ldi  (hl),a
ROM0:0840 0C               inc  c
ROM0:0841 0A               ld   a,(bc)
ROM0:0842 22               ldi  (hl),a
ROM0:0843 0C               inc  c
ROM0:0844 0A               ld   a,(bc)
ROM0:0845 22               ldi  (hl),a
ROM0:0846 0C               inc  c
ROM0:0847 0A               ld   a,(bc)
ROM0:0848 22               ldi  (hl),a
ROM0:0849 0C               inc  c
ROM0:084A 0A               ld   a,(bc)
ROM0:084B 22               ldi  (hl),a
ROM0:084C 0C               inc  c
ROM0:084D 0A               ld   a,(bc)
ROM0:084E 22               ldi  (hl),a
ROM0:084F 0C               inc  c
ROM0:0850 0A               ld   a,(bc)
ROM0:0851 22               ldi  (hl),a
ROM0:0852 0C               inc  c
ROM0:0853 0A               ld   a,(bc)
ROM0:0854 22               ldi  (hl),a
ROM0:0855 0C               inc  c
ROM0:0856 CD 1E 12         call 121E
ROM0:0859 3E 00            ld   a,00
ROM0:085B EA AF C5         ld   (C5AF),a
ROM0:085E 3E 01            ld   a,01
ROM0:0860 EA AC C5         ld   (C5AC),a
ROM0:0863 CD B4 04         call 04B4
ROM0:0866 D1               pop  de
ROM0:0867 C1               pop  bc
ROM0:0868 E1               pop  hl
ROM0:0869 F1               pop  af
ROM0:086A D9               reti

0:086B (OAM)

ROM0:086B CD F5 FF         call FFF5		;OAM
ROM0:086E 01 00 C1         ld   bc,C100
ROM0:0871 0A               ld   a,(bc)
ROM0:0872 6F               ld   l,a
ROM0:0873 0C               inc  c
ROM0:0874 0A               ld   a,(bc)
ROM0:0875 67               ld   h,a
ROM0:0876 0C               inc  c
ROM0:0877 0A               ld   a,(bc)
ROM0:0878 22               ldi  (hl),a
ROM0:0879 0C               inc  c
ROM0:087A 0A               ld   a,(bc)
ROM0:087B 22               ldi  (hl),a
ROM0:087C 0C               inc  c
ROM0:087D 0A               ld   a,(bc)
ROM0:087E 22               ldi  (hl),a
ROM0:087F 0C               inc  c
ROM0:0880 0A               ld   a,(bc)
ROM0:0881 22               ldi  (hl),a
ROM0:0882 0C               inc  c
ROM0:0883 0A               ld   a,(bc)
ROM0:0884 22               ldi  (hl),a
ROM0:0885 0C               inc  c
ROM0:0886 0A               ld   a,(bc)
ROM0:0887 22               ldi  (hl),a
ROM0:0888 0C               inc  c
ROM0:0889 0A               ld   a,(bc)
ROM0:088A 22               ldi  (hl),a
ROM0:088B 0C               inc  c
ROM0:088C 0A               ld   a,(bc)
ROM0:088D 22               ldi  (hl),a
ROM0:088E 0C               inc  c
ROM0:088F 0A               ld   a,(bc)
ROM0:0890 22               ldi  (hl),a
ROM0:0891 0C               inc  c
ROM0:0892 0A               ld   a,(bc)
ROM0:0893 22               ldi  (hl),a
ROM0:0894 0C               inc  c
ROM0:0895 0A               ld   a,(bc)
ROM0:0896 22               ldi  (hl),a
ROM0:0897 0C               inc  c
ROM0:0898 0A               ld   a,(bc)
ROM0:0899 22               ldi  (hl),a
ROM0:089A 0C               inc  c
ROM0:089B 0A               ld   a,(bc)
ROM0:089C 22               ldi  (hl),a
ROM0:089D 0C               inc  c
ROM0:089E 0A               ld   a,(bc)
ROM0:089F 22               ldi  (hl),a
ROM0:08A0 0C               inc  c
ROM0:08A1 0A               ld   a,(bc)
ROM0:08A2 22               ldi  (hl),a
ROM0:08A3 0C               inc  c
ROM0:08A4 0A               ld   a,(bc)
ROM0:08A5 22               ldi  (hl),a
ROM0:08A6 0C               inc  c
ROM0:08A7 0A               ld   a,(bc)
ROM0:08A8 22               ldi  (hl),a
ROM0:08A9 0C               inc  c
ROM0:08AA 0A               ld   a,(bc)
ROM0:08AB 22               ldi  (hl),a
ROM0:08AC 0C               inc  c
ROM0:08AD 0A               ld   a,(bc)
ROM0:08AE 6F               ld   l,a
ROM0:08AF 0C               inc  c
ROM0:08B0 0A               ld   a,(bc)
ROM0:08B1 67               ld   h,a
ROM0:08B2 0C               inc  c
ROM0:08B3 0A               ld   a,(bc)
ROM0:08B4 22               ldi  (hl),a
ROM0:08B5 0C               inc  c
ROM0:08B6 0A               ld   a,(bc)
ROM0:08B7 22               ldi  (hl),a
ROM0:08B8 0C               inc  c
ROM0:08B9 0A               ld   a,(bc)
ROM0:08BA 22               ldi  (hl),a
ROM0:08BB 0C               inc  c
ROM0:08BC 0A               ld   a,(bc)
ROM0:08BD 22               ldi  (hl),a
ROM0:08BE 0C               inc  c
ROM0:08BF 0A               ld   a,(bc)
ROM0:08C0 22               ldi  (hl),a
ROM0:08C1 0C               inc  c
ROM0:08C2 0A               ld   a,(bc)
ROM0:08C3 22               ldi  (hl),a
ROM0:08C4 0C               inc  c
ROM0:08C5 0A               ld   a,(bc)
ROM0:08C6 22               ldi  (hl),a
ROM0:08C7 0C               inc  c
ROM0:08C8 0A               ld   a,(bc)
ROM0:08C9 22               ldi  (hl),a
ROM0:08CA 0C               inc  c
ROM0:08CB 0A               ld   a,(bc)
ROM0:08CC 22               ldi  (hl),a
ROM0:08CD 0C               inc  c
ROM0:08CE 0A               ld   a,(bc)
ROM0:08CF 22               ldi  (hl),a
ROM0:08D0 0C               inc  c
ROM0:08D1 0A               ld   a,(bc)
ROM0:08D2 22               ldi  (hl),a
ROM0:08D3 0C               inc  c
ROM0:08D4 0A               ld   a,(bc)
ROM0:08D5 22               ldi  (hl),a
ROM0:08D6 0C               inc  c
ROM0:08D7 0A               ld   a,(bc)
ROM0:08D8 22               ldi  (hl),a
ROM0:08D9 0C               inc  c
ROM0:08DA 0A               ld   a,(bc)
ROM0:08DB 22               ldi  (hl),a
ROM0:08DC 0C               inc  c
ROM0:08DD 0A               ld   a,(bc)
ROM0:08DE 22               ldi  (hl),a
ROM0:08DF 0C               inc  c
ROM0:08E0 0A               ld   a,(bc)
ROM0:08E1 22               ldi  (hl),a
ROM0:08E2 0C               inc  c
ROM0:08E3 0A               ld   a,(bc)
ROM0:08E4 22               ldi  (hl),a
ROM0:08E5 0C               inc  c
ROM0:08E6 0A               ld   a,(bc)
ROM0:08E7 22               ldi  (hl),a
ROM0:08E8 0C               inc  c
ROM0:08E9 0A               ld   a,(bc)
ROM0:08EA 6F               ld   l,a
ROM0:08EB 0C               inc  c
ROM0:08EC 0A               ld   a,(bc)
ROM0:08ED 67               ld   h,a
ROM0:08EE 0C               inc  c
ROM0:08EF 0A               ld   a,(bc)
ROM0:08F0 22               ldi  (hl),a
ROM0:08F1 0C               inc  c
ROM0:08F2 0A               ld   a,(bc)
ROM0:08F3 22               ldi  (hl),a
ROM0:08F4 0C               inc  c
ROM0:08F5 0A               ld   a,(bc)
ROM0:08F6 22               ldi  (hl),a
ROM0:08F7 0C               inc  c
ROM0:08F8 0A               ld   a,(bc)
ROM0:08F9 22               ldi  (hl),a
ROM0:08FA 0C               inc  c
ROM0:08FB 0A               ld   a,(bc)
ROM0:08FC 22               ldi  (hl),a
ROM0:08FD 0C               inc  c
ROM0:08FE 0A               ld   a,(bc)
ROM0:08FF 22               ldi  (hl),a
ROM0:0900 0C               inc  c
ROM0:0901 0A               ld   a,(bc)
ROM0:0902 22               ldi  (hl),a
ROM0:0903 0C               inc  c
ROM0:0904 0A               ld   a,(bc)
ROM0:0905 22               ldi  (hl),a
ROM0:0906 0C               inc  c
ROM0:0907 0A               ld   a,(bc)
ROM0:0908 22               ldi  (hl),a
ROM0:0909 0C               inc  c
ROM0:090A 0A               ld   a,(bc)
ROM0:090B 22               ldi  (hl),a
ROM0:090C 0C               inc  c
ROM0:090D 0A               ld   a,(bc)
ROM0:090E 22               ldi  (hl),a
ROM0:090F 0C               inc  c
ROM0:0910 0A               ld   a,(bc)
ROM0:0911 22               ldi  (hl),a
ROM0:0912 0C               inc  c
ROM0:0913 0A               ld   a,(bc)
ROM0:0914 22               ldi  (hl),a
ROM0:0915 0C               inc  c
ROM0:0916 0A               ld   a,(bc)
ROM0:0917 22               ldi  (hl),a
ROM0:0918 0C               inc  c
ROM0:0919 0A               ld   a,(bc)
ROM0:091A 22               ldi  (hl),a
ROM0:091B 0C               inc  c
ROM0:091C 0A               ld   a,(bc)
ROM0:091D 22               ldi  (hl),a
ROM0:091E 0C               inc  c
ROM0:091F 3E 00            ld   a,00
ROM0:0921 EA AF C5         ld   (C5AF),a
ROM0:0924 3E 01            ld   a,01
ROM0:0926 EA AC C5         ld   (C5AC),a
ROM0:0929 CD B4 04         call 04B4
ROM0:092C D1               pop  de
ROM0:092D C1               pop  bc
ROM0:092E E1               pop  hl
ROM0:092F F1               pop  af
ROM0:0930 D9               reti 

0:0931 (OAM)

ROM0:0931 CD F5 FF         call FFF5		;OAM
ROM0:0934 01 00 C1         ld   bc,C100
ROM0:0937 0A               ld   a,(bc)
ROM0:0938 6F               ld   l,a
ROM0:0939 0C               inc  c
ROM0:093A 0A               ld   a,(bc)
ROM0:093B 67               ld   h,a
ROM0:093C 0C               inc  c
ROM0:093D 0A               ld   a,(bc)
ROM0:093E 22               ldi  (hl),a
ROM0:093F 0C               inc  c
ROM0:0940 0A               ld   a,(bc)
ROM0:0941 22               ldi  (hl),a
ROM0:0942 0C               inc  c
ROM0:0943 0A               ld   a,(bc)
ROM0:0944 22               ldi  (hl),a
ROM0:0945 0C               inc  c
ROM0:0946 0A               ld   a,(bc)
ROM0:0947 22               ldi  (hl),a
ROM0:0948 0C               inc  c
ROM0:0949 0A               ld   a,(bc)
ROM0:094A 22               ldi  (hl),a
ROM0:094B 0C               inc  c
ROM0:094C 0A               ld   a,(bc)
ROM0:094D 22               ldi  (hl),a
ROM0:094E 0C               inc  c
ROM0:094F 0A               ld   a,(bc)
ROM0:0950 22               ldi  (hl),a
ROM0:0951 0C               inc  c
ROM0:0952 0A               ld   a,(bc)
ROM0:0953 22               ldi  (hl),a
ROM0:0954 0C               inc  c
ROM0:0955 0A               ld   a,(bc)
ROM0:0956 6F               ld   l,a
ROM0:0957 0C               inc  c
ROM0:0958 0A               ld   a,(bc)
ROM0:0959 67               ld   h,a
ROM0:095A 0C               inc  c
ROM0:095B 0A               ld   a,(bc)
ROM0:095C 22               ldi  (hl),a
ROM0:095D 0C               inc  c
ROM0:095E 0A               ld   a,(bc)
ROM0:095F 22               ldi  (hl),a
ROM0:0960 0C               inc  c
ROM0:0961 0A               ld   a,(bc)
ROM0:0962 22               ldi  (hl),a
ROM0:0963 0C               inc  c
ROM0:0964 0A               ld   a,(bc)
ROM0:0965 22               ldi  (hl),a
ROM0:0966 0C               inc  c
ROM0:0967 0A               ld   a,(bc)
ROM0:0968 22               ldi  (hl),a
ROM0:0969 0C               inc  c
ROM0:096A 0A               ld   a,(bc)
ROM0:096B 22               ldi  (hl),a
ROM0:096C 0C               inc  c
ROM0:096D 0A               ld   a,(bc)
ROM0:096E 22               ldi  (hl),a
ROM0:096F 0C               inc  c
ROM0:0970 0A               ld   a,(bc)
ROM0:0971 22               ldi  (hl),a
ROM0:0972 0C               inc  c
ROM0:0973 0A               ld   a,(bc)
ROM0:0974 6F               ld   l,a
ROM0:0975 0C               inc  c
ROM0:0976 0A               ld   a,(bc)
ROM0:0977 67               ld   h,a
ROM0:0978 0C               inc  c
ROM0:0979 0A               ld   a,(bc)
ROM0:097A 22               ldi  (hl),a
ROM0:097B 0C               inc  c
ROM0:097C 0A               ld   a,(bc)
ROM0:097D 22               ldi  (hl),a
ROM0:097E 0C               inc  c
ROM0:097F 0A               ld   a,(bc)
ROM0:0980 22               ldi  (hl),a
ROM0:0981 0C               inc  c
ROM0:0982 0A               ld   a,(bc)
ROM0:0983 22               ldi  (hl),a
ROM0:0984 0C               inc  c
ROM0:0985 0A               ld   a,(bc)
ROM0:0986 6F               ld   l,a
ROM0:0987 0C               inc  c
ROM0:0988 0A               ld   a,(bc)
ROM0:0989 67               ld   h,a
ROM0:098A 0C               inc  c
ROM0:098B 0A               ld   a,(bc)
ROM0:098C 22               ldi  (hl),a
ROM0:098D 0C               inc  c
ROM0:098E 0A               ld   a,(bc)
ROM0:098F 22               ldi  (hl),a
ROM0:0990 0C               inc  c
ROM0:0991 0A               ld   a,(bc)
ROM0:0992 22               ldi  (hl),a
ROM0:0993 0C               inc  c
ROM0:0994 0A               ld   a,(bc)
ROM0:0995 22               ldi  (hl),a
ROM0:0996 0C               inc  c
ROM0:0997 0A               ld   a,(bc)
ROM0:0998 6F               ld   l,a
ROM0:0999 0C               inc  c
ROM0:099A 0A               ld   a,(bc)
ROM0:099B 67               ld   h,a
ROM0:099C 0C               inc  c
ROM0:099D 0A               ld   a,(bc)
ROM0:099E 22               ldi  (hl),a
ROM0:099F 0C               inc  c
ROM0:09A0 0A               ld   a,(bc)
ROM0:09A1 22               ldi  (hl),a
ROM0:09A2 0C               inc  c
ROM0:09A3 0A               ld   a,(bc)
ROM0:09A4 22               ldi  (hl),a
ROM0:09A5 0C               inc  c
ROM0:09A6 0A               ld   a,(bc)
ROM0:09A7 22               ldi  (hl),a
ROM0:09A8 0C               inc  c
ROM0:09A9 0A               ld   a,(bc)
ROM0:09AA 6F               ld   l,a
ROM0:09AB 0C               inc  c
ROM0:09AC 0A               ld   a,(bc)
ROM0:09AD 67               ld   h,a
ROM0:09AE 0C               inc  c
ROM0:09AF 0A               ld   a,(bc)
ROM0:09B0 22               ldi  (hl),a
ROM0:09B1 0C               inc  c
ROM0:09B2 0A               ld   a,(bc)
ROM0:09B3 22               ldi  (hl),a
ROM0:09B4 0C               inc  c
ROM0:09B5 0A               ld   a,(bc)
ROM0:09B6 22               ldi  (hl),a
ROM0:09B7 0C               inc  c
ROM0:09B8 0A               ld   a,(bc)
ROM0:09B9 22               ldi  (hl),a
ROM0:09BA 0C               inc  c
ROM0:09BB 0A               ld   a,(bc)
ROM0:09BC 6F               ld   l,a
ROM0:09BD 0C               inc  c
ROM0:09BE 0A               ld   a,(bc)
ROM0:09BF 67               ld   h,a
ROM0:09C0 0C               inc  c
ROM0:09C1 0A               ld   a,(bc)
ROM0:09C2 22               ldi  (hl),a
ROM0:09C3 0C               inc  c
ROM0:09C4 0A               ld   a,(bc)
ROM0:09C5 22               ldi  (hl),a
ROM0:09C6 0C               inc  c
ROM0:09C7 0A               ld   a,(bc)
ROM0:09C8 22               ldi  (hl),a
ROM0:09C9 0C               inc  c
ROM0:09CA 0A               ld   a,(bc)
ROM0:09CB 22               ldi  (hl),a
ROM0:09CC 0C               inc  c
ROM0:09CD 0A               ld   a,(bc)
ROM0:09CE 22               ldi  (hl),a
ROM0:09CF 0C               inc  c
ROM0:09D0 0A               ld   a,(bc)
ROM0:09D1 22               ldi  (hl),a
ROM0:09D2 0C               inc  c
ROM0:09D3 0A               ld   a,(bc)
ROM0:09D4 22               ldi  (hl),a
ROM0:09D5 0C               inc  c
ROM0:09D6 0A               ld   a,(bc)
ROM0:09D7 22               ldi  (hl),a
ROM0:09D8 0C               inc  c
ROM0:09D9 0A               ld   a,(bc)
ROM0:09DA 6F               ld   l,a
ROM0:09DB 0C               inc  c
ROM0:09DC 0A               ld   a,(bc)
ROM0:09DD 67               ld   h,a
ROM0:09DE 0C               inc  c
ROM0:09DF 0A               ld   a,(bc)
ROM0:09E0 22               ldi  (hl),a
ROM0:09E1 0C               inc  c
ROM0:09E2 0A               ld   a,(bc)
ROM0:09E3 22               ldi  (hl),a
ROM0:09E4 0C               inc  c
ROM0:09E5 0A               ld   a,(bc)
ROM0:09E6 22               ldi  (hl),a
ROM0:09E7 0C               inc  c
ROM0:09E8 0A               ld   a,(bc)
ROM0:09E9 22               ldi  (hl),a
ROM0:09EA 0C               inc  c
ROM0:09EB 0A               ld   a,(bc)
ROM0:09EC 22               ldi  (hl),a
ROM0:09ED 0C               inc  c
ROM0:09EE 0A               ld   a,(bc)
ROM0:09EF 22               ldi  (hl),a
ROM0:09F0 0C               inc  c
ROM0:09F1 0A               ld   a,(bc)
ROM0:09F2 22               ldi  (hl),a
ROM0:09F3 0C               inc  c
ROM0:09F4 0A               ld   a,(bc)
ROM0:09F5 22               ldi  (hl),a
ROM0:09F6 0C               inc  c
ROM0:09F7 0A               ld   a,(bc)
ROM0:09F8 6F               ld   l,a
ROM0:09F9 0C               inc  c
ROM0:09FA 0A               ld   a,(bc)
ROM0:09FB 67               ld   h,a
ROM0:09FC 0C               inc  c
ROM0:09FD 0A               ld   a,(bc)
ROM0:09FE 22               ldi  (hl),a
ROM0:09FF 0C               inc  c
ROM0:0A00 0A               ld   a,(bc)
ROM0:0A01 22               ldi  (hl),a
ROM0:0A02 0C               inc  c
ROM0:0A03 0A               ld   a,(bc)
ROM0:0A04 22               ldi  (hl),a
ROM0:0A05 0C               inc  c
ROM0:0A06 0A               ld   a,(bc)
ROM0:0A07 22               ldi  (hl),a
ROM0:0A08 0C               inc  c
ROM0:0A09 0A               ld   a,(bc)
ROM0:0A0A 22               ldi  (hl),a
ROM0:0A0B 0C               inc  c
ROM0:0A0C 0A               ld   a,(bc)
ROM0:0A0D 22               ldi  (hl),a
ROM0:0A0E 0C               inc  c
ROM0:0A0F 0A               ld   a,(bc)
ROM0:0A10 22               ldi  (hl),a
ROM0:0A11 0C               inc  c
ROM0:0A12 0A               ld   a,(bc)
ROM0:0A13 22               ldi  (hl),a
ROM0:0A14 0C               inc  c
ROM0:0A15 0A               ld   a,(bc)
ROM0:0A16 6F               ld   l,a
ROM0:0A17 0C               inc  c
ROM0:0A18 0A               ld   a,(bc)
ROM0:0A19 67               ld   h,a
ROM0:0A1A 0C               inc  c
ROM0:0A1B 0A               ld   a,(bc)
ROM0:0A1C 22               ldi  (hl),a
ROM0:0A1D 0C               inc  c
ROM0:0A1E 0A               ld   a,(bc)
ROM0:0A1F 22               ldi  (hl),a
ROM0:0A20 0C               inc  c
ROM0:0A21 0A               ld   a,(bc)
ROM0:0A22 22               ldi  (hl),a
ROM0:0A23 0C               inc  c
ROM0:0A24 0A               ld   a,(bc)
ROM0:0A25 22               ldi  (hl),a
ROM0:0A26 0C               inc  c
ROM0:0A27 0A               ld   a,(bc)
ROM0:0A28 22               ldi  (hl),a
ROM0:0A29 0C               inc  c
ROM0:0A2A 0A               ld   a,(bc)
ROM0:0A2B 22               ldi  (hl),a
ROM0:0A2C 0C               inc  c
ROM0:0A2D 0A               ld   a,(bc)
ROM0:0A2E 22               ldi  (hl),a
ROM0:0A2F 0C               inc  c
ROM0:0A30 0A               ld   a,(bc)
ROM0:0A31 22               ldi  (hl),a
ROM0:0A32 0C               inc  c
ROM0:0A33 0A               ld   a,(bc)
ROM0:0A34 6F               ld   l,a
ROM0:0A35 0C               inc  c
ROM0:0A36 0A               ld   a,(bc)
ROM0:0A37 67               ld   h,a
ROM0:0A38 0C               inc  c
ROM0:0A39 0A               ld   a,(bc)
ROM0:0A3A 22               ldi  (hl),a
ROM0:0A3B 0C               inc  c
ROM0:0A3C 0A               ld   a,(bc)
ROM0:0A3D 22               ldi  (hl),a
ROM0:0A3E 0C               inc  c
ROM0:0A3F 0A               ld   a,(bc)
ROM0:0A40 22               ldi  (hl),a
ROM0:0A41 0C               inc  c
ROM0:0A42 0A               ld   a,(bc)
ROM0:0A43 22               ldi  (hl),a
ROM0:0A44 0C               inc  c
ROM0:0A45 0A               ld   a,(bc)
ROM0:0A46 22               ldi  (hl),a
ROM0:0A47 0C               inc  c
ROM0:0A48 0A               ld   a,(bc)
ROM0:0A49 22               ldi  (hl),a
ROM0:0A4A 0C               inc  c
ROM0:0A4B 0A               ld   a,(bc)
ROM0:0A4C 22               ldi  (hl),a
ROM0:0A4D 0C               inc  c
ROM0:0A4E 0A               ld   a,(bc)
ROM0:0A4F 22               ldi  (hl),a
ROM0:0A50 0C               inc  c
ROM0:0A51 0A               ld   a,(bc)
ROM0:0A52 6F               ld   l,a
ROM0:0A53 0C               inc  c
ROM0:0A54 0A               ld   a,(bc)
ROM0:0A55 67               ld   h,a
ROM0:0A56 0C               inc  c
ROM0:0A57 0A               ld   a,(bc)
ROM0:0A58 22               ldi  (hl),a
ROM0:0A59 0C               inc  c
ROM0:0A5A 0A               ld   a,(bc)
ROM0:0A5B 22               ldi  (hl),a
ROM0:0A5C 0C               inc  c
ROM0:0A5D 0A               ld   a,(bc)
ROM0:0A5E 22               ldi  (hl),a
ROM0:0A5F 0C               inc  c
ROM0:0A60 0A               ld   a,(bc)
ROM0:0A61 22               ldi  (hl),a
ROM0:0A62 0C               inc  c
ROM0:0A63 0A               ld   a,(bc)
ROM0:0A64 22               ldi  (hl),a
ROM0:0A65 0C               inc  c
ROM0:0A66 0A               ld   a,(bc)
ROM0:0A67 22               ldi  (hl),a
ROM0:0A68 0C               inc  c
ROM0:0A69 0A               ld   a,(bc)
ROM0:0A6A 22               ldi  (hl),a
ROM0:0A6B 0C               inc  c
ROM0:0A6C 0A               ld   a,(bc)
ROM0:0A6D 22               ldi  (hl),a
ROM0:0A6E 0C               inc  c
ROM0:0A6F 3E 00            ld   a,00
ROM0:0A71 EA AF C5         ld   (C5AF),a
ROM0:0A74 3E 01            ld   a,01
ROM0:0A76 EA AC C5         ld   (C5AC),a
ROM0:0A79 CD B4 04         call 04B4
ROM0:0A7C D1               pop  de
ROM0:0A7D C1               pop  bc
ROM0:0A7E E1               pop  hl
ROM0:0A7F F1               pop  af
ROM0:0A80 D9               reti 

0:0A81 (OAM)

ROM0:0A81 CD F5 FF         call FFF5		;OAM
ROM0:0A84 01 00 C1         ld   bc,C100
ROM0:0A87 0A               ld   a,(bc)
ROM0:0A88 6F               ld   l,a
ROM0:0A89 0C               inc  c
ROM0:0A8A 0A               ld   a,(bc)
ROM0:0A8B 67               ld   h,a
ROM0:0A8C 0C               inc  c
ROM0:0A8D 0A               ld   a,(bc)
ROM0:0A8E 22               ldi  (hl),a
ROM0:0A8F 0C               inc  c
ROM0:0A90 0A               ld   a,(bc)
ROM0:0A91 22               ldi  (hl),a
ROM0:0A92 0C               inc  c
ROM0:0A93 0A               ld   a,(bc)
ROM0:0A94 22               ldi  (hl),a
ROM0:0A95 0C               inc  c
ROM0:0A96 0A               ld   a,(bc)
ROM0:0A97 22               ldi  (hl),a
ROM0:0A98 0C               inc  c
ROM0:0A99 0A               ld   a,(bc)
ROM0:0A9A 22               ldi  (hl),a
ROM0:0A9B 0C               inc  c
ROM0:0A9C 0A               ld   a,(bc)
ROM0:0A9D 22               ldi  (hl),a
ROM0:0A9E 0C               inc  c
ROM0:0A9F 0A               ld   a,(bc)
ROM0:0AA0 22               ldi  (hl),a
ROM0:0AA1 0C               inc  c
ROM0:0AA2 0A               ld   a,(bc)
ROM0:0AA3 22               ldi  (hl),a
ROM0:0AA4 0C               inc  c
ROM0:0AA5 0A               ld   a,(bc)
ROM0:0AA6 22               ldi  (hl),a
ROM0:0AA7 0C               inc  c
ROM0:0AA8 0A               ld   a,(bc)
ROM0:0AA9 22               ldi  (hl),a
ROM0:0AAA 0C               inc  c
ROM0:0AAB 0A               ld   a,(bc)
ROM0:0AAC 22               ldi  (hl),a
ROM0:0AAD 0C               inc  c
ROM0:0AAE 0A               ld   a,(bc)
ROM0:0AAF 22               ldi  (hl),a
ROM0:0AB0 0C               inc  c
ROM0:0AB1 0A               ld   a,(bc)
ROM0:0AB2 22               ldi  (hl),a
ROM0:0AB3 0C               inc  c
ROM0:0AB4 0A               ld   a,(bc)
ROM0:0AB5 22               ldi  (hl),a
ROM0:0AB6 0C               inc  c
ROM0:0AB7 0A               ld   a,(bc)
ROM0:0AB8 22               ldi  (hl),a
ROM0:0AB9 0C               inc  c
ROM0:0ABA 0A               ld   a,(bc)
ROM0:0ABB 22               ldi  (hl),a
ROM0:0ABC 0C               inc  c
ROM0:0ABD 0A               ld   a,(bc)
ROM0:0ABE 22               ldi  (hl),a
ROM0:0ABF 0C               inc  c
ROM0:0AC0 0A               ld   a,(bc)
ROM0:0AC1 22               ldi  (hl),a
ROM0:0AC2 0C               inc  c
ROM0:0AC3 0A               ld   a,(bc)
ROM0:0AC4 6F               ld   l,a
ROM0:0AC5 0C               inc  c
ROM0:0AC6 0A               ld   a,(bc)
ROM0:0AC7 67               ld   h,a
ROM0:0AC8 0C               inc  c
ROM0:0AC9 0A               ld   a,(bc)
ROM0:0ACA 22               ldi  (hl),a
ROM0:0ACB 0C               inc  c
ROM0:0ACC 0A               ld   a,(bc)
ROM0:0ACD 22               ldi  (hl),a
ROM0:0ACE 0C               inc  c
ROM0:0ACF 0A               ld   a,(bc)
ROM0:0AD0 22               ldi  (hl),a
ROM0:0AD1 0C               inc  c
ROM0:0AD2 0A               ld   a,(bc)
ROM0:0AD3 22               ldi  (hl),a
ROM0:0AD4 0C               inc  c
ROM0:0AD5 0A               ld   a,(bc)
ROM0:0AD6 22               ldi  (hl),a
ROM0:0AD7 0C               inc  c
ROM0:0AD8 0A               ld   a,(bc)
ROM0:0AD9 22               ldi  (hl),a
ROM0:0ADA 0C               inc  c
ROM0:0ADB 0A               ld   a,(bc)
ROM0:0ADC 22               ldi  (hl),a
ROM0:0ADD 0C               inc  c
ROM0:0ADE 0A               ld   a,(bc)
ROM0:0ADF 22               ldi  (hl),a
ROM0:0AE0 0C               inc  c
ROM0:0AE1 0A               ld   a,(bc)
ROM0:0AE2 22               ldi  (hl),a
ROM0:0AE3 0C               inc  c
ROM0:0AE4 0A               ld   a,(bc)
ROM0:0AE5 22               ldi  (hl),a
ROM0:0AE6 0C               inc  c
ROM0:0AE7 0A               ld   a,(bc)
ROM0:0AE8 22               ldi  (hl),a
ROM0:0AE9 0C               inc  c
ROM0:0AEA 0A               ld   a,(bc)
ROM0:0AEB 22               ldi  (hl),a
ROM0:0AEC 0C               inc  c
ROM0:0AED 0A               ld   a,(bc)
ROM0:0AEE 22               ldi  (hl),a
ROM0:0AEF 0C               inc  c
ROM0:0AF0 0A               ld   a,(bc)
ROM0:0AF1 22               ldi  (hl),a
ROM0:0AF2 0C               inc  c
ROM0:0AF3 0A               ld   a,(bc)
ROM0:0AF4 22               ldi  (hl),a
ROM0:0AF5 0C               inc  c
ROM0:0AF6 0A               ld   a,(bc)
ROM0:0AF7 22               ldi  (hl),a
ROM0:0AF8 0C               inc  c
ROM0:0AF9 0A               ld   a,(bc)
ROM0:0AFA 22               ldi  (hl),a
ROM0:0AFB 0C               inc  c
ROM0:0AFC 0A               ld   a,(bc)
ROM0:0AFD 22               ldi  (hl),a
ROM0:0AFE 0C               inc  c
ROM0:0AFF 0A               ld   a,(bc)
ROM0:0B00 6F               ld   l,a
ROM0:0B01 0C               inc  c
ROM0:0B02 0A               ld   a,(bc)
ROM0:0B03 67               ld   h,a
ROM0:0B04 0C               inc  c
ROM0:0B05 0A               ld   a,(bc)
ROM0:0B06 22               ldi  (hl),a
ROM0:0B07 0C               inc  c
ROM0:0B08 0A               ld   a,(bc)
ROM0:0B09 22               ldi  (hl),a
ROM0:0B0A 0C               inc  c
ROM0:0B0B 0A               ld   a,(bc)
ROM0:0B0C 22               ldi  (hl),a
ROM0:0B0D 0C               inc  c
ROM0:0B0E 0A               ld   a,(bc)
ROM0:0B0F 22               ldi  (hl),a
ROM0:0B10 0C               inc  c
ROM0:0B11 0A               ld   a,(bc)
ROM0:0B12 22               ldi  (hl),a
ROM0:0B13 0C               inc  c
ROM0:0B14 0A               ld   a,(bc)
ROM0:0B15 22               ldi  (hl),a
ROM0:0B16 0C               inc  c
ROM0:0B17 0A               ld   a,(bc)
ROM0:0B18 22               ldi  (hl),a
ROM0:0B19 0C               inc  c
ROM0:0B1A 0A               ld   a,(bc)
ROM0:0B1B 22               ldi  (hl),a
ROM0:0B1C 0C               inc  c
ROM0:0B1D 0A               ld   a,(bc)
ROM0:0B1E 22               ldi  (hl),a
ROM0:0B1F 0C               inc  c
ROM0:0B20 0A               ld   a,(bc)
ROM0:0B21 22               ldi  (hl),a
ROM0:0B22 0C               inc  c
ROM0:0B23 0A               ld   a,(bc)
ROM0:0B24 22               ldi  (hl),a
ROM0:0B25 0C               inc  c
ROM0:0B26 0A               ld   a,(bc)
ROM0:0B27 22               ldi  (hl),a
ROM0:0B28 0C               inc  c
ROM0:0B29 0A               ld   a,(bc)
ROM0:0B2A 22               ldi  (hl),a
ROM0:0B2B 0C               inc  c
ROM0:0B2C 0A               ld   a,(bc)
ROM0:0B2D 22               ldi  (hl),a
ROM0:0B2E 0C               inc  c
ROM0:0B2F 0A               ld   a,(bc)
ROM0:0B30 22               ldi  (hl),a
ROM0:0B31 0C               inc  c
ROM0:0B32 0A               ld   a,(bc)
ROM0:0B33 22               ldi  (hl),a
ROM0:0B34 0C               inc  c
ROM0:0B35 0A               ld   a,(bc)
ROM0:0B36 22               ldi  (hl),a
ROM0:0B37 0C               inc  c
ROM0:0B38 0A               ld   a,(bc)
ROM0:0B39 22               ldi  (hl),a
ROM0:0B3A 0C               inc  c
ROM0:0B3B 0A               ld   a,(bc)
ROM0:0B3C 6F               ld   l,a
ROM0:0B3D 0C               inc  c
ROM0:0B3E 0A               ld   a,(bc)
ROM0:0B3F 67               ld   h,a
ROM0:0B40 0C               inc  c
ROM0:0B41 0A               ld   a,(bc)
ROM0:0B42 22               ldi  (hl),a
ROM0:0B43 0C               inc  c
ROM0:0B44 0A               ld   a,(bc)
ROM0:0B45 22               ldi  (hl),a
ROM0:0B46 0C               inc  c
ROM0:0B47 0A               ld   a,(bc)
ROM0:0B48 22               ldi  (hl),a
ROM0:0B49 0C               inc  c
ROM0:0B4A 0A               ld   a,(bc)
ROM0:0B4B 22               ldi  (hl),a
ROM0:0B4C 0C               inc  c
ROM0:0B4D 0A               ld   a,(bc)
ROM0:0B4E 22               ldi  (hl),a
ROM0:0B4F 0C               inc  c
ROM0:0B50 0A               ld   a,(bc)
ROM0:0B51 22               ldi  (hl),a
ROM0:0B52 0C               inc  c
ROM0:0B53 0A               ld   a,(bc)
ROM0:0B54 22               ldi  (hl),a
ROM0:0B55 0C               inc  c
ROM0:0B56 0A               ld   a,(bc)
ROM0:0B57 22               ldi  (hl),a
ROM0:0B58 0C               inc  c
ROM0:0B59 0A               ld   a,(bc)
ROM0:0B5A 22               ldi  (hl),a
ROM0:0B5B 0C               inc  c
ROM0:0B5C 0A               ld   a,(bc)
ROM0:0B5D 22               ldi  (hl),a
ROM0:0B5E 0C               inc  c
ROM0:0B5F 0A               ld   a,(bc)
ROM0:0B60 22               ldi  (hl),a
ROM0:0B61 0C               inc  c
ROM0:0B62 0A               ld   a,(bc)
ROM0:0B63 22               ldi  (hl),a
ROM0:0B64 0C               inc  c
ROM0:0B65 0A               ld   a,(bc)
ROM0:0B66 22               ldi  (hl),a
ROM0:0B67 0C               inc  c
ROM0:0B68 0A               ld   a,(bc)
ROM0:0B69 22               ldi  (hl),a
ROM0:0B6A 0C               inc  c
ROM0:0B6B 0A               ld   a,(bc)
ROM0:0B6C 22               ldi  (hl),a
ROM0:0B6D 0C               inc  c
ROM0:0B6E 0A               ld   a,(bc)
ROM0:0B6F 22               ldi  (hl),a
ROM0:0B70 0C               inc  c
ROM0:0B71 0A               ld   a,(bc)
ROM0:0B72 22               ldi  (hl),a
ROM0:0B73 0C               inc  c
ROM0:0B74 0A               ld   a,(bc)
ROM0:0B75 22               ldi  (hl),a
ROM0:0B76 0C               inc  c
ROM0:0B77 0A               ld   a,(bc)
ROM0:0B78 6F               ld   l,a
ROM0:0B79 0C               inc  c
ROM0:0B7A 0A               ld   a,(bc)
ROM0:0B7B 67               ld   h,a
ROM0:0B7C 0C               inc  c
ROM0:0B7D 0A               ld   a,(bc)
ROM0:0B7E 22               ldi  (hl),a
ROM0:0B7F 0C               inc  c
ROM0:0B80 0A               ld   a,(bc)
ROM0:0B81 22               ldi  (hl),a
ROM0:0B82 0C               inc  c
ROM0:0B83 0A               ld   a,(bc)
ROM0:0B84 22               ldi  (hl),a
ROM0:0B85 0C               inc  c
ROM0:0B86 0A               ld   a,(bc)
ROM0:0B87 22               ldi  (hl),a
ROM0:0B88 0C               inc  c
ROM0:0B89 0A               ld   a,(bc)
ROM0:0B8A 22               ldi  (hl),a
ROM0:0B8B 0C               inc  c
ROM0:0B8C 0A               ld   a,(bc)
ROM0:0B8D 22               ldi  (hl),a
ROM0:0B8E 0C               inc  c
ROM0:0B8F 0A               ld   a,(bc)
ROM0:0B90 22               ldi  (hl),a
ROM0:0B91 0C               inc  c
ROM0:0B92 0A               ld   a,(bc)
ROM0:0B93 22               ldi  (hl),a
ROM0:0B94 0C               inc  c
ROM0:0B95 0A               ld   a,(bc)
ROM0:0B96 22               ldi  (hl),a
ROM0:0B97 0C               inc  c
ROM0:0B98 0A               ld   a,(bc)
ROM0:0B99 22               ldi  (hl),a
ROM0:0B9A 0C               inc  c
ROM0:0B9B 0A               ld   a,(bc)
ROM0:0B9C 22               ldi  (hl),a
ROM0:0B9D 0C               inc  c
ROM0:0B9E 0A               ld   a,(bc)
ROM0:0B9F 22               ldi  (hl),a
ROM0:0BA0 0C               inc  c
ROM0:0BA1 0A               ld   a,(bc)
ROM0:0BA2 22               ldi  (hl),a
ROM0:0BA3 0C               inc  c
ROM0:0BA4 0A               ld   a,(bc)
ROM0:0BA5 22               ldi  (hl),a
ROM0:0BA6 0C               inc  c
ROM0:0BA7 0A               ld   a,(bc)
ROM0:0BA8 22               ldi  (hl),a
ROM0:0BA9 0C               inc  c
ROM0:0BAA 0A               ld   a,(bc)
ROM0:0BAB 22               ldi  (hl),a
ROM0:0BAC 0C               inc  c
ROM0:0BAD 0A               ld   a,(bc)
ROM0:0BAE 22               ldi  (hl),a
ROM0:0BAF 0C               inc  c
ROM0:0BB0 0A               ld   a,(bc)
ROM0:0BB1 22               ldi  (hl),a
ROM0:0BB2 0C               inc  c
ROM0:0BB3 3E 00            ld   a,00
ROM0:0BB5 EA AF C5         ld   (C5AF),a
ROM0:0BB8 3E 01            ld   a,01
ROM0:0BBA EA AC C5         ld   (C5AC),a
ROM0:0BBD CD B4 04         call 04B4
ROM0:0BC0 D1               pop  de
ROM0:0BC1 C1               pop  bc
ROM0:0BC2 E1               pop  hl
ROM0:0BC3 F1               pop  af
ROM0:0BC4 D9               reti 

0:0BC5 (OAM)

ROM0:0BC5 CD F5 FF         call FFF5		;OAM
ROM0:0BC8 01 00 C1         ld   bc,C100
ROM0:0BCB 11 20 00         ld   de,0020
ROM0:0BCE 0A               ld   a,(bc)
ROM0:0BCF 6F               ld   l,a
ROM0:0BD0 0C               inc  c
ROM0:0BD1 0A               ld   a,(bc)
ROM0:0BD2 67               ld   h,a
ROM0:0BD3 0C               inc  c
ROM0:0BD4 0A               ld   a,(bc)
ROM0:0BD5 22               ldi  (hl),a
ROM0:0BD6 0C               inc  c
ROM0:0BD7 0A               ld   a,(bc)
ROM0:0BD8 32               ldd  (hl),a
ROM0:0BD9 0C               inc  c
ROM0:0BDA 19               add  hl,de
ROM0:0BDB 0A               ld   a,(bc)
ROM0:0BDC 22               ldi  (hl),a
ROM0:0BDD 0C               inc  c
ROM0:0BDE 0A               ld   a,(bc)
ROM0:0BDF 32               ldd  (hl),a
ROM0:0BE0 0C               inc  c
ROM0:0BE1 0A               ld   a,(bc)
ROM0:0BE2 6F               ld   l,a
ROM0:0BE3 0C               inc  c
ROM0:0BE4 0A               ld   a,(bc)
ROM0:0BE5 67               ld   h,a
ROM0:0BE6 0C               inc  c
ROM0:0BE7 0A               ld   a,(bc)
ROM0:0BE8 22               ldi  (hl),a
ROM0:0BE9 0C               inc  c
ROM0:0BEA 0A               ld   a,(bc)
ROM0:0BEB 32               ldd  (hl),a
ROM0:0BEC 0C               inc  c
ROM0:0BED 19               add  hl,de
ROM0:0BEE 0A               ld   a,(bc)
ROM0:0BEF 22               ldi  (hl),a
ROM0:0BF0 0C               inc  c
ROM0:0BF1 0A               ld   a,(bc)
ROM0:0BF2 32               ldd  (hl),a
ROM0:0BF3 0C               inc  c
ROM0:0BF4 0A               ld   a,(bc)
ROM0:0BF5 6F               ld   l,a
ROM0:0BF6 0C               inc  c
ROM0:0BF7 0A               ld   a,(bc)
ROM0:0BF8 67               ld   h,a
ROM0:0BF9 0C               inc  c
ROM0:0BFA 0A               ld   a,(bc)
ROM0:0BFB 22               ldi  (hl),a
ROM0:0BFC 0C               inc  c
ROM0:0BFD 0A               ld   a,(bc)
ROM0:0BFE 32               ldd  (hl),a
ROM0:0BFF 0C               inc  c
ROM0:0C00 19               add  hl,de
ROM0:0C01 0A               ld   a,(bc)
ROM0:0C02 22               ldi  (hl),a
ROM0:0C03 0C               inc  c
ROM0:0C04 0A               ld   a,(bc)
ROM0:0C05 32               ldd  (hl),a
ROM0:0C06 0C               inc  c
ROM0:0C07 0A               ld   a,(bc)
ROM0:0C08 6F               ld   l,a
ROM0:0C09 0C               inc  c
ROM0:0C0A 0A               ld   a,(bc)
ROM0:0C0B 67               ld   h,a
ROM0:0C0C 0C               inc  c
ROM0:0C0D 0A               ld   a,(bc)
ROM0:0C0E 22               ldi  (hl),a
ROM0:0C0F 0C               inc  c
ROM0:0C10 0A               ld   a,(bc)
ROM0:0C11 32               ldd  (hl),a
ROM0:0C12 0C               inc  c
ROM0:0C13 19               add  hl,de
ROM0:0C14 0A               ld   a,(bc)
ROM0:0C15 22               ldi  (hl),a
ROM0:0C16 0C               inc  c
ROM0:0C17 0A               ld   a,(bc)
ROM0:0C18 32               ldd  (hl),a
ROM0:0C19 0C               inc  c
ROM0:0C1A 0A               ld   a,(bc)
ROM0:0C1B 6F               ld   l,a
ROM0:0C1C 0C               inc  c
ROM0:0C1D 0A               ld   a,(bc)
ROM0:0C1E 67               ld   h,a
ROM0:0C1F 0C               inc  c
ROM0:0C20 0A               ld   a,(bc)
ROM0:0C21 22               ldi  (hl),a
ROM0:0C22 0C               inc  c
ROM0:0C23 0A               ld   a,(bc)
ROM0:0C24 32               ldd  (hl),a
ROM0:0C25 0C               inc  c
ROM0:0C26 19               add  hl,de
ROM0:0C27 0A               ld   a,(bc)
ROM0:0C28 22               ldi  (hl),a
ROM0:0C29 0C               inc  c
ROM0:0C2A 0A               ld   a,(bc)
ROM0:0C2B 32               ldd  (hl),a
ROM0:0C2C 0C               inc  c
ROM0:0C2D 0A               ld   a,(bc)
ROM0:0C2E 6F               ld   l,a
ROM0:0C2F 0C               inc  c
ROM0:0C30 0A               ld   a,(bc)
ROM0:0C31 67               ld   h,a
ROM0:0C32 0C               inc  c
ROM0:0C33 0A               ld   a,(bc)
ROM0:0C34 22               ldi  (hl),a
ROM0:0C35 0C               inc  c
ROM0:0C36 0A               ld   a,(bc)
ROM0:0C37 32               ldd  (hl),a
ROM0:0C38 0C               inc  c
ROM0:0C39 19               add  hl,de
ROM0:0C3A 0A               ld   a,(bc)
ROM0:0C3B 22               ldi  (hl),a
ROM0:0C3C 0C               inc  c
ROM0:0C3D 0A               ld   a,(bc)
ROM0:0C3E 32               ldd  (hl),a
ROM0:0C3F 0C               inc  c
ROM0:0C40 3E 00            ld   a,00
ROM0:0C42 EA AF C5         ld   (C5AF),a
ROM0:0C45 3E 01            ld   a,01
ROM0:0C47 EA AC C5         ld   (C5AC),a
ROM0:0C4A CD B4 04         call 04B4
ROM0:0C4D D1               pop  de
ROM0:0C4E C1               pop  bc
ROM0:0C4F E1               pop  hl
ROM0:0C50 F1               pop  af
ROM0:0C51 D9               reti 

0:0C52

ROM0:0C52 01 00 C1         ld   bc,C100
ROM0:0C55 0A               ld   a,(bc)
ROM0:0C56 6F               ld   l,a
ROM0:0C57 0C               inc  c
ROM0:0C58 0A               ld   a,(bc)
ROM0:0C59 67               ld   h,a
ROM0:0C5A 0C               inc  c
ROM0:0C5B 0A               ld   a,(bc)
ROM0:0C5C 22               ldi  (hl),a
ROM0:0C5D 0C               inc  c
ROM0:0C5E 0A               ld   a,(bc)
ROM0:0C5F 22               ldi  (hl),a
ROM0:0C60 0C               inc  c
ROM0:0C61 0A               ld   a,(bc)
ROM0:0C62 22               ldi  (hl),a
ROM0:0C63 0C               inc  c
ROM0:0C64 0A               ld   a,(bc)
ROM0:0C65 22               ldi  (hl),a
ROM0:0C66 0C               inc  c
ROM0:0C67 0A               ld   a,(bc)
ROM0:0C68 22               ldi  (hl),a
ROM0:0C69 0C               inc  c
ROM0:0C6A 0A               ld   a,(bc)
ROM0:0C6B 22               ldi  (hl),a
ROM0:0C6C 0C               inc  c
ROM0:0C6D 0A               ld   a,(bc)
ROM0:0C6E 22               ldi  (hl),a
ROM0:0C6F 0C               inc  c
ROM0:0C70 0A               ld   a,(bc)
ROM0:0C71 22               ldi  (hl),a
ROM0:0C72 0C               inc  c
ROM0:0C73 0A               ld   a,(bc)
ROM0:0C74 6F               ld   l,a
ROM0:0C75 0C               inc  c
ROM0:0C76 0A               ld   a,(bc)
ROM0:0C77 67               ld   h,a
ROM0:0C78 0C               inc  c
ROM0:0C79 0A               ld   a,(bc)
ROM0:0C7A 22               ldi  (hl),a
ROM0:0C7B 0C               inc  c
ROM0:0C7C 0A               ld   a,(bc)
ROM0:0C7D 22               ldi  (hl),a
ROM0:0C7E 0C               inc  c
ROM0:0C7F 0A               ld   a,(bc)
ROM0:0C80 22               ldi  (hl),a
ROM0:0C81 0C               inc  c
ROM0:0C82 0A               ld   a,(bc)
ROM0:0C83 22               ldi  (hl),a
ROM0:0C84 0C               inc  c
ROM0:0C85 0A               ld   a,(bc)
ROM0:0C86 22               ldi  (hl),a
ROM0:0C87 0C               inc  c
ROM0:0C88 0A               ld   a,(bc)
ROM0:0C89 22               ldi  (hl),a
ROM0:0C8A 0C               inc  c
ROM0:0C8B 0A               ld   a,(bc)
ROM0:0C8C 22               ldi  (hl),a
ROM0:0C8D 0C               inc  c
ROM0:0C8E 0A               ld   a,(bc)
ROM0:0C8F 22               ldi  (hl),a
ROM0:0C90 0C               inc  c
ROM0:0C91 0A               ld   a,(bc)
ROM0:0C92 22               ldi  (hl),a
ROM0:0C93 0C               inc  c
ROM0:0C94 0A               ld   a,(bc)
ROM0:0C95 22               ldi  (hl),a
ROM0:0C96 0C               inc  c
ROM0:0C97 0A               ld   a,(bc)
ROM0:0C98 22               ldi  (hl),a
ROM0:0C99 0C               inc  c
ROM0:0C9A 0A               ld   a,(bc)
ROM0:0C9B 22               ldi  (hl),a
ROM0:0C9C 0C               inc  c
ROM0:0C9D 0A               ld   a,(bc)
ROM0:0C9E 22               ldi  (hl),a
ROM0:0C9F 0C               inc  c
ROM0:0CA0 0A               ld   a,(bc)
ROM0:0CA1 22               ldi  (hl),a
ROM0:0CA2 0C               inc  c
ROM0:0CA3 0A               ld   a,(bc)
ROM0:0CA4 22               ldi  (hl),a
ROM0:0CA5 0C               inc  c
ROM0:0CA6 0A               ld   a,(bc)
ROM0:0CA7 22               ldi  (hl),a
ROM0:0CA8 0C               inc  c
ROM0:0CA9 0A               ld   a,(bc)
ROM0:0CAA 22               ldi  (hl),a
ROM0:0CAB 0C               inc  c
ROM0:0CAC 0A               ld   a,(bc)
ROM0:0CAD 22               ldi  (hl),a
ROM0:0CAE 0C               inc  c
ROM0:0CAF 0A               ld   a,(bc)
ROM0:0CB0 22               ldi  (hl),a
ROM0:0CB1 0C               inc  c
ROM0:0CB2 0A               ld   a,(bc)
ROM0:0CB3 22               ldi  (hl),a
ROM0:0CB4 0C               inc  c
ROM0:0CB5 0A               ld   a,(bc)
ROM0:0CB6 22               ldi  (hl),a
ROM0:0CB7 0C               inc  c
ROM0:0CB8 0A               ld   a,(bc)
ROM0:0CB9 22               ldi  (hl),a
ROM0:0CBA 0C               inc  c
ROM0:0CBB 0A               ld   a,(bc)
ROM0:0CBC 22               ldi  (hl),a
ROM0:0CBD 0C               inc  c
ROM0:0CBE 0A               ld   a,(bc)
ROM0:0CBF 22               ldi  (hl),a
ROM0:0CC0 0C               inc  c
ROM0:0CC1 0A               ld   a,(bc)
ROM0:0CC2 22               ldi  (hl),a
ROM0:0CC3 0C               inc  c
ROM0:0CC4 0A               ld   a,(bc)
ROM0:0CC5 22               ldi  (hl),a
ROM0:0CC6 0C               inc  c
ROM0:0CC7 0A               ld   a,(bc)
ROM0:0CC8 22               ldi  (hl),a
ROM0:0CC9 0C               inc  c
ROM0:0CCA 0A               ld   a,(bc)
ROM0:0CCB 22               ldi  (hl),a
ROM0:0CCC 0C               inc  c
ROM0:0CCD 0A               ld   a,(bc)
ROM0:0CCE 22               ldi  (hl),a
ROM0:0CCF 0C               inc  c
ROM0:0CD0 0A               ld   a,(bc)
ROM0:0CD1 22               ldi  (hl),a
ROM0:0CD2 0C               inc  c
ROM0:0CD3 0A               ld   a,(bc)
ROM0:0CD4 22               ldi  (hl),a
ROM0:0CD5 0C               inc  c
ROM0:0CD6 0A               ld   a,(bc)
ROM0:0CD7 22               ldi  (hl),a
ROM0:0CD8 0C               inc  c
ROM0:0CD9 0A               ld   a,(bc)
ROM0:0CDA 22               ldi  (hl),a
ROM0:0CDB 0C               inc  c
ROM0:0CDC 0A               ld   a,(bc)
ROM0:0CDD 22               ldi  (hl),a
ROM0:0CDE 0C               inc  c
ROM0:0CDF 0A               ld   a,(bc)
ROM0:0CE0 22               ldi  (hl),a
ROM0:0CE1 0C               inc  c
ROM0:0CE2 0A               ld   a,(bc)
ROM0:0CE3 22               ldi  (hl),a
ROM0:0CE4 0C               inc  c
ROM0:0CE5 0A               ld   a,(bc)
ROM0:0CE6 22               ldi  (hl),a
ROM0:0CE7 0C               inc  c
ROM0:0CE8 0A               ld   a,(bc)
ROM0:0CE9 22               ldi  (hl),a
ROM0:0CEA 0C               inc  c
ROM0:0CEB 0A               ld   a,(bc)
ROM0:0CEC 22               ldi  (hl),a
ROM0:0CED 0C               inc  c
ROM0:0CEE 0A               ld   a,(bc)
ROM0:0CEF 22               ldi  (hl),a
ROM0:0CF0 0C               inc  c
ROM0:0CF1 0A               ld   a,(bc)
ROM0:0CF2 22               ldi  (hl),a
ROM0:0CF3 0C               inc  c
ROM0:0CF4 0A               ld   a,(bc)
ROM0:0CF5 22               ldi  (hl),a
ROM0:0CF6 0C               inc  c
ROM0:0CF7 0A               ld   a,(bc)
ROM0:0CF8 22               ldi  (hl),a
ROM0:0CF9 0C               inc  c
ROM0:0CFA 0A               ld   a,(bc)
ROM0:0CFB 22               ldi  (hl),a
ROM0:0CFC 0C               inc  c
ROM0:0CFD 0A               ld   a,(bc)
ROM0:0CFE 22               ldi  (hl),a
ROM0:0CFF 0C               inc  c
ROM0:0D00 0A               ld   a,(bc)
ROM0:0D01 22               ldi  (hl),a
ROM0:0D02 0C               inc  c
ROM0:0D03 0A               ld   a,(bc)
ROM0:0D04 22               ldi  (hl),a
ROM0:0D05 0C               inc  c
ROM0:0D06 0A               ld   a,(bc)
ROM0:0D07 22               ldi  (hl),a
ROM0:0D08 0C               inc  c
ROM0:0D09 0A               ld   a,(bc)
ROM0:0D0A 22               ldi  (hl),a
ROM0:0D0B 0C               inc  c
ROM0:0D0C 0A               ld   a,(bc)
ROM0:0D0D 22               ldi  (hl),a
ROM0:0D0E 0C               inc  c
ROM0:0D0F 0A               ld   a,(bc)
ROM0:0D10 22               ldi  (hl),a
ROM0:0D11 0C               inc  c
ROM0:0D12 0A               ld   a,(bc)
ROM0:0D13 22               ldi  (hl),a
ROM0:0D14 0C               inc  c
ROM0:0D15 0A               ld   a,(bc)
ROM0:0D16 22               ldi  (hl),a
ROM0:0D17 0C               inc  c
ROM0:0D18 0A               ld   a,(bc)
ROM0:0D19 22               ldi  (hl),a
ROM0:0D1A 0C               inc  c
ROM0:0D1B 0A               ld   a,(bc)
ROM0:0D1C 22               ldi  (hl),a
ROM0:0D1D 0C               inc  c
ROM0:0D1E 0A               ld   a,(bc)
ROM0:0D1F 22               ldi  (hl),a
ROM0:0D20 0C               inc  c
ROM0:0D21 0A               ld   a,(bc)
ROM0:0D22 22               ldi  (hl),a
ROM0:0D23 0C               inc  c
ROM0:0D24 0A               ld   a,(bc)
ROM0:0D25 22               ldi  (hl),a
ROM0:0D26 0C               inc  c
ROM0:0D27 0A               ld   a,(bc)
ROM0:0D28 22               ldi  (hl),a
ROM0:0D29 0C               inc  c
ROM0:0D2A 0A               ld   a,(bc)
ROM0:0D2B 22               ldi  (hl),a
ROM0:0D2C 0C               inc  c
ROM0:0D2D 0A               ld   a,(bc)
ROM0:0D2E 22               ldi  (hl),a
ROM0:0D2F 0C               inc  c
ROM0:0D30 0A               ld   a,(bc)
ROM0:0D31 22               ldi  (hl),a
ROM0:0D32 0C               inc  c
ROM0:0D33 0A               ld   a,(bc)
ROM0:0D34 22               ldi  (hl),a
ROM0:0D35 0C               inc  c
ROM0:0D36 0A               ld   a,(bc)
ROM0:0D37 22               ldi  (hl),a
ROM0:0D38 0C               inc  c
ROM0:0D39 0A               ld   a,(bc)
ROM0:0D3A 22               ldi  (hl),a
ROM0:0D3B 0C               inc  c
ROM0:0D3C 0A               ld   a,(bc)
ROM0:0D3D 22               ldi  (hl),a
ROM0:0D3E 0C               inc  c
ROM0:0D3F 0A               ld   a,(bc)
ROM0:0D40 22               ldi  (hl),a
ROM0:0D41 0C               inc  c
ROM0:0D42 0A               ld   a,(bc)
ROM0:0D43 22               ldi  (hl),a
ROM0:0D44 0C               inc  c
ROM0:0D45 0A               ld   a,(bc)
ROM0:0D46 22               ldi  (hl),a
ROM0:0D47 0C               inc  c
ROM0:0D48 0A               ld   a,(bc)
ROM0:0D49 22               ldi  (hl),a
ROM0:0D4A 0C               inc  c
ROM0:0D4B 0A               ld   a,(bc)
ROM0:0D4C 22               ldi  (hl),a
ROM0:0D4D 0C               inc  c
ROM0:0D4E 0A               ld   a,(bc)
ROM0:0D4F 22               ldi  (hl),a
ROM0:0D50 0C               inc  c
ROM0:0D51 0A               ld   a,(bc)
ROM0:0D52 22               ldi  (hl),a
ROM0:0D53 0C               inc  c
ROM0:0D54 0A               ld   a,(bc)
ROM0:0D55 22               ldi  (hl),a
ROM0:0D56 0C               inc  c
ROM0:0D57 0A               ld   a,(bc)
ROM0:0D58 22               ldi  (hl),a
ROM0:0D59 0C               inc  c
ROM0:0D5A 0A               ld   a,(bc)
ROM0:0D5B 22               ldi  (hl),a
ROM0:0D5C 0C               inc  c
ROM0:0D5D 0A               ld   a,(bc)
ROM0:0D5E 22               ldi  (hl),a
ROM0:0D5F 0C               inc  c
ROM0:0D60 0A               ld   a,(bc)
ROM0:0D61 22               ldi  (hl),a
ROM0:0D62 0C               inc  c
ROM0:0D63 0A               ld   a,(bc)
ROM0:0D64 22               ldi  (hl),a
ROM0:0D65 0C               inc  c
ROM0:0D66 0A               ld   a,(bc)
ROM0:0D67 22               ldi  (hl),a
ROM0:0D68 0C               inc  c
ROM0:0D69 0A               ld   a,(bc)
ROM0:0D6A 22               ldi  (hl),a
ROM0:0D6B 0C               inc  c
ROM0:0D6C 0A               ld   a,(bc)
ROM0:0D6D 22               ldi  (hl),a
ROM0:0D6E 0C               inc  c
ROM0:0D6F 0A               ld   a,(bc)
ROM0:0D70 22               ldi  (hl),a
ROM0:0D71 0C               inc  c
ROM0:0D72 0A               ld   a,(bc)
ROM0:0D73 22               ldi  (hl),a
ROM0:0D74 0C               inc  c
ROM0:0D75 0A               ld   a,(bc)
ROM0:0D76 22               ldi  (hl),a
ROM0:0D77 0C               inc  c
ROM0:0D78 0A               ld   a,(bc)
ROM0:0D79 22               ldi  (hl),a
ROM0:0D7A 0C               inc  c
ROM0:0D7B 0A               ld   a,(bc)
ROM0:0D7C 22               ldi  (hl),a
ROM0:0D7D 0C               inc  c
ROM0:0D7E 0A               ld   a,(bc)
ROM0:0D7F 22               ldi  (hl),a
ROM0:0D80 0C               inc  c
ROM0:0D81 0A               ld   a,(bc)
ROM0:0D82 22               ldi  (hl),a
ROM0:0D83 0C               inc  c
ROM0:0D84 0A               ld   a,(bc)
ROM0:0D85 22               ldi  (hl),a
ROM0:0D86 0C               inc  c
ROM0:0D87 0A               ld   a,(bc)
ROM0:0D88 22               ldi  (hl),a
ROM0:0D89 0C               inc  c
ROM0:0D8A 0A               ld   a,(bc)
ROM0:0D8B 22               ldi  (hl),a
ROM0:0D8C 0C               inc  c
ROM0:0D8D 0A               ld   a,(bc)
ROM0:0D8E 22               ldi  (hl),a
ROM0:0D8F 0C               inc  c
ROM0:0D90 0A               ld   a,(bc)
ROM0:0D91 22               ldi  (hl),a
ROM0:0D92 0C               inc  c
ROM0:0D93 0A               ld   a,(bc)
ROM0:0D94 22               ldi  (hl),a
ROM0:0D95 0C               inc  c
ROM0:0D96 0A               ld   a,(bc)
ROM0:0D97 22               ldi  (hl),a
ROM0:0D98 0C               inc  c
ROM0:0D99 0A               ld   a,(bc)
ROM0:0D9A 22               ldi  (hl),a
ROM0:0D9B 0C               inc  c
ROM0:0D9C 0A               ld   a,(bc)
ROM0:0D9D 22               ldi  (hl),a
ROM0:0D9E 0C               inc  c
ROM0:0D9F 0A               ld   a,(bc)
ROM0:0DA0 22               ldi  (hl),a
ROM0:0DA1 0C               inc  c
ROM0:0DA2 0A               ld   a,(bc)
ROM0:0DA3 22               ldi  (hl),a
ROM0:0DA4 0C               inc  c
ROM0:0DA5 0A               ld   a,(bc)
ROM0:0DA6 22               ldi  (hl),a
ROM0:0DA7 0C               inc  c
ROM0:0DA8 0A               ld   a,(bc)
ROM0:0DA9 22               ldi  (hl),a
ROM0:0DAA 0C               inc  c
ROM0:0DAB 0A               ld   a,(bc)
ROM0:0DAC 22               ldi  (hl),a
ROM0:0DAD 0C               inc  c
ROM0:0DAE 0A               ld   a,(bc)
ROM0:0DAF 22               ldi  (hl),a
ROM0:0DB0 0C               inc  c
ROM0:0DB1 0A               ld   a,(bc)
ROM0:0DB2 22               ldi  (hl),a
ROM0:0DB3 0C               inc  c
ROM0:0DB4 0A               ld   a,(bc)
ROM0:0DB5 22               ldi  (hl),a
ROM0:0DB6 0C               inc  c
ROM0:0DB7 0A               ld   a,(bc)
ROM0:0DB8 22               ldi  (hl),a
ROM0:0DB9 0C               inc  c
ROM0:0DBA 0A               ld   a,(bc)
ROM0:0DBB 22               ldi  (hl),a
ROM0:0DBC 0C               inc  c
ROM0:0DBD 0A               ld   a,(bc)
ROM0:0DBE 22               ldi  (hl),a
ROM0:0DBF 0C               inc  c
ROM0:0DC0 0A               ld   a,(bc)
ROM0:0DC1 22               ldi  (hl),a
ROM0:0DC2 0C               inc  c
ROM0:0DC3 0A               ld   a,(bc)
ROM0:0DC4 22               ldi  (hl),a
ROM0:0DC5 0C               inc  c
ROM0:0DC6 0A               ld   a,(bc)
ROM0:0DC7 22               ldi  (hl),a
ROM0:0DC8 0C               inc  c
ROM0:0DC9 0A               ld   a,(bc)
ROM0:0DCA 22               ldi  (hl),a
ROM0:0DCB 0C               inc  c
ROM0:0DCC 0A               ld   a,(bc)
ROM0:0DCD 22               ldi  (hl),a
ROM0:0DCE 0C               inc  c
ROM0:0DCF 0A               ld   a,(bc)
ROM0:0DD0 22               ldi  (hl),a
ROM0:0DD1 0C               inc  c
ROM0:0DD2 0A               ld   a,(bc)
ROM0:0DD3 22               ldi  (hl),a
ROM0:0DD4 0C               inc  c
ROM0:0DD5 0A               ld   a,(bc)
ROM0:0DD6 22               ldi  (hl),a
ROM0:0DD7 0C               inc  c
ROM0:0DD8 0A               ld   a,(bc)
ROM0:0DD9 22               ldi  (hl),a
ROM0:0DDA 0C               inc  c
ROM0:0DDB 0A               ld   a,(bc)
ROM0:0DDC 22               ldi  (hl),a
ROM0:0DDD 0C               inc  c
ROM0:0DDE 0A               ld   a,(bc)
ROM0:0DDF 22               ldi  (hl),a
ROM0:0DE0 0C               inc  c
ROM0:0DE1 0A               ld   a,(bc)
ROM0:0DE2 22               ldi  (hl),a
ROM0:0DE3 0C               inc  c
ROM0:0DE4 0A               ld   a,(bc)
ROM0:0DE5 22               ldi  (hl),a
ROM0:0DE6 0C               inc  c
ROM0:0DE7 0A               ld   a,(bc)
ROM0:0DE8 22               ldi  (hl),a
ROM0:0DE9 0C               inc  c
ROM0:0DEA 0A               ld   a,(bc)
ROM0:0DEB 22               ldi  (hl),a
ROM0:0DEC 0C               inc  c
ROM0:0DED 0A               ld   a,(bc)
ROM0:0DEE 22               ldi  (hl),a
ROM0:0DEF 0C               inc  c
ROM0:0DF0 0A               ld   a,(bc)
ROM0:0DF1 22               ldi  (hl),a
ROM0:0DF2 0C               inc  c
ROM0:0DF3 0A               ld   a,(bc)
ROM0:0DF4 22               ldi  (hl),a
ROM0:0DF5 0C               inc  c
ROM0:0DF6 0A               ld   a,(bc)
ROM0:0DF7 22               ldi  (hl),a
ROM0:0DF8 0C               inc  c
ROM0:0DF9 0A               ld   a,(bc)
ROM0:0DFA 6F               ld   l,a
ROM0:0DFB 0C               inc  c
ROM0:0DFC 0A               ld   a,(bc)
ROM0:0DFD 67               ld   h,a
ROM0:0DFE 0C               inc  c
ROM0:0DFF 0A               ld   a,(bc)
ROM0:0E00 22               ldi  (hl),a
ROM0:0E01 0C               inc  c
ROM0:0E02 0A               ld   a,(bc)
ROM0:0E03 22               ldi  (hl),a
ROM0:0E04 0C               inc  c
ROM0:0E05 0A               ld   a,(bc)
ROM0:0E06 22               ldi  (hl),a
ROM0:0E07 0C               inc  c
ROM0:0E08 0A               ld   a,(bc)
ROM0:0E09 22               ldi  (hl),a
ROM0:0E0A 0C               inc  c
ROM0:0E0B 0A               ld   a,(bc)
ROM0:0E0C 22               ldi  (hl),a
ROM0:0E0D 0C               inc  c
ROM0:0E0E 0A               ld   a,(bc)
ROM0:0E0F 22               ldi  (hl),a
ROM0:0E10 0C               inc  c
ROM0:0E11 0A               ld   a,(bc)
ROM0:0E12 22               ldi  (hl),a
ROM0:0E13 0C               inc  c
ROM0:0E14 0A               ld   a,(bc)
ROM0:0E15 22               ldi  (hl),a
ROM0:0E16 0C               inc  c
ROM0:0E17 3E 00            ld   a,00
ROM0:0E19 EA AF C5         ld   (C5AF),a
ROM0:0E1C 3E 01            ld   a,01
ROM0:0E1E EA AC C5         ld   (C5AC),a
ROM0:0E21 CD B4 04         call 04B4
ROM0:0E24 D1               pop  de
ROM0:0E25 C1               pop  bc
ROM0:0E26 E1               pop  hl
ROM0:0E27 F1               pop  af
ROM0:0E28 D9               reti

Display 1

Display graphics interrupt

ROM0:0E29 21 00 C1         ld   hl,C100
ROM0:0E2C 0E 40            ld   c,40
ROM0:0E2E 06 00            ld   b,00
ROM0:0E30 78               ld   a,b
ROM0:0E31 E0 68            ld   (ff00+68),a
ROM0:0E33 2A               ldi  a,(hl)
ROM0:0E34 E0 69            ld   (ff00+69),a
ROM0:0E36 04               inc  b
ROM0:0E37 0D               dec  c
ROM0:0E38 20 F6            jr   nz,0E30
ROM0:0E3A 0E 40            ld   c,40
ROM0:0E3C 06 00            ld   b,00
ROM0:0E3E 78               ld   a,b
ROM0:0E3F E0 6A            ld   (ff00+6A),a
ROM0:0E41 2A               ldi  a,(hl)
ROM0:0E42 E0 6B            ld   (ff00+6B),a
ROM0:0E44 04               inc  b
ROM0:0E45 0D               dec  c
ROM0:0E46 20 F6            jr   nz,0E3E
ROM0:0E48 3E 00            ld   a,00
ROM0:0E4A EA AF C5         ld   (C5AF),a       ;OAM pointer offset
ROM0:0E4D 3E 01            ld   a,01
ROM0:0E4F EA AC C5         ld   (C5AC),a       ;Indicates the game is loading graphics
ROM0:0E52 CD B4 04         call 04B4
ROM0:0E55 D1               pop  de
ROM0:0E56 C1               pop  bc
ROM0:0E57 E1               pop  hl
ROM0:0E58 F1               pop  af
ROM0:0E59 D9               reti 

High Speed DMA

ROM0:0EAD FA B0 C5         ld   a,(C5B0)
ROM0:0EB0 E0 51            ld   (ff00+51),a	;HDMA src hi
ROM0:0EB2 FA B1 C5         ld   a,(C5B1)
ROM0:0EB5 E0 52            ld   (ff00+52),a	;HDMA src low
ROM0:0EB7 FA B2 C5         ld   a,(C5B2)
ROM0:0EBA E0 53            ld   (ff00+53),a	;HDMA dest hi
ROM0:0EBC FA B3 C5         ld   a,(C5B3)
ROM0:0EBF E0 54            ld   (ff00+54),a	;HDMA dest low
ROM0:0EC1 FA B4 C5         ld   a,(C5B4)
ROM0:0EC4 E0 55            ld   (ff00+55),a	;HDMA count
ROM0:0EC6 3E 00            ld   a,00
ROM0:0EC8 EA AF C5         ld   (C5AF),a       ;OAM pointer offset
ROM0:0ECB 3E 01            ld   a,01
ROM0:0ECD EA AC C5         ld   (C5AC),a	;Indicates the game is loading graphics
ROM0:0ED0 CD B4 04         call 04B4
ROM0:0ED3 D1               pop  de
ROM0:0ED4 C1               pop  bc
ROM0:0ED5 E1               pop  hl
ROM0:0ED6 F1               pop  af
ROM0:0ED7 D9               reti

0:0ED8 (Sets (C5AE) and (C5AF) to 0)

ROM0:0ED8 F5               push af
ROM0:0ED9 3E 00            ld   a,00
ROM0:0EDB EA AE C5         ld   (C5AE),a
ROM0:0EDE EA AF C5         ld   (C5AF),a
ROM0:0EE1 F1               pop  af
ROM0:0EE2 C9               ret

0:0EE3

  • 0xEE3-0xEFF - Related to display
ROM0:0EE3 F5               push af
ROM0:0EE4 C5               push bc
ROM0:0EE5 E5               push hl
ROM0:0EE6 EA AE C5         ld   (C5AE),a	;(C5AE) is used to manage display.
ROM0:0EE9 4F               ld   c,a
ROM0:0EEA 06 00            ld   b,00
ROM0:0EEC 21 00 0F         ld   hl,0F00
ROM0:0EEF 09               add  hl,bc
ROM0:0EF0 2A               ldi  a,(hl)
ROM0:0EF1 66               ld   h,(hl)
ROM0:0EF2 6F               ld   l,a
ROM0:0EF3 01 F8 0E         ld   bc,0EF8
ROM0:0EF6 C5               push bc
ROM0:0EF7 E9               jp   hl
ROM0:0EF8 AF               xor  a
ROM0:0EF9 EA AD C5         ld   (C5AD),a	;Sets (C5AD) to 0. Used to manage display.
ROM0:0EFC E1               pop  hl
ROM0:0EFD C1               pop  bc
ROM0:0EFE F1               pop  af
ROM0:0EFF C9               ret  

0:0F00 (Display functions pointers array)

  • 0xF00-0xF1F - Pointers related to display, read by function 0:0EE3
20 0F - ret
20 0F - ret
20 0F - ret
21 0F
20 0F
46 0F
A3 0F
C0 0F
25 10
52 10
87 10
20 0F - ret
20 0F - ret
A4 10
A5 10
B2 10

ret (called by 0:0EE3)

ROM0:0F20 C9               ret

0:0F21

ROM0:0F21 F5               push af
ROM0:0F22 E5               push hl
ROM0:0F23 21 00 C1         ld   hl,C100
ROM0:0F26 3E 02            ld   a,02
ROM0:0F28 22               ldi  (hl),a
ROM0:0F29 36 C1            ld   (hl),C1
ROM0:0F2B 21 16 C1         ld   hl,C116
ROM0:0F2E 3E 18            ld   a,18
ROM0:0F30 22               ldi  (hl),a
ROM0:0F31 36 C1            ld   (hl),C1
ROM0:0F33 21 2C C1         ld   hl,C12C
ROM0:0F36 3E 2E            ld   a,2E
ROM0:0F38 22               ldi  (hl),a
ROM0:0F39 36 C1            ld   (hl),C1
ROM0:0F3B 21 42 C1         ld   hl,C142
ROM0:0F3E 3E 42            ld   a,42
ROM0:0F40 22               ldi  (hl),a
ROM0:0F41 36 C1            ld   (hl),C1
ROM0:0F43 E1               pop  hl
ROM0:0F44 F1               pop  af
ROM0:0F45 C9               ret

0:10C1 (Call subroutine waiting for graphics update interrupt to happen and to resolve. Display: (C5AF) = (C5AE), then (C5AE) = 0)

  • 0x10C1-0x10D1 - Related to display
ROM0:10C1 F5               push af
ROM0:10C2 FA AE C5         ld   a,(C5AE)
ROM0:10C5 EA AF C5         ld   (C5AF),a
ROM0:10C8 3E 00            ld   a,00
ROM0:10CA EA AE C5         ld   (C5AE),a
ROM0:10CD CD 4B 11         call 114B            ;Loops until RAM address 0xC5AC is non-zero. It hangs the program until the graphics on screen are updated.
ROM0:10D0 F1               pop  af
ROM0:10D1 C9               ret

0:10D2

  • 0x10D2-0x1103 - Related to display
ROM0:10D2 F5               push af
ROM0:10D3 E5               push hl
ROM0:10D4 FA AE C5         ld   a,(C5AE)
ROM0:10D7 FE 1A            cp   a,1A
ROM0:10D9 20 0A            jr   nz,10E5
ROM0:10DB 78               ld   a,b
ROM0:10DC EA B2 C5         ld   (C5B2),a
ROM0:10DF 79               ld   a,c
ROM0:10E0 EA B3 C5         ld   (C5B3),a
ROM0:10E3 18 1C            jr   1101
ROM0:10E5 FE 1E            cp   a,1E
ROM0:10E7 20 0A            jr   nz,10F3
ROM0:10E9 78               ld   a,b
ROM0:10EA EA B2 C5         ld   (C5B2),a
ROM0:10ED 79               ld   a,c
ROM0:10EE EA B3 C5         ld   (C5B3),a
ROM0:10F1 18 0E            jr   1101
ROM0:10F3 26 C1            ld   h,C1
ROM0:10F5 FA AD C5         ld   a,(C5AD)
ROM0:10F8 6F               ld   l,a
ROM0:10F9 79               ld   a,c
ROM0:10FA 22               ldi  (hl),a
ROM0:10FB 78               ld   a,b
ROM0:10FC 22               ldi  (hl),a
ROM0:10FD 7D               ld   a,l
ROM0:10FE EA AD C5         ld   (C5AD),a
ROM0:1101 E1               pop  hl
ROM0:1102 F1               pop  af
ROM0:1103 C9               ret

Updates characters displayed on screen

  • 0x1113-0x1124 - Used to update the password at (C102), the name entry at (C10C) and various values displayed in battle
ROM0:1113 F5               push af
ROM0:1114 E5               push hl
ROM0:1115 F5               push af
ROM0:1116 26 C1            ld   h,C1
ROM0:1118 FA AD C5         ld   a,(C5AD)
ROM0:111B 6F               ld   l,a
ROM0:111C F1               pop  af
ROM0:111D 22               ldi  (hl),a
ROM0:111E 7D               ld   a,l
ROM0:111F EA AD C5         ld   (C5AD),a
ROM0:1122 E1               pop  hl
ROM0:1123 F1               pop  af
ROM0:1124 C9               ret

Wait for screen graphics to be updated

  • 0x1125-0x1136
ROM0:1125 F5               push af
ROM0:1126 E5               push hl
ROM0:1127 26 C1            ld   h,C1
ROM0:1129 FA AD C5         ld   a,(C5AD)      ;offset to the WRAM display array at (C100)
ROM0:112C 6F               ld   l,a
ROM0:112D CD 1B 02         call 021B
ROM0:1130 7D               ld   a,l
ROM0:1131 EA AD C5         ld   (C5AD),a      ;offset to the WRAM display array at (C100)
ROM0:1134 E1               pop  hl
ROM0:1135 F1               pop  af
ROM0:1136 C9               ret  
  • 0x1137-0x114A
ROM0:1137 F5               push af
ROM0:1138 E5               push hl
ROM0:1139 21 00 C1         ld   hl,C100       ;WRAM display array
ROM0:113C CD 1B 02         call 021B
ROM0:113F CD 1B 02         call 021B
ROM0:1142 CD 1B 02         call 021B
ROM0:1145 CD 1B 02         call 021B
ROM0:1148 E1               pop  hl
ROM0:1149 F1               pop  af
ROM0:114A C9               ret  
  • 0x114B-0x1157 - Loops until RAM address 0xC5AC is non-zero. It hangs the program until the graphics on screen are updated.
ROM0:114B F5               push af
ROM0:114C AF               xor  a
ROM0:114D EA AC C5         ld   (C5AC),a	;Sets RAM 0xC5AC to 0
ROM0:1150 FA AC C5         ld   a,(C5AC)	;Loads RAM 0xC5AC in accumulator
ROM0:1153 B7               or   a
ROM0:1154 28 FA            jr   z,1150		;Loops until (C5AC)!=0
ROM0:1156 F1               pop  af
ROM0:1157 C9               ret  
  • 0x1158-0x1164 - Calls 10 times the function "wait for graphics being updated"
ROM0:1158 F5               push af
ROM0:1159 C5               push bc
ROM0:115A 0E 0A            ld   c,0A
ROM0:115C CD 4B 11         call 114B
ROM0:115F 0D               dec  c
ROM0:1160 20 FA            jr   nz,115C		;Loops until function 0x114B has been called 10 times
ROM0:1162 C1               pop  bc
ROM0:1163 F1               pop  af
ROM0:1164 C9               ret

0:1165

ROM0:1165 F5               push af
ROM0:1166 E5               push hl
ROM0:1167 AF               xor  a
ROM0:1168 EA B5 C5         ld   (C5B5),a
ROM0:116B EA B6 C5         ld   (C5B6),a
ROM0:116E EA B7 C5         ld   (C5B7),a
ROM0:1171 CD 85 11         call 1185
ROM0:1174 FE 01            cp   a,01
ROM0:1176 28 06            jr   z,117E
ROM0:1178 FA A2 C5         ld   a,(C5A2)
ROM0:117B B7               or   a
ROM0:117C 28 F3            jr   z,1171
ROM0:117E AF               xor  a
ROM0:117F EA A2 C5         ld   (C5A2),a
ROM0:1182 E1               pop  hl
ROM0:1183 F1               pop  af
ROM0:1184 C9               ret  

0:1185

ROM0:1185 FA B5 C5         ld   a,(C5B5)
ROM0:1188 C6 01            add  a,01
ROM0:118A EA B5 C5         ld   (C5B5),a
ROM0:118D FA B6 C5         ld   a,(C5B6)
ROM0:1190 CE 00            adc  a,00
ROM0:1192 EA B6 C5         ld   (C5B6),a
ROM0:1195 FE FF            cp   a,FF
ROM0:1197 20 07            jr   nz,11A0
ROM0:1199 CD F6 1B         call 1BF6		;(C7AD) | 2
ROM0:119C 3E 01            ld   a,01
ROM0:119E 18 01            jr   11A1
ROM0:11A0 AF               xor  a
ROM0:11A1 C9               ret

rst 08 instructions

  • 0x11A2-0x11D7 - rst 08 jumps here: ROM Bank switch, load pointer to next instructions
ROM0:11A2 F5               push af
ROM0:11A3 E8 FD            add  sp,FD
ROM0:11A5 F5               push af
ROM0:11A6 E5               push hl
ROM0:11A7 C5               push bc
ROM0:11A8 D5               push de
ROM0:11A9 F8 06            ld   hl,sp+06
ROM0:11AB 54               ld   d,h
ROM0:11AC 5D               ld   e,l
ROM0:11AD F8 0E            ld   hl,sp+0E
ROM0:11AF 3A               ldd  a,(hl)
ROM0:11B0 47               ld   b,a
ROM0:11B1 3A               ldd  a,(hl)
ROM0:11B2 4F               ld   c,a
ROM0:11B3 FA 00 40         ld   a,(4000)          ;ROM Bank
ROM0:11B6 32               ldd  (hl),a
ROM0:11B7 7E               ld   a,(hl)
ROM0:11B8 12               ld   (de),a
ROM0:11B9 3E 11            ld   a,11
ROM0:11BB 32               ldd  (hl),a
ROM0:11BC 3E D8            ld   a,D8
ROM0:11BE 32               ldd  (hl),a
ROM0:11BF 0A               ld   a,(bc)
ROM0:11C0 5F               ld   e,a
ROM0:11C1 03               inc  bc
ROM0:11C2 16 40            ld   d,40
ROM0:11C4 0A               ld   a,(bc)
ROM0:11C5 03               inc  bc
ROM0:11C6 EA 00 20         ld   (2000),a          ;ROM Bank switch 
ROM0:11C9 1A               ld   a,(de)
ROM0:11CA 32               ldd  (hl),a
ROM0:11CB 1D               dec  e
ROM0:11CC 1A               ld   a,(de)
ROM0:11CD 77               ld   (hl),a
ROM0:11CE F8 0D            ld   hl,sp+0D
ROM0:11D0 79               ld   a,c
ROM0:11D1 22               ldi  (hl),a
ROM0:11D2 70               ld   (hl),b
ROM0:11D3 D1               pop  de
ROM0:11D4 C1               pop  bc
ROM0:11D5 E1               pop  hl
ROM0:11D6 F1               pop  af
ROM0:11D7 C9               ret

0:11D8 (next instructions)

ROM0:11D8 F5               push af
ROM0:11D9 E5               push hl
ROM0:11DA C5               push bc
ROM0:11DB F8 06            ld   hl,sp+06
ROM0:11DD 7E               ld   a,(hl)
ROM0:11DE EA 00 20         ld   (2000),a	;ROM Bank switch 
ROM0:11E1 44               ld   b,h
ROM0:11E2 4D               ld   c,l
ROM0:11E3 0B               dec  bc
ROM0:11E4 0A               ld   a,(bc)
ROM0:11E5 32               ldd  (hl),a
ROM0:11E6 0B               dec  bc
ROM0:11E7 0A               ld   a,(bc)
ROM0:11E8 77               ld   (hl),a
ROM0:11E9 C1               pop  bc
ROM0:11EA E1               pop  hl
ROM0:11EB E8 01            add  sp,01
ROM0:11ED F1               pop  af
ROM0:11EE C9               ret

Banks and Interrupts handling

Initialize Banks

ROM0:11EF F5               push af
ROM0:11F0 3E 01            ld   a,01
ROM0:11F2 EA 00 20         ld   (2000),a         ;ROM Bank = 1
ROM0:11F5 AF               xor  a
ROM0:11F6 EA 00 30         ld   (3000),a         ;ROM Bank (High) = 0
ROM0:11F9 EA 00 40         ld   (4000),a         ;RAM Bank = 0
ROM0:11FC E0 4F            ld   (ff00+4F),a      ;VRAM Bank = 0
ROM0:11FE F1               pop  af
ROM0:11FF C9               ret  

ROM Bank switch

  • 0x1200-0x1203 - ROM Bank switch
ROM0:1200 EA 00 20         ld   (2000),a
ROM0:1203 C9               ret
  • 0x1205-0x1210 - ROM Bank switch, two bytes
ROM0:1205 F3               di   
ROM0:1206 79               ld   a,c
ROM0:1207 EA 00 20         ld   (2000),a         ;Low
ROM0:120A 78               ld   a,b
ROM0:120B EA 00 30         ld   (3000),a         ;High
ROM0:120E FB               ei   
ROM0:120F F1               pop  af
ROM0:1210 C9               ret

VRAM Bank switch

  • 0x1211-0x1216 - VRAM bank 0
ROM0:1211 F5               push af
ROM0:1212 AF               xor  a
ROM0:1213 E0 4F            ld   (ff00+4F),a
ROM0:1215 F1               pop  af
ROM0:1216 C9               ret  
  • 0x1211-0x1216 - VRAM bank 1
ROM0:1217 F5               push af
ROM0:1218 3E 01            ld   a,01
ROM0:121A E0 4F            ld   (ff00+4F),a
ROM0:121C F1               pop  af
ROM0:121D C9               ret  
  • 0x121E-0x1223 - VRAM bank 0 (initialize)
ROM0:121E F5               push af
ROM0:121F AF               xor  a
ROM0:1220 E0 4F            ld   (ff00+4F),a
ROM0:1222 F1               pop  af
ROM0:1223 C9               ret

WRAM Bank switch

  • 0x1224-0x1247 - WRAM Bank switch
ROM0:1224 F5               push af
ROM0:1225 E8 FF            add  sp,FF
ROM0:1227 E5               push hl
ROM0:1228 C5               push bc
ROM0:1229 D5               push de
ROM0:122A 4F               ld   c,a
ROM0:122B F8 06            ld   hl,sp+06
ROM0:122D 54               ld   d,h
ROM0:122E 5D               ld   e,l
ROM0:122F F8 07            ld   hl,sp+07
ROM0:1231 2A               ldi  a,(hl)
ROM0:1232 12               ld   (de),a
ROM0:1233 13               inc  de
ROM0:1234 2A               ldi  a,(hl)
ROM0:1235 12               ld   (de),a
ROM0:1236 13               inc  de
ROM0:1237 2A               ldi  a,(hl)
ROM0:1238 12               ld   (de),a
ROM0:1239 13               inc  de
ROM0:123A 2A               ldi  a,(hl)
ROM0:123B 12               ld   (de),a
ROM0:123C 13               inc  de
ROM0:123D F0 70            ld   a,(ff00+70)
ROM0:123F 12               ld   (de),a
ROM0:1240 79               ld   a,c
ROM0:1241 E0 70            ld   (ff00+70),a         ;SVBK
ROM0:1243 D1               pop  de
ROM0:1244 C1               pop  bc
ROM0:1245 E1               pop  hl
ROM0:1246 F1               pop  af
ROM0:1247 C9               ret  

WRAM Bank restore

  • 0x1248-0x1263 - WRAM Bank restore
ROM0:1248 F5               push af
ROM0:1249 E5               push hl
ROM0:124A C5               push bc
ROM0:124B F8 08            ld   hl,sp+08
ROM0:124D 7E               ld   a,(hl)
ROM0:124E E0 70            ld   (ff00+70),a         ;SVBK
ROM0:1250 44               ld   b,h
ROM0:1251 4D               ld   c,l
ROM0:1252 0B               dec  bc
ROM0:1253 0A               ld   a,(bc)
ROM0:1254 32               ldd  (hl),a
ROM0:1255 0B               dec  bc
ROM0:1256 0A               ld   a,(bc)
ROM0:1257 32               ldd  (hl),a
ROM0:1258 0B               dec  bc
ROM0:1259 0A               ld   a,(bc)
ROM0:125A 32               ldd  (hl),a
ROM0:125B 0B               dec  bc
ROM0:125C 0A               ld   a,(bc)
ROM0:125D 32               ldd  (hl),a
ROM0:125E C1               pop  bc
ROM0:125F E1               pop  hl
ROM0:1260 E8 01            add  sp,01
ROM0:1262 F1               pop  af
ROM0:1263 C9               ret

Video Display switches

LCD Display Disable
  • 0x1264-0x1277 - LCD Display Disable
ROM0:1264 F5               push af
ROM0:1265 E5               push hl
ROM0:1266 21 40 FF         ld   hl,FF40
ROM0:1269 CB 7E            bit  7,(hl)		;Test the LCD Display
ROM0:126B 28 08            jr   z,1275		;If the LCD Display is already OFF, get out of this function
ROM0:126D F0 44            ld   a,(ff00+44)
ROM0:126F FE 92            cp   a,92
ROM0:1271 38 FA            jr   c,126D		;Loop until VBlank + 2
ROM0:1273 CB BE            res  7,(hl)		;LCD Display Disable
ROM0:1275 E1               pop  hl
ROM0:1276 F1               pop  af
ROM0:1277 C9               ret
LCD Display Enable
  • 0x1278-0x1281 - LCD Display Enable
ROM0:1278 F5               push af
ROM0:1279 E5               push hl
ROM0:127A 21 40 FF         ld   hl,FF40
ROM0:127D CB FE            set  7,(hl)		;LCD Display Enable
ROM0:127F E1               pop  hl
ROM0:1280 F1               pop  af
ROM0:1281 C9               ret
LCD Control
  • 0x1282-0x129D -
ROM0:1282 F5               push af
ROM0:1283 C5               push bc
ROM0:1284 D5               push de
ROM0:1285 E5               push hl
ROM0:1286 0E 40            ld   c,40
ROM0:1288 11 F0 F5         ld   de,F5F0
ROM0:128B 06 0C            ld   b,0C
ROM0:128D CB 23            sla  e
ROM0:128F CB 12            rl   d
ROM0:1291 30 02            jr   nc,1295
ROM0:1293 2A               ldi  a,(hl)
ROM0:1294 E2               ld   (ff00+c),a         ;hFF40: LCD Control
ROM0:1295 0C               inc  c
ROM0:1296 05               dec  b
ROM0:1297 20 F4            jr   nz,128D
ROM0:1299 E1               pop  hl
ROM0:129A D1               pop  de
ROM0:129B C1               pop  bc
ROM0:129C F1               pop  af
ROM0:129D C9               ret
Wait for VBlank
ROM0:129E F5               push af
ROM0:129F F0 44            ld   a,(ff00+44)        ;LY
ROM0:12A1 FE 90            cp   a,90
ROM0:12A3 38 FA            jr   c,129F             ;Loop until VBlank start
ROM0:12A5 F0 44            ld   a,(ff00+44)
ROM0:12A7 FE 00            cp   a,00
ROM0:12A9 20 FA            jr   nz,12A5            ;Loop until VBlank end
ROM0:12AB F1               pop  af
ROM0:12AC C9               ret  
LCD Control - OBJ Display Enable
ROM0:12AD E5               push hl
ROM0:12AE 21 40 FF         ld   hl,FF40
ROM0:12B1 CB CE            set  1,(hl)             ;LCD Control - OBJ Display Enable
ROM0:12B3 E1               pop  hl
ROM0:12B4 C9               ret  
LCD Control - OBJ Display Disable
ROM0:12B5 E5               push hl
ROM0:12B6 21 40 FF         ld   hl,FF40
ROM0:12B9 CB 8E            res  1,(hl)             ;LCD Control - OBJ Display Disable
ROM0:12BB E1               pop  hl
ROM0:12BC C9               ret

Blanks card illustration

  • 0x12BD-0x12D7 - Fills (C500) to (C59F) to FF FF 00 00.
ROM0:12BD F5               push af
ROM0:12BE C5               push bc
ROM0:12BF E5               push hl
ROM0:12C0 21 00 C5         ld   hl,C500
ROM0:12C3 0E 28            ld   c,28
ROM0:12C5 3E FF            ld   a,FF
ROM0:12C7 22               ldi  (hl),a
ROM0:12C8 3E FF            ld   a,FF
ROM0:12CA 22               ldi  (hl),a
ROM0:12CB 3E 00            ld   a,00
ROM0:12CD 22               ldi  (hl),a
ROM0:12CE 3E 00            ld   a,00
ROM0:12D0 22               ldi  (hl),a
ROM0:12D1 0D               dec  c
ROM0:12D2 20 F1            jr   nz,12C5
ROM0:12D4 E1               pop  hl
ROM0:12D5 C1               pop  bc
ROM0:12D6 F1               pop  af
ROM0:12D7 C9               ret

0:12D8 (Text display ?)

ROM0:12D8 F5               push af
ROM0:12D9 C5               push bc
ROM0:12DA D5               push de
ROM0:12DB E5               push hl
ROM0:12DC 21 00 C5         ld   hl,C500
ROM0:12DF 11 00 FE         ld   de,FE00
ROM0:12E2 0E A0            ld   c,A0
ROM0:12E4 2A               ldi  a,(hl)
ROM0:12E5 12               ld   (de),a
ROM0:12E6 1C               inc  e
ROM0:12E7 0D               dec  c
ROM0:12E8 20 FA            jr   nz,12E4
ROM0:12EA E1               pop  hl
ROM0:12EB D1               pop  de
ROM0:12EC C1               pop  bc
ROM0:12ED F1               pop  af
ROM0:12EE C9               ret

0:12EF

ROM0:12EF F5               push af
ROM0:12F0 C5               push bc
ROM0:12F1 E5               push hl
ROM0:12F2 C5               push bc
ROM0:12F3 CB 21            sla  c
ROM0:12F5 CB 21            sla  c
ROM0:12F7 06 00            ld   b,00
ROM0:12F9 21 00 C5         ld   hl,C500
ROM0:12FC 09               add  hl,bc
ROM0:12FD C1               pop  bc
ROM0:12FE 22               ldi  (hl),a
ROM0:12FF 7A               ld   a,d
ROM0:1300 22               ldi  (hl),a
ROM0:1301 78               ld   a,b
ROM0:1302 22               ldi  (hl),a
ROM0:1303 36 00            ld   (hl),00
ROM0:1305 E1               pop  hl
ROM0:1306 C1               pop  bc
ROM0:1307 F1               pop  af
ROM0:1308 C9               ret  

0:1309

ROM0:1309 F5               push af
ROM0:130A C5               push bc
ROM0:130B D5               push de
ROM0:130C E5               push hl
ROM0:130D 3E B0            ld   a,B0
ROM0:130F EA C4 C6         ld   (C6C4),a
ROM0:1312 3E B0            ld   a,B0
ROM0:1314 EA C3 C6         ld   (C6C3),a
ROM0:1317 21 02 C5         ld   hl,C502
ROM0:131A 3E 00            ld   a,00
ROM0:131C 11 03 00         ld   de,0003
ROM0:131F 01 28 02         ld   bc,0228
ROM0:1322 22               ldi  (hl),a
ROM0:1323 80               add  b
ROM0:1324 36 00            ld   (hl),00
ROM0:1326 19               add  hl,de
ROM0:1327 0D               dec  c
ROM0:1328 20 F8            jr   nz,1322
ROM0:132A CD 57 13         call 1357
ROM0:132D CD D8 12         call 12D8
ROM0:1330 E1               pop  hl
ROM0:1331 D1               pop  de
ROM0:1332 C1               pop  bc
ROM0:1333 F1               pop  af
ROM0:1334 C9               ret  

0:1335

ROM0:1335 CD 3C 13         call 133C
ROM0:1338 CD 57 13         call 1357
ROM0:133B C9               ret  

0:133C

ROM0:133C F5               push af
ROM0:133D C5               push bc
ROM0:133E FA C5 C6         ld   a,(C6C5)
ROM0:1341 47               ld   b,a
ROM0:1342 FA C3 C6         ld   a,(C6C3)
ROM0:1345 80               add  b
ROM0:1346 EA C3 C6         ld   (C6C3),a
ROM0:1349 FA C6 C6         ld   a,(C6C6)
ROM0:134C 47               ld   b,a
ROM0:134D FA C4 C6         ld   a,(C6C4)
ROM0:1350 80               add  b
ROM0:1351 EA C4 C6         ld   (C6C4),a
ROM0:1354 C1               pop  bc
ROM0:1355 F1               pop  af
ROM0:1356 C9               ret  

0:1357

ROM0:1357 F5               push af
ROM0:1358 C5               push bc
ROM0:1359 D5               push de
ROM0:135A E5               push hl
ROM0:135B 21 00 C5         ld   hl,C500
ROM0:135E 16 00            ld   d,00
ROM0:1360 06 05            ld   b,05
ROM0:1362 1E 00            ld   e,00
ROM0:1364 0E 08            ld   c,08
ROM0:1366 FA C3 C6         ld   a,(C6C3)
ROM0:1369 82               add  d
ROM0:136A 22               ldi  (hl),a
ROM0:136B FA C4 C6         ld   a,(C6C4)
ROM0:136E 83               add  e
ROM0:136F 22               ldi  (hl),a
ROM0:1370 23               inc  hl
ROM0:1371 23               inc  hl
ROM0:1372 3E 08            ld   a,08
ROM0:1374 83               add  e
ROM0:1375 5F               ld   e,a
ROM0:1376 0D               dec  c
ROM0:1377 20 ED            jr   nz,1366
ROM0:1379 3E 10            ld   a,10
ROM0:137B 82               add  d
ROM0:137C 57               ld   d,a
ROM0:137D 05               dec  b
ROM0:137E 20 E2            jr   nz,1362
ROM0:1380 E1               pop  hl
ROM0:1381 D1               pop  de
ROM0:1382 C1               pop  bc
ROM0:1383 F1               pop  af
ROM0:1384 C9               ret  

0:1385

ROM0:1385 F5               push af
ROM0:1386 E5               push hl
ROM0:1387 D5               push de
ROM0:1388 16 00            ld   d,00
ROM0:138A CB 23            sla  e
ROM0:138C CB 23            sla  e
ROM0:138E CB 12            rl   d
ROM0:1390 21 00 C5         ld   hl,C500
ROM0:1393 19               add  hl,de
ROM0:1394 D1               pop  de
ROM0:1395 79               ld   a,c
ROM0:1396 22               ldi  (hl),a
ROM0:1397 78               ld   a,b
ROM0:1398 22               ldi  (hl),a
ROM0:1399 7A               ld   a,d
ROM0:139A 22               ldi  (hl),a
ROM0:139B 3E 00            ld   a,00
ROM0:139D 22               ldi  (hl),a
ROM0:139E 79               ld   a,c
ROM0:139F 22               ldi  (hl),a
ROM0:13A0 78               ld   a,b
ROM0:13A1 C6 08            add  a,08
ROM0:13A3 22               ldi  (hl),a
ROM0:13A4 7A               ld   a,d
ROM0:13A5 C6 02            add  a,02
ROM0:13A7 22               ldi  (hl),a
ROM0:13A8 36 00            ld   (hl),00
ROM0:13AA E1               pop  hl
ROM0:13AB F1               pop  af
ROM0:13AC C9               ret  

0:13AD

ROM0:13AD CD BD 12         call 12BD
ROM0:13B0 CD D8 12         call 12D8
ROM0:13B3 C9               ret  

0:13B4

ROM0:13B4 F5               push af
ROM0:13B5 E5               push hl
ROM0:13B6 D5               push de
ROM0:13B7 16 00            ld   d,00
ROM0:13B9 CB 23            sla  e
ROM0:13BB CB 23            sla  e
ROM0:13BD 21 00 C5         ld   hl,C500
ROM0:13C0 19               add  hl,de
ROM0:13C1 D1               pop  de
ROM0:13C2 79               ld   a,c
ROM0:13C3 22               ldi  (hl),a
ROM0:13C4 78               ld   a,b
ROM0:13C5 22               ldi  (hl),a
ROM0:13C6 7A               ld   a,d
ROM0:13C7 22               ldi  (hl),a
ROM0:13C8 3E 00            ld   a,00
ROM0:13CA 22               ldi  (hl),a
ROM0:13CB 79               ld   a,c
ROM0:13CC 22               ldi  (hl),a
ROM0:13CD 78               ld   a,b
ROM0:13CE C6 08            add  a,08
ROM0:13D0 22               ldi  (hl),a
ROM0:13D1 7A               ld   a,d
ROM0:13D2 C6 02            add  a,02
ROM0:13D4 22               ldi  (hl),a
ROM0:13D5 36 00            ld   (hl),00
ROM0:13D7 E1               pop  hl
ROM0:13D8 F1               pop  af
ROM0:13D9 C9               ret

Alternate PRNG

  • 0x13DA-0x13F0 - Alternate PRNG, used for example by Construction Cards
ROM0:13DA F5               push af
ROM0:13DB C5               push bc
ROM0:13DC 1E 00            ld   e,00
ROM0:13DE 0E 08            ld   c,08
ROM0:13E0 CB 22            sla  d		;d << 1
ROM0:13E2 CB 13            rl   e
ROM0:13E4 7B               ld   a,e		;a = ((lsb(d) << 8) | (e >> 1)); d = ((lsb(e) << 8) | (d >> 1))
ROM0:13E5 B8               cp   b
ROM0:13E6 38 03            jr   c,13EB		;If(a < b), jump to 0:13EB
ROM0:13E8 90               sub  b
ROM0:13E9 5F               ld   e,a
ROM0:13EA 14               inc  d		;Else e = a - b; d++
ROM0:13EB 0D               dec  c
ROM0:13EC 20 F2            jr   nz,13E0		;Loop 8 times
ROM0:13EE C1               pop  bc
ROM0:13EF F1               pop  af
ROM0:13F0 C9               ret

Division

  • 0x1432-0x1467 - Divides register de by register bc, returns result in register de
ROM0:1432 F5               push af
ROM0:1433 C5               push bc
ROM0:1434 E5               push hl
ROM0:1435 21 00 00         ld   hl,0000
ROM0:1438 3E 10            ld   a,10		;Loop counter
ROM0:143A F5               push af
ROM0:143B CB 23            sla  e
ROM0:143D CB 12            rl   d		;de << 1
ROM0:143F CB 15            rl   l
ROM0:1441 CB 14            rl   h		;hl << 1
ROM0:1443 7C               ld   a,h
ROM0:1444 B8               cp   b
ROM0:1445 38 19            jr   c,1460		;If(h < b), jump to 0:1460
ROM0:1447 7C               ld   a,h
ROM0:1448 B8               cp   b
ROM0:1449 20 0D            jr   nz,1458		;If(h ≠ b), jump to 0:1458
ROM0:144B 7D               ld   a,l
ROM0:144C B9               cp   c
ROM0:144D 38 07            jr   c,1456		;If(l < c), jump to 0:1456
ROM0:144F 91               sub  c		;Handle carry
ROM0:1450 6F               ld   l,a
ROM0:1451 7C               ld   a,h
ROM0:1452 98               sbc  b		;bc --
ROM0:1453 67               ld   h,a
ROM0:1454 CB C3            set  0,e		;Set bit 0 of register e to 1
ROM0:1456 18 08            jr   1460
ROM0:1458 7D               ld   a,l
ROM0:1459 91               sub  c
ROM0:145A 6F               ld   l,a
ROM0:145B 7C               ld   a,h
ROM0:145C 98               sbc  b		;bc --
ROM0:145D 67               ld   h,a
ROM0:145E CB C3            set  0,e		;Set bit 0 of register e to 1
ROM0:1460 F1               pop  af		;pop iterations counter in accumulator
ROM0:1461 3D               dec  a		;a --
ROM0:1462 20 D6            jr   nz,143A		;Loop 16 times
ROM0:1464 E1               pop  hl
ROM0:1465 C1               pop  bc
ROM0:1466 F1               pop  af
ROM0:1467 C9               ret  

0:1468

ROM0:1468 F5               push af
ROM0:1469 C5               push bc
ROM0:146A D5               push de
ROM0:146B 16 00            ld   d,00		;d = 0
ROM0:146D 21 00 00         ld   hl,0000		;hl = 0
ROM0:1470 0E 08            ld   c,08		;c = 8
ROM0:1472 CB 38            srl  b		;b >> 1
ROM0:1474 30 01            jr   nc,1477		;If no carry, jump to 0:1477
ROM0:1476 19               add  hl,de		;hl += de
ROM0:1477 CB 23            sla  e
ROM0:1479 CB 12            rl   d		;de << 1
ROM0:147B 0D               dec  c		;c --
ROM0:147C 20 F4            jr   nz,1472		;Loop to 0:1472
ROM0:147E D1               pop  de
ROM0:147F C1               pop  bc
ROM0:1480 F1               pop  af
ROM0:1481 C9               ret

daa addition

  • 0x1482-0x1491 - daa addition (used for Life Points healing, Deck Capacity...)
ROM0:1482 F5               push af
ROM0:1483 7B               ld   a,e
ROM0:1484 81               add  c
ROM0:1485 27               daa  
ROM0:1486 4F               ld   c,a
ROM0:1487 7A               ld   a,d
ROM0:1488 80               add  b
ROM0:1489 27               daa  
ROM0:148A 47               ld   b,a
ROM0:148B 30 03            jr   nc,1490
ROM0:148D 01 99 99         ld   bc,9999	;If(bc>10000), sets bc to 9999
ROM0:1490 F1               pop  af
ROM0:1491 C9               ret

daa substraction

  • 0x1492-0x14B1 - daa substraction (used for Damage calculation, Card ID display...)
ROM0:1492 F5               push af
ROM0:1493 78               ld   a,b
ROM0:1494 BA               cp   d
ROM0:1495 20 0B            jr   nz,14A2
ROM0:1497 79               ld   a,c
ROM0:1498 BB               cp   e
ROM0:1499 20 07            jr   nz,14A2
ROM0:149B 01 00 00         ld   bc,0000
ROM0:149E 1E 01            ld   e,01		;If (bc==de), sets bc to 0, and e to 1
ROM0:14A0 18 0E            jr   14B0
ROM0:14A2 7B               ld   a,e
ROM0:14A3 91               sub  c
ROM0:14A4 27               daa  
ROM0:14A5 4F               ld   c,a
ROM0:14A6 7A               ld   a,d
ROM0:14A7 98               sbc  b
ROM0:14A8 27               daa  
ROM0:14A9 47               ld   b,a
ROM0:14AA 1E 02            ld   e,02
ROM0:14AC 30 02            jr   nc,14B0
ROM0:14AE 1E 00            ld   e,00		;If(bc<0), set e to 2 ; else set e to 0
ROM0:14B0 F1               pop  af
ROM0:14B1 C9               ret

0:14B2 (related to Life Points)

ROM0:14B2 F5               push af
ROM0:14B3 C5               push bc
ROM0:14B4 E5               push hl
ROM0:14B5 FA F6 C5         ld   a,(C5F6)
ROM0:14B8 47               ld   b,a
ROM0:14B9 FA F7 C5         ld   a,(C5F7)
ROM0:14BC 4F               ld   c,a
ROM0:14BD FA F8 C5         ld   a,(C5F8)
ROM0:14C0 57               ld   d,a
ROM0:14C1 FA F9 C5         ld   a,(C5F9)
ROM0:14C4 B8               cp   b
ROM0:14C5 20 1A            jr   nz,14E1
ROM0:14C7 FA FA C5         ld   a,(C5FA)
ROM0:14CA B9               cp   c
ROM0:14CB 20 14            jr   nz,14E1
ROM0:14CD FA FB C5         ld   a,(C5FB)
ROM0:14D0 BA               cp   d
ROM0:14D1 20 0E            jr   nz,14E1
ROM0:14D3 AF               xor  a
ROM0:14D4 EA F6 C5         ld   (C5F6),a
ROM0:14D7 EA F7 C5         ld   (C5F7),a
ROM0:14DA EA F8 C5         ld   (C5F8),a
ROM0:14DD 1E 01            ld   e,01
ROM0:14DF 18 1E            jr   14FF
ROM0:14E1 FA F9 C5         ld   a,(C5F9)
ROM0:14E4 90               sub  b
ROM0:14E5 27               daa  
ROM0:14E6 EA F6 C5         ld   (C5F6),a
ROM0:14E9 FA FA C5         ld   a,(C5FA)
ROM0:14EC 99               sbc  c
ROM0:14ED 27               daa  
ROM0:14EE EA F7 C5         ld   (C5F7),a
ROM0:14F1 FA FB C5         ld   a,(C5FB)
ROM0:14F4 9A               sbc  d
ROM0:14F5 27               daa  
ROM0:14F6 EA F8 C5         ld   (C5F8),a
ROM0:14F9 1E 02            ld   e,02
ROM0:14FB 30 02            jr   nc,14FF
ROM0:14FD 1E 00            ld   e,00
ROM0:14FF E1               pop  hl
ROM0:1500 C1               pop  bc
ROM0:1501 F1               pop  af
ROM0:1502 C9               ret

Converts in decimal

Decimal conversion function

ROM0:1503 F5               push af
ROM0:1504 D5               push de
ROM0:1505 E5               push hl
ROM0:1506 06 00            ld   b,00
ROM0:1508 FA F6 C5         ld   a,(C5F6)
ROM0:150B E6 0F            and  a,0F
ROM0:150D 4F               ld   c,a
ROM0:150E CB 21            sla  c
ROM0:1510 21 5B 15         ld   hl,155B
ROM0:1513 09               add  hl,bc
ROM0:1514 2A               ldi  a,(hl)
ROM0:1515 56               ld   d,(hl)
ROM0:1516 5F               ld   e,a
ROM0:1517 FA F6 C5         ld   a,(C5F6)
ROM0:151A E6 F0            and  a,F0
ROM0:151C 4F               ld   c,a
ROM0:151D CB 31            swap c
ROM0:151F CB 21            sla  c
ROM0:1521 21 7B 15         ld   hl,157B
ROM0:1524 09               add  hl,bc
ROM0:1525 2A               ldi  a,(hl)
ROM0:1526 83               add  e
ROM0:1527 27               daa  
ROM0:1528 5F               ld   e,a
ROM0:1529 7E               ld   a,(hl)
ROM0:152A 8A               adc  d
ROM0:152B 27               daa  
ROM0:152C 57               ld   d,a
ROM0:152D FA F7 C5         ld   a,(C5F7)
ROM0:1530 E6 0F            and  a,0F
ROM0:1532 4F               ld   c,a
ROM0:1533 CB 21            sla  c
ROM0:1535 21 9B 15         ld   hl,159B
ROM0:1538 09               add  hl,bc
ROM0:1539 2A               ldi  a,(hl)
ROM0:153A 83               add  e
ROM0:153B 27               daa  
ROM0:153C 5F               ld   e,a
ROM0:153D 7E               ld   a,(hl)
ROM0:153E 8A               adc  d
ROM0:153F 27               daa  
ROM0:1540 57               ld   d,a
ROM0:1541 FA F7 C5         ld   a,(C5F7)
ROM0:1544 E6 F0            and  a,F0
ROM0:1546 4F               ld   c,a
ROM0:1547 CB 31            swap c
ROM0:1549 CB 21            sla  c
ROM0:154B 21 BB 15         ld   hl,15BB
ROM0:154E 09               add  hl,bc
ROM0:154F 2A               ldi  a,(hl)
ROM0:1550 83               add  e
ROM0:1551 27               daa  
ROM0:1552 4F               ld   c,a
ROM0:1553 7E               ld   a,(hl)
ROM0:1554 8A               adc  d
ROM0:1555 27               daa  
ROM0:1556 47               ld   b,a
ROM0:1557 E1               pop  hl
ROM0:1558 D1               pop  de
ROM0:1559 F1               pop  af
ROM0:155A C9               ret  

4th nibble array

00 00
01 00
02 00
03 00
04 00
05 00
06 00
07 00
08 00
09 00
10 00
11 00
12 00
13 00
14 00
15 00

3rd nibble array

00 00
16 00
32 00
48 00
64 00
80 00
96 00
12 01
28 01
44 01
60 01
76 01
92 01
08 02
24 02
40 02

2nd nibble array

00 00
56 02
12 05
68 07
24 10
80 12
36 15
92 17
48 20
04 23
60 25
16 28
72 30
28 33
84 35
40 38

1st nibble array

00 00
96 40
92 81

0:1673 bit array

  • 0x1673 array of single bits
0:1673
01 02 04 08 10 20 40 80

0:167B

ROM0:167B C5               push bc
ROM0:167C E5               push hl
ROM0:167D 06 00            ld   b,00
ROM0:167F 4F               ld   c,a         ;bc = a
ROM0:1680 21 73 16         ld   hl,1673
ROM0:1683 09               add  hl,bc
ROM0:1684 4E               ld   c,(hl)      ;c has a bit set, picked from array at 0:1673
ROM0:1685 E1               pop  hl
ROM0:1686 7E               ld   a,(hl)
ROM0:1687 A1               and  c
ROM0:1688 28 02            jr   z,168C      ;compares the bit with the value at WRAM address that was passed as argument to this routine
ROM0:168A 3E 01            ld   a,01        ;if  that's not equal: a = 1, else if that's equal: a = 0
ROM0:168C C1               pop  bc
ROM0:168D C9               ret  

Display 2

  • 0x17AA-0x17ED - Displays the card data and picture
ROM0:17AA F5               push af
ROM0:17AB C5               push bc
ROM0:17AC D5               push de
ROM0:17AD E5               push hl
ROM0:17AE CD 49 18         call 1849
ROM0:17B1 06 00            ld   b,00
ROM0:17B3 FA B0 C6         ld   a,(C6B0)
ROM0:17B6 4F               ld   c,a
ROM0:17B7 CB 21            sla  c
ROM0:17B9 21 EE 17         ld   hl,17EE
ROM0:17BC 09               add  hl,bc
ROM0:17BD 2A               ldi  a,(hl)
ROM0:17BE 66               ld   h,(hl)
ROM0:17BF 6F               ld   l,a
ROM0:17C0 2A               ldi  a,(hl)
ROM0:17C1 CD 00 12         call 1200		;ROM Bank switch
ROM0:17C4 E5               push hl
ROM0:17C5 FA AE C6         ld   a,(C6AE)
ROM0:17C8 4F               ld   c,a
ROM0:17C9 FA AF C6         ld   a,(C6AF)
ROM0:17CC 47               ld   b,a
ROM0:17CD 2A               ldi  a,(hl)
ROM0:17CE 66               ld   h,(hl)
ROM0:17CF 6F               ld   l,a
ROM0:17D0 11 D5 17         ld   de,17D5
ROM0:17D3 D5               push de
ROM0:17D4 E9               jp   hl
ROM0:17D5 CD 6E 18         call 186E
ROM0:17D8 E1               pop  hl
ROM0:17D9 23               inc  hl
ROM0:17DA 23               inc  hl
ROM0:17DB 2A               ldi  a,(hl)
ROM0:17DC 4F               ld   c,a
ROM0:17DD 2A               ldi  a,(hl)
ROM0:17DE 47               ld   b,a
ROM0:17DF CD 77 18         call 1877
ROM0:17E2 7A               ld   a,d
ROM0:17E3 CD 00 12         call 1200		;ROM Bank switch
ROM0:17E6 CD 80 18         call 1880
ROM0:17E9 E1               pop  hl
ROM0:17EA D1               pop  de
ROM0:17EB C1               pop  bc
ROM0:17EC F1               pop  af
ROM0:17ED C9               ret

0:1880

ROM0:1880 F5               push af
ROM0:1881 C5               push bc
ROM0:1882 D5               push de
ROM0:1883 E5               push hl
ROM0:1884 11 DE D3         ld   de,D3DE
ROM0:1887 0E 80            ld   c,80
ROM0:1889 CD EF 18         call 18EF
ROM0:188C 4F               ld   c,a
ROM0:188D 06 08            ld   b,08
ROM0:188F CB 19            rr   c
ROM0:1891 30 16            jr   nc,18A9
ROM0:1893 CD EF 18         call 18EF
ROM0:1896 CD 02 19         call 1902
ROM0:1899 38 4F            jr   c,18EA
ROM0:189B 12               ld   (de),a
ROM0:189C 1C               inc  e
ROM0:189D 20 08            jr   nz,18A7
ROM0:189F 14               inc  d
ROM0:18A0 7A               ld   a,d
ROM0:18A1 FE D4            cp   a,D4
ROM0:18A3 20 02            jr   nz,18A7
ROM0:18A5 16 D0            ld   d,D0
ROM0:18A7 18 3C            jr   18E5
ROM0:18A9 C5               push bc
ROM0:18AA CD EF 18         call 18EF
ROM0:18AD 6F               ld   l,a
ROM0:18AE CD EF 18         call 18EF
ROM0:18B1 67               ld   h,a
ROM0:18B2 E6 1F            and  a,1F
ROM0:18B4 C6 03            add  a,03
ROM0:18B6 4F               ld   c,a
ROM0:18B7 7C               ld   a,h
ROM0:18B8 CB 37            swap a
ROM0:18BA 0F               rrca 
ROM0:18BB E6 03            and  a,03
ROM0:18BD C6 D0            add  a,D0
ROM0:18BF 67               ld   h,a
ROM0:18C0 7E               ld   a,(hl)
ROM0:18C1 CD 02 19         call 1902
ROM0:18C4 30 04            jr   nc,18CA
ROM0:18C6 E8 02            add  sp,02
ROM0:18C8 18 20            jr   18EA
ROM0:18CA 12               ld   (de),a
ROM0:18CB 2C               inc  l
ROM0:18CC 20 08            jr   nz,18D6
ROM0:18CE 24               inc  h
ROM0:18CF 7C               ld   a,h
ROM0:18D0 FE D4            cp   a,D4
ROM0:18D2 20 02            jr   nz,18D6
ROM0:18D4 26 D0            ld   h,D0
ROM0:18D6 1C               inc  e
ROM0:18D7 20 08            jr   nz,18E1
ROM0:18D9 14               inc  d
ROM0:18DA 7A               ld   a,d
ROM0:18DB FE D4            cp   a,D4
ROM0:18DD 20 02            jr   nz,18E1
ROM0:18DF 16 D0            ld   d,D0
ROM0:18E1 0D               dec  c
ROM0:18E2 20 DC            jr   nz,18C0
ROM0:18E4 C1               pop  bc
ROM0:18E5 05               dec  b
ROM0:18E6 20 A7            jr   nz,188F
ROM0:18E8 18 9F            jr   1889
ROM0:18EA E1               pop  hl
ROM0:18EB D1               pop  de
ROM0:18EC C1               pop  bc
ROM0:18ED F1               pop  af
ROM0:18EE C9               ret  

0:18EF ((FF80)++)

ROM0:18EF E5               push hl
ROM0:18F0 F0 80            ld   a,(ff00+80)
ROM0:18F2 C6 01            add  a,01
ROM0:18F4 E0 80            ld   (ff00+80),a	;(FF80)++
ROM0:18F6 6F               ld   l,a
ROM0:18F7 F0 81            ld   a,(ff00+81)
ROM0:18F9 CE 00            adc  a,00
ROM0:18FB E0 81            ld   (ff00+81),a
ROM0:18FD 67               ld   h,a
ROM0:18FE 2B               dec  hl
ROM0:18FF 7E               ld   a,(hl)
ROM0:1900 E1               pop  hl
ROM0:1901 C9               ret  

0:1902 ((FF82)--)

ROM0:1902 D5               push de
ROM0:1903 E5               push hl
ROM0:1904 57               ld   d,a
ROM0:1905 CD 5B 02         call 025B
ROM0:1908 F0 82            ld   a,(ff00+82)
ROM0:190A 6F               ld   l,a
ROM0:190B F0 83            ld   a,(ff00+83)
ROM0:190D 67               ld   h,a
ROM0:190E 2B               dec  hl
ROM0:190F 7D               ld   a,l
ROM0:1910 E0 82            ld   (ff00+82),a	;(FF82)--
ROM0:1912 7C               ld   a,h
ROM0:1913 E0 83            ld   (ff00+83),a
ROM0:1915 7C               ld   a,h
ROM0:1916 B5               or   l
ROM0:1917 20 01            jr   nz,191A
ROM0:1919 37               scf  
ROM0:191A 7A               ld   a,d
ROM0:191B E1               pop  hl
ROM0:191C D1               pop  de
ROM0:191D C9               ret

0:191E

ROM0:191E F5               push af
ROM0:191F 79               ld   a,c
ROM0:1920 EA C1 C6         ld   (C6C1),a
ROM0:1923 78               ld   a,b
ROM0:1924 EA C2 C6         ld   (C6C2),a
ROM0:1927 F1               pop  af
ROM0:1928 C9               ret  

0:1929

ROM0:1929 F5               push af
ROM0:192A C5               push bc
ROM0:192B D5               push de
ROM0:192C E5               push hl
ROM0:192D 21 C3 C6         ld   hl,C6C3
ROM0:1930 11 40 19         ld   de,1940
ROM0:1933 0E 04            ld   c,04
ROM0:1935 1A               ld   a,(de)
ROM0:1936 22               ldi  (hl),a
ROM0:1937 13               inc  de
ROM0:1938 0D               dec  c
ROM0:1939 20 FA            jr   nz,1935
ROM0:193B E1               pop  hl
ROM0:193C D1               pop  de
ROM0:193D C1               pop  bc
ROM0:193E F1               pop  af
ROM0:193F C9               ret  

0:1940 (array)

ROM0:1940
30 38 00 00

0:1944

ROM0:1944 F5               push af
ROM0:1945 3E B0            ld   a,B0
ROM0:1947 EA C4 C6         ld   (C6C4),a
ROM0:194A F1               pop  af
ROM0:194B C9               ret  

0:194C

ROM0:194C F5               push af
ROM0:194D 78               ld   a,b
ROM0:194E EA C6 C6         ld   (C6C6),a
ROM0:1951 79               ld   a,c
ROM0:1952 EA C5 C6         ld   (C6C5),a
ROM0:1955 F1               pop  af
ROM0:1956 C9               ret  

0:1957

ROM0:1957 F5               push af
ROM0:1958 78               ld   a,b
ROM0:1959 EA C4 C6         ld   (C6C4),a
ROM0:195C 79               ld   a,c
ROM0:195D EA C3 C6         ld   (C6C3),a
ROM0:1960 F1               pop  af
ROM0:1961 C9               ret  

0:1962

ROM0:1962 EA C7 C6         ld   (C6C7),a
ROM0:1965 C9               ret  

0:1966

ROM0:1966 F5               push af
ROM0:1967 E5               push hl
ROM0:1968 06 00            ld   b,00
ROM0:196A FA C3 C6         ld   a,(C6C3)
ROM0:196D D6 10            sub  a,10
ROM0:196F 4F               ld   c,a
ROM0:1970 CB 21            sla  c
ROM0:1972 CB 10            rl   b
ROM0:1974 CB 21            sla  c
ROM0:1976 CB 10            rl   b
ROM0:1978 FA C4 C6         ld   a,(C6C4)
ROM0:197B D6 08            sub  a,08
ROM0:197D CB 3F            srl  a
ROM0:197F CB 3F            srl  a
ROM0:1981 CB 3F            srl  a
ROM0:1983 81               add  c
ROM0:1984 4F               ld   c,a
ROM0:1985 21 00 98         ld   hl,9800	;pointer to VRAM
ROM0:1988 09               add  hl,bc
ROM0:1989 44               ld   b,h
ROM0:198A 4D               ld   c,l
ROM0:198B E1               pop  hl
ROM0:198C F1               pop  af
ROM0:198D C9               ret  

0:198E

ROM0:198E F5               push af
ROM0:198F D5               push de
ROM0:1990 E5               push hl
ROM0:1991 06 08            ld   b,08
ROM0:1993 FA C7 C6         ld   a,(C6C7)
ROM0:1996 4F               ld   c,a
ROM0:1997 FE 80            cp   a,80
ROM0:1999 30 01            jr   nc,199C
ROM0:199B 04               inc  b
ROM0:199C 1E 04            ld   e,04
ROM0:199E CB 21            sla  c
ROM0:19A0 CB 10            rl   b
ROM0:19A2 1D               dec  e
ROM0:19A3 20 F9            jr   nz,199E
ROM0:19A5 E1               pop  hl
ROM0:19A6 D1               pop  de
ROM0:19A7 F1               pop  af
ROM0:19A8 C9               ret  

Battle Process 1

Blanks CPU's hand

  • 0x19A9-0x19CF - Blanks all data in 0xC759-0xC768 (CPU's hand + card statuses) and 0xC7A1-0xC7A2 (Field Column and Row)
ROM0:19A9 F5               push af
ROM0:19AA C5               push bc
ROM0:19AB E5               push hl
ROM0:19AC 3E 00            ld   a,00
ROM0:19AE EA A1 C7         ld   (C7A1),a
ROM0:19B1 3E 00            ld   a,00
ROM0:19B3 EA A2 C7         ld   (C7A2),a
ROM0:19B6 21 59 C7         ld   hl,C759
ROM0:19B9 06 04            ld   b,04
ROM0:19BB 0E 06            ld   c,06
ROM0:19BD 3E 00            ld   a,00
ROM0:19BF 22               ldi  (hl),a
ROM0:19C0 3E 00            ld   a,00
ROM0:19C2 22               ldi  (hl),a
ROM0:19C3 3E 10            ld   a,10
ROM0:19C5 22               ldi  (hl),a
ROM0:19C6 0D               dec  c
ROM0:19C7 20 F4            jr   nz,19BD
ROM0:19C9 05               dec  b
ROM0:19CA 20 EF            jr   nz,19BB
ROM0:19CC E1               pop  hl
ROM0:19CD C1               pop  bc
ROM0:19CE F1               pop  af
ROM0:19CF C9               ret

Updates field Column and Row

  • 0x19D0-0x19DA - Updates field Column and Row
ROM0:19D0 F5               push af
ROM0:19D1 78               ld   a,b
ROM0:19D2 EA A1 C7         ld   (C7A1),a	;Field Column
ROM0:19D5 79               ld   a,c
ROM0:19D6 EA A2 C7         ld   (C7A2),a	;Field Row
ROM0:19D9 F1               pop  af
ROM0:19DA C9               ret


Retrieves field Column and Row

  • 0x19DB-0x19E5 - Stores field Column and Row in register bc
ROM0:19DB F5               push af
ROM0:19DC FA A1 C7         ld   a,(C7A1)	;Field Column
ROM0:19DF 47               ld   b,a
ROM0:19E0 FA A2 C7         ld   a,(C7A2)	;Field Row
ROM0:19E3 4F               ld   c,a
ROM0:19E4 F1               pop  af
ROM0:19E5 C9               ret

Remove card from selected card zone on the field

  • 0x19E6-0x19FA - Remove card from selected card zone on the field
ROM0:19E6 F5               push af
ROM0:19E7 C5               push bc
ROM0:19E8 E5               push hl
ROM0:19E9 CD 36 1A         call 1A36		;Returns card zone RAM address of the selected column and row in register bc
ROM0:19EC 60               ld   h,b
ROM0:19ED 69               ld   l,c
ROM0:19EE 3E 00            ld   a,00
ROM0:19F0 22               ldi  (hl),a		;00s card ID in the selected card zone
ROM0:19F1 3E 00            ld   a,00
ROM0:19F3 22               ldi  (hl),a
ROM0:19F4 3E 10            ld   a,10		;Sets card Level to 0 in the selected card zone
ROM0:19F6 22               ldi  (hl),a
ROM0:19F7 E1               pop  hl
ROM0:19F8 C1               pop  bc
ROM0:19F9 F1               pop  af
ROM0:19FA C9               ret

Updates selected card ID and status

  • 0x19FB-0x1A12 - Updates card ID + card status from (C7A3) to the selected card zone
ROM0:19FB F5               push af
ROM0:19FC C5               push bc
ROM0:19FD E5               push hl
ROM0:19FE CD 36 1A         call 1A36		;Returns card zone RAM address of the selected column and row in register bc
ROM0:1A01 60               ld   h,b
ROM0:1A02 69               ld   l,c
ROM0:1A03 FA A3 C7         ld   a,(C7A3)
ROM0:1A06 22               ldi  (hl),a		;Updates card ID
ROM0:1A07 FA A4 C7         ld   a,(C7A4)
ROM0:1A0A 22               ldi  (hl),a
ROM0:1A0B FA A5 C7         ld   a,(C7A5)
ROM0:1A0E 22               ldi  (hl),a		;Updates card status
ROM0:1A0F E1               pop  hl
ROM0:1A10 C1               pop  bc
ROM0:1A11 F1               pop  af
ROM0:1A12 C9               ret

Stores selected card ID and status

  • 0x1A13-0x1A2A - Stores card ID from the selected card zone + card status in (C7A3)
ROM0:1A13 F5               push af
ROM0:1A14 C5               push bc
ROM0:1A15 E5               push hl
ROM0:1A16 CD 36 1A         call 1A36		;Returns card zone RAM address of the selected column and row in register bc
ROM0:1A19 60               ld   h,b
ROM0:1A1A 69               ld   l,c
ROM0:1A1B 2A               ldi  a,(hl)
ROM0:1A1C EA A3 C7         ld   (C7A3),a
ROM0:1A1F 2A               ldi  a,(hl)
ROM0:1A20 EA A4 C7         ld   (C7A4),a
ROM0:1A23 2A               ldi  a,(hl)
ROM0:1A24 EA A5 C7         ld   (C7A5),a
ROM0:1A27 E1               pop  hl
ROM0:1A28 C1               pop  bc
ROM0:1A29 F1               pop  af
ROM0:1A2A C9               ret

Card update subroutine

ROM0:1A2B F5               push af
ROM0:1A2C C5               push bc
ROM0:1A2D CF               rst  08
...
ROM0:1A30 CD FB 19         call 19FB		;Updates selected card ID and status
ROM0:1A33 C1               pop  bc
ROM0:1A34 F1               pop  af
ROM0:1A35 C9               ret

Retrieve selected card zone pointer

  • 0x1A36-0x1A5D - Returns card zone RAM address of the selected column and row in register bc
ROM0:1A36 F5               push af
ROM0:1A37 E5               push hl
ROM0:1A38 06 00            ld   b,00
ROM0:1A3A FA A2 C7         ld   a,(C7A2)
ROM0:1A3D 4F               ld   c,a
ROM0:1A3E CB 21            sla  c
ROM0:1A40 21 5E 1A         ld   hl,1A5E
ROM0:1A43 09               add  hl,bc
ROM0:1A44 2A               ldi  a,(hl)
ROM0:1A45 66               ld   h,(hl)
ROM0:1A46 6F               ld   l,a
ROM0:1A47 E5               push hl
ROM0:1A48 06 00            ld   b,00
ROM0:1A4A FA A1 C7         ld   a,(C7A1)
ROM0:1A4D 4F               ld   c,a
ROM0:1A4E CB 21            sla  c
ROM0:1A50 21 66 1A         ld   hl,1A66
ROM0:1A53 09               add  hl,bc
ROM0:1A54 2A               ldi  a,(hl)
ROM0:1A55 46               ld   b,(hl)
ROM0:1A56 4F               ld   c,a
ROM0:1A57 E1               pop  hl
ROM0:1A58 09               add  hl,bc
ROM0:1A59 44               ld   b,h
ROM0:1A5A 4D               ld   c,l
ROM0:1A5B E1               pop  hl
ROM0:1A5C F1               pop  af
ROM0:1A5D C9               ret  
  • 0x1A5E-0x1A65 - Pointers used during Attack Phase by function at 0x1A36-0x1A5D
  • 0x1A66-0x1A71 - Values to be added to pointer in register hl by function at 0x1A36-0x1A5D

Checks if a card is being processed

  • 0x1A72-0x1A83 - Sets accumulator to 1 if there is no card being currently processed, 0 otherwise
ROM0:1A72 D5               push de
ROM0:1A73 1E 00            ld   e,00
ROM0:1A75 78               ld   a,b
ROM0:1A76 FE 00            cp   a,00
ROM0:1A78 20 07            jr   nz,1A81
ROM0:1A7A 79               ld   a,c
ROM0:1A7B FE 00            cp   a,00
ROM0:1A7D 20 02            jr   nz,1A81
ROM0:1A7F 1E 01            ld   e,01
ROM0:1A81 7B               ld   a,e
ROM0:1A82 D1               pop  de
ROM0:1A83 C9               ret

Checks Card ID validity

  • 0x1A84-0x1AB7 - Checks Card ID validity, returns error code in accumulator
ROM0:1A84 C5               push bc
ROM0:1A85 D5               push de
ROM0:1A86 E5               push hl
ROM0:1A87 11 00 00         ld   de,0000
ROM0:1A8A CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1A8D FE 01            cp   a,01
ROM0:1A8F 20 04            jr   nz,1A95		;If(Card ID ≠ 0), jump to 0:1A95
ROM0:1A91 0E 04            ld   c,04
ROM0:1A93 18 1E            jr   1AB3		;Else get out of this function (No card)
ROM0:1A95 11 20 03         ld   de,0320
ROM0:1A98 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1A9B FE 00            cp   a,00
ROM0:1A9D 28 04            jr   z,1AA3		;If(Card ID > 800), jump to 0:1AA3
ROM0:1A9F 0E 01            ld   c,01
ROM0:1AA1 18 10            jr   1AB3		;Else get out of this function (Normal card)
ROM0:1AA3 11 44 16         ld   de,1644
ROM0:1AA6 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1AA9 FE 00            cp   a,00
ROM0:1AAB 28 04            jr   z,1AB1		;If(Card ID > 5700), jump to 0:1AB1
ROM0:1AAD 0E 02            ld   c,02
ROM0:1AAF 18 02            jr   1AB3		;Else get out of this function (Construction card)
ROM0:1AB1 0E 03            ld   c,03		;Invalid card ID
ROM0:1AB3 79               ld   a,c
ROM0:1AB4 E1               pop  hl
ROM0:1AB5 D1               pop  de
ROM0:1AB6 C1               pop  bc
ROM0:1AB7 C9               ret

Checks position in Card Trunk

  • 0x1AB8-0x1AE9 -
ROM0:1AB8 C5               push bc
ROM0:1AB9 D5               push de
ROM0:1ABA E5               push hl
ROM0:1ABB 11 00 00         ld   de,0000
ROM0:1ABE CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1AC1 FE 01            cp   a,01
ROM0:1AC3 20 04            jr   nz,1AC9		;If(Position in Card Trunk ≠ 0), jump to 0:1AC9
ROM0:1AC5 0E 00            ld   c,00
ROM0:1AC7 18 1C            jr   1AE5
ROM0:1AC9 11 E9 03         ld   de,03E9
ROM0:1ACC CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1ACF FE 01            cp   a,01
ROM0:1AD1 20 04            jr   nz,1AD7		;If(Position in Card Trunk ≠ 1001), jump to 0:1AC9
ROM0:1AD3 0E 03            ld   c,03
ROM0:1AD5 18 0E            jr   1AE5
ROM0:1AD7 11 21 03         ld   de,0321		;de = 801
ROM0:1ADA CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1ADD 16 00            ld   d,00
ROM0:1ADF 5F               ld   e,a
ROM0:1AE0 21 EA 1A         ld   hl,1AEA
ROM0:1AE3 19               add  hl,de
ROM0:1AE4 4E               ld   c,(hl)
ROM0:1AE5 79               ld   a,c
ROM0:1AE6 E1               pop  hl
ROM0:1AE7 D1               pop  de
ROM0:1AE8 C1               pop  bc
ROM0:1AE9 C9               ret
  • 0x1AEA-0x1AEC - Array ?
ROM0:1AEA
02 02 01

0:1AED (checks card validity in Trunk ?)

  • 0x1AED-0x1B10 -
ROM0:1AED C5               push bc
ROM0:1AEE D5               push de
ROM0:1AEF E5               push hl
ROM0:1AF0 11 38 04         ld   de,0438		;1080, theoretical max number of different cards in Card Trunk
ROM0:1AF3 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1AF6 FE 01            cp   a,01
ROM0:1AF8 20 04            jr   nz,1AFE		;If bc ≠ 1080, jump to 0:1AFE
ROM0:1AFA 0E 03            ld   c,03
ROM0:1AFC 18 0E            jr   1B0C
ROM0:1AFE 11 20 03         ld   de,0320		;800, number of non-construction cards
ROM0:1B01 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:1B04 16 00            ld   d,00
ROM0:1B06 5F               ld   e,a
ROM0:1B07 21 11 1B         ld   hl,1B11
ROM0:1B0A 19               add  hl,de
ROM0:1B0B 4E               ld   c,(hl)
ROM0:1B0C 79               ld   a,c
ROM0:1B0D E1               pop  hl
ROM0:1B0E D1               pop  de
ROM0:1B0F C1               pop  bc
ROM0:1B10 C9               ret

0:1B11 (array)

ROM0:1B11
02 - Invalid card
02 - Invalid card
01 - Valid card

Check if is equal

  • 0x1B14-0x1B22 - Returns 0 if bc == de, 1 otherwise
ROM0:1B14 E5               push hl
ROM0:1B15 2E 01            ld   l,01
ROM0:1B17 78               ld   b,a
ROM0:1B18 BA               cp   d
ROM0:1B19 20 05            jr   nz,1B20
ROM0:1B1B 79               ld   a,c
ROM0:1B1C BB               cp   e
ROM0:1B1D 20 01            jr   nz,1B20
ROM0:1B1F 2D               dec  l
ROM0:1B20 7D               ld   a,l
ROM0:1B21 E1               pop  hl
ROM0:1B22 C9               ret

Checks if less than, equal to, or greater than

  • 0x1B23-0x1B3D - Returns 2 if bc < de, 1 if bc == de, 0 if bc > de
ROM0:1B23 C5               push bc
ROM0:1B24 D5               push de
ROM0:1B25 E5               push hl
ROM0:1B26 2E 02            ld   l,02
ROM0:1B28 CD 92 14         call 1492		;daa subtraction, de - bc
ROM0:1B2B 7B               ld   a,e
ROM0:1B2C FE 01            cp   a,01
ROM0:1B2E 20 02            jr   nz,1B32		;If(bc ≠ de), jump to 0:1B32
ROM0:1B30 2E 01            ld   l,01
ROM0:1B32 7B               ld   a,e
ROM0:1B33 FE 00            cp   a,00
ROM0:1B35 20 02            jr   nz,1B39		;If(bc < de), jump to 0:1B39
ROM0:1B37 2E 00            ld   l,00
ROM0:1B39 7D               ld   a,l
ROM0:1B3A E1               pop  hl
ROM0:1B3B D1               pop  de
ROM0:1B3C C1               pop  bc
ROM0:1B3D C9               ret

Copy Life Points, (C7A8) and (C7AB) to (C5F6)-(C5FB)

ROM0:1B3E D5               push de
ROM0:1B3F E5               push hl
ROM0:1B40 2E 02            ld   l,02
ROM0:1B42 FA A6 C7         ld   a,(C7A6)
ROM0:1B45 EA F6 C5         ld   (C5F6),a
ROM0:1B48 FA A7 C7         ld   a,(C7A7)
ROM0:1B4B EA F7 C5         ld   (C5F7),a
ROM0:1B4E FA A8 C7         ld   a,(C7A8)
ROM0:1B51 EA F8 C5         ld   (C5F8),a
ROM0:1B54 FA A9 C7         ld   a,(C7A9)
ROM0:1B57 EA F9 C5         ld   (C5F9),a
ROM0:1B5A FA AA C7         ld   a,(C7AA)
ROM0:1B5D EA FA C5         ld   (C5FA),a
ROM0:1B60 FA AB C7         ld   a,(C7AB)
ROM0:1B63 EA FB C5         ld   (C5FB),a
ROM0:1B66 CD B2 14         call 14B2
ROM0:1B69 7B               ld   a,e
ROM0:1B6A FE 01            cp   a,01
ROM0:1B6C 20 02            jr   nz,1B70
ROM0:1B6E 2E 01            ld   l,01
ROM0:1B70 7B               ld   a,e
ROM0:1B71 FE 00            cp   a,00
ROM0:1B73 20 02            jr   nz,1B77
ROM0:1B75 2E 00            ld   l,00
ROM0:1B77 7D               ld   a,l
ROM0:1B78 E1               pop  hl
ROM0:1B79 D1               pop  de
ROM0:1B7A C9               ret

0:1B7B

ROM0:1B7B F5               push af
ROM0:1B7C C5               push bc
ROM0:1B7D D5               push de
ROM0:1B7E E5               push hl
ROM0:1B7F 3E 00            ld   a,00
ROM0:1B81 EA A4 C5         ld   (C5A4),a
ROM0:1B84 3E 00            ld   a,00
ROM0:1B86 EA AC C7         ld   (C7AC),a
ROM0:1B89 CD FF 1D         call 1DFF
ROM0:1B8C 11 FE FE         ld   de,FEFE
ROM0:1B8F FA A6 C5         ld   a,(C5A6)
ROM0:1B92 FE 10            cp   a,10
ROM0:1B94 20 1D            jr   nz,1BB3
ROM0:1B96 3E 30            ld   a,30
ROM0:1B98 CD 61 04         call 0461
ROM0:1B9B CD 4B 11         call 114B
ROM0:1B9E FA A4 C5         ld   a,(C5A4)
ROM0:1BA1 E6 F0            and  a,F0
ROM0:1BA3 FE 40            cp   a,40
ROM0:1BA5 20 0A            jr   nz,1BB1
ROM0:1BA7 CD D9 1B         call 1BD9
ROM0:1BAA 3E 01            ld   a,01
ROM0:1BAC EA AC C7         ld   (C7AC),a
ROM0:1BAF 18 23            jr   1BD4
ROM0:1BB1 18 0F            jr   1BC2
ROM0:1BB3 3E 40            ld   a,40
ROM0:1BB5 CD 89 04         call 0489
ROM0:1BB8 3E 01            ld   a,01
ROM0:1BBA EA AC C7         ld   (C7AC),a
ROM0:1BBD CD 65 11         call 1165
ROM0:1BC0 18 12            jr   1BD4
ROM0:1BC2 1D               dec  e
ROM0:1BC3 20 0D            jr   nz,1BD2
ROM0:1BC5 15               dec  d
ROM0:1BC6 7A               ld   a,d
ROM0:1BC7 FE FF            cp   a,FF
ROM0:1BC9 20 07            jr   nz,1BD2
ROM0:1BCB 3E 02            ld   a,02
ROM0:1BCD EA AC C7         ld   (C7AC),a
ROM0:1BD0 18 02            jr   1BD4
ROM0:1BD2 18 BB            jr   1B8F
ROM0:1BD4 E1               pop  hl
ROM0:1BD5 D1               pop  de
ROM0:1BD6 C1               pop  bc
ROM0:1BD7 F1               pop  af
ROM0:1BD8 C9               ret  

0:1BD9

ROM0:1BD9 F5               push af
ROM0:1BDA C5               push bc
ROM0:1BDB 0E 03            ld   c,03
ROM0:1BDD CD 4B 11         call 114B
ROM0:1BE0 0D               dec  c
ROM0:1BE1 20 FA            jr   nz,1BDD
ROM0:1BE3 C1               pop  bc
ROM0:1BE4 F1               pop  af
ROM0:1BE5 C9               ret  

0:1BE6 (00s (C5B5) to (C5B7) and (C7AD))

ROM0:1BE6 F5               push af
ROM0:1BE7 AF               xor  a
ROM0:1BE8 EA B5 C5         ld   (C5B5),a
ROM0:1BEB EA B6 C5         ld   (C5B6),a
ROM0:1BEE EA B7 C5         ld   (C5B7),a
ROM0:1BF1 EA AD C7         ld   (C7AD),a
ROM0:1BF4 F1               pop  af
ROM0:1BF5 C9               ret  

0:1BF6 ((C7AD) | 2)

ROM0:1BF6 F5               push af
ROM0:1BF7 FA AD C7         ld   a,(C7AD)
ROM0:1BFA F6 02            or   a,02
ROM0:1BFC EA AD C7         ld   (C7AD),a
ROM0:1BFF F1               pop  af
ROM0:1C00 C9               ret

Menu ID handling

  • 0x1D3F-0x1D46 - Initializes Menu ID to 0
ROM0:1D3F F5               push af
ROM0:1D40 3E 00            ld   a,00
ROM0:1D42 EA B1 C7         ld   (C7B1),a
ROM0:1D45 F1               pop  af
ROM0:1D46 C9               ret  
  • 0x1D47-0x1D4A - Changes Menu ID to the value in accumulator
ROM0:1D47 EA B1 C7         ld   (C7B1),a
ROM0:1D4A C9               ret

Enable Serial Interrupt

ROM0:1D4B E5               push hl
ROM0:1D4C F3               di   
ROM0:1D4D 21 0F FF         ld   hl,FF0F		;Serial Interrupt Flag = 0
ROM0:1D50 CB 9E            res  3,(hl)
ROM0:1D52 21 FF FF         ld   hl,FFFF
ROM0:1D55 CB DE            set  3,(hl)		;Serial Interrupt Enabled
ROM0:1D57 FB               ei   
ROM0:1D58 E1               pop  hl
ROM0:1D59 C9               ret  

Disable Serial Interrupt

ROM0:1D5A E5               push hl
ROM0:1D5B F3               di   
ROM0:1D5C 21 0F FF         ld   hl,FF0F
ROM0:1D5F CB 9E            res  3,(hl)		;Serial Interrupt Flag = 0
ROM0:1D61 21 FF FF         ld   hl,FFFF
ROM0:1D64 CB 9E            res  3,(hl)		;Serial Interrupt Disabled
ROM0:1D66 FB               ei   
ROM0:1D67 E1               pop  hl
ROM0:1D68 C9               ret  

0:1D69 (fill (C7CA) to (C849) with accumulator)

ROM0:1D69 F5               push af
ROM0:1D6A C5               push bc
ROM0:1D6B E5               push hl
ROM0:1D6C 21 CA C7         ld   hl,C7CA
ROM0:1D6F 3E 80            ld   a,80
ROM0:1D71 0E 80            ld   c,80
ROM0:1D73 22               ldi  (hl),a
ROM0:1D74 0D               dec  c
ROM0:1D75 20 FC            jr   nz,1D73
ROM0:1D77 AF               xor  a
ROM0:1D78 EA 4A C8         ld   (C84A),a
ROM0:1D7B EA 4B C8         ld   (C84B),a
ROM0:1D7E E1               pop  hl
ROM0:1D7F C1               pop  bc
ROM0:1D80 F1               pop  af
ROM0:1D81 C9               ret

0:1D82

ROM0:1D82 F5               push af
ROM0:1D83 E6 0F            and  a,0F
ROM0:1D85 47               ld   b,a
ROM0:1D86 CB 30            swap b
ROM0:1D88 79               ld   a,c
ROM0:1D89 E6 0F            and  a,0F
ROM0:1D8B B0               or   b
ROM0:1D8C CD A8 1D         call 1DA8
ROM0:1D8F F1               pop  af
ROM0:1D90 C9               ret  

0:1D91

ROM0:1D91 F5               push af
ROM0:1D92 C5               push bc
ROM0:1D93 4F               ld   c,a
ROM0:1D94 CB 37            swap a
ROM0:1D96 E6 0F            and  a,0F
ROM0:1D98 F6 80            or   a,80
ROM0:1D9A CD A8 1D         call 1DA8
ROM0:1D9D 79               ld   a,c
ROM0:1D9E E6 0F            and  a,0F
ROM0:1DA0 F6 80            or   a,80
ROM0:1DA2 CD A8 1D         call 1DA8
ROM0:1DA5 C1               pop  bc
ROM0:1DA6 F1               pop  af
ROM0:1DA7 C9               ret  

0:1DA8

ROM0:1DA8 C5               push bc
ROM0:1DA9 E5               push hl
ROM0:1DAA F5               push af
ROM0:1DAB 3E 00            ld   a,00
ROM0:1DAD 47               ld   b,a
ROM0:1DAE FA 4B C8         ld   a,(C84B)
ROM0:1DB1 4F               ld   c,a
ROM0:1DB2 3C               inc  a
ROM0:1DB3 FE 80            cp   a,80
ROM0:1DB5 20 01            jr   nz,1DB8
ROM0:1DB7 AF               xor  a
ROM0:1DB8 EA 4B C8         ld   (C84B),a
ROM0:1DBB 21 CA C7         ld   hl,C7CA
ROM0:1DBE 09               add  hl,bc
ROM0:1DBF F1               pop  af
ROM0:1DC0 77               ld   (hl),a
ROM0:1DC1 E1               pop  hl
ROM0:1DC2 C1               pop  bc
ROM0:1DC3 C9               ret

0:1DC4

ROM0:1DC4 F5               push af
ROM0:1DC5 CD E5 1D         call 1DE5
ROM0:1DC8 47               ld   b,a
ROM0:1DC9 E6 0F            and  a,0F
ROM0:1DCB 4F               ld   c,a
ROM0:1DCC 78               ld   a,b
ROM0:1DCD E6 0F            and  a,0F
ROM0:1DCF 47               ld   b,a
ROM0:1DD0 CB 30            swap b
ROM0:1DD2 F1               pop  af
ROM0:1DD3 C9               ret  

0:1DD4

ROM0:1DD4 C5               push bc
ROM0:1DD5 CD E5 1D         call 1DE5
ROM0:1DD8 E6 0F            and  a,0F
ROM0:1DDA 4F               ld   c,a
ROM0:1DDB CB 31            swap c
ROM0:1DDD CD E5 1D         call 1DE5
ROM0:1DE0 E6 0F            and  a,0F
ROM0:1DE2 B1               or   c
ROM0:1DE3 C1               pop  bc
ROM0:1DE4 C9               ret  

0:1DE5

ROM0:1DE5 C5               push bc
ROM0:1DE6 E5               push hl
ROM0:1DE7 3E 00            ld   a,00
ROM0:1DE9 47               ld   b,a
ROM0:1DEA FA 4A C8         ld   a,(C84A)
ROM0:1DED 4F               ld   c,a
ROM0:1DEE 3C               inc  a
ROM0:1DEF FE 80            cp   a,80
ROM0:1DF1 20 01            jr   nz,1DF4
ROM0:1DF3 AF               xor  a
ROM0:1DF4 EA 4A C8         ld   (C84A),a
ROM0:1DF7 21 CA C7         ld   hl,C7CA
ROM0:1DFA 09               add  hl,bc
ROM0:1DFB 7E               ld   a,(hl)
ROM0:1DFC E1               pop  hl
ROM0:1DFD C1               pop  bc
ROM0:1DFE C9               ret  
ROM0:1DFF F5               push af
ROM0:1E00 AF               xor  a
ROM0:1E01 EA 4A C8         ld   (C84A),a
ROM0:1E04 EA 4B C8         ld   (C84B),a
ROM0:1E07 F1               pop  af
ROM0:1E08 C9               ret

Pseudo-Random Numbers

Initial Seed (new game, after name entry)

  • 0x1E09-0x1E4E : Initial seed (final result is always 0x0F07031F)
ROM0:1E09 F5               push af
ROM0:1E0A C5               push bc
ROM0:1E0B D5               push de
ROM0:1E0C E5               push hl
ROM0:1E0D 21 FF FF         ld   hl,FFFF
ROM0:1E10 CB 96            res  2,(hl)
ROM0:1E12 21 07 FF         ld   hl,FF07
ROM0:1E15 CB 96            res  2,(hl)
ROM0:1E17 3E 01            ld   a,01
ROM0:1E19 E0 06            ld   (ff00+06),a
ROM0:1E1B E0 05            ld   (ff00+05),a
ROM0:1E1D CB D6            set  2,(hl)
ROM0:1E1F 06 00            ld   b,00
ROM0:1E21 21 55 C8         ld   hl,C855		;initial seed is stored in w0:C855 to w0:C858
ROM0:1E24 0E 04            ld   c,04
ROM0:1E26 F0 05            ld   a,(ff00+05)
ROM0:1E28 22               ldi  (hl),a
ROM0:1E29 FE 00            cp   a,00
ROM0:1E2B 28 01            jr   z,1E2E
ROM0:1E2D 04               inc  b
ROM0:1E2E 0D               dec  c
ROM0:1E2F 20 F5            jr   nz,1E26
ROM0:1E31 78               ld   a,b
ROM0:1E32 FE 00            cp   a,00
ROM0:1E34 20 05            jr   nz,1E3B
ROM0:1E36 3E 01            ld   a,01
ROM0:1E38 EA 55 C8         ld   (C855),a	;store 01 in w0:C855
ROM0:1E3B CD 7F 1E         call 1E7F		;Updates Pseudo-Random Numbers
ROM0:1E3E CD 7F 1E         call 1E7F		;Updates Pseudo-Random Numbers
ROM0:1E41 CD 7F 1E         call 1E7F		;Updates Pseudo-Random Numbers
ROM0:1E44 CD 7F 1E         call 1E7F		;Updates Pseudo-Random Numbers
ROM0:1E47 CD 7F 1E         call 1E7F		;Updates Pseudo-Random Numbers
ROM0:1E4A E1               pop  hl
ROM0:1E4B D1               pop  de
ROM0:1E4C C1               pop  bc
ROM0:1E4D F1               pop  af
ROM0:1E4E C9               ret

PRNG

  • 0x1E4F-0x1E7E - Main PRNG. Generates a 1-byte Pseudo-Random Number, and stores it in (C84D) and (C85B)
ROM0:1E4F F5               push af
ROM0:1E50 C5               push bc
ROM0:1E51 D5               push de
ROM0:1E52 FA 50 C8         ld   a,(C850)
ROM0:1E55 47               ld   b,a
ROM0:1E56 4F               ld   c,a
ROM0:1E57 FA 4F C8         ld   a,(C84F)
ROM0:1E5A CB 19            rr   c
ROM0:1E5C 1F               rra  
ROM0:1E5D CB 1A            rr   d
ROM0:1E5F A8               xor  b
ROM0:1E60 CB 12            rl   d
ROM0:1E62 17               rla  
ROM0:1E63 CB 11            rl   c
ROM0:1E65 EA 50 C8         ld   (C850),a
ROM0:1E68 FA 4E C8         ld   a,(C84E)
ROM0:1E6B EA 4F C8         ld   (C84F),a
ROM0:1E6E FA 4D C8         ld   a,(C84D)
ROM0:1E71 EA 4E C8         ld   (C84E),a
ROM0:1E74 79               ld   a,c
ROM0:1E75 EA 4D C8         ld   (C84D),a
ROM0:1E78 EA 5B C8         ld   (C85B),a
ROM0:1E7B D1               pop  de
ROM0:1E7C C1               pop  bc
ROM0:1E7D F1               pop  af
ROM0:1E7E C9               ret

Updates Pseudo-Random Numbers

  • 0x1E7F-0x1EB4 - Updates Pseudo-Random Numbers in (C84D) and (C855)
ROM0:1E7F F5               push af
ROM0:1E80 FA 55 C8         ld   a,(C855)
ROM0:1E83 EA 4D C8         ld   (C84D),a
ROM0:1E86 FA 56 C8         ld   a,(C856)
ROM0:1E89 EA 4E C8         ld   (C84E),a
ROM0:1E8C FA 57 C8         ld   a,(C857)
ROM0:1E8F EA 4F C8         ld   (C84F),a
ROM0:1E92 FA 58 C8         ld   a,(C858)
ROM0:1E95 EA 50 C8         ld   (C850),a
ROM0:1E98 CD 4F 1E         call 1E4F		;Generates a 1-byte Pseudo-Random Number
ROM0:1E9B FA 4D C8         ld   a,(C84D)
ROM0:1E9E EA 55 C8         ld   (C855),a
ROM0:1EA1 FA 4E C8         ld   a,(C84E)
ROM0:1EA4 EA 56 C8         ld   (C856),a
ROM0:1EA7 FA 4F C8         ld   a,(C84F)
ROM0:1EAA EA 57 C8         ld   (C857),a
ROM0:1EAD FA 50 C8         ld   a,(C850)
ROM0:1EB0 EA 58 C8         ld   (C858),a
ROM0:1EB3 F1               pop  af
ROM0:1EB4 C9               ret

Fixed PRNG - Card ID seed

  • 0x1EB5-0x1EE9 - Calls the PRNG, with the current card ID as a seed.

Called by the Construction card generation routine with the Construction card id as a parameter.

ROM0:1EB5 F5               push af
ROM0:1EB6 FA B3 C6         ld   a,(C6B3)
ROM0:1EB9 EA 4D C8         ld   (C84D),a
ROM0:1EBC FA B4 C6         ld   a,(C6B4)
ROM0:1EBF EA 4E C8         ld   (C84E),a          ;seed = card_id
ROM0:1EC2 FA B3 C6         ld   a,(C6B3)
ROM0:1EC5 EA 4F C8         ld   (C84F),a
ROM0:1EC8 3E 04            ld   a,04
ROM0:1ECA EA 50 C8         ld   (C850),a
ROM0:1ECD CD 4F 1E         call 1E7F              ;PRNG
ROM0:1ED0 FA 4D C8         ld   a,(C84D)
ROM0:1ED3 EA 51 C8         ld   (C851),a
ROM0:1ED6 FA 4E C8         ld   a,(C84E)
ROM0:1ED9 EA 52 C8         ld   (C852),a
ROM0:1EDC FA 4F C8         ld   a,(C84F)
ROM0:1EDF EA 53 C8         ld   (C853),a
ROM0:1EE2 FA 50 C8         ld   a,(C850)
ROM0:1EE5 EA 54 C8         ld   (C854),a
ROM0:1EE8 F1               pop  af
ROM0:1EE9 C9               ret

0:1EEA

ROM0:1EEA F5               push af
ROM0:1EEB FA 51 C8         ld   a,(C851)
ROM0:1EEE EA 4D C8         ld   (C84D),a
ROM0:1EF1 FA 52 C8         ld   a,(C852)
ROM0:1EF4 EA 4E C8         ld   (C84E),a
ROM0:1EF7 FA 53 C8         ld   a,(C853)
ROM0:1EFA EA 4F C8         ld   (C84F),a
ROM0:1EFD FA 54 C8         ld   a,(C854)
ROM0:1F00 EA 50 C8         ld   (C850),a
ROM0:1F03 CD 4F 1E         call 1E4F
ROM0:1F06 FA 4D C8         ld   a,(C84D)
ROM0:1F09 EA 51 C8         ld   (C851),a
ROM0:1F0C FA 4E C8         ld   a,(C84E)
ROM0:1F0F EA 52 C8         ld   (C852),a
ROM0:1F12 FA 4F C8         ld   a,(C84F)
ROM0:1F15 EA 53 C8         ld   (C853),a
ROM0:1F18 FA 50 C8         ld   a,(C850)
ROM0:1F1B EA 54 C8         ld   (C854),a
ROM0:1F1E F1               pop  af
ROM0:1F1F C9               ret

Pseudo-Random Number between x and y

  • 0x1F1F-0x1F47 - Generates a Pseudo-Random Number between (C859) and (C85A), then stores it in (C85B)
ROM0:1F20 F5               push af
ROM0:1F21 C5               push bc
ROM0:1F22 D5               push de
ROM0:1F23 FA 59 C8         ld   a,(C859)
ROM0:1F26 4F               ld   c,a
ROM0:1F27 FA 5A C8         ld   a,(C85A)
ROM0:1F2A B9               cp   c
ROM0:1F2B 20 05            jr   nz,1F32       ;If((C859) < (C85A)), jump to 0:1F32
ROM0:1F2D EA 5B C8         ld   (C85B),a      ;Else, (C85B) = (C85A), and get out of this function
ROM0:1F30 18 12            jr   1F44
ROM0:1F32 91               sub  c
ROM0:1F33 47               ld   b,a
ROM0:1F34 04               inc  b
ROM0:1F35 CD 7F 1E         call 1E7F          ;PRNG
ROM0:1F38 FA 5B C8         ld   a,(C85B)
ROM0:1F3B 57               ld   d,a
ROM0:1F3C CD DA 13         call 13DA          ;Alternate PRNG
ROM0:1F3F 7B               ld   a,e
ROM0:1F40 81               add  c
ROM0:1F41 EA 5B C8         ld   (C85B),a
ROM0:1F44 D1               pop  de
ROM0:1F45 C1               pop  bc
ROM0:1F46 F1               pop  af
ROM0:1F47 C9               ret

Generates Construction Cards data

  • 0x1F48-0x1F6F - Generates a new value for (C859)(C85A)(C85B) (used to generate Construction cards Cost, Alignment and Type)
ROM0:1F48 F5               push af
ROM0:1F49 C5               push bc
ROM0:1F4A D5               push de
ROM0:1F4B FA 59 C8         ld   a,(C859)
ROM0:1F4E 4F               ld   c,a
ROM0:1F4F FA 5A C8         ld   a,(C85A)
ROM0:1F52 B9               cp   c
ROM0:1F53 20 05            jr   nz,1F5A
ROM0:1F55 EA 5B C8         ld   (C85B),a
ROM0:1F58 18 12            jr   1F6C
ROM0:1F5A 91               sub  c
ROM0:1F5B 47               ld   b,a
ROM0:1F5C 04               inc  b
ROM0:1F5D CD EA 1E         call 1EEA           ;retrieve fixed seeds from wC851 - wC854, and run the standard PRNG once
ROM0:1F60 FA 5B C8         ld   a,(C85B)
ROM0:1F63 57               ld   d,a
ROM0:1F64 CD DA 13         call 13DA           ;alternate PRNG
ROM0:1F67 7B               ld   a,e
ROM0:1F68 81               add  c
ROM0:1F69 EA 5B C8         ld   (C85B),a
ROM0:1F6C D1               pop  de
ROM0:1F6D C1               pop  bc
ROM0:1F6E F1               pop  af
ROM0:1F6F C9               ret

Card Status

Increase Card Level

ROM0:1F70 F5               push af
ROM0:1F71 C5               push bc
ROM0:1F72 E5               push hl
ROM0:1F73 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1F76 E6 30            and  a,30
ROM0:1F78 4F               ld   c,a
ROM0:1F79 CB 31            swap c
ROM0:1F7B 06 00            ld   b,00
ROM0:1F7D 21 8E 1F         ld   hl,1F8E
ROM0:1F80 09               add  hl,bc
ROM0:1F81 FA A5 C7         ld   a,(C7A5)
ROM0:1F84 E6 CF            and  a,CF
ROM0:1F86 B6               or   (hl)
ROM0:1F87 EA A5 C7         ld   (C7A5),a
ROM0:1F8A E1               pop  hl
ROM0:1F8B C1               pop  bc
ROM0:1F8C F1               pop  af
ROM0:1F8D C9               ret  
Card Levels array
ROM0:1F8E
10 20 30 30

Decrease Card Level

ROM0:1F92 F5               push af
ROM0:1F93 C5               push bc
ROM0:1F94 E5               push hl
ROM0:1F95 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1F98 E6 30            and  a,30
ROM0:1F9A 4F               ld   c,a
ROM0:1F9B CB 31            swap c
ROM0:1F9D 06 00            ld   b,00
ROM0:1F9F 21 B0 1F         ld   hl,1FB0
ROM0:1FA2 09               add  hl,bc
ROM0:1FA3 FA A5 C7         ld   a,(C7A5)
ROM0:1FA6 E6 CF            and  a,CF
ROM0:1FA8 B6               or   (hl)
ROM0:1FA9 EA A5 C7         ld   (C7A5),a
ROM0:1FAC E1               pop  hl
ROM0:1FAD C1               pop  bc
ROM0:1FAE F1               pop  af
ROM0:1FAF C9               ret  
Card Levels array
ROM0:1FB0
00 00 10 20

Reset Card Level

ROM0:1FB4 F5               push af
ROM0:1FB5 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1FB8 E6 CF            and  a,CF
ROM0:1FBA F6 10            or   a,10
ROM0:1FBC EA A5 C7         ld   (C7A5),a
ROM0:1FBF F1               pop  af
ROM0:1FC0 C9               ret  

Retrieve Card Level

ROM0:1FC1 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1FC4 E6 30            and  a,30
ROM0:1FC6 CB 37            swap a
ROM0:1FC8 C9               ret  

Reveal Card

ROM0:1FC9 F5               push af
ROM0:1FCA FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1FCD F6 40            or   a,40
ROM0:1FCF EA A5 C7         ld   (C7A5),a
ROM0:1FD2 F1               pop  af
ROM0:1FD3 C9               ret  

Hide Card

ROM0:1FD4 F5               push af
ROM0:1FD5 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1FD8 E6 BF            and  a,BF
ROM0:1FDA EA A5 C7         ld   (C7A5),a
ROM0:1FDD F1               pop  af
ROM0:1FDE C9               ret  

Freezes Card

ROM0:1FDF F5               push af
ROM0:1FE0 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1FE3 F6 08            or   a,08
ROM0:1FE5 EA A5 C7         ld   (C7A5),a
ROM0:1FE8 F1               pop  af
ROM0:1FE9 C9               ret  

Unfreezes Card

  • 0x1FEA-0x1FF4 - Unfreezes card.
ROM0:1FEA F5               push af
ROM0:1FEB FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1FEE E6 F7            and  a,F7
ROM0:1FF0 EA A5 C7         ld   (C7A5),a
ROM0:1FF3 F1               pop  af
ROM0:1FF4 C9               ret  

Card stolen for a turn

  • 0x1FF5-0x1FFF - Indicates the monster has been stolen for a turn, returns to the opponent at the end of turn
ROM0:1FF5 F5               push af
ROM0:1FF6 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:1FF9 F6 80            or   a,80
ROM0:1FFB EA A5 C7         ld   (C7A5),a
ROM0:1FFE F1               pop  af
ROM0:1FFF C9               ret

Card controlled by its owner

ROM0:2000 F5               push af
ROM0:2001 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:2004 E6 7F            and  a,7F
ROM0:2006 EA A5 C7         ld   (C7A5),a
ROM0:2009 F1               pop  af
ROM0:200A C9               ret  

Remove Player's Card

ROM0:200B F5               push af
ROM0:200C FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:200F E6 F8            and  a,F8
ROM0:2011 F6 00            or   a,00
ROM0:2013 EA A5 C7         ld   (C7A5),a
ROM0:2016 F1               pop  af
ROM0:2017 C9               ret  

Remove CPU's Card

ROM0:2018 F5               push af
ROM0:2019 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:201C E6 F8            and  a,F8
ROM0:201E F6 01            or   a,01
ROM0:2020 EA A5 C7         ld   (C7A5),a
ROM0:2023 F1               pop  af
ROM0:2024 C9               ret  

Hide Player's Card, Level -1

ROM0:2025 F5               push af
ROM0:2026 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:2029 E6 F8            and  a,F8
ROM0:202B F6 02            or   a,02
ROM0:202D EA A5 C7         ld   (C7A5),a
ROM0:2030 F1               pop  af
ROM0:2031 C9               ret  

Hide CPU's Card, Level -1

ROM0:2032 F5               push af
ROM0:2033 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:2036 E6 F8            and  a,F8
ROM0:2038 F6 03            or   a,03
ROM0:203A EA A5 C7         ld   (C7A5),a
ROM0:203D F1               pop  af
ROM0:203E C9               ret  

Retrieves owner, card existance and unused frozen status

ROM0:203F FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:2042 E6 07            and  a,07
ROM0:2044 C9               ret

Retrieve Card Hidden status

ROM0:2045 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:2048 E6 40            and  a,40
ROM0:204A 28 02            jr   z,204E
ROM0:204C 3E 01            ld   a,01
ROM0:204E C9               ret  

Retrieve Card Frozen status

ROM0:204F FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:2052 E6 08            and  a,08
ROM0:2054 28 02            jr   z,2058
ROM0:2056 3E 01            ld   a,01
ROM0:2058 C9               ret  

Retrieve Card Level (lsb)

ROM0:2059 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:205C E6 10            and  a,10
ROM0:205E 28 02            jr   z,2062
ROM0:2060 3E 01            ld   a,01
ROM0:2062 C9               ret  

Retrieve Card Stolen status

ROM0:2063 FA A5 C7         ld   a,(C7A5)	;Card Status
ROM0:2066 E6 80            and  a,80
ROM0:2068 28 02            jr   z,206C
ROM0:206A 3E 01            ld   a,01
ROM0:206C C9               ret

Remove selected card from the field

  • 0x206D-0x2085 - Removes selected card from the field, and copies it to (CAD6)
ROM0:206D F5               push af
ROM0:206E C5               push bc
ROM0:206F CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM0:2072 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM0:2075 FA A3 C7         ld   a,(C7A3)	;Copy card being processed in bc
ROM0:2078 4F               ld   c,a
ROM0:2079 FA A4 C7         ld   a,(C7A4)
ROM0:207C 47               ld   b,a
ROM0:207D CD 9A 30         call 309A		;Copies card being processed to (CAD6)
ROM0:2080 CD E6 19         call 19E6		;Remove selected card from the field
ROM0:2083 C1               pop  bc
ROM0:2084 F1               pop  af
ROM0:2085 C9               ret  
  • 0x2086-0x209B - Removes selected card from the field
ROM0:2086 F5               push af
ROM0:2087 C5               push bc
ROM0:2088 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM0:208B CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM0:208E FA A3 C7         ld   a,(C7A3)	;Copy card being processed in bc
ROM0:2091 4F               ld   c,a
ROM0:2092 FA A4 C7         ld   a,(C7A4)
ROM0:2095 47               ld   b,a
ROM0:2096 CD E6 19         call 19E6		;Remove selected card from the field
ROM0:2099 C1               pop  bc
ROM0:209A F1               pop  af
ROM0:209B C9               ret

Reveal Hidden card subroutine

ROM0:209C C5               push bc
ROM0:209D CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM0:20A0 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM0:20A3 CD 45 20         call 2045		;Retrieve Card Hidden status
ROM0:20A6 FE 00            cp   a,00
ROM0:20A8 20 08            jr   nz,20B2		;If the card is Hidden, jump to 0:20B2 (useless, the code executed is the same !)
ROM0:20AA CD C9 1F         call 1FC9		;Reveal Card
ROM0:20AD CD FB 19         call 19FB		;Update selected card ID and status
ROM0:20B0 18 06            jr   20B8
ROM0:20B2 CD C9 1F         call 1FC9		;Reveal Card
ROM0:20B5 CD FB 19         call 19FB		;Update selected card ID and status
ROM0:20B8 C1               pop  bc
ROM0:20B9 C9               ret  
ROM0:20BA C9               ret  

Blanks IDs of Card played, Fusion and Equip

  • 0x20BB-0x20DB - Blanks IDs of Card played, Fusion and Equip (Player's turn)
ROM0:20BB F5               push af
ROM0:20BC 3E 00            ld   a,00
ROM0:20BE EA 8B C8         ld   (C88B),a
ROM0:20C1 3E 00            ld   a,00
ROM0:20C3 EA 8C C8         ld   (C88C),a	;Blanks Card played by CPU, or Monster Card targeted by Equip Card
ROM0:20C6 3E 00            ld   a,00
ROM0:20C8 EA 8D C8         ld   (C88D),a
ROM0:20CB 3E 00            ld   a,00
ROM0:20CD EA 8E C8         ld   (C88E),a	;Blanks Card played by Player, or Equip Card targeting Monster Card
ROM0:20D0 3E 00            ld   a,00
ROM0:20D2 EA 8F C8         ld   (C88F),a
ROM0:20D5 3E 00            ld   a,00
ROM0:20D7 EA 90 C8         ld   (C890),a	;Blanks Fusion Monster Card ID
ROM0:20DA F1               pop  af
ROM0:20DB C9               ret  
  • 0x20DC-0x20FC - Blanks IDs of Card played, Fusion and Equip (CPU's turn)
ROM0:20DC F5               push af
ROM0:20DD 3E 00            ld   a,00
ROM0:20DF EA 8B C8         ld   (C88B),a
ROM0:20E2 3E 00            ld   a,00
ROM0:20E4 EA 8C C8         ld   (C88C),a	;Blanks Card played by CPU, or Monster Card targeted by Equip Card
ROM0:20E7 3E 00            ld   a,00
ROM0:20E9 EA 8D C8         ld   (C88D),a
ROM0:20EC 3E 00            ld   a,00
ROM0:20EE EA 8E C8         ld   (C88E),a	;Blanks Card played by Player, or Equip Card targeting Monster Card
ROM0:20F1 3E 00            ld   a,00
ROM0:20F3 EA 8F C8         ld   (C88F),a
ROM0:20F6 3E 00            ld   a,00
ROM0:20F8 EA 90 C8         ld   (C890),a	;Blanks Fusion Monster Card ID
ROM0:20FB F1               pop  af
ROM0:20FC C9               ret

Copies Card played by CPU in (C88B)

ROM0:20FD F5               push af
ROM0:20FE CD 72 1A         call 1A72		;Checks if a card is being played
ROM0:2101 FE 00            cp   a,00
ROM0:2103 20 08            jr   nz,210D		;If there is no Card being played, get out of this function
ROM0:2105 79               ld   a,c
ROM0:2106 EA 8B C8         ld   (C88B),a
ROM0:2109 78               ld   a,b
ROM0:210A EA 8C C8         ld   (C88C),a	;Copy Card played by CPU in (C88B)
ROM0:210D F1               pop  af
ROM0:210E C9               ret

Monster Fusion

Inverts Fused cards 1 and 2

  • 0x2121 - 0x2141 - Inverts (C88B) and (C88D), Fused Monsters #1 and #2
ROM0:2121 F5               push af
ROM0:2122 C5               push bc
ROM0:2123 FA 8B C8         ld   a,(C88B)	;Fused Monster #1
ROM0:2126 4F               ld   c,a
ROM0:2127 FA 8C C8         ld   a,(C88C)
ROM0:212A 47               ld   b,a
ROM0:212B FA 8D C8         ld   a,(C88D)	;Fused Monster #2
ROM0:212E EA 8B C8         ld   (C88B),a
ROM0:2131 FA 8E C8         ld   a,(C88E)
ROM0:2134 EA 8C C8         ld   (C88C),a
ROM0:2137 79               ld   a,c
ROM0:2138 EA 8D C8         ld   (C88D),a
ROM0:213B 78               ld   a,b
ROM0:213C EA 8E C8         ld   (C88E),a
ROM0:213F C1               pop  bc
ROM0:2140 F1               pop  af
ROM0:2141 C9               ret

Fusion subroutine

  • 0x2142-0x2197 - Checks if the Fusion is valid, returns Fusion Monster ID in register de and stores it in (C88F)
ROM0:2142 C5               push bc
ROM0:2143 D5               push de
ROM0:2144 E5               push hl
ROM0:2145 CD 85 22         call 2285
ROM0:2148 FE 01            cp   a,01
ROM0:214A 20 04            jr   nz,2150
ROM0:214C 3E 01            ld   a,01
ROM0:214E 18 44            jr   2194
ROM0:2150 2E 01            ld   l,01
ROM0:2152 FA 8B C8         ld   a,(C88B)	;Fused Monster #1
ROM0:2155 4F               ld   c,a
ROM0:2156 FA 8C C8         ld   a,(C88C)
ROM0:2159 47               ld   b,a
ROM0:215A 11 00 00         ld   de,0000
ROM0:215D CD 14 1B         call 1B14		;Checks if Fused Monster #1 ≠ 0
ROM0:2160 A7               and  a
ROM0:2161 28 28            jr   z,218B		;If Fused Monster #1 == 0, get out of this function
ROM0:2163 FA 8D C8         ld   a,(C88D)	;Fused Monster #2
ROM0:2166 4F               ld   c,a
ROM0:2167 FA 8E C8         ld   a,(C88E)
ROM0:216A 47               ld   b,a
ROM0:216B CD 14 1B         call 1B14		;Checks if Fused Monster #2 ≠ 0
ROM0:216E A7               and  a
ROM0:216F 28 1A            jr   z,218B		;If Fused Monster #2 == 0, get out of this function
ROM0:2171 CD 98 21         call 2198		;Fusion check
ROM0:2174 FE 00            cp   a,00
ROM0:2176 20 04            jr   nz,217C
ROM0:2178 2E 00            ld   l,00
ROM0:217A 18 0F            jr   218B
ROM0:217C CD 21 21         call 2121		;Inverts Fused Monsters #1 and #2
ROM0:217F CD 98 21         call 2198		;Fusion check
ROM0:2182 FE 00            cp   a,00
ROM0:2184 20 02            jr   nz,2188
ROM0:2186 2E 00            ld   l,00
ROM0:2188 CD 21 21         call 2121		;Inverts Fused Monsters #1 and #2
ROM0:218B 7B               ld   a,e
ROM0:218C EA 8F C8         ld   (C88F),a	;Fused Monster ID
ROM0:218F 7A               ld   a,d
ROM0:2190 EA 90 C8         ld   (C890),a
ROM0:2193 7D               ld   a,l
ROM0:2194 E1               pop  hl
ROM0:2195 D1               pop  de
ROM0:2196 C1               pop  bc
ROM0:2197 C9               ret

Fusion check

  • 0x2198-0x222B - Checks if the Fusion is valid, returns a = 0 and de = Fusion_Monster_ID if it is valid, or a = 1 otherwise
ROM0:2198 C5               push bc
ROM0:2199 E5               push hl
ROM0:219A E8 FF            add  sp,FF
ROM0:219C FA 00 40         ld   a,(4000)
ROM0:219F F5               push af		;Stores current ROM Bank
ROM0:21A0 3E 0F            ld   a,0F
ROM0:21A2 CD 00 12         call 1200		;ROM Bank switch
ROM0:21A5 FA 8B C8         ld   a,(C88B)	;bc = Fused Monster #1
ROM0:21A8 4F               ld   c,a
ROM0:21A9 FA 8C C8         ld   a,(C88C)
ROM0:21AC 47               ld   b,a
ROM0:21AD CF               rst  08		;(returns ROM Bank for Fusion data in accumulator)
ROM0:21B0 EA 85 C8         ld   (C885),a	;Stores ROM Bank for Fusion data in (C885)
ROM0:21B3 CF               rst  08		;(returns Fusion Material pointer in accumulator)
ROM0:21B6 79               ld   a,c
ROM0:21B7 EA 87 C8         ld   (C887),a	;Stores Fusion Material pointer in (C887)
ROM0:21BA 78               ld   a,b
ROM0:21BB EA 88 C8         ld   (C888),a
ROM0:21BE FA 8B C8         ld   a,(C88B)	;bc = Fusion_material_ID +1
ROM0:21C1 C6 01            add  a,01
ROM0:21C3 4F               ld   c,a
ROM0:21C4 FA 8C C8         ld   a,(C88C)
ROM0:21C7 CE 00            adc  a,00
ROM0:21C9 47               ld   b,a
ROM0:21CA CF               rst  08		;(returns second ROM Bank for Fusion data in accumulator)


ROM0:21CD EA 86 C8         ld   (C886),a	;Stores second ROM Bank for Fusion data in (C886)
ROM0:21D0 CF               rst  08		;(returns second Fusion Material pointer in accumulator)
ROM0:21D3 79               ld   a,c
ROM0:21D4 EA 89 C8         ld   (C889),a	;Stores second Fusion Material pointer in (C889)
ROM0:21D7 78               ld   a,b
ROM0:21D8 EA 8A C8         ld   (C88A),a
ROM0:21DB F8 02            ld   hl,sp+02
ROM0:21DD 36 01            ld   (hl),01
ROM0:21DF FA 85 C8         ld   a,(C885)	;a = ROM Bank for Fusion data
ROM0:21E2 CD 00 12         call 1200		;ROM Bank switch
ROM0:21E5 CD 2C 22         call 222C		;Checks if end of Fusion array
ROM0:21E8 FE 00            cp   a,00
ROM0:21EA 28 25            jr   z,2211		;If end of Fusion array, jump to 0:2211
ROM0:21EC FA 87 C8         ld   a,(C887)	;hl = Fusion Material pointer
ROM0:21EF 6F               ld   l,a
ROM0:21F0 FA 88 C8         ld   a,(C888)
ROM0:21F3 67               ld   h,a
ROM0:21F4 2A               ldi  a,(hl)		;de = next Fusion material in array
ROM0:21F5 56               ld   d,(hl)
ROM0:21F6 5F               ld   e,a
ROM0:21F7 FA 8D C8         ld   a,(C88D)	;bc = Fused card #2
ROM0:21FA 4F               ld   c,a
ROM0:21FB FA 8E C8         ld   a,(C88E)
ROM0:21FE 47               ld   b,a
ROM0:21FF CD 14 1B         call 1B14		;Checks if Fused card #2 == Fusion Material ID
ROM0:2202 FE 00            cp   a,00
ROM0:2204 20 06            jr   nz,220C		;If(Fused Monster #2 ≠ Fusion Material ID), jump to 0:220C
ROM0:2206 F8 02            ld   hl,sp+02
ROM0:2208 36 00            ld   (hl),00
ROM0:220A 18 05            jr   2211
ROM0:220C CD 54 22         call 2254		;Next Fusion material in array
ROM0:220F 18 D4            jr   21E5		;Loop to 0:21E5
ROM0:2211 FA 87 C8         ld   a,(C887)	;a = Fusion Material pointer + 2
ROM0:2214 C6 02            add  a,02
ROM0:2216 6F               ld   l,a
ROM0:2217 FA 88 C8         ld   a,(C888)
ROM0:221A CE 00            adc  a,00
ROM0:221C 67               ld   h,a
ROM0:221D 2A               ldi  a,(hl)		;de = Fusion monster
ROM0:221E 56               ld   d,(hl)
ROM0:221F 5F               ld   e,a
ROM0:2220 F1               pop  af		;Retrieves previous ROM Bank
ROM0:2221 CD 00 12         call 1200		;ROM Bank switch
ROM0:2224 F8 00            ld   hl,sp+00
ROM0:2226 7E               ld   a,(hl)		;a = 0 if the Fusion succeeded, a = 1 if the Fusion failed
ROM0:2227 E8 01            add  sp,01
ROM0:2229 E1               pop  hl
ROM0:222A C1               pop  bc
ROM0:222B C9               ret

Checks if end of Fusion array

  • 0x222C-0x2253 - Returns 1 if the Fusion array has not been completely read, 0 otherwise
ROM0:222C C5               push bc
ROM0:222D D5               push de
ROM0:222E E5               push hl
ROM0:222F 2E 01            ld   l,01
ROM0:2231 FA 85 C8         ld   a,(C885)	;Current ROM Bank for Fusion data
ROM0:2234 4F               ld   c,a
ROM0:2235 FA 86 C8         ld   a,(C886)	;Last ROM Bank for Fusion data
ROM0:2238 B9               cp   c
ROM0:2239 20 14            jr   nz,224F		;If it is not the last ROM Bank for Fusion data, get out of this function
ROM0:223B FA 87 C8         ld   a,(C887)	;Fusion Material pointer
ROM0:223E 5F               ld   e,a
ROM0:223F FA 88 C8         ld   a,(C888)
ROM0:2242 57               ld   d,a
ROM0:2243 FA 89 C8         ld   a,(C889)	;Second Fusion Material pointer
ROM0:2246 4F               ld   c,a
ROM0:2247 FA 8A C8         ld   a,(C88A)
ROM0:224A 47               ld   b,a
ROM0:224B CD 14 1B         call 1B14		;Checks if the two Fusion Material pointers are equal
ROM0:224E 6F               ld   l,a
ROM0:224F 7D               ld   a,l
ROM0:2250 E1               pop  hl
ROM0:2251 D1               pop  de
ROM0:2252 C1               pop  bc
ROM0:2253 C9               ret

Next Fusion material in array

  • 0x2254-0x2284 - Increase Fusion pointer by 4, increments ROM Bank if needed
ROM0:2254 C5               push bc
ROM0:2255 D5               push de
ROM0:2256 01 00 80         ld   bc,8000		;ROM is loaded in (0000-7FFF) area
ROM0:2259 FA 87 C8         ld   a,(C887)	;de = Fusion Material pointer + 4
ROM0:225C C6 04            add  a,04
ROM0:225E 5F               ld   e,a
ROM0:225F FA 88 C8         ld   a,(C888)
ROM0:2262 CE 00            adc  a,00
ROM0:2264 57               ld   d,a
ROM0:2265 CD 14 1B         call 1B14		;Checks if Fusion Material pointer ≠ 0x8000
ROM0:2268 FE 00            cp   a,00
ROM0:226A 20 0E            jr   nz,227A		;If Fusion pointer < 0x8000, jump to 0:227A
ROM0:226C FA 85 C8         ld   a,(C885)	;ROM Bank for Fusion data
ROM0:226F C6 01            add  a,01		;ROM Bank ++
ROM0:2271 EA 85 C8         ld   (C885),a
ROM0:2274 CD 00 12         call 1200		;ROM Bank switch
ROM0:2277 11 04 40         ld   de,4004
ROM0:227A 7B               ld   a,e
ROM0:227B EA 87 C8         ld   (C887),a	;Fusion Material pointer = de
ROM0:227E 7A               ld   a,d
ROM0:227F EA 88 C8         ld   (C888),a
ROM0:2282 D1               pop  de
ROM0:2283 C1               pop  bc
ROM0:2284 C9               ret

Ensures Fused Monsters IDs are ≤ 800

ROM0:2285 C5               push bc
ROM0:2286 FA 8B C8         ld   a,(C88B)		;Fused Monster #1
ROM0:2289 4F               ld   c,a
ROM0:228A FA 8C C8         ld   a,(C88C)
ROM0:228D 47               ld   b,a
ROM0:228E CD 84 1A         call 1A84		;Checks Card ID validity
ROM0:2291 FE 01            cp   a,01
ROM0:2293 28 04            jr   z,2299		;If Fused Monster #1 ID ≤ 800, jump to 0:2299
ROM0:2295 3E 01            ld   a,01
ROM0:2297 18 14            jr   22AD		;Else a = 1, and get out of this function
ROM0:2299 FA 8D C8         ld   a,(C88D)		;Fused Monster #2
ROM0:229C 4F               ld   c,a
ROM0:229D FA 8E C8         ld   a,(C88E)
ROM0:22A0 47               ld   b,a
ROM0:22A1 CD 84 1A         call 1A84		;Checks Card ID validity
ROM0:22A4 FE 01            cp   a,01
ROM0:22A6 28 04            jr   z,22AC		;If Fused Monster #1 ID ≤ 800, jump to 0:22AC
ROM0:22A8 3E 01            ld   a,01
ROM0:22AA 18 01            jr   22AD		;Else a = 1, and get out of this function
ROM0:22AC AF               xor  a		;a = 0
ROM0:22AD C1               pop  bc
ROM0:22AE C9               ret

Initialize Battle values

ROM0:22AF F5               push af
ROM0:22B0 AF               xor  a
ROM0:22B1 EA 91 C8         ld   (C891),a	;Player's card ID
ROM0:22B4 EA 92 C8         ld   (C892),a
ROM0:22B7 EA 93 C8         ld   (C893),a	;Player's Life Points
ROM0:22BA EA 94 C8         ld   (C894),a
ROM0:22BD EA 95 C8         ld   (C895),a	;Player's Life Points (copy)
ROM0:22C0 EA 96 C8         ld   (C896),a
ROM0:22C3 EA 97 C8         ld   (C897),a	;Player's Monster ATK
ROM0:22C6 EA 98 C8         ld   (C898),a
ROM0:22C9 EA 99 C8         ld   (C899),a	;Player's Monster DEF
ROM0:22CC EA 9A C8         ld   (C89A),a
ROM0:22CF EA 9B C8         ld   (C89B),a	;Player's Monster Alignment
ROM0:22D2 EA 9C C8         ld   (C89C),a	;CPU's card ID
ROM0:22D5 EA 9D C8         ld   (C89D),a
ROM0:22D8 EA 9E C8         ld   (C89E),a	;CPU's Life Points
ROM0:22DB EA 9F C8         ld   (C89F),a
ROM0:22DE EA A0 C8         ld   (C8A0),a	;CPU's Life Points (copy)
ROM0:22E1 EA A1 C8         ld   (C8A1),a
ROM0:22E4 EA A2 C8         ld   (C8A2),a	;CPU's Monster ATK
ROM0:22E7 EA A3 C8         ld   (C8A3),a
ROM0:22EA EA A4 C8         ld   (C8A4),a	;CPU's Monster DEF
ROM0:22ED EA A5 C8         ld   (C8A5),a
ROM0:22F0 EA A6 C8         ld   (C8A6),a	;CPU's Monster Alignment
ROM0:22F3 EA A7 C8         ld   (C8A7),a	;? (Battle value)
ROM0:22F6 F1               pop  af
ROM0:22F7 C9               ret

0:22F8 (Copies 0x00 in (C8A7), to document)

ROM0:22F8 F5               push af
ROM0:22F9 3E 00            ld   a,00
ROM0:22FB EA A7 C8         ld   (C8A7),a
ROM0:22FE F1               pop  af
ROM0:22FF C9               ret  
ROM0:2300 EA A7 C8         ld   (C8A7),a
ROM0:2303 C9               ret

Determines which card to give after a duel

  • 0x23E7-0x2446 - Checks card drops probabilities, and returns Card ID in register bc
ROM0:23E7 F5               push af
ROM0:23E8 D5               push de
ROM0:23E9 E5               push hl
ROM0:23EA 3E 00            ld   a,00
ROM0:23EC EA 59 C8         ld   (C859),a
ROM0:23EF 3E FF            ld   a,FF
ROM0:23F1 EA 5A C8         ld   (C85A),a
ROM0:23F4 CD 20 1F         call 1F20		;PRN between 0 and 255
ROM0:23F7 FA 5B C8         ld   a,(C85B)	;a = PRN
ROM0:23FA 5F               ld   e,a
ROM0:23FB 3E 00            ld   a,00
ROM0:23FD EA 59 C8         ld   (C859),a
ROM0:2400 3E 07            ld   a,07
ROM0:2402 EA 5A C8         ld   (C85A),a
ROM0:2405 CD 20 1F         call 1F20		;PRN between 0 and 7
ROM0:2408 FA 5B C8         ld   a,(C85B)	;a = PRN
ROM0:240B 57               ld   d,a		;de = rnd[0;2047]
ROM0:240C 60               ld   h,b
ROM0:240D 69               ld   l,c		;hl = card drop probability pointer
ROM0:240E 01 00 00         ld   bc,0000
ROM0:2411 AF               xor  a		;a = 0
ROM0:2412 F5               push af		;push current iteration
ROM0:2413 C5               push bc		;push current Card ID
ROM0:2414 E6 01            and  a,01
ROM0:2416 20 14            jr   nz,242C		;If(a == 1), jump to 0:242C
ROM0:2418 2A               ldi  a,(hl)
ROM0:2419 47               ld   b,a
ROM0:241A 7E               ld   a,(hl)
ROM0:241B E6 F0            and  a,F0
ROM0:241D CB 38            srl  b
ROM0:241F 1F               rra
ROM0:2420 CB 38            srl  b
ROM0:2422 1F               rra
ROM0:2423 CB 38            srl  b
ROM0:2425 1F               rra
ROM0:2426 CB 38            srl  b
ROM0:2428 1F               rra
ROM0:2429 4F               ld   c,a		;bc = 12 msb (card drop probability)
ROM0:242A 18 06            jr   2432
ROM0:242C 2A               ldi  a,(hl)
ROM0:242D E6 0F            and  a,0F
ROM0:242F 47               ld   b,a
ROM0:2430 2A               ldi  a,(hl)
ROM0:2431 4F               ld   c,a		;bc = 12 lsb (card drop probability)
ROM0:2432 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM0:2435 C1               pop  bc
ROM0:2436 FE 00            cp   a,00
ROM0:2438 20 04            jr   nz,243E		;If(bc ≤ de), jump to 0:243E
ROM0:243A E8 02            add  sp,02		;Else get out of this function
ROM0:243C 18 05            jr   2443
ROM0:243E 03               inc  bc		;Card ID ++
ROM0:243F F1               pop  af		;Retrieves current iteration
ROM0:2440 3C               inc  a		;a ++
ROM0:2441 18 CF            jr   2412		;Loop to 0:2412
ROM0:2443 E1               pop  hl
ROM0:2444 D1               pop  de
ROM0:2445 F1               pop  af
ROM0:2446 C9               ret

Duel handling

First turn, no attack

ROM0:2447 F5               push af
ROM0:2448 3E 00            ld   a,00
ROM0:244A EA D1 C8         ld   (C8D1),a	;(C8D1) = 0 (attacks are disabled)
ROM0:244D 3E 00            ld   a,00
ROM0:244F EA D2 C8         ld   (C8D2),a	;(C8D2) = 0 (same, for link duels)
ROM0:2452 F1               pop  af
ROM0:2453 C9               ret

Other turns

ROM0:2454 F5               push af
ROM0:2455 FA D1 C8         ld   a,(C8D1)
ROM0:2458 FE 00            cp   a,00
ROM0:245A 20 05            jr   nz,2461
ROM0:245C 3E 01            ld   a,01
ROM0:245E EA D1 C8         ld   (C8D1),a	;(C8D1) = 1 (attacks are enabled)
ROM0:2461 F1               pop  af
ROM0:2462 C9               ret

Player loses

ROM0:2463 F5               push af
ROM0:2464 3E 02            ld   a,02
ROM0:2466 EA D1 C8         ld   (C8D1),a
ROM0:2469 F1               pop  af
ROM0:246A C9               ret

Player wins

ROM0:246B F5               push af
ROM0:246C 3E 03            ld   a,03
ROM0:246E EA D1 C8         ld   (C8D1),a
ROM0:2471 F1               pop  af
ROM0:2472 C9               ret

Duel Win and Loss subroutine

  • 0x2473-0x24B7 - Checks if the game has been won by either player during the duel
ROM0:2473 C5               push bc
ROM0:2474 0E 00            ld   c,00
ROM0:2476 FA B1 C7         ld   a,(C7B1)	;Menu ID
ROM0:2479 FE 01            cp   a,01		;Campaign Mode
ROM0:247B 20 14            jr   nz,2491		;If it isn't a Campaign Mode duel, jump to 0:2491
ROM0:247D FA D1 C8         ld   a,(C8D1)
ROM0:2480 FE 02            cp   a,02
ROM0:2482 20 02            jr   nz,2486		;If the Player didn't lose, jump to 0:2486
ROM0:2484 0E 01            ld   c,01
ROM0:2486 FA D1 C8         ld   a,(C8D1)
ROM0:2489 FE 03            cp   a,03
ROM0:248B 20 02            jr   nz,248F		;If the Player didn't win, jump to 0:248F
ROM0:248D 0E 01            ld   c,01
ROM0:248F 18 24            jr   24B5		;Exit this function
ROM0:2491 FA D1 C8         ld   a,(C8D1)
ROM0:2494 FE 02            cp   a,02
ROM0:2496 20 02            jr   nz,249A		;If the Player didn't lose, jump to 0:249A
ROM0:2498 0E 01            ld   c,01
ROM0:249A FA D1 C8         ld   a,(C8D1)
ROM0:249D FE 03            cp   a,03
ROM0:249F 20 02            jr   nz,24A3		;If the Player didn't lose, jump to 0:24A3
ROM0:24A1 0E 01            ld   c,01
ROM0:24A3 FA D2 C8         ld   a,(C8D2)
ROM0:24A6 FE 02            cp   a,02
ROM0:24A8 20 02            jr   nz,24AC
ROM0:24AA 0E 01            ld   c,01
ROM0:24AC FA D2 C8         ld   a,(C8D2)
ROM0:24AF FE 03            cp   a,03
ROM0:24B1 20 02            jr   nz,24B5
ROM0:24B3 0E 01            ld   c,01
ROM0:24B5 79               ld   a,c
ROM0:24B6 C1               pop  bc
ROM0:24B7 C9               ret

Did the player win ?

  • 0x24B8-0x24F5 - Returns 1 if the player won, 0 otherwise
ROM0:24B8 FA B1 C7         ld   a,(C7B1)	;Menu ID
ROM0:24BB FE 01            cp   a,01
ROM0:24BD 20 0E            jr   nz,24CD		;If this isn't Campaign, jump to 0:24CD
ROM0:24BF FA D1 C8         ld   a,(C8D1)	;Did the player won a CPU Duel ?
ROM0:24C2 FE 02            cp   a,02
ROM0:24C4 20 03            jr   nz,24C9		;If the player won a CPU Duel, jump to 0:24C9
ROM0:24C6 AF               xor  a
ROM0:24C7 18 02            jr   24CB
ROM0:24C9 3E 01            ld   a,01
ROM0:24CB 18 28            jr   24F5
ROM0:24CD FA D1 C8         ld   a,(C8D1)	;Did the player won a CPU Duel ?
ROM0:24D0 FE 03            cp   a,03
ROM0:24D2 20 04            jr   nz,24D8		;If the player lost a CPU Duel, jump to 0:24D8
ROM0:24D4 3E 01            ld   a,01
ROM0:24D6 18 1D            jr   24F5
ROM0:24D8 FA D1 C8         ld   a,(C8D1)
ROM0:24DB FE 02            cp   a,02
ROM0:24DD 20 03            jr   nz,24E2		;If this isn't a CPU duel, jump to 0:24E2
ROM0:24DF AF               xor  a
ROM0:24E0 18 13            jr   24F5
ROM0:24E2 FA D2 C8         ld   a,(C8D2)	;Did the player won a Link Duel ?
ROM0:24E5 FE 03            cp   a,03
ROM0:24E7 20 03            jr   nz,24EC		;If the player lost a Link Duel, jump to 0:24EC
ROM0:24E9 AF               xor  a
ROM0:24EA 18 09            jr   24F5
ROM0:24EC FA D2 C8         ld   a,(C8D2)
ROM0:24EF FE 03            cp   a,03
ROM0:24F1 20 02            jr   nz,24F5		;If this isn't a Link Duel, get out of this function
ROM0:24F3 3E 01            ld   a,01
ROM0:24F5 C9               ret  

Did the player lose ?

  • 0x24F6-0x2533 - Returns 1 if the player lost, 0 otherwise
ROM0:24F6 FA B1 C7         ld   a,(C7B1)	;Menu ID
ROM0:24F9 FE 01            cp   a,01
ROM0:24FB 20 0E            jr   nz,250B		;If this isn't Campaign, jump to 0:250B
ROM0:24FD FA D1 C8         ld   a,(C8D1)	;Did the player lost a CPU Duel ?
ROM0:2500 FE 03            cp   a,03
ROM0:2502 20 03            jr   nz,2507		;If the player lost a CPU Duel, jump to 0:2507
ROM0:2504 AF               xor  a
ROM0:2505 18 02            jr   2509
ROM0:2507 3E 01            ld   a,01
ROM0:2509 18 28            jr   2533
ROM0:250B FA D1 C8         ld   a,(C8D1)	;Did the player lost a CPU Duel ?
ROM0:250E FE 03            cp   a,03
ROM0:2510 20 03            jr   nz,2515		;If the player lost a CPU Duel, jump to 0:2515
ROM0:2512 AF               xor  a
ROM0:2513 18 1E            jr   2533
ROM0:2515 FA D1 C8         ld   a,(C8D1)
ROM0:2518 FE 02            cp   a,02
ROM0:251A 20 04            jr   nz,2520		;If this isn't a CPU duel, jump to 0:2520
ROM0:251C 3E 01            ld   a,01
ROM0:251E 18 13            jr   2533
ROM0:2520 FA D2 C8         ld   a,(C8D2)	;Did the player lost a Link Duel ?
ROM0:2523 FE 03            cp   a,03
ROM0:2525 20 04            jr   nz,252B		;If the player lost a Link Duel, jump to 0:252B
ROM0:2527 3E 01            ld   a,01
ROM0:2529 18 08            jr   2533
ROM0:252B FA D2 C8         ld   a,(C8D2)
ROM0:252E FE 03            cp   a,03
ROM0:2530 20 01            jr   nz,2533		;If this isn't a Link Duel, get out of this function
ROM0:2532 AF               xor  a
ROM0:2533 C9               ret

New Game data 1

Starter deck copy

  • 0x2534 - Loops 40 times
ROM0:2534 F5               push af
ROM0:2535 C5               push bc
ROM0:2536 D5               push de
ROM0:2537 E5               push hl
ROM0:2538 21 5D 25         ld   hl,255D		;Starter deck pointer
ROM0:253B 1E 00            ld   e,00
ROM0:253D 7B               ld   a,e		;Set number of cards copied to 0
ROM0:253E FE 28            cp   a,28
ROM0:2540 30 16            jr   nc,2558		;If less than 40 cards have been copied to the deck, jump to 0:2558
ROM0:2542 CF               rst  08
  • 0x2547 - Copies current card in deck
ROM0:2547 2A               ldi  a,(hl)		;Load current card in accumulator
ROM0:2548 47               ld   b,a		;Copy it in b
ROM0:2549 CF               rst  08
  • 0x2547 - pop registers and returns to starter deck copy
ROM0:2558 E1               pop  hl
ROM0:2559 D1               pop  de
ROM0:255A C1               pop  bc
ROM0:255B F1               pop  af
ROM0:255C C9               ret

Starter deck

  • 0x255D - Starter deck
ROM0:255D
-----------------------------------------------
DB 01 0F 02 89 01 DB 01 8F 01 DB 01 8D 01 F8 01
09 00 09 00 8D 01 92 01 09 00 24 02 D3 00 B4 01
33 02 BC 01 A6 01 04 02 C5 00 9A 01 33 02 BC 01
E6 01 0C 02 43 02 89 00 63 02 CA 00 CF 00 63 02
89 00 89 00 7A 00 61 02 25 02 FA 01 B6 00 A4 01
-----------------------------------------------
3× Sinister Serpent
1× Milus Radiant
1× Zone Eater
1× Swordsman from a Foreign Land
2× Leghul
1× Fungi of the Musk
3× Shadow Specter
1× Monster Eye
1× Bone Mouse
1× Kaminarikozou
1× White Dolphin
2× Wretched Ghost of the Attic
2× Turu-Purun
1× Jinzo #7
1× Muka Muka
1× Mech Mole Zombie
1× Mechanical Spider
1× Boo Koo
1× Star Boy
1× Abyss Flower
3× Mystery Hand
2× Hiro's Shadow Scout
1× Air Marmot of Nefariousness
1× Droll Bird
1× Yamatano Dragon Scroll
1× Bladefly
1× Frog The Jam
1× Gale Dogra
1× Masked Clown
1× Cyber-Stein

Gives a card to the Player

ROM0:26A8 F5               push af
ROM0:26A9 D5               push de
ROM0:26AA E5               push hl
ROM0:26AB FA 00 40         ld   a,(4000)
ROM0:26AE F5               push af
ROM0:26AF 3E 3E            ld   a,3E
ROM0:26B1 CD 00 12         call 1200		;ROM Bank switch to 0x3E
ROM0:26B4 CD E8 71         call 71E8		;Returns the address containing the card drop list
ROM0:26B7 7A               ld   a,d
ROM0:26B8 CD 00 12         call 1200		;ROM Bank switch to 0x24 or 0x25
ROM0:26BB CD E7 23         call 23E7		;Determine which card to give
ROM0:26BE F1               pop  af
ROM0:26BF CD 00 12         call 1200		;ROM Bank switch
ROM0:26C2 E1               pop  hl
ROM0:26C3 D1               pop  de
ROM0:26C4 F1               pop  af
ROM0:26C5 C9               ret

New Game data 2

Initialize Duel Records

  • 0x26C6-0x26EB - Sets Duel Records to either 00s or to values at 0x276E if Debug is enabled
ROM0:26C6 F5               push af
ROM0:26C7 C5               push bc
ROM0:26C8 D5               push de
ROM0:26C9 E5               push hl
ROM0:26CA AF               xor  a
ROM0:26CB 21 0C C9         ld   hl,C90C
ROM0:26CE CF               rst  08
ROM0:26CF 11 04       => Checks if(wC8D6 ≠ 0)
ROM0:26D1 FE 00            cp   a,00
ROM0:26D3 20 05            jr   nz,26DA		;If debug, jump to 0:26DA
ROM0:26D5 11 0A 27         ld   de,270A		;New Game Duel Records
ROM0:26D8 18 03            jr   26DD
ROM0:26DA 11 6E 27         ld   de,276E		;Debug Duel Records
ROM0:26DD 0E 19            ld   c,19
ROM0:26DF 1A               ld   a,(de)
ROM0:26E0 22               ldi  (hl),a
ROM0:26E1 13               inc  de
ROM0:26E2 1A               ld   a,(de)
ROM0:26E3 22               ldi  (hl),a
ROM0:26E4 13               inc  de
ROM0:26E5 0D               dec  c
ROM0:26E6 20 F7            jr   nz,26DF
ROM0:26E8 21 3E C9         ld   hl,C93E
ROM0:26EB CF               rst  08

Initialize Duel Wins

  • 0x26EF-0x2709 - Sets Duel Wins to either 00s or to values at 0x279A if Debug is enabled
ROM0:26EF FE 00            cp   a,00
ROM0:26F0 20 05            jr   nz,26F7		;If debug, jump to 0:26F7
ROM0:26F2 11 3C 27         ld   de,273C		;New Game Duel Wins
ROM0:26F5 18 03            jr   26FA
ROM0:26F7 11 9A 27         ld   de,279A		;Debug Duel Wins
ROM0:26FA 0E 19            ld   c,19
ROM0:26FC 1A               ld   a,(de)
ROM0:26FD 22               ldi  (hl),a
ROM0:26FE 13               inc  de
ROM0:26FF 1A               ld   a,(de)
ROM0:2700 22               ldi  (hl),a
ROM0:2701 13               inc  de
ROM0:2702 0D               dec  c
ROM0:2703 20 F7            jr   nz,26FC
ROM0:2705 E1               pop  hl
ROM0:2706 D1               pop  de
ROM0:2707 C1               pop  bc
ROM0:2708 F1               pop  af
ROM0:2709 C9               ret

New Game Duel Records and Wins

  • 0x270A-0x2761 - Initial Duel Records. 0 wins against every opponent.

Debug Duel Records and Wins

  • 0x276E-0x27C5 - Debug Initial Duel Records. 9 wins against almost every opponent, 4 wins against DarkNite.

Music tracks management

Title Screen music

ROM0:29E1 F5               push af
ROM0:29E2 3E 00            ld   a,00
ROM0:29E4 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:29E7 F1               pop  af
ROM0:29E8 C9               ret  

Duel Preparation music

ROM0:29E9 F5               push af
ROM0:29EA 3E 17            ld   a,17
ROM0:29EC CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:29EF F1               pop  af
ROM0:29F0 C9               ret  

Main Menu music

ROM0:29F1 F5               push af
ROM0:29F2 3E 01            ld   a,01
ROM0:29F4 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:29F7 F1               pop  af
ROM0:29F8 C9               ret  

Duel Records music

ROM0:29F9 F5               push af
ROM0:29FA 3E 18            ld   a,18
ROM0:29FC CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:29FF F1               pop  af
ROM0:2A00 C9               ret  

Password Mode music

ROM0:2A01 F5               push af
ROM0:2A02 3E 1A            ld   a,1A
ROM0:2A04 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A07 F1               pop  af
ROM0:2A08 C9               ret  

Construction Mode music

ROM0:2A09 F5               push af
ROM0:2A0A 3E 1B            ld   a,1B
ROM0:2A0C CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A0F F1               pop  af
ROM0:2A10 C9               ret  

Name Entry music

ROM0:2A11 F5               push af
ROM0:2A12 3E 19            ld   a,19
ROM0:2A14 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A17 F1               pop  af
ROM0:2A18 C9               ret  

Campaign Mode music

ROM0:2A19 F5               push af
ROM0:2A1A 3E 14            ld   a,14
ROM0:2A1C CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A1F F1               pop  af
ROM0:2A20 C9               ret  

Link Duel music (fail-safe)

ROM0:2A21 F5               push af
ROM0:2A22 3E 11            ld   a,11
ROM0:2A24 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A27 F1               pop  af
ROM0:2A28 C9               ret  

Duel Win music

ROM0:2A29 F5               push af
ROM0:2A2A 3E 12            ld   a,12
ROM0:2A2C CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A2F F1               pop  af
ROM0:2A30 C9               ret  

Duel Loss music

ROM0:2A31 F5               push af
ROM0:2A32 3E 13            ld   a,13
ROM0:2A34 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A37 F1               pop  af
ROM0:2A38 C9               ret  

Tea music

ROM0:2A39 F5               push af
ROM0:2A3A 3E 15            ld   a,15
ROM0:2A3C CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A3F F1               pop  af
ROM0:2A40 C9               ret  

Grandpa music

ROM0:2A41 F5               push af
ROM0:2A42 3E 16            ld   a,16
ROM0:2A44 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A47 F1               pop  af
ROM0:2A48 C9               ret  

Correct Password music

ROM0:2A49 F5               push af
ROM0:2A4A 3E 06            ld   a,06
ROM0:2A4C CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A4F F1               pop  af
ROM0:2A50 C9               ret  

Credits music

ROM0:2A51 F5               push af
ROM0:2A52 3E 1C            ld   a,1C
ROM0:2A54 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A57 F1               pop  af
ROM0:2A58 C9               ret  

Duel Music subroutine

ROM0:2A59 F5               push af
ROM0:2A5A FA B1 C7         ld   a,(C7B1)
ROM0:2A5D FE 01            cp   a,01
ROM0:2A5F 20 08            jr   nz,2A69		;If it's not Campaign Mode, jump to 0:2A69
ROM0:2A61 FA CE C8         ld   a,(C8CE)	;a = Duel Music ID
ROM0:2A64 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A67 18 05            jr   2A6E
ROM0:2A69 3E 11            ld   a,11		;Link Duel Music ID
ROM0:2A6B CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A6E F1               pop  af
ROM0:2A6F C9               ret

Pre-duel Music subroutine

ROM0:2A70 F5               push af
ROM0:2A71 FA CD C8         ld   a,(C8CD)	;a = Pre-duel Music ID
ROM0:2A74 CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
ROM0:2A77 F1               pop  af
ROM0:2A78 C9               ret

Sound Effects management

  • 0x2A79-0x2B50 - Calls 0:2BFC with accumulator as a parameter, or calls 0x2B51 to return

0:2A79

ROM0:2A79 F5               push af
ROM0:2A7A 3E 06            ld   a,06
ROM0:2A7C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2A7F F1               pop  af
ROM0:2A80 C9               ret

SE: Validate (Menu)

ROM0:2A81 F5               push af
ROM0:2A82 3E 03            ld   a,03
ROM0:2A84 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2A87 F1               pop  af
ROM0:2A88 C9               ret

SE: Cursor

ROM0:2A89 F5               push af
ROM0:2A8A 3E 02            ld   a,02
ROM0:2A8C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2A8F F1               pop  af
ROM0:2A90 C9               ret

SE: Invalid

ROM0:2A91 F5               push af
ROM0:2A92 3E 06            ld   a,06
ROM0:2A94 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2A97 F1               pop  af
ROM0:2A98 C9               ret

SE: Validate (Duel)

ROM0:2A99 F5               push af
ROM0:2A9A 3E 03            ld   a,03
ROM0:2A9C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2A9F F1               pop  af
ROM0:2AA0 C9               ret  

0:2AA1

ROM0:2AA1 F5               push af
ROM0:2AA2 3E 02            ld   a,02
ROM0:2AA4 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AA7 F1               pop  af
ROM0:2AA8 C9               ret  

SE: Set Trap card / Failed Fusion

ROM0:2AA9 F5               push af
ROM0:2AAA 3E 01            ld   a,01
ROM0:2AAC CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AAF F1               pop  af
ROM0:2AB0 C9               ret

0:2AB1

ROM0:2AB1 F5               push af
ROM0:2AB2 3E 06            ld   a,06
ROM0:2AB4 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AB7 F1               pop  af
ROM0:2AB8 C9               ret  

SE: Effect Monster

ROM0:2AB9 F5               push af
ROM0:2ABA 3E 04            ld   a,04
ROM0:2ABC CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2ABF F1               pop  af
ROM0:2AC0 C9               ret

0:2AC1

ROM0:2AC1 F5               push af
ROM0:2AC2 3E 05            ld   a,05
ROM0:2AC4 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AC7 F1               pop  af
ROM0:2AC8 C9               ret  

0:2AC9

ROM0:2AC9 F5               push af
ROM0:2ACA 3E 14            ld   a,14
ROM0:2ACC CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2ACF F1               pop  af
ROM0:2AD0 C9               ret  

0:2AD1

ROM0:2AD1 F5               push af
ROM0:2AD2 3E 07            ld   a,07
ROM0:2AD4 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AD7 F1               pop  af
ROM0:2AD8 C9               ret  

0:2AD9 (Removed)

ROM0:2AD9 F5               push af
ROM0:2ADA 3E 20            ld   a,20
ROM0:2ADC CD 51 2B         call 2B51		;Fail-safe for Sound Effects no longer used
ROM0:2ADF F1               pop  af
ROM0:2AE0 C9               ret

0:2AE1

ROM0:2AE1 F5               push af
ROM0:2AE2 3E 0A            ld   a,0A
ROM0:2AE4 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AE7 F1               pop  af
ROM0:2AE8 C9               ret  

SE: Cursor (Duel)

ROM0:2AE9 F5               push af
ROM0:2AEA 3E 09            ld   a,09
ROM0:2AEC CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AEF F1               pop  af
ROM0:2AF0 C9               ret  

0:2AF1 (Removed)

ROM0:2AF1 F5               push af
ROM0:2AF2 3E 1B            ld   a,1B
ROM0:2AF4 CD 51 2B         call 2B51		;Fail-safe for Sound Effects no longer used
ROM0:2AF7 F1               pop  af
ROM0:2AF8 C9               ret  

0:2AF9

ROM0:2AF9 F5               push af
ROM0:2AFA 3E 10            ld   a,10
ROM0:2AFC CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2AFF F1               pop  af
ROM0:2B00 C9               ret  

SE: Swords of Revealing Light

ROM0:2B01 F5               push af
ROM0:2B02 3E 11            ld   a,11
ROM0:2B04 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B07 F1               pop  af
ROM0:2B08 C9               ret  

SE: Dark Hole

ROM0:2B09 F5               push af
ROM0:2B0A 3E 12            ld   a,12
ROM0:2B0C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B0F F1               pop  af
ROM0:2B10 C9               ret  

SE: Raigeki

ROM0:2B11 F5               push af
ROM0:2B12 3E 13            ld   a,13
ROM0:2B14 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B17 F1               pop  af
ROM0:2B18 C9               ret  

0:2B19

ROM0:2B19 F5               push af
ROM0:2B1A 3E 0D            ld   a,0D
ROM0:2B1C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B1F F1               pop  af
ROM0:2B20 C9               ret  

0:2B21

ROM0:2B21 F5               push af
ROM0:2B22 3E 0C            ld   a,0C
ROM0:2B24 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B27 F1               pop  af
ROM0:2B28 C9               ret  

SE: End of turn

ROM0:2B29 F5               push af
ROM0:2B2A 3E 0B            ld   a,0B
ROM0:2B2C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B2F F1               pop  af
ROM0:2B30 C9               ret  

0:2B31

ROM0:2B31 F5               push af
ROM0:2B32 3E 08            ld   a,08
ROM0:2B34 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B37 F1               pop  af
ROM0:2B38 C9               ret  

0:2B39

ROM0:2B39 F5               push af
ROM0:2B3A 3E 00            ld   a,00
ROM0:2B3C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B3F F1               pop  af
ROM0:2B40 C9               ret  

0:2B41

ROM0:2B41 F5               push af
ROM0:2B42 3E 0E            ld   a,0E
ROM0:2B44 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B47 F1               pop  af
ROM0:2B48 C9               ret  

SE: Exodia

ROM0:2B49 F5               push af
ROM0:2B4A 3E 0F            ld   a,0F
ROM0:2B4C CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
ROM0:2B4F F1               pop  af
ROM0:2B50 C9               ret

Fail-safe for Sound Effects no longer used

ROM0:2B51 C9               ret

Music and SE management

Loads Music ROM Bank and pointer

ROM0:2B52 F5               push af
ROM0:2B53 C5               push bc
ROM0:2B54 D5               push de
ROM0:2B55 E5               push hl
ROM0:2B56 06 00            ld   b,00
ROM0:2B58 4F               ld   c,a
ROM0:2B59 CB 21            sla  c
ROM0:2B5B CB 10            rl   b
ROM0:2B5D CB 21            sla  c
ROM0:2B5F CB 10            rl   b
ROM0:2B61 21 74 2B         ld   hl,2B74		;Music Bank
ROM0:2B64 09               add  hl,bc
ROM0:2B65 2A               ldi  a,(hl)
ROM0:2B66 5F               ld   e,a
ROM0:2B67 2A               ldi  a,(hl)
ROM0:2B68 57               ld   d,a
ROM0:2B69 2A               ldi  a,(hl)		;Music pointer
ROM0:2B6A 66               ld   h,(hl)
ROM0:2B6B 6F               ld   l,a
ROM0:2B6C CD 11 3C         call 3C11		;Check if Music ROM Bank and pointer changed, and store these in WRAM
ROM0:2B6F E1               pop  hl
ROM0:2B70 D1               pop  de
ROM0:2B71 C1               pop  bc
ROM0:2B72 F1               pop  af
ROM0:2B73 C9               ret

Music ROM Bank and pointers

  • 0x2B74-0x2BFB - ROM Banks and pointers to the Game Boy Sound files
ROM0:2B74
41 00 02 40 - Title Screen
41 00 88 46 - Main Menu
41 00 45 50 - Stage 1 Pre-Duel
41 00 4B 55 - Stage 2 Pre-Duel
42 00 02 40 - Stage 3 Pre-Duel
42 00 2B 4B - Stage 4 Pre-Duel
42 00 08 57 - Stage 5 Pre-Duel
43 00 02 40 - Stage 1 Duel
44 00 02 40 - 
45 00 02 40 - Stage 2 Duel
44 00 0D 69 - Unused Duel
46 00 02 40 - Stage 3 Duel
46 00 E4 5F - 
47 00 02 40 - Marik Ishtar Duel
48 00 02 40 - DarkNite Duel
49 00 02 40 - 
4A 00 02 40 - Yami Yugi Duel
4B 00 02 40 - Link Duel
4C 00 02 40 - Duel win
4C 00 C1 41 - Duel loss
4C 00 87 42 - Stage selection
4C 00 C9 49 - Tea gives a card
4C 00 FC 4F - Grandpa gives a card
4C 00 AC 58 - Pre-Duel Menu
4D 00 02 40 - Duel Records
4D 00 14 50 - Name entry
4D 00 C0 55 - Password entry
4D 00 35 59 - Construction Mode
4E 00 02 40 - Credits
4F 00 02 40 - Yami Bakura Duel
50 00 02 40 - Shadi Duel
51 00 02 40 - Nitemare Duel
52 00 02 40 - Unused Duel
53 00 02 40 - Unused Credits

Loads Sound Effect Bank and pointer

  • 0x2BFC-0x2C19 - Loads Sound Effect Bank and pointer
ROM0:2BFC F5               push af
ROM0:2BFD C5               push bc
ROM0:2BFE D5               push de
ROM0:2BFF E5               push hl
ROM0:2C00 6F               ld   l,a
ROM0:2C01 FA 00 40         ld   a,(4000)
ROM0:2C04 F5               push af
ROM0:2C05 3E 40            ld   a,40
ROM0:2C07 CD 00 12         call 1200          ;ROM Bank switch
ROM0:2C0A 7D               ld   a,l
ROM0:2C0B CD 02 40         call 4002          ;Loads Sound Effect pointer
ROM0:2C0E F1               pop  af
ROM0:2C0F CD 00 12         call 1200          ;ROM Bank switch
ROM0:2C12 CD 75 3C         call 3C75
ROM0:2C15 E1               pop  hl
ROM0:2C16 D1               pop  de
ROM0:2C17 C1               pop  bc
ROM0:2C18 F1               pop  af
ROM0:2C19 C9               ret

Battle Operation 1

(C997) (C998) flags check

0:2C1A
  • 0x2C1A-0x2C23 - Sets (C997) and (C998) to 0
ROM0:2C1A F5               push af
ROM0:2C1B AF               xor  a
ROM0:2C1C EA 97 C9         ld   (C997),a
ROM0:2C1F EA 98 C9         ld   (C998),a
ROM0:2C22 F1               pop  af
ROM0:2C23 C9               ret  
0:2C24
  • 0x2C24-0x2C2E - (C997) | 1
ROM0:2C24 F5               push af
ROM0:2C25 FA 97 C9         ld   a,(C997)
ROM0:2C28 F6 01            or   a,01
ROM0:2C2A EA 97 C9         ld   (C997),a
ROM0:2C2D F1               pop  af
ROM0:2C2E C9               ret  
0:2C2F
  • 0x2C2F-0x2C39 - (C997) & 0xFE
ROM0:2C2F F5               push af
ROM0:2C30 FA 97 C9         ld   a,(C997)
ROM0:2C33 E6 FE            and  a,FE
ROM0:2C35 EA 97 C9         ld   (C997),a
ROM0:2C38 F1               pop  af
ROM0:2C39 C9               ret  
0:2C3A
  • 0x2C3A-0x2C44 - (C998) | 1
ROM0:2C3A F5               push af
ROM0:2C3B FA 98 C9         ld   a,(C998)
ROM0:2C3E F6 01            or   a,01
ROM0:2C40 EA 98 C9         ld   (C998),a
ROM0:2C43 F1               pop  af
ROM0:2C44 C9               ret  
0:2C45
  • 0x2C45-0x2C4F - (C998) & 0xFE
ROM0:2C45 F5               push af
ROM0:2C46 FA 98 C9         ld   a,(C998)
ROM0:2C49 E6 FE            and  a,FE
ROM0:2C4B EA 98 C9         ld   (C998),a
ROM0:2C4E F1               pop  af
ROM0:2C4F C9               ret  
0:2C50
  • 0x2C50-0x2C59 - (C997) & 0x01
ROM0:2C50 FA 97 C9         ld   a,(C997)
ROM0:2C53 E6 01            and  a,01
ROM0:2C55 28 02            jr   z,2C59
ROM0:2C57 3E 01            ld   a,01
ROM0:2C59 C9               ret  
0:2C5A
  • 0x2C5A-0x2C63 - (C998) & 0x01
ROM0:2C5A FA 98 C9         ld   a,(C998)
ROM0:2C5D E6 01            and  a,01
ROM0:2C5F 28 02            jr   z,2C63
ROM0:2C61 3E 01            ld   a,01
ROM0:2C63 C9               ret  

Swords of Revealing Light handling

Initialize SoRL counters to 0
  • 0x2C64-0x2C6D - Sets both Swords of Revealing Light counters to 0
ROM0:2C64 F5               push af
ROM0:2C65 AF               xor  a
ROM0:2C66 EA 99 C9         ld   (C999),a	;Sets Player's SoRL counter to 0
ROM0:2C69 EA 9A C9         ld   (C99A),a	;Sets CPU's SoRL counter to 0
ROM0:2C6C F1               pop  af
ROM0:2C6D C9               ret  
Set Player's SoRL counter to 4
  • 0x2C6E-0x2C7D - Sets Swords of Revealing Light counter to 4
ROM0:2C6E F5               push af
ROM0:2C6F 3E 04            ld   a,04
ROM0:2C71 EA 99 C9         ld   (C999),a	;Sets Player's SoRL counter to 4
ROM0:2C74 F1               pop  af
ROM0:2C75 C9               ret  
Set CPU's SoRL counter to 4
ROM0:2C76 F5               push af
ROM0:2C77 3E 04            ld   a,04
ROM0:2C79 EA 9A C9         ld   (C99A),a	;Sets CPU's SoRL counter to 4
ROM0:2C7C F1               pop  af
ROM0:2C7D C9               ret  
Decrease Player's SoRL counter
  • 0x2C7E-0x2C8B - Decrease Player's Swords of Revealing Light counter by 1
ROM0:2C7E F5               push af
ROM0:2C7F FA 99 C9         ld   a,(C999)	;Loads Player's SoRL counter in accumulator
ROM0:2C82 FE 00            cp   a,00
ROM0:2C84 28 04            jr   z,2C8A		;If SoRL is not active, gtfo of this function
ROM0:2C86 3D               dec  a
ROM0:2C87 EA 99 C9         ld   (C999),a	;Updates Player's SoRL counter
ROM0:2C8A F1               pop  af
ROM0:2C8B C9               ret  
Decrease CPU's SoRL counter
  • 0x2C8C-0x2C99 - Decrease CPU's Swords of Revealing Light counter by 1
ROM0:2C8C F5               push af
ROM0:2C8D FA 9A C9         ld   a,(C99A)	;Loads CPU's SoRL counter in accumulator
ROM0:2C90 FE 00            cp   a,00
ROM0:2C92 28 04            jr   z,2C98		;If SoRL is not active, gtfo of this function
ROM0:2C94 3D               dec  a
ROM0:2C95 EA 9A C9         ld   (C99A),a	;Updates CPU's SoRL counter
ROM0:2C98 F1               pop  af
ROM0:2C99 C9               ret  
Check CPU's SoRL counter
  • 0x2C9A-0x2CB9 - Checks Swords of Revealing Light counter
ROM0:2C9A C5               push bc		;Is Player restrained by SoRL ?
ROM0:2C9B E5               push hl
ROM0:2C9C 06 00            ld   b,00
ROM0:2C9E FA 99 C9         ld   a,(C999)	;Loads Player's SoRL counter in accumulator
ROM0:2CA1 4F               ld   c,a
ROM0:2CA2 21 BA 2C         ld   hl,2CBA
ROM0:2CA5 09               add  hl,bc
ROM0:2CA6 7E               ld   a,(hl)		;Loads corresponding value from the "can the monster attack ?" list at (2CBA)
ROM0:2CA7 E1               pop  hl
ROM0:2CA8 C1               pop  bc
ROM0:2CA9 C9               ret  
ROM0:2CAA C5               push bc		;Is CPU restrained by SoRL ?
ROM0:2CAB E5               push hl
ROM0:2CAC 06 00            ld   b,00
ROM0:2CAE FA 9A C9         ld   a,(C99A)	;Loads CPU's SoRL counter in accumulator
ROM0:2CB1 4F               ld   c,a
ROM0:2CB2 21 BA 2C         ld   hl,2CBA
ROM0:2CB5 09               add  hl,bc
ROM0:2CB6 7E               ld   a,(hl)		;Loads corresponding value from the "can the monster attack ?" list at (2CBA)
ROM0:2CB7 E1               pop  hl
ROM0:2CB8 C1               pop  bc
ROM0:2CB9 C9               ret  
  • 0x2CBA-0x2CBE - "Can the monster attack ?" list, depending on Swords of Revealing Light current counter
02 01 00 00 00
Check if SoRL restrains Player
  • 0x2CBF-0x2CD7 - Checks if there is no SoRL restraining Player or if it has just ended
ROM0:2CBF F5               push af
ROM0:2CC0 CD 9A 2C         call 2C9A		;Check CPU's SoRL counter
ROM0:2CC3 FE 00            cp   a,00
ROM0:2CC5 20 06            jr   nz,2CCD 
ROM0:2CC7 AF               xor  a		;If SoRL is not active
ROM0:2CC8 CF               rst  08
ROM0:2CC9 27               daa  
ROM0:2CCA 05               dec  b
ROM0:2CCB 18 09            jr   2CD6
ROM0:2CCD FE 01            cp   a,01
ROM0:2CCF 20 05            jr   nz,2CD6
ROM0:2CD1 3E 01            ld   a,01		;If SoRL has just ended
ROM0:2CD3 CF               rst  08		;Displays « Swords of Revealing Light has stopped » in another function
ROM0:2CD4 27               daa  
ROM0:2CD5 05               dec  b
ROM0:2CD6 F1               pop  af
ROM0:2CD7 C9               ret
Reveals monster on the field
  • 0x2CD8-0x2D08 - Reveals monster on the field (also used by Dark-Piercing Light)
ROM0:2CD8 F5               push af
ROM0:2CD9 C5               push bc
ROM0:2CDA E5               push hl
ROM0:2CDB AF               xor  a
ROM0:2CDC EA 9B C9         ld   (C99B),a	;Sets (C99B) to (C9B7) to 0
ROM0:2CDF EA AF C9         ld   (C9AF),a
ROM0:2CE2 EA B0 C9         ld   (C9B0),a
ROM0:2CE5 EA B1 C9         ld   (C9B1),a
ROM0:2CE8 EA B2 C9         ld   (C9B2),a
ROM0:2CEB EA B3 C9         ld   (C9B3),a
ROM0:2CEE EA B4 C9         ld   (C9B4),a
ROM0:2CF1 EA B5 C9         ld   (C9B5),a
ROM0:2CF4 EA B6 C9         ld   (C9B6),a
ROM0:2CF7 EA B7 C9         ld   (C9B7),a
ROM0:2CFA 21 9D C9         ld   hl,C99D
ROM0:2CFD 3E FF            ld   a,FF
ROM0:2CFF 0E 12            ld   c,12
ROM0:2D01 22               ldi  (hl),a		;Sets (C99D) -> (C9A9) to 0xFF
ROM0:2D02 0D               dec  c
ROM0:2D03 20 FC            jr   nz,2D01
ROM0:2D05 E1               pop  hl
ROM0:2D06 C1               pop  bc
ROM0:2D07 F1               pop  af
ROM0:2D08 C9               ret

Special text

0:2D09

ROM0:2D09 D5               push de
ROM0:2D0A E5               push hl
ROM0:2D0B 06 00            ld   b,00
ROM0:2D0D FA 9C C9         ld   a,(C99C)	;Special text pointer offset
ROM0:2D10 4F               ld   c,a
ROM0:2D11 CB 21            sla  c
ROM0:2D13 21 49 2D         ld   hl,2D49
ROM0:2D16 09               add  hl,bc		;hl = 0x2D49 + Special text pointer offset
ROM0:2D17 2A               ldi  a,(hl)
ROM0:2D18 66               ld   h,(hl)
ROM0:2D19 6F               ld   l,a
ROM0:2D1A FA 9B C9         ld   a,(C99B)
ROM0:2D1D FE 00            cp   a,00
ROM0:2D1F 20 08            jr   nz,2D29
ROM0:2D21 2A               ldi  a,(hl)
ROM0:2D22 4F               ld   c,a
ROM0:2D23 2A               ldi  a,(hl)
ROM0:2D24 47               ld   b,a
ROM0:2D25 56               ld   d,(hl)
ROM0:2D26 CD 4F 2D         call 2D4F
ROM0:2D29 06 00            ld   b,00
ROM0:2D2B FA 9B C9         ld   a,(C99B)
ROM0:2D2E 4F               ld   c,a
ROM0:2D2F 3C               inc  a
ROM0:2D30 EA 9B C9         ld   (C99B),a
ROM0:2D33 21 9D C9         ld   hl,C99D
ROM0:2D36 09               add  hl,bc
ROM0:2D37 2A               ldi  a,(hl)
ROM0:2D38 4F               ld   c,a
ROM0:2D39 FA 9B C9         ld   a,(C99B)
ROM0:2D3C 5F               ld   e,a
ROM0:2D3D FA E4 C5         ld   a,(C5E4)
ROM0:2D40 BB               cp   e
ROM0:2D41 20 02            jr   nz,2D45
ROM0:2D43 06 01            ld   b,01
ROM0:2D45 79               ld   a,c
ROM0:2D46 E1               pop  hl
ROM0:2D47 D1               pop  de
ROM0:2D48 C9               ret  

0:2D4F

ROM0:2D4F F5               push af
ROM0:2D50 C5               push bc
ROM0:2D51 D5               push de
ROM0:2D52 E5               push hl
ROM0:2D53 7A               ld   a,d
ROM0:2D54 FE 04            cp   a,04
ROM0:2D56 28 0C            jr   z,2D64
ROM0:2D58 7A               ld   a,d
ROM0:2D59 CF               rst  08
...
ROM0:2D5C CF               rst  08
...
ROM0:2D5F CF               rst  08
...
ROM0:2D62 18 06            jr   2D6A
ROM0:2D64 CF               rst  08
...
ROM0:2D67 CD AC 16         call 16AC
ROM0:2D6A 21 9D C9         ld   hl,C99D
ROM0:2D6D 11 D0 C5         ld   de,C5D0
ROM0:2D70 0E 12            ld   c,12
ROM0:2D72 1A               ld   a,(de)
ROM0:2D73 22               ldi  (hl),a
ROM0:2D74 13               inc  de
ROM0:2D75 0D               dec  c
ROM0:2D76 20 FA            jr   nz,2D72
ROM0:2D78 AF               xor  a
ROM0:2D79 EA 9B C9         ld   (C99B),a
ROM0:2D7C E1               pop  hl
ROM0:2D7D D1               pop  de
ROM0:2D7E C1               pop  bc
ROM0:2D7F F1               pop  af
ROM0:2D80 C9               ret  

Set special text pointer offset

ROM0:2D81 F5               push af
ROM0:2D82 EA 9C C9         ld   (C99C),a	;Special text pointer offset = a
ROM0:2D85 AF               xor  a
ROM0:2D86 EA 9B C9         ld   (C99B),a	;(C99B) = 0
ROM0:2D89 F1               pop  af
ROM0:2D8A C9               ret

Display card illustration

ROM0:2E22 F5               push af
ROM0:2E23 C5               push bc
ROM0:2E24 D5               push de
ROM0:2E25 E5               push hl
ROM0:2E26 3E 3E            ld   a,3E
ROM0:2E28 CD 00 12         call 1200		;ROM Bank switch
ROM0:2E2B CD 9B 5B         call 5B9B
ROM0:2E2E 7A               ld   a,d
ROM0:2E2F CD 00 12         call 1200		;ROM Bank switch
ROM0:2E32 60               ld   h,b
ROM0:2E33 69               ld   l,c
ROM0:2E34 11 00 C5         ld   de,C500
ROM0:2E37 2A               ldi  a,(hl)
ROM0:2E38 47               ld   b,a
ROM0:2E39 78               ld   a,b
ROM0:2E3A FE 00            cp   a,00
ROM0:2E3C 28 1F            jr   z,2E5D
ROM0:2E3E F0 42            ld   a,(ff00+42)
ROM0:2E40 4F               ld   c,a
ROM0:2E41 FA C3 C6         ld   a,(C6C3)
ROM0:2E44 86               add  (hl)
ROM0:2E45 91               sub  c
ROM0:2E46 12               ld   (de),a		;Store card illustration to (C500)
ROM0:2E47 23               inc  hl
ROM0:2E48 13               inc  de
ROM0:2E49 F0 43            ld   a,(ff00+43)
ROM0:2E4B 4F               ld   c,a
ROM0:2E4C FA C4 C6         ld   a,(C6C4)
ROM0:2E4F 86               add  (hl)
ROM0:2E50 91               sub  c
ROM0:2E51 12               ld   (de),a
ROM0:2E52 23               inc  hl
ROM0:2E53 13               inc  de
ROM0:2E54 2A               ldi  a,(hl)
ROM0:2E55 12               ld   (de),a
ROM0:2E56 13               inc  de
ROM0:2E57 2A               ldi  a,(hl)
ROM0:2E58 12               ld   (de),a
ROM0:2E59 13               inc  de
ROM0:2E5A 05               dec  b
ROM0:2E5B 18 DC            jr   2E39
ROM0:2E5D E1               pop  hl
ROM0:2E5E D1               pop  de
ROM0:2E5F C1               pop  bc
ROM0:2E60 F1               pop  af
ROM0:2E61 C9               ret

Game Boy Color check

  • 0x2FD1-0x2FE3 - Checks if the system running the game is a Game Boy Color
ROM0:2FD1 F5               push af
ROM0:2FD2 3E 04            ld   a,04
ROM0:2FD4 EA 38 CA         ld   (CA38),a
ROM0:2FD7 F0 DD            ld   a,(ff00+DD)
ROM0:2FD9 FE 11            cp   a,11
ROM0:2FDB 28 05            jr   z,2FE2		;If the system is a Game Boy Color, get out of this function
ROM0:2FDD CF               rst  08		;Else rst 08 (to error screen)
ROM0:2FDE 0D 06        => 6:400D
ROM0:2FE0 18 FE            jr   2FE0		;Softlock
ROM0:2FE2 F1               pop  af
ROM0:2FE3 C9               ret

Copies card being processed

  • 0x309A-0x30AB - Copies card being processed to (CAD6)
ROM0:309A F5               push af
ROM0:309B CD 72 1A         call 1A72		;Checks if a card is being processed
ROM0:309E FE 01            cp   a,01
ROM0:30A0 28 08            jr   z,30AA		;If no card is being processed, GTFO of this function
ROM0:30A2 79               ld   a,c
ROM0:30A3 EA D6 CA         ld   (CAD6),a	;If a card is being processed, copy it to (CAD6)
ROM0:30A6 78               ld   a,b
ROM0:30A7 EA D7 CA         ld   (CAD7),a
ROM0:30AA F1               pop  af
ROM0:30AB C9               ret

Sound

0:3B00

ROM0:3B00 AF               xor a
ROM0:3B01 E0 07            ld   (ff00+07),a	;Timer Control
ROM0:3B03 E0 06            ld   (ff00+06),a	;Timer Modulo
ROM0:3B05 EA 38 C4         ld   (C438),a
ROM0:3B08 21 0F FF         ld   hl,FF0F
ROM0:3B0B CB 96            res  2,(hl)
ROM0:3B0D 21 FF FF         ld   hl,FFFF
ROM0:3B10 CB D6            set  2,(hl)
ROM0:3B12 21 26 C4         ld   hl,C426
ROM0:3B15 36 76            ld   (hl),76
ROM0:3B17 23               inc  hl
ROM0:3B18 36 3B            ld   (hl),3B
ROM0:3B1A 23               inc  hl
ROM0:3B1B AF               xor  a
ROM0:3B1C 22               ldi  (hl),a
ROM0:3B1D 22               ldi  (hl),a
ROM0:3B1E 22               ldi  (hl),a
ROM0:3B1F 22               ldi  (hl),a
ROM0:3B20 22               ldi  (hl),a
ROM0:3B21 77               ld   (hl),a
ROM0:3B22 21 32 C4         ld   hl,C432
ROM0:3B25 36 77            ld   (hl),77
ROM0:3B27 23               inc  hl
ROM0:3B28 36 3B            ld   (hl),3B
ROM0:3B2A 23               inc  hl
ROM0:3B2B 22               ldi  (hl),a
ROM0:3B2C 77               ld   (hl),a
ROM0:3B2D 3E FF            ld   a,FF
ROM0:3B2F EA 3A C4         ld   (C43A),a
ROM0:3B32 CD AD 3B         call 3BAD
ROM0:3B35 CD D3 3B         call 3BD3
ROM0:3B38 3E 01            ld   a,01
ROM0:3B3A EA 3B C4         ld   (C43B),a
ROM0:3B3D 3E FF            ld   a,FF
ROM0:3B3F EA 00 C4         ld   (C400),a
ROM0:3B42 F0 4D            ld   a,(ff00+4D)	;Game Boy Color speed switch
ROM0:3B44 07               rlca 
ROM0:3B45 3E 39            ld   a,39
ROM0:3B47 30 02            jr   nc,3B4B
ROM0:3B49 3E 3A            ld   a,3A
ROM0:3B4B EA 3C C4         ld   (C43C),a
ROM0:3B4E CD 80 3B         call 3B80		;Mute a few seconds
ROM0:3B51 C9               ret  

0:3B78 (Array)

ROM0:3B78
01 02 04 08 10 20 40 80

Mute

  • 0x3B80-0x3BAC - Mute (called at the start of a new game, after name entry)
ROM0:3B80 3E 80            ld   a,80
ROM0:3B82 E0 26            ld   (ff00+26),a	;NR52, Sound off
ROM0:3B84 21 52 3B         ld   hl,3B52
ROM0:3B87 01 10 14         ld   bc,1410
ROM0:3B8A 2A               ldi  a,(hl)
ROM0:3B8B E2               ld   (ff00+c),a
ROM0:3B8C 0C               inc  c
ROM0:3B8D 05               dec  b
ROM0:3B8E 20 FA            jr   nz,3B8A
ROM0:3B90 21 66 3B         ld   hl,3B66
ROM0:3B93 01 30 10         ld   bc,1030
ROM0:3B96 2A               ldi  a,(hl)
ROM0:3B97 E2               ld   (ff00+c),a
ROM0:3B98 0C               inc  c
ROM0:3B99 05               dec  b
ROM0:3B9A 20 FA            jr   nz,3B96
ROM0:3B9C 3E 80            ld   a,80
ROM0:3B9E E0 1A            ld   (ff00+1A),a	;NR30, Channel 3 Sound on
ROM0:3BA0 3E 77            ld   a,77
ROM0:3BA2 E0 24            ld   (ff00+24),a	;NR50, Channel control and Volume
ROM0:3BA4 3E FF            ld   a,FF
ROM0:3BA6 E0 25            ld   (ff00+25),a	;NR51, Sound output terminal
ROM0:3BA8 3E 8F            ld   a,8F
ROM0:3BAA E0 26            ld   (ff00+26),a	;NR52, Sound on
ROM0:3BAC C9               ret

0:3BAD

ROM0:3BAD AF               xor  a
ROM0:3BAE 21 07 C4         ld   hl,C407
ROM0:3BB1 06 1F            ld   b,1F
ROM0:3BB3 22               ldi  (hl),a
ROM0:3BB4 05               dec  b
ROM0:3BB5 20 FC            jr   nz,3BB3
ROM0:3BB7 EA 3D C4         ld   (C43D),a
ROM0:3BBA EA 3E C4         ld   (C43E),a
ROM0:3BBD EA 3F C4         ld   (C43F),a
ROM0:3BC0 EA 40 C4         ld   (C440),a
ROM0:3BC3 3C               inc  a
ROM0:3BC4 EA 01 C4         ld   (C401),a
ROM0:3BC7 EA 02 C4         ld   (C402),a
ROM0:3BCA EA 03 C4         ld   (C403),a
ROM0:3BCD 3E 0F            ld   a,0F
ROM0:3BCF EA 39 C4         ld   (C439),a
ROM0:3BD2 C9               ret  

0:3BD3

ROM0:3BD3 FA 3A C4         ld   a,(C43A)
ROM0:3BD6 3C               inc  a
ROM0:3BD7 C4 E8 3B         call nz,3BE8
ROM0:3BDA 3E FF            ld   a,FF
ROM0:3BDC EA 3A C4         ld   (C43A),a
ROM0:3BDF 3E 01            ld   a,01
ROM0:3BE1 EA 04 C4         ld   (C404),a
ROM0:3BE4 EA 05 C4         ld   (C405),a
ROM0:3BE7 C9               ret  

0:3BE8

ROM0:3BE8 FA 3A C4         ld   a,(C43A)
ROM0:3BEB 47               ld   b,a
ROM0:3BEC 0E 12            ld   c,12
ROM0:3BEE CB 28            sra  b
ROM0:3BF0 38 0B            jr   c,3BFD
ROM0:3BF2 AF               xor  a
ROM0:3BF3 F3               di   
ROM0:3BF4 E2               ld   (ff00+c),a
ROM0:3BF5 0C               inc  c
ROM0:3BF6 0C               inc  c
ROM0:3BF7 3E 80            ld   a,80
ROM0:3BF9 E2               ld   (ff00+c),a
ROM0:3BFA FB               ei   
ROM0:3BFB 0D               dec  c
ROM0:3BFC 0D               dec  c
ROM0:3BFD 79               ld   a,c
ROM0:3BFE C6 05            add  a,05
ROM0:3C00 4F               ld   c,a
ROM0:3C01 FE 22            cp   a,22
ROM0:3C03 38 E9            jr   c,3BEE
ROM0:3C05 C9               ret

0:3C06

ROM0:3C06 FA 38 C4         ld   a,(C438)	;Sound effect playing ?
ROM0:3C09 A7               and  a
ROM0:3C0A C8               ret  z

0:3C0B

ROM0:3C0B FA 3D C4         ld   a,(C43D)	;Music playing ?
ROM0:3C0E CB 37            swap a
ROM0:3C10 C9               ret  

Checks if the Music or SE playing changed

ROM0:3C11 F0 FF            ld   a,(ff00+FF)
ROM0:3C13 E6 04            and  a,04
ROM0:3C15 28 04            jr   z,3C1B		;If Timer Interrupt is enabled, jump to 0:3C1B
ROM0:3C17 F0 07            ld   a,(ff00+07)	;Timer Control
ROM0:3C19 E6 04            and  a,04
ROM0:3C1B F5               push af
ROM0:3C1C D5               push de
ROM0:3C1D E5               push hl
ROM0:3C1E CC 00 3B         call z,3B00		;If Timer is enabled, jump to 0:3B00
ROM0:3C21 D1               pop  de
ROM0:3C22 C1               pop  bc
ROM0:3C23 21 38 C4         ld   hl,C438		;Sound Effect playing ?
ROM0:3C26 CB 46            bit  0,(hl)
ROM0:3C28 28 15            jr   z,3C3F
ROM0:3C2A 21 2A C4         ld   hl,C42A		;Music or SE pointer
ROM0:3C2D 2A               ldi  a,(hl)
ROM0:3C2E BB               cp   e
ROM0:3C2F 20 0E            jr   nz,3C3F
ROM0:3C31 2A               ldi  a,(hl)
ROM0:3C32 BA               cp   d
ROM0:3C33 20 0A            jr   nz,3C3F		;If(de ≠ (C42A)), jump to 0:3C3F
ROM0:3C35 2A               ldi  a,(hl)		;Music or SE ROM Bank
ROM0:3C36 B9               cp   c
ROM0:3C37 20 06            jr   nz,3C3F
ROM0:3C39 7E               ld   a,(hl)
ROM0:3C3A B8               cp   b
ROM0:3C3B 20 02            jr   nz,3C3F		;If(bc ≠ (C42C)), jump to 0:3C3F
ROM0:3C3D F1               pop  af
ROM0:3C3E C9               ret

Writes Music or SE ROM Bank and Pointer to (C426)

ROM0:3C3F C5               push bc
ROM0:3C40 D5               push de
ROM0:3C41 CD AD 3B         call 3BAD
ROM0:3C44 D1               pop  de
ROM0:3C45 C1               pop  bc
ROM0:3C46 21 26 C4         ld   hl,C426		;Pointer to the Music data being read
ROM0:3C49 73               ld   (hl),e
ROM0:3C4A 23               inc  hl
ROM0:3C4B 72               ld   (hl),d
ROM0:3C4C 23               inc  hl		;ROM Bank of the Music data being read
ROM0:3C4D 71               ld   (hl),c
ROM0:3C4E 23               inc  hl
ROM0:3C4F 70               ld   (hl),b
ROM0:3C50 23               inc  hl		;Music pointer
ROM0:3C51 73               ld   (hl),e
ROM0:3C52 23               inc  hl
ROM0:3C53 72               ld   (hl),d
ROM0:3C54 23               inc  hl		;Music ROM Bank
ROM0:3C55 71               ld   (hl),c
ROM0:3C56 23               inc  hl
ROM0:3C57 70               ld   (hl),b
ROM0:3C58 AF               xor  a
ROM0:3C59 EA 41 C4         ld   (C441),a	;Music loop flag
ROM0:3C5C 3E F0            ld   a,F0
ROM0:3C5E EA 3D C4         ld   (C43D),a	;Music playing ?
ROM0:3C61 21 38 C4         ld   hl,C438		;Sound Effect playing ?
ROM0:3C64 CB C6            set  0,(hl)
ROM0:3C66 F1               pop  af
ROM0:3C67 20 0A            jr   nz,3C73
ROM0:3C69 AF               xor  a
ROM0:3C6A E0 06            ld   (ff00+06),a	;Timer Modulo = 0
ROM0:3C6C 3D               dec  a
ROM0:3C6D E0 05            ld   (ff00+05),a	;Timer Counter, a Timer Interrupt will be requested at the next tick (rst $50)
ROM0:3C6F 3E 04            ld   a,04
ROM0:3C71 E0 07            ld   (ff00+07),a	;Timer Enabled, 4096 Hz
ROM0:3C73 FB               ei   
ROM0:3C74 C9               ret

0:3C75

ROM0:3C75 F0 FF            ld   a,(ff00+FF)
ROM0:3C77 E6 04            and  a,04
ROM0:3C79 28 04            jr   z,3C7F
ROM0:3C7B F0 07            ld   a,(ff00+07)
ROM0:3C7D E6 04            and  a,04
ROM0:3C7F F5               push af
ROM0:3C80 D5               push de
ROM0:3C81 E5               push hl
ROM0:3C82 CC 00 3B         call z,3B00
ROM0:3C85 CD D3 3B         call 3BD3
ROM0:3C88 D1               pop  de
ROM0:3C89 13               inc  de
ROM0:3C8A 21 32 C4         ld   hl,C432
ROM0:3C8D 73               ld   (hl),e
ROM0:3C8E 23               inc  hl
ROM0:3C8F 72               ld   (hl),d
ROM0:3C90 23               inc  hl
ROM0:3C91 C1               pop  bc
ROM0:3C92 71               ld   (hl),c
ROM0:3C93 23               inc  hl
ROM0:3C94 70               ld   (hl),b
ROM0:3C95 FA 00 40         ld   a,(4000)
ROM0:3C98 F5               push af
ROM0:3C99 FA 01 40         ld   a,(4001)
ROM0:3C9C F5               push af
ROM0:3C9D 78               ld   a,b
ROM0:3C9E EA 00 30         ld   (3000),a
ROM0:3CA1 79               ld   a,c
ROM0:3CA2 EA 00 20         ld   (2000),a
ROM0:3CA5 1B               dec  de
ROM0:3CA6 1A               ld   a,(de)
ROM0:3CA7 EA 3A C4         ld   (C43A),a
ROM0:3CAA F1               pop  af
ROM0:3CAB EA 00 30         ld   (3000),a
ROM0:3CAE F1               pop  af
ROM0:3CAF EA 00 20         ld   (2000),a
ROM0:3CB2 21 38 C4         ld   hl,C438
ROM0:3CB5 CB CE            set  1,(hl)
ROM0:3CB7 F1               pop  af
ROM0:3CB8 20 0A            jr   nz,3CC4
ROM0:3CBA AF               xor  a
ROM0:3CBB E0 06            ld   (ff00+06),a
ROM0:3CBD 3D               dec  a
ROM0:3CBE E0 05            ld   (ff00+05),a
ROM0:3CC0 3E 04            ld   a,04
ROM0:3CC2 E0 07            ld   (ff00+07),a
ROM0:3CC4 FB               ei   
ROM0:3CC5 C9               ret

rst 50 - Read Game Boy Sound file

ROM0:3D2C FB               ei   
ROM0:3D2D F5               push af
ROM0:3D2E C5               push bc
ROM0:3D2F D5               push de
ROM0:3D30 E5               push hl
ROM0:3D31 21 38 C4         ld   hl,C438
ROM0:3D34 CB 46            bit  0,(hl)
ROM0:3D36 CA 7E 3E         jp   z,3E7E
ROM0:3D39 21 00 C4         ld   hl,C400
ROM0:3D3C FA 3B C4         ld   a,(C43B)
ROM0:3D3F 86               add  (hl)
ROM0:3D40 22               ldi  (hl),a
ROM0:3D41 C2 47 3E         jp   nz,3E47
ROM0:3D44 35               dec  (hl)
ROM0:3D45 C2 47 3E         jp   nz,3E47
ROM0:3D48 FA 00 40         ld   a,(4000)
ROM0:3D4B EA 36 C4         ld   (C436),a	;Stores ROM Bank
ROM0:3D4E FA 01 40         ld   a,(4001)
ROM0:3D51 EA 37 C4         ld   (C437),a	;Stores WRAM Bank
ROM0:3D54 21 29 C4         ld   hl,C429
ROM0:3D57 3A               ldd  a,(hl)
ROM0:3D58 EA 00 30         ld   (3000),a	;Music ROM Bank - High
ROM0:3D5B 3A               ldd  a,(hl)
ROM0:3D5C EA 00 20         ld   (2000),a	;Music ROM Bank - Low
ROM0:3D5F 46               ld   b,(hl)
ROM0:3D60 2B               dec  hl
ROM0:3D61 4E               ld   c,(hl)		;bc = Pointer to next byte in gbs file
ROM0:3D62 0A               ld   a,(bc)		;a = Next byte in gbs file
ROM0:3D63 03               inc  bc		;bc ++
ROM0:3D64 5F               ld   e,a
ROM0:3D65 87               add  a
ROM0:3D66 D2 28 3E         jp   nc,3E28
ROM0:3D69 FE FE            cp   a,FE
ROM0:3D6B CA 05 3E         jp   z,3E05		;End of file, do a loop if needed
ROM0:3D6E E6 60            and  a,60
ROM0:3D70 28 3B            jr   z,3DAD
ROM0:3D72 FE 20            cp   a,20
ROM0:3D74 28 1E            jr   z,3D94
ROM0:3D76 FE 60            cp   a,60
ROM0:3D78 28 5A            jr   z,3DD4		;Activate Music Loop
ROM0:3D7A 7B               ld   a,e
ROM0:3D7B E6 07            and  a,07
ROM0:3D7D 5F               ld   e,a
ROM0:3D7E C6 78            add  a,78
ROM0:3D80 6F               ld   l,a
ROM0:3D81 26 3B            ld   h,3B
ROM0:3D83 7E               ld   a,(hl)		;Array at 0x3B78
ROM0:3D84 21 39 C4         ld   hl,C439
ROM0:3D87 B6               or   (hl)
ROM0:3D88 77               ld   (hl),a
ROM0:3D89 7B               ld   a,e
ROM0:3D8A 87               add  a
ROM0:3D8B 87               add  a
ROM0:3D8C C6 07            add  a,07
ROM0:3D8E 6F               ld   l,a
ROM0:3D8F 0A               ld   a,(bc)		;a = Next byte in gbs file
ROM0:3D90 03               inc  bc		;bc ++
ROM0:3D91 77               ld   (hl),a
ROM0:3D92 18 CE            jr   3D62		;Loop to 0:3D62
ROM0:3D94 7B               ld   a,e
ROM0:3D95 E6 07            and  a,07
ROM0:3D97 5F               ld   e,a
ROM0:3D98 C6 78            add  a,78
ROM0:3D9A 6F               ld   l,a
ROM0:3D9B 26 3B            ld   h,3B
ROM0:3D9D 7E               ld   a,(hl)
ROM0:3D9E 21 39 C4         ld   hl,C439
ROM0:3DA1 B6               or   (hl)
ROM0:3DA2 77               ld   (hl),a
ROM0:3DA3 7B               ld   a,e
ROM0:3DA4 87               add  a
ROM0:3DA5 87               add  a
ROM0:3DA6 C6 06            add  a,06
ROM0:3DA8 6F               ld   l,a
ROM0:3DA9 36 00            ld   (hl),00
ROM0:3DAB 18 B5            jr   3D62
ROM0:3DAD 7B               ld   a,e
ROM0:3DAE E6 07            and  a,07
ROM0:3DB0 5F               ld   e,a
ROM0:3DB1 C6 78            add  a,78
ROM0:3DB3 6F               ld   l,a
ROM0:3DB4 26 3B            ld   h,3B
ROM0:3DB6 7E               ld   a,(hl)
ROM0:3DB7 21 39 C4         ld   hl,C439
ROM0:3DBA B6               or   (hl)
ROM0:3DBB 77               ld   (hl),a
ROM0:3DBC 7B               ld   a,e
ROM0:3DBD 87               add  a
ROM0:3DBE 87               add  a
ROM0:3DBF C6 06            add  a,06
ROM0:3DC1 6F               ld   l,a
ROM0:3DC2 36 01            ld   (hl),01
ROM0:3DC4 2C               inc  l
ROM0:3DC5 2C               inc  l
ROM0:3DC6 0A               ld   a,(bc)
ROM0:3DC7 03               inc  bc
ROM0:3DC8 87               add  a
ROM0:3DC9 87               add  a
ROM0:3DCA 5F               ld   e,a
ROM0:3DCB 16 36            ld   d,36
ROM0:3DCD 1A               ld   a,(de)
ROM0:3DCE 22               ldi  (hl),a
ROM0:3DCF 14               inc  d
ROM0:3DD0 1A               ld   a,(de)
ROM0:3DD1 77               ld   (hl),a
ROM0:3DD2 18 8E            jr   3D62
ROM0:3DD4 7B               ld   a,e
ROM0:3DD5 FE F0            cp   a,F0
ROM0:3DD7 28 0D            jr   z,3DE6
ROM0:3DD9 E6 F8            and  a,F8
ROM0:3DDB FE C0            cp   a,C0
ROM0:3DDD 28 1E            jr   z,3DFD
ROM0:3DDF FE C8            cp   a,C8
ROM0:3DE1 28 1E            jr   z,3E01
ROM0:3DE3 C3 62 3D         jp   3D62
ROM0:3DE6 21 2E C4         ld   hl,C42E
ROM0:3DE9 79               ld   a,c
ROM0:3DEA 22               ldi  (hl),a
ROM0:3DEB 78               ld   a,b
ROM0:3DEC 22               ldi  (hl),a
ROM0:3DED FA 36 C4         ld   a,(C436)
ROM0:3DF0 22               ldi  (hl),a
ROM0:3DF1 FA 37 C4         ld   a,(C437)
ROM0:3DF4 77               ld   (hl),a
ROM0:3DF5 3E 01            ld   a,01
ROM0:3DF7 EA 41 C4         ld   (C441),a	;Music loop flag = 1
ROM0:3DFA C3 62 3D         jp   3D62
ROM0:3DFD 03               inc  bc
ROM0:3DFE C3 62 3D         jp   3D62
ROM0:3E01 03               inc  bc
ROM0:3E02 C3 62 3D         jp   3D62
ROM0:3E05 FA 41 C4         ld   a,(C441)	;Music loop flag
ROM0:3E08 3D               dec  a
ROM0:3E09 20 09            jr   nz,3E14
ROM0:3E0B 21 2F C4         ld   hl,C42F
ROM0:3E0E 46               ld   b,(hl)
ROM0:3E0F 2B               dec  hl
ROM0:3E10 4E               ld   c,(hl)		;bc = Beginning of the Music loop
ROM0:3E11 C3 62 3D         jp   3D62		;Loop
ROM0:3E14 FA 36 C4         ld   a,(C436)	;ROM Bank - Low
ROM0:3E17 EA 00 20         ld   (2000),a
ROM0:3E1A FA 37 C4         ld   a,(C437)	;ROM Bank - High
ROM0:3E1D EA 00 30         ld   (3000),a
ROM0:3E20 21 38 C4         ld   hl,C438
ROM0:3E23 CB 86            res  0,(hl)
ROM0:3E25 C3 7E 3E         jp   3E7E
ROM0:3E28 21 26 C4         ld   hl,C426
ROM0:3E2B 71               ld   (hl),c
ROM0:3E2C 2C               inc  l
ROM0:3E2D 70               ld   (hl),b		;Stores current position in the GBS file in (C426)
ROM0:3E2E 6F               ld   l,a
ROM0:3E2F FA 3C C4         ld   a,(C43C)
ROM0:3E32 67               ld   h,a
ROM0:3E33 2A               ldi  a,(hl)
ROM0:3E34 EA 00 C4         ld   (C400),a
ROM0:3E37 7E               ld   a,(hl)
ROM0:3E38 EA 01 C4         ld   (C401),a
ROM0:3E3B FA 36 C4         ld   a,(C436)
ROM0:3E3E EA 00 20         ld   (2000),a	;ROM Bank switch - Low
ROM0:3E41 FA 37 C4         ld   a,(C437)
ROM0:3E44 EA 00 30         ld   (3000),a	;ROM Bank switch - High
ROM0:3E47 21 02 C4         ld   hl,C402
ROM0:3E4A FA 3B C4         ld   a,(C43B)
ROM0:3E4D 86               add  (hl)
ROM0:3E4E 22               ldi  (hl),a
ROM0:3E4F 20 2D            jr   nz,3E7E
ROM0:3E51 35               dec  (hl)
ROM0:3E52 20 2A            jr   nz,3E7E
ROM0:3E54 FA 40 C4         ld   a,(C440)
ROM0:3E57 A7               and  a
ROM0:3E58 28 24            jr   z,3E7E
ROM0:3E5A 21 39 C4         ld   hl,C439
ROM0:3E5D 36 0F            ld   (hl),0F
ROM0:3E5F FA 3D C4         ld   a,(C43D)
ROM0:3E62 D6 11            sub  a,11
ROM0:3E64 3C               inc  a
ROM0:3E65 30 09            jr   nc,3E70
ROM0:3E67 21 38 C4         ld   hl,C438
ROM0:3E6A CB 86            res  0,(hl)
ROM0:3E6C AF               xor  a
ROM0:3E6D EA 40 C4         ld   (C440),a
ROM0:3E70 EA 3D C4         ld   (C43D),a
ROM0:3E73 21 3E C4         ld   hl,C43E
ROM0:3E76 2A               ldi  a,(hl)
ROM0:3E77 EA 02 C4         ld   (C402),a
ROM0:3E7A 7E               ld   a,(hl)
ROM0:3E7B EA 03 C4         ld   (C403),a
ROM0:3E7E 21 38 C4         ld   hl,C438
ROM0:3E81 CB 4E            bit  1,(hl)
ROM0:3E83 CA 19 3F         jp   z,3F19
ROM0:3E86 21 04 C4         ld   hl,C404
ROM0:3E89 FA 3B C4         ld   a,(C43B)
ROM0:3E8C 86               add  (hl)
ROM0:3E8D 22               ldi  (hl),a
ROM0:3E8E C2 19 3F         jp   nz,3F19
ROM0:3E91 FA 00 40         ld   a,(4000)
ROM0:3E94 EA 36 C4         ld   (C436),a
ROM0:3E97 FA 01 40         ld   a,(4001)
ROM0:3E9A EA 37 C4         ld   (C437),a
ROM0:3E9D 21 35 C4         ld   hl,C435
ROM0:3EA0 3A               ldd  a,(hl)
ROM0:3EA1 EA 00 30         ld   (3000),a
ROM0:3EA4 3A               ldd  a,(hl)
ROM0:3EA5 EA 00 20         ld   (2000),a
ROM0:3EA8 3A               ldd  a,(hl)
ROM0:3EA9 6E               ld   l,(hl)
ROM0:3EAA 67               ld   h,a
ROM0:3EAB 7E               ld   a,(hl)
ROM0:3EAC 23               inc  hl
ROM0:3EAD 4F               ld   c,a
ROM0:3EAE 87               add  a
ROM0:3EAF DA FA 3E         jp   c,3EFA
ROM0:3EB2 28 1B            jr   z,3ECF
ROM0:3EB4 FE FE            cp   a,FE
ROM0:3EB6 28 04            jr   z,3EBC
ROM0:3EB8 2A               ldi  a,(hl)
ROM0:3EB9 E2               ld   (ff00+c),a
ROM0:3EBA 18 EF            jr   3EAB
ROM0:3EBC 3E 00            ld   a,00
ROM0:3EBE E0 1A            ld   (ff00+1A),a
ROM0:3EC0 01 30 10         ld   bc,1030
ROM0:3EC3 2A               ldi  a,(hl)
ROM0:3EC4 E2               ld   (ff00+c),a
ROM0:3EC5 0C               inc  c
ROM0:3EC6 05               dec  b
ROM0:3EC7 20 FA            jr   nz,3EC3
ROM0:3EC9 3E 80            ld   a,80
ROM0:3ECB E0 1A            ld   (ff00+1A),a
ROM0:3ECD 18 DC            jr   3EAB
ROM0:3ECF 21 3A C4         ld   hl,C43A
ROM0:3ED2 7E               ld   a,(hl)
ROM0:3ED3 36 FF            ld   (hl),FF
ROM0:3ED5 2F               cpl  
ROM0:3ED6 21 39 C4         ld   hl,C439
ROM0:3ED9 B6               or   (hl)
ROM0:3EDA 77               ld   (hl),a
ROM0:3EDB 21 32 C4         ld   hl,C432
ROM0:3EDE 36 77            ld   (hl),77
ROM0:3EE0 2C               inc  l
ROM0:3EE1 36 3B            ld   (hl),3B
ROM0:3EE3 2C               inc  l
ROM0:3EE4 AF               xor  a
ROM0:3EE5 22               ldi  (hl),a
ROM0:3EE6 77               ld   (hl),a
ROM0:3EE7 21 38 C4         ld   hl,C438
ROM0:3EEA CB 8E            res  1,(hl)
ROM0:3EEC FA 36 C4         ld   a,(C436)
ROM0:3EEF EA 00 20         ld   (2000),a
ROM0:3EF2 FA 37 C4         ld   a,(C437)
ROM0:3EF5 EA 00 30         ld   (3000),a
ROM0:3EF8 18 1F            jr   3F19
ROM0:3EFA 4D               ld   c,l
ROM0:3EFB 44               ld   b,h
ROM0:3EFC 21 32 C4         ld   hl,C432
ROM0:3EFF 71               ld   (hl),c
ROM0:3F00 2C               inc  l
ROM0:3F01 70               ld   (hl),b
ROM0:3F02 21 3C C4         ld   hl,C43C
ROM0:3F05 CB 46            bit  0,(hl)
ROM0:3F07 28 01            jr   z,3F0A
ROM0:3F09 87               add  a
ROM0:3F0A EA 04 C4         ld   (C404),a
ROM0:3F0D FA 36 C4         ld   a,(C436)
ROM0:3F10 EA 00 20         ld   (2000),a
ROM0:3F13 FA 37 C4         ld   a,(C437)
ROM0:3F16 EA 00 30         ld   (3000),a
ROM0:3F19 16 38            ld   d,38
ROM0:3F1B 21 06 C4         ld   hl,C406
ROM0:3F1E 0E 12            ld   c,12
ROM0:3F20 FA 39 C4         ld   a,(C439)
ROM0:3F23 47               ld   b,a
ROM0:3F24 FA 3A C4         ld   a,(C43A)
ROM0:3F27 A0               and  b
ROM0:3F28 47               ld   b,a
ROM0:3F29 CB 38            srl  b
ROM0:3F2B 30 48            jr   nc,3F75
ROM0:3F2D CB 46            bit  0,(hl)
ROM0:3F2F 28 2D            jr   z,3F5E
ROM0:3F31 2C               inc  l
ROM0:3F32 FA 3D C4         ld   a,(C43D)
ROM0:3F35 B6               or   (hl)
ROM0:3F36 2C               inc  l
ROM0:3F37 5F               ld   e,a
ROM0:3F38 79               ld   a,c
ROM0:3F39 FE 1C            cp   a,1C
ROM0:3F3B 38 14            jr   c,3F51
ROM0:3F3D 20 10            jr   nz,3F4F
ROM0:3F3F 1A               ld   a,(de)
ROM0:3F40 2F               cpl  
ROM0:3F41 C6 40            add  a,40
ROM0:3F43 0F               rrca 
ROM0:3F44 E2               ld   (ff00+c),a
ROM0:3F45 0C               inc  c
ROM0:3F46 2A               ldi  a,(hl)
ROM0:3F47 E2               ld   (ff00+c),a
ROM0:3F48 0C               inc  c
ROM0:3F49 2A               ldi  a,(hl)
ROM0:3F4A E6 7F            and  a,7F
ROM0:3F4C E2               ld   (ff00+c),a
ROM0:3F4D 18 0A            jr   3F59
ROM0:3F4F 0E 21            ld   c,21
ROM0:3F51 1A               ld   a,(de)
ROM0:3F52 E2               ld   (ff00+c),a
ROM0:3F53 0C               inc  c
ROM0:3F54 2A               ldi  a,(hl)
ROM0:3F55 E2               ld   (ff00+c),a
ROM0:3F56 0C               inc  c
ROM0:3F57 2A               ldi  a,(hl)
ROM0:3F58 E2               ld   (ff00+c),a
ROM0:3F59 0C               inc  c
ROM0:3F5A 0C               inc  c
ROM0:3F5B 0C               inc  c
ROM0:3F5C 18 CB            jr   3F29
ROM0:3F5E 79               ld   a,c
ROM0:3F5F FE 22            cp   a,22
ROM0:3F61 38 02            jr   c,3F65
ROM0:3F63 0E 21            ld   c,21
ROM0:3F65 AF               xor  a
ROM0:3F66 E2               ld   (ff00+c),a
ROM0:3F67 0C               inc  c
ROM0:3F68 0C               inc  c
ROM0:3F69 3E 80            ld   a,80
ROM0:3F6B E2               ld   (ff00+c),a
ROM0:3F6C 0C               inc  c
ROM0:3F6D 0C               inc  c
ROM0:3F6E 0C               inc  c
ROM0:3F6F 2C               inc  l
ROM0:3F70 2C               inc  l
ROM0:3F71 2C               inc  l
ROM0:3F72 2C               inc  l
ROM0:3F73 18 B4            jr   3F29
ROM0:3F75 28 0A            jr   z,3F81
ROM0:3F77 2C               inc  l
ROM0:3F78 2C               inc  l
ROM0:3F79 2C               inc  l
ROM0:3F7A 2C               inc  l
ROM0:3F7B 79               ld   a,c
ROM0:3F7C C6 05            add  a,05
ROM0:3F7E 4F               ld   c,a
ROM0:3F7F 18 A8            jr   3F29
ROM0:3F81 AF               xor  a
ROM0:3F82 EA 39 C4         ld   (C439),a
ROM0:3F85 FA 38 C4         ld   a,(C438)
ROM0:3F88 B7               or   a
ROM0:3F89 20 09            jr   nz,3F94
ROM0:3F8B E0 07            ld   (ff00+07),a
ROM0:3F8D 21 FF FF         ld   hl,FFFF
ROM0:3F90 CB 96            res  2,(hl)
ROM0:3F92 18 19            jr   3FAD
ROM0:3F94 21 00 C4         ld   hl,C400
ROM0:3F97 4E               ld   c,(hl)
ROM0:3F98 2C               inc  l
ROM0:3F99 2C               inc  l
ROM0:3F9A 06 02            ld   b,02
ROM0:3F9C 2A               ldi  a,(hl)
ROM0:3F9D 2C               inc  l
ROM0:3F9E B9               cp   c
ROM0:3F9F 38 01            jr   c,3FA2
ROM0:3FA1 4F               ld   c,a
ROM0:3FA2 05               dec  b
ROM0:3FA3 20 F7            jr   nz,3F9C
ROM0:3FA5 79               ld   a,c
ROM0:3FA6 E0 05            ld   (ff00+05),a
ROM0:3FA8 2F               cpl  
ROM0:3FA9 3C               inc  a
ROM0:3FAA EA 3B C4         ld   (C43B),a
ROM0:3FAD E1               pop  hl
ROM0:3FAE D1               pop  de
ROM0:3FAF C1               pop  bc
ROM0:3FB0 F1               pop  af
ROM0:3FB1 D9               reti

Bank 1

rst 08 pointers

ROM1:4002
71 4C - 
62 52 - 
61 54 - 
61 53 - 
92 52 - 
46 53 - 
9D 53 - 
FE 53 - 
AD 52 - 
C8 52 - 
19 53 - 
F6 54 - 
2D 55 - 
1A 54 - 
C8 4F - 
52 55 - 
40 5A - 
2B 5B - 
1E 5B - 
78 5A - 
A6 5A - 
5C 5A - 
60 5A - 
63 5B - 
3B 61 - 
0E 61 - 
44 75 - 
09 65 - 
72 75 - 
40 74 - 
8A 74 - 
D6 74 - 
5A 74 - 
76 74 - 
A2 74 - 
1A 75 - 
F3 6F - 
D3 72 - 
35 70 - 
87 72 - 
4E 70 - 
F4 70 - 
A0 70 - 
54 71 - 
0D 70 - 
15 70 - 
25 70 - 
2D 70 - 
B2 71 - 
47 72 - 
66 6F - 
4A 6F - 
58 6F - 
0A 7B - 
1E 7B - 
34 7B - 
A7 7C - 
C3 7C - 
7B 7D - 
BD 7D - 
CB 7F - 
DF 7C - 
96 76 - 
61 66 - 
AC 6A - 
8E 66 - 
A6 6A - 
B2 40 - 
FB 43 - 
95 49 - 
12 4A - 
1D 4A - 
2E 4A - 
7C 4A - 
9C 4A - 
61 4A - 
DF 4A - Returns offset for selected card ID
41 4B - Display a monster ?
BE 46 - Card parts initialization
38 47 - Stores the Construction part ID
7D 47 - 
DB 47 - 
43 47 - 
60 47 - 
F6 47 - 
11 4C - 
08 45 - 
98 4B -

Construction mode

Card parts initialization

ROM1:46BE F5               push af
ROM1:46BF C5               push bc
ROM1:46C0 D5               push de
ROM1:46C1 E5               push hl
ROM1:46C2 01 00 00         ld   bc,0000
ROM1:46C5 11 8C 00         ld   de,008C		;Construction parts 0 to 140
ROM1:46C8 3E 00            ld   a,00
ROM1:46CA CD 38 47         call 4738		;Stores the Construction part ID
ROM1:46CD 3E 00            ld   a,00		;0 card parts
ROM1:46CF CD BC 47         call 47BC		;Changes a card part quantity
ROM1:46D2 79               ld   a,c
ROM1:46D3 C6 01            add  a,01
ROM1:46D5 4F               ld   c,a
ROM1:46D6 78               ld   a,b
ROM1:46D7 CE 00            adc  a,00
ROM1:46D9 47               ld   b,a
ROM1:46DA CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM1:46DD FE 02            cp   a,02
ROM1:46DF 20 1B            jr   nz,46FC
ROM1:46E1 3E 00            ld   a,00
ROM1:46E3 CD 38 47         call 4738		;Stores the Construction part ID
ROM1:46E6 3E 00            ld   a,00		;0 card parts
ROM1:46E8 CD BC 47         call 47BC		;Changes a card part quantity
ROM1:46EB 79               ld   a,c
ROM1:46EC C6 01            add  a,01
ROM1:46EE 4F               ld   c,a
ROM1:46EF 78               ld   a,b
ROM1:46F0 CE 00            adc  a,00
ROM1:46F2 47               ld   b,a
ROM1:46F3 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM1:46F6 FE 02            cp   a,02
ROM1:46F8 20 02            jr   nz,46FC		;If(bc ≥ de) ,jump to 1:46FC
ROM1:46FA 18 CC            jr   46C8
ROM1:46FC 11 18 01         ld   de,0118		;Construction parts 141 to 280
ROM1:46FF 3E 01            ld   a,01
ROM1:4701 CD 38 47         call 4738		;Stores the Construction part ID
ROM1:4704 3E 00            ld   a,00		;0 card parts
ROM1:4706 CD BC 47         call 47BC		;Changes a card part quantity
ROM1:4709 79               ld   a,c
ROM1:470A C6 01            add  a,01
ROM1:470C 4F               ld   c,a
ROM1:470D 78               ld   a,b
ROM1:470E CE 00            adc  a,00
ROM1:4710 47               ld   b,a
ROM1:4711 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM1:4714 FE 02            cp   a,02
ROM1:4716 20 1B            jr   nz,4733
ROM1:4718 3E 01            ld   a,01
ROM1:471A CD 38 47         call 4738		;Stores the Construction part ID
ROM1:471D 3E 00            ld   a,00
ROM1:471F CD BC 47         call 47BC		;Changes a card part quantity
ROM1:4722 79               ld   a,c
ROM1:4723 C6 01            add  a,01
ROM1:4725 4F               ld   c,a
ROM1:4726 78               ld   a,b
ROM1:4727 CE 00            adc  a,00
ROM1:4729 47               ld   b,a
ROM1:472A CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM1:472D FE 02            cp   a,02
ROM1:472F 20 02            jr   nz,4733
ROM1:4731 18 CC            jr   46FF
ROM1:4733 E1               pop  hl
ROM1:4734 D1               pop  de
ROM1:4735 C1               pop  bc
ROM1:4736 F1               pop  af
ROM1:4737 C9               ret

Stores the Construction part ID

ROM1:4738 F5               push af
ROM1:4739 79               ld   a,c
ROM1:473A EA BA C5         ld   (C5BA),a	;Construction part ID = bc
ROM1:473D 78               ld   a,b
ROM1:473E EA BB C5         ld   (C5BB),a
ROM1:4741 F1               pop  af
ROM1:4742 C9               ret

Changes a card part quantity

ROM1:47BC F5               push af
ROM1:47BD C5               push bc
ROM1:47BE D5               push de
ROM1:47BF E5               push hl
ROM1:47C0 57               ld   d,a
ROM1:47C1 3E 02            ld   a,02
ROM1:47C3 CD 24 12         call 1224		;Switches to WRAM Bank 2
ROM1:47C6 FA BA C5         ld   a,(C5BA)	;Construction part ID
ROM1:47C9 4F               ld   c,a
ROM1:47CA FA BB C5         ld   a,(C5BB)
ROM1:47CD 47               ld   b,a
ROM1:47CE 21 E8 D3         ld   hl,D3E8
ROM1:47D1 09               add  hl,bc		;WRAM address of the card part
ROM1:47D2 72               ld   (hl),d		;Writes the new card part quantity to (2:C5BA + offset)
ROM1:47D3 CD 48 12         call 1248		;WRAM Bank restore
ROM1:47D6 E1               pop  hl
ROM1:47D7 D1               pop  de
ROM1:47D8 C1               pop  bc
ROM1:47D9 F1               pop  af
ROM1:47DA C9               ret

1:4A12

ROM1:4A12 F5               push af
ROM1:4A13 79               ld   a,c
ROM1:4A14 EA BC C5         ld   (C5BC),a
ROM1:4A17 78               ld   a,b
ROM1:4A18 EA BD C5         ld   (C5BD),a
ROM1:4A1B F1               pop  af
ROM1:4A1C C9               ret  
ROM1:4A1D F5               push af
ROM1:4A1E C5               push bc
ROM1:4A1F FA BC C5         ld   a,(C5BC)
ROM1:4A22 FE C8            cp   a,C8
ROM1:4A24 30 05            jr   nc,4A2B
ROM1:4A26 C6 01            add  a,01
ROM1:4A28 EA BC C5         ld   (C5BC),a
ROM1:4A2B C1               pop  bc
ROM1:4A2C F1               pop  af
ROM1:4A2D C9               ret  

1:4A2E

ROM1:4A2E F5               push af
ROM1:4A2F C5               push bc
ROM1:4A30 FA BC C5         ld   a,(C5BC)
ROM1:4A33 FE 00            cp   a,00
ROM1:4A35 28 05            jr   z,4A3C
ROM1:4A37 D6 01            sub  a,01
ROM1:4A39 EA BC C5         ld   (C5BC),a
ROM1:4A3C C1               pop  bc
ROM1:4A3D F1               pop  af
ROM1:4A3E C9               ret  

1:4A3F

ROM1:4A3F F5               push af
ROM1:4A40 E5               push hl
ROM1:4A41 C5               push bc
ROM1:4A42 FA BC C5         ld   a,(C5BC)
ROM1:4A45 4F               ld   c,a
ROM1:4A46 FA BD C5         ld   a,(C5BD)
ROM1:4A49 47               ld   b,a
ROM1:4A4A CB 21            sla  c
ROM1:4A4C CB 10            rl   b
ROM1:4A4E 21 00 D5         ld   hl,D500
ROM1:4A51 09               add  hl,bc
ROM1:4A52 C1               pop  bc
ROM1:4A53 3E 02            ld   a,02
ROM1:4A55 CD 24 12         call 1224		;Switches to WRAM Bank 2
ROM1:4A58 79               ld   a,c
ROM1:4A59 22               ldi  (hl),a
ROM1:4A5A 70               ld   (hl),b
ROM1:4A5B CD 48 12         call 1248		;WRAM Bank restore
ROM1:4A5E E1               pop  hl
ROM1:4A5F F1               pop  af
ROM1:4A60 C9               ret  

1:4A61

ROM1:4A61 F5               push af
ROM1:4A62 C5               push bc
ROM1:4A63 E5               push hl
ROM1:4A64 CD 92 52         call 5292
ROM1:4A67 CD AD 52         call 52AD         ;Increase card quantity
ROM1:4A6A 21 E0 FC         ld   hl,FCE0
ROM1:4A6D 09               add  hl,bc
ROM1:4A6E 44               ld   b,h
ROM1:4A6F 4D               ld   c,l
ROM1:4A70 CD 12 4A         call 4A12
ROM1:4A73 42               ld   b,d
ROM1:4A74 4B               ld   c,e
ROM1:4A75 CD 3F 4A         call 4A3F
ROM1:4A78 E1               pop  hl
ROM1:4A79 C1               pop  bc
ROM1:4A7A F1               pop  af
ROM1:4A7B C9               ret  

1:4A7C

ROM1:4A7C F5               push af
ROM1:4A7D E5               push hl
ROM1:4A7E FA BC C5         ld   a,(C5BC)
ROM1:4A81 4F               ld   c,a
ROM1:4A82 FA BD C5         ld   a,(C5BD)
ROM1:4A85 47               ld   b,a
ROM1:4A86 CB 21            sla  c
ROM1:4A88 CB 10            rl   b
ROM1:4A8A 21 00 D5         ld   hl,D500
ROM1:4A8D 09               add  hl,bc
ROM1:4A8E 3E 02            ld   a,02
ROM1:4A90 CD 24 12         call 1224		;Switches to WRAM Bank 2
ROM1:4A93 2A               ldi  a,(hl)
ROM1:4A94 4F               ld   c,a
ROM1:4A95 46               ld   b,(hl)
ROM1:4A96 CD 48 12         call 1248		;WRAM Bank restore
ROM1:4A99 E1               pop  hl
ROM1:4A9A F1               pop  af
ROM1:4A9B C9               ret  

1:4A9C

ROM1:4A9C F5               push af
ROM1:4A9D D5               push de
ROM1:4A9E E5               push hl
ROM1:4A9F 50               ld   d,b
ROM1:4AA0 59               ld   e,c
ROM1:4AA1 CD ED 1A         call 1AED		;Checks position in Card Trunk ?
ROM1:4AA4 FE 02            cp   a,02
ROM1:4AA6 20 10            jr   nz,4AB8
ROM1:4AA8 21 E0 FC         ld   hl,FCE0
ROM1:4AAB 09               add  hl,bc
ROM1:4AAC 44               ld   b,h
ROM1:4AAD 4D               ld   c,l
ROM1:4AAE CD 12 4A         call 4A12
ROM1:4AB1 CD 7C 4A         call 4A7C
ROM1:4AB4 50               ld   d,b
ROM1:4AB5 59               ld   e,c
ROM1:4AB6 18 08            jr   4AC0
ROM1:4AB8 7B               ld   a,e
ROM1:4AB9 C6 01            add  a,01
ROM1:4ABB 4F               ld   c,a
ROM1:4ABC 7A               ld   a,d
ROM1:4ABD CE 00            adc  a,00
ROM1:4ABF 47               ld   b,a
ROM1:4AC0 E1               pop  hl
ROM1:4AC1 D1               pop  de
ROM1:4AC2 F1               pop  af
ROM1:4AC3 C9               ret  

Returns offset for selected card ID

  • 0x4ADF-0x4B02 - Returns Card ID - 1 if 0 < Card ID ≤ 800, or specific offset for Construction cards, or a = 0 if invalid Card ID or no Card ID
ROM1:4ADF D5               push de
ROM1:4AE0 E5               push hl
ROM1:4AE1 CD 84 1A         call 1A84		;Checks Card ID validity
ROM1:4AE4 FE 00            cp   a,00
ROM1:4AE6 20 04            jr   nz,4AEC		;Impossible to fail, jump to 1:4AEC
ROM1:4AE8 3E 00            ld   a,00
ROM1:4AEA 18 14            jr   4B00
ROM1:4AEC FE 04            cp   a,04
ROM1:4AEE 20 04            jr   nz,4AF4		;If Card ID ≠ 0, jump to 1:4AF4
ROM1:4AF0 3E 00            ld   a,00
ROM1:4AF2 18 0C            jr   4B00		;Else a = 0, and get out of this function
ROM1:4AF4 FE 01            cp   a,01
ROM1:4AF6 20 05            jr   nz,4AFD		;If Card ID > 800, jump to 1:4AFD
ROM1:4AF8 CD 03 4B         call 4B03		;Decrements Card ID
ROM1:4AFB 18 03            jr   4B00
ROM1:4AFD CD 0E 4B         call 4B0E		;Construction cards handling
ROM1:4B00 E1               pop  hl
ROM1:4B01 D1               pop  de
ROM0:4B02 C9               ret

Decrements Card ID (Card ID < 800)

  • 0x4B02-0x4B0D -
ROM1:4B03 79               ld   a,c
ROM1:4B04 D6 01            sub  a,01
ROM1:4B06 4F               ld   c,a
ROM1:4B07 78               ld   a,b
ROM1:4B08 DE 00            sbc  a,00
ROM1:4B0A 47               ld   b,a		;bc --
ROM1:4B0B 3E 01            ld   a,01		;a = 1
ROM0:4B0D C9               ret  

1:4B0E (Construction Card)

  • 0x4B0E-0x4B40 -
ROM1:4B0E D5               push de
ROM1:4B0F E5               push hl
ROM1:4B10 50               ld   d,b
ROM1:4B11 59               ld   e,c		;de = Card ID
ROM1:4B12 2E 00            ld   l,00
ROM1:4B14 01 20 03         ld   bc,0320		;bc = 800
ROM1:4B17 C5               push bc
ROM1:4B18 CD 9C 4A         call 4A9C
ROM1:4B1B CD 14 1B         call 1B14
ROM1:4B1E C1               pop  bc
ROM1:4B1F FE 00            cp   a,00
ROM1:4B21 20 04            jr   nz,4B27
ROM1:4B23 2E 01            ld   l,01
ROM1:4B25 18 16            jr   4B3D
ROM1:4B27 D5               push de
ROM1:4B28 11 E8 03         ld   de,03E8
ROM1:4B2B CD 14 1B         call 1B14
ROM1:4B2E D1               pop  de
ROM1:4B2F FE 00            cp   a,00
ROM1:4B31 28 0A            jr   z,4B3D
ROM1:4B33 79               ld   a,c
ROM1:4B34 C6 01            add  a,01
ROM1:4B36 4F               ld   c,a
ROM1:4B37 78               ld   a,b
ROM1:4B38 CE 00            adc  a,00
ROM1:4B3A 47               ld   b,a
ROM1:4B3B 18 DA            jr   4B17
ROM1:4B3D 7D               ld   a,l
ROM1:4B3E E1               pop  hl
ROM1:4B3F D1               pop  de
ROM0:4B40 C9               ret

1:4B41

ROM1:4B41 F5               push af
ROM1:4B42 C5               push bc
ROM1:4B43 D5               push de
ROM1:4B44 79               ld   a,c
ROM1:4B45 EA BE C5         ld   (C5BE),a	;Copy Card ID to (C5BE)
ROM1:4B48 78               ld   a,b
ROM1:4B49 EA BF C5         ld   (C5BF),a
ROM1:4B4C CD 98 4B         call 4B98
ROM1:4B4F EA C6 C5         ld   (C5C6),a
ROM1:4B52 CD 64 4B         call 4B64
ROM1:4B55 79               ld   a,c
ROM1:4B56 EA C1 C5         ld   (C5C1),a
ROM1:4B59 7B               ld   a,e
ROM1:4B5A EA C0 C5         ld   (C5C0),a
ROM1:4B5D CD B9 4B         call 4BB9
ROM1:4B60 D1               pop  de
ROM1:4B61 C1               pop  bc
ROM1:4B62 F1               pop  af
ROM1:4B63 C9               ret  

Deck Builder

1:501B

ROM1:501B F5               push af
ROM1:501C C5               push bc
ROM1:501D FA EC C5         ld   a,(C5EC)
ROM1:5020 4F               ld   c,a
ROM1:5021 79               ld   a,c
ROM1:5022 FE 00            cp   a,00
ROM1:5024 20 1A            jr   nz,5040
ROM1:5026 CD 81 2A         call 2A81		;Sound Effect: Validate (Menu)
ROM1:5029 3E 01            ld   a,01
ROM1:502B EA EC C5         ld   (C5EC),a
ROM1:502E 3E 00            ld   a,00
ROM1:5030 EA EE C5         ld   (C5EE),a
ROM1:5033 3E 04            ld   a,04
ROM1:5035 CD E3 0E         call 0EE3		;Manages display ?
ROM1:5038 CD C4 51         call 51C4
ROM1:503B CD C1 10         call 10C1
ROM1:503E 18 03            jr   5043
ROM1:5040 CD 00 6C         call 6C00
ROM1:5043 C1               pop  bc
ROM1:5044 F1               pop  af
ROM1:5045 C9               ret

1:5046

ROM1:5046 F5               push af
ROM1:5047 CD 79 2A         call 2A79		;Sound Effect 0x06
ROM1:504A FA EC C5         ld   a,(C5EC)
ROM1:504D FE 01            cp   a,01
ROM1:504F 20 05            jr   nz,5056
ROM1:5051 3E 00            ld   a,00
ROM1:5053 EA EC C5         ld   (C5EC),a
ROM1:5056 F1               pop  af
ROM1:5057 C9               ret

1:5058

ROM1:5058 F5               push af
ROM1:5059 C5               push bc
ROM1:505A FA EC C5         ld   a,(C5EC)
ROM1:505D FE 00            cp   a,00
ROM1:505F 20 28            jr   nz,5089
ROM1:5061 FA F1 C5         ld   a,(C5F1)
ROM1:5064 4F               ld   c,a
ROM1:5065 FA F0 C5         ld   a,(C5F0)
ROM1:5068 B9               cp   c
ROM1:5069 20 10            jr   nz,507B
ROM1:506B FA EF C5         ld   a,(C5EF)
ROM1:506E 47               ld   b,a
ROM1:506F FA ED C5         ld   a,(C5ED)
ROM1:5072 B8               cp   b
ROM1:5073 28 04            jr   z,5079
ROM1:5075 3C               inc  a
ROM1:5076 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:5079 18 0B            jr   5086
ROM1:507B FA ED C5         ld   a,(C5ED)
ROM1:507E FE 04            cp   a,04
ROM1:5080 28 04            jr   z,5086
ROM1:5082 3C               inc  a
ROM1:5083 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:5086 EA ED C5         ld   (C5ED),a
ROM1:5089 FA EC C5         ld   a,(C5EC)
ROM1:508C FE 01            cp   a,01
ROM1:508E 20 0E            jr   nz,509E
ROM1:5090 FA EE C5         ld   a,(C5EE)
ROM1:5093 FE 00            cp   a,00
ROM1:5095 20 04            jr   nz,509B
ROM1:5097 3C               inc  a
ROM1:5098 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:509B EA EE C5         ld   (C5EE),a
ROM1:509E C1               pop  bc
ROM1:509F F1               pop  af
ROM1:50A0 C9               ret  

1:50A1

ROM1:50A1 F5               push af
ROM1:50A2 FA EC C5         ld   a,(C5EC)
ROM1:50A5 FE 00            cp   a,00
ROM1:50A7 20 0E            jr   nz,50B7
ROM1:50A9 FA ED C5         ld   a,(C5ED)
ROM1:50AC FE 00            cp   a,00
ROM1:50AE 28 04            jr   z,50B4
ROM1:50B0 3D               dec  a
ROM1:50B1 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:50B4 EA ED C5         ld   (C5ED),a
ROM1:50B7 FA EC C5         ld   a,(C5EC)
ROM1:50BA FE 01            cp   a,01
ROM1:50BC 20 0E            jr   nz,50CC
ROM1:50BE FA EE C5         ld   a,(C5EE)
ROM1:50C1 FE 01            cp   a,01
ROM1:50C3 20 04            jr   nz,50C9
ROM1:50C5 3D               dec  a
ROM1:50C6 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:50C9 EA EE C5         ld   (C5EE),a
ROM1:50CC F1               pop  af
ROM1:50CD C9               ret  

1:50CE

ROM1:50CE F5               push af
ROM1:50CF C5               push bc
ROM1:50D0 FA EC C5         ld   a,(C5EC)
ROM1:50D3 FE 00            cp   a,00
ROM1:50D5 20 19            jr   nz,50F0
ROM1:50D7 FA F1 C5         ld   a,(C5F1)
ROM1:50DA 4F               ld   c,a
ROM1:50DB FA F0 C5         ld   a,(C5F0)
ROM1:50DE B9               cp   c
ROM1:50DF 20 05            jr   nz,50E6
ROM1:50E1 FA F2 C5         ld   a,(C5F2)
ROM1:50E4 D6 01            sub  a,01
ROM1:50E6 3C               inc  a
ROM1:50E7 EA F0 C5         ld   (C5F0),a
ROM1:50EA CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:50ED CD BE 4C         call 4CBE
ROM1:50F0 C1               pop  bc
ROM1:50F1 F1               pop  af
ROM1:50F2 C9               ret  

1:50F3

ROM1:50F3 F5               push af
ROM1:50F4 C5               push bc
ROM1:50F5 FA EC C5         ld   a,(C5EC)
ROM1:50F8 FE 00            cp   a,00
ROM1:50FA 20 1E            jr   nz,511A
ROM1:50FC FA F1 C5         ld   a,(C5F1)
ROM1:50FF 4F               ld   c,a
ROM1:5100 FA F0 C5         ld   a,(C5F0)
ROM1:5103 B9               cp   c
ROM1:5104 20 05            jr   nz,510B
ROM1:5106 FA F2 C5         ld   a,(C5F2)
ROM1:5109 D6 14            sub  a,14
ROM1:510B C6 14            add  a,14
ROM1:510D B9               cp   c
ROM1:510E 38 01            jr   c,5111
ROM1:5110 79               ld   a,c
ROM1:5111 EA F0 C5         ld   (C5F0),a
ROM1:5114 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:5117 CD BE 4C         call 4CBE
ROM1:511A C1               pop  bc
ROM1:511B F1               pop  af
ROM1:511C C9               ret  

1:511D

ROM1:511D F5               push af
ROM1:511E C5               push bc
ROM1:511F FA EC C5         ld   a,(C5EC)
ROM1:5122 FE 00            cp   a,00
ROM1:5124 20 19            jr   nz,513F
ROM1:5126 FA F2 C5         ld   a,(C5F2)
ROM1:5129 4F               ld   c,a
ROM1:512A FA F0 C5         ld   a,(C5F0)
ROM1:512D B9               cp   c
ROM1:512E 20 05            jr   nz,5135
ROM1:5130 FA F1 C5         ld   a,(C5F1)
ROM1:5133 C6 01            add  a,01
ROM1:5135 3D               dec  a
ROM1:5136 EA F0 C5         ld   (C5F0),a
ROM1:5139 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:513C CD BE 4C         call 4CBE
ROM1:513F C1               pop  bc
ROM1:5140 F1               pop  af
ROM1:5141 C9               ret  

1:5142

ROM1:5142 F5               push af
ROM1:5143 C5               push bc
ROM1:5144 FA EC C5         ld   a,(C5EC)
ROM1:5147 FE 00            cp   a,00
ROM1:5149 20 28            jr   nz,5173
ROM1:514B FA F0 C5         ld   a,(C5F0)
ROM1:514E FE 00            cp   a,00
ROM1:5150 20 05            jr   nz,5157
ROM1:5152 FA F1 C5         ld   a,(C5F1)
ROM1:5155 18 13            jr   516A
ROM1:5157 FA F2 C5         ld   a,(C5F2)
ROM1:515A C6 14            add  a,14
ROM1:515C 4F               ld   c,a
ROM1:515D FA F0 C5         ld   a,(C5F0)
ROM1:5160 B9               cp   c
ROM1:5161 38 04            jr   c,5167
ROM1:5163 D6 14            sub  a,14
ROM1:5165 18 03            jr   516A
ROM1:5167 FA F2 C5         ld   a,(C5F2)
ROM1:516A EA F0 C5         ld   (C5F0),a
ROM1:516D CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:5170 CD BE 4C         call 4CBE
ROM1:5173 C1               pop  bc
ROM1:5174 F1               pop  af
ROM1:5175 C9               ret  

1:5176

ROM1:5176 F5               push af
ROM1:5177 C5               push bc
ROM1:5178 E5               push hl
ROM1:5179 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:517C 06 00            ld   b,00
ROM1:517E FA F5 C5         ld   a,(C5F5)
ROM1:5181 4F               ld   c,a
ROM1:5182 21 97 51         ld   hl,5197
ROM1:5185 09               add  hl,bc
ROM1:5186 7E               ld   a,(hl)
ROM1:5187 EA F5 C5         ld   (C5F5),a
ROM1:518A FA F2 C5         ld   a,(C5F2)
ROM1:518D EA F0 C5         ld   (C5F0),a
ROM1:5190 CD BE 4C         call 4CBE
ROM1:5193 E1               pop  hl
ROM1:5194 C1               pop  bc
ROM1:5195 F1               pop  af
ROM1:5196 C9               ret  

1:519D

ROM1:519D F5               push af
ROM1:519E C5               push bc
ROM1:519F E5               push hl
ROM1:51A0 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM1:51A3 06 00            ld   b,00
ROM1:51A5 FA F5 C5         ld   a,(C5F5)
ROM1:51A8 4F               ld   c,a
ROM1:51A9 21 BE 51         ld   hl,51BE
ROM1:51AC 09               add  hl,bc
ROM1:51AD 7E               ld   a,(hl)
ROM1:51AE EA F5 C5         ld   (C5F5),a
ROM1:51B1 FA F2 C5         ld   a,(C5F2)
ROM1:51B4 EA F0 C5         ld   (C5F0),a
ROM1:51B7 CD BE 4C         call 4CBE
ROM1:51BA E1               pop  hl
ROM1:51BB C1               pop  bc
ROM1:51BC F1               pop  af
ROM1:51BD C9               ret  

1:51C4

ROM1:51C4 F5               push af
ROM1:51C5 C5               push bc
ROM1:51C6 D5               push de
ROM1:51C7 E5               push hl
ROM1:51C8 FA EC C5         ld   a,(C5EC)
ROM1:51CB FE 00            cp   a,00
ROM1:51CD 20 20            jr   nz,51EF
ROM1:51CF 0E 00            ld   c,00
ROM1:51D1 3E FF            ld   a,FF
ROM1:51D3 16 08            ld   d,08
ROM1:51D5 CD EF 12         call 12EF
ROM1:51D8 0E 01            ld   c,01
ROM1:51DA 3E FF            ld   a,FF
ROM1:51DC 16 08            ld   d,08
ROM1:51DE CD EF 12         call 12EF
ROM1:51E1 01 02 00         ld   bc,0002
ROM1:51E4 FA ED C5         ld   a,(C5ED)
ROM1:51E7 CD 32 52         call 5232
ROM1:51EA 16 08            ld   d,08
ROM1:51EC CD EF 12         call 12EF
ROM1:51EF FA EC C5         ld   a,(C5EC)
ROM1:51F2 FE 01            cp   a,01
ROM1:51F4 20 37            jr   nz,522D
ROM1:51F6 0E 00            ld   c,00
ROM1:51F8 3E FF            ld   a,FF
ROM1:51FA 16 08            ld   d,08
ROM1:51FC CD EF 12         call 12EF
ROM1:51FF 01 01 00         ld   bc,0001
ROM1:5202 FA EE C5         ld   a,(C5EE)
ROM1:5205 FE 02            cp   a,02
ROM1:5207 28 0C            jr   z,5215
ROM1:5209 C6 05            add  a,05
ROM1:520B CD 32 52         call 5232
ROM1:520E 16 10            ld   d,10
ROM1:5210 CD EF 12         call 12EF
ROM1:5213 18 0A            jr   521F
ROM1:5215 3E 05            ld   a,05
ROM1:5217 CD 32 52         call 5232
ROM1:521A 16 65            ld   d,65
ROM1:521C CD EF 12         call 12EF
ROM1:521F 01 02 01         ld   bc,0102
ROM1:5222 FA ED C5         ld   a,(C5ED)
ROM1:5225 CD 32 52         call 5232
ROM1:5228 16 08            ld   d,08
ROM1:522A CD EF 12         call 12EF
ROM1:522D E1               pop  hl
ROM1:522E D1               pop  de
ROM1:522F C1               pop  bc
ROM1:5230 F1               pop  af
ROM1:5231 C9               ret  

1:5232

ROM1:5232 C5               push bc
ROM1:5233 E5               push hl
ROM1:5234 06 00            ld   b,00
ROM1:5236 4F               ld   c,a
ROM1:5237 21 3F 52         ld   hl,523F
ROM1:523A 09               add  hl,bc
ROM1:523B 7E               ld   a,(hl)
ROM1:523C E1               pop  hl
ROM1:523D C1               pop  bc
ROM1:523E C9               ret  

1:523F (array)

ROM1:523F
28 38 48 58 68 78 88 98 A8

1:5248

ROM1:5248 F5               push af
ROM1:5249 C5               push bc
ROM1:524A D5               push de
ROM1:524B E5               push hl
ROM1:524C FA F0 C5         ld   a,(C5F0)
ROM1:524F 5F               ld   e,a
ROM1:5250 06 05            ld   b,05
ROM1:5252 CD 68 14         call 1468
ROM1:5255 7D               ld   a,l
ROM1:5256 EA F3 C5         ld   (C5F3),a
ROM1:5259 7C               ld   a,h
ROM1:525A EA F4 C5         ld   (C5F4),a
ROM1:525D E1               pop  hl
ROM1:525E D1               pop  de
ROM1:525F C1               pop  bc
ROM1:5260 F1               pop  af
ROM1:5261 C9               ret  

Initialize Cards in trunk

  • 0x5262-0x5291 - Initialize the cards owned to 0. Debug should give 200 copies of each card, but doesn't due to the accumulator being FF'd at 1:5278.
ROM1:5262 F5               push af
ROM1:5263 C5               push bc
ROM1:5264 E5               push hl
ROM1:5265 CF               rst  08
...
ROM1:5268 FE 00            cp   a,00
ROM1:526A 20 04            jr   nz,5270		;If debug, jump to 1:5270
ROM1:526C 3E FF            ld   a,FF		;Normal: 0xFF
ROM1:526E 18 02            jr   5272
ROM1:5270 3E C8            ld   a,C8		;Debug: 200
ROM1:5272 01 00 00         ld   bc,0000
ROM1:5275 CD 92 52         call 5292
ROM1:5278 3E FF            ld   a,FF		;Change this instruction to activate this debug function
ROM1:527A CD 27 53         call 5327		;Writes card quantity in trunk
ROM1:527D 03               inc  bc		;Card ID ++
ROM1:527E CD ED 1A         call 1AED
ROM1:5281 FE 03            cp   a,03
ROM1:5283 28 02            jr   z,5287		;If the entire trunk is initialized, jump to 1:5287
ROM1:5285 18 EE            jr   5275		;Else loop to 1:5275
ROM1:5287 AF               xor  a
ROM1:5288 EA FC C5         ld   (C5FC),a
ROM1:528B EA FD C5         ld   (C5FD),a	;Blanks (C5FC)
ROM1:528E E1               pop  hl
ROM1:528F C1               pop  bc
ROM1:5290 F1               pop  af
ROM1:5291 C9               ret

(Try to) check if card ID is valid, store it to wC5FC

0x5292 - 0x52AC - BUG: It only checks if the card ID is different from 1001, instead of making sure that the card ID is < 801.

ROM1:5292 F5               push af
ROM1:5293 CD B8 1A         call 1AB8            ;Checks position in Card Trunk
ROM1:5296 FE 03            cp   a,03
ROM1:5298 28 0A            jr   z,52A4          ;if(card_ID == 1001), jump to 1:52A4
ROM1:529A 79               ld   a,c
ROM1:529B EA FC C5         ld   (C5FC),a
ROM1:529E 78               ld   a,b
ROM1:529F EA FD C5         ld   (C5FD),a	;Stores current Card ID to (C5FC)
ROM1:52A2 18 07            jr   52AB
ROM1:52A4 AF               xor  a
ROM1:52A5 EA FC C5         ld   (C5FC),a
ROM1:52A8 EA FD C5         ld   (C5FD),a	;Blanks (C5FC)
ROM1:52AB F1               pop  af
ROM1:52AC C9               ret

Increase card quantity

ROM1:52AD F5               push af
ROM1:52AE C5               push bc
ROM1:52AF CD 46 53         call 5346		;Loads card quantity in trunk
ROM1:52B2 FE FF            cp   a,FF
ROM1:52B4 20 04            jr   nz,52BA		;If card is registered, jump to 1:52BA
ROM1:52B6 AF               xor  a
ROM1:52B7 CD 27 53         call 5327		;Writes 0x00 in trunk
ROM1:52BA CD 46 53         call 5346		;Loads card quantity in trunk
ROM1:52BD FE FA            cp   a,FA
ROM1:52BF 28 04            jr   z,52C5		;If(quantity == 250), jump to 1:52C5
ROM1:52C1 3C               inc  a		;Else increase card quantity
ROM1:52C2 CD 27 53         call 5327		;Writes card quantity in trunk
ROM1:52C5 C1               pop  bc
ROM1:52C6 F1               pop  af
ROM1:52C7 C9               ret

Decrease card quantity (deck)

ROM1:52C8 C5               push bc
ROM1:52C9 D5               push de
ROM1:52CA 16 00            ld   d,00
ROM1:52CC CD 46 53         call 5346		;Loads card quantity in trunk
ROM1:52CF FE 00            cp   a,00
ROM1:52D1 20 04            jr   nz,52D7		;If(quantity ≠ 0), jump to 1:52FB
ROM1:52D3 16 01            ld   d,01		;Error: can't decrease card not owned
ROM1:52D5 18 0C            jr   52E3
ROM1:52D7 FE FF            cp   a,FF
ROM1:52D9 20 04            jr   nz,52DF		;If card is registered, jump to 1:52FB
ROM1:52DB 16 01            ld   d,01		;Error: can't decrease card not registered
ROM1:52DD 18 04            jr   52E3
ROM1:52DF 3D               dec  a		;Decrease card quantity
ROM1:52E0 CD 27 53         call 5327		;Writes card quantity in trunk
ROM1:52E3 7A               ld   a,d
ROM1:52E4 D1               pop  de
ROM1:52E5 C1               pop  bc
ROM1:52E6 C9               ret  

Decrease card quantity (trade)

ROM1:52E7 C5               push bc
ROM1:52E8 D5               push de
ROM1:52E9 16 00            ld   d,00
ROM1:52EB CD 46 53         call 5346		;Loads card quantity in trunk
ROM1:52EE FE 01            cp   a,01
ROM1:52F0 20 09            jr   nz,52FB		;If(quantity ≠ 1), jump to 1:52FB
ROM1:52F2 3E FF            ld   a,FF		;Unregister card from trunk
ROM1:52F4 CD 27 53         call 5327		;Writes 0xFF in trunk
ROM1:52F7 16 00            ld   d,00
ROM1:52F9 18 0C            jr   5307
ROM1:52FB FE FF            cp   a,FF
ROM1:52FD 20 04            jr   nz,5303		;If card is registered, jump to 1:52FB
ROM1:52FF 16 01            ld   d,01		;Error: can't decrease card not registered
ROM1:5301 18 04            jr   5307
ROM1:5303 3D               dec  a		;Decrease card quantity
ROM1:5304 CD 27 53         call 5327		;Writes card quantity in trunk
ROM1:5307 7A               ld   a,d
ROM1:5308 D1               pop  de
ROM1:5309 C1               pop  bc
ROM1:530A C9               ret

Decrease card quantity (still registered)

ROM1:530B F5               push af
ROM1:530C CD 46 53         call 5346		;Loads card quantity in trunk
ROM1:530F FE FF            cp   a,FF
ROM1:5311 28 04            jr   z,5317		;If card is not registered, jump to 1:5317
ROM1:5313 3D               dec  a		;Card quantity - 1
ROM1:5314 CD 27 53         call 5327		;Writes card quantity in trunk
ROM1:5317 F1               pop  af
ROM1:5318 C9               ret  

Register a card (not owned)

ROM1:5319 F5               push af
ROM1:531A CD 46 53         call 5346		;Loads card quantity in trunk
ROM1:531D FE FF            cp   a,FF
ROM1:531F 20 04            jr   nz,5325		;If card is registered, jump to 1:5325
ROM1:5321 AF               xor  a		;Card quantity = 0
ROM1:5322 CD 27 53         call 5327		;Writes card quantity in trunk
ROM1:5325 F1               pop  af
ROM1:5326 C9               ret

Writes card quantity in trunk

  • 0x5327-0x5345 - Writes cards quantities in (2:D000)
ROM1:5327 F5               push af
ROM1:5328 C5               push bc
ROM1:5329 D5               push de
ROM1:532A E5               push hl
ROM1:532B 57               ld   d,a
ROM1:532C 3E 02            ld   a,02
ROM1:532E CD 24 12         call 1224		;Switches to WRAM Bank 2
ROM1:5331 FA FC C5         ld   a,(C5FC)
ROM1:5334 4F               ld   c,a
ROM1:5335 FA FD C5         ld   a,(C5FD)
ROM1:5338 47               ld   b,a
ROM1:5339 21 00 D0         ld   hl,D000
ROM1:533C 09               add  hl,bc		;hl = pointer to card quantity in trunk
ROM1:533D 72               ld   (hl),d		;Writes card quantity to 2:D000 + offset
ROM1:533E CD 48 12         call 1248		;WRAM Bank restore
ROM1:5341 E1               pop  hl
ROM1:5342 D1               pop  de
ROM1:5343 C1               pop  bc
ROM1:5344 F1               pop  af
ROM1:5345 C9               ret

Loads card quantity in trunk

ROM1:5346 C5               push bc
ROM1:5347 E5               push hl
ROM1:5348 3E 02            ld   a,02
ROM1:534A CD 24 12         call 1224		;Switches to WRAM Bank 2
ROM1:534D FA FC C5         ld   a,(C5FC)
ROM1:5350 4F               ld   c,a
ROM1:5351 FA FD C5         ld   a,(C5FD)
ROM1:5354 47               ld   b,a
ROM1:5355 21 00 D0         ld   hl,D000
ROM1:5358 09               add  hl,bc		;hl = pointer to card quantity in trunk
ROM1:5359 4E               ld   c,(hl)
ROM1:535A CD 48 12         call 1248		;WRAM Bank restore
ROM1:535D 79               ld   a,c		;a = card quantity
ROM1:535E E1               pop  hl
ROM1:535F C1               pop  bc
ROM1:5360 C9               ret

Add card in deck

ROM1:5361 C5               push bc
ROM1:5362 D5               push de
ROM1:5363 1E 01            ld   e,01
ROM1:5365 FA FC C5         ld   a,(C5FC)
ROM1:5368 4F               ld   c,a
ROM1:5369 FA FD C5         ld   a,(C5FD)
ROM1:536C 47               ld   b,a
ROM1:536D CD 9C 4A         call 4A9C
ROM1:5370 CD B3 54         call 54B3		;Checks if the card is limited
ROM1:5373 FE 00            cp   a,00
ROM1:5375 20 04            jr   nz,537B		;If the card is limited, jump to 1:537B
ROM1:5377 16 03            ld   d,03		;Copies allowed: 3
ROM1:5379 18 02            jr   537D
ROM1:537B 16 01            ld   d,01		;Copies allowed: 1
ROM1:537D CD 8D 5B         call 5B8D		;Number of copies of the card in the deck
ROM1:5380 BA               cp   d
ROM1:5381 30 16            jr   nc,5399		;If(Card Quantity ≥ Card Limitation), get out of that function
ROM1:5383 C5               push bc
ROM1:5384 CD DA 5A         call 5ADA		;Checks if the deck has 40 cards
ROM1:5387 78               ld   a,b
ROM1:5388 C1               pop  bc
ROM1:5389 FE 00            cp   a,00
ROM1:538B 20 0C            jr   nz,5399		;If the deck has 40 cards, get out of that function
ROM1:538D CD C8 52         call 52C8		;Decrease card quantity in trunk
ROM1:5390 FE 00            cp   a,00
ROM1:5392 20 05            jr   nz,5399
ROM1:5394 CD 8C 5A         call 5A8C
ROM1:5397 1E 00            ld   e,00
ROM1:5399 7B               ld   a,e
ROM1:539A D1               pop  de
ROM1:539B C1               pop  bc
ROM1:539C C9               ret

1:539D

ROM1:539D F5               push af
ROM1:539E C5               push bc
ROM1:539F CD DA 5A         call 5ADA		;Checks if the deck has 40 cards
ROM1:53A2 79               ld   a,c
ROM1:53A3 FE 01            cp   a,01
ROM1:53A5 28 0F            jr   z,53B6
ROM1:53A7 CD 78 5A         call 5A78
ROM1:53AA CD DF 4A         call 4ADF
ROM1:53AD CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:53B0 CD AD 52         call 52AD         ;Increase card quantity
ROM1:53B3 CD A6 5A         call 5AA6
ROM1:53B6 C1               pop  bc
ROM1:53B7 F1               pop  af
ROM1:53B8 C9               ret  

1:53B9

ROM1:53B9 F5               push af
ROM1:53BA C5               push bc
ROM1:53BB CD DA 5A         call 5ADA		;Checks if the deck has 40 cards
ROM1:53BE 79               ld   a,c
ROM1:53BF FE 00            cp   a,00
ROM1:53C1 28 0F            jr   z,53D2
ROM1:53C3 CD 78 5A         call 5A78
ROM1:53C6 CD DF 4A         call 4ADF
ROM1:53C9 CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:53CC CD AD 52         call 52AD         ;Increase card quantity
ROM1:53CF CD A6 5A         call 5AA6
ROM1:53D2 C1               pop  bc
ROM1:53D3 F1               pop  af
ROM1:53D4 C9               ret  

1:53D5

ROM1:53D5 C5               push bc
ROM1:53D6 D5               push de
ROM1:53D7 1E 01            ld   e,01
ROM1:53D9 FA FC C5         ld   a,(C5FC)
ROM1:53DC 4F               ld   c,a
ROM1:53DD FA FD C5         ld   a,(C5FD)
ROM1:53E0 47               ld   b,a
ROM1:53E1 CD 9C 4A         call 4A9C
ROM1:53E4 C5               push bc
ROM1:53E5 CD D6 74         call 74D6
ROM1:53E8 78               ld   a,b
ROM1:53E9 C1               pop  bc
ROM1:53EA FE 00            cp   a,00
ROM1:53EC 20 0C            jr   nz,53FA
ROM1:53EE CD C8 52         call 52C8
ROM1:53F1 FE 00            cp   a,00
ROM1:53F3 20 05            jr   nz,53FA
ROM1:53F5 CD 8A 74         call 748A
ROM1:53F8 1E 00            ld   e,00
ROM1:53FA 7B               ld   a,e
ROM1:53FB D1               pop  de
ROM1:53FC C1               pop  bc
ROM1:53FD C9               ret  

1:53FE

ROM1:53FE F5               push af
ROM1:53FF C5               push bc
ROM1:5400 CD D6 74         call 74D6
ROM1:5403 79               ld   a,c
ROM1:5404 FE 00            cp   a,00
ROM1:5406 28 0F            jr   z,5417
ROM1:5408 CD 76 74         call 7476
ROM1:540B CD DF 4A         call 4ADF
ROM1:540E CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:5411 CD AD 52         call 52AD         ;Increase card quantity
ROM1:5414 CD A2 74         call 74A2
ROM1:5417 C1               pop  bc
ROM1:5418 F1               pop  af
ROM1:5419 C9               ret  

1:541A

ROM1:541A C5               push bc
ROM1:541B D5               push de
ROM1:541C FA FC C5         ld   a,(C5FC)
ROM1:541F 4F               ld   c,a
ROM1:5420 FA FD C5         ld   a,(C5FD)
ROM1:5423 47               ld   b,a
ROM1:5424 CD 9C 4A         call 4A9C
ROM1:5427 CD 8D 5B         call 5B8D		;Number of copies of the card in the deck
ROM1:542A FE 00            cp   a,00
ROM1:542C 28 04            jr   z,5432
ROM1:542E 3E 01            ld   a,01
ROM1:5430 18 2C            jr   545E
ROM1:5432 1E 01            ld   e,01
ROM1:5434 FA FC C5         ld   a,(C5FC)
ROM1:5437 4F               ld   c,a
ROM1:5438 FA FD C5         ld   a,(C5FD)
ROM1:543B 47               ld   b,a
ROM1:543C CD E7 52         call 52E7		;Decrease card quantity
ROM1:543F FE 00            cp   a,00
ROM1:5441 20 1A            jr   nz,545D
ROM1:5443 CD 9C 4A         call 4A9C
ROM1:5446 CD 41 4B         call 4B41
ROM1:5449 FA C1 C5         ld   a,(C5C1)
ROM1:544C CD 43 47         call 4743
ROM1:544F CD F6 47         call 47F6
ROM1:5452 FA C0 C5         ld   a,(C5C0)
ROM1:5455 CD 60 47         call 4760
ROM1:5458 CD F6 47         call 47F6
ROM1:545B 1E 00            ld   e,00
ROM1:545D 7B               ld   a,e
ROM1:545E D1               pop  de
ROM1:545F C1               pop  bc
ROM1:5460 C9               ret

1:5461

ROM1:5461 F5               push af
ROM1:5462 E5               push hl
ROM1:5463 E8 FE            add  sp,FE
ROM1:5465 F8 00            ld   hl,sp+00
ROM1:5467 AF               xor  a
ROM1:5468 22               ldi  (hl),a
ROM1:5469 22               ldi  (hl),a
ROM1:546A 22               ldi  (hl),a
ROM1:546B 01 00 00         ld   bc,0000
ROM1:546E CF               rst  08
ROM1:546F 03               inc  bc
ROM1:5470 07               rlca 
ROM1:5471 FA BB C6         ld   a,(C6BB)
ROM1:5474 FE 14            cp   a,14
ROM1:5476 30 23            jr   nc,549B
ROM1:5478 CF               rst  08
ROM1:5479 3D               dec  a
ROM1:547A 05               dec  b
ROM1:547B 5F               ld   e,a
ROM1:547C FA BC C6         ld   a,(C6BC)
ROM1:547F BB               cp   e
ROM1:5480 28 02            jr   z,5484
ROM1:5482 30 17            jr   nc,549B
ROM1:5484 CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:5487 CD 46 53         call 5346		;Loads card quantity in Card Trunk
ROM1:548A FE FF            cp   a,FF
ROM1:548C 20 01            jr   nz,548F
ROM1:548E AF               xor  a
ROM1:548F F8 00            ld   hl,sp+00
ROM1:5491 86               add  (hl)
ROM1:5492 22               ldi  (hl),a
ROM1:5493 3E 00            ld   a,00
ROM1:5495 8E               adc  (hl)
ROM1:5496 22               ldi  (hl),a
ROM1:5497 3E 00            ld   a,00
ROM1:5499 8E               adc  (hl)
ROM1:549A 77               ld   (hl),a
ROM1:549B 03               inc  bc
ROM1:549C 11 20 03         ld   de,0320
ROM1:549F CD 14 1B         call 1B14
ROM1:54A2 FE 00            cp   a,00
ROM1:54A4 20 C8            jr   nz,546E
ROM1:54A6 F8 00            ld   hl,sp+00
ROM1:54A8 2A               ldi  a,(hl)
ROM1:54A9 5F               ld   e,a
ROM1:54AA 2A               ldi  a,(hl)
ROM1:54AB 4F               ld   c,a
ROM1:54AC 2A               ldi  a,(hl)
ROM1:54AD 47               ld   b,a
ROM1:54AE E8 02            add  sp,02
ROM1:54B0 E1               pop  hl
ROM1:54B1 F1               pop  af
ROM1:54B2 C9               ret  

Checks if the card is limited

  • 0x54B3-0x54DB - Checks if the specified card is limited
ROM1:54B3 C5               push bc
ROM1:54B4 D5               push de
ROM1:54B5 E5               push hl
ROM1:54B6 50               ld   d,b
ROM1:54B7 59               ld   e,c		;de = Card ID being checked
ROM1:54B8 21 DC 54         ld   hl,54DC		;hl = Pointer to limited cards array
ROM1:54BB 2A               ldi  a,(hl)
ROM1:54BC 4F               ld   c,a
ROM1:54BD 2A               ldi  a,(hl)
ROM1:54BE 47               ld   b,a		;bc = Limited card ID
ROM1:54BF CD 72 1A         call 1A72		;Checks if a card is being processed
ROM1:54C2 FE 01            cp   a,01
ROM1:54C4 20 04            jr   nz,54CA
ROM1:54C6 0E 00            ld   c,00
ROM1:54C8 18 0D            jr   54D7		;If there's no card processed, get out of this function
ROM1:54CA CD 14 1B         call 1B14		;Checks if Card ID ≠ Limited Card ID
ROM1:54CD FE 00            cp   a,00
ROM1:54CF 20 04            jr   nz,54D5		;If(Card ID ≠ Limited Card ID), jump to 1:54D5
ROM1:54D1 0E 01            ld   c,01
ROM1:54D3 18 02            jr   54D7
ROM1:54D5 18 E4            jr   54BB		;Loops to next card ID in Limited cards array
ROM1:54D7 79               ld   a,c		;If the card is limited, a = 1, else a = 0
ROM1:54D8 E1               pop  hl
ROM1:54D9 D1               pop  de
ROM1:54DA C1               pop  bc
ROM1:54DB C9               ret  

Limited cards list

  • 0x54DC-0x54F3 - Limited cards list
ROM1:54DC
11 00 Exodia part
12 00 Exodia part
13 00 Exodia part
14 00 Exodia part
15 00 Exodia the Forbidden One
50 01 Dark Hole
51 01 Raigeki
5C 01 Swords of Revealing Light
91 02 Megamorph
0D 03 Brain Control
10 03 Change of Heart
15 03 Pot of Greed
00 00 (end of array)

1:54F6

ROM1:54F6 F5               push af
ROM1:54F7 D5               push de
ROM1:54F8 E5               push hl
ROM1:54F9 60               ld   h,b
ROM1:54FA 69               ld   l,c
ROM1:54FB 11 00 00         ld   de,0000
ROM1:54FE CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM1:5501 FE 02            cp   a,02
ROM1:5503 28 03            jr   z,5508
ROM1:5505 01 00 00         ld   bc,0000
ROM1:5508 CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:550B CD 46 53         call 5346		;Loads card quantity in trunk
ROM1:550E FE FF            cp   a,FF
ROM1:5510 28 04            jr   z,5516		;If card not registered, jump to 1:5516
ROM1:5512 FE 00            cp   a,00
ROM1:5514 20 13            jr   nz,5529		;If card not owned, jump to 1:5529
ROM1:5516 79               ld   a,c
ROM1:5517 C6 01            add  a,01
ROM1:5519 4F               ld   c,a
ROM1:551A 78               ld   a,b
ROM1:551B CE 00            adc  a,00
ROM1:551D 47               ld   b,a
ROM1:551E 54               ld   d,h
ROM1:551F 5D               ld   e,l
ROM1:5520 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM1:5523 FE 01            cp   a,01
ROM1:5525 28 02            jr   z,5529
ROM1:5527 18 D2            jr   54FB
ROM1:5529 E1               pop  hl
ROM1:552A D1               pop  de
ROM1:552B F1               pop  af
ROM1:552C C9               ret

Stores position in deck

ROM1:5A5C EA 09 C6         ld   (C609),a	;Current position -1 in Deck
ROM1:5A5F C9               ret  

Copy Starter deck

  • 0x5A60-0x5A77 - Writes the starter deck from ROM 0:255D in WRAM 0:C60A when a new game is started
ROM1:5A60 F5               push af
ROM1:5A61 C5               push bc
ROM1:5A62 D5               push de
ROM1:5A63 E5               push hl
ROM1:5A64 16 00            ld   d,00
ROM1:5A66 FA 09 C6         ld   a,(C609)
ROM1:5A69 5F               ld   e,a
ROM1:5A6A CB 23            sla  e		;Loads ((current deck count - 1) × 2) in register e
ROM1:5A6C 21 0A C6         ld   hl,C60A
ROM1:5A6F 19               add  hl,de
ROM1:5A70 79               ld   a,c
ROM1:5A71 22               ldi  (hl),a
ROM1:5A72 70               ld   (hl),b		;Writes card ID to ((C60A) + position offset)
ROM1:5A73 E1               pop  hl
ROM1:5A74 D1               pop  de
ROM1:5A75 C1               pop  bc
ROM1:5A76 F1               pop  af
ROM1:5A77 C9               ret

Retrieves card from deck at position x

ROM1:5A78 F5               push af
ROM1:5A79 E5               push hl
ROM1:5A7A 06 00            ld   b,00
ROM1:5A7C FA 09 C6         ld   a,(C609)	;Current position -1 in Deck
ROM1:5A7F 4F               ld   c,a
ROM1:5A80 CB 21            sla  c
ROM1:5A82 21 0A C6         ld   hl,C60A
ROM1:5A85 09               add  hl,bc		;hl = Pointer to Player's deck
ROM1:5A86 2A               ldi  a,(hl)
ROM1:5A87 46               ld   b,(hl)
ROM1:5A88 4F               ld   c,a		;bc = Card ID
ROM1:5A89 E1               pop  hl
ROM1:5A8A F1               pop  af
ROM1:5A8B C9               ret

1:5A8C

ROM1:5A8C F5               push af
ROM1:5A8D C5               push bc
ROM1:5A8E D5               push de
ROM1:5A8F 50               ld   d,b
ROM1:5A90 59               ld   e,c
ROM1:5A91 CD DA 5A         call 5ADA		;Checks if the deck has 40 cards
ROM1:5A94 78               ld   a,b
ROM1:5A95 FE 00            cp   a,00
ROM1:5A97 20 09            jr   nz,5AA2		;If the deck has 40 cards, jump to 1:5AA2
ROM1:5A99 79               ld   a,c
ROM1:5A9A CD 5C 5A         call 5A5C
ROM1:5A9D 42               ld   b,d
ROM1:5A9E 4B               ld   c,e
ROM1:5A9F CD 60 5A         call 5A60
ROM1:5AA2 D1               pop  de
ROM1:5AA3 C1               pop  bc
ROM1:5AA4 F1               pop  af
ROM1:5AA5 C9               ret  

1:5AA6

ROM1:5AA6 F5               push af
ROM1:5AA7 C5               push bc
ROM1:5AA8 D5               push de
ROM1:5AA9 E5               push hl
ROM1:5AAA FA 09 C6         ld   a,(C609)
ROM1:5AAD 6F               ld   l,a
ROM1:5AAE 16 00            ld   d,00
ROM1:5AB0 1E 00            ld   e,00
ROM1:5AB2 7B               ld   a,e
ROM1:5AB3 CD 5C 5A         call 5A5C
ROM1:5AB6 CD 78 5A         call 5A78
ROM1:5AB9 7B               ld   a,e
ROM1:5ABA BD               cp   l
ROM1:5ABB 28 08            jr   z,5AC5
ROM1:5ABD 7A               ld   a,d
ROM1:5ABE CD 5C 5A         call 5A5C
ROM1:5AC1 CD 60 5A         call 5A60
ROM1:5AC4 14               inc  d
ROM1:5AC5 1C               inc  e
ROM1:5AC6 7B               ld   a,e
ROM1:5AC7 FE 28            cp   a,28
ROM1:5AC9 38 E7            jr   c,5AB2
ROM1:5ACB 7A               ld   a,d
ROM1:5ACC CD 5C 5A         call 5A5C
ROM1:5ACF 01 00 00         ld   bc,0000
ROM1:5AD2 CD 60 5A         call 5A60
ROM1:5AD5 E1               pop  hl
ROM1:5AD6 D1               pop  de
ROM1:5AD7 C1               pop  bc
ROM1:5AD8 F1               pop  af
ROM1:5AD9 C9               ret  

Checks if the deck has 40 cards (push / pop)

ROM1:5ADA F5               push af
ROM1:5ADB D5               push de
ROM1:5ADC E5               push hl
ROM1:5ADD 21 0A C6         ld   hl,C60A		;hl = Pointer to Player's deck
ROM1:5AE0 1E 00            ld   e,00		;e = card count
ROM1:5AE2 2A               ldi  a,(hl)
ROM1:5AE3 4F               ld   c,a
ROM1:5AE4 2A               ldi  a,(hl)
ROM1:5AE5 47               ld   b,a
ROM1:5AE6 CD 72 1A         call 1A72		;Checks if a card is being processed
ROM1:5AE9 FE 01            cp   a,01
ROM1:5AEB 28 06            jr   z,5AF3		;If no card is being processed, jump to 1:5AF3
ROM1:5AED 1C               inc  e		;card count ++
ROM1:5AEE 7B               ld   a,e
ROM1:5AEF FE 28            cp   a,28
ROM1:5AF1 38 EF            jr   c,5AE2		;If(card count < 40), loop to 1:5AE2
ROM1:5AF3 06 00            ld   b,00
ROM1:5AF5 4B               ld   c,e
ROM1:5AF6 79               ld   a,c
ROM1:5AF7 FE 28            cp   a,28
ROM1:5AF9 20 01            jr   nz,5AFC		;If(card count < 40), b = 0
ROM1:5AFB 04               inc  b		;Else b = 1
ROM1:5AFC E1               pop  hl
ROM1:5AFD D1               pop  de
ROM1:5AFE F1               pop  af
ROM1:5AFF C9               ret

Returns deck size

ROM1:5B00 C5               push bc
ROM1:5B01 E5               push hl
ROM1:5B02 21 0A C6         ld   hl,C60A		;Pointer to Player's deck
ROM1:5B05 0E 00            ld   c,00		;c = card count
ROM1:5B07 2A               ldi  a,(hl)		;Checks if there's a card to check
ROM1:5B08 FE 00            cp   a,00
ROM1:5B0A 20 07            jr   nz,5B13
ROM1:5B0C 2A               ldi  a,(hl)
ROM1:5B0D FE 00            cp   a,00
ROM1:5B0F 28 09            jr   z,5B1A		;If(card ID == 0), there's no more card to check; jump to 1:5B1A
ROM1:5B11 18 01            jr   5B14
ROM1:5B13 23               inc  hl
ROM1:5B14 0C               inc  c		;card count ++
ROM1:5B15 79               ld   a,c
ROM1:5B16 FE 28            cp   a,28
ROM1:5B18 38 ED            jr   c,5B07		;If(card count < 40), loop to 1:5B07
ROM1:5B1A 79               ld   a,c		;a = card count
ROM1:5B1B E1               pop  hl
ROM1:5B1C C1               pop  bc
ROM1:5B1D C9               ret  

Checks if the deck has 40 cards

ROM1:5B1E CD 00 5B         call 5B00		;Returns deck size
ROM1:5B21 FE 28            cp   a,28
ROM1:5B23 20 03            jr   nz,5B28
ROM1:5B25 AF               xor  a
ROM1:5B26 18 02            jr   5B2A		;If the deck has 40 cards, a = 0
ROM1:5B28 3E 01            ld   a,01		;Else a = 1
ROM1:5B2A C9               ret  

Deck Cost

ROM1:5B2B F5               push af
ROM1:5B2C D5               push de
ROM1:5B2D E5               push hl
ROM1:5B2E CD 00 5B         call 5B00		;Returns deck size
ROM1:5B31 57               ld   d,a		;d = Deck size
ROM1:5B32 1E 00            ld   e,00
ROM1:5B34 01 00 00         ld   bc,0000
ROM1:5B37 7B               ld   a,e		;Current position in deck = 0
ROM1:5B38 BA               cp   d
ROM1:5B39 30 18            jr   nc,5B53		;If a > deck size, jump to 1:5B53
ROM1:5B3B C5               push bc
ROM1:5B3C 7B               ld   a,e
ROM1:5B3D CD 5C 5A         call 5A5C		;Current position in deck = a
ROM1:5B40 CD 78 5A         call 5A78		;Retrieves card ID from deck in that position
ROM1:5B43 CF               rst  08
...
ROM1:5B46 C1               pop  bc
ROM1:5B47 FA BC C6         ld   a,(C6BC)	;Card Cost
ROM1:5B4A 81               add  c		;Add previous total
ROM1:5B4B 4F               ld   c,a
ROM1:5B4C 3E 00            ld   a,00
ROM1:5B4E 88               adc  b		;Store new total in bc
ROM1:5B4F 47               ld   b,a
ROM1:5B50 1C               inc  e		;Current position in deck ++
ROM1:5B51 18 E4            jr   5B37		;Loop to 1:5B37
ROM1:5B53 11 0F 27         ld   de,270F
ROM1:5B56 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM1:5B59 FE 00            cp   a,00
ROM1:5B5B 20 02            jr   nz,5B5F		;If Deck Cost ≤ 9999, get out of this function
ROM1:5B5D 42               ld   b,d
ROM1:5B5E 4B               ld   c,e		;Else Deck Cost = 9999
ROM1:5B5F E1               pop  hl
ROM1:5B60 D1               pop  de
ROM1:5B61 F1               pop  af
ROM1:5B62 C9               ret

Checks if a specific card is present in the deck

ROM1:5B63 F5               push af
ROM1:5B64 D5               push de
ROM1:5B65 50               ld   d,b
ROM1:5B66 59               ld   e,c
ROM1:5B67 CD 00 5B         call 5B00		;Returns deck size
ROM1:5B6A 3D               dec  a
ROM1:5B6B 4F               ld   c,a
ROM1:5B6C 06 00            ld   b,00
ROM1:5B6E 79               ld   a,c
ROM1:5B6F FE FF            cp   a,FF
ROM1:5B71 28 17            jr   z,5B8A		;If the deck has been entirely checked, get out of this function
ROM1:5B73 C5               push bc
ROM1:5B74 79               ld   a,c
ROM1:5B75 CD 5C 5A         call 5A5C		;Current position in deck = a
ROM1:5B78 CD 78 5A         call 5A78		;Retrieves card ID from deck in that position
ROM1:5B7B CD 14 1B         call 1B14		;Checks if Card ID ≠ submitted ID
ROM1:5B7E C1               pop  bc
ROM1:5B7F FE 00            cp   a,00
ROM1:5B81 20 04            jr   nz,5B87		;If(Card ID ≠ submitted ID), jump to 1:5B87
ROM1:5B83 06 01            ld   b,01
ROM1:5B85 18 03            jr   5B8A		;Else b = 1, and get out of this function
ROM1:5B87 0D               dec  c		;Deck size --
ROM1:5B88 18 E4            jr   5B6E		;Loop to 1:5B6E
ROM1:5B8A D1               pop  de
ROM1:5B8B F1               pop  af
ROM1:5B8C C9               ret

Number of copies of a card in the deck

ROM1:5B8D C5               push bc
ROM1:5B8E D5               push de
ROM1:5B8F E5               push hl
ROM1:5B90 50               ld   d,b
ROM1:5B91 59               ld   e,c
ROM1:5B92 CD 00 5B         call 5B00		;Returns deck size
ROM1:5B95 47               ld   b,a
ROM1:5B96 0E 00            ld   c,00
ROM1:5B98 2E 00            ld   l,00
ROM1:5B9A 79               ld   a,c		;a = position in the deck
ROM1:5B9B B8               cp   b
ROM1:5B9C 30 14            jr   nc,5BB2		;If every card of the deck has been checked, jump to 1:5BB2
ROM1:5B9E C5               push bc
ROM1:5B9F 79               ld   a,c
ROM1:5BA0 CD 5C 5A         call 5A5C		;Current position in deck = a
ROM1:5BA3 CD 78 5A         call 5A78		;Retrieves card ID from deck in that position
ROM1:5BA6 CD 14 1B         call 1B14		;Checks if Card ID == Specified card ID
ROM1:5BA9 C1               pop  bc
ROM1:5BAA FE 00            cp   a,00
ROM1:5BAC 20 01            jr   nz,5BAF		;If(Card ID ≠ Specified card ID), jump to 1:5BAF
ROM1:5BAE 2C               inc  l		;Else l ++
ROM1:5BAF 0C               inc  c		;Loop to 1:5B9A
ROM1:5BB0 18 E8            jr   5B9A
ROM1:5BB2 7D               ld   a,l		;a = Number of copies of the specified card
ROM1:5BB3 E1               pop  hl
ROM1:5BB4 D1               pop  de
ROM1:5BB5 C1               pop  bc
ROM1:5BB6 C9               ret

Versus mode

Checks communication errors

ROM1:660D C5               push bc
ROM1:660E 0E 00            ld   c,00
ROM1:6610 CD 1E 5B         call 5B1E
ROM1:6613 FE 00            cp   a,00
ROM1:6615 20 1D            jr   nz,6634
ROM1:6617 CF               rst  08
ROM1:6618 4B               ld   c,e
ROM1:6619 05               dec  b
ROM1:661A FE 01            cp   a,01
ROM1:661C 20 04            jr   nz,6622
ROM1:661E 0E 02            ld   c,02
ROM1:6620 18 10            jr   6632
ROM1:6622 FA B1 C7         ld   a,(C7B1)         ;Current Menu ID
ROM1:6625 FE 02            cp   a,02
ROM1:6627 20 09            jr   nz,6632          ;If(Menu ID ≠ Versus), jump to 1:6632
ROM1:6629 CD 59 03         call 0359         ;Checks Game link status
ROM1:662C FE 00            cp   a,00
ROM1:662E 28 02            jr   z,6632       ;If there's no communication error, jump to 1:6632
ROM1:6630 0E 03            ld   c,03         ;Else c = 3
ROM1:6632 18 02            jr   6636
ROM1:6634 0E 01            ld   c,01
ROM1:6636 79               ld   a,c          ;a = c
ROM1:6637 C1               pop  bc
ROM1:6638 C9               ret

Duelist Level check

ROM1:6DCE F5               push af
ROM1:6DCF C5               push bc
ROM1:6DD0 D5               push de
ROM1:6DD1 E5               push hl
ROM1:6DD2 CD D1 6E         call 6ED1
ROM1:6DD5 CF               rst  08
...
ROM1:6DD8 CD 9C 4A         call 4A9C
ROM1:6DDB CF               rst  08
...
ROM1:6DDE CF               rst  08
...
ROM1:6DE1 5F               ld   e,a		;e = Duelist Level
ROM1:6DE2 FA BC C6         ld   a,(C6BC)	;a = Card Cost
ROM1:6DE5 BB               cp   e
ROM1:6DE6 28 0E            jr   z,6DF6
ROM1:6DE8 38 0C            jr   c,6DF6		;if(Card Cost ≤ Duelist Level), jump to 1:6DF6
ROM1:6DEA CD 91 2A         call 2A91		;Sound Effect: Invalid
ROM1:6DED AF               xor  a
ROM1:6DEE EA EC C5         ld   (C5EC),a	;wC5EC = 0
ROM1:6DF1 EA EE C5         ld   (C5EE),a	;wC5EE = 0
ROM1:6DF4 18 21            jr   6E17
ROM1:6DF6 CD DF 4A         call 4ADF		;Checks Card ID validity, and decrements Card ID
ROM1:6DF9 CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:6DFC CD 61 53         call 5361
ROM1:6DFF FE 00            cp   a,00
ROM1:6E01 28 0E            jr   z,6E11
ROM1:6E03 CD 91 2A         call 2A91		;Sound Effect: Invalid
ROM1:6E06 AF               xor  a
ROM1:6E07 EA EC C5         ld   (C5EC),a
ROM1:6E0A EA EE C5         ld   (C5EE),a
ROM1:6E0D 18 08            jr   6E17
ROM1:6E0F 18 06            jr   6E17
ROM1:6E11 CD 81 2A         call 2A81		;Sound Effect: Validate (Menu)
ROM1:6E14 CD E6 6E         call 6EE6
ROM1:6E17 E1               pop  hl
ROM1:6E18 D1               pop  de
ROM1:6E19 C1               pop  bc
ROM1:6E1A F1               pop  af
ROM1:6E1B C9               ret

1:6E1C

ROM1:6E1C F5               push af
ROM1:6E1D C5               push bc
ROM1:6E1E D5               push de
ROM1:6E1F E5               push hl
ROM1:6E20 CD D1 6E         call 6ED1
ROM1:6E23 CF               rst  08
...
ROM1:6E26 CD 4C 6E         call 6E4C
ROM1:6E29 FE 00            cp   a,00
ROM1:6E2B 20 14            jr   nz,6E41
ROM1:6E2D CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:6E30 CD D5 53         call 53D5
ROM1:6E33 FE 00            cp   a,00
ROM1:6E35 20 05            jr   nz,6E3C
ROM1:6E37 CD 81 2A         call 2A81         ;Sound Effect: Validate (Menu)
ROM1:6E3A 18 03            jr   6E3F
ROM1:6E3C CD 91 2A         call 2A91         ;Sound Effect: Invalid
ROM1:6E3F 18 03            jr   6E44
ROM1:6E41 CD 91 2A         call 2A91         ;Sound Effect: Invalid
ROM1:6E44 CD E6 6E         call 6EE6
ROM1:6E47 E1               pop  hl
ROM1:6E48 D1               pop  de
ROM1:6E49 C1               pop  bc
ROM1:6E4A F1               pop  af
ROM1:6E4B C9               ret  

1:6E4C

ROM1:6E4C C5               push bc
ROM1:6E4D D5               push de
ROM1:6E4E E5               push hl
ROM1:6E4F FA F1 C5         ld   a,(C5F1)
ROM1:6E52 FE 8F            cp   a,8F
ROM1:6E54 28 03            jr   z,6E59
ROM1:6E56 AF               xor  a
ROM1:6E57 18 22            jr   6E7B
ROM1:6E59 50               ld   d,b
ROM1:6E5A 59               ld   e,c
ROM1:6E5B 21 7F 6E         ld   hl,6E7F         ;Ritual Monsters IDs array at 1:6E7F
ROM1:6E5E 2A               ldi  a,(hl)
ROM1:6E5F 4F               ld   c,a
ROM1:6E60 2A               ldi  a,(hl)
ROM1:6E61 47               ld   b,a
ROM1:6E62 CD 72 1A         call 1A72         ;Checks if a card is being processed
ROM1:6E65 FE 01            cp   a,01
ROM1:6E67 20 04            jr   nz,6E6D
ROM1:6E69 0E 00            ld   c,00
ROM1:6E6B 18 0D            jr   6E7A
ROM1:6E6D CD 14 1B         call 1B14         ;Checks if bc ≠ de
ROM1:6E70 FE 00            cp   a,00
ROM1:6E72 20 04            jr   nz,6E78         ;If(bc ≠ de), jump to 1:6E78
ROM1:6E74 0E 01            ld   c,01
ROM1:6E76 18 02            jr   6E7A
ROM1:6E78 18 E4            jr   6E5E         ;Loop to 1:6E5E
ROM1:6E7A 79               ld   a,c
ROM1:6E7B E1               pop  hl
ROM1:6E7C D1               pop  de
ROM1:6E7D C1               pop  bc
ROM1:6E7E C9               ret  

1:6E7F

  • 0x6E7F-0x6EAA - Ritual Monster IDs + Meteor Black Dragon
ROM1:6E7F
6B 01 67 01 63 01 6C 01 7B 01 75 01 BC 02 BD 02
BE 02 BF 02 C0 02 C1 02 C5 02 CF 02 C4 02 CA 02
CC 02 CB 02 C3 02 CE 02 CD 02 C8 02 00 00

1:6EAD

ROM1:6EAD F5               push af
ROM1:6EAE C5               push bc
ROM1:6EAF D5               push de
ROM1:6EB0 E5               push hl
ROM1:6EB1 CD D1 6E         call 6ED1
ROM1:6EB4 CF               rst  08
ROM1:6EB5 05               dec  b
ROM1:6EB6 13               inc  de
ROM1:6EB7 CD 92 52         call 5292         ;(Try to) check if card ID is valid, store it to wC5FC
ROM1:6EBA CD 1A 54         call 541A
ROM1:6EBD FE 00            cp   a,00
ROM1:6EBF 20 05            jr   nz,6EC6
ROM1:6EC1 CD 81 2A         call 2A81		;Sound Effect: Validate (Menu)
ROM1:6EC4 18 03            jr   6EC9
ROM1:6EC6 CD 91 2A         call 2A91		;Sound Effect: Invalid
ROM1:6EC9 CD E6 6E         call 6EE6
ROM1:6ECC E1               pop  hl
ROM1:6ECD D1               pop  de
ROM1:6ECE C1               pop  bc
ROM1:6ECF F1               pop  af
ROM1:6ED0 C9               ret  

1:6ED1

ROM1:6ED1 F5               push af
ROM1:6ED2 FA ED C5         ld   a,(C5ED)
ROM1:6ED5 4F               ld   c,a
ROM1:6ED6 CD 48 52         call 5248
ROM1:6ED9 FA F3 C5         ld   a,(C5F3)
ROM1:6EDC 81               add  c
ROM1:6EDD 4F               ld   c,a
ROM1:6EDE FA F4 C5         ld   a,(C5F4)
ROM1:6EE1 CE 00            adc  a,00
ROM1:6EE3 47               ld   b,a
ROM1:6EE4 F1               pop  af
ROM1:6EE5 C9               ret

1:6E7F

  • 0x6E7F-0x6EAA - Ritual Monster IDs + Meteor Black Dragon
6B 01 67 01 63 01 6C 01 7B 01 75 01 BC 02 BD 02
BE 02 BF 02 C0 02 C1 02 C5 02 CF 02 C4 02 CA 02
CC 02 CB 02 C3 02 CE 02 CD 02 C8 02

1:700D

  • 0x700D-0x7034 -
ROM1:700D F5               push af
ROM1:700E 3E 00            ld   a,00
ROM1:7010 EA FE C6         ld   (C6FE),a
ROM1:7013 F1               pop  af
ROM1:7014 C9               ret  
ROM1:7015 F5               push af
ROM1:7016 3E 01            ld   a,01
ROM1:7018 EA FE C6         ld   (C6FE),a
ROM1:701B F1               pop  af
ROM1:701C C9               ret  
ROM1:701D F5               push af
ROM1:701E 3E 02            ld   a,02
ROM1:7020 EA FE C6         ld   (C6FE),a
ROM1:7023 F1               pop  af
ROM1:7024 C9               ret  
ROM1:7025 F5               push af
ROM1:7026 3E 03            ld   a,03
ROM1:7028 EA FE C6         ld   (C6FE),a
ROM1:702B F1               pop  af
ROM1:702C C9               ret  
ROM1:702D F5               push af
ROM1:702E 3E 04            ld   a,04
ROM1:7030 EA FE C6         ld   (C6FE),a
ROM1:7033 F1               pop  af
ROM1:7034 C9               ret

1:72D3

ROM1:72D3 F5               push af
ROM1:72D4 79               ld   a,c
ROM1:72D5 FE 00            cp   a,00
ROM1:72D7 20 04            jr   nz,72DD
ROM1:72D9 3E 05            ld   a,05
ROM1:72DB 90               sub  b
ROM1:72DC 47               ld   b,a
ROM1:72DD 79               ld   a,c
ROM1:72DE FE 01            cp   a,01
ROM1:72E0 20 04            jr   nz,72E6
ROM1:72E2 3E 05            ld   a,05
ROM1:72E4 90               sub  b
ROM1:72E5 47               ld   b,a
ROM1:72E6 F1               pop  af
ROM1:72E7 C9               ret  

1:72E8

ROM1:72E8 F5               push af
ROM1:72E9 C5               push bc
ROM1:72EA E5               push hl
ROM1:72EB CD 50 2C         call 2C50
ROM1:72EE FE 00            cp   a,00
ROM1:72F0 20 1B            jr   nz,730D
ROM1:72F2 06 00            ld   b,00
ROM1:72F4 FA 72 C9         ld   a,(C972)
ROM1:72F7 4F               ld   c,a
ROM1:72F8 21 36 73         ld   hl,7336
ROM1:72FB 09               add  hl,bc
ROM1:72FC 7E               ld   a,(hl)
ROM1:72FD CF               rst  08
ROM1:72FE 19               add  hl,de
ROM1:72FF 04               inc  b
ROM1:7300 CF               rst  08
ROM1:7301 13               inc  de
ROM1:7302 03               inc  bc
ROM1:7303 3E 00            ld   a,00
ROM1:7305 CF               rst  08
ROM1:7306 1B               dec  de
ROM1:7307 04               inc  b
ROM1:7308 CF               rst  08
ROM1:7309 57               ld   d,a
ROM1:730A 03               inc  bc
ROM1:730B 18 19            jr   7326
ROM1:730D 06 00            ld   b,00
ROM1:730F FA 72 C9         ld   a,(C972)
ROM1:7312 4F               ld   c,a
ROM1:7313 21 3A 73         ld   hl,733A
ROM1:7316 09               add  hl,bc
ROM1:7317 7E               ld   a,(hl)
ROM1:7318 CF               rst  08
ROM1:7319 19               add  hl,de
ROM1:731A 04               inc  b
ROM1:731B CF               rst  08
ROM1:731C 13               inc  de
ROM1:731D 03               inc  bc
ROM1:731E 3E 00            ld   a,00
ROM1:7320 CF               rst  08
ROM1:7321 1B               dec  de
ROM1:7322 04               inc  b
ROM1:7323 CF               rst  08
ROM1:7324 57               ld   d,a
ROM1:7325 03               inc  bc
ROM1:7326 FA 72 C9         ld   a,(C972)
ROM1:7329 B9               cp   c
ROM1:732A 28 03            jr   z,732F
ROM1:732C CD A1 2A         call 2AA1
ROM1:732F CD 58 11         call 1158
ROM1:7332 E1               pop  hl
ROM1:7333 C1               pop  bc
ROM1:7334 F1               pop  af
ROM1:7335 C9               ret

Bank 2

Text display

Text display - Main

ROM2:4012 F5               push af
ROM2:4013 E5               push hl
ROM2:4014 CD 4D 40         call 404D
ROM2:4017 CD 64 12         call 1264
ROM2:401A 21 2F 40         ld   hl,402F
ROM2:401D CD 82 12         call 1282
ROM2:4020 CD BD 12         call 12BD
ROM2:4023 CF               rst  08
...
ROM2:4026 CD 39 40         call 4039
ROM2:4029 CD 78 12         call 1278
ROM2:402C E1               pop  hl
ROM2:402D F1               pop  af
ROM2:402E C9               ret  

2:4039

ROM2:4039 F5               push af
ROM2:403A C5               push bc
ROM2:403B FA F9 C6         ld   a,(C6F9)		;Text pointer offset
ROM2:403E 47               ld   b,a
ROM2:403F 0E 00            ld   c,00
ROM2:4041 CF               rst  08
...
ROM2:4044 CF               rst  08
...
ROM2:4047 CD D8 12         call 12D8
ROM2:404A C1               pop  bc
ROM2:404B F1               pop  af
ROM2:404C C9               ret

2:406E

ROM2:406E C5               push bc
ROM2:406F E5               push hl
ROM2:4070 FA C8 C6         ld   a,(C6C8)
ROM2:4073 FE 01            cp   a,01
ROM2:4075 20 08            jr   nz,407F
ROM2:4077 CD D4 40         call 40D4
ROM2:407A EA EF C6         ld   (C6EF),a
ROM2:407D 18 16            jr   4095
ROM2:407F CD 98 40         call 4098          ;Load text pointer
ROM2:4082 EA EF C6         ld   (C6EF),a
ROM2:4085 CD C5 40         call 40C5
ROM2:4088 FE 00            cp   a,00
ROM2:408A 20 09            jr   nz,4095
ROM2:408C CD 55 40         call 4055
ROM2:408F CD D4 40         call 40D4
ROM2:4092 EA EF C6         ld   (C6EF),a
ROM2:4095 E1               pop  hl
ROM2:4096 C1               pop  bc
ROM2:4097 C9               ret  

Load text pointer

ROM2:4098 C5               push bc
ROM2:4099 E5               push hl
ROM2:409A 06 00            ld   b,00
ROM2:409C FA FA C6         ld   a,(C6FA)       ;a = text_ID
ROM2:409F 4F               ld   c,a
ROM2:40A0 CB 21            sla  c
ROM2:40A2 CB 10            rl   b
ROM2:40A4 21 E4 40         ld   hl,40E4        ;hl = text_pointer_array
ROM2:40A7 09               add  hl,bc          ;hl = text_pointer
ROM2:40A8 2A               ldi  a,(hl)
ROM2:40A9 66               ld   h,(hl)
ROM2:40AA 6F               ld   l,a            ;hl = text_address
ROM2:40AB FA F1 C6         ld   a,(C6F1)
ROM2:40AE 47               ld   b,a
ROM2:40AF FA F0 C6         ld   a,(C6F0)
ROM2:40B2 4F               ld   c,a
ROM2:40B3 3C               inc  a
ROM2:40B4 EA F0 C6         ld   (C6F0),a
ROM2:40B7 20 07            jr   nz,40C0
ROM2:40B9 FA F1 C6         ld   a,(C6F1)
ROM2:40BC 3C               inc  a
ROM2:40BD EA F1 C6         ld   (C6F1),a
ROM2:40C0 09               add  hl,bc
ROM2:40C1 7E               ld   a,(hl)
ROM2:40C2 E1               pop  hl
ROM2:40C3 C1               pop  bc
ROM2:40C4 C9               ret

Text pointers

  • 0x80E4-0x41F3 - Text pointers
F4 41 - 00
53 42 - 01
D9 42 - 02
35 43 - 03
92 43 - 04
13 44 - 05
D0 44 - 06
3B 45 - 07
C2 45 - 08
2F 46 - 09
8F 46 - 0A
16 47 - 0B
90 47 - 0C
37 48 - 0D
D2 48 - 0E
50 49 - 0F
D5 49 - 10
5D 4A - 11
E2 4A - 12
57 4B - 13
9D 4B - 14
22 4C - 15
62 4C - 16
AA 4C - 17
CA 4C - 18
02 4D - 19
41 4D - 1A
8A 4D - 1B
AB 4D - 1C
E5 4D - 1D
0B 4E - 1E
6A 4E - 1F
A6 4E - 20
E0 4E - 21
20 4F - 22
64 4F - 23
C1 4F - 24
E6 4F - 25
47 50 - 26
8A 50 - 27
AE 50 - 28
F0 50 - 29
2A 51 - 2A
6C 51 - 2B
AD 51 - 2C
F6 51 - 2D
3A 52 - 2E
80 52 - 2F
C4 52 - 30
05 53 - 31
43 53 - 32
73 53 - 33
AB 53 - 34
F5 53 - 35
46 54 - 36
A8 54 - 37
DC 54 - 38
02 55 - 39
24 55 - 3A
68 55 - 3B
CF 55 - 3C
0B 56 - 3D
4C 56 - 3E
8A 56 - 3F
BD 56 - 40
08 57 - 41
40 57 - 42
89 57 - 43
C3 57 - 44
25 58 - 45
67 58 - 46
AC 58 - 47
CA 58 - 48
0A 59 - 49
3B 59 - 4A
7A 59 - 4B
BB 59 - 4C
D6 59 - 4D
F1 59 - 4E
35 5A - 4F
74 5A - 50
BA 5A - 51
0E 5B - 52
4A 5B - 53
90 5B - 54
CF 5B - 55
18 5C - 56
4C 5C - 57
98 5C - 58
9C 5C - 59
E2 5C - 5A
0B 5D - 5B
4F 5D - 5C
98 5D - 5D
DF 5D - 5E
FA 5E - 5F
45 60 - 60
9C 60 - 61
4A 61 - 62
AD 61 - 63
24 62 - 64
58 62 - 65
5C 62 - 66
1A 63 - 67
44 63 - 68
82 63 - 69
9F 63 - 6A
FC 63 - 6B
35 64 - 6C
64 64 - 6D
9F 64 - 6E
CC 64 - 6F
07 65 - 70
43 65 - 71
87 65 - 72
F1 65 - 73
25 66 - 74
94 66 - 75
BD 66 - 76
1D 67 - 77
58 67 - 78
9A 67 - 79
CD 67 - 7A
06 68 - 7B
4D 68 - 7C
6E 68 - 7D
92 68 - 7E
A9 68 - 7F
BF 68 - 80
D3 68 - 81
FD 68 - 82
41 69 - 83
57 69 - 84
7E 69 - 85
C2 69 - 86 - Unused password text
4E 6A - 87 - Unused untranslated testing string

CPU Duel text

First match
  • 0x81F4 - Weevil
  • 0x8253 - Mai Valentine
  • 0x82D9 - Rex Raptor
  • 0x8335 - Mako Tsunami
  • 0x8392 - Yami Yugi
  • 0x8413 - Yugi Muto
  • 0x84D0 - Joey Wheeler
  • 0x853B - Seto Kaiba
  • 0x85C2 - Espa Roba
  • 0x862F - Tristan Taylor
  • 0x868F - Rare Hunter
  • 0x8716 - Pandora
  • 0x8790 - Marik Ishtar
  • 0x8837 - Heishin
  • 0x88D2 - P. Seto
  • 0x8950 - Simon Muran
  • 0x89D5 - Yami Bakura
  • 0x8A5D - Shadi
  • 0x8B07 - DarkNite
  • 0x8B57 - Nitemare
  • 0x8B9D - Isis Ishtar
Rematch
  • 0x8C22 - Weevil
  • 0x8C62 - Mai Valentine
  • 0x8CAA - Rex Raptor
  • 0x8CCA - Mako Tsunami
  • 0x8D02 - Yami Yugi
  • 0x8D41 - Yugi Muto
  • 0x8D8A - Joey Wheeler
  • 0x8DAB - Seto Kaiba
  • 0x8DE5 - Espa Roba
  • 0x8E0B - Tristan Taylor
  • 0x8E6A - Rare Hunter
  • 0x8EA6 - Pandora
  • 0x8EE0 - Marik Ishtar
  • 0x8F20 - Heishin
  • 0x8F64 - P. Seto
  • 0x8FC1 - Simon Muran
  • 0x8FE6 - Yami Bakura
  • 0x9047 - Shadi
  • 0x908A - DarkNite
  • 0x90AE - Nitemare
  • 0x90F0 - Isis Ishtar
Defeat
  • 0x912A - Weevil
  • 0x916C - Mai Valentine
  • 0x91AD - Rex Raptor
  • 0x91F6 - Mako Tsunami
  • 0x923A - Yami Yugi
  • 0x9280 - Yugi Muto
  • 0x92C4 - Joey Wheeler
  • 0x9305 - Seto Kaiba
  • 0x9343 - Espa Roba
  • 0x9373 - Tristan Taylor
  • 0x93AB - Rare Hunter
  • 0x93F5 - Pandora
  • 0x9446 - Marik Ishtar
  • 0x94A8 - Heishin
  • 0x94DC - P. Seto
  • 0x9502 - Simon Muran
  • 0x9524 - Yami Bakura
  • 0x9568 - Shadi
  • 0x95CF - DarkNite
  • 0x960B - Nitemare
  • 0x964C - Isis Ishtar
Victory
  • 0x968A - Weevil
  • 0x96BD - Mai Valentine
  • 0x9708 - Rex Raptor
  • 0x9740 - Mako Tsunami
  • 0x9789 - Yami Yugi
  • 0x97C3 - Yugi Muto
  • 0x9825 - Joey Wheeler
  • 0x9867 - Seto Kaiba
  • 0x98AC - Espa Roba
  • 0x98CA - Tristan Taylor
  • 0x990A - Rare Hunter
  • 0x9927 - Pandora
  • 0x997A - Marik Ishtar
  • 0x99BB - Heishin
  • 0x99D6 - P. Seto
  • 0x99F1 - Simon Muran
  • 0x9A35 - Yami Bakura
  • 0x9A74 - Shadi
  • 0x9ABA - DarkNite
  • 0x9B0E - Nitemare
  • 0x9B4A - Isis Ishtar
Stage clear
  • 0x9B90 - Weevil
  • 0x9BCF - Mai Valentine
  • 0x9C18 - Rex Raptor
  • 0x9C4C - Mako Tsunami
  • 0x9C98 - Yugi Muto
  • 0x9CE2 - Joey Wheeler
  • 0x9D0B - Seto Kaiba
  • 0x9D4F - Espa Roba
  • 0x9D98 - Tristan Taylor
  • 0x9DDF - Rare Hunter
  • 0x9EFA - Pandora
  • 0xA045 - Marik Ishtar (Unused)
  • 0xA09C - Heishin
  • 0xA14A - P. Seto
  • 0xA1AD - Simon Muran
  • 0xA224 - Yami Bakura (Unused, identical to Yami Bakura Password)
  • 0xA258 - DarkNite
  • 0xA344 - Isis Ishtar

Game text 1

  • 0xA382 - Exodia
  • 0xA39F - Intro text
  • 0xA3F0 - Password Input
  • 0xA435 - Correct Password
  • 0xA464 - Password Already Entered
  • 0xA49F - Wrong Password
  • 0xA4CC - Duelist Name Input
  • 0xA507 - Can't Record Password
  • 0xA543 - Yami Yugi Password
  • 0xA587 - Password Can't Be Used Yet
  • 0xA5F1 - Yami Bakura Password
  • 0xA525 - Shadi Password
  • 0xA694 - Nitemare Password
  • 0xA6BD - Marik Ishtar Password
  • 0xA71D - Tea - Link Duel Victory
  • 0xA758 - Tea - Link Duel Defeat
  • 0xA79A - Tea - CPU Duel Victory
  • 0xA7CD - Tea - « Since you've kept winning... Here! You can have this [Card Name] »
  • 0xA806 - Tea - « You've faced a lot of COMM duels... So take this [Card Name] And keep dueling! »
  • 0xA84D - Tea - Deck Under 40 cards
  • 0xA86E - Tea - Deck Capacity Exceeded
  • 0xA892 - Tea - « Good. You now have [Card Name] »
  • 0xA8A9 - Tea - Communication Error
  • 0xA8BF - Tea - Trade Complete
  • 0xA8D3 - « COMM fusion's been activated! Result:[Card Name] »
  • 0xA8FD - Tea - Not enough monsters to trade
  • 0xA941 - Tea - Memory Access Error
  • 0xA941 - Grandpa - CPU Duel Victory
  • 0xA97E - Grandpa Password
  • 0xA9C2 - « Very good! You've found the secret. The secret of the legendary card... It's hidden here. Your password... It will reveal it to your eyes! » (Unused)
  • 0xAA4E - « テストだよ » → "It's a test" (Unused)

2:6C98

ROM2:6C98 F5               push af
ROM2:6C99 C5               push bc
ROM2:6C9A E5               push hl
ROM2:6C9B FA EE C6         ld   a,(C6EE)
ROM2:6C9E 3D               dec  a
ROM2:6C9F EA EE C6         ld   (C6EE),a
ROM2:6CA2 20 1B            jr   nz,6CBF
ROM2:6CA4 FA EF C6         ld   a,(C6EF)
ROM2:6CA7 FE B0            cp   a,B0
ROM2:6CA9 30 07            jr   nc,6CB2
ROM2:6CAB 3E 02            ld   a,02
ROM2:6CAD EA EE C6         ld   (C6EE),a
ROM2:6CB0 18 0D            jr   6CBF
ROM2:6CB2 06 00            ld   b,00
ROM2:6CB4 D6 B0            sub  a,B0
ROM2:6CB6 4F               ld   c,a
ROM2:6CB7 21 C3 6C         ld   hl,6CC3
ROM2:6CBA 09               add  hl,bc
ROM2:6CBB 7E               ld   a,(hl)
ROM2:6CBC EA EE C6         ld   (C6EE),a
ROM2:6CBF E1               pop  hl
ROM2:6CC0 C1               pop  bc
ROM2:6CC1 F1               pop  af
ROM2:6CC2 C9               ret  

2:6CC3 (array)

ROM2:6CC3
01 14 10 03 01

2:6CC8

ROM2:6CC8 F5               push af
ROM2:6CC9 C5               push bc
ROM2:6CCA D5               push de
ROM2:6CCB E5               push hl
ROM2:6CCC 16 00            ld   d,00
ROM2:6CCE FA A8 C5         ld   a,(C5A8)
ROM2:6CD1 E6 03            and  a,03
ROM2:6CD3 28 0D            jr   z,6CE2
ROM2:6CD5 0E 08            ld   c,08
ROM2:6CD7 0D               dec  c
ROM2:6CD8 07               rlca 
ROM2:6CD9 30 FC            jr   nc,6CD7
ROM2:6CDB 06 00            ld   b,00
ROM2:6CDD 21 F6 6C         ld   hl,6CF6
ROM2:6CE0 09               add  hl,bc
ROM2:6CE1 56               ld   d,(hl)
ROM2:6CE2 3E 01            ld   a,01
ROM2:6CE4 EA FD C6         ld   (C6FD),a
ROM2:6CE7 7A               ld   a,d
ROM2:6CE8 FE 02            cp   a,02
ROM2:6CEA 20 05            jr   nz,6CF1
ROM2:6CEC 3E 00            ld   a,00
ROM2:6CEE EA FB C6         ld   (C6FB),a
ROM2:6CF1 E1               pop  hl
ROM2:6CF2 D1               pop  de
ROM2:6CF3 C1               pop  bc
ROM2:6CF4 F1               pop  af
ROM2:6CF5 C9               ret

2:6CF6 (array)

ROM2:6CF6
02 02 00 00 00 00 00 00

2:6CFE

ROM2:6CFE F5               push af
ROM2:6CFF 3E 04            ld   a,04
ROM2:6D01 EA FB C6         ld   (C6FB),a
ROM2:6D04 3E 01            ld   a,01
ROM2:6D06 EA F4 C6         ld   (C6F4),a
ROM2:6D09 F1               pop  af
ROM2:6D0A C9               ret  

2:6D0B

ROM2:6D0B F5               push af
ROM2:6D0C 3E 02            ld   a,02
ROM2:6D0E EA FB C6         ld   (C6FB),a
ROM2:6D11 3E 01            ld   a,01
ROM2:6D13 EA F4 C6         ld   (C6F4),a
ROM2:6D16 F1               pop  af
ROM2:6D17 C9               ret  

2:6D18

ROM2:6D18 F5               push af
ROM2:6D19 3E 05            ld   a,05
ROM2:6D1B EA FB C6         ld   (C6FB),a
ROM2:6D1E F1               pop  af
ROM2:6D1F C9               ret  

2:6D20

ROM2:6D20 CD 27 6D         call 6D27
ROM2:6D23 CD 4F 6D         call 6D4F
ROM2:6D26 C9               ret  

2:6D27

ROM2:6D27 F5               push af
ROM2:6D28 C5               push bc
ROM2:6D29 E5               push hl
ROM2:6D2A FA F4 C6         ld   a,(C6F4)
ROM2:6D2D 3D               dec  a
ROM2:6D2E EA F4 C6         ld   (C6F4),a
ROM2:6D31 20 13            jr   nz,6D46
ROM2:6D33 3E 14            ld   a,14
ROM2:6D35 EA F4 C6         ld   (C6F4),a
ROM2:6D38 06 00            ld   b,00
ROM2:6D3A FA FB C6         ld   a,(C6FB)
ROM2:6D3D 4F               ld   c,a
ROM2:6D3E 21 4A 6D         ld   hl,6D4A
ROM2:6D41 09               add  hl,bc
ROM2:6D42 7E               ld   a,(hl)
ROM2:6D43 EA FB C6         ld   (C6FB),a
ROM2:6D46 E1               pop  hl
ROM2:6D47 C1               pop  bc
ROM2:6D48 F1               pop  af
ROM2:6D49 C9               ret  

2:6D4A (array)

ROM2:6D4A
00 02 01 04 03

2:6D4F

ROM2:6D4F CD A5 6B         call 6BA5
ROM2:6D52 CD 85 6A         call 6A85
ROM2:6D55 CD 59 6D         call 6D59
ROM2:6D58 C9               ret  

2:6D59

ROM2:6D59 F5               push af
ROM2:6D5A C5               push bc
ROM2:6D5B E5               push hl
ROM2:6D5C CD D9 6A         call 6AD9
ROM2:6D5F 06 00            ld   b,00
ROM2:6D61 FA FB C6         ld   a,(C6FB)
ROM2:6D64 3D               dec  a
ROM2:6D65 07               rlca 
ROM2:6D66 4F               ld   c,a
ROM2:6D67 21 7B 6D         ld   hl,6D7B
ROM2:6D6A 09               add  hl,bc
ROM2:6D6B 2A               ldi  a,(hl)
ROM2:6D6C 66               ld   h,(hl)
ROM2:6D6D 6F               ld   l,a
ROM2:6D6E 0E 10            ld   c,10
ROM2:6D70 2A               ldi  a,(hl)
ROM2:6D71 CD 13 11         call 1113		;Related to display
ROM2:6D74 0D               dec  c
ROM2:6D75 20 F9            jr   nz,6D70
ROM2:6D77 E1               pop  hl
ROM2:6D78 C1               pop  bc
ROM2:6D79 F1               pop  af
ROM2:6D7A C9               ret  

2:6D7B (pointers array)

ROM2:6D7B
93 6D
83 6D
A3 6D
83 6D

2:6D83 (arrays)

ROM2:6D83
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
ROM2:6D93
FF FF BF BF 9F 9F 8F 8F 87 87 8F 8F 9F 9F BF BF
ROM2:6DA3
FF FF 81 81 BD BD BD BD BD BD B1 B1 B3 B3 87 87

Initialize CPU Character ID and Text ID

ROM2:6DB3 F5               push af
ROM2:6DB4 3E 00            ld   a,00
ROM2:6DB6 EA F9 C6         ld   (C6F9),a		;CPU Character ID displayed = Weevil
ROM2:6DB9 3E 00            ld   a,00
ROM2:6DBB EA FA C6         ld   (C6FA),a		;Text ID displayed = Weevil
ROM2:6DBE F1               pop  af
ROM2:6DBF C9               ret  

2:6DC0

ROM2:6DC0 F5               push af
ROM2:6DC1 3E 1D            ld   a,1D
ROM2:6DC3 EA F5 C6         ld   (C6F5),a
ROM2:6DC6 3E 01            ld   a,01
ROM2:6DC8 EA F6 C6         ld   (C6F6),a
ROM2:6DCB 3E 11            ld   a,11
ROM2:6DCD EA F7 C6         ld   (C6F7),a
ROM2:6DD0 3E 01            ld   a,01
ROM2:6DD2 EA F8 C6         ld   (C6F8),a
ROM2:6DD5 3E 00            ld   a,00
ROM2:6DD7 EA FC C6         ld   (C6FC),a
ROM2:6DDA 3E 00            ld   a,00
ROM2:6DDC EA FB C6         ld   (C6FB),a
ROM2:6DDF CD 55 6A         call 6A55
ROM2:6DE2 CD 7F 1E         call 1E7F		;Updates Pseudo-Random Numbers
ROM2:6DE5 3E 0C            ld   a,0C
ROM2:6DE7 CD E3 0E         call 0EE3		;Related to display
ROM2:6DEA CD C8 6C         call 6CC8
ROM2:6DED CD 10 6E         call 6E10
ROM2:6DF0 CD B3 6E         call 6EB3
ROM2:6DF3 FA FB C6         ld   a,(C6FB)
ROM2:6DF6 FE 00            cp   a,00
ROM2:6DF8 20 05            jr   nz,6DFF
ROM2:6DFA CD 79 6A         call 6A79
ROM2:6DFD 18 03            jr   6E02
ROM2:6DFF CD 20 6D         call 6D20
ROM2:6E02 CD C1 10         call 10C1		;Related to display
ROM2:6E05 FA FB C6         ld   a,(C6FB)
ROM2:6E08 FE 05            cp   a,05
ROM2:6E0A 28 02            jr   z,6E0E
ROM2:6E0C 18 D4            jr   6DE2
ROM2:6E0E F1               pop  af
ROM2:6E0F C9               ret

2:6E10

ROM2:6E10 F5               push af
ROM2:6E11 C5               push bc
ROM2:6E12 D5               push de
ROM2:6E13 E5               push hl
ROM2:6E14 FA F6 C6         ld   a,(C6F6)
ROM2:6E17 3D               dec  a
ROM2:6E18 EA F6 C6         ld   (C6F6),a
ROM2:6E1B 20 1C            jr   nz,6E39
ROM2:6E1D 06 00            ld   b,00
ROM2:6E1F FA F5 C6         ld   a,(C6F5)
ROM2:6E22 4F               ld   c,a
ROM2:6E23 21 3E 6E         ld   hl,6E3E
ROM2:6E26 09               add  hl,bc
ROM2:6E27 7E               ld   a,(hl)
ROM2:6E28 EA F6 C6         ld   (C6F6),a
ROM2:6E2B CD 7A 6E         call 6E7A		;Display selected Character ID
ROM2:6E2E 79               ld   a,c
ROM2:6E2F 3D               dec  a
ROM2:6E30 FE FF            cp   a,FF
ROM2:6E32 20 02            jr   nz,6E36
ROM2:6E34 3E 1D            ld   a,1D
ROM2:6E36 EA F5 C6         ld   (C6F5),a
ROM2:6E39 E1               pop  hl
ROM2:6E3A D1               pop  de
ROM2:6E3B C1               pop  bc
ROM2:6E3C F1               pop  af
ROM2:6E3D C9               ret

2:6E3E (Array)

ROM2:6E3E
64 04 04 A0 04 04 04 04 04 78 04 04 8C 04 04 64
04 04 64 04 04 78 04 04 8C 04 04 82 04 04

2:6E5C (Arrays, used by Character display)

ROM2:6E5C
00 01 02
00 01 02
00 01 02
00 01 02
00 01 02
00 01 02
00 01 02
00 01 02
00 01 02
00 01 02

Display selected Character ID

ROM2:6E7A F5               push af
ROM2:6E7B C5               push bc
ROM2:6E7C E5               push hl
ROM2:6E7D 06 00            ld   b,00
ROM2:6E7F FA F5 C6         ld   a,(C6F5)
ROM2:6E82 4F               ld   c,a
ROM2:6E83 21 5C 6E         ld   hl,6E5C
ROM2:6E86 09               add  hl,bc
ROM2:6E87 7E               ld   a,(hl)
ROM2:6E88 FE 00            cp   a,00
ROM2:6E8A 20 0B            jr   nz,6E97
ROM2:6E8C FA F9 C6         ld   a,(C6F9)	;CPU Character ID displayed
ROM2:6E8F 47               ld   b,a
ROM2:6E90 0E 00            ld   c,00
ROM2:6E92 CF               rst  08
...
ROM2:6E95 18 18            jr   6EAF
ROM2:6E97 FE 01            cp   a,01
ROM2:6E99 20 0B            jr   nz,6EA6
ROM2:6E9B FA F9 C6         ld   a,(C6F9)	;CPU Character ID displayed
ROM2:6E9E 47               ld   b,a
ROM2:6E9F 0E 01            ld   c,01
ROM2:6EA1 CF               rst  08
...
ROM2:6EA4 18 09            jr   6EAF
ROM2:6EA6 FA F9 C6         ld   a,(C6F9)	;CPU Character ID displayed
ROM2:6EA9 47               ld   b,a
ROM2:6EAA 0E 02            ld   c,02
ROM2:6EAC CF               rst  08
...
ROM2:6EAF E1               pop  hl
ROM2:6EB0 C1               pop  bc
ROM2:6EB1 F1               pop  af
ROM2:6EB2 C9               ret  

2:6F1B

ROM2:6F1B F5               push af
ROM2:6F1C C5               push bc
ROM2:6F1D E5               push hl
ROM2:6F1E 06 00            ld   b,00
ROM2:6F20 FA F7 C6         ld   a,(C6F7)
ROM2:6F23 4F               ld   c,a
ROM2:6F24 21 09 6F         ld   hl,6F09
ROM2:6F27 09               add  hl,bc
ROM2:6F28 7E               ld   a,(hl)
ROM2:6F29 FE 00            cp   a,00
ROM2:6F2B 20 0B            jr   nz,6F38
ROM2:6F2D FA F9 C6         ld   a,(C6F9)
ROM2:6F30 47               ld   b,a
ROM2:6F31 0E 00            ld   c,00
ROM2:6F33 CF               rst  08
 => 05 0C
ROM2:6F36 18 18            jr   6F50
ROM2:6F38 FE 01            cp   a,01
ROM2:6F3A 20 0B            jr   nz,6F47
ROM2:6F3C FA F9 C6         ld   a,(C6F9)
ROM2:6F3F 47               ld   b,a
ROM2:6F40 0E 01            ld   c,01
ROM2:6F42 CF               rst  08
 => 05 0C
ROM2:6F45 18 09            jr   6F50
ROM2:6F47 FA F9 C6         ld   a,(C6F9)
ROM2:6F4A 47               ld   b,a
ROM2:6F4B 0E 02            ld   c,02
ROM2:6F4D CF               rst  08
 => 05 0C
ROM2:6F50 E1               pop  hl
ROM2:6F51 C1               pop  bc
ROM2:6F52 F1               pop  af
ROM2:6F53 C9               ret  

2:6F54

ROM2:6F54 C5               push bc
ROM2:6F55 FA F9 C6         ld   a,(C6F9)          ;a = CPU Character ID displayed
ROM2:6F58 47               ld   b,a
ROM2:6F59 0E 00            ld   c,00              ;bc = CPU Character ID
ROM2:6F5B CF               rst  08
 => 05 0C
ROM2:6F5E C1               pop  bc
ROM2:6F5F C9               ret

Text display subroutine

  • 0xAF60 - Text display subroutine
ROM2:6F60 F5               push af
ROM2:6F61 C5               push bc
ROM2:6F62 E5               push hl
ROM2:6F63 06 00            ld   b,00
ROM2:6F65 4F               ld   c,a
ROM2:6F66 CB 21            sla  c
ROM2:6F68 21 78 6F         ld   hl,6F78		;hl = Pointer from the array at 2:6F78
ROM2:6F6B 09               add  hl,bc
ROM2:6F6C 2A               ldi  a,(hl)
ROM2:6F6D 66               ld   h,(hl)
ROM2:6F6E 6F               ld   l,a
ROM2:6F6F 01 74 6F         ld   bc,6F74
ROM2:6F72 C5               push bc
ROM2:6F73 E9               jp   hl
ROM2:6F74 E1               pop  hl
ROM2:6F75 C1               pop  bc
ROM2:6F76 F1               pop  af
ROM2:6F77 C9               ret
Pointers to Text display subroutines
ROM2:6F78
C0 6F - 00 - Stores CPU Character ID and Text ID
D8 6F - 01 - 
F0 6F - 02 - 
08 70 - 03 - 
A0 72 - 04 - Text: Tea - Not enough monsters to trade
B6 72 - 05 - Text: Tea - Deck Capacity Exceeded
CC 72 - 06 - Text: Tea - Deck Under 40 cards
4A 73 - 07 - Text: Exosha - Exodia win
63 73 - 08 - Text: Yami Yugi - Intro text
79 73 - 09 - Text: Yami Yugi - Duelist Name Input
79 70 - 0A - 
BC 70 - 0B - 
FF 70 - 0C - 
44 71 - 0D - 
89 71 - 0E - 
8F 73 - 0F - 
AD 73 - 10 - 
B7 73 - 11 - 
C3 73 - 12 - Store bc in wC8D4 - wC8D5
CE 73 - 13 - 
DA 73 - 14 - Text: Yugi Muto - テストだよ - This is a test (Unused)
ED 73 - 15 - Text: Yami Yugi - Correct password
1B 74 - 16 - Text: Yami Yugi - Password already entered
31 74 - 17 - Text: Yami Yugi - Invalid password
44 74 - 18 - Text: Yami Yugi - Password Input
5A 74 - 19 - Text: Yami Yugi - Invalid password
E2 72 - 1A - Text: Yami Yugi - Password Input
F8 72 - 1B - Text: Yami Yugi - Can't Record Password
6D 74 - 1C - Text: Yami Yugi - Stage 5 password entered
83 74 - 1D - Text: Yami Bakura - Stage 5 password entered
99 74 - 1E - Text: Nitemare - Stage 5 password entered
AF 74 - 1F - Text: Shadi - Stage 5 password entered
C5 74 - 20 - Text: Marik Ishtar - Stage 5 password entered
DB 74 - 21 - Text: Grandpa - Grandpa password entered
F1 74 - 22 - Text: Simon Muran - Legendary card password (Unused)
04 75 - 23 - Text: Yami Yugi - Password can't be used yet

Stores CPU Character ID and Text ID

  • 0xAFC0 - Stores CPU Character ID in (C6F9) and Text ID in (C6FA)
ROM2:6FC0 F5               push af
ROM2:6FC1 FA CC C8         ld   a,(C8CC)
ROM2:6FC4 EA F9 C6         ld   (C6F9),a
ROM2:6FC7 CD CE 71         call 71CE
ROM2:6FCA EA FA C6         ld   (C6FA),a
ROM2:6FCD CD 12 40         call 4012
ROM2:6FD0 CD 70 2A         call 2A70
ROM2:6FD3 CD C0 6D         call 6DC0
ROM2:6FD6 F1               pop  af
ROM2:6FD7 C9               ret


Load CPU opponent text ID

ROM2:71CE C5               push bc
ROM2:71CF E5               push hl
ROM2:71D0 06 00            ld   b,00
ROM2:71D2 FA CC C8         ld   a,(C8CC)        ;a = Current_CPU_opponent
ROM2:71D5 CD 2A 28         call 282A
ROM2:71D8 21 0B 72         ld   hl,720B
ROM2:71DB 79               ld   a,c
ROM2:71DC FE 00            cp   a,00
ROM2:71DE 20 08            jr   nz,71E8
ROM2:71E0 78               ld   a,b
ROM2:71E1 FE 00            cp   a,00
ROM2:71E3 20 03            jr   nz,71E8
ROM2:71E5 21 F3 71         ld   hl,71F3
ROM2:71E8 06 00            ld   b,00
ROM2:71EA FA CC C8         ld   a,(C8CC)        ;a = Current_CPU_opponent
ROM2:71ED 4F               ld   c,a
ROM2:71EE 09               add  hl,bc           
ROM2:71EF 7E               ld   a,(hl)
ROM2:71F0 E1               pop  hl
ROM2:71F1 C1               pop  bc
ROM2:71F2 C9               ret

CPU opponent text IDs

ROM2:71F3
00 01 02 03 04 05 05 06
07 08 09 0A 0B 0C 0D 0E
0F 0E 0E 10 11 12 13 14
15 16 17 18 19 1A 1A 1B
1C 1D 1E 1F 20 21 22 23
24 23 23 25 26 27 28 29

2:7223

ROM2:7223 C5               push bc
ROM2:7224 E5               push hl
ROM2:7225 06 00            ld   b,00
ROM2:7227 FA CC C8         ld   a,(C8CC)
ROM2:722A CD 2A 28         call 282A
ROM2:722D 21 60 72         ld   hl,7260
ROM2:7230 79               ld   a,c
ROM2:7231 FE 05            cp   a,05
ROM2:7233 20 08            jr   nz,723D
ROM2:7235 78               ld   a,b
ROM2:7236 FE 00            cp   a,00
ROM2:7238 20 03            jr   nz,723D
ROM2:723A 21 48 72         ld   hl,7248
ROM2:723D 06 00            ld   b,00
ROM2:723F FA CC C8         ld   a,(C8CC)
ROM2:7242 4F               ld   c,a
ROM2:7243 09               add  hl,bc
ROM2:7244 7E               ld   a,(hl)
ROM2:7245 E1               pop  hl
ROM2:7246 C1               pop  bc
ROM2:7247 C9               ret  
2:7248 - Text IDs Array
2:7248
54 55 56 57 43 59 59 5A
5B 5C 5D 5E 5F 4B 61 62
63 62 62 4F 50 66 52 68
3F 40 41 42 43 44 44 45
46 47 48 49 4A 4B 4C 4D
4E 4D 4D 4F 50 51 52 53

Load defeat text ID

ROM2:7278 C5               push bc
ROM2:7279 E5               push hl
ROM2:727A 06 00            ld   b,00
ROM2:727C FA CC C8         ld   a,(C8CC)
ROM2:727F 4F               ld   c,a               ;c = Current CPU opponent
ROM2:7280 21 88 72         ld   hl,7288
ROM2:7283 09               add  hl,bc             ;hl = pointer_to_text_ID
ROM2:7284 7E               ld   a,(hl)            ;a = text_ID
ROM2:7285 E1               pop  hl
ROM2:7286 C1               pop  bc
ROM2:7287 C9               ret  
Defeat text IDs array
2:7288
2A - Weevil
2B - Mai Valentine
2C - Rex Raptor
2D - Mako Tsunami
2E - Yami Yugi
2F - Yugi Muto
2F - Yugi Muto
30 - Joey Wheeler
31 - Seto Kaiba
32 - Espa Roba
33 - Tristan Taylor
34 - Rare Hunter
35 - Pandora
36 - Marik Ishtar
37 - Heishin
38 - P. Seto
39 - Simon Muran
38 - P. Seto
38 - P. Seto
3A - Yami Bakura
3B - Shadi
3C - DarkNite
3D - Nitemare
3E - Isis Ishtar

Text: Tea - Not enough monsters to trade

ROM2:72A0 F5               push af
ROM2:72A1 3E 06            ld   a,06
ROM2:72A3 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Tea
ROM2:72A6 3E 82            ld   a,82
ROM2:72A8 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x82 ; Not enough monsters to trade
ROM2:72AB CD 12 40         call 4012
ROM2:72AE CD 39 2A         call 2A39
ROM2:72B1 CD C0 6D         call 6DC0
ROM2:72B4 F1               pop  af
ROM2:72B5 C9               ret

Text: Tea - Deck Capacity Exceeded

ROM2:72B6 F5               push af
ROM2:72B7 3E 06            ld   a,06
ROM2:72B9 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Tea
ROM2:72BC 3E 7D            ld   a,7D
ROM2:72BE EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x7D ; Deck Capacity Exceeded
ROM2:72C1 CD 12 40         call 4012
ROM2:72C4 CD 39 2A         call 2A39
ROM2:72C7 CD C0 6D         call 6DC0
ROM2:72CA F1               pop  af
ROM2:72CB C9               ret  

Text: Tea - Deck Under 40 cards

ROM2:72CC F5               push af
ROM2:72CD 3E 06            ld   a,06
ROM2:72CF EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Tea
ROM2:72D2 3E 7C            ld   a,7C
ROM2:72D4 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x7C ; Deck Under 40 cards
ROM2:72D7 CD 12 40         call 4012
ROM2:72DA CD 39 2A         call 2A39
ROM2:72DD CD C0 6D         call 6DC0
ROM2:72E0 F1               pop  af
ROM2:72E1 C9               ret  

Text: Tea - Communication Error

ROM2:72E2 F5               push af
ROM2:72E3 3E 06            ld   a,06
ROM2:72E5 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Tea
ROM2:72E8 3E 7F            ld   a,7F
ROM2:72EA EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x7F ; Communication Error
ROM2:72ED CD 12 40         call 4012
ROM2:72F0 CD 39 2A         call 2A39
ROM2:72F3 CD C0 6D         call 6DC0
ROM2:72F6 F1               pop  af
ROM2:72F7 C9               ret

Text: Tea - Trade Compelete, COMM Fusion

ROM2:72F8 F5               push af
ROM2:72F9 C5               push bc
ROM2:72FA D5               push de
ROM2:72FB E5               push hl
ROM2:72FC E8 FA            add  sp,FA
ROM2:72FE F8 00            ld   hl,sp+00
ROM2:7300 54               ld   d,h
ROM2:7301 5D               ld   e,l
ROM2:7302 CF               rst  08
 => 17 05
ROM2:7305 CD 72 1A         call 1A72
ROM2:7308 FE 00            cp   a,00
ROM2:730A 28 15            jr   z,7321
ROM2:730C 3E 06            ld   a,06
ROM2:730E EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Tea
ROM2:7311 3E 80            ld   a,80
ROM2:7313 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x80 ; Trade Complete
ROM2:7316 CD 12 40         call 4012
ROM2:7319 CD 39 2A         call 2A39
ROM2:731C CD C0 6D         call 6DC0
ROM2:731F 18 22            jr   7343
ROM2:7321 CD AD 73         call 73AD
ROM2:7324 F8 00            ld   hl,sp+00
ROM2:7326 D5               push de
ROM2:7327 1E 04            ld   e,04
ROM2:7329 2A               ldi  a,(hl)
ROM2:732A 46               ld   b,(hl)
ROM2:732B 4F               ld   c,a
ROM2:732C CD 8B 2D         call 2D8B
ROM2:732F D1               pop  de
ROM2:7330 3E 06            ld   a,06
ROM2:7332 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Tea
ROM2:7335 3E 81            ld   a,81
ROM2:7337 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x81 ; COMM fusion's been activated! Result:[Card Name]
ROM2:733A CD 12 40         call 4012
ROM2:733D CD 39 2A         call 2A39
ROM2:7340 CD C0 6D         call 6DC0
ROM2:7343 E8 06            add  sp,06
ROM2:7345 E1               pop  hl
ROM2:7346 D1               pop  de
ROM2:7347 C1               pop  bc
ROM2:7348 F1               pop  af
ROM2:7349 C9               ret

Text: Exosha - Exodia win

ROM2:734A F5               push af
ROM2:734B 3E 11            ld   a,11
ROM2:734D EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Exosha
ROM2:7350 3E 69            ld   a,69
ROM2:7352 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x69 ; Exodia win
ROM2:7355 CD DA 29         call 29DA
ROM2:7358 CD 12 40         call 4012
ROM2:735B CD 49 2B         call 2B49
ROM2:735E CD C0 6D         call 6DC0
ROM2:7361 F1               pop  af
ROM2:7362 C9               ret  

Text: Yami Yugi - Intro text

ROM2:7363 F5               push af
ROM2:7364 3E 04            ld   a,04
ROM2:7366 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:7369 3E 6A            ld   a,6A
ROM2:736B EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x6A ; Intro text
ROM2:736E CD 12 40         call 4012
ROM2:7371 CD 11 2A         call 2A11
ROM2:7374 CD C0 6D         call 6DC0
ROM2:7377 F1               pop  af
ROM2:7378 C9               ret  

Text: Yami Yugi - Duelist Name Input

ROM2:7379 F5               push af
ROM2:737A 3E 04            ld   a,04
ROM2:737C EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:737F 3E 6F            ld   a,6F
ROM2:7381 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x6F ; Duelist Name Input
ROM2:7384 CD 12 40         call 4012
ROM2:7387 CD 11 2A         call 2A11
ROM2:738A CD C0 6D         call 6DC0
ROM2:738D F1               pop  af
ROM2:738E C9               ret

2:738F

ROM2:738F F5               push af
ROM2:7390 E5               push hl
ROM2:7391 62               ld   h,d
ROM2:7392 6B               ld   l,e
ROM2:7393 3E 00            ld   a,00
ROM2:7395 22               ldi  (hl),a
ROM2:7396 36 00            ld   (hl),00
ROM2:7398 21 02 00         ld   hl,0002
ROM2:739B 19               add  hl,de
ROM2:739C 3E 00            ld   a,00
ROM2:739E 22               ldi  (hl),a
ROM2:739F 36 00            ld   (hl),00
ROM2:73A1 21 04 00         ld   hl,0004
ROM2:73A4 19               add  hl,de
ROM2:73A5 3E 00            ld   a,00
ROM2:73A7 22               ldi  (hl),a
ROM2:73A8 36 00            ld   (hl),00
ROM2:73AA E1               pop  hl
ROM2:73AB F1               pop  af
ROM2:73AC C9               ret

2:73AD

ROM2:73AD F5               push af
ROM2:73AE E5               push hl
ROM2:73AF 62               ld   h,d
ROM2:73B0 6B               ld   l,e
ROM2:73B1 79               ld   a,c
ROM2:73B2 22               ldi  (hl),a
ROM2:73B3 70               ld   (hl),b
ROM2:73B4 E1               pop  hl
ROM2:73B5 F1               pop  af
ROM2:73B6 C9               ret  

2:73B7

ROM2:73B7 F5               push af
ROM2:73B8 E5               push hl
ROM2:73B9 21 02 00         ld   hl,0002
ROM2:73BC 19               add  hl,de
ROM2:73BD 79               ld   a,c
ROM2:73BE 22               ldi  (hl),a
ROM2:73BF 70               ld   (hl),b
ROM2:73C0 E1               pop  hl
ROM2:73C1 F1               pop  af
ROM2:73C2 C9               ret  

2:73C3 - Store bc in wC8D4 - wC8D5

ROM2:73C3 F5               push af
ROM2:73C4 79               ld   a,c
ROM2:73C5 EA D4 C8         ld   (C8D4),a
ROM2:73C8 78               ld   a,b
ROM2:73C9 EA D5 C8         ld   (C8D5),a
ROM2:73CC F1               pop  af
ROM2:73CD C9               ret  

2:73CE

ROM2:73CE F5               push af
ROM2:73CF E5               push hl
ROM2:73D0 21 04 00         ld   hl,0004
ROM2:73D3 19               add  hl,de
ROM2:73D4 79               ld   a,c
ROM2:73D5 22               ldi  (hl),a
ROM2:73D6 70               ld   (hl),b
ROM2:73D7 E1               pop  hl
ROM2:73D8 F1               pop  af
ROM2:73D9 C9               ret  

Text: Yugi Muto - テストだよ - This is a test (Unused)

ROM2:73DA F5               push af
ROM2:73DB 3E 05            ld   a,05
ROM2:73DD EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yugi Muto
ROM2:73E0 3E 87            ld   a,87
ROM2:73E2 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x87 - テストだよ - This is a test (Unused)
ROM2:73E5 CD 12 40         call 4012
ROM2:73E8 CD C0 6D         call 6DC0
ROM2:73EB F1               pop  af
ROM2:73EC C9               ret

Text: Yami Yugi - Correct password

ROM2:73ED F5               push af
ROM2:73EE C5               push bc
ROM2:73EF D5               push de
ROM2:73F0 3E 04            ld   a,04
ROM2:73F2 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:73F5 3E 6C            ld   a,6C
ROM2:73F7 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x6C ; Correct password
ROM2:73FA CD D8 2C         call 2CD8
ROM2:73FD 1E 04            ld   e,04              ;e = 4
ROM2:73FF CD 8B 2D         call 2D8B
ROM2:7402 CD 12 40         call 4012
ROM2:7405 CD 49 2A         call 2A49
ROM2:7408 CD C0 6D         call 6DC0
ROM2:740B CF               rst  08
 => 03 07
ROM2:740E CF               rst  08
 =>03 05
ROM2:7411 CD 31 2B         call 2B31
ROM2:7414 CF               rst  08
ROM2:7415 09               add  hl,bc
ROM2:7416 05               dec  b                 ;b--
ROM2:7417 D1               pop  de
ROM2:7418 C1               pop  bc
ROM2:7419 F1               pop  af
ROM2:741A C9               ret  

Text: Yami Yugi - Password already entered

ROM2:741B F5               push af
ROM2:741C 3E 04            ld   a,04
ROM2:741E EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:7421 3E 6D            ld   a,6D
ROM2:7423 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x9D ; Password already entered
ROM2:7426 CD 12 40         call 4012
ROM2:7429 CD 49 2A         call 2A49
ROM2:742C CD C0 6D         call 6DC0
ROM2:742F F1               pop  af
ROM2:7430 C9               ret  

Text: Yami Yugi - Invalid password

ROM2:7431 F5               push af
ROM2:7432 3E 04            ld   a,04
ROM2:7434 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:7437 3E 6E            ld   a,6E
ROM2:7439 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x6E ; Invalid password
ROM2:743C CD 12 40         call 4012
ROM2:743F CD C0 6D         call 6DC0
ROM2:7442 F1               pop  af
ROM2:7443 C9               ret

Text: Yami Yugi - Password Input

ROM2:7444 F5               push af
ROM2:7445 3E 04            ld   a,04
ROM2:7447 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:744A 3E 6B            ld   a,6B
ROM2:744C EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x6B ; Password Input
ROM2:744F CD 12 40         call 4012
ROM2:7452 CD 01 2A         call 2A01
ROM2:7455 CD C0 6D         call 6DC0
ROM2:7458 F1               pop  af
ROM2:7459 C9               ret  

Text: Yami Yugi - Can't Record Password

ROM2:745A F5               push af
ROM2:745B 3E 04            ld   a,04
ROM2:745D EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:7460 3E 70            ld   a,70
ROM2:7462 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x70 ; Can't Record Password
ROM2:7465 CD 12 40         call 4012
ROM2:7468 CD C0 6D         call 6DC0
ROM2:746B F1               pop  af
ROM2:746C C9               ret  

Text: Yami Yugi - Stage 5 password entered

ROM2:746D F5               push af
ROM2:746E 3E 04            ld   a,04
ROM2:7470 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:7473 3E 71            ld   a,71
ROM2:7475 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x71 ; Yami Yugi Stage 5 password entered
ROM2:7478 CD 12 40         call 4012
ROM2:747B CD 49 2A         call 2A49
ROM2:747E CD C0 6D         call 6DC0
ROM2:7481 F1               pop  af
ROM2:7482 C9               ret  

Text: Yami Bakura - Stage 5 password entered

ROM2:7483 F5               push af
ROM2:7484 3E 13            ld   a,13
ROM2:7486 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Bakura
ROM2:7489 3E 73            ld   a,73
ROM2:748B EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x73 ; Yami Bakura Stage 5 password entered
ROM2:748E CD 12 40         call 4012
ROM2:7491 CD 49 2A         call 2A49
ROM2:7494 CD C0 6D         call 6DC0
ROM2:7497 F1               pop  af
ROM2:7498 C9               ret  

Text: Nitemare - Stage 5 password entered

ROM2:7499 F5               push af
ROM2:749A 3E 16            ld   a,16
ROM2:749C EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Nitemare
ROM2:749F 3E 75            ld   a,75
ROM2:74A1 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x75 ; Nitemare Stage 5 password entered
ROM2:74A4 CD 12 40         call 4012
ROM2:74A7 CD 49 2A         call 2A49
ROM2:74AA CD C0 6D         call 6DC0
ROM2:74AD F1               pop  af
ROM2:74AE C9               ret  

Text: Shadi - Stage 5 password entered

ROM2:74AF F5               push af
ROM2:74B0 3E 14            ld   a,14
ROM2:74B2 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Shadi
ROM2:74B5 3E 74            ld   a,74
ROM2:74B7 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x74 ; Shadi Stage 5 password entered
ROM2:74BA CD 12 40         call 4012
ROM2:74BD CD 49 2A         call 2A49
ROM2:74C0 CD C0 6D         call 6DC0
ROM2:74C3 F1               pop  af
ROM2:74C4 C9               ret  

Text: Marik Ishtar - Stage 5 password entered

ROM2:74C5 F5               push af
ROM2:74C6 3E 0D            ld   a,0D
ROM2:74C8 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Marik Ishtar
ROM2:74CB 3E 76            ld   a,76
ROM2:74CD EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x76 ; Marik Ishtar Stage 5 password entered
ROM2:74D0 CD 12 40         call 4012
ROM2:74D3 CD 49 2A         call 2A49
ROM2:74D6 CD C0 6D         call 6DC0
ROM2:74D9 F1               pop  af
ROM2:74DA C9               ret  

Text: Grandpa - Grandpa password entered

ROM2:74DB F5               push af
ROM2:74DC 3E 12            ld   a,12
ROM2:74DE EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Grandpa
ROM2:74E1 3E 85            ld   a,85
ROM2:74E3 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x85 ; Grandpa password entered
ROM2:74E6 CD 12 40         call 4012
ROM2:74E9 CD 41 2A         call 2A41
ROM2:74EC CD C0 6D         call 6DC0
ROM2:74EF F1               pop  af
ROM2:74F0 C9               ret  

Text: Simon Muran - Legendary card password (unused)

ROM2:74F1 F5               push af
ROM2:74F2 3E 10            ld   a,10
ROM2:74F4 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Simon Muran
ROM2:74F7 3E 86            ld   a,86
ROM2:74F9 EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x86 - Unused Legendary card password
ROM2:74FC CD 12 40         call 4012
ROM2:74FF CD C0 6D         call 6DC0
ROM2:7502 F1               pop  af
ROM2:7503 C9               ret  

Text: Yami Yugi - Password can't be used yet

ROM2:7504 F5               push af
ROM2:7505 3E 04            ld   a,04
ROM2:7507 EA F9 C6         ld   (C6F9),a          ;CPU Character ID displayed = Yami Yugi
ROM2:750A 3E 72            ld   a,72
ROM2:750C EA FA C6         ld   (C6FA),a          ;Text ID displayed = 0x72 ; Password can't be used yet
ROM2:750F CD 12 40         call 4012
ROM2:7512 CD 49 2A         call 2A49
ROM2:7515 CD C0 6D         call 6DC0
ROM2:7518 F1               pop  af
ROM2:7519 C9               ret

Bank 3 - Duel Operation

rst 08 pointers

ROM3:4002
7E 45
5C 45
F3 48
8E 48
AF 48
FF 50
1A 51
CB 4E
5A 4F
94 51
B1 51
86 50
2B 50
EC 4F
0D 52 - Check if selected card ID = register de
C7 50
36 51
59 51
2C 52
D7 50
EB 50
8A 4F
12 50
77 57
A1 59
CE 59
FB 59
10 5A
9D 59
91 5B - Stores damage type and Life Points
24 5C
51 5C
77 5C
87 5C
97 5C
A7 5C
70 5E
C8 5E - Remove Player's Trap Card
D6 5E - Remove CPU's Trap Card
D9 41
0B 42
68 41
A7 41
4A 5D - Win condition : Life Points
A3 78
38 43
41 79
46 52
AD 79
AE 52
1D 53
33 53
49 53
5F 53
18 56
21 56
2B 45
52 45
2E 43
F3 42
07 43
6C 42
B2 42
14 7B
3B 7B
2C 41
60 41
40 41
48 41
58 41
38 41
C9 5D

Life Points initialization, Healing and Damage

  • 0xC093-0xC0A3 - Sets Player's Life Points to 8000
ROM3:4093 3E 00            ld   a,00
ROM3:4095 EA C7 C5         ld   (C5C7),a
ROM3:4098 3E 80            ld   a,80
ROM3:409A EA C8 C5         ld   (C5C8),a
ROM3:409D 3E 00            ld   a,00
ROM3:409F EA C9 C5         ld   (C5C9),a	;?
ROM3:40A2 F1               pop  af
ROM3:40A3 C9               ret
  • 0xC0A4-0xC0BD - Heals Player's Life Points by amount in register bc
ROM3:40A4 F5               push af
ROM3:40A5 C5               push bc
ROM3:40A6 D5               push de
ROM3:40A7 FA C7 C5         ld   a,(C5C7)
ROM3:40AA 5F               ld   e,a
ROM3:40AB FA C8 C5         ld   a,(C5C8)
ROM3:40AE 57               ld   d,a		;Copies Player's Life Points in register de
ROM3:40AF CD 82 14         call 1482		;daa addtion
ROM3:40B2 79               ld   a,c
ROM3:40B3 EA C7 C5         ld   (C5C7),a
ROM3:40B6 78               ld   a,b
ROM3:40B7 EA C8 C5         ld   (C5C8),a	;Copies updated Player's Life Points in (C5C7)
ROM3:40BA D1               pop  de
ROM3:40BB C1               pop  bc
ROM3:40BC F1               pop  af
ROM3:40BD C9               ret
  • 0xC0BE-0xC0DE - Damage Player's Life Points by amount in register bc
ROM3:40BE C5               push bc
ROM3:40BF D5               push de
ROM3:40C0 FA C7 C5         ld   a,(C5C7)
ROM3:40C3 5F               ld   e,a
ROM3:40C4 FA C8 C5         ld   a,(C5C8)
ROM3:40C7 57               ld   d,a		;Copies Player's Life Points in register de
ROM3:40C8 CD 92 14         call 1492		;daa substraction
ROM3:40CB 7B               ld   a,e
ROM3:40CC FE 00            cp   a,00
ROM3:40CE 20 03            jr   nz,40D3
ROM3:40D0 01 00 00         ld   bc,0000		;If(bc≤0), sets bc to 0
ROM3:40D3 79               ld   a,c
ROM3:40D4 EA C7 C5         ld   (C5C7),a
ROM3:40D7 78               ld   a,b
ROM3:40D8 EA C8 C5         ld   (C5C8),a	;Copies updated Player's Life Points in (C5C7)
ROM3:40DB 7B               ld   a,e		;Copies e (0 : LP>0 ; 1 : LP==0 ; 2 : LP≤0) in accumulator
ROM3:40DC D1               pop  de
ROM3:40DD C1               pop  bc
ROM3:40DE C9               ret
  • 0xC0DF-0xC0F0 - Sets CPU's Life Points to 8000
ROM3:40DF F5               push af
ROM3:40E0 3E 00            ld   a,00
ROM3:40E2 EA CA C5         ld   (C5CA),a
ROM3:40E5 3E 80            ld   a,80
ROM3:40E7 EA CB C5         ld   (C5CB),a
ROM3:40EA 3E 00            ld   a,00
ROM3:40EC EA CC C5         ld   (C5CC),a	;?
ROM3:40EF F1               pop  af
ROM3:40F0 C9               ret
  • 0xC0F1-0xC10A - Heals CPU's Life Points by amount in register bc
ROM3:40F1 F5               push af
ROM3:40F2 C5               push bc
ROM3:40F3 D5               push de
ROM3:40F4 FA BB C7         ld   a,(C7BB)
ROM3:40F7 5F               ld   e,a
ROM3:40F8 FA BC C7         ld   a,(C7BC)
ROM3:40FB 57               ld   d,a		;Copies CPU's Life Points in register de
ROM3:40FC CD 82 14         call 1482		;daa addtion
ROM3:40FF 79               ld   a,c
ROM3:4100 EA BB C7         ld   (C7BB),a
ROM3:4103 78               ld   a,b
ROM3:4104 EA BC C7         ld   (C7BC),a	;Copies updated CPU's Life Points in (C7BB)
ROM3:4107 D1               pop  de
ROM3:4108 C1               pop  bc
ROM3:4109 F1               pop  af
ROM3:410A C9               ret
  • 0xC10B-0xC12B - Damage CPU's Life Points by amount in register bc
ROM3:410B C5               push bc
ROM3:410C D5               push de
ROM3:410D FA BB C7         ld   a,(C7BB)
ROM3:4110 5F               ld   e,a
ROM3:4111 FA BC C7         ld   a,(C7BC)
ROM3:4114 57               ld   d,a		;Copies CPU's Life Points in register de
ROM3:4115 CD 92 14         call 1492		;daa substraction
ROM3:4118 7B               ld   a,e
ROM3:4119 FE 00            cp   a,00
ROM3:411B 20 03            jr   nz,4120
ROM3:411D 01 00 00         ld   bc,0000		;If(bc≤0), sets bc to 0
ROM3:4120 79               ld   a,c
ROM3:4121 EA BB C7         ld   (C7BB),a
ROM3:4124 78               ld   a,b
ROM3:4125 EA BC C7         ld   (C7BC),a	;Copies updated CPU's Life Points in (C7BB)
ROM3:4128 7B               ld   a,e		;Copies e (0 : LP>0 ; 1 : LP==0 ; 2 : LP≤0) in accumulator
ROM3:4129 D1               pop  de
ROM3:412A C1               pop  bc
ROM3:412B C9               ret

Field management

Reverts field to Arena

  • 0xC12C-0xC133 - Reverts field to Arena
ROM3:412C F5               push af
ROM3:412D 3E 00            ld   a,00
ROM3:412F EA E8 C5         ld   (C5E8),a
ROM3:4132 F1               pop  af
ROM3:4133 C9               ret  

Field change

  • 0xC134-0xC137 - Changes Field to the value in accumulator
ROM3:4134 EA E8 C5         ld   (C5E8),a	;Field ID
ROM3:4137 C9               ret  

Change field to Forest

  • 0xC138-0xC13F - Change field to Forest
ROM3:4138 F5               push af
ROM3:4139 3E 01            ld   a,01
ROM3:413B CD 34 41         call 4134		;Field change
ROM3:413E F1               pop  af
ROM3:413F C9               ret  

Change field to Wasteland

  • 0xC140-0xC148 - Change field to Wasteland
ROM3:4140 F5               push af
ROM3:4141 3E 02            ld   a,02
ROM3:4143 CD 34 41         call 4134		;Field change
ROM3:4146 F1               pop  af
ROM3:4147 C9               ret  

Change field to Mountain

  • 0xC148-0xC14F - Change field to Mountain
ROM3:4148 F5               push af
ROM3:4149 3E 03            ld   a,03
ROM3:414B CD 34 41         call 4134		;Field change
ROM3:414E F1               pop  af
ROM3:414F C9               ret  

Change field to Sogen

  • 0xC150-0xC157 - Change field to Sogen
ROM3:4150 F5               push af
ROM3:4151 3E 04            ld   a,04
ROM3:4153 CD 34 41         call 4134		;Field change
ROM3:4156 F1               pop  af
ROM3:4157 C9               ret  

Change field to Umi

  • 0xC158-0xC15F - Change field to Umi
ROM3:4158 F5               push af
ROM3:4159 3E 05            ld   a,05
ROM3:415B CD 34 41         call 4134		;Field change
ROM3:415E F1               pop  af
ROM3:415F C9               ret  

Change field to Yami

  • 0xC160-0xC167 - Change field to Yami
ROM3:4160 F5               push af
ROM3:4161 3E 06            ld   a,06
ROM3:4163 CD 34 41         call 4134		;Field change
ROM3:4166 F1               pop  af
ROM3:4167 C9               ret

3:4168 (Checks hand + display ?)

ROM3:4168 CD 75 41         call 4175
ROM3:416B CD A7 41         call 41A7
ROM3:416E CD D9 41         call 41D9
ROM3:4171 CD 0B 42         call 420B		;Checks Hand + Trap Zone
ROM3:4174 C9               ret

3:4175

ROM3:4175 F5               push af
ROM3:4176 C5               push bc
ROM3:4177 D5               push de
ROM3:4178 E5               push hl
ROM3:4179 3E 12            ld   a,12
ROM3:417B CD E3 0E         call 0EE3
ROM3:417E 01 08 9A         ld   bc,9A08
ROM3:4181 16 00            ld   d,00
ROM3:4183 1E 06            ld   e,06
ROM3:4185 CD D2 10         call 10D2
ROM3:4188 03               inc  bc
ROM3:4189 03               inc  bc
ROM3:418A C5               push bc
ROM3:418B 42               ld   b,d
ROM3:418C 0E 03            ld   c,03
ROM3:418E CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:4191 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:4194 CD 46 52         call 5246
ROM3:4197 CD 3D 42         call 423D
ROM3:419A C1               pop  bc
ROM3:419B 14               inc  d
ROM3:419C 1D               dec  e
ROM3:419D 20 E6            jr   nz,4185
ROM3:419F CD C1 10         call 10C1
ROM3:41A2 E1               pop  hl
ROM3:41A3 D1               pop  de
ROM3:41A4 C1               pop  bc
ROM3:41A5 F1               pop  af
ROM3:41A6 C9               ret  

3:41A7

ROM3:41A7 F5               push af
ROM3:41A8 C5               push bc
ROM3:41A9 D5               push de
ROM3:41AA E5               push hl
ROM3:41AB 3E 12            ld   a,12
ROM3:41AD CD E3 0E         call 0EE3
ROM3:41B0 01 CA 99         ld   bc,99CA
ROM3:41B3 16 01            ld   d,01
ROM3:41B5 1E 05            ld   e,05
ROM3:41B7 CD D2 10         call 10D2
ROM3:41BA 03               inc  bc
ROM3:41BB 03               inc  bc
ROM3:41BC C5               push bc
ROM3:41BD 42               ld   b,d
ROM3:41BE 0E 02            ld   c,02
ROM3:41C0 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:41C3 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:41C6 CD 46 52         call 5246
ROM3:41C9 CD 3D 42         call 423D
ROM3:41CC C1               pop  bc
ROM3:41CD 14               inc  d
ROM3:41CE 1D               dec  e
ROM3:41CF 20 E6            jr   nz,41B7
ROM3:41D1 CD C1 10         call 10C1
ROM3:41D4 E1               pop  hl
ROM3:41D5 D1               pop  de
ROM3:41D6 C1               pop  bc
ROM3:41D7 F1               pop  af
ROM3:41D8 C9               ret  

3:41D9

ROM3:41D9 F5               push af
ROM3:41DA C5               push bc
ROM3:41DB D5               push de
ROM3:41DC E5               push hl
ROM3:41DD 3E 12            ld   a,12
ROM3:41DF CD E3 0E         call 0EE3
ROM3:41E2 01 4A 98         ld   bc,984A
ROM3:41E5 16 04            ld   d,04
ROM3:41E7 1E 05            ld   e,05
ROM3:41E9 CD D2 10         call 10D2
ROM3:41EC 03               inc  bc
ROM3:41ED 03               inc  bc
ROM3:41EE C5               push bc
ROM3:41EF 42               ld   b,d
ROM3:41F0 0E 01            ld   c,01
ROM3:41F2 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:41F5 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:41F8 CD 46 52         call 5246
ROM3:41FB CD 3D 42         call 423D
ROM3:41FE C1               pop  bc
ROM3:41FF 15               dec  d
ROM3:4200 1D               dec  e
ROM3:4201 20 E6            jr   nz,41E9
ROM3:4203 CD C1 10         call 10C1
ROM3:4206 E1               pop  hl
ROM3:4207 D1               pop  de
ROM3:4208 C1               pop  bc
ROM3:4209 F1               pop  af
ROM3:420A C9               ret  

Checks Hand + Trap Zone

ROM3:420B F5               push af
ROM3:420C C5               push bc
ROM3:420D D5               push de
ROM3:420E E5               push hl
ROM3:420F 3E 12            ld   a,12
ROM3:4211 CD E3 0E         call 0EE3		;(Related to display)
ROM3:4214 01 08 98         ld   bc,9808
ROM3:4217 16 05            ld   d,05
ROM3:4219 1E 06            ld   e,06
ROM3:421B CD D2 10         call 10D2
ROM3:421E 03               inc  bc
ROM3:421F 03               inc  bc
ROM3:4220 C5               push bc
ROM3:4221 42               ld   b,d
ROM3:4222 0E 00            ld   c,00
ROM3:4224 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:4227 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:422A CD 46 52         call 5246
ROM3:422D CD 3D 42         call 423D
ROM3:4230 C1               pop  bc
ROM3:4231 15               dec  d
ROM3:4232 1D               dec  e		;Loop 6 times
ROM3:4233 20 E6            jr   nz,421B
ROM3:4235 CD C1 10         call 10C1		;Copy (C5AE) to (C5AF, then sets (C5AE) to 0)
ROM3:4238 E1               pop  hl
ROM3:4239 D1               pop  de
ROM3:423A C1               pop  bc
ROM3:423B F1               pop  af
ROM3:423C C9               ret

3:423D

ROM3:423D F5               push af
ROM3:423E CD 13 11         call 1113		;updates WRAM (C5AD), related to Battle display
ROM3:4241 C6 02            add  a,02
ROM3:4243 CD 13 11         call 1113
ROM3:4246 D6 01            sub  a,01
ROM3:4248 CD 13 11         call 1113
ROM3:424B C6 02            add  a,02
ROM3:424D CD 13 11         call 1113
ROM3:4250 F1               pop  af
ROM3:4251 C9               ret

CPU's deck

Blanks CPU's deck

ROM3:4252 F5               push af
ROM3:4253 C5               push bc
ROM3:4254 E5               push hl
ROM3:4255 3E 00            ld   a,00
ROM3:4257 EA AA C6         ld   (C6AA),a	;CPU's deck counter = 0
ROM3:425A 21 5A C6         ld   hl,C65A		;hl = Pointer to next card in CPU's deck
ROM3:425D 0E 28            ld   c,28
ROM3:425F 3E 00            ld   a,00
ROM3:4261 22               ldi  (hl),a		;Blanks CPU's deck
ROM3:4262 3E 00            ld   a,00
ROM3:4264 22               ldi  (hl),a
ROM3:4265 0D               dec  c
ROM3:4266 20 F7            jr   nz,425F		;Loops 40 times
ROM3:4268 E1               pop  hl
ROM3:4269 C1               pop  bc
ROM3:426A F1               pop  af
ROM3:426B C9               ret  

Writes value in CPU's deck counter

ROM3:426C EA AA C6         ld   (C6AA),a	;CPU's deck counter = a
ROM3:426F C9               ret  

Writes 0 in CPU's deck counter

ROM3:4270 F5               push af
ROM3:4271 AF               xor  a
ROM3:4272 EA AA C6         ld   (C6AA),a	;CPU's deck counter = 0
ROM3:4275 F1               pop  af
ROM3:4276 C9               ret  

Removes card in CPU's deck

ROM3:4277 F5               push af
ROM3:4278 C5               push bc
ROM3:4279 E5               push hl
ROM3:427A 06 00            ld   b,00
ROM3:427C FA AA C6         ld   a,(C6AA)
ROM3:427F 4F               ld   c,a
ROM3:4280 CB 21            sla  c		;c = CPU's deck counter × 2
ROM3:4282 21 5A C6         ld   hl,C65A
ROM3:4285 09               add  hl,bc		;hl = Pointer to next card in CPU's deck
ROM3:4286 3E 00            ld   a,00
ROM3:4288 22               ldi  (hl),a		;Removes card in CPU's deck
ROM3:4289 36 00            ld   (hl),00
ROM3:428B E1               pop  hl
ROM3:428C C1               pop  bc
ROM3:428D F1               pop  af
ROM3:428E C9               ret  

Loads next card in CPU's deck

ROM3:428F F5               push af
ROM3:4290 E5               push hl
ROM3:4291 06 00            ld   b,00
ROM3:4293 FA AA C6         ld   a,(C6AA)
ROM3:4296 4F               ld   c,a
ROM3:4297 CB 21            sla  c		;c = CPU's deck counter × 2
ROM3:4299 21 5A C6         ld   hl,C65A
ROM3:429C 09               add  hl,bc		;hl = Pointer to next card in CPU's deck
ROM3:429D 2A               ldi  a,(hl)		;Loads card from CPU's deck
ROM3:429E 4F               ld   c,a
ROM3:429F 3A               ldd  a,(hl)
ROM3:42A0 47               ld   b,a
ROM3:42A1 E1               pop  hl
ROM3:42A2 F1               pop  af
ROM3:42A3 C9               ret  

Increments CPU's deck counter

ROM3:42A4 F5               push af
ROM3:42A5 FA AA C6         ld   a,(C6AA)	;a = CPU's cards drawn
ROM3:42A8 FE 28            cp   a,28
ROM3:42AA 30 04            jr   nc,42B0		;If 40 cards have been drawn by CPU, get out of this function
ROM3:42AC 3C               inc  a
ROM3:42AD EA AA C6         ld   (C6AA),a
ROM3:42B0 F1               pop  af
ROM3:42B1 C9               ret  

Writes next card in CPU's deck

ROM3:42B2 F5               push af
ROM3:42B3 E5               push hl
ROM3:42B4 C5               push bc
ROM3:42B5 06 00            ld   b,00
ROM3:42B7 FA AA C6         ld   a,(C6AA)
ROM3:42BA 4F               ld   c,a
ROM3:42BB CB 21            sla  c
ROM3:42BD 21 5A C6         ld   hl,C65A
ROM3:42C0 09               add  hl,bc		;hl = Pointer to next card in CPU's deck
ROM3:42C1 C1               pop  bc
ROM3:42C2 79               ld   a,c
ROM3:42C3 22               ldi  (hl),a		;Writes card in CPU's deck
ROM3:42C4 70               ld   (hl),b
ROM3:42C5 E1               pop  hl
ROM3:42C6 F1               pop  af
ROM3:42C7 C9               ret  

CPU draws a card

ROM3:42C8 F5               push af
ROM3:42C9 C5               push bc
ROM3:42CA 47               ld   b,a
ROM3:42CB 0E 00            ld   c,00
ROM3:42CD CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:42D0 CD E6 19         call 19E6		;Remove CPU's Trap card from the field
ROM3:42D3 CD 8F 42         call 428F		;Loads next card in CPU's deck
ROM3:42D6 CD 77 42         call 4277		;Removes card in CPU's deck
ROM3:42D9 CD A4 42         call 42A4		;Increments CPU's deck counter
ROM3:42DC 79               ld   a,c
ROM3:42DD EA A3 C7         ld   (C7A3),a	;(C7A3) = Card drawn by CPU
ROM3:42E0 78               ld   a,b
ROM3:42E1 EA A4 C7         ld   (C7A4),a
ROM3:42E4 CD 18 20         call 2018		;Card Owner = CPU
ROM3:42E7 CD B4 1F         call 1FB4		;Reset Card Level
ROM3:42EA CD D4 1F         call 1FD4		;Hide Card
ROM3:42ED CD 2B 1A         call 1A2B		;Updates Card ID and status
ROM3:42F0 C1               pop  bc
ROM3:42F1 F1               pop  af
ROM3:42F2 C9               ret  

CPU's starting hand

ROM3:42F3 F5               push af
ROM3:42F4 C5               push bc
ROM3:42F5 CD 70 42         call 4270		;Writes 0 in CPU's deck counter
ROM3:42F8 06 00            ld   b,00
ROM3:42FA 0E 05            ld   c,05
ROM3:42FC 78               ld   a,b
ROM3:42FD CD C8 42         call 42C8		;CPU draws a card
ROM3:4300 04               inc  b
ROM3:4301 0D               dec  c
ROM3:4302 20 F8            jr   nz,42FC		;Loop 5 times to 3:42FC
ROM3:4304 C1               pop  bc
ROM3:4305 F1               pop  af
ROM3:4306 C9               ret  

CPU's card drawing subroutine

ROM3:4307 F5               push af
ROM3:4308 C5               push bc
ROM3:4309 06 00            ld   b,00		;Column
ROM3:430B 0E 05            ld   c,05
ROM3:430D 78               ld   a,b
ROM3:430E CD EA 4E         call 4EEA		;Checks if the card zone is free
ROM3:4311 FE 01            cp   a,01
ROM3:4313 20 12            jr   nz,4327		;If there is already a card in this card zone, jump to 3:4327
ROM3:4315 CD 2E 43         call 432E		;Counts cards remaining in CPU's deck
ROM3:4318 FE 00            cp   a,00
ROM3:431A 28 08            jr   z,4324		;If CPU has no more cards in its deck, jump to 3:4324
ROM3:431C 78               ld   a,b
ROM3:431D CD C8 42         call 42C8		;CPU draws a card
ROM3:4320 18 09            jr   432B
ROM3:4322 18 03            jr   4327
ROM3:4324 CD 6B 24         call 246B		;Player wins
ROM3:4327 04               inc  b		;Next Column
ROM3:4328 0D               dec  c
ROM3:4329 20 E2            jr   nz,430D		;Loop up to 5 times to 3:430D
ROM3:432B C1               pop  bc
ROM3:432C F1               pop  af
ROM3:432D C9               ret

Counts cards remaining in CPU's deck

ROM3:432E C5               push bc
ROM3:432F FA AA C6         ld   a,(C6AA)
ROM3:4332 4F               ld   c,a		;c = CPU's cards drawn
ROM3:4333 3E 28            ld   a,28
ROM3:4335 91               sub  c		;a = 40 - CPU's cards drawn
ROM3:4336 C1               pop  bc
ROM3:4337 C9               ret

Player's deck

3:4338

ROM3:4338 F5               push af
ROM3:4339 C5               push bc
ROM3:433A D5               push de
ROM3:433B E5               push hl
ROM3:433C AF               xor  a
ROM3:433D EA 04 C7         ld   (C704),a
ROM3:4340 CD 2B 45         call 452B		;Player draws a card
ROM3:4343 CF               rst  08
...
ROM3:4349 FE 01            cp   a,01
ROM3:434B 28 30            jr   z,437D
ROM3:434D CD 73 24         call 2473
ROM3:4350 FE 01            cp   a,01
ROM3:4352 28 29            jr   z,437D
ROM3:4354 CF               rst  08
...
ROM3:4357 CD 90 43         call 4390
ROM3:435A CD C2 43         call 43C2
ROM3:435D 06 00            ld   b,00
ROM3:435F 4F               ld   c,a
ROM3:4360 21 82 43         ld   hl,4382
ROM3:4363 09               add  hl,bc
ROM3:4364 2A               ldi  a,(hl)
ROM3:4365 66               ld   h,(hl)
ROM3:4366 6F               ld   l,a
ROM3:4367 01 6C 43         ld   bc,436C
ROM3:436A C5               push bc
ROM3:436B E9               jp   hl
ROM3:436C CD 73 24         call 2473		;Duel Win and Loss subroutine
ROM3:436F FE 01            cp   a,01
ROM3:4371 28 07            jr   z,437A		;If the duel is finished, jump to 3:437A
ROM3:4373 FA 04 C7         ld   a,(C704)
ROM3:4376 FE 01            cp   a,01
ROM3:4378 20 E0            jr   nz,435A
ROM3:437A CD B2 43         call 43B2
ROM3:437D E1               pop  hl
ROM3:437E D1               pop  de
ROM3:437F C1               pop  bc
ROM3:4380 F1               pop  af
ROM3:4381 C9               ret  

3:4382 (Pointers array)

ROM3:4382
FC 43 06 44 17 44 24 44 31 44 3E 44 4B 44

3:4390

ROM3:4390 CD 8A 79         call 798A
ROM3:4393 CD 57 78         call 7857
ROM3:4396 CD BF 2C         call 2CBF
ROM3:4399 CF               rst  08
...
ROM3:439F CD 2B 50         call 502B
ROM3:43A2 CF               rst  08
...
ROM3:43A8 CD 8E 48         call 488E
ROM3:43AB CD AD 12         call 12AD
ROM3:43AE CD 14 7B         call 7B14
ROM3:43B1 C9               ret  

3:43B2

ROM3:43B2 CF               rst  08
...
ROM3:43B8 CD 7E 2C         call 2C7E		;Decrease Swords of Revealing Light counter by 1
ROM3:43BB CF               rst  08
...
ROM3:43C1 C9               ret  

3:43C2

ROM3:43C2 C5               push bc
ROM3:43C3 D5               push de
ROM3:43C4 E5               push hl
ROM3:43C5 16 00            ld   d,00
ROM3:43C7 FA A8 C5         ld   a,(C5A8)
ROM3:43CA E6 F3            and  a,F3
ROM3:43CC 28 0D            jr   z,43DB
ROM3:43CE 0E 08            ld   c,08
ROM3:43D0 0D               dec  c
ROM3:43D1 07               rlca 
ROM3:43D2 30 FC            jr   nc,43D0
ROM3:43D4 06 00            ld   b,00
ROM3:43D6 21 F4 43         ld   hl,43F4
ROM3:43D9 09               add  hl,bc
ROM3:43DA 56               ld   d,(hl)
ROM3:43DB FA A7 C5         ld   a,(C5A7)
ROM3:43DE E6 F0            and  a,F0
ROM3:43E0 28 0D            jr   z,43EF
ROM3:43E2 0E 08            ld   c,08
ROM3:43E4 0D               dec  c
ROM3:43E5 07               rlca 
ROM3:43E6 30 FC            jr   nc,43E4
ROM3:43E8 06 00            ld   b,00
ROM3:43EA 21 F4 43         ld   hl,43F4
ROM3:43ED 09               add  hl,bc
ROM3:43EE 56               ld   d,(hl)
ROM3:43EF 7A               ld   a,d
ROM3:43F0 E1               pop  hl
ROM3:43F1 D1               pop  de
ROM3:43F2 C1               pop  bc
ROM3:43F3 C9               ret  

Removes top card from Player's deck

  • 0xC47D-0xC494 - 00s top card from Player's deck
ROM3:447D F5               push af
ROM3:447E C5               push bc
ROM3:447F E5               push hl
ROM3:4480 06 00            ld   b,00
ROM3:4482 FA 55 C7         ld   a,(C755)
ROM3:4485 4F               ld   c,a
ROM3:4486 CB 21            sla  c
ROM3:4488 21 05 C7         ld   hl,C705
ROM3:448B 09               add  hl,bc
ROM3:448C 3E 00            ld   a,00
ROM3:448E 22               ldi  (hl),a
ROM3:448F 36 00            ld   (hl),00
ROM3:4491 E1               pop  hl
ROM3:4492 C1               pop  bc
ROM3:4493 F1               pop  af
ROM3:4494 C9               ret  

Copies top card from Player's deck

  • 0xC495-0xC4A8 - Copies top card from Player's deck in register bc
ROM3:4495 F5               push af
ROM3:4496 E5               push hl
ROM3:4497 06 00            ld   b,00
ROM3:4499 FA 55 C7         ld   a,(C755)
ROM3:449C 4F               ld   c,a
ROM3:449D CB 21            sla  c
ROM3:449F 21 05 C7         ld   hl,C705
ROM3:44A2 09               add  hl,bc
ROM3:44A3 2A               ldi  a,(hl)
ROM3:44A4 4F               ld   c,a
ROM3:44A5 46               ld   b,(hl)
ROM3:44A6 E1               pop  hl
ROM3:44A7 F1               pop  af
ROM3:44A8 C9               ret  

Increases cards drawn counter

  • 0xC4A9-0xC4B6 - Increases the number of cards that have been drawn during the duel.
ROM3:44A9 F5               push af
ROM3:44AA FA 55 C7         ld   a,(C755)	;Cards drawn during this duel
ROM3:44AD FE 28            cp   a,28
ROM3:44AF 30 04            jr   nc,44B5	;If more than 40 cards have been drawn, exit this function
ROM3:44B1 3C               inc  a
ROM3:44B2 EA 55 C7         ld   (C755),a	;Cards drawn ++
ROM3:44B5 F1               pop  af
ROM3:44B6 C9               ret

Card drawing subroutine

  • 0xC4E4-0xC516 - Copies the top card from Player's deck, then removes top card from Player's deck, increases the card drawn counter, then put the copied card into Player's Hand.
ROM3:44E4 F5               push af
ROM3:44E5 C5               push bc
ROM3:44E6 47               ld   b,a
ROM3:44E7 CD F3 4E         call 4EF3
ROM3:44EA FE 00            cp   a,00
ROM3:44EC 28 26            jr   z,4514
ROM3:44EE FA 55 C7         ld   a,(C755)	;Cards drawn during this duel
ROM3:44F1 FE 28            cp   a,28
ROM3:44F3 30 1F            jr   nc,4514		;If more than 40 cards have been drawn during this duel, jump to 3:4514
ROM3:44F5 0E 03            ld   c,03
ROM3:44F7 CD D0 19         call 19D0		;Set column and row to bc
ROM3:44FA CD 95 44         call 4495		;Copies top card from Player's deck
ROM3:44FD CD 7D 44         call 447D		;Removes top card from Player's deck
ROM3:4500 CD A9 44         call 44A9		;Increases cards drawn counter
ROM3:4503 79               ld   a,c
ROM3:4504 EA A3 C7         ld   (C7A3),a	;Copies card ID to (C7A3)
ROM3:4507 78               ld   a,b
ROM3:4508 EA A4 C7         ld   (C7A4),a
ROM3:450B CD 18 20         call 2018
ROM3:450E CD B4 1F         call 1FB4		;Reset Card Level
ROM3:4511 CD 2B 1A         call 1A2B
ROM3:4514 C1               pop  bc
ROM3:4515 F1               pop  af
ROM3:4516 C9               ret

Player draws a card

  • 0xC52B-0xC551 - Player draws a card
ROM3:452B F5               push af
ROM3:452C C5               push bc
ROM3:452D 06 01            ld   b,01
ROM3:452F 0E 05            ld   c,05
ROM3:4531 78               ld   a,b
ROM3:4532 CD F3 4E         call 4EF3
ROM3:4535 FE 01            cp   a,01
ROM3:4537 20 12            jr   nz,454B
ROM3:4539 CD 52 45         call 4552		;Cards remaining in deck
ROM3:453C FE 00            cp   a,00
ROM3:453E 28 08            jr   z,4548		;If there's no card left in the deck, jump to 3:4548
ROM3:4540 78               ld   a,b
ROM3:4541 CD E4 44         call 44E4		;Card drawing subroutine
ROM3:4544 18 09            jr   454F
ROM3:4546 18 03            jr   454B
ROM3:4548 CD 63 24         call 2463		;Player loses
ROM3:454B 04               inc  b
ROM3:454C 0D               dec  c
ROM3:454D 20 E2            jr   nz,4531
ROM3:454F C1               pop  bc
ROM3:4550 F1               pop  af
ROM3:4551 C9               ret

Cards remaining in deck

ROM3:4552 C5               push bc
ROM3:4553 FA 55 C7         ld   a,(C755)	;Cards drawn during this duel
ROM3:4556 4F               ld   c,a
ROM3:4557 3E 28            ld   a,28
ROM3:4559 91               sub  c		;a = 40 - cards drawn
ROM3:455A C1               pop  bc
ROM3:455B C9               ret

3:455C

ROM3:455C CD 47 24         call 2447		;First turn, no attack
ROM3:455F CD 2C 41         call 412C
ROM3:4562 CD A9 19         call 19A9
ROM3:4565 CD 92 40         call 4092
ROM3:4568 CD DF 40         call 40DF
ROM3:456B CD 99 5D         call 5D99
ROM3:456E CD 17 45         call 4517
ROM3:4571 CD 1A 2C         call 2C1A
ROM3:4574 CD 64 2C         call 2C64
ROM3:4577 CD 83 30         call 3083
ROM3:457A CF               rst  08
...
ROM3:457D C9               ret

3:457E

ROM3:457E F5               push af
ROM3:457F CD FE 1C         call 1CFE
ROM3:4582 CD 5C 45         call 455C
ROM3:4585 CF               rst  08
...
ROM3:4588 CD BD 12         call 12BD
ROM3:458B CD E1 52         call 52E1
ROM3:458E FE 00            cp   a,00
ROM3:4590 20 05            jr   nz,4597
ROM3:4592 CD 9E 45         call 459E
ROM3:4595 18 05            jr   459C
ROM3:4597 3E 1A            ld   a,1A
ROM3:4599 CF               rst  08
...
ROM3:459C F1               pop  af
ROM3:459D C9               ret

Attack Phase

Attack Phase - Main

  • 0xCDDF-0xCE3C - Attack Phase. Everything that happens when the Player attacks is handled here.
ROM3:4DE1 CD 99 2A         call 2A99		;Sound Effect: Validate (Duel)
ROM3:4DE4 CD 9A 2C         call 2C9A		;Checks Swords of Revealing Light
ROM3:4DE7 FE 00            cp   a,00
ROM3:4DE9 20 1A            jr   nz,4E05 	;If Swords of Revealing Light is not active, jump to 3:4E05
ROM3:4DEB FA 00 C7         ld   a,(C700)	;If Swords of Revealing Light is active...
ROM3:4DEE 47               ld   b,a
ROM3:4DEF 0E 02            ld   c,02
ROM3:4DF1 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:4DF4 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:4DF7 CD DF 1F         call 1FDF		;Freeze Attacking Monster
ROM3:4DFA CD 12 50         call 5012		;Loads attacking monster ID, rst 08 and does stuff to document
ROM3:4DFD CD FB 19         call 19FB		;Update selected card ID and status
ROM3:4E00 CD 2C 61         call 612C
ROM3:4E03 18 35            jr   4E3A
ROM3:4E05 FA 00 C7         ld   a,(C700)	;If Swords of Revealing Light is not active...
ROM3:4E08 47               ld   b,a
ROM3:4E09 0E 02            ld   c,02
ROM3:4E0B CD 9F 5B         call 5B9F
ROM3:4E0E CD 18 4F         call 4F18
ROM3:4E11 FE 00            cp   a,00
ROM3:4E13 28 05            jr   z,4E1A
ROM3:4E15 CD 02 61         call 6102
ROM3:4E18 18 20            jr   4E3A
ROM3:4E1A FA 00 C7         ld   a,(C700)
ROM3:4E1D 47               ld   b,a
ROM3:4E1E 0E 02            ld   c,02
ROM3:4E20 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:4E23 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:4E26 CD DF 1F         call 1FDF		;Freeze Attacking Monster
ROM3:4E29 CD 12 50         call 5012		;Loads attacking monster ID, rst 08 and does stuff to document
ROM3:4E2C CD FB 19         call 19FB
ROM3:4E2F CD 12 61         call 6112		;rst 08, then handles Battle Display
ROM3:4E32 3E 01            ld   a,01
ROM3:4E34 EA 4C C8         ld   (C84C),a
ROM3:4E37 CD B7 5C         call 5CB7
ROM3:4E3A C1               pop  bc
ROM3:4E3B F1               pop  af

Stores processed card ID

  • 0xCECB-0xCEE9 - Stores processed card ID, and check if there's a card in the selected card zone.
ROM3:4ECB C5               push bc
ROM3:4ECC D5               push de
ROM3:4ECD 1E 01            ld   e,01
ROM3:4ECF CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:4ED2 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:4ED5 FA A3 C7         ld   a,(C7A3)	;Loads processed card ID in accumulator, then stores it in register bc
ROM3:4ED8 4F               ld   c,a
ROM3:4ED9 FA A4 C7         ld   a,(C7A4)
ROM3:4EDC 47               ld   b,a
ROM3:4EDD CD 72 1A         call 1A72		;Sets accumulator to 1 if there is no card in this row and column, 0 otherwise
ROM3:4EE0 FE 00            cp   a,00
ROM3:4EE2 20 02            jr   nz,4EE6
ROM3:4EE4 1E 00            ld   e,00
ROM3:4EE6 7B               ld   a,e
ROM3:4EE7 D1               pop  de
ROM3:4EE8 C1               pop  bc
ROM3:4EE9 C9               ret

Checks if card zone is free

ROM3:4EEA C5               push bc
ROM3:4EEB 47               ld   b,a
ROM3:4EEC 0E 00            ld   c,00
ROM3:4EEE CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:4EF1 C1               pop  bc
ROM3:4EF2 C9               ret

3:4F18

  • 0xCF18-0xCF33 -
ROM3:4F18 C5               push bc
ROM3:4F19 D5               push de
ROM3:4F1A 06 00            ld   b,00
ROM3:4F1C 0E 01            ld   c,01
ROM3:4F1E 1E 00            ld   e,00
ROM3:4F20 78               ld   a,b
ROM3:4F21 FE 05            cp   a,05
ROM3:4F23 30 0B            jr   nc,4F30
ROM3:4F25 CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:4F28 FE 00            cp   a,00
ROM3:4F2A 20 01            jr   nz,4F2D
ROM3:4F2C 1C               inc  e
ROM3:4F2D 04               inc  b
ROM3:4F2E 18 F0            jr   4F20
ROM3:4F30 7B               ld   a,e
ROM3:4F31 D1               pop  de
ROM3:4F32 C1               pop  bc

Freeze Monster cards in Hand

ROM3:4FEC F5               push af
ROM3:4FED C5               push bc
ROM3:4FEE D5               push de
ROM3:4FEF 06 01            ld   b,01
ROM3:4FF1 0E 03            ld   c,03
ROM3:4FF3 16 00            ld   d,00
ROM3:4FF5 CD D0 19         call 19D0          ;Updates field Column and Row to value in bc
ROM3:4FF8 CD 13 1A         call 1A13          ;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:4FFB CD F2 51         call 51F2
ROM3:4FFE FE 00            cp   a,00
ROM3:5000 20 06            jr   nz,5008
ROM3:5002 CD DF 1F         call 1FDF          ;Freeze card
ROM3:5005 CD FB 19         call 19FB          ;Updates selected card ID and status
ROM3:5008 04               inc  b
ROM3:5009 78               ld   a,b
ROM3:500A FE 06            cp   a,06
ROM3:500C 38 E7            jr   c,4FF5         ;Loop until every Monster card in Hand is frozen
ROM3:500E D1               pop  de
ROM3:500F C1               pop  bc
ROM3:5010 F1               pop  af
ROM3:5011 C9               ret  

Stores attacking monster ID in bc

  • 0xD012-0xD01C - Loads attacking monster ID in register bc
ROM3:5012 F5               push af
ROM3:5013 C5               push bc
ROM3:5014 FA A3 C7         ld   a,(C7A3)
ROM3:5017 4F               ld   c,a
ROM3:5018 FA A4 C7         ld   a,(C7A4)
ROM3:501B 47               ld   b,a
ROM3:501C CF               rst  08

Reveal stored Monster ID

  • 0xD012-0xD01C - Reveal stored Monster ID
ROM3:501F CF               rst  08
...
ROM3:5022 CF               rst  08
...
ROM3:5025 CD C9 1F         call 1FC9		;Reveal card 
ROM3:5028 C1               pop  bc
ROM3:5029 F1               pop  af
ROM3:502A C9               ret

Increase card Level subroutine

  • 0xD0C7-0xD0D6 -
ROM3:50C7 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:50CA CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:50CD CD 70 1F         call 1F70		;Increase Card Level
ROM3:50D0 CD C9 1F         call 1FC9		;Reveal Card
ROM3:50D3 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:50D6 C9               ret  

3:50D7

ROM3:50D7 C5               push bc
ROM3:50D8 01 01 00         ld   bc,0001
ROM3:50DB CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:50DE FE 01            cp   a,01
ROM3:50E0 28 06            jr   z,50E8
ROM3:50E2 04               inc  b
ROM3:50E3 78               ld   a,b
ROM3:50E4 FE 05            cp   a,05
ROM3:50E6 38 F3            jr   c,50DB
ROM3:50E8 78               ld   a,b
ROM3:50E9 C1               pop  bc
ROM3:50EA C9               ret  

3:50EB

ROM3:50EB C5               push bc
ROM3:50EC 01 02 01         ld   bc,0102
ROM3:50EF CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:50F2 FE 01            cp   a,01
ROM3:50F4 28 06            jr   z,50FC
ROM3:50F6 04               inc  b
ROM3:50F7 78               ld   a,b
ROM3:50F8 FE 06            cp   a,06
ROM3:50FA 38 F3            jr   c,50EF
ROM3:50FC 78               ld   a,b
ROM3:50FD C1               pop  bc
ROM3:50FE C9               ret  

3:50FF

ROM3:50FF C5               push bc
ROM3:5100 01 02 01         ld   bc,0102
ROM3:5103 CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:5106 FE 01            cp   a,01
ROM3:5108 28 06            jr   z,5110
ROM3:510A 04               inc  b
ROM3:510B 78               ld   a,b
ROM3:510C FE 06            cp   a,06
ROM3:510E 38 F3            jr   c,5103
ROM3:5110 78               ld   a,b
ROM3:5111 FE 06            cp   a,06
ROM3:5113 20 02            jr   nz,5117
ROM3:5115 06 01            ld   b,01
ROM3:5117 78               ld   a,b
ROM3:5118 C1               pop  bc
ROM3:5119 C9               ret  

Retrieve strongest CPU's Monster ID

  • 0xD1B1-0xD1C6 - Retrieves card ID + card status of the strongest CPU's Monster
ROM3:51B1 D5               push de
ROM3:51B2 E5               push hl
ROM3:51B3 16 01            ld   d,01
ROM3:51B5 1E 00            ld   e,00
ROM3:51B7 21 00 00         ld   hl,0000
ROM3:51BA 01 01 00         ld   bc,0001		;Column 1, Row 0
ROM3:51BD CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:51C0 FE 00            cp   a,00		;If there's no card being processed, check next card zone
ROM3:51C2 20 23            jr   nz,51E7		;Increases card column being checked
ROM3:51C4 C5               push bc
ROM3:51C5 D5               push de
ROM3:51C6 CF               rst  08
ROM3:51C7 0B 07      => Pointer 07:400B
ROM3:51C9 54               ld   d,h
ROM3:51CA 5D               ld   e,l
ROM3:51CB FA B7 C6         ld   a,(C6B7)
ROM3:51CE 4F               ld   c,a
ROM3:51CF FA B8 C6         ld   a,(C6B8)
ROM3:51D2 47               ld   b,a		;bc = Current card ATK
ROM3:51D3 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM3:51D6 D1               pop  de
ROM3:51D7 C1               pop  bc
ROM3:51D8 FE 02            cp   a,02
ROM3:51DA 28 0B            jr   z,51E7		;If(Current card ATK < Strongest ATK), jump to 3:51E7
ROM3:51DC FA B7 C6         ld   a,(C6B7)
ROM3:51DF 6F               ld   l,a
ROM3:51E0 FA B8 C6         ld   a,(C6B8)
ROM3:51E3 67               ld   h,a		;hl = Strongest ATK
ROM3:51E4 58               ld   e,b
ROM3:51E5 16 00            ld   d,00
ROM3:51E7 04               inc  b
ROM3:51E8 78               ld   a,b
ROM3:51E9 FE 06            cp   a,06
ROM3:51EB 38 D0            jr   c,51BD		;Loop to 3:51BD until every Monster Card Zone has been checked
ROM3:51ED 7A               ld   a,d
ROM3:51EE 43               ld   b,e
ROM3:51EF E1               pop  hl
ROM3:51F0 D1               pop  de
ROM3:51F1 C9               ret

3:51F2

ROM3:51F2 C5               push bc
ROM3:51F3 D5               push de
ROM3:51F4 1E 01            ld   e,01
ROM3:51F6 CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:51F9 FE 00            cp   a,00
ROM3:51FB 20 0C            jr   nz,5209
ROM3:51FD CF               rst  08
ROM3:51FE 0B               dec  bc
ROM3:51FF 07               rlca 
ROM3:5200 FA BF C6         ld   a,(C6BF)
ROM3:5203 FE 02            cp   a,02
ROM3:5205 20 02            jr   nz,5209
ROM3:5207 1E 00            ld   e,00
ROM3:5209 7B               ld   a,e
ROM3:520A D1               pop  de
ROM3:520B C1               pop  bc
ROM3:520C C9               ret  

Check if selected card ID = register de

ROM3:520D C5               push bc
ROM3:520E E5               push hl
ROM3:520F 2E 01            ld   l,01
ROM3:5211 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:5214 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:5217 FA A3 C7         ld   a,(C7A3)	;Card being processed
ROM3:521A 4F               ld   c,a
ROM3:521B FA A4 C7         ld   a,(C7A4)
ROM3:521E 47               ld   b,a
ROM3:521F CD 14 1B         call 1B14		;Check if bc = de
ROM3:5222 FE 00            cp   a,00
ROM3:5224 20 02            jr   nz,5228
ROM3:5226 2E 00            ld   l,00
ROM3:5228 7D               ld   a,l
ROM3:5229 E1               pop  hl
ROM3:522A C1               pop  bc
ROM3:522B C9               ret

Checks if a specific Monster card is on the field

ROM3:522C E5               push hl
ROM3:522D 2E 01            ld   l,01
ROM3:522F 06 00            ld   b,00
ROM3:5231 78               ld   a,b
ROM3:5232 FE 06            cp   a,06
ROM3:5234 30 0D            jr   nc,5243		;If all the Monster cards have been checked, jump to 3:5243
ROM3:5236 CD 0D 52         call 520D		;Check if selected card ID = register de
ROM3:5239 FE 00            cp   a,00
ROM3:523B 20 03            jr   nz,5240
ROM3:523D 6F               ld   l,a
ROM3:523E 18 03            jr   5243
ROM3:5240 04               inc  b
ROM3:5241 18 EE            jr   5231
ROM3:5243 7D               ld   a,l
ROM3:5244 E1               pop  hl
ROM3:5245 C9               ret

3:5246

ROM3:5246 C5               push bc
ROM3:5247 D5               push de
ROM3:5248 E5               push hl
ROM3:5249 1E 00            ld   e,00
ROM3:524B FA A3 C7         ld   a,(C7A3)	;bc = Card being processed
ROM3:524E 4F               ld   c,a
ROM3:524F FA A4 C7         ld   a,(C7A4)
ROM3:5252 47               ld   b,a
ROM3:5253 CD 72 1A         call 1A72		;Checks if there is a card being processed
ROM3:5256 FE 01            cp   a,01
ROM3:5258 28 20            jr   z,527A		;If no card is being processed, jump to 3:527A
ROM3:525A 21 8E 52         ld   hl,528E
ROM3:525D CD 4F 20         call 204F		;Retrieve Card Frozen status
ROM3:5260 FE 00            cp   a,00
ROM3:5262 20 03            jr   nz,5267		;If the card is Frozen, jump to 3:5267
ROM3:5264 21 8A 52         ld   hl,528A
ROM3:5267 CD DB 19         call 19DB		;Retrieves field Column and Row
ROM3:526A 79               ld   a,c
ROM3:526B FE 00            cp   a,00
ROM3:526D 20 03            jr   nz,5272		;If not Row 0, jump to 3:5272
ROM3:526F 21 8A 52         ld   hl,528A
ROM3:5272 CD 3F 20         call 203F		;Stores owner, card existence and "stay Frozen" status flags in accumulator
ROM3:5275 06 00            ld   b,00
ROM3:5277 4F               ld   c,a
ROM3:5278 09               add  hl,bc		;hl = 0x528A + card flags, or 0x528E + card flags
ROM3:5279 5E               ld   e,(hl)
ROM3:527A CD 92 52         call 5292		;Compares Column/Row to check with current Column/Row
ROM3:527D FE 01            cp   a,01
ROM3:527F 20 04            jr   nz,5285		;If Column and Row to check ≠ current Column and Row, jump to 3:5285
ROM3:5281 7B               ld   a,e
ROM3:5282 C6 14            add  a,14
ROM3:5284 5F               ld   e,a
ROM3:5285 7B               ld   a,e		;a = (hl) + 0x14, or a = (hl)
ROM3:5286 E1               pop  hl
ROM3:5287 D1               pop  de
ROM3:5288 C1               pop  bc
ROM3:5289 C9               ret
3:528A (data array)
ROM3:528A
00
04
04
08
00
0C
0C
10

Compares Column/Row to check with current Column/Row

ROM3:5292 C5               push bc
ROM3:5293 D5               push de
ROM3:5294 1E 00            ld   e,00
ROM3:5296 CD DB 19         call 19DB		;Retrieves field Column and Row
ROM3:5299 CF               rst  08		;to 1:72D3
ROM3:529A 4D 01        => pointer 1:404D
ROM3:529B FA 00 C7         ld   a,(C700)	;Column to check
ROM3:529F B8               cp   b
ROM3:52A0 20 08            jr   nz,52AA
ROM3:52A2 FA 01 C7         ld   a,(C701)	;Row to check
ROM3:52A5 B9               cp   c
ROM3:52A6 20 02            jr   nz,52AA		;If Column and Row to check ≠ Column and Row stored in bc, e=0 and jump to 3:52AA
ROM3:52A8 1E 01            ld   e,01		;Else e=1
ROM3:52AA 7B               ld   a,e
ROM3:52AB D1               pop  de
ROM3:52AC C1               pop  bc
ROM3:52AD C9               ret

Damage Calculation

  • 0xD777-0xD7A3 - Handles Damage Calculation
ROM3:5777 F5               push af
ROM3:5778 C5               push bc
ROM3:5779 E5               push hl
ROM3:577A 3E 00            ld   a,00
ROM3:577C EA C5 C7         ld   (C7C5),a
ROM3:577F 06 00            ld   b,00
ROM3:5781 FA B2 C7         ld   a,(C7B2)	;Loads type of damage in accumulator
ROM3:5784 4F               ld   c,a
ROM3:5785 CB 21            sla  c
ROM3:5787 21 A4 57         ld   hl,57A4
ROM3:578A 09               add  hl,bc
ROM3:578B 2A               ldi  a,(hl)
ROM3:578C 66               ld   h,(hl)
ROM3:578D 6F               ld   l,a
ROM3:578E 01 93 57         ld   bc,5793
ROM3:5791 C5               push bc
ROM3:5792 E9               jp   hl		;Jump to address from 0xD7A4-0xD7B9 depending on the type of damage
ROM3:5793 FA B2 C7         ld   a,(C7B2)	;Loads type of damage in accumulator
ROM3:5796 FE 00            cp   a,00
ROM3:5798 28 06            jr   z,57A0		;If no damage, skip Life Points calculation
ROM3:579A CD 9D 5A         call 5A9D		;Copies Player's and CPU's Life Points
ROM3:579D CD C4 5A         call 5AC4		;Copies Player's and CPU's monsters IDs / Alignment / ATK / DEF
ROM3:57A0 E1               pop  hl
ROM3:57A1 C1               pop  bc
ROM3:57A2 F1               pop  af
ROM3:57A3 C9               ret  
  • 0xD7A4-0xD7B9 - Addresses called by function at 0xD777, depending on type of damage.
3:57BA - No Damage (ret)
3:57BB
3:582F
3:588E
3:58EE - Direct Attack vs CPU
3:588F
3:590F
3:5930
3:5940
3:5957 - Spell Damage vs CPU
3:596E

Direct Attack vs CPU

  • 0xD8EE-0xD90E - Player's monster attacks directly the opponent.
ROM3:58EE F5               push af
ROM3:58EF C5               push bc
ROM3:58F0 D5               push de
ROM3:58F1 CD F8 22         call 22F8		;Copies 0x00 in (C8A7)
ROM3:58F4 FA BD C7         ld   a,(C7BD)
ROM3:58F7 4F               ld   c,a
ROM3:58F8 FA BE C7         ld   a,(C7BE)
ROM3:58FB 47               ld   b,a		;Copies Player's monster ATK in register bc
ROM3:58FC CD 70 5B         call 5B70		;Inflict damage to CPU's Life Points
ROM3:58FF FE 02            cp   a,02
ROM3:5901 28 03            jr   z,5906		;If Direct Attack damage ≤ CPU's Life Points, jump to 3:5906
ROM3:5903 CD 92 5A         call 5A92		;(C7C5) | 0x08
ROM3:5906 3E 0A            ld   a,0A
ROM3:5908 CD 00 23         call 2300		;Copies 0x0A in (C8A7)
ROM3:590B D1               pop  de
ROM3:590C C1               pop  bc
ROM3:590D F1               pop  af
ROM3:590E C9               ret

Spell Damage vs CPU

ROM3:5957 F5               push af
ROM3:5958 C5               push bc
ROM3:5959 FA BF C7         ld   a,(C7BF)
ROM3:595C 4F               ld   c,a
ROM3:595D FA C0 C7         ld   a,(C7C0)
ROM3:5960 47               ld   b,a		;Copies Player's Spell Damage in register bc
ROM3:5961 CD 70 5B         call 5B70		;Inflict damage to CPU's Life Points
ROM3:5964 FE 02            cp   a,02
ROM3:5966 28 03            jr   z,596B		;If Spell Damage ≤ CPU's Life Points, jump to 3:596B
ROM3:5968 CD 92 5A         call 5A92		;(C7C5) | 0x08
ROM3:596B C1               pop  bc
ROM3:596C F1               pop  af
ROM3:596D C9               ret  

Stores damage type

  • 0xD99D-0xD9A0 - Stores damage type in 0xC7B2
ROM3:599D EA B2 C7         ld   (C7B2),a
ROM3:59A0 C9               ret

Loads Player's Monster data

  • 0xD9A1-0xD9CD - Loads Player's monster ATK / DEF / Alignment
ROM3:59A1 F5               push af
ROM3:59A2 FA B3 C6         ld   a,(C6B3)
ROM3:59A5 EA B3 C7         ld   (C7B3),a
ROM3:59A8 FA B4 C6         ld   a,(C6B4)
ROM3:59AB EA B4 C7         ld   (C7B4),a		;Stores Card ID in (C7B3)
ROM3:59AE FA B7 C6         ld   a,(C6B7)
ROM3:59B1 EA BD C7         ld   (C7BD),a
ROM3:59B4 FA B8 C6         ld   a,(C6B8)
ROM3:59B7 EA BE C7         ld   (C7BE),a		;Stores Card ATK in (C7BD)
ROM3:59BA FA B9 C6         ld   a,(C6B9)
ROM3:59BD EA C1 C7         ld   (C7C1),a
ROM3:59C0 FA BA C6         ld   a,(C6BA)
ROM3:59C3 EA C2 C7         ld   (C7C2),a		;Stores Card DEF in (C7C1)
ROM3:59C6 FA BE C6         ld   a,(C6BE)
ROM3:59C9 EA B7 C7         ld   (C7B7),a		;Stores Card Alignment in (C7B7)
ROM3:59CC F1               pop  af
ROM3:59CD C9               ret

Loads CPU's Monster data

  • 0xD9CE-0xD9FA - Loads CPU's monster ATK / DEF / Alignment
ROM3:59CE F5               push af
ROM3:59CF FA B3 C6         ld   a,(C6B3)
ROM3:59D2 EA B5 C7         ld   (C7B5),a
ROM3:59D5 FA B4 C6         ld   a,(C6B4)
ROM3:59D8 EA B6 C7         ld   (C7B6),a		;Stores Card ID in (C7B5)
ROM3:59DB FA B7 C6         ld   a,(C6B7)
ROM3:59DE EA BF C7         ld   (C7BF),a
ROM3:59E1 FA B8 C6         ld   a,(C6B8)
ROM3:59E4 EA C0 C7         ld   (C7C0),a		;Stores Card ATK in (C7BF)
ROM3:59E7 FA B9 C6         ld   a,(C6B9)
ROM3:59EA EA C3 C7         ld   (C7C3),a
ROM3:59ED FA BA C6         ld   a,(C6BA)
ROM3:59F0 EA C4 C7         ld   (C7C4),a		;Stores Card DEF in (C7C3)
ROM3:59F3 FA BE C6         ld   a,(C6BE)
ROM3:59F6 EA B8 C7         ld   (C7B8),a		;Stores Card Alignment in (C7B8)
ROM3:59F9 F1               pop  af
ROM3:59FA C9               ret

Copies Player's Life Points

  • 0xD9FB-0xDA0F - Copies Player's Life Points in (C7B9) and (C893)
ROM3:59FB F5               push af
ROM3:59FC FA C7 C5         ld   a,(C5C7)		;Player's Life Points
ROM3:59FF EA B9 C7         ld   (C7B9),a
ROM3:5A02 EA 93 C8         ld   (C893),a
ROM3:5A05 FA C8 C5         ld   a,(C5C8)
ROM3:5A08 EA BA C7         ld   (C7BA),a
ROM3:5A0B EA 94 C8         ld   (C894),a
ROM3:5A0E F1               pop  af
ROM3:5A0F C9               ret  

Copies CPU's Life Points

  • 0xD9FB-0xDA0F - Copies CPU's Life Points in (C7BB) and (C89E)
ROM3:5A10 F5               push af
ROM3:5A11 FA CA C5         ld   a,(C5CA)		;CPU's Life Points
ROM3:5A14 EA BB C7         ld   (C7BB),a
ROM3:5A17 EA 9E C8         ld   (C89E),a
ROM3:5A1A FA CB C5         ld   a,(C5CB)
ROM3:5A1D EA BC C7         ld   (C7BC),a
ROM3:5A20 EA 9F C8         ld   (C89F),a
ROM3:5A23 F1               pop  af
ROM3:5A24 C9               ret  

3:5A92

  • 0xDA92-0xDA9C - (C7C5) | 0x08
ROM3:5A92 F5               push af
ROM3:5A93 FA C5 C7         ld   a,(C7C5)
ROM3:5A96 F6 08            or   a,08
ROM3:5A98 EA C5 C7         ld   (C7C5),a
ROM3:5A9B F1               pop  af
ROM3:5A9C C9               ret

Copies Player's and CPU's Life Points

  • 0xDA9D-0xDAC3 - Copies Player's and CPU's Life Points for damage calculation
ROM3:5A9D F5               push af
ROM3:5A9E FA B9 C7         ld   a,(C7B9)
ROM3:5AA1 EA C7 C5         ld   (C5C7),a
ROM3:5AA4 EA 95 C8         ld   (C895),a
ROM3:5AA7 FA BA C7         ld   a,(C7BA)
ROM3:5AAA EA C8 C5         ld   (C5C8),a
ROM3:5AAD EA 96 C8         ld   (C896),a	;Copies Player's Life Points in (C5C7) and (C895)
ROM3:5AB0 FA BB C7         ld   a,(C7BB)
ROM3:5AB3 EA CA C5         ld   (C5CA),a
ROM3:5AB6 EA A0 C8         ld   (C8A0),a
ROM3:5AB9 FA BC C7         ld   a,(C7BC)
ROM3:5ABC EA CB C5         ld   (C5CB),a
ROM3:5ABF EA A1 C8         ld   (C8A1),a	;Copies CPU's Life Points in (C5CA) and (C8A0)
ROM3:5AC2 F1               pop  af
ROM3:5AC3 C9               ret

Copies Player's and CPU's Monsters data

  • 0xDAC4-DB1A - Copies Player's and CPU's monsters IDs / Alignment / ATK / DEF
ROM3:5AC4 F5               push af
ROM3:5AC5 FA B3 C7         ld   a,(C7B3)
ROM3:5AC8 EA 91 C8         ld   (C891),a
ROM3:5ACB FA B4 C7         ld   a,(C7B4)
ROM3:5ACE EA 92 C8         ld   (C892),a	;Copies Player's monster ID in (C891)
ROM3:5AD1 FA B7 C7         ld   a,(C7B7)
ROM3:5AD4 EA 9B C8         ld   (C89B),a	;Copies Player's monster Alignment in (C89B)
ROM3:5AD7 FA BD C7         ld   a,(C7BD)
ROM3:5ADA EA 97 C8         ld   (C897),a
ROM3:5ADD FA BE C7         ld   a,(C7BE)
ROM3:5AE0 EA 98 C8         ld   (C898),a	;Copies Player's monster ATK in (C897)
ROM3:5AE3 FA C1 C7         ld   a,(C7C1)
ROM3:5AE6 EA 99 C8         ld   (C899),a
ROM3:5AE9 FA C2 C7         ld   a,(C7C2)
ROM3:5AEC EA 9A C8         ld   (C89A),a	;Copies Player's monster DEF in (C897)
ROM3:5AEF FA B5 C7         ld   a,(C7B5)
ROM3:5AF2 EA 9C C8         ld   (C89C),a
ROM3:5AF5 FA B6 C7         ld   a,(C7B6)
ROM3:5AF8 EA 9D C8         ld   (C89D),a	;Copies CPU's monster ID in (C89C)
ROM3:5AFB FA B8 C7         ld   a,(C7B8)
ROM3:5AFE EA A6 C8         ld   (C8A6),a	;Copies CPU's monster Alignment in (C8A6)
ROM3:5B01 FA BF C7         ld   a,(C7BF)
ROM3:5B04 EA A2 C8         ld   (C8A2),a
ROM3:5B07 FA C0 C7         ld   a,(C7C0)
ROM3:5B0A EA A3 C8         ld   (C8A3),a	;Copies CPU's monster ATK in (C8A2)
ROM3:5B0D FA C3 C7         ld   a,(C7C3)
ROM3:5B10 EA A4 C8         ld   (C8A4),a
ROM3:5B13 FA C4 C7         ld   a,(C7C4)
ROM3:5B16 EA A5 C8         ld   (C8A5),a	;Copies CPU's monster DEF in (C8A4)
ROM3:5B19 F1               pop  af
ROM3:5B1A C9               ret

Inflict damage to CPU's Life Points

  • 0xDB70-0xDB90 - Inflict damage to CPU's Life Points
ROM3:5B70 C5               push bc
ROM3:5B71 D5               push de
ROM3:5B72 FA BB C7         ld   a,(C7BB)
ROM3:5B75 5F               ld   e,a
ROM3:5B76 FA BC C7         ld   a,(C7BC)
ROM3:5B79 57               ld   d,a		;Copies CPU's Life Points in register de
ROM3:5B7A CD 92 14         call 1492		;Substracts damage from CPU's Life Points
ROM3:5B7D 7B               ld   a,e
ROM3:5B7E FE 00            cp   a,00
ROM3:5B80 20 03            jr   nz,5B85
ROM3:5B82 01 00 00         ld   bc,0000		;If CPU's Life Points are negative, set them to 0 instead
ROM3:5B85 79               ld   a,c
ROM3:5B86 EA BB C7         ld   (C7BB),a
ROM3:5B89 78               ld   a,b
ROM3:5B8A EA BC C7         ld   (C7BC),a	;Copies updated CPU's Life Points in (C7BB)
ROM3:5B8D 7B               ld   a,e
ROM3:5B8E D1               pop  de
ROM3:5B8F C1               pop  bc
ROM3:5B90 C9               ret  

Stores damage type and Life Points

  • 0xDB91-0xDB9E - Store damage type, Player's Life Points and CPU's Life Points
ROM3:5B91 F5               push af
ROM3:5B92 3E 00            ld   a,00
ROM3:5B94 CD 9D 59         call 599D		;Store damage type in (C7B2)
ROM3:5B97 CD FB 59         call 59FB		;Store Player's Life Points in (C7B9) and (C893)
ROM3:5B9A CD 10 5A         call 5A10		;Store CPU's Life Points in (C7BB) and (C89E)
ROM3:5B9D F1               pop  af
ROM3:5B9E C9               ret

Stores direct damage or healing

  • 0xDC77-0xDCB6 - Stores direct attack ATK, direct damage, or healing in (C7BD) or (C7BF)
ROM3:5C77 F5               push af		/* Player's Monster vs CPU's Monster */
ROM3:5C78 79               ld   a,c
ROM3:5C79 EA BD C7         ld   (C7BD),a
ROM3:5C7C 78               ld   a,b
ROM3:5C7D EA BE C7         ld   (C7BE),a
ROM3:5C80 3E 07            ld   a,07		;Type of Damage
ROM3:5C82 CD 9D 59         call 599D		;Stores damage type in (C7B2)
ROM3:5C85 F1               pop  af
ROM3:5C86 C9               ret  
ROM3:5C87 F5               push af		/* Player's Direct Attack */
ROM3:5C88 79               ld   a,c
ROM3:5C89 EA BD C7         ld   (C7BD),a
ROM3:5C8C 78               ld   a,b
ROM3:5C8D EA BE C7         ld   (C7BE),a
ROM3:5C90 3E 08            ld   a,08		;Type of Damage
ROM3:5C92 CD 9D 59         call 599D		;Stores damage type in (C7B2)
ROM3:5C95 F1               pop  af
ROM3:5C96 C9               ret  
ROM3:5C97 F5               push af		/* CPU's Direct Attack */
ROM3:5C98 79               ld   a,c
ROM3:5C99 EA BF C7         ld   (C7BF),a
ROM3:5C9C 78               ld   a,b
ROM3:5C9D EA C0 C7         ld   (C7C0),a
ROM3:5CA0 3E 0A            ld   a,0A		;Type of Damage
ROM3:5CA2 CD 9D 59         call 599D		;Stores damage type in (C7B2)
ROM3:5CA5 F1               pop  af
ROM3:5CA6 C9               ret  
ROM3:5CA7 F5               push af		/* CPU's Monster vs Player's Monster, or Spell Damage */
ROM3:5CA8 79               ld   a,c
ROM3:5CA9 EA BF C7         ld   (C7BF),a
ROM3:5CAC 78               ld   a,b
ROM3:5CAD EA C0 C7         ld   (C7C0),a
ROM3:5CB0 3E 09            ld   a,09		;Type of Damage
ROM3:5CB2 CD 9D 59         call 599D		;Stores damage type in (C7B2)
ROM3:5CB5 F1               pop  af
ROM3:5CB6 C9               ret

Checks if SoRL restrains Player, then does Damage Calculation

  • 0xDCB7-0xDCC8 -
ROM3:5CB7 F5               push af
ROM3:5CB8 FA B1 C7         ld   a,(C7B1)       ;a = Current Menu ID
ROM3:5CBB FE 02            cp   a,02
ROM3:5CBD 20 05            jr   nz,5CC4        ;if(Menu ID ≠ Versus), jump to 3:5CC4
ROM3:5CBF CD 08 5D         call 5D08
ROM3:5CC2 18 03            jr   5CC7
ROM3:5CC4 CD C9 5C         call 5CC9           ;checks if SoRL restrains Player, then does Damage Calculation
ROM3:5CC7 F1               pop  af
ROM3:5CC8 C9               ret

Checks if Attack is possible

  • 0xDCC9-0xDCF3 -
ROM3:5CC9 F5               push af
ROM3:5CCA C5               push bc
ROM3:5CCB CD 9A 2C         call 2C9A		;Checks Swords of Revealing Light
ROM3:5CCE FE 00            cp   a,00
ROM3:5CD0 20 0B            jr   nz,5CDD		;If Swords of Revealing Light is not active, jump to 3:5CDD
ROM3:5CD2 CD 68 41         call 4168
ROM3:5CD5 CD 8E 48         call 488E
ROM3:5CD8 CD AD 12         call 12AD
ROM3:5CDB 18 28            jr   5D05
ROM3:5CDD FA D1 C8         ld   a,(C8D1)
ROM3:5CE0 FE 00            cp   a,00
ROM3:5CE2 28 18            jr   z,5CFC		;If this is the first turn (attack is disabled), jump to 3:5CFC
ROM3:5CE4 CD 77 57         call 5777		;Damage Calculation
ROM3:5CE7 CD 54 5D         call 5D54		;Win condition : Life Points
ROM3:5CEA CD 58 11         call 1158		;Waits for graphics being updated
ROM3:5CED CD 58 11         call 1158		;Waits for graphics being updated
ROM3:5CF0 CD 58 11         call 1158		;Waits for graphics being updated
ROM3:5CF3 CF               rst  08

3:5CF9

  • 0xDCF9-0xDD07 -
ROM3:5CF9 CD 59 2A         call 2A59		;Duel Music subroutine
ROM3:5CFC CD 68 41         call 4168
ROM3:5CFF CD 8E 48         call 488E
ROM3:5D02 CD AD 12         call 12AD
ROM3:5D05 C1               pop  bc
ROM3:5D06 F1               pop  af
ROM3:5D07 C9               ret

3:5D08 (Checks SoRL, and ?)

  • 0xDD08-0xDD29 -
ROM3:5D08 F5               push af
ROM3:5D09 C5               push bc
ROM3:5D0A CD 9A 2C         call 2C9A		;Checks Swords of Revealing Light
ROM3:5D0D FE 00            cp   a,00
ROM3:5D0F 20 0B            jr   nz,5D1C
ROM3:5D11 CD 68 41         call 4168
ROM3:5D14 CD 8E 48         call 488E
ROM3:5D17 CD AD 12         call 12AD
ROM3:5D1A 18 20            jr   5D3C
ROM3:5D1C FA D1 C8         ld   a,(C8D1)
ROM3:5D1F FE 00            cp   a,00
ROM3:5D21 28 09            jr   z,5D2C
ROM3:5D23 CD 77 57         call 5777		;Damage Calculation
ROM3:5D26 CD 54 5D         call 5D54		;Win condition : Life Points
ROM3:5D29 CF               rst  08

3:5D4A (Check win condition : Life Points)

ROM3:5D4A CD 77 57         call 5777		;Damage Calculation
ROM3:5D4D CD 54 5D         call 5D54		;Win condition : Life Points
ROM3:5D50 CD 68 41         call 4168
ROM3:5D53 C9               ret

Win conditions

  • 0xDD54-0xDD98 - Win condition : Life Points
ROM3:5D54 F5               push af
ROM3:5D55 FA C5 C7         ld   a,(C7C5)	;(C7C5 is or'd with 0x08 when doing more damage than CPU's remaining Life Points)
ROM3:5D58 E6 01            and  a,01
ROM3:5D5A 28 0B            jr   z,5D67		;Jump to 3:5D67 if (C7C5)&1=0
ROM3:5D5C FA C6 C7         ld   a,(C7C6)
ROM3:5D5F 47               ld   b,a
ROM3:5D60 FA C7 C7         ld   a,(C7C7)
ROM3:5D63 4F               ld   c,a
ROM3:5D64 CD 6D 20         call 206D		;Remove selected card from the field
ROM3:5D67 FA C5 C7         ld   a,(C7C5)
ROM3:5D6A E6 02            and  a,02
ROM3:5D6C 28 0B            jr   z,5D79		;If((C7C5) && 2 == 0), jump to 3:5D79
ROM3:5D6E FA C8 C7         ld   a,(C7C8)
ROM3:5D71 47               ld   b,a
ROM3:5D72 FA C9 C7         ld   a,(C7C9)
ROM3:5D75 4F               ld   c,a
ROM3:5D76 CD 86 20         call 2086		;Remove selected card from the field
ROM3:5D79 FA C5 C7         ld   a,(C7C5)
ROM3:5D7C E6 04            and  a,04
ROM3:5D7E 28 08            jr   z,5D88		;If((C7C5) && 4 == 0), jump to 3:5D88
ROM3:5D80 CD 63 24         call 2463		;Player loses
ROM3:5D83 3E 01            ld   a,01
ROM3:5D85 EA 04 C7         ld   (C704),a
ROM3:5D88 FA C5 C7         ld   a,(C7C5)
ROM3:5D8B E6 08            and  a,08
ROM3:5D8D 28 08            jr   z,5D97		;If (opponent's Life Points > 0), jump to 3:5D97
ROM3:5D8F CD 6B 24         call 246B		;Player wins
ROM3:5D92 3E 01            ld   a,01
ROM3:5D94 EA 04 C7         ld   (C704),a
ROM3:5D97 F1               pop  af
ROM3:5D98 C9               ret

Trap Cards handling

Put Player's Trap card into play

ROM3:5E9F F5               push af
ROM3:5EA0 C5               push bc
ROM3:5EA1 FA 00 C7         ld   a,(C700)	;Column to check
ROM3:5EA4 47               ld   b,a
ROM3:5EA5 0E 03            ld   c,03		;Row 3
ROM3:5EA7 CD D0 19         call 19D0		;Column (C700), Row 3
ROM3:5EAA CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:5EAD 01 03 00         ld   bc,0003
ROM3:5EB0 CD D0 19         call 19D0		;Column 0, Row 3
ROM3:5EB3 CD 25 20         call 2025		;Hide Player's Card, reset Level
ROM3:5EB6 CD FB 19         call 19FB		;Updates selected card ID and status
ROM3:5EB9 FA 00 C7         ld   a,(C700)	;Column of the card in the hand
ROM3:5EBC 47               ld   b,a
ROM3:5EBD 0E 03            ld   c,03		;Row 3
ROM3:5EBF CD D0 19         call 19D0		;Column (C700), Row 3
ROM3:5EC2 CD E6 19         call 19E6		;Removes card from the hand
ROM3:5EC5 C1               pop  bc
ROM3:5EC6 F1               pop  af
ROM3:5EC7 C9               ret

Remove Player's Trap Card

ROM3:5EC8 F5               push af
ROM3:5EC9 C5               push bc
ROM3:5ECA 01 03 00         ld   bc,0003
ROM3:5ECD CD D0 19         call 19D0		;Column 0, Row 3
ROM3:5ED0 CD E6 19         call 19E6		;Removes card from the field
ROM3:5ED3 C1               pop  bc
ROM3:5ED4 F1               pop  af
ROM3:5ED5 C9               ret  

Remove CPU's Trap Card

ROM3:5ED6 F5               push af
ROM3:5ED7 C5               push bc
ROM3:5ED8 01 00 05         ld   bc,0500
ROM3:5EDB CD D0 19         call 19D0		;Column 5, Row 0
ROM3:5EDE CD E6 19         call 19E6		;Removes card from the field
ROM3:5EE1 C1               pop  bc
ROM3:5EE2 F1               pop  af
ROM3:5EE3 C9               ret

Fusion Summon

  • 0xDEE4-0xDF19 - Fusion Summon
ROM3:5EE4 F5               push af
ROM3:5EE5 C5               push bc
ROM3:5EE6 FA 00 C7         ld   a,(C700)	;Column to check
ROM3:5EE9 47               ld   b,a
ROM3:5EEA FA 01 C7         ld   a,(C701)	;Row to check
ROM3:5EED 4F               ld   c,a
ROM3:5EEE CD D0 19         call 19D0		;Update Column and Row
ROM3:5EF1 FA 8F C8         ld   a,(C88F)
ROM3:5EF4 EA A3 C7         ld   (C7A3),a
ROM3:5EF7 FA 90 C8         ld   a,(C890)
ROM3:5EFA EA A4 C7         ld   (C7A4),a	;Copy Fusion Monster ID in (C7A3) (Card being processed)
ROM3:5EFD CD 25 20         call 2025		;Hide Player's Card, reset Level
ROM3:5F00 CD DF 1F         call 1FDF		;Freezes Card
ROM3:5F03 CD 12 50         call 5012		;Stores monster ID in bc, and reveal monster card
ROM3:5F06 CD 2B 1A         call 1A2B		;Remove card played from hand ?
ROM3:5F09 FA 02 C7         ld   a,(C702)
ROM3:5F0C 47               ld   b,a
ROM3:5F0D FA 03 C7         ld   a,(C703)
ROM3:5F10 4F               ld   c,a
ROM3:5F11 CD D0 19         call 19D0		;Update Column and Row
ROM3:5F14 CD E6 19         call 19E6		;Remove selected card from the field
ROM3:5F17 C1               pop  bc
ROM3:5F18 F1               pop  af
ROM3:5F19 C9               ret

Removes a card from Player's Hand

ROM3:5F7F F5               push af
ROM3:5F80 C5               push bc
ROM3:5F81 FA 00 C7         ld   a,(C700)		;Cursor Column
ROM3:5F84 47               ld   b,a
ROM3:5F85 0E 03            ld   c,03
ROM3:5F87 CD D0 19         call 19D0		;Column (C700), Row 3
ROM3:5F8A CD E6 19         call 19E6		;Remove card from selected card zone on the field
ROM3:5F8D CF               rst  08
...
ROM3:5F90 C1               pop bc
ROM3:5F91 F1               pop af
ROM3:5F92 C9               ret

Removes selected card

ROM3:5F93 F5               push af
ROM3:5F94 C5               push bc
ROM3:5F95 FA 02 C7         ld   a,(C702)		;Selected Column
ROM3:5F98 47               ld   b,a
ROM3:5F99 0E 03            ld   c,03
ROM3:5F9B CD D0 19         call 19D0		;Column (C702), Row 3
ROM3:5F9E CD E6 19         call 19E6		;Remove card from selected card zone on the field
ROM3:5FA1 C1               pop  bc
ROM3:5FA2 F1               pop  af
ROM3:5FA3 C9               ret

List of Magic / Trap / Ritual effect IDs

  • 0xDFA5-0xE07C - List of Magic / Trap / Ritual effect IDs, 0x2F and 0x36 are special values

3:612C

  • 0xE12C-0xE12F -
ROM3:612C CD 68 41         call 4168
ROM3:612F CF               rst  08

Player's card effects

No effect (ret)

ROM3:6181 C9               ret  

3:6182

ROM3:6182 C5               push bc
ROM3:6183 CD 99 2A         call 2A99
ROM3:6186 CF               rst  08
ROM3:6187 5D 01       => Pointer 01:405D
ROM3:6189 C1               pop bc
ROM3:618A C9               ret

3:618B

ROM3:618B CD 99 2A         call 2A99
ROM3:618E CF               rst  08
ROM3:618F 5D 01       => Pointer 01:405D
ROM3:6191 C9               ret

3:6192

ROM3:6192 CD 14 7B         call 7B14
ROM3:6195 3E 02            ld   a,02
ROM3:6197 EA 4C C8         ld   (C84C),a
ROM3:619A 3E 01            ld   a,01
ROM3:619C EA AF C8         ld   (C8AF),a
ROM3:619F FA 8B C8         ld   a,(C88B)
ROM3:61A2 EA A9 C8         ld   (C8A9),a
ROM3:61A5 FA 8C C8         ld   a,(C88C)
ROM3:61A8 EA AA C8         ld   (C8AA),a
ROM3:61AB FA 8D C8         ld   a,(C88D)
ROM3:61AE EA AB C8         ld   (C8AB),a
ROM3:61B1 FA 8E C8         ld   a,(C88E)
ROM3:61B4 EA AC C8         ld   (C8AC),a
ROM3:61B7 FA 8F C8         ld   a,(C88F)
ROM3:61BA EA AD C8         ld   (C8AD),a
ROM3:61BD FA 90 C8         ld   a,(C890)
ROM3:61C0 EA AE C8         ld   (C8AE),a
ROM3:61C3 CF               rst  08

Summon Monster card from hand

ROM3:61CA F5               push af
ROM3:61CB CD 42 21         call 2142		;Fusion subroutine
ROM3:61CE FE 00            cp   a,00
ROM3:61D0 20 05            jr   nz,61D7		;If the Fusion failed, jump to 3:61D7
ROM3:61D2 CD 92 61         call 6192
ROM3:61D5 18 0F            jr   61E6
ROM3:61D7 CD A9 2A         call 2AA9		;SE: Failed Fusion
ROM3:61DA CD 3E 5E         call 5E3E
ROM3:61DD CD 14 7B         call 7B14
ROM3:61E0 CD 91 79         call 7991
ROM3:61E3 CD AD 79         call 79AD
ROM3:61E6 F1               pop  af
ROM3:61E7 C9               ret

Field Spell

Forest
  • 0xE1E8-0xE1F8 - Forest
ROM3:61E8 F5               push af
ROM3:61E9 CD 38 41         call 4138		;Change the Field to Forest
ROM3:61EC CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:61EF CD 68 41         call 4168
ROM3:61F2 3E 1D            ld   a,1D
ROM3:61F4 CF               rst  08
ROM3:61F5 0B 06        => Pointer 06:400B (loads Sound Effect and Text 0x1D)
ROM3:61F7 F1               pop  af
ROM3:61F8 C9               ret  
Wasteland
  • 0xE1F9-0xE209 - Wasteland
ROM3:61F9 F5               push af
ROM3:61FA CD 40 41         call 4140		;Change the Field to Wasteland
ROM3:61FD CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6200 CD 68 41         call 4168
ROM3:6203 3E 1E            ld   a,1E
ROM3:6205 CF               rst  08
ROM3:6206 0B 06        => Pointer 06:400B (loads Sound Effect and Text 0x1E)
ROM3:6208 F1               pop  af
ROM3:6209 C9               ret  
Mountain
  • 0xE20A-0xE21A - Mountain
ROM3:620A F5               push af
ROM3:620B CD 48 41         call 4148		;Change the Field to Mountain
ROM3:620E CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6211 CD 68 41         call 4168
ROM3:6214 3E 1F            ld   a,1F
ROM3:6216 CF               rst  08
ROM3:6217 0B 06        => Pointer 06:400B (loads Sound Effect and Text 0x1F)
ROM3:6219 F1               pop  af
ROM3:621A C9               ret  
Sogen
  • 0xE21B-0xE22B - Sogen
ROM3:621B F5               push af
ROM3:621C CD 50 41         call 4150		;Change the Field to Sogen
ROM3:621F CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6222 CD 68 41         call 4168
ROM3:6225 3E 20            ld   a,20
ROM3:6227 CF               rst  08
ROM3:6228 0B 06        => Pointer 06:400B (loads Sound Effect and Text 0x20)
ROM3:622A F1               pop  af
ROM3:622B C9               ret  
Umi
  • 0xE22C-0xE23C - Umi
ROM3:622C F5               push af
ROM3:622D CD 58 41         call 4158		;Change the Field to Umi
ROM3:6230 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6233 CD 68 41         call 4168
ROM3:6236 3E 21            ld   a,21
ROM3:6238 CF               rst  08
ROM3:6239 0B 06        => Pointer 06:400B (loads Sound Effect and Text 0x21)
ROM3:623B F1               pop  af
ROM3:623C C9               ret  
Yami
  • 0xE23D-0xE24D - Yami
ROM3:623D F5               push af
ROM3:623E CD 60 41         call 4160		;Change the Field to Yami
ROM3:6241 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6244 CD 68 41         call 4168
ROM3:6247 3E 22            ld   a,22
ROM3:6249 CF               rst  08
ROM3:624A 0B 06        => Pointer 06:400B (loads Sound Effect and Text 0x22)
ROM3:624C F1               pop  af
ROM3:624D C9               ret

Healing Spell

Mooyan Curry
  • 0xE24E-0xE27B - Mooyan Curry
ROM3:624E F5               push af
ROM3:624F C5               push bc
ROM3:6250 CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:6253 01 00 02         ld   bc,0200		;200 LP
ROM3:6256 CF               rst  08
ROM3:6257 0D 0A       => Pointer 0A:400D
ROM3:6259 FE 00            cp   a,00
ROM3:625B 20 10            jr   nz,626D
ROM3:625D CD 77 5C         call 5C77		;Store damage or healing
ROM3:6260 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6263 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:6266 3E 25            ld   a,25
ROM3:6268 CF               rst  08		;Loads Sound Effect and Text 0x25
ROM3:6269 0B 06       => Pointer 06:400B
ROM3:626B 18 0C            jr   6279
ROM3:626D CF               rst  08
ROM3:626E 0F 0A       => Pointer 0A:400F
ROM3:6270 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6273 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:6276 CF               rst  08
ROM3:6277 07 06       => Pointer 06:4007
ROM3:6279 C1               pop  bc
ROM3:627A F1               pop  af
ROM3:627B C9               ret  
Red Medicine
  • 0xE27C-0xE2A9 - Red Medicine
ROM3:627C F5               push af
ROM3:627D C5               push bc
ROM3:627E CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:6281 01 00 05         ld   bc,0500		;500 LP
ROM3:6284 CF               rst  08
ROM3:6285 0D 0A       => Pointer 0A:400D
ROM3:6287 FE 00            cp   a,00
ROM3:6289 20 10            jr   nz,629B
ROM3:628B CD 77 5C         call 5C77		;Store damage or healing
ROM3:628E CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6291 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:6294 3E 26            ld   a,26
ROM3:6296 CF               rst  08		;Loads Sound Effect and Text 0x26
ROM3:6297 0B 06       => Pointer 06:400B
ROM3:6299 18 0C            jr   62A7
ROM3:629B CF               rst  08
ROM3:629C 0F 0A       => Pointer 0A:400F
ROM3:629E CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:62A1 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:62A4 CF               rst  08
ROM3:63A5 07 06       => Pointer 06:4007
ROM3:63A7 C1               pop  bc
ROM3:62A8 F1               pop  af
ROM3:62A9 C9               ret  
Goblin's Secret Remedy
  • 0xE2AA-0xE2D7 - Goblin's Secret Remedy
ROM3:62AA F5               push af
ROM3:62AB C5               push bc
ROM3:62AC CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:62AF 01 00 10         ld   bc,1000		;1000 LP
ROM3:62B2 CF               rst  08
ROM3:62B3 0D 0A       => Pointer 0A:400D
ROM3:62B5 FE 00            cp   a,00
ROM3:62B7 20 10            jr   nz,62C9
ROM3:62B9 CD 77 5C         call 5C77		;Store damage or healing
ROM3:62BC CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:62BF CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:62C2 3E 27            ld   a,27
ROM3:62C4 CF               rst  08		;Loads Sound Effect and Text 0x27
ROM3:62C5 0B 06       => Pointer 06:400B
ROM3:62C7 18 0C            jr   62D5
ROM3:62C9 CF               rst  08
ROM3:62CA 0F 0A       => Pointer 0A:400F
ROM3:62CC CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:62CF CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:62D2 CF               rst  08
ROM3:62D3 07 06       => Pointer 06:4007
ROM3:62D5 C1               pop  bc
ROM3:62D6 F1               pop  af
ROM3:62D7 C9               ret  
Soul of the Pure
  • 0xE2D8-0xE305 - Soul of the Pure
ROM3:62D8 F5               push af
ROM3:62D9 C5               push bc
ROM3:62DA CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:62DD 01 00 20         ld   bc,2000		;2000 LP
ROM3:62E0 CF               rst  08
ROM3:62E1 0D 0A       => Pointer 0A:400D
ROM3:62E3 FE 00            cp   a,00
ROM3:62E5 20 10            jr   nz,62F7
ROM3:62E7 CD 77 5C         call 5C77		;Store damage or healing
ROM3:62EA CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:62ED CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:62F0 3E 28            ld   a,28
ROM3:62F2 CF               rst  08		;Loads Sound Effect and Text 0x28
ROM3:62F3 0B 06       => Pointer 06:400B
ROM3:62F5 18 0C            jr   6303
ROM3:62F7 CF               rst  08
ROM3:62F8 0F 0A       => Pointer 0A:400F
ROM3:62FA CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:62FD CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:6300 CF               rst  08
ROM3:6301 07 06       => Pointer 06:4007
ROM3:6303 C1               pop  bc
ROM3:6304 F1               pop  af
ROM3:6305 C9               ret  
Dian Keto the Cure Master
  • 0xE306-0xE333 - Dian Keto the Cure Master
ROM3:6306 F5               push af
ROM3:6307 C5               push bc
ROM3:6308 CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:630B 01 00 50         ld   bc,5000		;5000 LP
ROM3:630E CF               rst  08
ROM3:630F 0D 0A       => Pointer 0A:400D
ROM3:6311 FE 00            cp   a,00
ROM3:6313 20 10            jr   nz,6325
ROM3:6315 CD 77 5C         call 5C77		;Store damage or healing
ROM3:6318 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:631B CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:631E 3E 29            ld   a,29
ROM3:6320 CF               rst  08		;Loads Sound Effect and Text 0x29
ROM3:6321 0B 06       => Pointer 06:400B
ROM3:6323 18 0C            jr   6331
ROM3:6325 CF               rst  08
ROM3:6326 0F 0A       => Pointer 0A:400F
ROM3:6328 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:632B CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:632E CF               rst  08
ROM3:632F 07 06       => Pointer 06:4007
ROM3:6331 C1               pop  bc
ROM3:6332 F1               pop  af
ROM3:6333 C9               ret

Damage Spell

Sparks
  • 0xE334-0xE361 - Sparks
ROM3:6334 F5               push af
ROM3:6335 C5               push bc
ROM3:6336 CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:6339 01 50 00         ld   bc,0050		;50 damage
ROM3:633C CF               rst  08
ROM3:633D 0D 0A       => Pointer 0A:400D
ROM3:633F FE 00            cp   a,00
ROM3:6341 20 10            jr   nz,6353
ROM3:6343 CD A7 5C         call 5CA7		;Spell Damage
ROM3:6346 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6349 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:634C 3E 2A            ld   a,2A
ROM3:634E CF               rst  08		;Loads Sound Effect and Text 0x2A
ROM3:634F 0B 06       => Pointer 06:400B
ROM3:6351 18 0C            jr   635F
ROM3:6353 CF               rst  08
ROM3:6354 0F 0A       => Pointer 0A:400F
ROM3:6356 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6359 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:635C CF               rst  08
ROM3:635D 07 06      => Pointer 06:4007
ROM3:635F C1               pop  bc
ROM3:6360 F1               pop  af
ROM3:6361 C9               ret
Hinotama
  • 0xE362-0xE391 - Hinotama
ROM3:6362 F5               push af
ROM3:6363 C5               push bc
ROM3:6364 D5               push de
ROM3:6365 CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:6368 01 00 01         ld   bc,0100		;100 damage
ROM3:636B CF               rst  08
ROM3:636C 0D 0A       => Pointer 0A:400D
ROM3:636E FE 00            cp   a,00
ROM3:6370 20 10            jr   nz,6382
ROM3:6372 CD A7 5C         call 5CA7		;Spell Damage
ROM3:6375 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6378 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:637B 3E 2B            ld   a,2B
ROM3:637D CF               rst  08		;Loads Sound Effect and Text 0x2B
ROM3:637E 0B 06       => Pointer 06:400B
ROM3:637F 18 0C            jr   638D
ROM3:6382 CF               rst  08
ROM3:6383 0F 0A       => Pointer 0A:400F
ROM3:6385 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6388 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:638B CF               rst  08
ROM3:638C 07 06       => Pointer 06:4007
ROM3:638D D1               pop  de
ROM3:638F C1               pop  bc
ROM3:6390 F1               pop  af
ROM3:6391 C9               ret  
Final Flame
  • 0xE392-0xE3C1 - Final Flame
ROM3:6392 F5               push af
ROM3:6393 C5               push bc
ROM3:6394 D5               push de
ROM3:6395 CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:6398 01 00 02         ld   bc,0200		;200 damage
ROM3:639B CF               rst  08
ROM3:639C 0D 0A       => Pointer 0A:400D
ROM3:639E FE 00            cp   a,00
ROM3:63A0 20 10            jr   nz,63B2
ROM3:63A2 CD A7 5C         call 5CA7		;Spell Damage
ROM3:63A5 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:63A8 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:63AB 3E 2C            ld   a,2C
ROM3:63AD CF               rst  08		;Loads Sound Effect and Text 0x2C
ROM3:63AE 0B 06       => Pointer 06:400B
ROM3:63AF 18 0C            jr   63BD
ROM3:63B2 CF               rst  08
ROM3:63B3 0F 0A       => Pointer 0A:400F
ROM3:63B5 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:63B8 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:63BB CF               rst  08
ROM3:63BC 07 06       => Pointer 06:4007
ROM3:63BD D1               pop  de
ROM3:63BF C1               pop  bc
ROM3:63C0 F1               pop  af
ROM3:63C1 C9               ret  
Ookazi
  • 0xE3C2-0xE3F1 - Ookazi
ROM3:63C2 F5               push af
ROM3:63C3 C5               push bc
ROM3:63C4 D5               push de
ROM3:63C5 CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:63C8 01 00 05         ld   bc,0500		;500 damage
ROM3:63CB CF               rst  08
ROM3:63CC 0D 0A       => Pointer 0A:400D
ROM3:63CE FE 00            cp   a,00
ROM3:63D0 20 10            jr   nz,63E2
ROM3:63D2 CD A7 5C         call 5CA7		;Spell Damage
ROM3:63D5 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:63D8 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:63DB 3E 2D            ld   a,2D
ROM3:63DD CF               rst  08		;Loads Sound Effect and Text 0x2D
ROM3:63DE 0B 06       => Pointer 06:400B
ROM3:63DF 18 0C            jr   63ED
ROM3:63E2 CF               rst  08
ROM3:63E3 0F 0A       => Pointer 0A:400F
ROM3:63E5 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:63E8 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:63EB CF               rst  08
ROM3:63EC 07 06       => Pointer 06:4007
ROM3:63ED D1               pop  de
ROM3:63EF C1               pop  bc
ROM3:63F0 F1               pop  af
ROM3:63F1 C9               ret  
Tremendous Fire
  • 0xE3F2-0xE421 - Tremendous Fire
ROM3:63F2 F5               push af
ROM3:63F3 C5               push bc
ROM3:63F4 D5               push de
ROM3:63F5 CD 91 5B         call 5B91		;Store damage type, Player's Life Points and CPU's Life Points
ROM3:63F8 01 00 10         ld   bc,1000		;1000 damage
ROM3:63FB CF               rst  08
ROM3:63FC 0D 0A       => Pointer 0A:400D
ROM3:63FE FE 00            cp   a,00
ROM3:6400 20 10            jr   nz,6412
ROM3:6402 CD A7 5C         call 5CA7		;Spell Damage
ROM3:6405 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6408 CD 4A 5D         call 5D4A		;Supposed to test Win condition : Life Points (but doesn't due to a glitch)
ROM3:640B 3E 2E            ld   a,2E
ROM3:640D CF               rst  08		;Loads Sound Effect and Text 0x2E
ROM3:640E 0B 06       => Pointer 06:400B
ROM3:640F 18 0C            jr   641D
ROM3:6412 CF               rst  08
ROM3:6413 0F 0A       => Pointer 0A:400F
ROM3:6415 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6418 CD 4A 5D         call 5D4A		;Win condition : Life Points
ROM3:641B CF               rst  08
ROM3:641C 07 06       => Pointer 06:4007
ROM3:641D D1               pop  de
ROM3:641F C1               pop  bc
ROM3:6420 F1               pop  af
ROM3:6421 C9               ret

Dark Hole

  • 0xE422-0xE454 - Dark Hole effect
ROM3:6422 F5               push af
ROM3:6423 C5               push bc
ROM3:6424 D5               push de
ROM3:6425 E5               push hl
ROM3:6426 01 01 00         ld   bc,0001
ROM3:6429 78               ld   a,b
ROM3:642A FE 05            cp   a,05
ROM3:642C 30 06            jr   nc,6434
ROM3:642E CD 86 20         call 2086		;Remove selected card from the field
ROM3:6431 04               inc  b
ROM3:6432 18 F5            jr   6429		;Loop 5 times
ROM3:6434 01 02 01         ld   bc,0102
ROM3:6437 78               ld   a,b
ROM3:6438 FE 06            cp   a,06
ROM3:643A 30 06            jr   nc,6442
ROM3:643C CD 6D 20         call 206D		;Remove selected card from the field
ROM3:643F 04               inc  b
ROM3:6440 18 F5            jr   6437		;Loop 5 times
ROM3:6442 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6445 CD F1 2A         call 2AF1		;Does nothing, should call the Sound Effect 0x1B but it has been removed
ROM3:6448 CD 68 41         call 4168
ROM3:644B 3E 23            ld   a,23
ROM3:644D CF               rst  08
ROM3:644E 0B 06       => Pointer 06:400B (loads Sound Effect and Text 0x23)
ROM3:6450 F1               pop  hl
ROM3:6451 D1               pop  de
ROM3:6452 C1               pop  bc
ROM3:6453 F1               pop  af
ROM3:6454 C9               ret

Raigeki

  • 0xE455-0xE492 - Raigeki effect
ROM3:6455 F5               push af
ROM3:6456 C5               push bc
ROM3:6457 D5               push de
ROM3:6458 E5               push hl
ROM3:6459 CF               rst  08
ROM3:645A 0D               dec  c
ROM3:645B 0A               ld   a,(bc)
ROM3:645C FE 00            cp   a,00
ROM3:645E 20 1F            jr   nz,647F
ROM3:6460 0E 01            ld   c,01
ROM3:6462 06 00            ld   b,00
ROM3:6464 78               ld   a,b
ROM3:6465 FE 05            cp   a,05
ROM3:6467 30 06            jr   nc,646F
ROM3:6469 CD 86 20         call 2086		;Remove selected card from the field
ROM3:646C 04               inc  b
ROM3:646D 18 F5            jr   6464		;Loop 5 times
ROM3:646F CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6472 CD F1 2A         call 2AF1		;Does nothing, should call the Sound Effect 0x1B but it has been removed
ROM3:6475 CD 68 41         call 4168
ROM3:6478 3E 24            ld   a,24
ROM3:647A CF               rst  08
ROM3:647B 0B 06       => Pointer 06:400B (loads Sound Effect and Text 0x24)
ROM3:647D 18 0F            jr   648F		;Get out of this function
ROM3:647F CF               rst  08
ROM3:6480 0F               rrca 
ROM3:6481 0A               ld   a,(bc)
ROM3:6482 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6485 CD D9 2A         call 2AD9		;Does nothing, should call the Sound Effect 0x20 but it has been removed
ROM3:6488 CD 4A 5D         call 5D4A
ROM3:648B CF               rst  08
ROM3:648C 07               rlca 
ROM3:648D 06 E1            ld   b,E1
ROM3:648F D1               pop  de
ROM3:6490 C1               pop  bc
ROM3:6491 F1               pop  af
ROM3:6492 C9               ret

Equip Spells 1

Legendary Sword
ROM3:6493 F5               push af
ROM3:6494 C5               push bc
ROM3:6495 D5               push de
ROM3:6496 FA 8B C8         ld   a,(C88B)
ROM3:6499 4F               ld   c,a
ROM3:649A FA 8C C8         ld   a,(C88C)
ROM3:649D 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:649E 16 00            ld   d,00
ROM3:64A0 CF               rst  08
ROM3:64A1 0D               dec  c
ROM3:64A2 07               rlca 
ROM3:64A3 FE 01            cp   a,01
ROM3:64A5 20 26            jr   nz,64CD
ROM3:64A7 CF               rst  08
ROM3:64A8 0D               dec  c
ROM3:64A9 0A               ld   a,(bc)
ROM3:64AA FE 00            cp   a,00
ROM3:64AC 20 16            jr   nz,64C4
ROM3:64AE FA 00 C7         ld   a,(C700)
ROM3:64B1 47               ld   b,a
ROM3:64B2 FA 01 C7         ld   a,(C701)
ROM3:64B5 4F               ld   c,a
ROM3:64B6 CD C7 50         call 50C7
ROM3:64B9 CD 93 5F         call 5F93
ROM3:64BC 01 2D 01         ld   bc,012D
ROM3:64BF CD 5D 61         call 615D
ROM3:64C2 18 09            jr   64CD
ROM3:64C4 CF               rst  08
ROM3:64C5 0F               rrca 
ROM3:64C6 0A               ld   a,(bc)
ROM3:64C7 CD 93 5F         call 5F93
ROM3:64CA CF               rst  08
ROM3:64CB 07               rlca 
ROM3:64CC 06 D1            ld   b,D1
ROM3:64CE C1               pop  bc
ROM3:64CF F1               pop  af
ROM3:64D0 C9               ret  
Sword of Ruin
ROM3:64D1 F5               push af
ROM3:64D2 C5               push bc
ROM3:64D3 D5               push de
ROM3:64D4 FA 8B C8         ld   a,(C88B)
ROM3:64D7 4F               ld   c,a
ROM3:64D8 FA 8C C8         ld   a,(C88C)
ROM3:64DB 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:64DC 16 01            ld   d,01
ROM3:64DE CF               rst  08
ROM3:64DF 0D               dec  c
ROM3:64E0 07               rlca 
ROM3:64E1 FE 01            cp   a,01
ROM3:64E3 20 26            jr   nz,650B
ROM3:64E5 CF               rst  08
ROM3:64E6 0D               dec  c
ROM3:64E7 0A               ld   a,(bc)
ROM3:64E8 FE 00            cp   a,00
ROM3:64EA 20 16            jr   nz,6502
ROM3:64EC FA 00 C7         ld   a,(C700)
ROM3:64EF 47               ld   b,a
ROM3:64F0 FA 01 C7         ld   a,(C701)
ROM3:64F3 4F               ld   c,a
ROM3:64F4 CD C7 50         call 50C7
ROM3:64F7 CD 93 5F         call 5F93
ROM3:64FA 01 2E 01         ld   bc,012E
ROM3:64FD CD 5D 61         call 615D
ROM3:6500 18 09            jr   650B
ROM3:6502 CF               rst  08
ROM3:6503 0F               rrca 
ROM3:6504 0A               ld   a,(bc)
ROM3:6505 CD 93 5F         call 5F93
ROM3:6508 CF               rst  08
ROM3:6509 07               rlca 
ROM3:650A 06 D1            ld   b,D1
ROM3:650C C1               pop  bc
ROM3:650D F1               pop  af
ROM3:650E C9               ret  
Dark Energy
ROM3:650F F5               push af
ROM3:6510 C5               push bc
ROM3:6511 D5               push de
ROM3:6512 FA 8B C8         ld   a,(C88B)
ROM3:6515 4F               ld   c,a
ROM3:6516 FA 8C C8         ld   a,(C88C)
ROM3:6519 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:651A 16 02            ld   d,02
ROM3:651C CF               rst  08
ROM3:651D 0D               dec  c
ROM3:651E 07               rlca 
ROM3:651F FE 01            cp   a,01
ROM3:6521 20 26            jr   nz,6549
ROM3:6523 CF               rst  08
ROM3:6524 0D               dec  c
ROM3:6525 0A               ld   a,(bc)
ROM3:6526 FE 00            cp   a,00
ROM3:6528 20 16            jr   nz,6540
ROM3:652A FA 00 C7         ld   a,(C700)
ROM3:652D 47               ld   b,a
ROM3:652E FA 01 C7         ld   a,(C701)
ROM3:6531 4F               ld   c,a
ROM3:6532 CD C7 50         call 50C7
ROM3:6535 CD 93 5F         call 5F93
ROM3:6538 01 2F 01         ld   bc,012F
ROM3:653B CD 5D 61         call 615D
ROM3:653E 18 09            jr   6549
ROM3:6540 CF               rst  08
ROM3:6541 0F               rrca 
ROM3:6542 0A               ld   a,(bc)
ROM3:6543 CD 93 5F         call 5F93
ROM3:6546 CF               rst  08
ROM3:6547 07               rlca 
ROM3:6548 06 D1            ld   b,D1
ROM3:654A C1               pop  bc
ROM3:654B F1               pop  af
ROM3:654C C9               ret  
Axe of Despair
ROM3:654D F5               push af
ROM3:654E C5               push bc
ROM3:654F D5               push de
ROM3:6550 FA 8B C8         ld   a,(C88B)
ROM3:6553 4F               ld   c,a
ROM3:6554 FA 8C C8         ld   a,(C88C)
ROM3:6557 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6558 16 03            ld   d,03
ROM3:655A CF               rst  08
ROM3:655B 0D               dec  c
ROM3:655C 07               rlca 
ROM3:655D FE 01            cp   a,01
ROM3:655F 20 26            jr   nz,6587
ROM3:6561 CF               rst  08
ROM3:6562 0D               dec  c
ROM3:6563 0A               ld   a,(bc)
ROM3:6564 FE 00            cp   a,00
ROM3:6566 20 16            jr   nz,657E
ROM3:6568 FA 00 C7         ld   a,(C700)
ROM3:656B 47               ld   b,a
ROM3:656C FA 01 C7         ld   a,(C701)
ROM3:656F 4F               ld   c,a
ROM3:6570 CD C7 50         call 50C7
ROM3:6573 CD 93 5F         call 5F93
ROM3:6576 01 30 01         ld   bc,0130
ROM3:6579 CD 5D 61         call 615D
ROM3:657C 18 09            jr   6587
ROM3:657E CF               rst  08
ROM3:657F 0F               rrca 
ROM3:6580 0A               ld   a,(bc)
ROM3:6581 CD 93 5F         call 5F93
ROM3:6584 CF               rst  08
ROM3:6585 07               rlca 
ROM3:6586 06 D1            ld   b,D1
ROM3:6588 C1               pop  bc
ROM3:6589 F1               pop  af
ROM3:658A C9               ret  
Lazer Cannon Armor
ROM3:658B F5               push af
ROM3:658C C5               push bc
ROM3:658D D5               push de
ROM3:658E FA 8B C8         ld   a,(C88B)
ROM3:6591 4F               ld   c,a
ROM3:6592 FA 8C C8         ld   a,(C88C)
ROM3:6595 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6596 16 04            ld   d,04
ROM3:6598 CF               rst  08
ROM3:6599 0D               dec  c
ROM3:659A 07               rlca 
ROM3:659B FE 01            cp   a,01
ROM3:659D 20 26            jr   nz,65C5
ROM3:659F CF               rst  08
ROM3:65A0 0D               dec  c
ROM3:65A1 0A               ld   a,(bc)
ROM3:65A2 FE 00            cp   a,00
ROM3:65A4 20 16            jr   nz,65BC
ROM3:65A6 FA 00 C7         ld   a,(C700)
ROM3:65A9 47               ld   b,a
ROM3:65AA FA 01 C7         ld   a,(C701)
ROM3:65AD 4F               ld   c,a
ROM3:65AE CD C7 50         call 50C7
ROM3:65B1 CD 93 5F         call 5F93
ROM3:65B4 01 31 01         ld   bc,0131
ROM3:65B7 CD 5D 61         call 615D
ROM3:65BA 18 09            jr   65C5
ROM3:65BC CF               rst  08
ROM3:65BD 0F               rrca 
ROM3:65BE 0A               ld   a,(bc)
ROM3:65BF CD 93 5F         call 5F93
ROM3:65C2 CF               rst  08
ROM3:65C3 07               rlca 
ROM3:65C4 06 D1            ld   b,D1
ROM3:65C6 C1               pop  bc
ROM3:65C7 F1               pop  af
ROM3:65C8 C9               ret  
Insect Armor with Laser Cannon
ROM3:65C9 F5               push af
ROM3:65CA C5               push bc
ROM3:65CB D5               push de
ROM3:65CC FA 8B C8         ld   a,(C88B)
ROM3:65CF 4F               ld   c,a
ROM3:65D0 FA 8C C8         ld   a,(C88C)
ROM3:65D3 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:65D4 16 05            ld   d,05
ROM3:65D6 CF               rst  08
ROM3:65D7 0D               dec  c
ROM3:65D8 07               rlca 
ROM3:65D9 FE 01            cp   a,01
ROM3:65DB 20 26            jr   nz,6603
ROM3:65DD CF               rst  08
ROM3:65DE 0D               dec  c
ROM3:65DF 0A               ld   a,(bc)
ROM3:65E0 FE 00            cp   a,00
ROM3:65E2 20 16            jr   nz,65FA
ROM3:65E4 FA 00 C7         ld   a,(C700)
ROM3:65E7 47               ld   b,a
ROM3:65E8 FA 01 C7         ld   a,(C701)
ROM3:65EB 4F               ld   c,a
ROM3:65EC CD C7 50         call 50C7
ROM3:65EF CD 93 5F         call 5F93
ROM3:65F2 01 32 01         ld   bc,0132
ROM3:65F5 CD 5D 61         call 615D
ROM3:65F8 18 09            jr   6603
ROM3:65FA CF               rst  08
ROM3:65FB 0F               rrca 
ROM3:65FC 0A               ld   a,(bc)
ROM3:65FD CD 93 5F         call 5F93
ROM3:6600 CF               rst  08
ROM3:6601 07               rlca 
ROM3:6602 06 D1            ld   b,D1
ROM3:6604 C1               pop  bc
ROM3:6605 F1               pop  af
ROM3:6606 C9               ret  
Elf's Light
ROM3:6607 F5               push af
ROM3:6608 C5               push bc
ROM3:6609 D5               push de
ROM3:660A FA 8B C8         ld   a,(C88B)
ROM3:660D 4F               ld   c,a
ROM3:660E FA 8C C8         ld   a,(C88C)
ROM3:6611 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6612 16 06            ld   d,06
ROM3:6614 CF               rst  08
ROM3:6615 0D               dec  c
ROM3:6616 07               rlca 
ROM3:6617 FE 01            cp   a,01
ROM3:6619 20 26            jr   nz,6641
ROM3:661B CF               rst  08
ROM3:661C 0D               dec  c
ROM3:661D 0A               ld   a,(bc)
ROM3:661E FE 00            cp   a,00
ROM3:6620 20 16            jr   nz,6638
ROM3:6622 FA 00 C7         ld   a,(C700)
ROM3:6625 47               ld   b,a
ROM3:6626 FA 01 C7         ld   a,(C701)
ROM3:6629 4F               ld   c,a
ROM3:662A CD C7 50         call 50C7
ROM3:662D CD 93 5F         call 5F93
ROM3:6630 01 33 01         ld   bc,0133
ROM3:6633 CD 5D 61         call 615D
ROM3:6636 18 09            jr   6641
ROM3:6638 CF               rst  08
ROM3:6639 0F               rrca 
ROM3:663A 0A               ld   a,(bc)
ROM3:663B CD 93 5F         call 5F93
ROM3:663E CF               rst  08
ROM3:663F 07               rlca 
ROM3:6640 06 D1            ld   b,D1
ROM3:6642 C1               pop  bc
ROM3:6643 F1               pop  af
ROM3:6644 C9               ret  
Beast Fangs
ROM3:6645 F5               push af
ROM3:6646 C5               push bc
ROM3:6647 D5               push de
ROM3:6648 FA 8B C8         ld   a,(C88B)
ROM3:664B 4F               ld   c,a
ROM3:664C FA 8C C8         ld   a,(C88C)
ROM3:664F 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6650 16 07            ld   d,07
ROM3:6652 CF               rst  08
ROM3:6653 0D               dec  c
ROM3:6654 07               rlca 
ROM3:6655 FE 01            cp   a,01
ROM3:6657 20 26            jr   nz,667F
ROM3:6659 CF               rst  08
ROM3:665A 0D               dec  c
ROM3:665B 0A               ld   a,(bc)
ROM3:665C FE 00            cp   a,00
ROM3:665E 20 16            jr   nz,6676
ROM3:6660 FA 00 C7         ld   a,(C700)
ROM3:6663 47               ld   b,a
ROM3:6664 FA 01 C7         ld   a,(C701)
ROM3:6667 4F               ld   c,a
ROM3:6668 CD C7 50         call 50C7
ROM3:666B CD 93 5F         call 5F93
ROM3:666E 01 34 01         ld   bc,0134
ROM3:6671 CD 5D 61         call 615D
ROM3:6674 18 09            jr   667F
ROM3:6676 CF               rst  08
ROM3:6677 0F               rrca 
ROM3:6678 0A               ld   a,(bc)
ROM3:6679 CD 93 5F         call 5F93
ROM3:667C CF               rst  08
ROM3:667D 07               rlca 
ROM3:667E 06 D1            ld   b,D1
ROM3:6680 C1               pop  bc
ROM3:6681 F1               pop  af
ROM3:6682 C9               ret  
Steel Shell
ROM3:6683 F5               push af
ROM3:6684 C5               push bc
ROM3:6685 D5               push de
ROM3:6686 FA 8B C8         ld   a,(C88B)
ROM3:6689 4F               ld   c,a
ROM3:668A FA 8C C8         ld   a,(C88C)
ROM3:668D 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:668E 16 08            ld   d,08
ROM3:6690 CF               rst  08
ROM3:6691 0D               dec  c
ROM3:6692 07               rlca 
ROM3:6693 FE 01            cp   a,01
ROM3:6695 20 26            jr   nz,66BD
ROM3:6697 CF               rst  08
ROM3:6698 0D               dec  c
ROM3:6699 0A               ld   a,(bc)
ROM3:669A FE 00            cp   a,00
ROM3:669C 20 16            jr   nz,66B4
ROM3:669E FA 00 C7         ld   a,(C700)
ROM3:66A1 47               ld   b,a
ROM3:66A2 FA 01 C7         ld   a,(C701)
ROM3:66A5 4F               ld   c,a
ROM3:66A6 CD C7 50         call 50C7
ROM3:66A9 CD 93 5F         call 5F93
ROM3:66AC 01 35 01         ld   bc,0135
ROM3:66AF CD 5D 61         call 615D
ROM3:66B2 18 09            jr   66BD
ROM3:66B4 CF               rst  08
ROM3:66B5 0F               rrca 
ROM3:66B6 0A               ld   a,(bc)
ROM3:66B7 CD 93 5F         call 5F93
ROM3:66BA CF               rst  08
ROM3:66BB 07               rlca 
ROM3:66BC 06 D1            ld   b,D1
ROM3:66BE C1               pop  bc
ROM3:66BF F1               pop  af
ROM3:66C0 C9               ret  
Vile Germs
ROM3:66C1 F5               push af
ROM3:66C2 C5               push bc
ROM3:66C3 D5               push de
ROM3:66C4 FA 8B C8         ld   a,(C88B)
ROM3:66C7 4F               ld   c,a
ROM3:66C8 FA 8C C8         ld   a,(C88C)
ROM3:66CB 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:66CC 16 09            ld   d,09
ROM3:66CE CF               rst  08
ROM3:66CF 0D               dec  c
ROM3:66D0 07               rlca 
ROM3:66D1 FE 01            cp   a,01
ROM3:66D3 20 26            jr   nz,66FB
ROM3:66D5 CF               rst  08
ROM3:66D6 0D               dec  c
ROM3:66D7 0A               ld   a,(bc)
ROM3:66D8 FE 00            cp   a,00
ROM3:66DA 20 16            jr   nz,66F2
ROM3:66DC FA 00 C7         ld   a,(C700)
ROM3:66DF 47               ld   b,a
ROM3:66E0 FA 01 C7         ld   a,(C701)
ROM3:66E3 4F               ld   c,a
ROM3:66E4 CD C7 50         call 50C7
ROM3:66E7 CD 93 5F         call 5F93
ROM3:66EA 01 36 01         ld   bc,0136
ROM3:66ED CD 5D 61         call 615D
ROM3:66F0 18 09            jr   66FB
ROM3:66F2 CF               rst  08
ROM3:66F3 0F               rrca 
ROM3:66F4 0A               ld   a,(bc)
ROM3:66F5 CD 93 5F         call 5F93
ROM3:66F8 CF               rst  08
ROM3:66F9 07               rlca 
ROM3:66FA 06 D1            ld   b,D1
ROM3:66FC C1               pop  bc
ROM3:66FD F1               pop  af
ROM3:66FE C9               ret  
Black Pendant
ROM3:66FF F5               push af
ROM3:6700 C5               push bc
ROM3:6701 D5               push de
ROM3:6702 FA 8B C8         ld   a,(C88B)
ROM3:6705 4F               ld   c,a
ROM3:6706 FA 8C C8         ld   a,(C88C)
ROM3:6709 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:670A 16 0A            ld   d,0A
ROM3:670C CF               rst  08
ROM3:670D 0D               dec  c
ROM3:670E 07               rlca 
ROM3:670F FE 01            cp   a,01
ROM3:6711 20 26            jr   nz,6739
ROM3:6713 CF               rst  08
ROM3:6714 0D               dec  c
ROM3:6715 0A               ld   a,(bc)
ROM3:6716 FE 00            cp   a,00
ROM3:6718 20 16            jr   nz,6730
ROM3:671A FA 00 C7         ld   a,(C700)
ROM3:671D 47               ld   b,a
ROM3:671E FA 01 C7         ld   a,(C701)
ROM3:6721 4F               ld   c,a
ROM3:6722 CD C7 50         call 50C7
ROM3:6725 CD 93 5F         call 5F93
ROM3:6728 01 37 01         ld   bc,0137
ROM3:672B CD 5D 61         call 615D
ROM3:672E 18 09            jr   6739
ROM3:6730 CF               rst  08
ROM3:6731 0F               rrca 
ROM3:6732 0A               ld   a,(bc)
ROM3:6733 CD 93 5F         call 5F93
ROM3:6736 CF               rst  08
ROM3:6737 07               rlca 
ROM3:6738 06 D1            ld   b,D1
ROM3:673A C1               pop  bc
ROM3:673B F1               pop  af
ROM3:673C C9               ret  
Silver Bow & Arrow
ROM3:673D F5               push af
ROM3:673E C5               push bc
ROM3:673F D5               push de
ROM3:6740 FA 8B C8         ld   a,(C88B)
ROM3:6743 4F               ld   c,a
ROM3:6744 FA 8C C8         ld   a,(C88C)
ROM3:6747 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6748 16 0B            ld   d,0B
ROM3:674A CF               rst  08
ROM3:674B 0D               dec  c
ROM3:674C 07               rlca 
ROM3:674D FE 01            cp   a,01
ROM3:674F 20 26            jr   nz,6777
ROM3:6751 CF               rst  08
ROM3:6752 0D               dec  c
ROM3:6753 0A               ld   a,(bc)
ROM3:6754 FE 00            cp   a,00
ROM3:6756 20 16            jr   nz,676E
ROM3:6758 FA 00 C7         ld   a,(C700)
ROM3:675B 47               ld   b,a
ROM3:675C FA 01 C7         ld   a,(C701)
ROM3:675F 4F               ld   c,a
ROM3:6760 CD C7 50         call 50C7
ROM3:6763 CD 93 5F         call 5F93
ROM3:6766 01 38 01         ld   bc,0138
ROM3:6769 CD 5D 61         call 615D
ROM3:676C 18 09            jr   6777
ROM3:676E CF               rst  08
ROM3:676F 0F               rrca 
ROM3:6770 0A               ld   a,(bc)
ROM3:6771 CD 93 5F         call 5F93
ROM3:6774 CF               rst  08
ROM3:6775 07               rlca 
ROM3:6776 06 D1            ld   b,D1
ROM3:6778 C1               pop  bc
ROM3:6779 F1               pop  af
ROM3:677A C9               ret  
Horn of Light
ROM3:677B F5               push af
ROM3:677C C5               push bc
ROM3:677D D5               push de
ROM3:677E FA 8B C8         ld   a,(C88B)
ROM3:6781 4F               ld   c,a
ROM3:6782 FA 8C C8         ld   a,(C88C)
ROM3:6785 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6786 16 0C            ld   d,0C
ROM3:6788 CF               rst  08
ROM3:6789 0D               dec  c
ROM3:678A 07               rlca 
ROM3:678B FE 01            cp   a,01
ROM3:678D 20 26            jr   nz,67B5
ROM3:678F CF               rst  08
ROM3:6790 0D               dec  c
ROM3:6791 0A               ld   a,(bc)
ROM3:6792 FE 00            cp   a,00
ROM3:6794 20 16            jr   nz,67AC
ROM3:6796 FA 00 C7         ld   a,(C700)
ROM3:6799 47               ld   b,a
ROM3:679A FA 01 C7         ld   a,(C701)
ROM3:679D 4F               ld   c,a
ROM3:679E CD C7 50         call 50C7
ROM3:67A1 CD 93 5F         call 5F93
ROM3:67A4 01 39 01         ld   bc,0139
ROM3:67A7 CD 5D 61         call 615D
ROM3:67AA 18 09            jr   67B5
ROM3:67AC CF               rst  08
ROM3:67AD 0F               rrca 
ROM3:67AE 0A               ld   a,(bc)
ROM3:67AF CD 93 5F         call 5F93
ROM3:67B2 CF               rst  08
ROM3:67B3 07               rlca 
ROM3:67B4 06 D1            ld   b,D1
ROM3:67B6 C1               pop  bc
ROM3:67B7 F1               pop  af
ROM3:67B8 C9               ret  
Horn of the Unicorn
ROM3:67B9 F5               push af
ROM3:67BA C5               push bc
ROM3:67BB D5               push de
ROM3:67BC FA 8B C8         ld   a,(C88B)
ROM3:67BF 4F               ld   c,a
ROM3:67C0 FA 8C C8         ld   a,(C88C)
ROM3:67C3 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:67C4 16 0D            ld   d,0D
ROM3:67C6 CF               rst  08
ROM3:67C7 0D               dec  c
ROM3:67C8 07               rlca 
ROM3:67C9 FE 01            cp   a,01
ROM3:67CB 20 26            jr   nz,67F3
ROM3:67CD CF               rst  08
ROM3:67CE 0D               dec  c
ROM3:67CF 0A               ld   a,(bc)
ROM3:67D0 FE 00            cp   a,00
ROM3:67D2 20 16            jr   nz,67EA
ROM3:67D4 FA 00 C7         ld   a,(C700)
ROM3:67D7 47               ld   b,a
ROM3:67D8 FA 01 C7         ld   a,(C701)
ROM3:67DB 4F               ld   c,a
ROM3:67DC CD C7 50         call 50C7
ROM3:67DF CD 93 5F         call 5F93
ROM3:67E2 01 3A 01         ld   bc,013A
ROM3:67E5 CD 5D 61         call 615D
ROM3:67E8 18 09            jr   67F3
ROM3:67EA CF               rst  08
ROM3:67EB 0F               rrca 
ROM3:67EC 0A               ld   a,(bc)
ROM3:67ED CD 93 5F         call 5F93
ROM3:67F0 CF               rst  08
ROM3:67F1 07               rlca 
ROM3:67F2 06 D1            ld   b,D1
ROM3:67F4 C1               pop  bc
ROM3:67F5 F1               pop  af
ROM3:67F6 C9               ret  
Dragon Treasure
ROM3:67F7 F5               push af
ROM3:67F8 C5               push bc
ROM3:67F9 D5               push de
ROM3:67FA FA 8B C8         ld   a,(C88B)
ROM3:67FD 4F               ld   c,a
ROM3:67FE FA 8C C8         ld   a,(C88C)
ROM3:6801 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6802 16 0E            ld   d,0E
ROM3:6804 CF               rst  08
ROM3:6805 0D               dec  c
ROM3:6806 07               rlca 
ROM3:6807 FE 01            cp   a,01
ROM3:6809 20 26            jr   nz,6831
ROM3:680B CF               rst  08
ROM3:680C 0D               dec  c
ROM3:680D 0A               ld   a,(bc)
ROM3:680E FE 00            cp   a,00
ROM3:6810 20 16            jr   nz,6828
ROM3:6812 FA 00 C7         ld   a,(C700)
ROM3:6815 47               ld   b,a
ROM3:6816 FA 01 C7         ld   a,(C701)
ROM3:6819 4F               ld   c,a
ROM3:681A CD C7 50         call 50C7
ROM3:681D CD 93 5F         call 5F93
ROM3:6820 01 3B 01         ld   bc,013B
ROM3:6823 CD 5D 61         call 615D
ROM3:6826 18 09            jr   6831
ROM3:6828 CF               rst  08
ROM3:6829 0F               rrca 
ROM3:682A 0A               ld   a,(bc)
ROM3:682B CD 93 5F         call 5F93
ROM3:682E CF               rst  08
ROM3:682F 07               rlca 
ROM3:6830 06 D1            ld   b,D1
ROM3:6832 C1               pop  bc
ROM3:6833 F1               pop  af
ROM3:6834 C9               ret  
Electro-whip
ROM3:6835 F5               push af
ROM3:6836 C5               push bc
ROM3:6837 D5               push de
ROM3:6838 FA 8B C8         ld   a,(C88B)
ROM3:683B 4F               ld   c,a
ROM3:683C FA 8C C8         ld   a,(C88C)
ROM3:683F 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6840 16 0F            ld   d,0F
ROM3:6842 CF               rst  08
ROM3:6843 0D               dec  c
ROM3:6844 07               rlca 
ROM3:6845 FE 01            cp   a,01
ROM3:6847 20 26            jr   nz,686F
ROM3:6849 CF               rst  08
ROM3:684A 0D               dec  c
ROM3:684B 0A               ld   a,(bc)
ROM3:684C FE 00            cp   a,00
ROM3:684E 20 16            jr   nz,6866
ROM3:6850 FA 00 C7         ld   a,(C700)
ROM3:6853 47               ld   b,a
ROM3:6854 FA 01 C7         ld   a,(C701)
ROM3:6857 4F               ld   c,a
ROM3:6858 CD C7 50         call 50C7
ROM3:685B CD 93 5F         call 5F93
ROM3:685E 01 3C 01         ld   bc,013C
ROM3:6861 CD 5D 61         call 615D
ROM3:6864 18 09            jr   686F
ROM3:6866 CF               rst  08
ROM3:6867 0F               rrca 
ROM3:6868 0A               ld   a,(bc)
ROM3:6869 CD 93 5F         call 5F93
ROM3:686C CF               rst  08
ROM3:686D 07               rlca 
ROM3:686E 06 D1            ld   b,D1
ROM3:6870 C1               pop  bc
ROM3:6871 F1               pop  af
ROM3:6872 C9               ret  
Cyber Shield
ROM3:6873 F5               push af
ROM3:6874 C5               push bc
ROM3:6875 D5               push de
ROM3:6876 FA 8B C8         ld   a,(C88B)
ROM3:6879 4F               ld   c,a
ROM3:687A FA 8C C8         ld   a,(C88C)
ROM3:687D 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:687E 16 10            ld   d,10
ROM3:6880 CF               rst  08
ROM3:6881 0D               dec  c
ROM3:6882 07               rlca 
ROM3:6883 FE 01            cp   a,01
ROM3:6885 20 26            jr   nz,68AD
ROM3:6887 CF               rst  08
ROM3:6888 0D               dec  c
ROM3:6889 0A               ld   a,(bc)
ROM3:688A FE 00            cp   a,00
ROM3:688C 20 16            jr   nz,68A4
ROM3:688E FA 00 C7         ld   a,(C700)
ROM3:6891 47               ld   b,a
ROM3:6892 FA 01 C7         ld   a,(C701)
ROM3:6895 4F               ld   c,a
ROM3:6896 CD C7 50         call 50C7
ROM3:6899 CD 93 5F         call 5F93
ROM3:689C 01 3D 01         ld   bc,013D
ROM3:689F CD 5D 61         call 615D
ROM3:68A2 18 09            jr   68AD
ROM3:68A4 CF               rst  08
ROM3:68A5 0F               rrca 
ROM3:68A6 0A               ld   a,(bc)
ROM3:68A7 CD 93 5F         call 5F93
ROM3:68AA CF               rst  08
ROM3:68AB 07               rlca 
ROM3:68AC 06 D1            ld   b,D1
ROM3:68AE C1               pop  bc
ROM3:68AF F1               pop  af
ROM3:68B0 C9               ret
Mystical Moon
ROM3:68B1 F5               push af
ROM3:68B2 C5               push bc
ROM3:68B3 D5               push de
ROM3:68B4 FA 8B C8         ld   a,(C88B)
ROM3:68B7 4F               ld   c,a
ROM3:68B8 FA 8C C8         ld   a,(C88C)
ROM3:68BB 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:68BC 16 11            ld   d,11
ROM3:68BE CF               rst  08
ROM3:68BF 0D               dec  c
ROM3:68C0 07               rlca 
ROM3:68C1 FE 01            cp   a,01
ROM3:68C3 20 26            jr   nz,68EB
ROM3:68C5 CF               rst  08
ROM3:68C6 0D               dec  c
ROM3:68C7 0A               ld   a,(bc)
ROM3:68C8 FE 00            cp   a,00
ROM3:68CA 20 16            jr   nz,68E2
ROM3:68CC FA 00 C7         ld   a,(C700)
ROM3:68CF 47               ld   b,a
ROM3:68D0 FA 01 C7         ld   a,(C701)
ROM3:68D3 4F               ld   c,a
ROM3:68D4 CD C7 50         call 50C7
ROM3:68D7 CD 93 5F         call 5F93
ROM3:68DA 01 3F 01         ld   bc,013F
ROM3:68DD CD 5D 61         call 615D
ROM3:68E0 18 09            jr   68EB
ROM3:68E2 CF               rst  08
ROM3:68E3 0F               rrca 
ROM3:68E4 0A               ld   a,(bc)
ROM3:68E5 CD 93 5F         call 5F93
ROM3:68E8 CF               rst  08
ROM3:68E9 07               rlca 
ROM3:68EA 06 D1            ld   b,D1
ROM3:68EC C1               pop  bc
ROM3:68ED F1               pop  af
ROM3:68EE C9               ret  
Malevolent Nuzzler
ROM3:68EF F5               push af
ROM3:68F0 C5               push bc
ROM3:68F1 D5               push de
ROM3:68F2 FA 8B C8         ld   a,(C88B)
ROM3:68F5 4F               ld   c,a
ROM3:68F6 FA 8C C8         ld   a,(C88C)
ROM3:68F9 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:68FA 16 12            ld   d,12
ROM3:68FC CF               rst  08
ROM3:68FD 0D               dec  c
ROM3:68FE 07               rlca 
ROM3:68FF FE 01            cp   a,01
ROM3:6901 20 26            jr   nz,6929
ROM3:6903 CF               rst  08
ROM3:6904 0D               dec  c
ROM3:6905 0A               ld   a,(bc)
ROM3:6906 FE 00            cp   a,00
ROM3:6908 20 16            jr   nz,6920
ROM3:690A FA 00 C7         ld   a,(C700)
ROM3:690D 47               ld   b,a
ROM3:690E FA 01 C7         ld   a,(C701)
ROM3:6911 4F               ld   c,a
ROM3:6912 CD C7 50         call 50C7
ROM3:6915 CD 93 5F         call 5F93
ROM3:6918 01 41 01         ld   bc,0141
ROM3:691B CD 5D 61         call 615D
ROM3:691E 18 09            jr   6929
ROM3:6920 CF               rst  08
ROM3:6921 0F               rrca 
ROM3:6922 0A               ld   a,(bc)
ROM3:6923 CD 93 5F         call 5F93
ROM3:6926 CF               rst  08
ROM3:6927 07               rlca 
ROM3:6928 06 D1            ld   b,D1
ROM3:692A C1               pop  bc
ROM3:692B F1               pop  af
ROM3:692C C9               ret  
Violet Crystal
ROM3:692D F5               push af
ROM3:692E C5               push bc
ROM3:692F D5               push de
ROM3:6930 FA 8B C8         ld   a,(C88B)
ROM3:6933 4F               ld   c,a
ROM3:6934 FA 8C C8         ld   a,(C88C)
ROM3:6937 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6938 16 13            ld   d,13
ROM3:693A CF               rst  08
ROM3:693B 0D               dec  c
ROM3:693C 07               rlca 
ROM3:693D FE 01            cp   a,01
ROM3:693F 20 26            jr   nz,6967
ROM3:6941 CF               rst  08
ROM3:6942 0D               dec  c
ROM3:6943 0A               ld   a,(bc)
ROM3:6944 FE 00            cp   a,00
ROM3:6946 20 16            jr   nz,695E
ROM3:6948 FA 00 C7         ld   a,(C700)
ROM3:694B 47               ld   b,a
ROM3:694C FA 01 C7         ld   a,(C701)
ROM3:694F 4F               ld   c,a
ROM3:6950 CD C7 50         call 50C7
ROM3:6953 CD 93 5F         call 5F93
ROM3:6956 01 42 01         ld   bc,0142
ROM3:6959 CD 5D 61         call 615D
ROM3:695C 18 09            jr   6967
ROM3:695E CF               rst  08
ROM3:695F 0F               rrca 
ROM3:6960 0A               ld   a,(bc)
ROM3:6961 CD 93 5F         call 5F93
ROM3:6964 CF               rst  08
ROM3:6965 07               rlca 
ROM3:6966 06 D1            ld   b,D1
ROM3:6968 C1               pop  bc
ROM3:6969 F1               pop  af
ROM3:696A C9               ret  
Book of Secret Art
ROM3:696B F5               push af
ROM3:696C C5               push bc
ROM3:696D D5               push de
ROM3:696E FA 8B C8         ld   a,(C88B)
ROM3:6971 4F               ld   c,a
ROM3:6972 FA 8C C8         ld   a,(C88C)
ROM3:6975 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6976 16 14            ld   d,14
ROM3:6978 CF               rst  08
ROM3:6979 0D               dec  c
ROM3:697A 07               rlca 
ROM3:697B FE 01            cp   a,01
ROM3:697D 20 26            jr   nz,69A5
ROM3:697F CF               rst  08
ROM3:6980 0D               dec  c
ROM3:6981 0A               ld   a,(bc)
ROM3:6982 FE 00            cp   a,00
ROM3:6984 20 16            jr   nz,699C
ROM3:6986 FA 00 C7         ld   a,(C700)
ROM3:6989 47               ld   b,a
ROM3:698A FA 01 C7         ld   a,(C701)
ROM3:698D 4F               ld   c,a
ROM3:698E CD C7 50         call 50C7
ROM3:6991 CD 93 5F         call 5F93
ROM3:6994 01 43 01         ld   bc,0143
ROM3:6997 CD 5D 61         call 615D
ROM3:699A 18 09            jr   69A5
ROM3:699C CF               rst  08
ROM3:699D 0F               rrca 
ROM3:699E 0A               ld   a,(bc)
ROM3:699F CD 93 5F         call 5F93
ROM3:69A2 CF               rst  08
ROM3:69A3 07               rlca 
ROM3:69A4 06 D1            ld   b,D1
ROM3:69A6 C1               pop  bc
ROM3:69A7 F1               pop  af
ROM3:69A8 C9               ret  
Invigoration
ROM3:69A9 F5               push af
ROM3:69AA C5               push bc
ROM3:69AB D5               push de
ROM3:69AC FA 8B C8         ld   a,(C88B)
ROM3:69AF 4F               ld   c,a
ROM3:69B0 FA 8C C8         ld   a,(C88C)
ROM3:69B3 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:69B4 16 15            ld   d,15
ROM3:69B6 CF               rst  08
ROM3:69B7 0D               dec  c
ROM3:69B8 07               rlca 
ROM3:69B9 FE 01            cp   a,01
ROM3:69BB 20 26            jr   nz,69E3
ROM3:69BD CF               rst  08
ROM3:69BE 0D               dec  c
ROM3:69BF 0A               ld   a,(bc)
ROM3:69C0 FE 00            cp   a,00
ROM3:69C2 20 16            jr   nz,69DA
ROM3:69C4 FA 00 C7         ld   a,(C700)
ROM3:69C7 47               ld   b,a
ROM3:69C8 FA 01 C7         ld   a,(C701)
ROM3:69CB 4F               ld   c,a
ROM3:69CC CD C7 50         call 50C7
ROM3:69CF CD 93 5F         call 5F93
ROM3:69D2 01 44 01         ld   bc,0144
ROM3:69D5 CD 5D 61         call 615D
ROM3:69D8 18 09            jr   69E3
ROM3:69DA CF               rst  08
ROM3:69DB 0F               rrca 
ROM3:69DC 0A               ld   a,(bc)
ROM3:69DD CD 93 5F         call 5F93
ROM3:69E0 CF               rst  08
ROM3:69E1 07               rlca 
ROM3:69E2 06 D1            ld   b,D1
ROM3:69E4 C1               pop  bc
ROM3:69E5 F1               pop  af
ROM3:69E6 C9               ret  
Machine Conversion
ROM3:69E7 F5               push af
ROM3:69E8 C5               push bc
ROM3:69E9 D5               push de
ROM3:69EA FA 8B C8         ld   a,(C88B)
ROM3:69ED 4F               ld   c,a
ROM3:69EE FA 8C C8         ld   a,(C88C)
ROM3:69F1 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:69F2 16 16            ld   d,16
ROM3:69F4 CF               rst  08
ROM3:69F5 0D               dec  c
ROM3:69F6 07               rlca 
ROM3:69F7 FE 01            cp   a,01
ROM3:69F9 20 26            jr   nz,6A21
ROM3:69FB CF               rst  08
ROM3:69FC 0D               dec  c
ROM3:69FD 0A               ld   a,(bc)
ROM3:69FE FE 00            cp   a,00
ROM3:6A00 20 16            jr   nz,6A18
ROM3:6A02 FA 00 C7         ld   a,(C700)
ROM3:6A05 47               ld   b,a
ROM3:6A06 FA 01 C7         ld   a,(C701)
ROM3:6A09 4F               ld   c,a
ROM3:6A0A CD C7 50         call 50C7
ROM3:6A0D CD 93 5F         call 5F93
ROM3:6A10 01 45 01         ld   bc,0145
ROM3:6A13 CD 5D 61         call 615D
ROM3:6A16 18 09            jr   6A21
ROM3:6A18 CF               rst  08
ROM3:6A19 0F               rrca 
ROM3:6A1A 0A               ld   a,(bc)
ROM3:6A1B CD 93 5F         call 5F93
ROM3:6A1E CF               rst  08
ROM3:6A1F 07               rlca 
ROM3:6A20 06 D1            ld   b,D1
ROM3:6A22 C1               pop  bc
ROM3:6A23 F1               pop  af
ROM3:6A24 C9               ret  
Raise Body Heat
ROM3:6A25 F5               push af
ROM3:6A26 C5               push bc
ROM3:6A27 D5               push de
ROM3:6A28 FA 8B C8         ld   a,(C88B)
ROM3:6A2B 4F               ld   c,a
ROM3:6A2C FA 8C C8         ld   a,(C88C)
ROM3:6A2F 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6A30 16 17            ld   d,17
ROM3:6A32 CF               rst  08
ROM3:6A33 0D               dec  c
ROM3:6A34 07               rlca 
ROM3:6A35 FE 01            cp   a,01
ROM3:6A37 20 26            jr   nz,6A5F
ROM3:6A39 CF               rst  08
ROM3:6A3A 0D               dec  c
ROM3:6A3B 0A               ld   a,(bc)
ROM3:6A3C FE 00            cp   a,00
ROM3:6A3E 20 16            jr   nz,6A56
ROM3:6A40 FA 00 C7         ld   a,(C700)
ROM3:6A43 47               ld   b,a
ROM3:6A44 FA 01 C7         ld   a,(C701)
ROM3:6A47 4F               ld   c,a
ROM3:6A48 CD C7 50         call 50C7
ROM3:6A4B CD 93 5F         call 5F93
ROM3:6A4E 01 46 01         ld   bc,0146
ROM3:6A51 CD 5D 61         call 615D
ROM3:6A54 18 09            jr   6A5F
ROM3:6A56 CF               rst  08
ROM3:6A57 0F               rrca 
ROM3:6A58 0A               ld   a,(bc)
ROM3:6A59 CD 93 5F         call 5F93
ROM3:6A5C CF               rst  08
ROM3:6A5D 07               rlca 
ROM3:6A5E 06 D1            ld   b,D1
ROM3:6A60 C1               pop  bc
ROM3:6A61 F1               pop  af
ROM3:6A62 C9               ret  
Follow Wind
ROM3:6A63 F5               push af
ROM3:6A64 C5               push bc
ROM3:6A65 D5               push de
ROM3:6A66 FA 8B C8         ld   a,(C88B)
ROM3:6A69 4F               ld   c,a
ROM3:6A6A FA 8C C8         ld   a,(C88C)
ROM3:6A6D 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6A6E 16 18            ld   d,18
ROM3:6A70 CF               rst  08
ROM3:6A71 0D               dec  c
ROM3:6A72 07               rlca 
ROM3:6A73 FE 01            cp   a,01
ROM3:6A75 20 26            jr   nz,6A9D
ROM3:6A77 CF               rst  08
ROM3:6A78 0D               dec  c
ROM3:6A79 0A               ld   a,(bc)
ROM3:6A7A FE 00            cp   a,00
ROM3:6A7C 20 16            jr   nz,6A94
ROM3:6A7E FA 00 C7         ld   a,(C700)
ROM3:6A81 47               ld   b,a
ROM3:6A82 FA 01 C7         ld   a,(C701)
ROM3:6A85 4F               ld   c,a
ROM3:6A86 CD C7 50         call 50C7
ROM3:6A89 CD 93 5F         call 5F93
ROM3:6A8C 01 47 01         ld   bc,0147
ROM3:6A8F CD 5D 61         call 615D
ROM3:6A92 18 09            jr   6A9D
ROM3:6A94 CF               rst  08
ROM3:6A95 0F               rrca 
ROM3:6A96 0A               ld   a,(bc)
ROM3:6A97 CD 93 5F         call 5F93
ROM3:6A9A CF               rst  08
ROM3:6A9B 07               rlca 
ROM3:6A9C 06 D1            ld   b,D1
ROM3:6A9E C1               pop  bc
ROM3:6A9F F1               pop  af
ROM3:6AA0 C9               ret  
Power of Kaishin
ROM3:6AA1 F5               push af
ROM3:6AA2 C5               push bc
ROM3:6AA3 D5               push de
ROM3:6AA4 FA 8B C8         ld   a,(C88B)
ROM3:6AA7 4F               ld   c,a
ROM3:6AA8 FA 8C C8         ld   a,(C88C)
ROM3:6AAB 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6AAC 16 19            ld   d,19
ROM3:6AAE CF               rst  08
ROM3:6AAF 0D               dec  c
ROM3:6AB0 07               rlca 
ROM3:6AB1 FE 01            cp   a,01
ROM3:6AB3 20 26            jr   nz,6ADB
ROM3:6AB5 CF               rst  08
ROM3:6AB6 0D               dec  c
ROM3:6AB7 0A               ld   a,(bc)
ROM3:6AB8 FE 00            cp   a,00
ROM3:6ABA 20 16            jr   nz,6AD2
ROM3:6ABC FA 00 C7         ld   a,(C700)
ROM3:6ABF 47               ld   b,a
ROM3:6AC0 FA 01 C7         ld   a,(C701)
ROM3:6AC3 4F               ld   c,a
ROM3:6AC4 CD C7 50         call 50C7
ROM3:6AC7 CD 93 5F         call 5F93
ROM3:6ACA 01 48 01         ld   bc,0148
ROM3:6ACD CD 5D 61         call 615D
ROM3:6AD0 18 09            jr   6ADB
ROM3:6AD2 CF               rst  08
ROM3:6AD3 0F               rrca 
ROM3:6AD4 0A               ld   a,(bc)
ROM3:6AD5 CD 93 5F         call 5F93
ROM3:6AD8 CF               rst  08
ROM3:6AD9 07               rlca 
ROM3:6ADA 06 D1            ld   b,D1
ROM3:6ADC C1               pop  bc
ROM3:6ADD F1               pop  af
ROM3:6ADE C9               ret  

Stop Defense

ROM3:6ADF F5               push af
ROM3:6AE0 C5               push bc
ROM3:6AE1 CD 3A 2C         call 2C3A
ROM3:6AE4 0E 01            ld   c,01
ROM3:6AE6 06 00            ld   b,00
ROM3:6AE8 78               ld   a,b
ROM3:6AE9 FE 05            cp   a,05
ROM3:6AEB 30 13            jr   nc,6B00
ROM3:6AED CD CB 4E         call 4ECB
ROM3:6AF0 FE 00            cp   a,00
ROM3:6AF2 20 09            jr   nz,6AFD
ROM3:6AF4 CD 12 50         call 5012
ROM3:6AF7 CD 25 20         call 2025
ROM3:6AFA CD FB 19         call 19FB
ROM3:6AFD 04               inc  b
ROM3:6AFE 18 E8            jr   6AE8
ROM3:6B00 CD 7F 5F         call 5F7F
ROM3:6B03 CD 68 41         call 4168
ROM3:6B06 3E 13            ld   a,13
ROM3:6B08 CF               rst  08
ROM3:6B09 0B               dec  bc
ROM3:6B0A 06 C1            ld   b,C1
ROM3:6B0C F1               pop  af
ROM3:6B0D C9               ret

Dragon Capture Jar

ROM3:6B0E F5               push af
ROM3:6B0F C5               push bc
ROM3:6B10 D5               push de
ROM3:6B11 1E 01            ld   e,01
ROM3:6B13 0E 01            ld   c,01
ROM3:6B15 06 00            ld   b,00
ROM3:6B17 78               ld   a,b
ROM3:6B18 FE 05            cp   a,05
ROM3:6B1A 30 11            jr   nc,6B2D
ROM3:6B1C 3E 00            ld   a,00
ROM3:6B1E CD 36 51         call 5136
ROM3:6B21 FE 00            cp   a,00
ROM3:6B23 20 05            jr   nz,6B2A
ROM3:6B25 CD 86 20         call 2086
ROM3:6B28 1E 00            ld   e,00
ROM3:6B2A 04               inc  b
ROM3:6B2B 18 EA            jr   6B17
ROM3:6B2D CD 7F 5F         call 5F7F
ROM3:6B30 CD 68 41         call 4168
ROM3:6B33 3E 1C            ld   a,1C
ROM3:6B35 CF               rst  08
ROM3:6B36 0B               dec  bc
ROM3:6B37 06 D1            ld   b,D1
ROM3:6B39 C1               pop  bc
ROM3:6B3A F1               pop  af
ROM3:6B3B C9               ret

Swords of Revealing Light

ROM3:6B3C F5               push af
ROM3:6B3D C5               push bc
ROM3:6B3E D5               push de
ROM3:6B3F CD 76 2C         call 2C76		;Set CPU's SoRL counter to 4
ROM3:6B42 0E 01            ld   c,01
ROM3:6B44 06 00            ld   b,00
ROM3:6B46 78               ld   a,b
ROM3:6B47 FE 05            cp   a,05
ROM3:6B49 30 0F            jr   nc,6B5A
ROM3:6B4B CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:6B4E CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:6B51 CD 12 50         call 5012
ROM3:6B54 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:6B57 04               inc  b
ROM3:6B58 18 EC            jr   6B46
ROM3:6B5A 0E 02            ld   c,02
ROM3:6B5C 06 01            ld   b,01
ROM3:6B5E 78               ld   a,b
ROM3:6B5F FE 06            cp   a,06
ROM3:6B61 30 0F            jr   nc,6B72
ROM3:6B63 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:6B66 CD 13 1A         call 1A13		;Stores selected card ID and status
ROM3:6B69 CD 12 50         call 5012
ROM3:6B6C CD FB 19         call 19FB		;Update selected card ID and status
ROM3:6B6F 04               inc  b
ROM3:6B70 18 EC            jr   6B5E
ROM3:6B72 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6B75 CD 68 41         call 4168
ROM3:6B78 3E 2F            ld   a,2F
ROM3:6B7A CF               rst  08
ROM3:6B7B 0B 06       => Pointer 06:400B (loads Sound Effect and Text 0x2F)
ROM3:6B7D D1               pop  de
ROM3:6B7E C1               pop  bc
ROM3:6B7F F1               pop  af
ROM3:6B80 C9               ret

Dark-Piercing Light

ROM3:6B81 F5               push af
ROM3:6B82 C5               push bc
ROM3:6B83 D5               push de
ROM3:6B84 0E 01            ld   c,01
ROM3:6B86 06 00            ld   b,00
ROM3:6B88 78               ld   a,b
ROM3:6B89 FE 05            cp   a,05
ROM3:6B8B 30 0F            jr   nc,6B9C
ROM3:6B8D CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:6B90 CD 13 1A         call 1A13		;Store selected card ID and status
ROM3:6B93 CD 12 50         call 5012
ROM3:6B96 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:6B99 04               inc  b
ROM3:6B9A 18 EC            jr   6B88
ROM3:6B9C 0E 02            ld   c,02
ROM3:6B9E 06 01            ld   b,01
ROM3:6BA0 78               ld   a,b
ROM3:6BA1 FE 06            cp   a,06
ROM3:6BA3 30 0F            jr   nc,6BB4
ROM3:6BA5 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:6BA8 CD 13 1A         call 1A13		;Store selected card ID and status
ROM3:6BAB CD 12 50         call 5012
ROM3:6BAE CD FB 19         call 19FB		;Update selected card ID and status
ROM3:6BB1 04               inc  b
ROM3:6BB2 18 EC            jr   6BA0
ROM3:6BB4 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6BB7 CD 68 41         call 4168
ROM3:6BBA 3E 31            ld   a,31
ROM3:6BBC CF               rst  08
ROM3:6BBD 0B 06       => Pointer 06:400B (loads Sound Effect and Text 0x31)
ROM3:6BBF D1               pop  de
ROM3:6BC0 C1               pop  bc
ROM3:6BC1 F1               pop  af
ROM3:6BC2 C9               ret

Spellbinding Circle

ROM3:6BC3 F5               push af
ROM3:6BC4 C5               push bc
ROM3:6BC5 D5               push de
ROM3:6BC6 0E 01            ld   c,01
ROM3:6BC8 06 00            ld   b,00
ROM3:6BCA 78               ld   a,b
ROM3:6BCB FE 05            cp   a,05
ROM3:6BCD 30 10            jr   nc,6BDF
ROM3:6BCF CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:6BD2 FE 00            cp   a,00
ROM3:6BD4 20 06            jr   nz,6BDC
ROM3:6BD6 CD 92 1F         call 1F92		;Decrease Card Level
ROM3:6BD9 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:6BDC 04               inc  b
ROM3:6BDD 18 EB            jr   6BCA
ROM3:6BDF CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6BE2 CD 68 41         call 4168
ROM3:6BE5 3E 30            ld   a,30
ROM3:6BE7 CF               rst  08
ROM3:6BE8 0B 06       => Pointer 06:400B (loads Sound Effect and Text 0x30)
ROM3:6BEA D1               pop  de
ROM3:6BEB C1               pop  bc
ROM3:6BEC F1               pop  af
ROM3:6BED C9               ret

Elegant Egotist

ROM3:6BEE F5               push af
ROM3:6BEF C5               push bc
ROM3:6BF0 D5               push de
ROM3:6BF1 CD 93 5F         call 5F93		;Removes selected card
ROM3:6BF4 FA 8B C8         ld   a,(C88B)
ROM3:6BF7 4F               ld   c,a		;bc = Monster Card targeted
ROM3:6BF8 FA 8C C8         ld   a,(C88C)
ROM3:6BFB 47               ld   b,a
ROM3:6BFC 11 3E 00         ld   de,003E		;de = Harpie Lady ID
ROM3:6BFF CD 14 1B         call 1B14		;Checks if Monster ≠ Harpie Lady
ROM3:6C02 FE 00            cp   a,00
ROM3:6C04 20 35            jr   nz,6C3B		;If(Monster ID ≠ Harpie Lady), get out of this function
ROM3:6C06 CD D9 2A         call 2AD9		;Does nothing, there is no Sound Effect with the ID 0x20
ROM3:6C09 FA 00 C7         ld   a,(C700)	;Column to check
ROM3:6C0C 47               ld   b,a
ROM3:6C0D FA 01 C7         ld   a,(C701)	;Row to check
ROM3:6C10 4F               ld   c,a
ROM3:6C11 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:6C14 CD E6 19         call 19E6		;Remove selected card from the field
ROM3:6C17 01 3F 00         ld   bc,003F		;Harpie Lady Sisters ID
ROM3:6C1A C5               push bc
ROM3:6C1B CF               rst  08
          9B 01         => to 1:409B, pointer to 1:4ADF - Returns offset for selected card ID
ROM3:6C1E CF               rst  08
          0B 01       => 1:5292, (Try to) check if card ID is valid, store it to wC5FC
ROM3:6C21 CF               rst  08
          17 01         => to 1:4017, pointer to 1:5319 (register card if not owned)
ROM3:6C24 C1               pop  bc
ROM3:6C25 79               ld   a,c
ROM3:6C26 EA A3 C7         ld   (C7A3),a
ROM3:6C29 78               ld   a,b
ROM3:6C2A EA A4 C7         ld   (C7A4),a	;Card being processed = Harpie Lady Sisters
ROM3:6C2D CD 25 20         call 2025		;Hide Player's Card, reset Level
ROM3:6C30 CD C9 1F         call 1FC9		;Reveal Card
ROM3:6C33 CD FB 19         call 19FB		;Updates Card status
ROM3:6C36 3E 11            ld   a,11
ROM3:6C38 CF               rst  08		;Loads Sound Effect and Text 0x11
...
ROM3:6C3B D1               pop  de
ROM3:6C3C C1               pop  bc
ROM3:6C3D F1               pop  af
ROM3:6C3E C9               ret

Trap Cards 1 (set)

Widespread Ruin
ROM3:6C3F F5               push af
ROM3:6C40 CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C43 CD 9F 5E         call 5E9F
ROM3:6C46 CD 68 41         call 4168
ROM3:6C49 F1               pop  af
ROM3:6C4A C9               ret  
House of Adhesive Trap
ROM3:6C4B F5               push af
ROM3:6C4C CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C4F CD 9F 5E         call 5E9F
ROM3:6C52 CD 68 41         call 4168
ROM3:6C55 F1               pop  af
ROM3:6C56 C9               ret  
Eatgaboon
ROM3:6C57 F5               push af
ROM3:6C58 CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C5B CD 9F 5E         call 5E9F
ROM3:6C5E CD 68 41         call 4168
ROM3:6C61 F1               pop  af
ROM3:6C62 C9               ret  
Bear Trap
ROM3:6C63 F5               push af
ROM3:6C64 CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C67 CD 9F 5E         call 5E9F
ROM3:6C6A CD 68 41         call 4168
ROM3:6C6D F1               pop  af
ROM3:6C6E C9               ret  
Invisible Wire
ROM3:6C6F F5               push af
ROM3:6C70 CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C73 CD 9F 5E         call 5E9F
ROM3:6C76 CD 68 41         call 4168
ROM3:6C79 F1               pop  af
ROM3:6C7A C9               ret  
Acid Trap Hole
ROM3:6C7B F5               push af
ROM3:6C7C CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C7F CD 9F 5E         call 5E9F
ROM3:6C82 CD 68 41         call 4168
ROM3:6C85 F1               pop  af
ROM3:6C86 C9               ret  
Goblin Fan
ROM3:6C87 F5               push af
ROM3:6C88 CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C8B CD 9F 5E         call 5E9F
ROM3:6C8E CD 68 41         call 4168
ROM3:6C91 F1               pop  af
ROM3:6C92 C9               ret  
Simochi Allergy
ROM3:6C93 F5               push af
ROM3:6C94 CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6C97 CD 9F 5E         call 5E9F
ROM3:6C9A CD 68 41         call 4168
ROM3:6C9D F1               pop  af
ROM3:6C9E C9               ret  
Reverse Trap
ROM3:6C9F F5               push af
ROM3:6CA0 CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6CA3 CD 9F 5E         call 5E9F
ROM3:6CA6 CD 68 41         call 4168
ROM3:6CA9 F1               pop  af
ROM3:6CAA C9               ret  
Fake Trap
ROM3:6CAB F5               push af
ROM3:6CAC CD A9 2A         call 2AA9		;SE: Set Trap card
ROM3:6CAF CD 9F 5E         call 5E9F
ROM3:6CB2 CD 68 41         call 4168
ROM3:6CB5 F1               pop  af
ROM3:6CB6 C9               ret

Rituals 1

Black Luster Ritual
ROM3:6CB7 F5               push af
ROM3:6CB8 C5               push bc
ROM3:6CB9 D5               push de
ROM3:6CBA 01 00 00         ld   bc,0000
ROM3:6CBD CF               rst  08
ROM3:6CBE 25               dec  h
ROM3:6CBF 08 50 59         ld   (5950),sp
ROM3:6CC2 0E 02            ld   c,02
ROM3:6CC4 06 01            ld   b,01
ROM3:6CC6 78               ld   a,b
ROM3:6CC7 FE 06            cp   a,06
ROM3:6CC9 30 0A            jr   nc,6CD5
ROM3:6CCB CD 0D 52         call 520D
ROM3:6CCE FE 00            cp   a,00
ROM3:6CD0 28 03            jr   z,6CD5
ROM3:6CD2 04               inc  b
ROM3:6CD3 18 F1            jr   6CC6
ROM3:6CD5 78               ld   a,b
ROM3:6CD6 FE 06            cp   a,06
ROM3:6CD8 28 0A            jr   z,6CE4
ROM3:6CDA 3E 00            ld   a,00
ROM3:6CDC CF               rst  08
ROM3:6CDD 23               inc  hl
ROM3:6CDE 08 3E 45         ld   (453E),sp
ROM3:6CE1 CF               rst  08
ROM3:6CE2 0B               dec  bc
ROM3:6CE3 06 CD            ld   b,CD
ROM3:6CE5 7F               ld   a,a
ROM3:6CE6 5F               ld   e,a
ROM3:6CE7 CD 68 41         call 4168
ROM3:6CEA D1               pop  de
ROM3:6CEB C1               pop  bc
ROM3:6CEC F1               pop  af
ROM3:6CED C9               ret  
Zera Ritual
ROM3:6CEE F5               push af
ROM3:6CEF C5               push bc
ROM3:6CF0 D5               push de
ROM3:6CF1 01 00 01         ld   bc,0100
ROM3:6CF4 CF               rst  08
ROM3:6CF5 25               dec  h
ROM3:6CF6 08 50 59         ld   (5950),sp
ROM3:6CF9 0E 02            ld   c,02
ROM3:6CFB 06 01            ld   b,01
ROM3:6CFD 78               ld   a,b
ROM3:6CFE FE 06            cp   a,06
ROM3:6D00 30 0A            jr   nc,6D0C
ROM3:6D02 CD 0D 52         call 520D
ROM3:6D05 FE 00            cp   a,00
ROM3:6D07 28 03            jr   z,6D0C
ROM3:6D09 04               inc  b
ROM3:6D0A 18 F1            jr   6CFD
ROM3:6D0C 78               ld   a,b
ROM3:6D0D FE 06            cp   a,06
ROM3:6D0F 28 0A            jr   z,6D1B
ROM3:6D11 3E 01            ld   a,01
ROM3:6D13 CF               rst  08
ROM3:6D14 23               inc  hl
ROM3:6D15 08 3E 46         ld   (463E),sp
ROM3:6D18 CF               rst  08
ROM3:6D19 0B               dec  bc
ROM3:6D1A 06 CD            ld   b,CD
ROM3:6D1C 7F               ld   a,a
ROM3:6D1D 5F               ld   e,a
ROM3:6D1E CD 68 41         call 4168
ROM3:6D21 D1               pop  de
ROM3:6D22 C1               pop  bc
ROM3:6D23 F1               pop  af
ROM3:6D24 C9               ret  
War-lion Ritual
ROM3:6D25 F5               push af
ROM3:6D26 C5               push bc
ROM3:6D27 D5               push de
ROM3:6D28 01 00 02         ld   bc,0200
ROM3:6D2B CF               rst  08
ROM3:6D2C 25               dec  h
ROM3:6D2D 08 50 59         ld   (5950),sp
ROM3:6D30 0E 02            ld   c,02
ROM3:6D32 06 01            ld   b,01
ROM3:6D34 78               ld   a,b
ROM3:6D35 FE 06            cp   a,06
ROM3:6D37 30 0A            jr   nc,6D43
ROM3:6D39 CD 0D 52         call 520D
ROM3:6D3C FE 00            cp   a,00
ROM3:6D3E 28 03            jr   z,6D43
ROM3:6D40 04               inc  b
ROM3:6D41 18 F1            jr   6D34
ROM3:6D43 78               ld   a,b
ROM3:6D44 FE 06            cp   a,06
ROM3:6D46 28 0A            jr   z,6D52
ROM3:6D48 3E 02            ld   a,02
ROM3:6D4A CF               rst  08
ROM3:6D4B 23               inc  hl
ROM3:6D4C 08 3E 48         ld   (483E),sp
ROM3:6D4F CF               rst  08
ROM3:6D50 0B               dec  bc
ROM3:6D51 06 CD            ld   b,CD
ROM3:6D53 7F               ld   a,a
ROM3:6D54 5F               ld   e,a
ROM3:6D55 CD 68 41         call 4168
ROM3:6D58 D1               pop  de
ROM3:6D59 C1               pop  bc
ROM3:6D5A F1               pop  af
ROM3:6D5B C9               ret
Beastly Mirror Ritual
ROM3:6D5C F5               push af
ROM3:6D5D C5               push bc
ROM3:6D5E D5               push de
ROM3:6D5F 01 00 03         ld   bc,0300
ROM3:6D62 CF               rst  08
ROM3:6D63 25               dec  h
ROM3:6D64 08 50 59         ld   (5950),sp
ROM3:6D67 0E 02            ld   c,02
ROM3:6D69 06 01            ld   b,01
ROM3:6D6B 78               ld   a,b
ROM3:6D6C FE 06            cp   a,06
ROM3:6D6E 30 0A            jr   nc,6D7A
ROM3:6D70 CD 0D 52         call 520D
ROM3:6D73 FE 00            cp   a,00
ROM3:6D75 28 03            jr   z,6D7A
ROM3:6D77 04               inc  b
ROM3:6D78 18 F1            jr   6D6B
ROM3:6D7A 78               ld   a,b
ROM3:6D7B FE 06            cp   a,06
ROM3:6D7D 28 0A            jr   z,6D89
ROM3:6D7F 3E 03            ld   a,03
ROM3:6D81 CF               rst  08
ROM3:6D82 23               inc  hl
ROM3:6D83 08 3E 49         ld   (493E),sp
ROM3:6D86 CF               rst  08
ROM3:6D87 0B               dec  bc
ROM3:6D88 06 CD            ld   b,CD
ROM3:6D8A 7F               ld   a,a
ROM3:6D8B 5F               ld   e,a
ROM3:6D8C CD 68 41         call 4168
ROM3:6D8F D1               pop  de
ROM3:6D90 C1               pop  bc
ROM3:6D91 F1               pop  af
ROM3:6D92 C9               ret  
Ultimate Dragon
ROM3:6D93 F5               push af
ROM3:6D94 C5               push bc
ROM3:6D95 3E 04            ld   a,04
ROM3:6D97 CF               rst  08
ROM3:6D98 27               daa  
ROM3:6D99 08 FE 01         ld   (01FE),sp
ROM3:6D9C 20 0D            jr   nz,6DAB
ROM3:6D9E CD D1 2A         call 2AD1
ROM3:6DA1 3E 04            ld   a,04
ROM3:6DA3 CF               rst  08
ROM3:6DA4 21 08 3E         ld   hl,3E08
ROM3:6DA7 4A               ld   c,d
ROM3:6DA8 CF               rst  08
ROM3:6DA9 0B               dec  bc
ROM3:6DAA 06 CD            ld   b,CD
ROM3:6DAC 7F               ld   a,a
ROM3:6DAD 5F               ld   e,a
ROM3:6DAE CD 68 41         call 4168
ROM3:6DB1 C1               pop  bc
ROM3:6DB2 F1               pop  af
ROM3:6DB3 C9               ret  
Commencement Dance
ROM3:6DB4 F5               push af
ROM3:6DB5 C5               push bc
ROM3:6DB6 D5               push de
ROM3:6DB7 01 00 08         ld   bc,0800
ROM3:6DBA CF               rst  08
ROM3:6DBB 25               dec  h
ROM3:6DBC 08 50 59         ld   (5950),sp
ROM3:6DBF 0E 02            ld   c,02
ROM3:6DC1 06 01            ld   b,01
ROM3:6DC3 78               ld   a,b
ROM3:6DC4 FE 06            cp   a,06
ROM3:6DC6 30 0A            jr   nc,6DD2
ROM3:6DC8 CD 0D 52         call 520D
ROM3:6DCB FE 00            cp   a,00
ROM3:6DCD 28 03            jr   z,6DD2
ROM3:6DCF 04               inc  b
ROM3:6DD0 18 F1            jr   6DC3
ROM3:6DD2 78               ld   a,b
ROM3:6DD3 FE 06            cp   a,06
ROM3:6DD5 28 0A            jr   z,6DE1
ROM3:6DD7 3E 08            ld   a,08
ROM3:6DD9 CF               rst  08
ROM3:6DDA 23               inc  hl
ROM3:6DDB 08 3E 4B         ld   (4B3E),sp
ROM3:6DDE CF               rst  08
ROM3:6DDF 0B               dec  bc
ROM3:6DE0 06 CD            ld   b,CD
ROM3:6DE2 7F               ld   a,a
ROM3:6DE3 5F               ld   e,a
ROM3:6DE4 CD 68 41         call 4168
ROM3:6DE7 D1               pop  de
ROM3:6DE8 C1               pop  bc
ROM3:6DE9 F1               pop  af
ROM3:6DEA C9               ret  
Hamburger Recipe
ROM3:6DEB F5               push af
ROM3:6DEC C5               push bc
ROM3:6DED D5               push de
ROM3:6DEE 01 00 09         ld   bc,0900
ROM3:6DF1 CF               rst  08
ROM3:6DF2 25               dec  h
ROM3:6DF3 08 50 59         ld   (5950),sp
ROM3:6DF6 0E 02            ld   c,02
ROM3:6DF8 06 01            ld   b,01
ROM3:6DFA 78               ld   a,b
ROM3:6DFB FE 06            cp   a,06
ROM3:6DFD 30 0A            jr   nc,6E09
ROM3:6DFF CD 0D 52         call 520D
ROM3:6E02 FE 00            cp   a,00
ROM3:6E04 28 03            jr   z,6E09
ROM3:6E06 04               inc  b
ROM3:6E07 18 F1            jr   6DFA
ROM3:6E09 78               ld   a,b
ROM3:6E0A FE 06            cp   a,06
ROM3:6E0C 28 0A            jr   z,6E18
ROM3:6E0E 3E 09            ld   a,09
ROM3:6E10 CF               rst  08
ROM3:6E11 23               inc  hl
ROM3:6E12 08 3E 4C         ld   (4C3E),sp
ROM3:6E15 CF               rst  08
ROM3:6E16 0B               dec  bc
ROM3:6E17 06 CD            ld   b,CD
ROM3:6E19 7F               ld   a,a
ROM3:6E1A 5F               ld   e,a
ROM3:6E1B CD 68 41         call 4168
ROM3:6E1E D1               pop  de
ROM3:6E1F C1               pop  bc
ROM3:6E20 F1               pop  af
ROM3:6E21 C9               ret  
Revival of Sennen Genjin
ROM3:6E22 F5               push af
ROM3:6E23 C5               push bc
ROM3:6E24 D5               push de
ROM3:6E25 01 00 0A         ld   bc,0A00
ROM3:6E28 CF               rst  08
ROM3:6E29 25               dec  h
ROM3:6E2A 08 50 59         ld   (5950),sp
ROM3:6E2D 0E 02            ld   c,02
ROM3:6E2F 06 01            ld   b,01
ROM3:6E31 78               ld   a,b
ROM3:6E32 FE 06            cp   a,06
ROM3:6E34 30 0A            jr   nc,6E40
ROM3:6E36 CD 0D 52         call 520D
ROM3:6E39 FE 00            cp   a,00
ROM3:6E3B 28 03            jr   z,6E40
ROM3:6E3D 04               inc  b
ROM3:6E3E 18 F1            jr   6E31
ROM3:6E40 78               ld   a,b
ROM3:6E41 FE 06            cp   a,06
ROM3:6E43 28 0A            jr   z,6E4F
ROM3:6E45 3E 0A            ld   a,0A
ROM3:6E47 CF               rst  08
ROM3:6E48 23               inc  hl
ROM3:6E49 08 3E 4D         ld   (4D3E),sp
ROM3:6E4C CF               rst  08
ROM3:6E4D 0B               dec  bc
ROM3:6E4E 06 CD            ld   b,CD
ROM3:6E50 7F               ld   a,a
ROM3:6E51 5F               ld   e,a
ROM3:6E52 CD 68 41         call 4168
ROM3:6E55 D1               pop  de
ROM3:6E56 C1               pop  bc
ROM3:6E57 F1               pop  af
ROM3:6E58 C9               ret  
Novox's Prayer
ROM3:6E59 F5               push af
ROM3:6E5A C5               push bc
ROM3:6E5B D5               push de
ROM3:6E5C 01 00 0B         ld   bc,0B00
ROM3:6E5F CF               rst  08
ROM3:6E60 25               dec  h
ROM3:6E61 08 50 59         ld   (5950),sp
ROM3:6E64 0E 02            ld   c,02
ROM3:6E66 06 01            ld   b,01
ROM3:6E68 78               ld   a,b
ROM3:6E69 FE 06            cp   a,06
ROM3:6E6B 30 0A            jr   nc,6E77
ROM3:6E6D CD 0D 52         call 520D
ROM3:6E70 FE 00            cp   a,00
ROM3:6E72 28 03            jr   z,6E77
ROM3:6E74 04               inc  b
ROM3:6E75 18 F1            jr   6E68
ROM3:6E77 78               ld   a,b
ROM3:6E78 FE 06            cp   a,06
ROM3:6E7A 28 0A            jr   z,6E86
ROM3:6E7C 3E 0B            ld   a,0B
ROM3:6E7E CF               rst  08
ROM3:6E7F 23               inc  hl
ROM3:6E80 08 3E 4E         ld   (4E3E),sp
ROM3:6E83 CF               rst  08
ROM3:6E84 0B               dec  bc
ROM3:6E85 06 CD            ld   b,CD
ROM3:6E87 7F               ld   a,a
ROM3:6E88 5F               ld   e,a
ROM3:6E89 CD 68 41         call 4168
ROM3:6E8C D1               pop  de
ROM3:6E8D C1               pop  bc
ROM3:6E8E F1               pop  af
ROM3:6E8F C9               ret  
Curse of Tri-Horned Dragon
ROM3:6E90 F5               push af
ROM3:6E91 C5               push bc
ROM3:6E92 D5               push de
ROM3:6E93 01 00 0C         ld   bc,0C00
ROM3:6E96 CF               rst  08
ROM3:6E97 25               dec  h
ROM3:6E98 08 50 59         ld   (5950),sp
ROM3:6E9B 0E 02            ld   c,02
ROM3:6E9D 06 01            ld   b,01
ROM3:6E9F 78               ld   a,b
ROM3:6EA0 FE 06            cp   a,06
ROM3:6EA2 30 0A            jr   nc,6EAE
ROM3:6EA4 CD 0D 52         call 520D
ROM3:6EA7 FE 00            cp   a,00
ROM3:6EA9 28 03            jr   z,6EAE
ROM3:6EAB 04               inc  b
ROM3:6EAC 18 F1            jr   6E9F
ROM3:6EAE 78               ld   a,b
ROM3:6EAF FE 06            cp   a,06
ROM3:6EB1 28 0A            jr   z,6EBD
ROM3:6EB3 3E 0C            ld   a,0C
ROM3:6EB5 CF               rst  08
ROM3:6EB6 23               inc  hl
ROM3:6EB7 08 3E 4F         ld   (4F3E),sp
ROM3:6EBA CF               rst  08
ROM3:6EBB 0B               dec  bc
ROM3:6EBC 06 CD            ld   b,CD
ROM3:6EBE 7F               ld   a,a
ROM3:6EBF 5F               ld   e,a
ROM3:6EC0 CD 68 41         call 4168
ROM3:6EC3 D1               pop  de
ROM3:6EC4 C1               pop  bc
ROM3:6EC5 F1               pop  af
ROM3:6EC6 C9               ret  
Revived Serpent Night Dragon
ROM3:6EC7 F5               push af
ROM3:6EC8 C5               push bc
ROM3:6EC9 D5               push de
ROM3:6ECA 01 00 0D         ld   bc,0D00			;That's Darkfire Dragon, not Blackland Fire Dragon
ROM3:6ECD CF               rst  08
ROM3:6ECE 25 08      => 8:4025				;Points to 8:4901, Read Ritual Monster Material
ROM3:6ECF 50               ld   d,b
ROM3:6ED0 59               ld   e,c
ROM3:6ED1 0E 02            ld   c,02
ROM3:6ED4 06 01            ld   b,01
ROM3:6ED6 78               ld   a,b
ROM3:6ED7 FE 06            cp   a,06
ROM3:6ED9 30 0A            jr   nc,6EE5
ROM3:6EDB CD 0D 52         call 520D
ROM3:6EDE FE 00            cp   a,00
ROM3:6EE0 28 03            jr   z,6EE5
ROM3:6EE2 04               inc  b
ROM3:6EE3 18 F1            jr   6ED6
ROM3:6EE5 78               ld   a,b
ROM3:6EE6 FE 06            cp   a,06
ROM3:6EE8 28 0A            jr   z,6EF4
ROM3:6EEA 3E 0D            ld   a,0D
ROM3:6EEC CF               rst  08
ROM3:6EED 23               inc  hl
ROM3:6EEE 08 3E 5A         ld   (5A3E),sp
ROM3:6EF1 CF               rst  08
ROM3:6EF2 0B               dec  bc
ROM3:6EF3 06 CD            ld   b,CD
ROM3:6EF5 7F               ld   a,a
ROM3:6EF6 5F               ld   e,a
ROM3:6EF7 CD 68 41         call 4168
ROM3:6EFA D1               pop  de
ROM3:6EFB C1               pop  bc
ROM3:6EFC F1               pop  af
ROM3:6EFD C9               ret

Harpie's Feather Duster

ROM3:6EFE F5               push af
ROM3:6EFF CF               rst  08
ROM3:6F00 17 0A       => Pointer 0A:4017
ROM3:6F02 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:6F05 CD 68 41         call 4168
ROM3:6F08 3E 47            ld   a,47
ROM3:6F0A CF               rst  08		;Loads Sound Effect and Text 0x47
ROM3:6F0B 0B 06       => Pointer 06:400B
ROM3:6F0C F1               pop  af
ROM3:6F0E C9               ret

Equip Spells 2

Magical Labyrinth
ROM3:6F0F F5               push af
ROM3:6F10 C5               push bc
ROM3:6F11 D5               push de
ROM3:6F12 FA 8B C8         ld   a,(C88B)
ROM3:6F15 4F               ld   c,a
ROM3:6F16 FA 8C C8         ld   a,(C88C)
ROM3:6F19 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6F1A 16 1A            ld   d,1A
ROM3:6F1C CF               rst  08
ROM3:6F1D 0D 07       => Pointer 07:400D
ROM3:6F1F FE 01            cp   a,01
ROM3:6F21 20 26            jr   nz,6F49
ROM3:6F23 CF               rst  08
ROM3:6F24 0D 0A       => Pointer 0A:400D
ROM3:6F26 FE 00            cp   a,00
ROM3:6F28 20 16            jr   nz,6F40
ROM3:6F2A FA 00 C7         ld   a,(C700)	;Column to check
ROM3:6F2D 47               ld   b,a
ROM3:6F2E FA 01 C7         ld   a,(C701)	;Row to check
ROM3:6F31 4F               ld   c,a
ROM3:6F32 CD C7 50         call 50C7
ROM3:6F35 CD 93 5F         call 5F93		;Removes selected card
ROM3:6F38 01 8C 02         ld   bc,028C
ROM3:6F3B CD 5D 61         call 615D
ROM3:6F3E 18 09            jr   6F49
ROM3:6F40 CF               rst  08
ROM3:6F41 0F 0A       => Pointer 0A:400F
ROM3:6F43 CD 93 5F         call 5F93		;Removes selected card
ROM3:6F46 CF               rst  08
ROM3:6F47 07 06       => Pointer 06:4007
ROM3:6F49 D1               pop  de
ROM3:6F4A C1               pop  bc
ROM3:6F4B F1               pop  af
ROM3:6F4C C9               ret
Salamandra
ROM3:6F4D F5               push af
ROM3:6F4E C5               push bc
ROM3:6F4F D5               push de
ROM3:6F50 FA 8B C8         ld   a,(C88B)
ROM3:6F53 4F               ld   c,a
ROM3:6F54 FA 8C C8         ld   a,(C88C)
ROM3:6F57 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6F58 16 1B            ld   d,1B
ROM3:6F5A CF               rst  08
ROM3:6F5B 0D 07       => Pointer 07:400D
ROM3:6F5D FE 01            cp   a,01
ROM3:6F5F 20 26            jr   nz,6F87
ROM3:6F61 CF               rst  08
ROM3:6F62 0D 0A       => Pointer 0A:400D
ROM3:6F64 FE 00            cp   a,00
ROM3:6F66 20 16            jr   nz,6F7E
ROM3:6F68 FA 00 C7         ld   a,(C700)	;Column to check
ROM3:6F6B 47               ld   b,a
ROM3:6F6C FA 01 C7         ld   a,(C701)	;Row to check
ROM3:6F6F 4F               ld   c,a
ROM3:6F70 CD C7 50         call 50C7
ROM3:6F73 CD 93 5F         call 5F93		;Removes selected card
ROM3:6F76 01 8E 02         ld   bc,028E
ROM3:6F79 CD 5D 61         call 615D
ROM3:6F7C 18 09            jr   6F87
ROM3:6F7E CF               rst  08
ROM3:6F7F 0F 0A       => Pointer 0A:400F
ROM3:6F81 CD 93 5F         call 5F93		;Removes selected card
ROM3:6F84 CF               rst  08
ROM3:6F85 07 06       => Pointer 06:4007
ROM3:6F86 D1               pop  de
ROM3:6F88 C1               pop  bc
ROM3:6F89 F1               pop  af
ROM3:6F8A C9               ret
Kunai with Chain
ROM3:6F8B F5               push af
ROM3:6F8C C5               push bc
ROM3:6F8D D5               push de
ROM3:6F8E FA 8B C8         ld   a,(C88B)
ROM3:6F91 4F               ld   c,a
ROM3:6F92 FA 8C C8         ld   a,(C88C)
ROM3:6F95 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6F96 16 1C            ld   d,1C
ROM3:6F98 CF               rst  08
ROM3:6F99 0D               dec  c
ROM3:6F9A 07               rlca 
ROM3:6F9B FE 01            cp   a,01
ROM3:6F9D 20 26            jr   nz,6FC5
ROM3:6F9F CF               rst  08
ROM3:6FA0 0D               dec  c
ROM3:6FA1 0A               ld   a,(bc)
ROM3:6FA2 FE 00            cp   a,00
ROM3:6FA4 20 16            jr   nz,6FBC
ROM3:6FA6 FA 00 C7         ld   a,(C700)	;Column to check
ROM3:6FA9 47               ld   b,a
ROM3:6FAA FA 01 C7         ld   a,(C701)	;Row to check
ROM3:6FAD 4F               ld   c,a
ROM3:6FAE CD C7 50         call 50C7
ROM3:6FB1 CD 93 5F         call 5F93		;Removes selected card
ROM3:6FB4 01 8B 02         ld   bc,028B
ROM3:6FB7 CD 5D 61         call 615D
ROM3:6FBA 18 09            jr   6FC5
ROM3:6FBC CF               rst  08
ROM3:6FBD 0F               rrca 
ROM3:6FBE 0A               ld   a,(bc)
ROM3:6FBF CD 93 5F         call 5F93		;Removes selected card
ROM3:6FC2 CF               rst  08
ROM3:6FC3 07               rlca 
ROM3:6FC4 06 D1            ld   b,D1
ROM3:6FC6 C1               pop  bc
ROM3:6FC7 F1               pop  af
ROM3:6FC8 C9               ret  
Bright Castle
ROM3:6FC9 F5               push af
ROM3:6FCA C5               push bc
ROM3:6FCB D5               push de
ROM3:6FCC FA 8B C8         ld   a,(C88B)
ROM3:6FCF 4F               ld   c,a
ROM3:6FD0 FA 8C C8         ld   a,(C88C)
ROM3:6FD3 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:6FD4 16 1D            ld   d,1D
ROM3:6FD6 CF               rst  08
ROM3:6FD7 0D               dec  c
ROM3:6FD8 07               rlca 
ROM3:6FD9 FE 01            cp   a,01
ROM3:6FDB 20 26            jr   nz,7003
ROM3:6FDD CF               rst  08
ROM3:6FDE 0D               dec  c
ROM3:6FDF 0A               ld   a,(bc)
ROM3:6FE0 FE 00            cp   a,00
ROM3:6FE2 20 16            jr   nz,6FFA
ROM3:6FE4 FA 00 C7         ld   a,(C700)	;Column to check
ROM3:6FE7 47               ld   b,a
ROM3:6FE8 FA 01 C7         ld   a,(C701)	;Row to check
ROM3:6FEB 4F               ld   c,a
ROM3:6FEC CD C7 50         call 50C7
ROM3:6FEF CD 93 5F         call 5F93		;Removes selected card
ROM3:6FF2 01 9C 02         ld   bc,029C
ROM3:6FF5 CD 5D 61         call 615D
ROM3:6FF8 18 09            jr   7003
ROM3:6FFA CF               rst  08
ROM3:6FFB 0F               rrca 
ROM3:6FFC 0A               ld   a,(bc)
ROM3:6FFD CD 93 5F         call 5F93		;Removes selected card
ROM3:7000 CF               rst  08
ROM3:7001 07               rlca 
ROM3:7002 06 D1            ld   b,D1
ROM3:7004 C1               pop  bc
ROM3:7005 F1               pop  af
ROM3:7006 C9               ret  

Crush Card

  • 0xF007-0xF041 - Crush Card effect
ROM3:7007 F5               push af
ROM3:7008 C5               push bc
ROM3:7009 0E 01            ld   c,01
ROM3:700B 06 00            ld   b,00
ROM3:700D 78               ld   a,b
ROM3:700E FE 05            cp   a,05
ROM3:7010 30 24            jr   nc,7036
ROM3:7012 CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:7015 FE 00            cp   a,00
ROM3:7017 20 1A            jr   nz,7033
ROM3:7019 CF               rst  08
ROM3:701A 0B               dec  bc
ROM3:701B 07               rlca 
ROM3:701C C5               push bc
ROM3:701D FA B7 C6         ld   a,(C6B7)
ROM3:7020 4F               ld   c,a
ROM3:7021 FA B8 C6         ld   a,(C6B8)
ROM3:7024 47               ld   b,a
ROM3:7025 11 00 15         ld   de,1500		;1500 ATK
ROM3:7028 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM3:702B C1               pop  bc
ROM3:702C FE 02            cp   a,02
ROM3:702E 28 03            jr   z,7033		;If the Monster has less than 1500 ATK, jump to 3:7033
ROM3:7030 CD 86 20         call 2086		;Remove selected card from the field
ROM3:7033 04               inc  b		;Next monster
ROM3:7034 18 D7            jr   700D
ROM3:7036 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:7039 CD F1 2A         call 2AF1
ROM3:703C CD 68 41         call 4168
ROM3:703F 3E 3C            ld   a,3C
ROM3:7041 CF               rst  08		;Loads Sound Effect and Text 0x3C
ROM3:7042 0B               dec  bc
ROM3:7043 06 C1            ld   b,C1
ROM3:7045 F1               pop  af
ROM3:7046 C9               ret

Shadow Spell

  • 0xF047-0xF06D - Shadow Spell effect
ROM3:7047 F5               push af
ROM3:7048 C5               push bc
ROM3:7049 0E 01            ld   c,01		;Row 1
ROM3:704B 06 00            ld   b,00		;Column 0
ROM3:704D 78               ld   a,b
ROM3:704E FE 05            cp   a,05
ROM3:7050 30 13            jr   nc,7065		;If the effect has been applied to every CPU's Monsters, jump to 3:7065
ROM3:7052 CD CB 4E         call 4ECB		;Check if there's a Monster Card in this column
ROM3:7055 FE 00            cp   a,00
ROM3:7057 20 09            jr   nz,7062		;If there's no Monster Card, loop to next column
ROM3:7059 CD 92 1F         call 1F92		;Decrease Card Level
ROM3:705C CD 92 1F         call 1F92		;Decrease Card Level
ROM3:705F CD FB 19         call 19FB		;Updates Card status
ROM3:7062 04               inc  b		;Next column
ROM3:7063 18 E8            jr   704D		;Loop
ROM3:7065 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:7068 CD 68 41         call 4168
ROM3:706B 3E 44            ld   a,44
ROM3:706D CF               rst  08		;Loads Sound Effect and Text 0x44
ROM3:706E 0B               dec  bc
ROM3:706F 06 C1            ld   b,C1
ROM3:7071 F1               pop  af
ROM3:7072 C9               ret

Rituals 2

Turtle Oath
ROM3:7073 F5               push af
ROM3:7074 C5               push bc
ROM3:7075 D5               push de
ROM3:7076 01 00 0E         ld   bc,0E00
ROM3:7079 CF               rst  08
ROM3:707A 25               dec  h
ROM3:707B 08 50 59         ld   (5950),sp
ROM3:707E 0E 02            ld   c,02
ROM3:7080 06 01            ld   b,01
ROM3:7082 78               ld   a,b
ROM3:7083 FE 06            cp   a,06
ROM3:7085 30 0A            jr   nc,7091
ROM3:7087 CD 0D 52         call 520D
ROM3:708A FE 00            cp   a,00
ROM3:708C 28 03            jr   z,7091
ROM3:708E 04               inc  b
ROM3:708F 18 F1            jr   7082
ROM3:7091 78               ld   a,b
ROM3:7092 FE 06            cp   a,06
ROM3:7094 28 0A            jr   z,70A0
ROM3:7096 3E 0E            ld   a,0E
ROM3:7098 CF               rst  08
ROM3:7099 23               inc  hl
ROM3:709A 08 3E 5B         ld   (5B3E),sp
ROM3:709D CF               rst  08
ROM3:709E 0B               dec  bc
ROM3:709F 06 CD            ld   b,CD
ROM3:70A1 7F               ld   a,a
ROM3:70A2 5F               ld   e,a
ROM3:70A3 CD 68 41         call 4168
ROM3:70A6 D1               pop  de
ROM3:70A7 C1               pop  bc
ROM3:70A8 F1               pop  af
ROM3:70A9 C9               ret  
Contract of Mask
ROM3:70AA F5               push af
ROM3:70AB C5               push bc
ROM3:70AC D5               push de
ROM3:70AD 01 00 0F         ld   bc,0F00
ROM3:70B0 CF               rst  08
ROM3:70B1 25               dec  h
ROM3:70B2 08 50 59         ld   (5950),sp
ROM3:70B5 0E 02            ld   c,02
ROM3:70B7 06 01            ld   b,01
ROM3:70B9 78               ld   a,b
ROM3:70BA FE 06            cp   a,06
ROM3:70BC 30 0A            jr   nc,70C8
ROM3:70BE CD 0D 52         call 520D
ROM3:70C1 FE 00            cp   a,00
ROM3:70C3 28 03            jr   z,70C8
ROM3:70C5 04               inc  b
ROM3:70C6 18 F1            jr   70B9
ROM3:70C8 78               ld   a,b
ROM3:70C9 FE 06            cp   a,06
ROM3:70CB 28 0A            jr   z,70D7
ROM3:70CD 3E 0F            ld   a,0F
ROM3:70CF CF               rst  08
ROM3:70D0 23               inc  hl
ROM3:70D1 08 3E 5C         ld   (5C3E),sp
ROM3:70D4 CF               rst  08
ROM3:70D5 0B               dec  bc
ROM3:70D6 06 CD            ld   b,CD
ROM3:70D8 7F               ld   a,a
ROM3:70D9 5F               ld   e,a
ROM3:70DA CD 68 41         call 4168
ROM3:70DD D1               pop  de
ROM3:70DE C1               pop  bc
ROM3:70DF F1               pop  af
ROM3:70E0 C9               ret  
Resurrection of Chakra
ROM3:70E1 F5               push af
ROM3:70E2 C5               push bc
ROM3:70E3 D5               push de
ROM3:70E4 01 00 10         ld   bc,1000
ROM3:70E7 CF               rst  08
ROM3:70E8 25               dec  h
ROM3:70E9 08 50 59         ld   (5950),sp
ROM3:70EC 0E 02            ld   c,02
ROM3:70EE 06 01            ld   b,01
ROM3:70F0 78               ld   a,b
ROM3:70F1 FE 06            cp   a,06
ROM3:70F3 30 0A            jr   nc,70FF
ROM3:70F5 CD 0D 52         call 520D
ROM3:70F8 FE 00            cp   a,00
ROM3:70FA 28 03            jr   z,70FF
ROM3:70FC 04               inc  b
ROM3:70FD 18 F1            jr   70F0
ROM3:70FF 78               ld   a,b
ROM3:7100 FE 06            cp   a,06
ROM3:7102 28 0A            jr   z,710E
ROM3:7104 3E 10            ld   a,10
ROM3:7106 CF               rst  08
ROM3:7107 23               inc  hl
ROM3:7108 08 3E 5D         ld   (5D3E),sp
ROM3:710B CF               rst  08
ROM3:710C 0B               dec  bc
ROM3:710D 06 CD            ld   b,CD
ROM3:710F 7F               ld   a,a
ROM3:7110 5F               ld   e,a
ROM3:7111 CD 68 41         call 4168
ROM3:7114 D1               pop  de
ROM3:7115 C1               pop  bc
ROM3:7116 F1               pop  af
ROM3:7117 C9               ret  
Puppet Ritual
ROM3:7118 F5               push af
ROM3:7119 C5               push bc
ROM3:711A D5               push de
ROM3:711B 01 00 11         ld   bc,1100
ROM3:711E CF               rst  08
ROM3:711F 25               dec  h
ROM3:7120 08 50 59         ld   (5950),sp
ROM3:7123 0E 02            ld   c,02
ROM3:7125 06 01            ld   b,01
ROM3:7127 78               ld   a,b
ROM3:7128 FE 06            cp   a,06
ROM3:712A 30 0A            jr   nc,7136
ROM3:712C CD 0D 52         call 520D
ROM3:712F FE 00            cp   a,00
ROM3:7131 28 03            jr   z,7136
ROM3:7133 04               inc  b
ROM3:7134 18 F1            jr   7127
ROM3:7136 78               ld   a,b
ROM3:7137 FE 06            cp   a,06
ROM3:7139 28 0A            jr   z,7145
ROM3:713B 3E 11            ld   a,11
ROM3:713D CF               rst  08
ROM3:713E 23               inc  hl
ROM3:713F 08 3E 5E         ld   (5E3E),sp
ROM3:7142 CF               rst  08
ROM3:7143 0B               dec  bc
ROM3:7144 06 CD            ld   b,CD
ROM3:7146 7F               ld   a,a
ROM3:7147 5F               ld   e,a
ROM3:7148 CD 68 41         call 4168
ROM3:714B D1               pop  de
ROM3:714C C1               pop  bc
ROM3:714D F1               pop  af
ROM3:714E C9               ret  
Javelin Beetle Pact
ROM3:714F F5               push af
ROM3:7150 C5               push bc
ROM3:7151 D5               push de
ROM3:7152 01 00 12         ld   bc,1200
ROM3:7155 CF               rst  08
ROM3:7156 25               dec  h
ROM3:7157 08 50 59         ld   (5950),sp
ROM3:715A 0E 02            ld   c,02
ROM3:715C 06 01            ld   b,01
ROM3:715E 78               ld   a,b
ROM3:715F FE 06            cp   a,06
ROM3:7161 30 0A            jr   nc,716D
ROM3:7163 CD 0D 52         call 520D
ROM3:7166 FE 00            cp   a,00
ROM3:7168 28 03            jr   z,716D
ROM3:716A 04               inc  b
ROM3:716B 18 F1            jr   715E
ROM3:716D 78               ld   a,b
ROM3:716E FE 06            cp   a,06
ROM3:7170 28 0A            jr   z,717C
ROM3:7172 3E 12            ld   a,12
ROM3:7174 CF               rst  08
ROM3:7175 23               inc  hl
ROM3:7176 08 3E 5F         ld   (5F3E),sp
ROM3:7179 CF               rst  08
ROM3:717A 0B               dec  bc
ROM3:717B 06 CD            ld   b,CD
ROM3:717D 7F               ld   a,a
ROM3:717E 5F               ld   e,a
ROM3:717F CD 68 41         call 4168
ROM3:7182 D1               pop  de
ROM3:7183 C1               pop  bc
ROM3:7184 F1               pop  af
ROM3:7185 C9               ret  
Garma Sword Oath
ROM3:7186 F5               push af
ROM3:7187 C5               push bc
ROM3:7188 D5               push de
ROM3:7189 01 00 13         ld   bc,1300
ROM3:718C CF               rst  08
ROM3:718D 25               dec  h
ROM3:718E 08 50 59         ld   (5950),sp
ROM3:7191 0E 02            ld   c,02
ROM3:7193 06 01            ld   b,01
ROM3:7195 78               ld   a,b
ROM3:7196 FE 06            cp   a,06
ROM3:7198 30 0A            jr   nc,71A4
ROM3:719A CD 0D 52         call 520D
ROM3:719D FE 00            cp   a,00
ROM3:719F 28 03            jr   z,71A4
ROM3:71A1 04               inc  b
ROM3:71A2 18 F1            jr   7195
ROM3:71A4 78               ld   a,b
ROM3:71A5 FE 06            cp   a,06
ROM3:71A7 28 0A            jr   z,71B3
ROM3:71A9 3E 13            ld   a,13
ROM3:71AB CF               rst  08
ROM3:71AC 23               inc  hl
ROM3:71AD 08 3E 60         ld   (603E),sp
ROM3:71B0 CF               rst  08
ROM3:71B1 0B               dec  bc
ROM3:71B2 06 CD            ld   b,CD
ROM3:71B4 7F               ld   a,a
ROM3:71B5 5F               ld   e,a
ROM3:71B6 CD 68 41         call 4168
ROM3:71B9 D1               pop  de
ROM3:71BA C1               pop  bc
ROM3:71BB F1               pop  af
ROM3:71BC C9               ret  
Cosmo Queen's Prayer
ROM3:71BD F5               push af
ROM3:71BE C5               push bc
ROM3:71BF D5               push de
ROM3:71C0 01 00 14         ld   bc,1400
ROM3:71C3 CF               rst  08
ROM3:71C4 25               dec  h
ROM3:71C5 08 50 59         ld   (5950),sp
ROM3:71C8 0E 02            ld   c,02
ROM3:71CA 06 01            ld   b,01
ROM3:71CC 78               ld   a,b
ROM3:71CD FE 06            cp   a,06
ROM3:71CF 30 0A            jr   nc,71DB
ROM3:71D1 CD 0D 52         call 520D
ROM3:71D4 FE 00            cp   a,00
ROM3:71D6 28 03            jr   z,71DB
ROM3:71D8 04               inc  b
ROM3:71D9 18 F1            jr   71CC
ROM3:71DB 78               ld   a,b
ROM3:71DC FE 06            cp   a,06
ROM3:71DE 28 0A            jr   z,71EA
ROM3:71E0 3E 14            ld   a,14
ROM3:71E2 CF               rst  08
ROM3:71E3 23               inc  hl
ROM3:71E4 08 3E 61         ld   (613E),sp
ROM3:71E7 CF               rst  08
ROM3:71E8 0B               dec  bc
ROM3:71E9 06 CD            ld   b,CD
ROM3:71EB 7F               ld   a,a
ROM3:71EC 5F               ld   e,a
ROM3:71ED CD 68 41         call 4168
ROM3:71F0 D1               pop  de
ROM3:71F1 C1               pop  bc
ROM3:71F2 F1               pop  af
ROM3:71F3 C9               ret
Revival of Skeleton
ROM3:71F4 F5               push af
ROM3:71F5 C5               push bc
ROM3:71F6 D5               push de
ROM3:71F7 01 00 15         ld   bc,1500
ROM3:71FA CF               rst  08
ROM3:71FB 25               dec  h
ROM3:71FC 08 50 59         ld   (5950),sp
ROM3:71FF 0E 02            ld   c,02
ROM3:7201 06 01            ld   b,01
ROM3:7203 78               ld   a,b
ROM3:7204 FE 06            cp   a,06
ROM3:7206 30 0A            jr   nc,7212
ROM3:7208 CD 0D 52         call 520D
ROM3:720B FE 00            cp   a,00
ROM3:720D 28 03            jr   z,7212
ROM3:720F 04               inc  b
ROM3:7210 18 F1            jr   7203
ROM3:7212 78               ld   a,b
ROM3:7213 FE 06            cp   a,06
ROM3:7215 28 0A            jr   z,7221
ROM3:7217 3E 15            ld   a,15
ROM3:7219 CF               rst  08
ROM3:721A 23               inc  hl
ROM3:721B 08 3E 62         ld   (623E),sp
ROM3:721E CF               rst  08
ROM3:721F 0B               dec  bc
ROM3:7220 06 CD            ld   b,CD
ROM3:7222 7F               ld   a,a
ROM3:7223 5F               ld   e,a
ROM3:7224 CD 68 41         call 4168
ROM3:7227 D1               pop  de
ROM3:7228 C1               pop  bc
ROM3:7229 F1               pop  af
ROM3:722A C9               ret  
Fortress Whale's Oath
ROM3:722B F5               push af
ROM3:722C C5               push bc
ROM3:722D D5               push de
ROM3:722E 01 00 16         ld   bc,1600
ROM3:7231 CF               rst  08
ROM3:7232 25               dec  h
ROM3:7233 08 50 59         ld   (5950),sp
ROM3:7236 0E 02            ld   c,02
ROM3:7238 06 01            ld   b,01
ROM3:723A 78               ld   a,b
ROM3:723B FE 06            cp   a,06
ROM3:723D 30 0A            jr   nc,7249
ROM3:723F CD 0D 52         call 520D
ROM3:7242 FE 00            cp   a,00
ROM3:7244 28 03            jr   z,7249
ROM3:7246 04               inc  b
ROM3:7247 18 F1            jr   723A
ROM3:7249 78               ld   a,b
ROM3:724A FE 06            cp   a,06
ROM3:724C 28 0A            jr   z,7258
ROM3:724E 3E 16            ld   a,16
ROM3:7250 CF               rst  08
ROM3:7251 23               inc  hl
ROM3:7252 08 3E 63         ld   (633E),sp
ROM3:7255 CF               rst  08
ROM3:7256 0B               dec  bc
ROM3:7257 06 CD            ld   b,CD
ROM3:7259 7F               ld   a,a
ROM3:725A 5F               ld   e,a
ROM3:725B CD 68 41         call 4168
ROM3:725E D1               pop  de
ROM3:725F C1               pop  bc
ROM3:7260 F1               pop  af
ROM3:7261 C9               ret  
Curse of Millennium Shield
ROM3:7262 F5               push af
ROM3:7263 C5               push bc
ROM3:7264 D5               push de
ROM3:7265 01 00 05         ld   bc,0500
ROM3:7268 CF               rst  08
ROM3:7269 25               dec  h
ROM3:726A 08 50 59         ld   (5950),sp
ROM3:726D 0E 02            ld   c,02
ROM3:726F 06 01            ld   b,01
ROM3:7271 78               ld   a,b
ROM3:7272 FE 06            cp   a,06
ROM3:7274 30 0A            jr   nc,7280
ROM3:7276 CD 0D 52         call 520D
ROM3:7279 FE 00            cp   a,00
ROM3:727B 28 03            jr   z,7280
ROM3:727D 04               inc  b
ROM3:727E 18 F1            jr   7271
ROM3:7280 78               ld   a,b
ROM3:7281 FE 06            cp   a,06
ROM3:7283 28 0A            jr   z,728F
ROM3:7285 3E 05            ld   a,05
ROM3:7287 CF               rst  08
ROM3:7288 23               inc  hl
ROM3:7289 08 3E 40         ld   (403E),sp
ROM3:728C CF               rst  08
ROM3:728D 0B               dec  bc
ROM3:728E 06 CD            ld   b,CD
ROM3:7290 7F               ld   a,a
ROM3:7291 5F               ld   e,a
ROM3:7292 CD 68 41         call 4168
ROM3:7295 D1               pop  de
ROM3:7296 C1               pop  bc
ROM3:7297 F1               pop  af
ROM3:7298 C9               ret  
Yamadron Ritual
ROM3:7299 F5               push af
ROM3:729A C5               push bc
ROM3:729B D5               push de
ROM3:729C 01 00 06         ld   bc,0600
ROM3:729F CF               rst  08
ROM3:72A0 25               dec  h
ROM3:72A1 08 50 59         ld   (5950),sp
ROM3:72A4 0E 02            ld   c,02
ROM3:72A6 06 01            ld   b,01
ROM3:72A8 78               ld   a,b
ROM3:72A9 FE 06            cp   a,06
ROM3:72AB 30 0A            jr   nc,72B7
ROM3:72AD CD 0D 52         call 520D
ROM3:72B0 FE 00            cp   a,00
ROM3:72B2 28 03            jr   z,72B7
ROM3:72B4 04               inc  b
ROM3:72B5 18 F1            jr   72A8
ROM3:72B7 78               ld   a,b
ROM3:72B8 FE 06            cp   a,06
ROM3:72BA 28 0A            jr   z,72C6
ROM3:72BC 3E 06            ld   a,06
ROM3:72BE CF               rst  08
ROM3:72BF 23               inc  hl
ROM3:72C0 08 3E 41         ld   (413E),sp
ROM3:72C3 CF               rst  08
ROM3:72C4 0B               dec  bc
ROM3:72C5 06 CD            ld   b,CD
ROM3:72C7 7F               ld   a,a
ROM3:72C8 5F               ld   e,a
ROM3:72C9 CD 68 41         call 4168
ROM3:72CC D1               pop  de
ROM3:72CD C1               pop  bc
ROM3:72CE F1               pop  af
ROM3:72CF C9               ret
Gate Guardian Ritual
ROM3:72D0 F5               push af
ROM3:72D1 C5               push bc
ROM3:72D2 3E 07            ld   a,07
ROM3:72D4 CF               rst  08
ROM3:72D5 27               daa  
ROM3:72D6 08 FE 01         ld   (01FE),sp
ROM3:72D9 20 0D            jr   nz,72E8
ROM3:72DB CD D1 2A         call 2AD1
ROM3:72DE 3E 07            ld   a,07
ROM3:72E0 CF               rst  08
ROM3:72E1 21 08 3E         ld   hl,3E08
ROM3:72E4 42               ld   b,d
ROM3:72E5 CF               rst  08
ROM3:72E6 0B               dec  bc
ROM3:72E7 06 CD            ld   b,CD
ROM3:72E9 7F               ld   a,a
ROM3:72EA 5F               ld   e,a
ROM3:72EB CD 68 41         call 4168
ROM3:72EE C1               pop  bc
ROM3:72EF F1               pop  af
ROM3:72F0 C9               ret  

Warrior Elimination

ROM3:72F1 F5               push af
ROM3:72F2 C5               push bc
ROM3:72F3 D5               push de
ROM3:72F4 1E 01            ld   e,01
ROM3:72F6 0E 01            ld   c,01
ROM3:72F8 06 00            ld   b,00
ROM3:72FA 78               ld   a,b
ROM3:72FB FE 05            cp   a,05
ROM3:72FD 30 11            jr   nc,7310
ROM3:72FF 3E 03            ld   a,03
ROM3:7301 CD 36 51         call 5136
ROM3:7304 FE 00            cp   a,00
ROM3:7306 20 05            jr   nz,730D
ROM3:7308 CD 86 20         call 2086		;Remove selected card from the field
ROM3:730B 1E 00            ld   e,00
ROM3:730D 04               inc  b
ROM3:730E 18 EA            jr   72FA
ROM3:7310 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:7313 CD F1 2A         call 2AF1
ROM3:7316 CD 68 41         call 4168
ROM3:7319 3E 34            ld   a,34
ROM3:731B CF               rst  08		;Loads Sound Effect and Text 0x34
ROM3:731C 0B               dec  bc
ROM3:731D 06 D1            ld   b,D1
ROM3:731F C1               pop  bc
ROM3:7320 F1               pop  af
ROM3:7321 C9               ret

Cursebreaker

ROM3:7322 F5               push af
ROM3:7323 C5               push bc
ROM3:7324 0E 02            ld   c,02
ROM3:7326 06 01            ld   b,01
ROM3:7328 78               ld   a,b
ROM3:7329 FE 06            cp   a,06
ROM3:732B 30 16            jr   nc,7343
ROM3:732D CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:7330 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:7333 CD 7C 51         call 517C
ROM3:7336 FE 00            cp   a,00
ROM3:7338 20 06            jr   nz,7340
ROM3:733A CD B4 1F         call 1FB4		;Reset Card Level
ROM3:733D CD FB 19         call 19FB		;Update selected card ID and status
ROM3:7340 04               inc  b
ROM3:7341 18 E5            jr   7328
ROM3:7343 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:7346 CD 68 41         call 4168
ROM3:7349 3E 36            ld   a,36
ROM3:734B CF               rst  08		;Loads Sound Effect and Text 0x36
ROM3:734C 0B               dec  bc
ROM3:734D 06 C1            ld   b,C1
ROM3:734F F1               pop  af
ROM3:7350 C9               ret

Eternal Rest

ROM3:7351 F5               push af
ROM3:7352 C5               push bc
ROM3:7353 D5               push de
ROM3:7354 1E 01            ld   e,01
ROM3:7356 0E 01            ld   c,01
ROM3:7358 06 00            ld   b,00
ROM3:735A 78               ld   a,b
ROM3:735B FE 05            cp   a,05
ROM3:735D 30 11            jr   nc,7370
ROM3:735F 3E 02            ld   a,02
ROM3:7361 CD 36 51         call 5136
ROM3:7364 FE 00            cp   a,00
ROM3:7366 20 05            jr   nz,736D
ROM3:7368 CD 86 20         call 2086		;Remove selected card from the field
ROM3:736B 1E 00            ld   e,00
ROM3:736D 04               inc  b
ROM3:736E 18 EA            jr   735A
ROM3:7370 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:7373 CD 68 41         call 4168
ROM3:7376 3E 37            ld   a,37
ROM3:7378 CF               rst  08		;Loads Sound Effect and Text 0x37
ROM3:7379 0B               dec  bc
ROM3:737A 06 D1            ld   b,D1
ROM3:737C C1               pop  bc
ROM3:737D F1               pop  af
ROM3:737E C9               ret

Equip Spells 3

Megamorph
ROM3:737F F5               push af
ROM3:7380 C5               push bc
ROM3:7381 D5               push de
ROM3:7382 FA 8B C8         ld   a,(C88B)
ROM3:7385 4F               ld   c,a
ROM3:7386 FA 8C C8         ld   a,(C88C)
ROM3:7389 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:738A 16 1E            ld   d,1E
ROM3:738C CF               rst  08
ROM3:738D 0D 07       => Pointer 07:400D
ROM3:738F FE 01            cp   a,01
ROM3:7391 20 26            jr   nz,73B9
ROM3:7393 CF               rst  08
ROM3:7394 0D 0A       => Pointer 0A:400D
ROM3:7396 FE 00            cp   a,00
ROM3:7398 20 16            jr   nz,73B0
ROM3:739A FA 00 C7         ld   a,(C700)	;Column to check
ROM3:739D 47               ld   b,a
ROM3:739E FA 01 C7         ld   a,(C701)	;Row to check
ROM3:73A1 4F               ld   c,a
ROM3:73A2 CD C7 50         call 50C7
ROM3:73A5 CD 93 5F         call 5F93		;Removes selected card
ROM3:73A8 01 91 02         ld   bc,0291
ROM3:73AB CD 5D 61         call 615D
ROM3:73AE 18 09            jr   73B9
ROM3:73B0 CF               rst  08
ROM3:73B1 0F 0A       => Pointer 0A:400F
ROM3:73B3 CD 93 5F         call 5F93		;Removes selected card
ROM3:73B6 CF               rst  08
ROM3:73B7 07 06       => Pointer 06:4007
ROM3:73B9 D1               pop  de
ROM3:73BA C1               pop  bc
ROM3:73BB F1               pop  af
ROM3:73BC C9               ret
Metalmorph
ROM3:73BD F5               push af
ROM3:73BE C5               push bc
ROM3:73BF D5               push de
ROM3:73C0 CD 93 5F         call 5F93		;Removes selected card
ROM3:73C3 FA 8B C8         ld   a,(C88B)
ROM3:73C6 4F               ld   c,a
ROM3:73C7 FA 8C C8         ld   a,(C88C)
ROM3:73CA 47               ld   b,a
ROM3:73CB 11 87 01         ld   de,0187		;Zoa
ROM3:73CE CD 14 1B         call 1B14
ROM3:73D1 FE 00            cp   a,00
ROM3:73D3 20 37            jr   nz,740C
ROM3:73D5 CD D9 2A         call 2AD9		;Does nothing, there is no Sound Effect with the ID 0x20
ROM3:73D8 FA 00 C7         ld   a,(C700)
ROM3:73DB 47               ld   b,a
ROM3:73DC FA 01 C7         ld   a,(C701)
ROM3:73DF 4F               ld   c,a
ROM3:73E0 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:73E3 CD E6 19         call 19E6		;Remove selected card from the field
ROM3:73E6 01 88 01         ld   bc,0188		;Metalzoa
ROM3:73E9 C5               push bc
ROM3:73EA CF               rst  08
ROM3:73EB 9B               sbc  e
ROM3:73EC 01 CF 0B         ld   bc,0BCF
ROM3:73EF 01 CF 17         ld   bc,17CF
ROM3:73F2 01 C1 79         ld   bc,79C1
ROM3:73F5 EA A3 C7         ld   (C7A3),a
ROM3:73F8 78               ld   a,b
ROM3:73F9 EA A4 C7         ld   (C7A4),a
ROM3:73FC CD 25 20         call 2025		;Hide Card, reset Level
ROM3:73FF CD C9 1F         call 1FC9		;Reveal Card
ROM3:7402 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:7405 3E 39            ld   a,39
ROM3:7407 CF               rst  08		;Loads Sound Effect and Text 0x39
ROM3:7408 0B               dec  bc
ROM3:7409 06 18            ld   b,18
ROM3:740B 41               ld   b,c
ROM3:740C 11 52 00         ld   de,0052		;Red-Eyes Black Dragon
ROM3:740F CD 14 1B         call 1B14
ROM3:7412 FE 00            cp   a,00
ROM3:7414 20 37            jr   nz,744D
ROM3:7416 CD D9 2A         call 2AD9		;Does nothing, there is no Sound Effect with the ID 0x20
ROM3:7419 FA 00 C7         ld   a,(C700)
ROM3:741C 47               ld   b,a
ROM3:741D FA 01 C7         ld   a,(C701)
ROM3:7420 4F               ld   c,a
ROM3:7421 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:7424 CD E6 19         call 19E6		;Remove selected card from the field
ROM3:7427 01 E6 02         ld   bc,02E6		;Red-Eyes Black Metal Dragon
ROM3:742A C5               push bc
ROM3:742B CF               rst  08
ROM3:742C 9B               sbc  e
ROM3:742D 01 CF 0B         ld   bc,0BCF
ROM3:7430 01 CF 17         ld   bc,17CF
ROM3:7433 01 C1 79         ld   bc,79C1
ROM3:7436 EA A3 C7         ld   (C7A3),a
ROM3:7439 78               ld   a,b
ROM3:743A EA A4 C7         ld   (C7A4),a
ROM3:743D CD 25 20         call 2025		;Hide Card, reset Level
ROM3:7440 CD C9 1F         call 1FC9		;Reveal Card
ROM3:7443 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:7446 3E 39            ld   a,39
ROM3:7448 CF               rst  08		;Loads Sound Effect and Text 0x39
ROM3:7449 0B               dec  bc
ROM3:744A 06 18            ld   b,18
ROM3:744C 00               nop  
ROM3:744D D1               pop  de
ROM3:744E C1               pop  bc
ROM3:744F F1               pop  af
ROM3:7450 C9               ret
Winged Trumpeter
ROM3:7451 F5               push af
ROM3:7452 C5               push bc
ROM3:7453 D5               push de
ROM3:7454 FA 8B C8         ld   a,(C88B)
ROM3:7457 4F               ld   c,a
ROM3:7458 FA 8C C8         ld   a,(C88C)
ROM3:745B 47               ld   b,a		;bc = Monster Card targeted by Equip Card
ROM3:745C 16 1F            ld   d,1F
ROM3:745E CF               rst  08
ROM3:745F 0D               dec  c
ROM3:7460 07               rlca 
ROM3:7461 FE 01            cp   a,01
ROM3:7463 20 26            jr   nz,748B
ROM3:7465 CF               rst  08
ROM3:7466 0D 0A       => Pointer 0A:400D
ROM3:7468 FE 00            cp   a,00
ROM3:746A 20 16            jr   nz,7482
ROM3:746C FA 00 C7         ld   a,(C700)
ROM3:746F 47               ld   b,a
ROM3:7470 FA 01 C7         ld   a,(C701)
ROM3:7473 4F               ld   c,a
ROM3:7474 CD C7 50         call 50C7
ROM3:7477 CD 93 5F         call 5F93		;Removes selected card
ROM3:747A 01 93 02         ld   bc,0293
ROM3:747D CD 5D 61         call 615D
ROM3:7480 18 09            jr   748B
ROM3:7482 CF               rst  08
ROM3:7483 0F 0A       => Pointer 0A:400F
ROM3:7485 CD 93 5F         call 5F93		;Removes selected card
ROM3:7488 CF               rst  08
ROM3:7489 07 0A       => Pointer 0A:4007
ROM3:748B D1               pop  de
ROM3:748C C1               pop  bc
ROM3:748D F1               pop  af
ROM3:748E C9               ret

Stain Storm

ROM3:748F F5               push af
ROM3:7490 C5               push bc
ROM3:7491 D5               push de
ROM3:7492 1E 01            ld   e,01
ROM3:7494 0E 01            ld   c,01
ROM3:7496 06 00            ld   b,00
ROM3:7498 78               ld   a,b
ROM3:7499 FE 05            cp   a,05
ROM3:749B 30 11            jr   nc,74AE
ROM3:749D 3E 0E            ld   a,0E
ROM3:749F CD 36 51         call 5136
ROM3:74A2 FE 00            cp   a,00
ROM3:74A4 20 05            jr   nz,74AB
ROM3:74A6 CD 86 20         call 2086		;Remove selected card from the field
ROM3:74A9 1E 00            ld   e,00
ROM3:74AB 04               inc  b
ROM3:74AC 18 EA            jr   7498
ROM3:74AE CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:74B1 CD 68 41         call 4168
ROM3:74B4 3E 3B            ld   a,3B
ROM3:74B6 CF               rst  08		;Loads Sound Effect and Text 0x3B
ROM3:74B7 0B               dec  bc
ROM3:74B8 06 D1            ld   b,D1
ROM3:74BA C1               pop  bc
ROM3:74BB F1               pop  af
ROM3:74BC C9               ret

Eradicating Aerosol

ROM3:74BD F5               push af
ROM3:74BE C5               push bc
ROM3:74BF D5               push de
ROM3:74C0 1E 01            ld   e,01
ROM3:74C2 0E 01            ld   c,01
ROM3:74C4 06 00            ld   b,00
ROM3:74C6 78               ld   a,b
ROM3:74C7 FE 05            cp   a,05
ROM3:74C9 30 11            jr   nc,74DC
ROM3:74CB 3E 09            ld   a,09
ROM3:74CD CD 36 51         call 5136
ROM3:74D0 FE 00            cp   a,00
ROM3:74D2 20 05            jr   nz,74D9
ROM3:74D4 CD 86 20         call 2086		;Remove selected card from the field
ROM3:74D7 1E 00            ld   e,00
ROM3:74D9 04               inc  b
ROM3:74DA 18 EA            jr   74C6
ROM3:74DC CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:74DF CD 68 41         call 4168
ROM3:74E2 3E 3D            ld   a,3D
ROM3:74E4 CF               rst  08		;Loads Sound Effect and Text 0x3D
ROM3:74E5 0B               dec  bc
ROM3:74E6 06 D1            ld   b,D1
ROM3:74E8 C1               pop  bc
ROM3:74E9 F1               pop  af
ROM3:74EA C9               ret

Breath of Light

ROM3:74EB F5               push af
ROM3:74EC C5               push bc
ROM3:74ED D5               push de
ROM3:74EE 1E 01            ld   e,01
ROM3:74F0 0E 01            ld   c,01
ROM3:74F2 06 00            ld   b,00
ROM3:74F4 78               ld   a,b
ROM3:74F5 FE 05            cp   a,05
ROM3:74F7 30 11            jr   nc,750A
ROM3:74F9 3E 12            ld   a,12
ROM3:74FB CD 36 51         call 5136
ROM3:74FE FE 00            cp   a,00
ROM3:7500 20 05            jr   nz,7507
ROM3:7502 CD 86 20         call 2086		;Remove selected card from the field
ROM3:7505 1E 00            ld   e,00
ROM3:7507 04               inc  b
ROM3:7508 18 EA            jr   74F4
ROM3:750A CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:750D CD 68 41         call 4168
ROM3:7510 3E 3E            ld   a,3E
ROM3:7512 CF               rst  08		;Loads Sound Effect and Text 0x3E
ROM3:7513 0B               dec  bc
ROM3:7514 06 D1            ld   b,D1
ROM3:7516 C1               pop  bc
ROM3:7517 F1               pop  af
ROM3:7518 C9               ret

Eternal Drought

ROM3:7519 F5               push af
ROM3:751A C5               push bc
ROM3:751B D5               push de
ROM3:751C 1E 01            ld   e,01
ROM3:751E 0E 01            ld   c,01
ROM3:7520 06 00            ld   b,00
ROM3:7522 78               ld   a,b
ROM3:7523 FE 05            cp   a,05
ROM3:7525 30 11            jr   nc,7538
ROM3:7527 3E 0C            ld   a,0C
ROM3:7529 CD 36 51         call 5136
ROM3:752C FE 00            cp   a,00
ROM3:752E 20 05            jr   nz,7535
ROM3:7530 CD 86 20         call 2086		;Remove selected card from the field
ROM3:7533 1E 00            ld   e,00
ROM3:7535 04               inc  b
ROM3:7536 18 EA            jr   7522
ROM3:7538 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:753B CD 68 41         call 4168
ROM3:753E 3E 3F            ld   a,3F
ROM3:7540 CF               rst  08		;Loads Sound Effect and Text 0x3F
ROM3:7541 0B               dec  bc
ROM3:7542 06 D1            ld   b,D1
ROM3:7544 C1               pop  bc
ROM3:7545 F1               pop  af
ROM3:7546 C9               ret

Inexperienced Spy

ROM3:7547 F5               push af
ROM3:7548 C5               push bc
ROM3:7549 01 00 00         ld   bc,0000
ROM3:754C 78               ld   a,b
ROM3:754D FE 05            cp   a,05
ROM3:754F 30 0F            jr   nc,7560
ROM3:7551 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:7554 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:7557 CD 12 50         call 5012
ROM3:755A CD FB 19         call 19FB		;Update selected card ID and status
ROM3:755D 04               inc  b
ROM3:755E 18 EC            jr   754C
ROM3:7560 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:7563 CD 68 41         call 4168
ROM3:7566 3E 66            ld   a,66
ROM3:7568 CF               rst  08		;Loads Sound Effect and Text 0x66
ROM3:7569 0B               dec  bc
ROM3:756A 06 C1            ld   b,C1
ROM3:756C F1               pop  af
ROM3:756D C9               ret

Rituals 3

Dark Magic Ritual
ROM3:756E F5               push af
ROM3:756F C5               push bc
ROM3:7570 D5               push de
ROM3:7571 01 00 17         ld   bc,1700
ROM3:7574 CF               rst  08
ROM3:7575 25               dec  h
ROM3:7576 08 50 59         ld   (5950),sp
ROM3:7579 0E 02            ld   c,02
ROM3:757B 06 01            ld   b,01
ROM3:757D 78               ld   a,b
ROM3:757E FE 06            cp   a,06
ROM3:7580 30 0A            jr   nc,758C
ROM3:7582 CD 0D 52         call 520D
ROM3:7585 FE 00            cp   a,00
ROM3:7587 28 03            jr   z,758C
ROM3:7589 04               inc  b
ROM3:758A 18 F1            jr   757D
ROM3:758C 78               ld   a,b
ROM3:758D FE 06            cp   a,06
ROM3:758F 28 0A            jr   z,759B
ROM3:7591 3E 17            ld   a,17
ROM3:7593 CF               rst  08		;Loads Sound Effect and Text 0x17
ROM3:7594 23               inc  hl
ROM3:7595 08 3E 64         ld   (643E),sp
ROM3:7598 CF               rst  08
ROM3:7599 0B               dec  bc
ROM3:759A 06 CD            ld   b,CD
ROM3:759C 7F               ld   a,a
ROM3:759D 5F               ld   e,a
ROM3:759E CD 68 41         call 4168
ROM3:75A1 D1               pop  de
ROM3:75A2 C1               pop  bc
ROM3:75A3 F1               pop  af
ROM3:75A4 C9               ret  

Pot of Greed

ROM3:75A5 F5               push af
ROM3:75A6 CD 2B 45         call 452B		;Player draws a card
ROM3:75A9 CD 2B 45         call 452B		;Player draws a card
ROM3:75AC CD AD 79         call 79AD
ROM3:75AF CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:75B2 3E 65            ld   a,65
ROM3:75B4 CF               rst  08		;Loads Sound Effect and Text 0x65
ROM3:75B5 0B               dec  bc
ROM3:75B6 06 F1            ld   b,F1
ROM3:75B8 C9               ret

Restructer Revolution

  • 0xF5B9-0xF5D9 - Restructer Revolution effect
ROM3:75B9 F5               push af
ROM3:75BA C5               push bc
ROM3:75BB E5               push hl
ROM3:75BC CD 91 5B         call 5B91
ROM3:75BF CD 18 4F         call 4F18
ROM3:75C2 06 00            ld   b,00
ROM3:75C4 4F               ld   c,a
ROM3:75C5 CB 21            sla  c		;c = Enemy monsters × 2
ROM3:75C7 21 E0 75         ld   hl,75E0
ROM3:75CA 09               add  hl,bc
ROM3:75CB 2A               ldi  a,(hl)
ROM3:75CC 46               ld   b,(hl)
ROM3:75CD 4F               ld   c,a		;bc = Enemy monsters × 200 
ROM3:75CE CD A7 5C         call 5CA7
ROM3:75D1 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:75D4 CD 4A 5D         call 5D4A
ROM3:75D7 3E 67            ld   a,67
ROM3:75D9 CF               rst  08		;Loads Sound Effect and Text 0x67
ROM3:75DA 0B               dec  bc
ROM3:75DB 06 E1            ld   b,E1
ROM3:75DD C1               pop  bc
ROM3:75DE F1               pop  af
ROM3:75DF C9               ret  
  • 0xF5E0-0xF5EB - Restructer Revolution damage array
ROM3:75E0
00 00 - 0 monsters
00 02 - 1 monster
00 04 - 2 monsters
00 06 - 3 monsters
00 08 - 4 monsters
00 10 - 5 monsters

Last Day of Witch

ROM3:75EC F5               push af
ROM3:75ED C5               push bc
ROM3:75EE D5               push de
ROM3:75EF E5               push hl
ROM3:75F0 1E 01            ld   e,01
ROM3:75F2 0E 01            ld   c,01
ROM3:75F4 06 00            ld   b,00
ROM3:75F6 78               ld   a,b
ROM3:75F7 FE 05            cp   a,05
ROM3:75F9 30 11            jr   nc,760C
ROM3:75FB 3E 01            ld   a,01
ROM3:75FD CD 36 51         call 5136
ROM3:7600 FE 00            cp   a,00
ROM3:7602 20 05            jr   nz,7609
ROM3:7604 CD 86 20         call 2086		;Remove selected card from the field
ROM3:7607 1E 00            ld   e,00
ROM3:7609 04               inc  b
ROM3:760A 18 EA            jr   75F6
ROM3:760C CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:760F CD 68 41         call 4168
ROM3:7612 3E 68            ld   a,68
ROM3:7614 CF               rst  08		;Loads Sound Effect and Text 0x68
ROM3:7615 0B               dec  bc
ROM3:7616 06 E1            ld   b,E1
ROM3:7618 D1               pop  de
ROM3:7619 C1               pop  bc
ROM3:761A F1               pop  af
ROM3:761B C9               ret

Exile of the Wicked

ROM3:761C F5               push af
ROM3:761D C5               push bc
ROM3:761E D5               push de
ROM3:761F E5               push hl
ROM3:7620 1E 01            ld   e,01
ROM3:7622 0E 01            ld   c,01
ROM3:7624 06 00            ld   b,00
ROM3:7626 78               ld   a,b
ROM3:7627 FE 05            cp   a,05
ROM3:7629 30 11            jr   nc,763C
ROM3:762B 3E 07            ld   a,07
ROM3:762D CD 36 51         call 5136
ROM3:7630 FE 00            cp   a,00
ROM3:7632 20 05            jr   nz,7639
ROM3:7634 CD 86 20         call 2086		;Remove selected card from the field
ROM3:7637 1E 00            ld   e,00
ROM3:7639 04               inc  b
ROM3:763A 18 EA            jr   7626
ROM3:763C CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:763F CD 68 41         call 4168
ROM3:7642 3E 69            ld   a,69		;Loads Sound Effect and Text 0x69
ROM3:7644 CF               rst  08
ROM3:7645 0B               dec  bc
ROM3:7646 06 E1            ld   b,E1
ROM3:7648 D1               pop  de
ROM3:7649 C1               pop  bc
ROM3:764A F1               pop  af
ROM3:764B C9               ret

Multiply

  • 0xF64C-0xF68D - Multiply: Summon a Kuriboh in every empty Monster Card Zone if there is a Kuriboh on the field
ROM3:764C F5               push af
ROM3:764D C5               push bc
ROM3:764E D5               push de
ROM3:764F 0E 02            ld   c,02
ROM3:7651 11 3A 00         ld   de,003A		;Kuriboh ID
ROM3:7654 CD 2C 52         call 522C		;Checks if a specific Monster card is on the field
ROM3:7657 FE 00            cp   a,00
ROM3:7659 20 2D            jr   nz,7688		;If there is no Kuriboh on the field, jump to 3:7688
ROM3:765B 01 02 01         ld   bc,0102		;Column 1, Row 2
ROM3:765E 78               ld   a,b
ROM3:765F FE 06            cp   a,06
ROM3:7661 30 25            jr   nc,7688		;If Kuriboh has been summoned in every free Monster Card Zone, jump to 3:7688
ROM3:7663 CD CB 4E         call 4ECB		;Check if there's a card in the selected card zone
ROM3:7666 FE 01            cp   a,01
ROM3:7668 20 1B            jr   nz,7685		;If the Monster Card Zone isn't free, jump to 3:7685
ROM3:766A C5               push bc
ROM3:766B 01 3A 00         ld   bc,003A		;Kuriboh ID
ROM3:766E 79               ld   a,c
ROM3:766F EA A3 C7         ld   (C7A3),a
ROM3:7672 78               ld   a,b
ROM3:7673 EA A4 C7         ld   (C7A4),a	;Card being processed = Kuriboh
ROM3:7676 3E 10            ld   a,10
ROM3:7678 EA A5 C7         ld   (C7A5),a	;Card status = Set, Level 0
ROM3:767B CD 25 20         call 2025		;Hide Card, reset Level
ROM3:767E CD C9 1F         call 1FC9		;Reveal Card
ROM3:7681 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:7684 C1               pop  bc
ROM3:7685 04               inc  b
ROM3:7686 18 D6            jr   765E		;Loop to 3:765E
ROM3:7688 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:768B 3E 6A            ld   a,6A
ROM3:768D CF               rst  08		;Loads Sound Effect and Text 0x6A
ROM3:768E 0B 06       => Pointer 06:400B
ROM3:7690 D1               pop  de
ROM3:7691 C1               pop  bc
ROM3:7692 F1               pop  af
ROM3:7693 C9               ret

Change of Heart

  • 0xF694-0xF6D4 - Change of Heart effect
ROM3:7694 F5               push af
ROM3:7695 C5               push bc
ROM3:7696 E5               push hl
ROM3:7697 CD EB 50         call 50EB
ROM3:769A FE 06            cp   a,06
ROM3:769C 28 28            jr   z,76C6
ROM3:769E 6F               ld   l,a
ROM3:769F CD B1 51         call 51B1		;Retrieves "strongest" monster card ID from CPU's field
ROM3:76A2 FE 00            cp   a,00
ROM3:76A4 20 20            jr   nz,76C6
ROM3:76A6 0E 01            ld   c,01
ROM3:76A8 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:76AB CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:76AE CD E6 19         call 19E6		;Remove selected card from the field
ROM3:76B1 45               ld   b,l
ROM3:76B2 0E 02            ld   c,02
ROM3:76B4 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:76B7 CD EA 1F         call 1FEA		;Unfreezes Card
ROM3:76BA CD 25 20         call 2025		;Hide Card, reset Level
ROM3:76BD CD C9 1F         call 1FC9		;Reveal Card
ROM3:76C0 CD 00 20         call 2000
ROM3:76C3 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:76C6 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:76C9 CD 68 41         call 4168
ROM3:76CC 3E 6B            ld   a,6B
ROM3:76CE CF               rst  08		;Loads Sound Effect and Text 0x6B
ROM3:76CF 0B 06       => Pointer 06:400B
ROM3:76D1 E1               pop  bc
ROM3:76D2 C1               pop  bc
ROM3:76D3 F1               pop  af
ROM3:76D4 C9               ret

Rituals 4

Black Illusion Ritual
ROM3:76D5 F5               push af
ROM3:76D6 C5               push bc
ROM3:76D7 D5               push de
ROM3:76D8 01 00 18         ld   bc,1800
ROM3:76DB CF               rst  08
ROM3:76DC 25               dec  h
ROM3:76DD 08 50 59         ld   (5950),sp
ROM3:76E0 0E 02            ld   c,02
ROM3:76E2 06 01            ld   b,01
ROM3:76E4 78               ld   a,b
ROM3:76E5 FE 06            cp   a,06
ROM3:76E7 30 0A            jr   nc,76F3
ROM3:76E9 CD 0D 52         call 520D
ROM3:76EC FE 00            cp   a,00
ROM3:76EE 28 03            jr   z,76F3
ROM3:76F0 04               inc  b
ROM3:76F1 18 F1            jr   76E4
ROM3:76F3 78               ld   a,b
ROM3:76F4 FE 06            cp   a,06
ROM3:76F6 28 0A            jr   z,7702
ROM3:76F8 3E 18            ld   a,18
ROM3:76FA CF               rst  08
ROM3:76FB 23               inc  hl
ROM3:76FC 08 3E 6C         ld   (6C3E),sp
ROM3:76FF CF               rst  08
ROM3:7700 0B               dec  bc
ROM3:7701 06 CD            ld   b,CD
ROM3:7703 7F               ld   a,a
ROM3:7704 5F               ld   e,a
ROM3:7705 CD 68 41         call 4168
ROM3:7708 D1               pop  de
ROM3:7709 C1               pop  bc
ROM3:770A F1               pop  af
ROM3:770B C9               ret  

Trap Cards 2 (set)

Anti Raigeki
ROM3:770C CD A9 2A         call 2AA9
ROM3:770F CD 9F 5E         call 5E9F
ROM3:7712 CD 68 41         call 4168
ROM3:7715 C9               ret

Brain Control

ROM3:7716 F5               push af
ROM3:7717 C5               push bc
ROM3:7718 E5               push hl
ROM3:7719 CD EB 50         call 50EB
ROM3:771C FE 06            cp   a,06
ROM3:771E 28 28            jr   z,7748
ROM3:7720 6F               ld   l,a
ROM3:7721 CD B1 51         call 51B1
ROM3:7724 FE 00            cp   a,00
ROM3:7726 20 20            jr   nz,7748
ROM3:7728 0E 01            ld   c,01
ROM3:772A CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:772D CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM3:7730 CD E6 19         call 19E6		;Remove selected card from the field
ROM3:7733 45               ld   b,l
ROM3:7734 0E 02            ld   c,02
ROM3:7736 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM3:7739 CD EA 1F         call 1FEA		;Unfreezes Card
ROM3:773C CD 25 20         call 2025		;Hide Card, reset Level
ROM3:773F CD C9 1F         call 1FC9		;Reveal Card
ROM3:7742 CD F5 1F         call 1FF5
ROM3:7745 CD FB 19         call 19FB		;Update selected card ID and status
ROM3:7748 CD 7F 5F         call 5F7F		;Removes card from Player's Hand
ROM3:774B CD 68 41         call 4168
ROM3:774E 3E 6E            ld   a,6E
ROM3:7750 CF               rst  08		;Loads Sound Effect and Text 0x6E
ROM3:7751 0B               dec  bc
ROM3:7752 06 E1            ld   b,E1
ROM3:7754 C1               pop  bc
ROM3:7755 F1               pop  af
ROM3:7756 C9               ret

Loads cards effects pointers

  • 0xF757-0xF76E - Loads the pointer corresponding to the card effect
ROM3:7757 C5               push bc
ROM3:7758 E5               push hl
ROM3:7759 06 00            ld   b,00
ROM3:775B 4F               ld   c,a
ROM3:775C CB 21            sla  c
ROM3:775E CB 10            rl   b		;bc = Card Effect ID × 2
ROM3:7760 21 6F 77         ld   hl,776F
ROM3:7763 09               add  hl,bc
ROM3:7764 2A               ldi  a,(hl)
ROM3:7765 66               ld   h,(hl)
ROM3:7766 6F               ld   l,a		;hl = Pointer to the selected Card Effect function
ROM3:7767 01 6C 77         ld   bc,776C
ROM3:776A C5               push bc
ROM3:776B E9               jp   hl		;Jump to the selected Card Effect function
ROM3:776C E1               pop  hl
ROM3:776D C1               pop  bc
ROM3:776E C9               ret  
  • 0xF76F-0xF856 - List of pointers to each card effect code
81 61 - 
92 61 - 
CA 61 - (Summon a Monster Card)
E8 61 - Forest
F9 61 - Wasteland
0A 62 - Mountain
1B 62 - Sogen
2C 62 - Umi
3D 62 - Yami
4E 62 - Mooyan Curry
7C 62 - Red Medicine
AA 62 - Goblin's Secret Remedy
D8 62 - Soul of the Pure
06 63 - Dian Keto the Cure Master
34 63 - Sparks
62 63 - Hinotama
92 63 - Final Flame
C2 63 - Ookazi
F2 63 - Tremendous Fire
22 64 - Dark Hole
55 64 - Raigeki
93 64 - Legendary Sword
D1 64 - Sword of Ruin
0F 65 - Dark Energy
4D 65 - Axe of Despair
8B 65 - Lazer Cannon Armor
C9 65 - Insect Armor with Laser Cannon
07 66 - Elf's Light
45 66 - Beast Fangs
83 66 - Steel Shell
C1 66 - Vile Germs
FF 66 - Black Pendant
3D 67 - Silver Bow & Arrow
7B 67 - Horn of Light
B9 67 - Horn of the Unicorn
F7 67 - Dragon Treasure
35 68 - Electro-whip
73 68 - Cyber Shield
B1 68 - Mystical Moon
EF 68 - Malevolent Nuzzler
2D 69 - Violet Crystal
6B 69 - Book of Secret Art
A9 69 - Invigoration
E7 69 - Machine Conversion
25 6A - Raise Body Heat
63 6A - Follow Wind
A1 6A - Power of Kaishin
82 61 - (Play a Monster card from hand)
DF 6A - Stop Defense
0E 6B - Dragon Capture Jar
3C 6B - Swords of Revealing Light
81 6B - Dark-Piercing Light
C3 6B - Spellbinding Circle
EE 6B - Elegant Egotist
8B 61 - (Play a Monster card from hand)
3F 6C - Widespread Ruin
4B 6C - House of Adhesive Trap
57 6C - Eatgaboon
63 6C - Bear Trap
6F 6C - Invisible Wire
7B 6C - Acid Trap Hole
87 6C - Goblin Fan
93 6C - Simochi Allergy
9F 6C - Reverse Trap
AB 6C - Fake Trap
B7 6C - Black Luster Ritual
EE 6C - Zera Ritual
25 6D - War-lion Ritual
5C 6D - Beastly Mirror Ritual
93 6D - Ultimate Dragon
B4 6D - Commencement Dance
EB 6D - Hamburger Recipe
22 6E - Revival of Sennen Genjin
59 6E - Novox's Prayer
90 6E - Curse of Tri-Horned Dragon
C7 6E - Revived Serpent Night Dragon
FE 6E - Harpie's Feather Duster
0F 6F - Magical Labyrinth
4D 6F - Salamandra
8B 6F - Kunai with Chain
C9 6F - Bright Castle
07 70 - Crush Card
47 70 - Shadow Spell
73 70 - Turtle Oath
AA 70 - Contract of Mask
E1 70 - Resurrection of Chakra
18 71 - Puppet Ritual
4F 71 - Javelin Beetle Pact
86 71 - Garma Sword Oath
BD 71 - Cosmo Queen's Prayer
F4 71 - Revival of Skeleton
2B 72 - Fortress Whale's Oath
62 72 - Curse of Millennium Shield
99 72 - Yamadron Ritual
D0 72 - Gate Guardian Ritual
F1 72 - Warrior Elimination
22 73 - Cursebreaker
51 73 - Eternal Rest
7F 73 - Megamorph
BD 73 - Metalmorph
51 74 - Winged Trumpeter
8F 74 - Stain Storm
BD 74 - Eradicating Aerosol
EB 74 - Breath of Light
19 75 - Eternal Drought
47 75 - Inexperienced Spy
6E 75 - Dark Magic Ritual
A5 75 - Pot of Greed
B9 75 - Restructer Revolution
EC 75 - Last Day of Witch
1C 76 - Exile of the Wicked
4C 76 - Multiply
94 76 - Change of Heart
D5 76 - Black Illusion Ritual
0C 77 - Anti Raigeki
16 77 - Brain Control

Tribute Summon

  • 0xFB3F-0xFB7D - Tribute Summon
ROM3:7B3F 0E 00            ld   c,00
ROM3:7B41 FA BF C6         ld   a,(C6BF)	;Effect ID (magic trap ritual)
ROM3:7B44 FE 02            cp   a,02
ROM3:7B46 20 18            jr   nz,7B60		;If it is not a Monster Card, jump to 3:7B60
ROM3:7B48 0E 02            ld   c,02		;2 Sacrifice required
ROM3:7B4A FA BD C6         ld   a,(C6BD)	;Monster Level
ROM3:7B4D FE 05            cp   a,05
ROM3:7B4F 30 04            jr   nc,7B55		;If(Monster Level ≥ 5), jump to 3:7B55
ROM3:7B51 0E 00            ld   c,00		;No Sacrifice required
ROM3:7B53 18 09            jr   7B5E
ROM3:7B55 FA BD C6         ld   a,(C6BD)
ROM3:7B58 FE 07            cp   a,07
ROM3:7B5A 30 02            jr   nc,7B5E		;If(Monster Level ≥ 7), jump to 3:7B5E
ROM3:7B5C 0E 01            ld   c,01		;1 Sacrifice required
ROM3:7B5E 18 1B            jr   7B7B		;Exit this function
ROM3:7B60 FA BB C6         ld   a,(C6BB)	;Card Type
ROM3:7B63 FE 16            cp   a,16
ROM3:7B65 20 14            jr   nz,7B7B		;If it is not a Ritual, exit this function
ROM3:7B67 0E 02            ld   c,02		;2 Sacrifice required
ROM3:7B69 FA BF C6         ld   a,(C6BF)	;Effect ID (magic trap ritual)
ROM3:7B6C FE 45            cp   a,45
ROM3:7B6E 20 02            jr   nz,7B72		;If(Effect ID ≠ Ultimate Dragon), jump to 3:7B72
ROM3:7B70 0E 00            ld   c,00		;No Sacrifice required
ROM3:7B72 FA BF C6         ld   a,(C6BF)	;Effect ID (magic trap ritual)
ROM3:7B75 FE 5E            cp   a,5E
ROM3:7B77 20 02            jr   nz,7B7B		;If(Effect ID ≠ Gate Guardian Ritual), exit this function
ROM3:7B79 0E 00            ld   c,00		;No Sacrifice required
ROM3:7B7B 79               ld   a,c
ROM3:7B7C C1               pop  bc
ROM3:7B7D C9               ret

Bank 4

Battle Operation 3

Loads Player's Life Points

  • 0x10124-0x1012C - Loads Player's Life Points in register bc
ROM4:4124 FA C7 C5         ld   a,(C5C7)
ROM4:4127 4F               ld   c,a
ROM4:4128 FA C8 C5         ld   a,(C5C8)
ROM4:412B 47               ld   b,a
ROM4:412C CF               rst  08

Main Menu

  • 0x1041C-0x1042D - Loads RAM 0xC85C (current menu ID), and increases it. If it is equal to 7, it is set to 0.
ROM4:441C F5               push af
ROM4:441D CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM4:4420 FA 5C C8         ld   a,(C85C)
ROM4:4423 3C               inc  a
ROM4:4424 FE 08            cp   a,07
ROM4:4426 20 01            jr   nz,4429
ROM4:4428 AF               xor  a
ROM4:4429 EA 5C C8         ld   (C85C),a
ROM4:442C F1               pop  af
  • 0x1042E-0x10440 - Loads RAM 0xC85C (current menu ID), and decreases it. If it is equal to 0, it is set to 6.
ROM4:442E F5               push af
ROM4:442F CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM4:4432 FA 5C C8         ld   a,(C85C)
ROM4:4435 3D               dec  a
ROM4:4436 FE FF            cp   a,FF
ROM4:4438 20 02            jr   nz,443C
ROM4:443A 3E 07            ld   a,06
ROM4:443C EA 5C C8         ld   (C85C),a
ROM4:443F F1               pop  af

Campaign Menu

Loads Stage

  • 0x108FC-0x1095E - Loads Stage corresponding to Stage ID in RAM 0xC85D
ROM4:48FC F5               push af
ROM4:48FD C5               push bc
ROM4:48FE 0E 01            ld   c,01
ROM4:4900 3E 02            ld   a,02
ROM4:4902 EA 5D C8         ld   (C85D),a
ROM4:4905 FA 5D C8         ld   a,(C85D)
ROM4:4908 FE 02            cp   a,02
ROM4:490A 20 12            jr   nz,491E          ;If (Stage ID ≠ 2), jump to 4:491E
ROM4:490C CD 70 59         call 5970
ROM4:490F 79               ld   a,c
ROM4:4910 FE 00            cp   a,00
ROM4:4912 28 05            jr   z,4919
ROM4:4914 CD 19 2A         call 2A19
ROM4:4917 0E 00            ld   c,00
ROM4:4919 CD A0 59         call 59A0
ROM4:491C 18 35            jr   4953
ROM4:491E FE 03            cp   a,03
ROM4:4920 20 08            jr   nz,492A          ;If (Stage ID ≠ 3), jump to 4:492A
ROM4:4922 CD EF 51         call 51EF
ROM4:4925 CD 1F 52         call 521F
ROM4:4928 18 29            jr   4953
ROM4:492A FE 04            cp   a,04
ROM4:492C 20 08            jr   nz,4936          ;If (Stage ID ≠ 4), jump to 4:4936
ROM4:492E CD 9E 5E         call 5E9E
ROM4:4931 CD CE 5E         call 5ECE
ROM4:4934 18 1D            jr   4953
ROM4:4936 FE 05            cp   a,05
ROM4:4938 20 08            jr   nz,4942          ;If (Stage ID ≠ 5), jump to 4:4942
ROM4:493A CD 69 61         call 6169
ROM4:493D CD 96 61         call 6196
ROM4:4940 18 11            jr   4953
ROM4:4942 FE 06            cp   a,06
ROM4:4944 20 05            jr   nz,494B          ;If (Stage ID ≠ 6), jump to 4:494B
ROM4:4946 CD 1E 4A         call 4A1E
ROM4:4949 18 08            jr   4953
ROM4:494B FE 00            cp   a,00
ROM4:494D 28 06            jr   z,4955           ;If (Stage ID == 0), jump to 4:4955
ROM4:494F FE 01            cp   a,01
ROM4:4951 28 02            jr   z,4955           ;If (Stage ID == 1), jump to 4:4955
ROM4:4953 18 B0            jr   4905
ROM4:4955 FE 01            cp   a,01
ROM4:4957 20 03            jr   nz,495C          ;If (Stage ID ≠ 1), jump to 4:495C
ROM4:4959 CD 5F 49         call 495F
ROM4:495C C1               pop  bc
ROM4:495D F1               pop  af
ROM4:495E C9               ret  

Loads CPU opponent

  • 0x1095F-0x10962 - Load selected CPU opponent
ROM4:495F F5               push af
ROM4:4960 3E 00            ld   a,00          ;To make 2:6F60 call subroutine Stores CPU Character ID and Text ID
ROM4:4962 CF               rst  08
 => 05 02 Text display subroutine
ROM4:4965 3E 03            ld   a,03
ROM4:4967 CF               rst  08
 => 1F 01
ROM4:496A CF               rst  08
 => 33 01
ROM4:496D CF               rst  08
 => 35 01
ROM4:4970 CD E9 29         call 29E9
ROM4:4973 CF               rst  08
 => 39 01
ROM4:4976 FE 00            cp   a,00
ROM4:4978 20 0D            jr   nz,4987
ROM4:497A CD 81 2A         call 2A81
ROM4:497D CD 89 49         call 4989
ROM4:4980 FA AD C6         ld   a,(C6AD)
ROM4:4983 FE 01            cp   a,01
ROM4:4985 20 00            jr   nz,4987        ;... what ?
ROM4:4987 F1               pop  af
ROM4:4988 C9               ret

CPU turn start

ROM4:4BCB CD 73 24         call 2473		;Duel Win and Loss subroutine
ROM4:4BCE FE 01            cp   a,01
ROM4:4BD0 28 27            jr   z,4BF9		;If the CPU won, get out of this function
ROM4:4BD2 CF               rst  08
...
ROM4:4BD5 CF               rst  08
...
ROM4:4BD8 CF               rst  08
...
ROM4:4BDB CF               rst  08
...
ROM4:4BDE CF               rst  08
...
ROM4:4BE1 CF               rst  08
...
ROM4:4BE4 CD 28 4C         call 4C28		;Switches to WRAM Bank 4, and rst 08
ROM4:4BE7 CF               rst  08
...
ROM4:4BEA CD 45 2C         call 2C45		;(C998) & 0xFE
ROM4:4BED CD 8C 2C         call 2C8C		;Decrease CPU's Swords of Revealing Light counter
ROM4:4BF0 CF               rst  08
...
ROM4:4BF3 CF               rst  08
...
ROM4:4BF6 CF               rst  08
...
ROM4:4BF9 C9               ret  

Switches to WRAM Bank 4, and rst 08

ROM4:4C28 F5               push af
ROM4:4C29 3E 04            ld   a,04
ROM4:4C2B CD 24 12         call 1224		;Switches to WRAM Bank 4
ROM4:4C2E CF               rst  08
...
ROM4:4C31 CD 48 12         call 1248		;WRAM Bank restore
ROM4:4C34 F1               pop  af
ROM4:4C35 C9               ret


Loads Pre-Duel and Duel musics

  • 0x10FC2-0x10FF5 - Loads Pre-Duel and Duel musics for the selected opponent
ROM4:4FC2 F5               push af
ROM4:4FC3 C5               push bc
ROM4:4FC4 D5               push de
ROM4:4FC5 E5               push hl
ROM4:4FC6 16 00            ld   d,00
ROM4:4FC8 58               ld   e,b
ROM4:4FC9 CB 23            sla  e
ROM4:4FCB 21 F6 4F         ld   hl,4FF6
ROM4:4FCE 19               add  hl,de
ROM4:4FCF 2A               ldi  a,(hl)
ROM4:4FD0 66               ld   h,(hl)
ROM4:4FD1 6F               ld   l,a
ROM4:4FD2 06 00            ld   b,00
ROM4:4FD4 09               add  hl,bc
ROM4:4FD5 7E               ld   a,(hl)
ROM4:4FD6 EA CC C8         ld   (C8CC),a
ROM4:4FD9 21 15 50         ld   hl,5015
ROM4:4FDC 19               add  hl,de		;hl = Pre-Duel musics IDs pointer
ROM4:4FDD 2A               ldi  a,(hl)
ROM4:4FDE 66               ld   h,(hl)
ROM4:4FDF 6F               ld   l,a
ROM4:4FE0 09               add  hl,bc
ROM4:4FE1 7E               ld   a,(hl)
ROM4:4FE2 EA CD C8         ld   (C8CD),a
ROM4:4FE5 21 34 50         ld   hl,5034
ROM4:4FE8 19               add  hl,de		;hl = Duel musics IDs pointer
ROM4:4FE9 2A               ldi  a,(hl)
ROM4:4FEA 66               ld   h,(hl)
ROM4:4FEB 6F               ld   l,a
ROM4:4FEC 09               add  hl,bc
ROM4:4FED 7E               ld   a,(hl)
ROM4:4FEE EA CE C8         ld   (C8CE),a
ROM4:4FF1 E1               pop  hl
ROM4:4FF2 D1               pop  de
ROM4:4FF3 C1               pop  bc
ROM4:4FF4 F1               pop  af
ROM4:4FF5 C9               ret

Opponent IDs pointers

  • 0x10FF6-0x10FFF - Opponent IDs pointers corresponding to the selected Stage
ROM4:4FF6
00 50 - Stage 1
05 50 - Stage 2
0B 50 - Stage 3
0F 50 - Stage 4
10 50 - Stage 5

Opponent ID list

  • 0x11000-0x11014 - List of Opponent IDs, in the order they are displayed in Campaign mode. Look at the Characters IDs if you want to modify this.
0A - Tristan Taylor
05 - Yugi Muto
03 - Mako Tsunami
01 - Mai Valentine
07 - Joey Wheeler
09 - Espa Roba
02 - Rex Raptor
00 - Weevil Underwood
0B - Rare Hunter
0C - Pandora
08 - Seto Kaiba
10 - Simon Muran
17 - Ishizu Ishtar
0E - Heishin
0F - P. Seto
15 - DarkNite
04 - Yami Yugi
13 - Yami Bakura
16 - Nitemare
14 - Shadi
0D - Marik Ishtar

Pre-Duel music Pointers

  • 0x11015-0x1101E - Pre-Duel music pointers corresponding to each Stage
ROM4:5015
1F 50 - Stage 1
24 50 - Stage 2
2A 50 - Stage 3
2E 50 - Stage 4
2F 50 - Stage 5

Pre-Duel music IDs

  • 0x1101F - Tristan Taylor pre-duel
  • 0x11020 - Yugi Muto pre-duel
  • 0x11021 - Mako Tsunami pre-duel
  • 0x11022 - Mai Valentine pre-duel
  • 0x11023 - Joey Wheeler pre-duel
  • 0x11024 - Espa Roba pre-duel
  • 0x11025 - Rex Raptor pre-duel
  • 0x11026 - Weevil Underwood pre-duel
  • 0x11027 - Rare Hunter pre-duel
  • 0x11028 - Pandora pre-duel
  • 0x11029 - Seto Kaiba pre-duel
  • 0x1102A - Simon Muran pre-duel
  • 0x1102B - Isis Ishtar pre-duel
  • 0x1102C - Heishin pre-duel
  • 0x1102D - P. Seto pre-duel
  • 0x1102E - DarkNite pre-duel
  • 0x1102F - Yami Yugi pre-duel
  • 0x11030 - Yami Bakura pre-duel
  • 0x11031 - Nitemare pre-duel
  • 0x11032 - Shadi pre-duel
  • 0x11033 - Marik Ishtar pre-duel

Duel music Pointers

  • 0x11034-0x1103D - Duel music pointers corresponding to each Stage
ROM4:5034
3E 50 - Stage 1
43 50 - Stage 2
49 50 - Stage 3
4D 50 - Stage 4
4E 50 - Stage 5

Duel music IDs

  • 0x1103E - Tristan Taylor duel
  • 0x1103F - Yugi Muto duel
  • 0x11040 - Mako Tsunami duel
  • 0x11041 - Mai Valentine duel
  • 0x11042 - Joey Wheeler duel
  • 0x11043 - Espa Roba duel
  • 0x11044 - Rex Raptor duel
  • 0x11045 - Weevil Underwood duel
  • 0x11046 - Rare Hunter duel
  • 0x11047 - Pandora duel
  • 0x11048 - Seto Kaiba duel
  • 0x11049 - Simon Muran duel
  • 0x1104A - Isis Ishtar duel
  • 0x1104B - Heishin duel
  • 0x1104C - P. Seto duel
  • 0x1104D - DarkNite duel
  • 0x1104E - Yami Yugi duel
  • 0x1104F - Yami Bakura duel
  • 0x11050 - Nitemare duel
  • 0x11051 - Shadi duel
  • 0x11052 - Marik Ishtar duel

4:5053

ROM4:5053 F5               push af
ROM4:5054 C5               push bc
ROM4:5055 D5               push de
ROM4:5056 E5               push hl
ROM4:5057 1E 00            ld   e,00
ROM4:5059 CD 7F 1E         call 1E7F
ROM4:505C CD 7F 50         call 507F
ROM4:505F 06 00            ld   b,00
ROM4:5061 4F               ld   c,a
ROM4:5062 21 77 50         ld   hl,5077
ROM4:5065 09               add  hl,bc
ROM4:5066 2A               ldi  a,(hl)
ROM4:5067 66               ld   h,(hl)
ROM4:5068 6F               ld   l,a
ROM4:5069 01 6E 50         ld   bc,506E
ROM4:506C C5               push bc
ROM4:506D E9               jp   hl
ROM4:506E FE 01            cp   a,01
ROM4:5070 20 E7            jr   nz,5059
ROM4:5072 E1               pop  hl
ROM4:5073 D1               pop  de
ROM4:5074 C1               pop  bc
ROM4:5075 F1               pop  af
ROM4:5076 C9               ret  

4:5077 (pointers array)

ROM4:5077
A5 50
AF 50
C8 50
20 51

4:507F

ROM4:507F C5               push bc
ROM4:5080 D5               push de
ROM4:5081 E5               push hl
ROM4:5082 16 00            ld   d,00
ROM4:5084 FA A8 C5         ld   a,(C5A8)
ROM4:5087 E6 FF            and  a,FF
ROM4:5089 28 0D            jr   z,5098
ROM4:508B 0E 08            ld   c,08
ROM4:508D 0D               dec  c
ROM4:508E 07               rlca 
ROM4:508F 30 FC            jr   nc,508D
ROM4:5091 06 00            ld   b,00
ROM4:5093 21 9D 50         ld   hl,509D
ROM4:5096 09               add  hl,bc
ROM4:5097 56               ld   d,(hl)
ROM4:5098 7A               ld   a,d
ROM4:5099 E1               pop  hl
ROM4:509A D1               pop  de
ROM4:509B C1               pop  bc
ROM4:509C C9               ret  

4:50A5

ROM4:50A5 3E 02            ld   a,02
ROM4:50A7 CD E3 0E         call 0EE3		;Related to display
ROM4:50AA CD C1 10         call 10C1
ROM4:50AD AF               xor  a
ROM4:50AE C9               ret  

4:50AF

ROM4:50AF CD 5C 51         call 515C
ROM4:50B2 3E 02            ld   a,02
ROM4:50B4 CD E3 0E         call 0EE3		;Related to display
ROM4:50B7 CD C1 10         call 10C1
ROM4:50BA FA CF C8         ld   a,(C8CF)
ROM4:50BD FE 00            cp   a,00
ROM4:50BF 20 04            jr   nz,50C5
ROM4:50C1 3E 00            ld   a,00
ROM4:50C3 18 02            jr   50C7
ROM4:50C5 3E 01            ld   a,01
ROM4:50C7 C9               ret  

4:50C8

ROM4:50C8 FA CF C8         ld   a,(C8CF)
ROM4:50CB FE 01            cp   a,01
ROM4:50CD 20 05            jr   nz,50D4
ROM4:50CF CD 30 51         call 5130
ROM4:50D2 18 4B            jr   511F
ROM4:50D4 FA D0 C8         ld   a,(C8D0)
ROM4:50D7 FE 01            cp   a,01
ROM4:50D9 20 05            jr   nz,50E0
ROM4:50DB CD 30 51         call 5130
ROM4:50DE 18 3F            jr   511F
ROM4:50E0 CD DA 29         call 29DA
ROM4:50E3 CF               rst  08
...
ROM4:50E9 FE 00            cp   a,00
ROM4:50EB 20 23            jr   nz,5110
ROM4:50ED CD 16 05         call 0516
ROM4:50F0 CF               rst  08
...
ROM4:50F3 CD E1 29         call 29E1
ROM4:50F6 CD 53 50         call 5053
ROM4:50F9 CD 15 44         call 4415
ROM4:50FC CD 02 42         call 4202
ROM4:50FF CD F1 29         call 29F1
ROM4:5102 3E 00            ld   a,00
ROM4:5104 EA AD C6         ld   (C6AD),a
ROM4:5107 CD 89 42         call 4289
ROM4:510A 18 FB            jr   5107
ROM4:510C 18 FE            jr   510C
ROM4:510E 18 0F            jr   511F
ROM4:5110 FA D0 C8         ld   a,(C8D0)
ROM4:5113 FE 01            cp   a,01
ROM4:5115 20 08            jr   nz,511F
ROM4:5117 3E 00            ld   a,00
ROM4:5119 EA D0 C8         ld   (C8D0),a
ROM4:511C CD 30 51         call 5130
ROM4:511F C9               ret  

4:5120

ROM4:5120 CD 6F 51         call 516F
ROM4:5123 CD 81 51         call 5181
ROM4:5126 3E 04            ld   a,04
ROM4:5128 CD E3 0E         call 0EE3		;Related to display
ROM4:512B CD C1 10         call 10C1
ROM4:512E AF               xor  a
ROM4:512F C9               ret  

4:5130

ROM4:5130 CD 46 51         call 5146
ROM4:5133 3E 04            ld   a,04
ROM4:5135 CD E3 0E         call 0EE3
ROM4:5138 CD C1 10         call 10C1
ROM4:513B 3E 01            ld   a,01
ROM4:513D C9               ret  

4:513E

ROM4:513E F5               push af
ROM4:513F 3E 01            ld   a,01
ROM4:5141 EA CF C8         ld   (C8CF),a
ROM4:5144 F1               pop  af
ROM4:5145 C9               ret  

4:5146

ROM4:5146 F5               push af
ROM4:5147 CD 81 2A         call 2A81		;Sound Effect: Validate (Menu)
ROM4:514A FA CF C8         ld   a,(C8CF)
ROM4:514D FE 00            cp   a,00
ROM4:514F 20 03            jr   nz,5154
ROM4:5151 CD 02 58         call 5802
ROM4:5154 CD 3C 56         call 563C
ROM4:5157 CD FF 56         call 56FF
ROM4:515A F1               pop  af
ROM4:515B C9               ret  

4:515C

ROM4:515C F5               push af
ROM4:515D FA CF C8         ld   a,(C8CF)
ROM4:5160 FE 01            cp   a,01
ROM4:5162 20 09            jr   nz,516D
ROM4:5164 CD 81 2A         call 2A81		;Sound Effect: Validate (Menu)
ROM4:5167 CD 3C 56         call 563C
ROM4:516A CD FF 56         call 56FF
ROM4:516D F1               pop  af
ROM4:516E C9               ret  

4:516F

ROM4:516F F5               push af
ROM4:5170 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM4:5173 FA CF C8         ld   a,(C8CF)
ROM4:5176 3C               inc  a
ROM4:5177 FE 02            cp   a,02
ROM4:5179 20 01            jr   nz,517C
ROM4:517B AF               xor  a
ROM4:517C EA CF C8         ld   (C8CF),a
ROM4:517F F1               pop  af
ROM4:5180 C9               ret  

4:5181 (Card Illustration)

ROM4:5181 F5               push af
ROM4:5182 C5               push bc
ROM4:5183 D5               push de
ROM4:5184 E5               push hl
ROM4:5185 CD BD 12         call 12BD		;Blanks Card Illustration data
ROM4:5188 06 00            ld   b,00
ROM4:518A FA CF C8         ld   a,(C8CF)
ROM4:518D 4F               ld   c,a
ROM4:518E CB 21            sla  c
ROM4:5190 21 B1 51         ld   hl,51B1
ROM4:5193 09               add  hl,bc
ROM4:5194 2A               ldi  a,(hl)
ROM4:5195 66               ld   h,(hl)
ROM4:5196 6F               ld   l,a
ROM4:5197 11 00 C5         ld   de,C500		;Card Illustration color data
ROM4:519A 2A               ldi  a,(hl)
ROM4:519B 47               ld   b,a
ROM4:519C 78               ld   a,b
ROM4:519D FE 00            cp   a,00
ROM4:519F 28 0B            jr   z,51AC		;If(a == 0), get out of this function
ROM4:51A1 0E 04            ld   c,04
ROM4:51A3 2A               ldi  a,(hl)
ROM4:51A4 12               ld   (de),a
ROM4:51A5 13               inc  de
ROM4:51A6 0D               dec  c
ROM4:51A7 20 FA            jr   nz,51A3		;Loop 4 times to 4:51A3
ROM4:51A9 05               dec  b
ROM4:51AA 18 F0            jr   519C
ROM4:51AC E1               pop  hl
ROM4:51AD D1               pop  de
ROM4:51AE C1               pop  bc
ROM4:51AF F1               pop  af
ROM4:51B0 C9               ret

4:51B1 (pointers array)

ROM4:51B1
B5 51
CE 51

Campaign - Stage 1

  • 0x112C2-0x112D4 - Loads Stage 1
ROM4:52C2 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM4:52C5 3E 02            ld   a,02
ROM4:52C7 CD E3 0E         call 0EE3
ROM4:52CA CD C1 10         call 10C1
ROM4:52CD 3E 02            ld   a,02		;Stage 1
ROM4:52CF EA 5D C8         ld   (C85D),a
ROM4:52D2 3E 01            ld   a,01
ROM4:52D4 C9               ret  

SRAM management

Enable MBC5 RAM

  • 0x1162D-0x11634 - Enable MBC5 battery RAM
ROM4:562D F5               push af
ROM4:562E 3E 0A            ld   a,0A
ROM4:5630 EA 00 00         ld   (0000),a
ROM4:5633 F1               pop  af
ROM4:5634 C9               ret  

Disable MBC5 RAM

  • 0x11635-0x1163B - Disable MBC5 battery RAM
ROM4:5635 F5               push af
ROM4:5636 AF               xor  a
ROM4:5637 EA 00 00         ld   (0000),a
ROM4:563A F1               pop  af
ROM4:563B C9               ret

Save file sanity check

  • 0x1163C-0x11698 - Save file sanity check, creates a new save file if the current save is corrupted, checks Debug value
ROM4:563C F5               push af
ROM4:563D C5               push bc
ROM4:563E CD 2D 56         call 562D		;Enable MBC5 RAM
ROM4:5641 FA FF B7         ld   a,(B7FF)	;Debug
ROM4:5644 EA D6 C8         ld   (C8D6),a	;Copy Debug value to (C8D6)
ROM4:5647 3E 00            ld   a,00
ROM4:5649 EA D8 C8         ld   (C8D8),a	;New Game = false
ROM4:564C CD 9C 58         call 589C		;SRAM KONAMI check
ROM4:564F FE 01            cp   a,01
ROM4:5651 20 1B            jr   nz,566E		;If the « KONAMI » string is correct, jump to 4:566E
ROM4:5653 CD D1 65         call 65D1		;No KONAMI string in SRAM ? Erase SRAM and create a new save file !
ROM4:5656 0E 3C            ld   c,3C
ROM4:5658 3E 02            ld   a,02
ROM4:565A CD E3 0E         call 0EE3
ROM4:565D CD C1 10         call 10C1
ROM4:5660 0D               dec  c
ROM4:5661 20 F5            jr   nz,5658
ROM4:5663 CD DA 29         call 29DA
ROM4:5666 CD 99 56         call 5699
ROM4:5669 3E 01            ld   a,01
ROM4:566B EA D8 C8         ld   (C8D8),a	;Set (C8D8) to 1, to indicate this is a New Game file
ROM4:566E CD C0 57         call 57C0		;Check SRAM Block and Checksum
ROM4:5671 FE 01            cp   a,01
ROM4:5673 20 1B            jr   nz,5690		;If the save file is not corrupted, jump to 4:5690
ROM4:5675 CD D1 65         call 65D1		;If the save file is corrupted, erase SRAM and create a new save file
ROM4:5678 0E 3C            ld   c,3C
ROM4:567A 3E 02            ld   a,02
ROM4:567C CD E3 0E         call 0EE3
ROM4:567F CD C1 10         call 10C1
ROM4:5682 0D               dec  c
ROM4:5683 20 F5            jr   nz,567A
ROM4:5685 CD DA 29         call 29DA
ROM4:5688 CD 99 56         call 5699
ROM4:568B 3E 01            ld   a,01
ROM4:568D EA D8 C8         ld   (C8D8),a	;New Game = true
ROM4:5690 CD 0F 57         call 570F		;Clones SRAM if SRAM block 2
ROM4:5693 CD 35 56         call 5635		;Disable MBC5 RAM
ROM4:5696 C1               pop  bc
ROM4:5697 F1               pop  af
ROM4:5698 C9               ret

SRAM blocks management

Checks SRAM current block
  • 0x1170F-0x1171B - Checks SRAM block, and clones it if it's a temporary block
ROM4:570F F5               push af
ROM4:5710 FA F0 B9         ld   a,(B9F0)
ROM4:5713 FE 02            cp   a,02
ROM4:5715 20 03            jr   nz,571A		;If(SRAM block ≠ 2), jump to 4:571A
ROM4:5717 CD 1C 57         call 571C		;Copies block 1 into SRAM block 2
ROM4:571A F1               pop  af
ROM4:571B C9               ret  
Copies SRAM block 1 into SRAM block 2
  • 0x1171C-0x1173F - Clones SRAM 0xA000-0xABF8
ROM4:571C F5               push af
ROM4:571D C5               push bc
ROM4:571E D5               push de
ROM4:571F E5               push hl
ROM4:5720 21 00 A0         ld   hl,A000
ROM4:5723 11 F8 AC         ld   de,ACF8
ROM4:5726 0E F8            ld   c,F8
ROM4:5728 2A               ldi  a,(hl)
ROM4:5729 12               ld   (de),a
ROM4:572A 13               inc  de
ROM4:572B 0D               dec  c
ROM4:572C 20 FA            jr   nz,5728
ROM4:572E 06 0C            ld   b,0C
ROM4:5730 0E 00            ld   c,00
ROM4:5732 2A               ldi  a,(hl)
ROM4:5733 12               ld   (de),a
ROM4:5734 13               inc  de
ROM4:5735 0D               dec  c
ROM4:5736 20 FA            jr   nz,5732
ROM4:5738 05               dec  b
ROM4:5739 20 F5            jr   nz,5730
ROM4:573B E1               pop  hl
ROM4:573C D1               pop  de
ROM4:573D C1               pop  bc
ROM4:573E F1               pop  af
ROM4:573F C9               ret  
Copies SRAM block 2 into SRAM block 1
ROM4:5740 F5               push af
ROM4:5741 C5               push bc
ROM4:5742 D5               push de
ROM4:5743 E5               push hl
ROM4:5744 21 00 A0         ld   hl,A000
ROM4:5747 11 F8 AC         ld   de,ACF8
ROM4:574A 0E F8            ld   c,F8
ROM4:574C 1A               ld   a,(de)
ROM4:574D 22               ldi  (hl),a
ROM4:574E 13               inc  de
ROM4:574F 0D               dec  c
ROM4:5750 20 FA            jr   nz,574C
ROM4:5752 06 0C            ld   b,0C
ROM4:5754 0E 00            ld   c,00
ROM4:5756 1A               ld   a,(de)
ROM4:5757 22               ldi  (hl),a
ROM4:5758 13               inc  de
ROM4:5759 0D               dec  c
ROM4:575A 20 FA            jr   nz,5756
ROM4:575C 05               dec  b
ROM4:575D 20 F5            jr   nz,5754
ROM4:575F E1               pop  hl
ROM4:5760 D1               pop  de
ROM4:5761 C1               pop  bc
ROM4:5762 F1               pop  af
ROM4:5763 C9               ret  

4:5764

ROM4:5764 F5               push af
ROM4:5765 C5               push bc
ROM4:5766 D5               push de
ROM4:5767 E5               push hl
ROM4:5768 CD 86 57         call 5786
ROM4:576B 06 00            ld   b,00
ROM4:576D FA D7 C8         ld   a,(C8D7)
ROM4:5770 4F               ld   c,a
ROM4:5771 CB 21            sla  c
ROM4:5773 21 82 57         ld   hl,5782
ROM4:5776 09               add  hl,bc
ROM4:5777 2A               ldi  a,(hl)
ROM4:5778 66               ld   h,(hl)
ROM4:5779 6F               ld   l,a
ROM4:577A 7B               ld   a,e
ROM4:577B 22               ldi  (hl),a
ROM4:577C 72               ld   (hl),d
ROM4:577D E1               pop  hl
ROM4:577E D1               pop  de
ROM4:577F C1               pop  bc
ROM4:5780 F1               pop  af
ROM4:5781 C9               ret  

Normal New Game

  • 0x117FF-0x11814 - Sets 0xB7F1 to 0xAA and 0xB7FF to 0x00.
ROM4:57FF 01 01 00         ld   bc,0001
ROM4:5802 F5               push af
ROM4:5803 CD 2D 56         call 562D
ROM4:5806 3E AA            ld   a,AA
ROM4:5808 EA F1 B7         ld   (B7F1),a
ROM4:580B 3E 00            ld   a,00
ROM4:580D EA FF B7         ld   (B7FF),a
ROM4:5810 CD 35 56         call 5635
ROM4:5813 F1               pop  af
ROM4:5814 C9               ret

Debug New Game

  • 0x11815-0x11827 - Sets 0xB7F1 to 0xAA and 0xB7FF to 0x01.
ROM4:5815 F5               push af
ROM4:5816 CD 2D 56         call 562D
ROM4:5819 3E AA            ld   a,AA
ROM4:581B EA F1 B7         ld   (B7F1),a
ROM4:581E 3E 01            ld   a,01
ROM4:5820 EA FF B7         ld   (B7FF),a
ROM4:5823 CD 35 56         call 5635
ROM4:5826 F1               pop  af
ROM4:5827 C9               ret
  • 0x11828-0x11832 - Enables Debug features if RAM 0xC8D6 ≠ 0 (copy from SRAM 0xB7FF), and the xor a is removed
ROM4:5828 FA D6 C8         ld   a,(C8D6)
ROM4:582B FE 00            cp   a,00
ROM4:582D 28 02            jr   z,5831
ROM4:582F 3E 01            ld   a,01		;If debug value ≠ 0, set accumulator to 1
ROM4:5831 AF               xor  a		;...then set accumulator to 0. lolwut ?
ROM4:5832 C9               ret

SRAM KONAMI check

  • 0x11891-0x1189B - « 99 12 25 KONAMI » string used to check SRAM existence in function 4:589C.
99 12 25 00 00 4B 4F 4E 41 4D 49
December 25, 1999 - KONAMI
  • 0x1189C-0x118B8 - Control the presence of date of build and « KONAMI » string in SRAM at 0xB9F1-0xB9FB, to determine if save data exists.
ROM4:589C C5               push bc
ROM4:589D D5               push de
ROM4:589E E5               push hl
ROM4:589F 06 00            ld   b,00
ROM4:58A1 21 F1 B9         ld   hl,B9F1
ROM4:58A4 11 91 58         ld   de,5891
ROM4:58A7 0E 0B            ld   c,0B
ROM4:58A9 1A               ld   a,(de)
ROM4:58AA BE               cp   (hl)
ROM4:58AB 28 02            jr   z,58AF		;If the current character is ok, jump to 4:58AF
ROM4:58AD 06 01            ld   b,01		;Else b = 1
ROM4:58AF 23               inc  hl
ROM4:58B0 13               inc  de
ROM4:58B1 0D               dec  c
ROM4:58B2 20 F5            jr   nz,58A9		;Loops 11 times to see if « 99 12 25 KONAMI » is present in SRAM at (B9F1)-(B9FB).
ROM4:58B4 78               ld   a,b
ROM4:58B5 E1               pop  hl
ROM4:58B6 D1               pop  de
ROM4:58B7 C1               pop  bc
ROM4:58B8 C9               ret

Copy data to SRAM after a Duel

  • 0x118D7-0x118EF - Updates Duel Records wins in SRAM
ROM4:58D7 0A               ld   a,(bc)
ROM4:58D8 4F               ld   c,a
ROM4:58D9 2A               ldi  a,(hl)		;Loads CPU Duel Record wins in accumulator
ROM4:58DA 12               ld   (de),a		;Writes the updated Duel record in SRAM (A71C) + (CPU opponent ID × 2)
ROM4:58DB 13               inc  de
ROM4:58DC 0D               dec  c
ROM4:58DD 20 FA            jr   nz,58D9		;Jump once to 4:58D9 to read the two bytes
ROM4:58DF C1               pop  bc
ROM4:58E0 03               inc  bc
ROM4:58E1 18 E0            jr   58C3
ROM4:58E3 3E 01            ld   a,01
ROM4:58E5 E0 70            ld   (ff00+70),a	;WRAM Bank 1
ROM4:58E7 CD 64 57         call 5764
ROM4:58EA E1               pop  hl
ROM4:58EB D1               pop  de
ROM4:58EC C1               pop  bc
ROM4:58ED F1               pop  af

Reads Deck Capacity from SRAM

  • 0x118EF-0x11921 - Copies the current Deck Capacity to 0xFFD9 when the save file is loaded.
ROM4:58EF F5               push af
ROM4:58F0 C5               push bc
ROM4:58F1 D5               push de
ROM4:58F2 E5               push hl
ROM4:58F3 11 00 A0         ld   de,A000
ROM4:58F6 01 22 59         ld   bc,5922
ROM4:58F9 0A               ld   a,(bc)
ROM4:58FA 6F               ld   l,a
ROM4:58FB 03               inc  bc
ROM4:58FC 0A               ld   a,(bc)
ROM4:58FD 67               ld   h,a
ROM4:58FE 03               inc  bc
ROM4:58FF FE 00            cp   a,00
ROM4:5901 20 05            jr   nz,5908
ROM4:5903 7D               ld   a,l
ROM4:5904 FE 00            cp   a,00
ROM4:5906 28 11            jr   z,5919
ROM4:5908 0A               ld   a,(bc)
ROM4:5909 E0 70            ld   (ff00+70),a	;WRAM Bank switch
ROM4:590B 03               inc  bc
ROM4:590C C5               push bc
ROM4:590D 0A               ld   a,(bc)
ROM4:590E 4F               ld   c,a
ROM4:590F 1A               ld   a,(de)
ROM4:5910 22               ldi  (hl),a
ROM4:5911 13               inc  de
ROM4:5912 0D               dec  c
ROM4:5913 20 FA            jr   nz,590F
ROM4:5915 C1               pop  bc
ROM4:5916 03               inc  bc
ROM4:5917 18 E0            jr   58F9
ROM4:5919 3E 01            ld   a,01
ROM4:591B E0 70            ld   (ff00+70),a	;WRAM Bank 1
ROM4:591D E1               pop  hl
ROM4:591E D1               pop  de
ROM4:591F C1               pop  bc
ROM4:5920 F1               pop  af
ROM4:5921 C9               ret

Campaign Mode

Campaign - Stage 2

  • 0x11A45-0x11A61 - Loads Stage 2
ROM4:5A45 3E 02            ld   a,02
ROM4:5A47 CD E3 0E         call 0EE3
ROM4:5A4A CD C1 10         call 10C1
ROM4:5A4D CD C5 28         call 28C5
ROM4:5A50 FE 01            cp   a,01
ROM4:5A52 38 0C            jr   c,5A60
ROM4:5A54 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM4:5A57 3E 03            ld   a,03
ROM4:5A59 EA 5D C8         ld   (C85D),a	;Stage 2
ROM4:5A5C 3E 01            ld   a,01
ROM4:5A5E 18 01            jr   5A61
ROM4:5A60 AF               xor  a
ROM4:5A61 C9               ret

Campaign - Stage 1

Opponent selection
  • 0x11C62-0x11C87 - Stage 1 menu management; ensures the cursor goes from 0 to 4 and 4 to 0
ROM4:5C62 F5               push af
ROM4:5C64 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM4:5C67 FA 70 C9         ld   a,(C970)
ROM4:5C6A 3C               inc  a
ROM4:5C6B FE 05            cp   a,05
ROM4:5C6D 20 01            jr   nz,5C70
ROM4:5C6F AF               xor  a
ROM4:5C70 EA 70 C9         ld   (C970),a
ROM4:5C73 F1               pop  af
ROM4:5C74 C9               ret  
ROM4:5C75 F5               push af
ROM4:5C76 CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM4:5C79 FA 70 C9         ld   a,(C970)
ROM4:5C7C 3D               dec  a
ROM4:5C7D FE FF            cp   a,FF
ROM4:5C7F 20 02            jr   nz,5C83
ROM4:5C81 3E 04            ld   a,04
ROM4:5C83 EA 70 C9         ld   (C970),a
ROM4:5C86 F1               pop  af
ROM4:5C87 C9               ret  
Loads Opponent music IDs
  • 0x11C88-0x11C98 - Calls 4:4FC2, which loads the pre-duel and duel musics for the selected opponent
ROM4:5C88 F5               push af
ROM4:5C89 C5               push bc
ROM4:5C8A CD 81 2A         call 2A81		;Sound Effect: Validate (Menu)
ROM4:5C8D 06 00            ld   b,00
ROM4:5C8F FA 70 C9         ld   a,(C970)
ROM4:5C92 4F               ld   c,a
ROM4:5C93 CD C2 4F         call 4FC2
ROM4:5C96 C1               pop  bc
ROM4:5C97 F1               pop  af
ROM4:5C98 C9               ret

Battle Display

  • 0x11DDA-0x11E08 -
ROM4:5DDA F5               push af
ROM4:5DDB C5               push bc
ROM4:5DDC D5               push de
ROM4:5DDD E5               push hl
ROM4:5DDE 3E 10            ld   a,10
ROM4:5DE0 CD E3 0E         call 0EE3		;Related to display
ROM4:5DE3 21 0A 5E         ld   hl,5E0A
ROM4:5DE6 01 01 9C         ld   bc,9C01
ROM4:5DE9 16 05            ld   d,05
ROM4:5DEB CD D2 10         call 10D2		;Related to display
ROM4:5DEE 1E 12            ld   e,12
ROM4:5DF0 2A               ldi  a,(hl)
ROM4:5DF1 CD 13 11         call 1113		;Updates characters displayed on screen
ROM4:5DF4 1D               dec  e
ROM4:5DF5 20 F9            jr   nz,5DF0
ROM4:5DF7 E5               push hl
ROM4:5DF8 21 20 00         ld   hl,0020
ROM4:5DFB 09               add  hl,bc
ROM4:5DFC 44               ld   b,h
ROM4:5DFD 4D               ld   c,l
ROM4:5DFE E1               pop  hl
ROM4:5DFF 15               dec  d
ROM4:5E00 20 E9            jr   nz,5DEB
ROM4:5E02 CD C1 10         call 10C1		;Related to display
ROM4:5E05 E1               pop  hl
ROM4:5E06 D1               pop  de
ROM4:5E07 C1               pop  bc
ROM4:5E08 F1               pop  af
  • 0x11E0A-0x11E1B - Filled with 0xD3
  • 0x11E1C-0x11E84 - Filled with 0x00
  • 0x11E85-0x11E8F - Define window XY coordinates
ROM4:5E85 F5               push af
ROM4:5E86 3E 90            ld   a,90
ROM4:5E88 E0 4A            ld   (ff00+4A),a	;window Y
ROM4:5E8A 3E 07            ld   a,07
ROM4:5E8C E0 4B            ld   (ff00+4B),a	;window X (leftmost)
ROM4:5E8E F1               pop  af
  • 0x11E90-0x119ED - Define window XY coordinates for Battle Display
ROM4:5E90 F5               push af
ROM4:5E91 3E 90            ld   a,90
ROM4:5E93 E0 4A            ld   (ff00+4A),a	;window Y
ROM4:5E95 3E 07            ld   a,07
ROM4:5E97 E0 4B            ld   (ff00+4B),a	;window X (leftmost)
ROM4:5E99 CD DA 5D         call 5DDA
ROM4:5E9C F1               pop  af

Array: blank name

ROM4:6519
00 00 00 00 00 00 00 00

Initialize the Player's name

  • 0x12521-0x12537 - Sets the Player's name to 0
ROM4:6521 F5               push af
ROM4:6522 C5               push bc
ROM4:6523 D5               push de
ROM4:6524 E5               push hl
ROM4:6525 21 7C C9         ld   hl,C97C
ROM4:6528 11 19 65         ld   de,6519
ROM4:652B 0E 08            ld   c,08
ROM4:652D 1A               ld   a,(de)
ROM4:652E 22               ldi  (hl),a
ROM4:652F 13               inc  de
ROM4:6530 0D               dec  c
ROM4:6531 20 FA            jr   nz,652D
ROM4:6533 E1               pop  hl
ROM4:6534 D1               pop  de
ROM4:6535 C1               pop  bc
ROM4:6536 F1               pop  af
ROM4:6537 C9               ret

Check if the character ID in Player's name is 0x00

ROM4:6538 C5               push bc
ROM4:6539 D5               push de
ROM4:653A E5               push hl
ROM4:653B 21 7C C9         ld   hl,C97C
ROM4:653E 11 19 65         ld   de,6519
ROM4:6541 06 01            ld   b,01
ROM4:6543 0E 08            ld   c,08
ROM4:6545 1A               ld   a,(de)
ROM4:6546 BE               cp   (hl)
ROM4:6547 28 02            jr   z,654B		;If the character is equal to the blank character at 4:6519, jump to 4:654B
ROM4:6549 06 00            ld   b,00
ROM4:654B 13               inc  de
ROM4:654C 23               inc  hl
ROM4:654D 0D               dec  c
ROM4:654E 20 F5            jr   nz,6545
ROM4:6550 78               ld   a,b
ROM4:6551 E1               pop  hl
ROM4:6552 D1               pop  de
ROM4:6553 C1               pop  bc
ROM4:6554 C9               ret

Player's name stored temporarily in PRNG before copy to SRAM

ROM4:6555 F5               push af
ROM4:6556 C5               push bc
ROM4:6557 E5               push hl
ROM4:6558 0E 00            ld   c,00
ROM4:655A 21 55 C8         ld   hl,C855
ROM4:655D FA 74 C9         ld   a,(C974)
ROM4:6560 86               add  (hl)
ROM4:6561 47               ld   b,a
ROM4:6562 FA 78 C9         ld   a,(C978)
ROM4:6565 88               adc  b
ROM4:6566 22               ldi  (hl),a		;(C855) = 1st character in Player's name + 5th character in Player's name
ROM4:6567 28 01            jr   z,656A
ROM4:6569 0C               inc  c
ROM4:656A FA 75 C9         ld   a,(C975)
ROM4:656D 86               add  (hl)
ROM4:656E 47               ld   b,a
ROM4:656F FA 79 C9         ld   a,(C979)
ROM4:6572 88               adc  b
ROM4:6573 22               ldi  (hl),a		;(C856) = 2st character in Player's name + 6th character in Player's name
ROM4:6574 28 01            jr   z,6577
ROM4:6576 0C               inc  c
ROM4:6577 FA 76 C9         ld   a,(C976)
ROM4:657A 86               add  (hl)
ROM4:657B 47               ld   b,a
ROM4:657C FA 7A C9         ld   a,(C97A)
ROM4:657F 88               adc  b
ROM4:6580 22               ldi  (hl),a		;(C857) = 3rd character in Player's name + 7th character in Player's name
ROM4:6581 28 01            jr   z,6584
ROM4:6583 0C               inc  c
ROM4:6584 FA 77 C9         ld   a,(C977)
ROM4:6587 86               add  (hl)
ROM4:6588 47               ld   b,a
ROM4:6589 FA 7B C9         ld   a,(C97B)
ROM4:658C 88               adc  b
ROM4:658D 22               ldi  (hl),a		;(C858) = 4th character in Player's name + 8th character in Player's name
ROM4:658E 28 01            jr   z,6591
ROM4:6590 0C               inc  c
ROM4:6591 79               ld   a,c
ROM4:6592 FE 00            cp   a,00
ROM4:6594 20 05            jr   nz,659B
ROM4:6596 3E 01            ld   a,01
ROM4:6598 EA 55 C8         ld   (C855),a	;If for whatever reason the name is empty, seed the PRNG to 1
ROM4:659B E1               pop  hl
ROM4:659C C1               pop  bc
ROM4:659D F1               pop  af
ROM4:659E C9               ret

4:65D1

  • 0x125D1-0x125F2 -
ROM4:65D1 F5               push af
ROM4:65D2 CD 21 65         call 6521		;Sets (C97C) to (C984) to 0
ROM4:65D5 CD F4 66         call 66F4		;Sets (C986)(C987)(C989) to 0, sets (C988) to 1
ROM4:65D8 3E 08            ld   a,08
ROM4:65DA CF               rst  08
ROM4:65DB 05               dec  b
ROM4:65DC 02               ld   (bc),a
ROM4:65DD 3E 00            ld   a,00
ROM4:65DF EA 84 C9         ld   (C984),a
ROM4:65E2 FA 86 C9         ld   a,(C986)
ROM4:65E5 FE 03            cp   a,03
ROM4:65E7 28 08            jr   z,65F1
ROM4:65E9 CD 15 66         call 6615
ROM4:65EC CD DA 6C         call 6CDA
ROM4:65EF 18 F1            jr   65E2
ROM4:65F1 F1               pop  af
ROM4:65F2 C9               ret

4:6615

  • 0x12615-0x12620 -
ROM4:6615 F5               push af
ROM4:6616 E5               push hl
ROM4:6617 CD 64 12         call 1264
ROM4:661A 21 45 66         ld   hl,6645
ROM4:661D CD 82 12         call 1282
ROM4:6620 CF               rst  08

4:66F4

  • 0x126F4-0x12709 - Sets (C986)(C987)(C989) to 0, sets (C988) to 1
ROM4:66F4 F5               push af
ROM4:66F5 3E 00            ld   a,00
ROM4:66F7 EA 86 C9         ld   (C986),a
ROM4:66FA 3E 00            ld   a,00
ROM4:66FC EA 87 C9         ld   (C987),a
ROM4:66FF 3E 01            ld   a,01
ROM4:6701 EA 88 C9         ld   (C988),a
ROM4:6704 3E 00            ld   a,00
ROM4:6706 EA 89 C9         ld   (C989),a
ROM4:6709 F1               pop  af
ROM4:670A C9               ret

4:6954 (Name Entry)

ROM4:6954 C5               push bc
ROM4:6955 D5               push de
ROM4:6956 E5               push hl
ROM4:6957 FA 88 C9         ld   a,(C988)
ROM4:695A FE 05            cp   a,05
ROM4:695C 20 37            jr   nz,6995
ROM4:695E CD 38 65         call 6538
ROM4:6961 FE 00            cp   a,00
ROM4:6963 20 1D            jr   nz,6982		;If the character is equal to the one in the array at 4:6519 (Character ID == 0x00), jump to 4:6982
ROM4:6965 06 00            ld   b,00
ROM4:6967 FA 84 C9         ld   a,(C984)
ROM4:696A 4F               ld   c,a
ROM4:696B CB 21            sla  c
ROM4:696D 21 C2 69         ld   hl,69C2
ROM4:6970 09               add  hl,bc
ROM4:6971 2A               ldi  a,(hl)
ROM4:6972 66               ld   h,(hl)
ROM4:6973 6F               ld   l,a
ROM4:6974 11 79 69         ld   de,6979
ROM4:6977 D5               push de
ROM4:6978 E9               jp   hl
ROM4:6979 3E 03            ld   a,03
ROM4:697B EA 86 C9         ld   (C986),a
ROM4:697E 3E 01            ld   a,01
ROM4:6980 18 11            jr   6993
ROM4:6982 3E 00            ld   a,00
ROM4:6984 EA 86 C9         ld   (C986),a
ROM4:6987 CD 85 5E         call 5E85
ROM4:698A 3E 06            ld   a,06
ROM4:698C EA 88 C9         ld   (C988),a
ROM4:698F CD 14 6A         call 6A14
ROM4:6992 AF               xor  a
ROM4:6993 18 1D            jr   69B2
ROM4:6995 06 00            ld   b,00
ROM4:6997 FA 84 C9         ld   a,(C984)
ROM4:699A 4F               ld   c,a
ROM4:699B CB 21            sla  c
ROM4:699D 21 C8 69         ld   hl,69C8
ROM4:69A0 09               add  hl,bc
ROM4:69A1 2A               ldi  a,(hl)
ROM4:69A2 66               ld   h,(hl)
ROM4:69A3 6F               ld   l,a
ROM4:69A4 11 A9 69         ld   de,69A9
ROM4:69A7 D5               push de
ROM4:69A8 E9               jp   hl
ROM4:69A9 FA 84 C9         ld   a,(C984)
ROM4:69AC 4F               ld   c,a
ROM4:69AD 21 CE 69         ld   hl,69CE
ROM4:69B0 09               add  hl,bc
ROM4:69B1 7E               ld   a,(hl)
ROM4:69B2 FE 00            cp   a,00
ROM4:69B4 20 05            jr   nz,69BB
ROM4:69B6 CD 79 2A         call 2A79
ROM4:69B9 18 03            jr   69BE
ROM4:69BB CD 81 2A         call 2A81
ROM4:69BE E1               pop  hl
ROM4:69BF D1               pop  de
ROM4:69C0 C1               pop  bc
ROM4:69C1 C9               ret  

4:6A14 (Name Entry)

ROM4:6A14 F5               push af
ROM4:6A15 C5               push bc
ROM4:6A16 E5               push hl
ROM4:6A17 3E 0E            ld   a,0E
ROM4:6A19 CD E3 0E         call 0EE3		;Related to display
ROM4:6A1C 01 06 98         ld   bc,9806
ROM4:6A1F CD D2 10         call 10D2		;Related to display
ROM4:6A22 21 7C C9         ld   hl,C97C
ROM4:6A25 0E 08            ld   c,08
ROM4:6A27 2A               ldi  a,(hl)		;a = Character ID
ROM4:6A28 CF               rst  08
...
ROM4:6A2B FA E6 C5         ld   a,(C5E6)
ROM4:6A2E CD 13 11         call 1113		;Updates characters displayed on screen
ROM4:6A31 0D               dec  c
ROM4:6A32 20 F3            jr   nz,6A27
ROM4:6A34 01 26 98         ld   bc,9826
ROM4:6A37 CD D2 10         call 10D2		;Related to display
ROM4:6A3A 21 7C C9         ld   hl,C97C
ROM4:6A3D 0E 08            ld   c,08
ROM4:6A3F 2A               ldi  a,(hl)		;a = Character ID
ROM4:6A40 CF               rst  08
...
ROM4:6A43 FA E7 C5         ld   a,(C5E7)
ROM4:6A46 CD 13 11         call 1113		;Updates characters displayed on screen
ROM4:6A49 0D               dec  c
ROM4:6A4A 20 F3            jr   nz,6A3F		;Loop 8 times to 4:6A3F (8 characters in name)
ROM4:6A4C CD 37 6C         call 6C37
ROM4:6A4F CD C1 10         call 10C1		;Related to display
ROM4:6A52 E1               pop  hl
ROM4:6A53 C1               pop  bc
ROM4:6A54 F1               pop  af
ROM4:6A55 C9               ret

Copies Player's name, initialize flags

ROM4:6DAC F5               push af
ROM4:6DAD C5               push bc
ROM4:6DAE D5               push de
ROM4:6DAF E5               push hl
ROM4:6DB0 21 55 C8         ld   hl,C855          ;PRNG (temporary storage for Player's name)
ROM4:6DB3 11 8A C9         ld   de,C98A          ;Player's name
ROM4:6DB6 0E 04            ld   c,04             ;Player's name is 4 bytes long
ROM4:6DB8 2A               ldi  a,(hl)
ROM4:6DB9 12               ld   (de),a
ROM4:6DBA 13               inc  de
ROM4:6DBB 0D               dec  c
ROM4:6DBC 20 FA            jr   nz,6DB8
ROM4:6DBE 3E 00            ld   a,00
ROM4:6DC0 E0 DC            ld   (ff00+DC),a     ;Set ? Flag to 0
ROM4:6DC2 3E 00            ld   a,00
ROM4:6DC4 E0 DB            ld   (ff00+DB),a     ;Set Grandpa flag to 0
ROM4:6DC6 E1               pop  hl
ROM4:6DC7 D1               pop  de
ROM4:6DC8 C1               pop  bc
ROM4:6DC9 F1               pop  af
ROM4:6DCA C9               ret  

Check if Grandpa flag is set

0x12DCB - 0x12DD8 - Returns 0 if Grandpa flag is set, 1 otherwise.

ROM4:6DCB C5               push bc
ROM4:6DCC 0E 01            ld   c,01
ROM4:6DCE F0 DB            ld   a,(ff00+DB)
ROM4:6DD0 E6 80            and  a,80
ROM4:6DD2 28 02            jr   z,6DD6
ROM4:6DD4 0E 00            ld   c,00
ROM4:6DD6 79               ld   a,c
ROM4:6DD7 C1               pop  bc
ROM4:6DD8 C9               ret

Set Grandpa flag

ROM4:6DD9 F5               push af
ROM4:6DDA F0 DB            ld   a,(ff00+DB)
ROM4:6DDC F6 80            or   a,80
ROM4:6DDE E0 DB            ld   (ff00+DB),a      ;hFFDB |= 0x80
ROM4:6DE0 F1               pop  af
ROM4:6DE1 C9               ret

Game text 2

  • 0x132E8 - « BATTLES »
  • 0x132EF - « WIN »
  • 0x13C76 - « lower body1 »
  • 0x13C81 - « upper body1 »
  • 0x13C8C - « lower body2 »
  • 0x13C97 - « upper body2 »

Bank 5

Card display

Card display subroutine

  • 0x1408C-0x140B2 - Card display subroutine
ROM5:408C 3E 06            ld   a,06
ROM5:408E CD 24 12         call 1224		;Switches to WRAM Bank 6
ROM5:4091 CD 1C 41         call 411C		;Display Level
ROM5:4094 CD 90 41         call 4190
ROM5:4097 CD D0 41         call 41D0		;Display Card ID
ROM5:409A CD 3C 42         call 423C		;Display ATK
ROM5:409D CD 6E 42         call 426E		;Display DEF
ROM5:40A0 CD A0 42         call 42A0		;Display Type
ROM5:40A3 CD 0B 42         call 420B
ROM5:40A6 CD E2 42         call 42E2
ROM5:40A9 CD CC 40         call 40CC
ROM5:40AC CD 48 12         call 1248		;WRAM Bank restore
ROM5:40AF CD 3E 30         call 303E
ROM5:40B2 CF               rst  08

5:40CC

ROM5:40CC F5               push af
ROM5:40CD C5               push bc
ROM5:40CE D5               push de
ROM5:40CF E5               push hl
ROM5:40D0 16 00            ld   d,00
ROM5:40D2 21 FC 40         ld   hl,40FC
ROM5:40D5 19               add  hl,de
ROM5:40D6 7E               ld   a,(hl)
ROM5:40D7 FE 00            cp   a,00
ROM5:40D9 20 19            jr   nz,40F4
ROM5:40DB FA B3 C6         ld   a,(C6B3)	;bc = Current Card ID
ROM5:40DE 4F               ld   c,a
ROM5:40DF FA B4 C6         ld   a,(C6B4)
ROM5:40E2 47               ld   b,a
ROM5:40E3 CD 84 1A         call 1A84		;Checks Card ID validity
ROM5:40E6 FE 01            cp   a,01
ROM5:40E8 20 05            jr   nz,40EF		;If(Card ID > 800), jump to 5:40EF
ROM5:40EA CD 67 29         call 2967
ROM5:40ED 18 03            jr   40F2
ROM5:40EF CD 97 43         call 4397
ROM5:40F2 18 03            jr   40F7
ROM5:40F4 CD 27 43         call 4327
ROM5:40F7 E1               pop  hl
ROM5:40F8 D1               pop  de
ROM5:40F9 C1               pop  bc
ROM5:40FA F1               pop  af
ROM5:40FB C9               ret

Display Level

  • 0x1411C-0x14147 - Card Level display, stores Levels to display at (6:D04A)
ROM5:411C F5               push af
ROM5:411D C5               push bc
ROM5:411E D5               push de
ROM5:411F E5               push hl
ROM5:4120 06 00            ld   b,00
ROM5:4122 FA BD C6         ld   a,(C6BD)	;Current card Level
ROM5:4125 4F               ld   c,a
ROM5:4126 CB 21            sla  c
ROM5:4128 CB 10            rl   b
ROM5:412A CB 21            sla  c
ROM5:412C CB 10            rl   b
ROM5:412E CB 21            sla  c
ROM5:4130 CB 10            rl   b
ROM5:4132 21 48 41         ld   hl,4148
ROM5:4135 09               add  hl,bc		;hl = Pointer to Card Levels array
ROM5:4136 54               ld   d,h
ROM5:4137 5D               ld   e,l
ROM5:4138 21 4A D0         ld   hl,D04A
ROM5:413B 0E 08            ld   c,08
ROM5:413D 1A               ld   a,(de)
ROM5:413E 22               ldi  (hl),a		;Store Card Levels to display to (6:D04A)
ROM5:413F 13               inc  de
ROM5:4140 0D               dec  c
ROM5:4141 20 FA            jr   nz,413D		;Loop 8 times
ROM5:4143 E1               pop  hl
ROM5:4144 D1               pop  de
ROM5:4145 C1               pop  bc
ROM5:4146 F1               pop  af
ROM5:4147 C9               ret

Card Levels display array

ROM5:4148
00 for blank, 7F for star

Display Card ID

ROM5:4190 F5               push af
ROM5:4191 C5               push bc
ROM5:4192 D5               push de
ROM5:4193 E5               push hl
ROM5:4194 21 01 D0         ld   hl,D001
ROM5:4197 FA B3 C6         ld   a,(C6B3)	;bc = Card ID
ROM5:419A 4F               ld   c,a
ROM5:419B FA B4 C6         ld   a,(C6B4)
ROM5:419E 47               ld   b,a
ROM5:419F CD AC 16         call 16AC
ROM5:41A2 CF               rst  08

Display Card ID

ROM5:41D0 F5               push af
ROM5:41D1 C5               push bc
ROM5:41D2 E5               push hl
ROM5:41D3 3E 00            ld   a,00
ROM5:41D5 CF               rst  08
...
ROM5:41D8 FA B3 C6         ld   a,(C6B3)	;Card ID
ROM5:41DB 4F               ld   c,a
ROM5:41DC FA B4 C6         ld   a,(C6B4)
ROM5:41DF 47               ld   b,a
ROM5:41E0 CD 84 1A         call 1A84		;Checks Card ID validity
ROM5:41E3 FE 01            cp   a,01
ROM5:41E5 20 20            jr   nz,4207		;If(Card ID > 800), get out of this function
ROM5:41E7 79               ld   a,c
ROM5:41E8 EA F6 C5         ld   (C5F6),a	;Card ID displayed
ROM5:41EB 78               ld   a,b
ROM5:41EC EA F7 C5         ld   (C5F7),a
ROM5:41EF CD 03 15         call 1503		;Converts in decimal
ROM5:41F2 CF               rst  08
...
ROM5:41FB FA D1 C5         ld   a,(C5D1)
ROM5:41FE 22               ldi  (hl),a
ROM5:41FF FA D2 C5         ld   a,(C5D2)
ROM5:4202 22               ldi  (hl),a
ROM5:4203 FA D3 C5         ld   a,(C5D3)
ROM5:4206 22               ldi  (hl),a
ROM5:4207 E1               pop  hl
ROM5:4208 C1               pop  bc
ROM5:4209 F1               pop  af
ROM5:420A C9               ret

Display ATK

ROM5:423C F5               push af
ROM5:423D C5               push bc
ROM5:423E E5               push hl
ROM5:423F 21 AE D0         ld   hl,D0AE
ROM5:4242 3E 00            ld   a,00
ROM5:4244 CF               rst  08
...
ROM5:4247 FA B7 C6         ld   a,(C6B7)	;Card ATK
ROM5:424A 4F               ld   c,a
ROM5:424B FA B8 C6         ld   a,(C6B8)
ROM5:424E 47               ld   b,a
ROM5:424F 78               ld   a,b
ROM5:4250 FE FF            cp   a,FF
ROM5:4252 28 16            jr   z,426A
ROM5:4254 CF               rst  08
...
ROM5:425C C5               push bc
ROM5:425D 22               ldi  (hl),a
ROM5:425E FA D1 C5         ld   a,(C5D1)
ROM5:4261 22               ldi  (hl),a
ROM5:4262 FA D2 C5         ld   a,(C5D2)
ROM5:4265 22               ldi  (hl),a
ROM5:4266 FA D3 C5         ld   a,(C5D3)
ROM5:4269 22               ldi  (hl),a
ROM5:426A E1               pop  hl
ROM5:426B C1               pop  bc
ROM5:426C F1               pop  af
ROM5:426D C9               ret  

Display DEF

ROM5:426E F5               push af
ROM5:426F C5               push bc
ROM5:4270 E5               push hl
ROM5:4271 21 CE D0         ld   hl,D0CE
ROM5:4274 3E 00            ld   a,00
ROM5:4276 CF               rst  08

...

ROM5:4278 FA B9 C6         ld   a,(C6B9)	;Card DEF
ROM5:427B 4F               ld   c,a
ROM5:427D FA BA C6         ld   a,(C6BA)
ROM5:4280 47               ld   b,a
ROM5:4281 78               ld   a,b
ROM5:4282 FE FF            cp   a,FF
ROM5:4284 28 16            jr   z,429C
ROM5:4286 CF               rst  08

...

ROM5:428E C5               push bc
ROM5:428F 22               ldi  (hl),a
ROM5:4290 FA D1 C5         ld   a,(C5D1)
ROM5:4293 22               ldi  (hl),a
ROM5:4294 FA D2 C5         ld   a,(C5D2)
ROM5:4297 22               ldi  (hl),a
ROM5:4298 FA D3 C5         ld   a,(C5D3)
ROM5:429B 22               ldi  (hl),a
ROM5:429C E1               pop  hl
ROM5:429D C1               pop  bc
ROM5:429E F1               pop  af
ROM5:429F C9               ret

Display Type

ROM5:42A0 F5               push af
ROM5:42A1 C5               push bc
ROM5:42A2 D5               push de
ROM5:42A3 E5               push hl
ROM5:42A4 3E 0E            ld   a,0E
ROM5:42A6 CF               rst  08
...
ROM5:42AB FA BB C6         ld   a,(C6BB)	;Card Type
ROM5:42AE 4F               ld   c,a
ROM5:42AF CF               rst  08
...
ROM5:42B7 C5               push bc
ROM5:42B8 11 EB D0         ld   de,D0EB
ROM5:42BB 0E 08            ld   c,08
ROM5:42BD 2A               ldi  a,(hl)
ROM5:42BE CF               rst  08
...
ROM5:42C7 20 F4            jr   nz,42BD
ROM5:42C9 21 D0 C5         ld   hl,C5D0
ROM5:42CC 11 0B D1         ld   de,D10B
ROM5:42CF 0E 08            ld   c,08
ROM5:42D1 2A               ldi  a,(hl)
ROM5:42D2 CF               rst  08
...
ROM5:42DB 20 F4            jr   nz,42D1
ROM5:42DD E1               pop  hl
ROM5:42DE D1               pop  de
ROM5:42DF C1               pop  bc
ROM5:42E0 F1               pop  af
ROM5:42E1 C9               ret

Duelist level text

  • 0x14370 - « Can't use card due to duelist level. »

Duel text

5:4A64

ROM5:4A64 F5               push af
ROM5:4A65 3E 01            ld   a,01
ROM5:4A67 EA 0A C9         ld   (C90A),a	;(C90A) = 1
ROM5:4A6A F1               pop  af
ROM5:4A6B C9               ret  

5:4A6C

ROM5:4A6C F5               push af
ROM5:4A6D C5               push bc
ROM5:4A6E E5               push hl
ROM5:4A6F FA FF C8         ld   a,(C8FF)
ROM5:4A72 FE 01            cp   a,01
ROM5:4A74 20 03            jr   nz,4A79
ROM5:4A76 CD 7D 4A         call 4A7D		;Duel text subroutine
ROM5:4A79 E1               pop  hl
ROM5:4A7A C1               pop  bc
ROM5:4A7B F1               pop  af
ROM5:4A7C C9               ret  

Duel text subroutine

ROM5:4A7D C5               push bc
ROM5:4A7E E5               push hl
ROM5:4A7F FA 0A C9         ld   a,(C90A)
ROM5:4A82 FE 01            cp   a,01
ROM5:4A84 20 08            jr   nz,4A8E
ROM5:4A86 CD E3 4A         call 4AE3
ROM5:4A89 EA 00 C9         ld   (C900),a	;Character to display in text box
ROM5:4A8C 18 16            jr   4AA4
ROM5:4A8E CD A7 4A         call 4AA7		;Load duel text
ROM5:4A91 EA 00 C9         ld   (C900),a	;Character to display in text box
ROM5:4A94 CD D4 4A         call 4AD4		;Load special text from pointer (Character ID ≥ 0xB5)
ROM5:4A97 FE 00            cp   a,00
ROM5:4A99 20 09            jr   nz,4AA4		;If no special text has been requested, get out of this function
ROM5:4A9B CD 64 4A         call 4A64		;(C90A) = 1
ROM5:4A9E CD E3 4A         call 4AE3
ROM5:4AA1 EA 00 C9         ld   (C900),a	;Character to display in text box
ROM5:4AA4 E1               pop  hl
ROM5:4AA5 C1               pop  bc
ROM5:4AA6 C9               ret

Load duel text

ROM5:4AA7 C5               push bc
ROM5:4AA8 E5               push hl
ROM5:4AA9 06 00            ld   b,00
ROM5:4AAB FA 05 C9         ld   a,(C905)
ROM5:4AAE 4F               ld   c,a
ROM5:4AAF CB 21            sla  c
ROM5:4AB1 CB 10            rl   b
ROM5:4AB3 21 F3 4A         ld   hl,4AF3
ROM5:4AB6 09               add  hl,bc
ROM5:4AB7 2A               ldi  a,(hl)
ROM5:4AB8 66               ld   h,(hl)
ROM5:4AB9 6F               ld   l,a
ROM5:4ABA FA 02 C9         ld   a,(C902)
ROM5:4ABD 47               ld   b,a
ROM5:4ABE FA 01 C9         ld   a,(C901)
ROM5:4AC1 4F               ld   c,a
ROM5:4AC2 3C               inc  a
ROM5:4AC3 EA 01 C9         ld   (C901),a
ROM5:4AC6 20 07            jr   nz,4ACF
ROM5:4AC8 FA 02 C9         ld   a,(C902)
ROM5:4ACB 3C               inc  a
ROM5:4ACC EA 02 C9         ld   (C902),a
ROM5:4ACF 09               add  hl,bc		;hl = Pointer to current character in duel text
ROM5:4AD0 7E               ld   a,(hl)		;a = Character ID
ROM5:4AD1 E1               pop  hl
ROM5:4AD2 C1               pop  bc
ROM5:4AD3 C9               ret  

Load special text from pointer

ROM5:4AD4 FE B5            cp   a,B5
ROM5:4AD6 38 08            jr   c,4AE0		;If it is not a pointer, get out of this function
ROM5:4AD8 D6 B5            sub  a,B5
ROM5:4ADA CD 81 2D         call 2D81		;Set special text pointer offset
ROM5:4ADD AF               xor  a
ROM5:4ADE 18 02            jr   4AE2
ROM5:4AE0 3E 01            ld   a,01
ROM5:4AE2 C9               ret

5:4AE3 (Special text ?)

ROM5:4AE3 C5               push bc
ROM5:4AE4 CD 09 2D         call 2D09
ROM5:4AE7 F5               push af
ROM5:4AE8 78               ld   a,b
ROM5:4AE9 FE 01            cp   a,01
ROM5:4AEB 20 03            jr   nz,4AF0
ROM5:4AED CD 5C 4A         call 4A5C
ROM5:4AF0 F1               pop  af
ROM5:4AF1 C1               pop  bc
ROM5:4AF2 C9               ret

Duel text strings

  • 0x14BF4 - « [Player]'s Turn »
  • 0x14BFE - « [Opponent]'s Turn »
  • 0x14C09 - « COMM in progress »
  • 0x14C1C - « End of Turn » (Unused)
  • 0x14C45 - « Your deck is short 40 cards! » (Unused ?)
  • 0x14C63 - « Trade Complete »
  • 0x14C73 - « Opponent's Turn »
  • 0x14C84 - « COMM fusion triggered.[Card Name] created. »
  • 0x14CA7 - « [Petit Moth] evolved to [Larvae Moth] »
  • 0x14CB7 - « [Larvae Moth] evolved to [Cocoon of Evolution] »
  • 0x14CC7 - « [Cocoon of Evolution] evolved to [Great Moth] »
  • 0x14CD7 - « [Great Moth] evolved to [Perfectly Ultimate Great Moth] »
  • 0x14CE7 - « Swords of Revealing Light still in effect »
  • 0x14D13 - « Swords of Revealing Light has stopped »
  • 0x14D3A - Legendary Sword
  • 0x14D5E - « Used [Card Name] [Card Name] splits and becomes [Card Name] »
  • 0x14D7F - Stop Defense
  • 0x14DAC - Dragon Capture Jar
  • 0x14DED - Forest / Wasteland / Mountain / Sogen / Umi / Yami
  • 0x15041 - Dark Hole
  • 0x15074 - Raigeki
  • 0x150A7 - Mooyan Curry / Red Medicine / Goblin's Secret Remedy / Soul of the Pure / Dian Keto the Cure Master
  • 0x15170 - Sparks / Hinotama / Final Flame / Ookazi / Tremendous Fire
  • 0x1523E - Swords of Revealing Light
  • 0x152A0 - Spellbinding Circle
  • 0x152E0 - Dark-Piercing Light
  • 0x1532F - « Fusion of [Card Name] and [Card Name] created [Card Name] »
  • 0x1534C - « Used [Card Name] Power-up [Card Name] »
  • 0x15360 - « Used [Card Name] Power-up was unsuccessful. » (Unused)
  • 0x15384 - Types-specific power-ups and removal cards
  • 0x15401 - Cursebreaker
  • 0x1542D - Types-specific power-ups and removal cards
  • 0x15455 - « Used Megamorph Level increases by 2! » (Unused, should be used by Megamorph but isn't)
  • 0x15474 - Metalmorph
  • 0x1549F - Types-specific power-ups and removal cards
  • 0x154F2 - Crush Card
  • 0x15520 - Types-specific power-ups and removal cards
  • 0x155C3 - Shadow Spell
  • 0x155F9 - Harpie's Feather Duster
  • 0x1561B - House of Adhesive Tape / Eatgaboon / Bear Trap / Invisible Wire / Acid Trap Hole / Widespread Ruin
  • 0x15634 - Goblin Fan
  • 0x15652 - Bad Reaction to Simochi
  • 0x15680 - Reverse Trap
  • 0x156A8 - Tribute Summon
  • 0x156D6 - Monster has no effect / Effect has already been activated
  • 0x15724 - Pot of Greed
  • 0x15754 - The Inexperienced Spy
  • 0x1577A - Restructer Revolution
  • 0x157C9 - Types-specific power-ups and removal cards
  • 0x15828 - Multiply
  • 0x1583F - Change of Heart
  • 0x15862 - Anti Raigeki
  • 0x15897 - Brain Control
  • 0x158C7-0x162DB - Effect Monsters

Deck Capacity

Initial Deck Capacity

  • 0x167E7-0x167FE - Initial Deck Capacity
ROM5:67E7 FE 00            cp   a,00
ROM5:67E9 20 0A            jr   nz,67F5		;If debug, jump to 5:67F5
ROM5:67EB 3E 90            ld   a,90
ROM5:67ED E0 D9            ld   (ff00+D9),a
ROM5:67EF 3E 01            ld   a,01
ROM5:67F1 E0 DA            ld   (ff00+DA),a	;Set Deck Capacity to 400
ROM5:67F3 18 08            jr   67FD
ROM5:67F5 3E 0F            ld   a,0F
ROM5:67F7 E0 D9            ld   (ff00+D9),a
ROM5:67F9 3E 27            ld   a,27
ROM5:67FB E0 DA            ld   (ff00+DA),a	;Set Deck Capacity to 9999
ROM5:67FD F1               pop  af
ROM5:67FE C9               ret

Retrieves Deck Capacity

  • 0x167FF-0x16807 - Retrieves Deck Capacity
ROM5:67FF F5               push af
ROM5:6800 F0 D9            ld   a,(ff00+D9)
ROM5:6802 4F               ld   c,a
ROM5:6803 F0 DA            ld   a,(ff00+DA)
ROM5:6805 47               ld   b,a		;bc = Deck Capacity
ROM5:6806 F1               pop  af
ROM5:6807 C9               ret  

Duelist Level subroutine

  • 0x16808-0x16813 - Duelist Level subroutine
ROM5:6808 C5               push bc
ROM5:6809 F0 D9            ld   a,(ff00+D9)
ROM5:680B 4F               ld   c,a
ROM5:680C F0 DA            ld   a,(ff00+DA)
ROM5:680E 47               ld   b,a		;bc = Deck Capacity
ROM5:680F CD 19 68         call 6819		;Duelist Level calculation
ROM5:6812 C1               pop  bc
ROM5:6813 C9               ret  

5:6814

ROM5:6814 C5               push bc
ROM5:6815 3E 0D            ld   a,0D
ROM5:6817 C1               pop  bc
ROM5:6818 C9               ret  

Duelist Level calculation

  • 0x16819 - Duelist Level calculation
((Deck Capacity - 400) ÷ 3) + 15
A Deck Capacity of 1120 is required to get a Duelist Level of 255
ROM5:6819 C5               push bc
ROM5:681A D5               push de
ROM5:681B 79               ld   a,c
ROM5:681C D6 90            sub  a,90
ROM5:681E 5F               ld   e,a
ROM5:681F 78               ld   a,b
ROM5:6820 DE 01            sbc  a,01
ROM5:6822 57               ld   d,a		;de = Deck Capacity - 400
ROM5:6823 01 03 00         ld   bc,0003
ROM5:6826 CD 32 14         call 1432		;de ÷ 3
ROM5:6829 7B               ld   a,e
ROM5:682A C6 0F            add  a,0F
ROM5:682C 5F               ld   e,a		;Duelist Level += 15
ROM5:682D 7A               ld   a,d
ROM5:682E CE 00            adc  a,00
ROM5:6830 57               ld   d,a
ROM5:6831 7A               ld   a,d
ROM5:6832 FE 00            cp   a,00
ROM5:6834 28 02            jr   z,6838		;If(Duelist Level ≤ 255), jump to 5:6838
ROM5:6836 1E FF            ld   e,FF		;Else Duelist Level = 255
ROM5:6838 7B               ld   a,e
ROM5:6839 D1               pop  de
ROM5:683A C1               pop  bc
ROM5:683B C9               ret

Increment Deck Capacity

  • 0x1683C - Increments Deck Capacity
ROM5:683C F5               push af
ROM5:683D C5               push bc
ROM5:683E D5               push de
ROM5:683F F0 D9            ld   a,(ff00+D9)
ROM5:6841 C6 01            add  a,01
ROM5:6843 4F               ld   c,a
ROM5:6844 F0 DA            ld   a,(ff00+DA)
ROM5:6846 CE 00            adc  a,00
ROM5:6848 47               ld   b,a		;bc = Deck Capacity + 1
ROM5:6849 11 0F 27         ld   de,270F
ROM5:684C CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM5:684F FE 00            cp   a,00
ROM5:6851 20 02            jr   nz,6855		;If(Deck Capacity < 9999), jump to 5:6855
ROM5:6853 42               ld   b,d
ROM5:6854 4B               ld   c,e		;Else Deck Capacity = 9999
ROM5:6855 79               ld   a,c
ROM5:6856 E0 D9            ld   (ff00+D9),a
ROM5:6858 78               ld   a,b
ROM5:6859 E0 DA            ld   (ff00+DA),a	;Copy updated Deck Capacity to (FFD9)
ROM5:685B D1               pop  de
ROM5:685C C1               pop  bc
ROM5:685D F1               pop  af
ROM5:685E C9               ret

Decrement Deck Capacity (unused)

  • 0x1683C - Decrements Deck Capacity (unused)
ROM5:685F F5               push af
ROM5:6860 C5               push bc
ROM5:6861 D5               push de
ROM5:6862 F0 D9            ld   a,(ff00+D9)
ROM5:6864 D6 01            sub  a,01
ROM5:6866 4F               ld   c,a		;bc = Deck Capacity - 1
ROM5:6867 F0 DA            ld   a,(ff00+DA)
ROM5:6869 DE 00            sbc  a,00
ROM5:686B 47               ld   b,a
ROM5:686C 11 90 01         ld   de,0190
ROM5:686F CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM5:6872 FE 02            cp   a,02
ROM5:6874 20 02            jr   nz,6878		;If(Deck Capacity > 400), jump to 5:6878
ROM5:6876 42               ld   b,d
ROM5:6877 4B               ld   c,e		;Else Deck Capacity = 400
ROM5:6878 79               ld   a,c
ROM5:6879 E0 D9            ld   (ff00+D9),a
ROM5:687B 78               ld   a,b
ROM5:687C E0 DA            ld   (ff00+DA),a	;Copy updated Deck Capacity to (FFD9)
ROM5:687E D1               pop  de
ROM5:687F C1               pop  bc
ROM5:6880 F1               pop  af
ROM5:6881 C9               ret

Deck Capacity - CPU duel win

  • 0x16882-0x1688C - Deck Capacity increase after winning a CPU Duel
ROM5:6882 F5               push af
ROM5:6883 3E 05            ld   a,05
ROM5:6885 CD 3C 68         call 683C		;Increment Deck Capacity
ROM5:6888 3D               dec  a
ROM5:6889 20 FA            jr   nz,6885		;Loop 5 times
ROM5:688B F1               pop  af
ROM5:688C C9               ret  

Deck Capacity - CPU duel loss

  • 0x1688D-0x16897 - Deck Capacity increase after losing a CPU Duel
ROM5:688D F5               push af
ROM5:688E 3E 05            ld   a,05
ROM5:6890 CD 3C 68         call 683C		;Increment Deck Capacity
ROM5:6893 3D               dec  a
ROM5:6894 20 FA            jr   nz,6890		;Loop 5 times
ROM5:6896 F1               pop  af
ROM5:6897 C9               ret  

Deck Capacity - Link Duel win

  • 0x16898-0x168A2 - Deck Capacity increase after winning a Link Duel
ROM5:6898 F5               push af
ROM5:6899 3E 14            ld   a,14
ROM5:689B CD 3C 68         call 683C		;Increment Deck Capacity
ROM5:689E 3D               dec  a
ROM5:689F 20 FA            jr   nz,689B		;Loop 20 times
ROM5:68A1 F1               pop  af
ROM5:68A2 C9               ret  

Deck Capacity - Link Duel loss

  • 0x168A3-0x168AD - Deck Capacity increase after losing a Link Duel
ROM5:68A3 F5               push af
ROM5:68A4 3E 0A            ld   a,0A
ROM5:68A6 CD 3C 68         call 683C		;Increment Deck Capacity
ROM5:68A9 3D               dec  a
ROM5:68AA 20 FA            jr   nz,68A6		;Loop 10 times
ROM5:68AC F1               pop  af
ROM5:68AD C9               ret  


Deck Capacity - Trade

  • 0x168AE-0x168B8 - Deck Capacity increase after a Trade
ROM5:68AE F5               push af
ROM5:68AF 3E 02            ld   a,02
ROM5:68B1 CD 3C 68         call 683C		;Increment Deck Capacity
ROM5:68B4 3D               dec  a
ROM5:68B5 20 FA            jr   nz,68B1		;Loop 2 times
ROM5:68B7 F1               pop  af
ROM5:68B8 C9               ret

Ensures Deck Capacity is not exceeded

  • 0x168B9-0x168D4 - Ensures Deck Capacity is not exceeded. Returns 0 if the Deck Capacity is valid, 1 otherwise
ROM5:68B9 C5               push bc
ROM5:68BA D5               push de
ROM5:68BB E5               push hl
ROM5:68BC 2E 00            ld   l,00
ROM5:68BE CF               rst  08
...
ROM5:68C1 F0 D9            ld   a,(ff00+D9)
ROM5:68C3 5F               ld   e,a
ROM5:68C4 F0 DA            ld   a,(ff00+DA)
ROM5:68C6 57               ld   d,a		;de = Deck Capacity
ROM5:68C7 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM5:68CA FE 00            cp   a,00
ROM5:68CC 20 02            jr   nz,68D0		;If(Deck Points total ≤ Deck Capacity), jump to 5:68D0 and return 0
ROM5:68CE 2E 01            ld   l,01		;Else return 1
ROM5:68D0 7D               ld   a,l
ROM5:68D1 E1               pop  hl
ROM5:68D2 D1               pop  de
ROM5:68D3 C1               pop  bc
ROM5:68D4 C9               ret

Bank 6

rst 08 pointers

ROM6:4002
D5 52
CE 52
0E 40 - Display text box & changes music
34 41
B4 41
C6 5A

Display text box & changes music

ROM6:400E F5               push af
ROM6:400F FA 4C C8         ld   a,(C84C)
ROM6:4012 FE 01            cp   a,01
ROM6:4014 20 03            jr   nz,4019
ROM6:4016 CD 22 40         call 4022
ROM6:4019 FE 02            cp   a,02
ROM6:401B 20 03            jr   nz,4020
ROM6:401D CD 46 40         call 4046
ROM6:4020 F1               pop  af
ROM6:4021 C9               ret  

6:4022 (Duel Music ?)

ROM6:4022 F5               push af
ROM6:4023 FA B1 C7         ld   a,(C7B1)
ROM6:4026 FE 01            cp   a,01
ROM6:4028 20 0B            jr   nz,4035		;If this is not Campaign mode, jump to 6:4035
ROM6:402A CD CE 52         call 52CE
ROM6:402D CF               rst  08
ROM6:402E 03               inc  bc
ROM6:402F 04               inc  b
ROM6:4030 CD 59 2A         call 2A59		;Duel Music subroutine
ROM6:4033 18 0F            jr   4044
ROM6:4035 CF               rst  08
ROM6:4036 67               ld   h,a
ROM6:4037 03               inc  bc
ROM6:4038 CD CE 52         call 52CE
ROM6:403B CF               rst  08
ROM6:403C 65               ld   h,l
ROM6:403D 03               inc  bc
ROM6:403E CF               rst  08
...
ROM6:4041 CD 59 2A         call 2A59		;Duel Music subroutine
ROM6:4044 F1               pop  af
ROM6:4045 C9               ret

Display text box

ROM6:4046 F5               push af
ROM6:4047 FA B1 C7         ld   a,(C7B1)	;Menu ID
ROM6:404A FE 01            cp   a,01
ROM6:404C 20 3E            jr   nz,408C		;If not Campaign mode, jump to 6:408C
ROM6:404E CD E5 40         call 40E5
ROM6:4051 FE 00            cp   a,00
ROM6:4053 20 06            jr   nz,405B
ROM6:4055 CD 8D 44         call 448D
ROM6:4058 CF               rst  08
ROM6:4059 55               ld   d,l
ROM6:405A 03               inc  bc
ROM6:405B FE 01            cp   a,01
ROM6:405D 20 06            jr   nz,4065
ROM6:405F CD 69 41         call 4169
ROM6:4062 CF               rst  08
ROM6:4063 55               ld   d,l
ROM6:4064 03               inc  bc
ROM6:4065 FE 02            cp   a,02
ROM6:4067 20 06            jr   nz,406F
ROM6:4069 CD 18 46         call 4618
ROM6:406C CF               rst  08
ROM6:406D 55               ld   d,l
ROM6:406E 03               inc  bc
ROM6:406F FE 03            cp   a,03
ROM6:4071 20 06            jr   nz,4079
ROM6:4073 CD 33 4C         call 4C33
ROM6:4076 CF               rst  08
ROM6:4077 55               ld   d,l
ROM6:4078 03               inc  bc
ROM6:4079 FE 04            cp   a,04
ROM6:407B 20 06            jr   nz,4083
ROM6:407D CD 75 4F         call 4F75
ROM6:4080 CF               rst  08
ROM6:4081 55               ld   d,l
ROM6:4082 03               inc  bc
ROM6:4083 FE 05            cp   a,05
ROM6:4085 20 03            jr   nz,408A
ROM6:4087 CD AC 41         call 41AC
ROM6:408A 18 57            jr   40E3
ROM6:408C CD E5 40         call 40E5
ROM6:408F FE 00            cp   a,00
ROM6:4091 20 03            jr   nz,4096
ROM6:4093 CF               rst  08
ROM6:4094 55               ld   d,l
ROM6:4095 03               inc  bc
ROM6:4096 FE 01            cp   a,01
ROM6:4098 20 0C            jr   nz,40A6
ROM6:409A CF               rst  08
ROM6:409B 69               ld   l,c
ROM6:409C 03               inc  bc
ROM6:409D CD 69 41         call 4169
ROM6:40A0 CF               rst  08
ROM6:40A1 65               ld   h,l
ROM6:40A2 03               inc  bc
ROM6:40A3 CF               rst  08
ROM6:40A4 55               ld   d,l
ROM6:40A5 03               inc  bc
ROM6:40A6 FE 02            cp   a,02
ROM6:40A8 20 0C            jr   nz,40B6
ROM6:40AA CF               rst  08
ROM6:40AB 69               ld   l,c
ROM6:40AC 03               inc  bc
ROM6:40AD CD 18 46         call 4618
ROM6:40B0 CF               rst  08
ROM6:40B1 65               ld   h,l
ROM6:40B2 03               inc  bc
ROM6:40B3 CF               rst  08
ROM6:40B4 55               ld   d,l
ROM6:40B5 03               inc  bc
ROM6:40B6 FE 03            cp   a,03
ROM6:40B8 20 0C            jr   nz,40C6
ROM6:40BA CF               rst  08
ROM6:40BB 69               ld   l,c
ROM6:40BC 03               inc  bc
ROM6:40BD CD 33 4C         call 4C33
ROM6:40C0 CF               rst  08
ROM6:40C1 65               ld   h,l
ROM6:40C2 03               inc  bc
ROM6:40C3 CF               rst  08
ROM6:40C4 55               ld   d,l
ROM6:40C5 03               inc  bc
ROM6:40C6 FE 04            cp   a,04
ROM6:40C8 20 0C            jr   nz,40D6
ROM6:40CA CF               rst  08
ROM6:40CB 69               ld   l,c
ROM6:40CC 03               inc  bc
ROM6:40CD CD 75 4F         call 4F75
ROM6:40D0 CF               rst  08
ROM6:40D1 65               ld   h,l
ROM6:40D2 03               inc  bc
ROM6:40D3 CF               rst  08
ROM6:40D4 55               ld   d,l
ROM6:40D5 03               inc  bc
ROM6:40D6 FE 05            cp   a,05
ROM6:40D8 20 09            jr   nz,40E3
ROM6:40DA CF               rst  08
ROM6:40DB 6B               ld   l,e
ROM6:40DC 03               inc  bc
ROM6:40DD CD AC 41         call 41AC
ROM6:40E0 CF               rst  08
ROM6:40E1 65               ld   h,l
ROM6:40E2 03               inc  bc
ROM6:40E3 F1               pop  af
ROM6:40E4 C9               ret

6:40E5

ROM6:40E5 C5               push bc
ROM6:40E6 D5               push de
ROM6:40E7 1E 00            ld   e,00
ROM6:40E9 FA A9 C8         ld   a,(C8A9)
ROM6:40EC 4F               ld   c,a
ROM6:40ED FA AA C8         ld   a,(C8AA)
ROM6:40F0 47               ld   b,a		;bc = Card being processed
ROM6:40F1 CF               rst  08
ROM6:40F2 03 07      => Pointer 7:4002
ROM6:40F4 FA AF C8         ld   a,(C8AF)
ROM6:40F7 FE 03            cp   a,03
ROM6:40F9 20 04            jr   nz,40FF
ROM6:40FB 3E 03            ld   a,03
ROM6:40FD 18 32            jr   4131
ROM6:40FF FA AF C8         ld   a,(C8AF)
ROM6:4102 FE 04            cp   a,04
ROM6:4104 20 04            jr   nz,410A
ROM6:4106 3E 04            ld   a,04
ROM6:4108 18 27            jr   4131
ROM6:410A FA AF C8         ld   a,(C8AF)
ROM6:410D FE 05            cp   a,05
ROM6:410F 20 04            jr   nz,4115
ROM6:4111 3E 05            ld   a,05
ROM6:4113 18 1C            jr   4131
ROM6:4115 FA BF C6         ld   a,(C6BF)	;Card Effect ID (magic trap ritual)
ROM6:4118 FE 02            cp   a,02
ROM6:411A 20 0B            jr   nz,4127		;If(Monster Card), jump to 6:4127
ROM6:411C FA AF C8         ld   a,(C8AF)
ROM6:411F FE 01            cp   a,01
ROM6:4121 20 02            jr   nz,4125
ROM6:4123 1E 01            ld   e,01
ROM6:4125 18 09            jr   4130
ROM6:4127 FA AF C8         ld   a,(C8AF)
ROM6:412A FE 02            cp   a,02
ROM6:412C 28 02            jr   z,4130
ROM6:412E 1E 02            ld   e,02
ROM6:4130 7B               ld   a,e
ROM6:4131 D1               pop  de
ROM6:4132 C1               pop  bc
ROM6:4133 C9               ret

6:4134

ROM6:4134 F5               push af
ROM6:4135 CD E5 40         call 40E5
ROM6:4138 FE 01            cp   a,01
ROM6:413A 20 06            jr   nz,4142
ROM6:413C CD 69 41         call 4169
ROM6:413F CF               rst  08
ROM6:4140 55               ld   d,l
ROM6:4141 03               inc  bc
ROM6:4142 FE 02            cp   a,02
ROM6:4144 20 06            jr   nz,414C
ROM6:4146 CD 18 46         call 4618
ROM6:4149 CF               rst  08
ROM6:414A 55               ld   d,l
ROM6:414B 03               inc  bc
ROM6:414C FE 03            cp   a,03
ROM6:414E 20 06            jr   nz,4156
ROM6:4150 CD 33 4C         call 4C33
ROM6:4153 CF               rst  08
ROM6:4154 55               ld   d,l
ROM6:4155 03               inc  bc
ROM6:4156 FE 04            cp   a,04
ROM6:4158 20 06            jr   nz,4160
ROM6:415A CD 75 4F         call 4F75
ROM6:415D CF               rst  08
ROM6:415E 55               ld   d,l
ROM6:415F 03               inc  bc
ROM6:4160 FE 05            cp   a,05
ROM6:4162 20 03            jr   nz,4167
ROM6:4164 CD AC 41         call 41AC
ROM6:4167 F1               pop  af
ROM6:4168 C9               ret  

6:4169

ROM6:4169 F5               push af
ROM6:416A C5               push bc
ROM6:416B D5               push de
ROM6:416C E5               push hl
ROM6:416D 3E 00            ld   a,00
ROM6:416F EA D9 C8         ld   (C8D9),a
ROM6:4172 3E 29            ld   a,29
ROM6:4174 EA 05 C9         ld   (C905),a
ROM6:4177 CD D8 2C         call 2CD8
ROM6:417A 1E 04            ld   e,04
ROM6:417C FA A9 C8         ld   a,(C8A9)
ROM6:417F 4F               ld   c,a
ROM6:4180 FA AA C8         ld   a,(C8AA)
ROM6:4183 47               ld   b,a
ROM6:4184 CD 8B 2D         call 2D8B
ROM6:4187 1E 04            ld   e,04
ROM6:4189 FA AB C8         ld   a,(C8AB)
ROM6:418C 4F               ld   c,a
ROM6:418D FA AC C8         ld   a,(C8AC)
ROM6:4190 47               ld   b,a
ROM6:4191 CD 9A 2D         call 2D9A
ROM6:4194 1E 04            ld   e,04
ROM6:4196 FA AD C8         ld   a,(C8AD)
ROM6:4199 4F               ld   c,a
ROM6:419A FA AE C8         ld   a,(C8AE)
ROM6:419D 47               ld   b,a
ROM6:419E CD A9 2D         call 2DA9
ROM6:41A1 CD D1 2A         call 2AD1
ROM6:41A4 CF               rst  08
ROM6:41A5 19               add  hl,de
ROM6:41A6 05               dec  b
ROM6:41A7 E1               pop  hl
ROM6:41A8 D1               pop  de
ROM6:41A9 C1               pop  bc
ROM6:41AA F1               pop  af
ROM6:41AB C9               ret  

6:41AC

ROM6:41AC F5               push af
ROM6:41AD 3E 07            ld   a,07
ROM6:41AF CF               rst  08
ROM6:41B0 05               dec  b
ROM6:41B1 02               ld   (bc),a
ROM6:41B2 F1               pop  af
ROM6:41B3 C9               ret  

6:41B4

ROM6:41B4 F5               push af
ROM6:41B5 C5               push bc
ROM6:41B6 E5               push hl
ROM6:41B7 F5               push af
ROM6:41B8 3E 02            ld   a,02
ROM6:41BA EA 4C C8         ld   (C84C),a
ROM6:41BD 3E 00            ld   a,00
ROM6:41BF EA AF C8         ld   (C8AF),a
ROM6:41C2 F1               pop  af
ROM6:41C3 06 00            ld   b,00
ROM6:41C5 4F               ld   c,a
ROM6:41C6 CB 21            sla  c
ROM6:41C8 21 F3 41         ld   hl,41F3
ROM6:41CB 09               add  hl,bc
ROM6:41CC 2A               ldi  a,(hl)
ROM6:41CD EA A9 C8         ld   (C8A9),a
ROM6:41D0 2A               ldi  a,(hl)
ROM6:41D1 EA AA C8         ld   (C8AA),a
ROM6:41D4 21 D1 42         ld   hl,42D1
ROM6:41D7 09               add  hl,bc
ROM6:41D8 2A               ldi  a,(hl)
ROM6:41D9 EA AB C8         ld   (C8AB),a
ROM6:41DC 2A               ldi  a,(hl)
ROM6:41DD EA AC C8         ld   (C8AC),a
ROM6:41E0 21 AF 43         ld   hl,43AF
ROM6:41E3 09               add  hl,bc
ROM6:41E4 2A               ldi  a,(hl)
ROM6:41E5 EA AD C8         ld   (C8AD),a
ROM6:41E8 2A               ldi  a,(hl)
ROM6:41E9 EA AE C8         ld   (C8AE),a
ROM6:41EC CD 0E 40         call 400E
ROM6:41EF E1               pop  hl
ROM6:41F0 C1               pop  bc
ROM6:41F1 F1               pop  af
ROM6:41F2 C9               ret  

6:448D

ROM6:448D F5               push af
ROM6:448E C5               push bc
ROM6:448F E5               push hl
ROM6:4490 06 00            ld   b,00
ROM6:4492 FA A8 C8         ld   a,(C8A8)
ROM6:4495 4F               ld   c,a
ROM6:4496 21 AF 44         ld   hl,44AF
ROM6:4499 09               add  hl,bc
ROM6:449A 7E               ld   a,(hl)
ROM6:449B FE 01            cp   a,01
ROM6:449D 20 05            jr   nz,44A4
ROM6:449F CD A9 2A         call 2AA9		;SE: Set Trap card / Failed Fusion
ROM6:44A2 18 07            jr   44AB
ROM6:44A4 FE 02            cp   a,02
ROM6:44A6 20 03            jr   nz,44AB
ROM6:44A8 CD 99 2A         call 2A99		;Sound Effect: Validate (Duel)
ROM6:44AB E1               pop  hl
ROM6:44AC C1               pop  bc
ROM6:44AD F1               pop  af
ROM6:44AE C9               ret

6:45DF (Text box display)

ROM6:45DF F5               push af
ROM6:45E0 C5               push bc
ROM6:45E1 D5               push de
ROM6:45E2 7F               ld   a,a		;[sic]
ROM6:45E3 EA 05 C9         ld   (C905),a	;Text box ID
ROM6:45E6 3E 00            ld   a,00
ROM6:45E8 EA D9 C8         ld   (C8D9),a
ROM6:45EB CD D8 2C         call 2CD8
ROM6:45EE 1E 04            ld   e,04
ROM6:45F0 FA A9 C8         ld   a,(C8A9)
ROM6:45F3 4F               ld   c,a
ROM6:45F4 FA AA C8         ld   a,(C8AA)
ROM6:45F7 47               ld   b,a		;bc = Card being processed
ROM6:45F8 CD 8B 2D         call 2D8B		;(C9AF) = Card being processed, and (C9B1) = 4
ROM6:45FB FA AB C8         ld   a,(C8AB)
ROM6:45FE 4F               ld   c,a
ROM6:45FF FA AC C8         ld   a,(C8AC)
ROM6:4602 47               ld   b,a		;bc = Targeted card ID
ROM6:4603 CD 9A 2D         call 2D9A		;(C9B2) = Targeted card ID, and (C9B4) = 4
ROM6:4606 FA AD C8         ld   a,(C8AD)
ROM6:4609 4F               ld   c,a
ROM6:460A FA AE C8         ld   a,(C8AE)
ROM6:460D 47               ld   b,a
ROM6:460E CD A9 2D         call 2DA9
ROM6:4611 CF               rst  08
ROM6:4612 19 05     => Pointer 5:4019
ROM6:4614 D1               pop  de
ROM6:4615 C1               pop  bc
ROM6:4616 F1               pop  af
ROM6:4617 C9               ret

Effect Monsters text box subroutine

ROM6:4F75 F5               push af
ROM6:4F76 C5               push bc
ROM6:4F77 E5               push hl
ROM6:4F78 FA A9 C8         ld   a,(C8A9)
ROM6:4F7B 4F               ld   c,a
ROM6:4F7C FA AA C8         ld   a,(C8AA)
ROM6:4F7F 47               ld   b,a		;bc = Card being processed
ROM6:4F80 CF               rst  08
ROM6:4F81 03 07     => Pointer 7:4002, checks if the card ID is valid
ROM6:4F83 06 00            ld   b,00
ROM6:4F85 FA C0 C6         ld   a,(C6C0)
ROM6:4F88 4F               ld   c,a
ROM6:4F89 CB 21            sla  c		;bc = (Card Effect ID (monster)) × 2
ROM6:4F8B 21 9B 4F         ld   hl,4F9B
ROM6:4F8E 09               add  hl,bc		;hl = 0x4F9B + ((Card Effect ID (monster)) × 2)
ROM6:4F8F 2A               ldi  a,(hl)
ROM6:4F90 66               ld   h,(hl)
ROM6:4F91 6F               ld   l,a		;hl = 
ROM6:4F92 01 97 4F         ld   bc,4F97
ROM6:4F95 C5               push bc
ROM6:4F96 E9               jp   hl
ROM6:4F97 E1               pop  hl
ROM6:4F98 C1               pop  bc
ROM6:4F99 F1               pop  af
ROM6:4F9A C9               ret

Effect Monsters text box functions pointers

ROM6:4F9B
03 50 - No Effect
04 50 - Reaper of the Card
12 50 - Fairy's Gift
20 50 - Relinquished
2E 50 - Thousand-eyes Restrict
3C 50 - Skelengel
4A 50 - Harpie Lady
58 50 - Harpie Lady Sisters
66 50 - Time Wizard
74 50 - Castle of D. Magic
82 50 - Mystical Elf
90 50 - Curse of Dragon
9E 50 - Flame Swordsman
AC 50 - Giant Rock Soldier
BA 50 - Battle Ox
C8 50 - Monster Tamer
D6 50 - Pumpking the King
E4 50 - Mammoth Graveyard
F2 50 - Catapult Turtle
00 51 - Goddess of Whim
0E 51 - Spirit of the Mountain
1C 51 - Dragon Seeker
2A 51 - Trap Master
38 51 - Fiend's Hand
46 51 - Faceless Mage
54 51 - Electric Lizard
62 51 - D. Magician Girl
70 51 - Wodan the Resident
7E 51 - M-warrior #1
8C 51 - M-warrior #2
9A 51 - Red Archery Girl
A8 51 - Lady of Faith
B6 51 - Fire Reaper
C4 51 - Kairyu-shin
D2 51 - Gyakutenno Megami
E0 51 - Monster Eye
EE 51 - Doron
FC 51 - Swamp Battleguard
0A 52 - Lava Battleguard
18 52 - Trent
26 52 - Labyrinth Tank
34 52 - Spirit of the Book
42 52 - Hourglass of Life
50 52 - Beastking of the Swamp
5E 52 - Nemuriko
6C 52 - Toad Master
7A 52 - Hoshiningen
88 52 - Invitation to a Dark Sleep
96 52 - Witch's Apprentice
A4 52 - Mystic Lamp
B2 52 - Leghul
C0 52 - Insect Queen

Cards data pointers ?

  • 0x181F3-0x182D0 - Magic / Trap / Ritual cards (determines which card has which effect)
  • 0x18351-0x1839A - Devine Monster cards (determines which monster is summoned by Ritual cards)

Battle Operation 4

  • 0x19910-0x199A4 - Loads Player's Life Points (temporary copy) in register bc, and ?
ROM6:5910 F5               push af
ROM6:5911 C5               push bc
ROM6:5912 D5               push de
ROM6:5913 E5               push hl
ROM6:5914 FA 93 C8         ld   a,(C893)		;Copy Player's Life Points in (C7A6)
ROM6:5917 EA A6 C7         ld   (C7A6),a
ROM6:591A FA 94 C8         ld   a,(C894)
ROM6:591D EA A7 C7         ld   (C7A7),a
ROM6:5920 3E 00            ld   a,00
ROM6:5922 EA A8 C7         ld   (C7A8),a
ROM6:5925 FA 95 C8         ld   a,(C895)		;Copy P2's Life Points in (C7A9)
ROM6:5928 EA A9 C7         ld   (C7A9),a
ROM6:592B FA 96 C8         ld   a,(C896)
ROM6:592E EA AA C7         ld   (C7AA),a
ROM6:5931 3E 00            ld   a,00
ROM6:5933 EA AB C7         ld   (C7AB),a
ROM6:5936 CD 3E 1B         call 1B3E
ROM6:5939 FE 01            cp   a,01
ROM6:593B 28 63            jr   z,59A0
ROM6:593D FA 93 C8         ld   a,(C893)		;Loads Player's Life Points (temporary copy) in register bc 
ROM6:5940 4F               ld   c,a
ROM6:5941 FA 94 C8         ld   a,(C894)
ROM6:5944 47               ld   b,a
ROM6:5945 16 00            ld   d,00
ROM6:5947 2E 00            ld   l,00
ROM6:5949 7D               ld   a,l
ROM6:594A FE 00            cp   a,00
ROM6:594C 20 05            jr   nz,5953
ROM6:594E CD E9 2A         call 2AE9		;Sound Effect: Cursor (Duel)
ROM6:5951 2E 05            ld   l,05
ROM6:5953 2D               dec  l
ROM6:5954 1E 64            ld   e,64
ROM6:5956 79               ld   a,c
ROM6:5957 EA A6 C7         ld   (C7A6),a
ROM6:595A 78               ld   a,b
ROM6:595B EA A7 C7         ld   (C7A7),a
ROM6:595E CD 3E 1B         call 1B3E		;Copy (C7A6)-(C7AB) to (C5F6)-(C5FB)
ROM6:5961 FE 00            cp   a,00
ROM6:5963 28 02            jr   z,5967
ROM6:5965 16 01            ld   d,01
ROM6:5967 7A               ld   a,d
ROM6:5968 FE 01            cp   a,01
ROM6:596A 28 2C            jr   z,5998
ROM6:596C 3E 01            ld   a,01
ROM6:596E EA F6 C5         ld   (C5F6),a
ROM6:5971 3E 00            ld   a,00
ROM6:5973 EA F7 C5         ld   (C5F7),a
ROM6:5976 3E 00            ld   a,00
ROM6:5978 EA F8 C5         ld   (C5F8),a
ROM6:597B 79               ld   a,c
ROM6:597C EA F9 C5         ld   (C5F9),a
ROM6:597F 78               ld   a,b
ROM6:5980 EA FA C5         ld   (C5FA),a
ROM6:5983 3E 00            ld   a,00
ROM6:5985 EA FB C5         ld   (C5FB),a
ROM6:5988 D5               push de
ROM6:5989 CD B2 14         call 14B2
ROM6:598C D1               pop  de
ROM6:598D FA F6 C5         ld   a,(C5F6)
ROM6:5990 4F               ld   c,a
ROM6:5991 FA F7 C5         ld   a,(C5F7)
ROM6:5994 47               ld   b,a
ROM6:5995 1D               dec  e
ROM6:5996 20 BE            jr   nz,5956
ROM6:5998 CD A5 59         call 59A5
ROM6:599B 7A               ld   a,d
ROM6:599C FE 00            cp   a,00
ROM6:599E 28 A9            jr   z,5949
ROM6:59A0 E1               pop  hl
ROM6:59A1 D1               pop  de
ROM6:59A2 C1               pop  bc
ROM6:59A3 F1               pop  af
ROM6:59A4 C9               ret

Graphics 1

  • 0x019B40 - « This game is designed for use on GAME BOY ® COLOR only »

Bank 7

rst 08 pointers

ROM7:4002
A0 40 - Card Stats routine
44 40 - Calculate ATK and DEF (card ID must be submitted in bc)
3C 40 - Updates current Field
40 40 - Updates current Stat Level
56 40 - Calculate current ATK and DEF (retrieves card ID from (C7A3) )
69 64 - Monster Equip subroutine

Initialize selected card data

ROM7:400E F5               push af
ROM7:400F AF               xor  a			;a = 0
ROM7:4010 EA B3 C6         ld   (C6B3),a		;Current Card ID
ROM7:4013 EA B4 C6         ld   (C6B4),a
ROM7:4016 EA B5 C6         ld   (C6B5),a		;Field Column
ROM7:4019 EA B6 C6         ld   (C6B6),a		;Field Row
ROM7:401C EA B7 C6         ld   (C6B7),a		;Current card ATK
ROM7:401F EA B8 C6         ld   (C6B8),a
ROM7:4022 EA B9 C6         ld   (C6B9),a		;Current card DEF
ROM7:4025 EA BA C6         ld   (C6BA),a
ROM7:4028 EA BB C6         ld   (C6BB),a		;Current card Type
ROM7:402B EA BC C6         ld   (C6BC),a		;Current card Cost
ROM7:402E EA BD C6         ld   (C6BD),a		;Current card Level
ROM7:4031 EA BE C6         ld   (C6BE),a		;Current card Alignment
ROM7:4034 EA BF C6         ld   (C6BF),a		;Current card Effect ID (magic trap ritual)
ROM7:4037 EA C0 C6         ld   (C6C0),a		;Current card Effect ID (monster)
ROM7:403A F1               pop  af
ROM7:403B C9               ret  

Updates current Field

ROM7:403C EA B1 C6         ld   (C6B1),a		;Current Field
ROM7:403F C9               ret

Updates current Stat Level

ROM7:4040 EA B2 C6         ld   (C6B2),a		;Current Stat Level
ROM7:4043 C9               ret  

Calculate ATK and DEF

  • 0x1C044-0x1C055 - Calculate ATK and DEF (Card ID must be set in bc before calling this function)
ROM7:4044 F5               push af
ROM7:4045 CD A0 40         call 40A0		;Card Stats routine
ROM7:4048 FA B1 C6         ld   a,(C6B1)	;Current Field ID
ROM7:404B CD 81 40         call 4081		;Apply Field effect
ROM7:404E FA B2 C6         ld   a,(C6B2)	;Current Stat Level
ROM7:4051 CD 29 42         call 4229		;Apply Stat Level
ROM7:4054 F1               pop  af
ROM7:4055 C9               ret

Calculate current ATK and DEF

ROM7:4056 F5               push af
ROM7:4057 C5               push bc
ROM7:4058 FA A3 C7         ld   a,(C7A3)
ROM7:405B 4F               ld   c,a
ROM7:405C FA A4 C7         ld   a,(C7A4)
ROM7:405F 47               ld   b,a		;bc = Current Card ID
ROM7:4060 CD A0 40         call 40A0		;Card Stats routine
ROM7:4063 C5               push bc
ROM7:4064 CD DB 19         call 19DB		;Retrieves field Column and Row
ROM7:4067 CD 95 40         call 4095		;Updates current field Column and Row
ROM7:406A C1               pop  bc
ROM7:406B CD ED 1A         call 1AED		;checks card validity in Trunk ?
ROM7:406E FE 03            cp   a,03
ROM7:4070 28 0C            jr   z,407E		;if(card_ID == 1080) ,jump to 7:407E (skips Field effect for construction card 3 69)
ROM7:4072 FA E8 C5         ld   a,(C5E8)	;a = Field ID
ROM7:4075 CD 81 40         call 4081		;Apply Field effect
ROM7:4078 CD C1 1F         call 1FC1		;Retrieve Card Stat Level
ROM7:407B CD 29 42         call 4229		;Apply Stat Level
ROM7:407E C1               pop  bc
ROM7:407F F1               pop  af
ROM7:4080 C9               ret

Apply Field effect

ROM7:4081 F5               push af
ROM7:4082 C5               push bc
ROM7:4083 47               ld   b,a
ROM7:4084 FA BB C6         ld   a,(C6BB)
ROM7:4087 4F               ld   c,a		;c = Current card Type
ROM7:4088 CD 53 44         call 4453
ROM7:408B 4F               ld   c,a
ROM7:408C CD F5 43         call 43F5
ROM7:408F CD 29 44         call 4429
ROM7:4092 C1               pop  bc
ROM7:4093 F1               pop  af
ROM7:4094 C9               ret  

Updates current field Column and Row

ROM7:4095 F5               push af
ROM7:4096 78               ld   a,b
ROM7:4097 EA B5 C6         ld   (C6B5),a		;Field Column
ROM7:409A 79               ld   a,c
ROM7:409B EA B6 C6         ld   (C6B6),a		;Field Row
ROM7:409E F1               pop  af
ROM7:409F C9               ret

Card Stats functions

Card Stats routine

ROM7:40A0 F5               push af
ROM7:40A1 C5               push bc
ROM7:40A2 CD 84 1A         call 1A84		;Checks Card ID validity
ROM7:40A5 FE 01            cp   a,01
ROM7:40A7 20 05            jr   nz,40AE		;if(card_ID > 800), jump to 7:40AE
ROM7:40A9 CD C6 40         call 40C6		;Retrieve card data
ROM7:40AC 18 15            jr   40C3
ROM7:40AE FE 02            cp   a,02
ROM7:40B0 20 05            jr   nz,40B7		;if(card_ID > 5700), jump to 7:40B7
ROM7:40B2 CD 29 41         call 4129		;Retrieve Construction card data
ROM7:40B5 18 0C            jr   40C3
ROM7:40B7 FE 03            cp   a,03
ROM7:40B9 20 05            jr   nz,40C0		;if(card_ID == 0), jump to 7:40C0
ROM7:40BB CD 29 41         call 4129		;Retrieve Construction card data, no fail-safe !
ROM7:40BE 18 03            jr   40C3
ROM7:40C0 CD F6 41         call 41F6
ROM7:40C3 C1               pop  bc
ROM7:40C4 F1               pop  af
ROM7:40C5 C9               ret

Retrieve card data

ROM7:40C6 F5               push af
ROM7:40C7 C5               push bc
ROM7:40C8 D5               push de
ROM7:40C9 E5               push hl
ROM7:40CA 79               ld   a,c
ROM7:40CB EA B3 C6         ld   (C6B3),a		;(C6B3) = Current card ID
ROM7:40CE 78               ld   a,b
ROM7:40CF EA B4 C6         ld   (C6B4),a
ROM7:40D2 21 A4 51         ld   hl,51A4
ROM7:40D5 09               add  hl,bc
ROM7:40D6 7E               ld   a,(hl)
ROM7:40D7 EA BB C6         ld   (C6BB),a		;(C6BB) = Current card Type
ROM7:40DA 21 C5 54         ld   hl,54C5
ROM7:40DD 09               add  hl,bc
ROM7:40DE 7E               ld   a,(hl)
ROM7:40DF EA BC C6         ld   (C6BC),a		;(C6BC) = Current card Cost
ROM7:40E2 21 E6 57         ld   hl,57E6
ROM7:40E5 09               add  hl,bc
ROM7:40E6 7E               ld   a,(hl)
ROM7:40E7 EA BE C6         ld   (C6BE),a		;(C6BE) = Current card Alignment
ROM7:40EA 21 07 5B         ld   hl,5B07
ROM7:40ED 09               add  hl,bc
ROM7:40EE 7E               ld   a,(hl)
ROM7:40EF EA BF C6         ld   (C6BF),a		;(C6BF) = Current card Effect ID (magic trap ritual)
ROM7:40F2 21 28 5E         ld   hl,5E28
ROM7:40F5 09               add  hl,bc
ROM7:40F6 7E               ld   a,(hl)
ROM7:40F7 EA C0 C6         ld   (C6C0),a		;(C6C0) = Current card Effect ID (monster)
ROM7:40FA 21 48 61         ld   hl,6148
ROM7:40FD 09               add  hl,bc
ROM7:40FE 7E               ld   a,(hl)
ROM7:40FF EA BD C6         ld   (C6BD),a		;(C6BD) = Current card Level
ROM7:4102 CB 21            sla  c
ROM7:4104 CB 10            rl   b
ROM7:4106 21 78 44         ld   hl,4478
ROM7:4109 09               add  hl,bc
ROM7:410A 2A               ldi  a,(hl)
ROM7:410B 56               ld   d,(hl)
ROM7:410C 5F               ld   e,a
ROM7:410D 7B               ld   a,e
ROM7:410E EA B7 C6         ld   (C6B7),a		;(C6B7) = Current card ATK
ROM7:4111 7A               ld   a,d
ROM7:4112 EA B8 C6         ld   (C6B8),a
ROM7:4115 21 BA 4A         ld   hl,4ABA
ROM7:4118 09               add  hl,bc
ROM7:4119 2A               ldi  a,(hl)
ROM7:411A 56               ld   d,(hl)
ROM7:411B 5F               ld   e,a
ROM7:411C 7B               ld   a,e
ROM7:411D EA B9 C6         ld   (C6B9),a		;(C6B9) = Current card DEF
ROM7:4120 7A               ld   a,d
ROM7:4121 EA BA C6         ld   (C6BA),a
ROM7:4124 E1               pop  hl
ROM7:4125 D1               pop  de
ROM7:4126 C1               pop  bc
ROM7:4127 F1               pop  af
ROM7:4128 C9               ret

Retrieve Construction card data

  • 0x1C13A-0x1C1E0 - Retrieves Construction cards data
ROM7:4129 F5               push af
ROM7:412A C5               push bc
ROM7:412B E5               push hl
ROM7:412C 79               ld   a,c
ROM7:412D EA B3 C6         ld   (C6B3),a	;store card_id in wC6B3
ROM7:4130 78               ld   a,b
ROM7:4131 EA B4 C6         ld   (C6B4),a
ROM7:4134 CD B5 1E         call 1EB5             ;Fixed PRNG - uses card_id as seed
ROM7:4137 CF               rst  08
ROM7:4138 9D 01       => pointer 1:409D, function 1:4B41
ROM7:413A 3E 00            ld   a,00
ROM7:413C EA 59 C8         ld   (C859),a
ROM7:413F 3E 13            ld   a,13
ROM7:4141 EA 5A C8         ld   (C85A),a	;Type ID is between 0x00 and 0x13
ROM7:4144 CD 48 1F         call 1F48		;Generates Construction Card data
ROM7:4147 FA 5B C8         ld   a,(C85B)
ROM7:414A EA BB C6         ld   (C6BB),a	;Card Type
ROM7:414D 3E 14            ld   a,14
ROM7:414F EA 59 C8         ld   (C859),a
ROM7:4152 3E 28            ld   a,28
ROM7:4154 EA 5A C8         ld   (C85A),a	;Cost is between 20 and 40
ROM7:4157 CD 48 1F         call 1F48		;Generates Construction Card data
ROM7:415A FA 5B C8         ld   a,(C85B)
ROM7:415D EA BC C6         ld   (C6BC),a	;Card Cost
ROM7:4160 3E 00            ld   a,00
ROM7:4162 EA 59 C8         ld   (C859),a
ROM7:4165 3E 09            ld   a,09
ROM7:4167 EA 5A C8         ld   (C85A),a	;Alignment ID is between 0 and 9
ROM7:416A CD 48 1F         call 1F48		;Generates Construction Card data
ROM7:416D FA 5B C8         ld   a,(C85B)
ROM7:4170 EA BE C6         ld   (C6BE),a	;Card Alignment
ROM7:4173 3E 02            ld   a,02
ROM7:4175 EA BF C6         ld   (C6BF),a	;Card Effect ID (Magic Trap)
ROM7:4178 3E 00            ld   a,00
ROM7:417A EA C0 C6         ld   (C6C0),a	;Card Effect ID (Monster)
ROM7:417D 3E 00            ld   a,00
ROM7:417F EA B7 C6         ld   (C6B7),a	;Card ATK - last two decimals
ROM7:4182 3E 00            ld   a,00
ROM7:4184 EA 59 C8         ld   (C859),a
ROM7:4187 3E 11            ld   a,11
ROM7:4189 EA 5A C8         ld   (C85A),a	;There are 18 values in the ATK / Def array
ROM7:418C CD 48 1F         call 1F48		;Generates Construction Card data
ROM7:418F 06 00            ld   b,00
ROM7:4191 FA 5B C8         ld   a,(C85B)
ROM7:4194 4F               ld   c,a
ROM7:4195 21 E1 41         ld   hl,41E1
ROM7:4198 09               add  hl,bc		;hl = pointer to the selected ATK
ROM7:4199 7E               ld   a,(hl)
ROM7:419A EA B8 C6         ld   (C6B8),a	;Card ATK - first two decimals
ROM7:419D 3E 00            ld   a,00
ROM7:419F EA B9 C6         ld   (C6B9),a	;Card DEF - last two decimals
ROM7:41A2 3E 00            ld   a,00
ROM7:41A4 EA 59 C8         ld   (C859),a
ROM7:41A7 3E 11            ld   a,11
ROM7:41A9 EA 5A C8         ld   (C85A),a
ROM7:41AC CD 48 1F         call 1F48		;Generates Construction Card data
ROM7:41AF 06 00            ld   b,00
ROM7:41B1 FA 5B C8         ld   a,(C85B)
ROM7:41B4 4F               ld   c,a
ROM7:41B5 21 E1 41         ld   hl,41E1
ROM7:41B8 09               add  hl,bc		;hl = pointer to the selected DEF
ROM7:41B9 7E               ld   a,(hl)
ROM7:41BA EA BA C6         ld   (C6BA),a	;Card DEF - first two decimals
ROM7:41BD 3E 00            ld   a,00
ROM7:41BF EA B9 C6         ld   (C6B9),a	;Card DEF - last two decimals (sic)
ROM7:41C2 3E 00            ld   a,00
ROM7:41C4 EA 59 C8         ld   (C859),a
ROM7:41C7 3E 02            ld   a,02
ROM7:41C9 EA 5A C8         ld   (C85A),a	;There are 3 values in the Level array
ROM7:41CC CD 48 1F         call 1F48		;Generates Construction Card data
ROM7:41CF 06 00            ld   b,00
ROM7:41D1 FA 5B C8         ld   a,(C85B)
ROM7:41D4 4F               ld   c,a
ROM7:41D5 21 F3 41         ld   hl,41F3
ROM7:41D8 09               add  hl,bc		;hl = pointer to the selected card Level
ROM7:41D9 7E               ld   a,(hl)
ROM7:41DA EA BD C6         ld   (C6BD),a	;Card Level
ROM7:41DD E1               pop  hl
ROM7:41DE C1               pop  bc
ROM7:41DF F1               pop  af
ROM7:41E0 C9               ret
  • 0x1C1E1-0x1C1F2 - Construction cards ATK / DEF
7:41E1
03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
  • 0x1C1F3-0x1C1F5 - Construction cards Levels
7:41F3
03 04 05

Initialize current card data

ROM7:41F6 F5               push af
ROM7:41F7 79               ld   a,c
ROM7:41F8 EA B3 C6         ld   (C6B3),a	;card_ID = bc
ROM7:41FB 78               ld   a,b
ROM7:41FC EA B4 C6         ld   (C6B4),a
ROM7:41FF 3E 17            ld   a,17
ROM7:4201 EA BB C6         ld   (C6BB),a	;card_Type = 0x17 (none)
ROM7:4204 3E 00            ld   a,00
ROM7:4206 EA BC C6         ld   (C6BC),a	;card_Cost = 0
ROM7:4209 3E 0B            ld   a,0B
ROM7:420B EA BE C6         ld   (C6BE),a	;card_Alignment = 0xB (non-monster)
ROM7:420E 3E 02            ld   a,02
ROM7:4210 EA BF C6         ld   (C6BF),a	;card_Effect_magic = 0x2 (non-magic)
ROM7:4213 3E FF            ld   a,FF
ROM7:4215 EA B7 C6         ld   (C6B7),a	;card_ATK = 0xFFFF
ROM7:4218 3E FF            ld   a,FF
ROM7:421A EA B8 C6         ld   (C6B8),a
ROM7:421D 3E FF            ld   a,FF
ROM7:421F EA B9 C6         ld   (C6B9),a	;card_DEF = 0xFFFF
ROM7:4222 3E FF            ld   a,FF
ROM7:4224 EA BA C6         ld   (C6BA),a
ROM7:4227 F1               pop  af
ROM7:4228 C9               ret

Stat Level

Apply Stat Level

ROM7:4229 F5               push af
ROM7:422A C5               push bc
ROM7:422B E5               push hl
ROM7:422C 06 00            ld   b,00
ROM7:422E 4F               ld   c,a
ROM7:422F CB 21            sla  c
ROM7:4231 21 41 42         ld   hl,4241
ROM7:4234 09               add  hl,bc
ROM7:4235 2A               ldi  a,(hl)
ROM7:4236 66               ld   h,(hl)
ROM7:4237 6F               ld   l,a
ROM7:4238 01 3D 42         ld   bc,423D
ROM7:423B C5               push bc
ROM7:423C E9               jp   hl
ROM7:423D E1               pop  hl
ROM7:423E C1               pop  bc
ROM7:423F F1               pop  af
ROM7:4240 C9               ret  
Pointers to Stat Levels
ROM7:4241
49 42 - Stat Level -1
74 42 - Stat Level 0
75 42 - Stat Level +1
A0 42 - Stat Level +2

Stat Level -1

ROM7:4249 F5               push af
ROM7:424A C5               push bc
ROM7:424B FA B7 C6         ld   a,(C6B7)
ROM7:424E 4F               ld   c,a
ROM7:424F FA B8 C6         ld   a,(C6B8)
ROM7:4252 47               ld   b,a		;bc = card_ATK
ROM7:4253 CD E3 43         call 43E3		;ATK -500
ROM7:4256 79               ld   a,c
ROM7:4257 EA B7 C6         ld   (C6B7),a	;card_ATK
ROM7:425A 78               ld   a,b
ROM7:425B EA B8 C6         ld   (C6B8),a
ROM7:425E FA B9 C6         ld   a,(C6B9)
ROM7:4261 4F               ld   c,a
ROM7:4262 FA BA C6         ld   a,(C6BA)
ROM7:4265 47               ld   b,a		;bc = card_DEF
ROM7:4266 CD E3 43         call 43E3		;DEF -500
ROM7:4269 79               ld   a,c
ROM7:426A EA B9 C6         ld   (C6B9),a
ROM7:426D 78               ld   a,b
ROM7:426E EA BA C6         ld   (C6BA),a	;card_DEF
ROM7:4271 C1               pop  bc
ROM7:4272 F1               pop  af
ROM7:4273 C9               ret  

Stat Level 0

ROM7:4274 C9               ret  

Stat Level +1

ROM7:4275 F5               push af
ROM7:4276 C5               push bc
ROM7:4277 FA B7 C6         ld   a,(C6B7)
ROM7:427A 4F               ld   c,a
ROM7:427B FA B8 C6         ld   a,(C6B8)
ROM7:427E 47               ld   b,a		;bc = card_ATK
ROM7:427F CD CF 43         call 43CF		;ATK +500
ROM7:4282 79               ld   a,c
ROM7:4283 EA B7 C6         ld   (C6B7),a	;card_ATK
ROM7:4286 78               ld   a,b
ROM7:4287 EA B8 C6         ld   (C6B8),a
ROM7:428A FA B9 C6         ld   a,(C6B9)
ROM7:428D 4F               ld   c,a
ROM7:428E FA BA C6         ld   a,(C6BA)
ROM7:4291 47               ld   b,a		;bc = card_DEF
ROM7:4292 CD CF 43         call 43CF		;DEF +500
ROM7:4295 79               ld   a,c
ROM7:4296 EA B9 C6         ld   (C6B9),a	;card_DEF
ROM7:4299 78               ld   a,b
ROM7:429A EA BA C6         ld   (C6BA),a
ROM7:429D C1               pop  bc
ROM7:429E F1               pop  af
ROM7:429F C9               ret

Stat Level +2

ROM7:42A0 F5               push af
ROM7:42A1 C5               push bc
ROM7:42A2 FA B7 C6         ld   a,(C6B7)
ROM7:42A5 4F               ld   c,a
ROM7:42A6 FA B8 C6         ld   a,(C6B8)
ROM7:42A9 47               ld   b,a		;bc = card_ATK
ROM7:42AA CD CF 43         call 43CF		;ATK +500
ROM7:42AD CD CF 43         call 43CF		;ATK +500
ROM7:42B0 79               ld   a,c
ROM7:42B1 EA B7 C6         ld   (C6B7),a	;card_ATK
ROM7:42B4 78               ld   a,b
ROM7:42B5 EA B8 C6         ld   (C6B8),a
ROM7:42B8 FA B9 C6         ld   a,(C6B9)
ROM7:42BB 4F               ld   c,a
ROM7:42BC FA BA C6         ld   a,(C6BA)
ROM7:42BF 47               ld   b,a		;bc = card_DEF
ROM7:42C0 CD CF 43         call 43CF		;DEF +500
ROM7:42C3 CD CF 43         call 43CF		;DEF +500
ROM7:42C6 79               ld   a,c
ROM7:42C7 EA B9 C6         ld   (C6B9),a	;card_DEF
ROM7:42CA 78               ld   a,b
ROM7:42CB EA BA C6         ld   (C6BA),a
ROM7:42CE C1               pop  bc
ROM7:42CF F1               pop  af
ROM7:42D0 C9               ret

Stats bonus / malus

7:42D1

ROM7:42D1 F5               push af
ROM7:42D2 D5               push de
ROM7:42D3 E5               push hl
ROM7:42D4 1E 04            ld   e,04
ROM7:42D6 CB 38            srl  b
ROM7:42D8 CB 19            rr   c
ROM7:42DA 1D               dec  e
ROM7:42DB 20 F9            jr   nz,42D6	;bc >> 4
ROM7:42DD 79               ld   a,c
ROM7:42DE 81               add  c
ROM7:42DF 27               daa  
ROM7:42E0 5F               ld   e,a
ROM7:42E1 78               ld   a,b
ROM7:42E2 88               adc  b
ROM7:42E3 27               daa  
ROM7:42E4 57               ld   d,a
ROM7:42E5 7B               ld   a,e
ROM7:42E6 81               add  c
ROM7:42E7 27               daa  
ROM7:42E8 4F               ld   c,a
ROM7:42E9 7A               ld   a,d
ROM7:42EA 88               adc  b
ROM7:42EB 27               daa  
ROM7:42EC 47               ld   b,a		;bc × 3
ROM7:42ED 60               ld   h,b
ROM7:42EE 69               ld   l,c
ROM7:42EF 7D               ld   a,l
ROM7:42F0 81               add  c
ROM7:42F1 27               daa  
ROM7:42F2 4F               ld   c,a
ROM7:42F3 7C               ld   a,h
ROM7:42F4 88               adc  b
ROM7:42F5 27               daa  
ROM7:42F6 47               ld   b,a		;bc × 2
ROM7:42F7 E1               pop  hl
ROM7:42F8 D1               pop  de
ROM7:42F9 F1               pop  af
ROM7:42FA C9               ret

7:42FB

ROM7:42FB F5               push af
ROM7:42FC D5               push de
ROM7:42FD E5               push hl
ROM7:42FE 1E 04            ld   e,04
ROM7:4300 CB 38            srl  b
ROM7:4302 CB 19            rr   c
ROM7:4304 1D               dec  e
ROM7:4305 20 F9            jr   nz,4300	;bc >> 4
ROM7:4307 50               ld   d,b
ROM7:4308 59               ld   e,c
ROM7:4309 2E 03            ld   l,03
ROM7:430B 7B               ld   a,e
ROM7:430C 83               add  e
ROM7:430D 27               daa  
ROM7:430E 5F               ld   e,a
ROM7:430F 7A               ld   a,d
ROM7:4310 8A               adc  d
ROM7:4311 27               daa  
ROM7:4312 57               ld   d,a
ROM7:4313 2D               dec  l
ROM7:4314 20 F5            jr   nz,430B
ROM7:4316 62               ld   h,d
ROM7:4317 6B               ld   l,e
ROM7:4318 7D               ld   a,l
ROM7:4319 91               sub  c
ROM7:431A 27               daa  
ROM7:431B 4F               ld   c,a
ROM7:431C 7C               ld   a,h
ROM7:431D 98               sbc  b
ROM7:431E 27               daa  
ROM7:431F 47               ld   b,a		;bc × 7
ROM7:4320 E1               pop  hl
ROM7:4321 D1               pop  de
ROM7:4322 F1               pop  af
ROM7:4323 C9               ret  

Stat NOP

ROM7:4324 C9               ret  

7:4325

ROM7:4325 F5               push af
ROM7:4326 D5               push de
ROM7:4327 E5               push hl
ROM7:4328 E8 FD            add  sp,FD
ROM7:432A F8 00            ld   hl,sp+00
ROM7:432C AF               xor  a
ROM7:432D 22               ldi  (hl),a		;free 3 bytes in stack
ROM7:432E 22               ldi  (hl),a
ROM7:432F 77               ld   (hl),a
ROM7:4330 50               ld   d,b
ROM7:4331 59               ld   e,cc		;de = bc
ROM7:4332 2E 04            ld   l,04
ROM7:4334 CB 38            srl  b
ROM7:4336 CB 19            rr   c
ROM7:4338 2D               dec  l
ROM7:4339 20 F9            jr   nz,4334		;bc >> 4
ROM7:433B F8 00            ld   hl,sp+00
ROM7:433D 79               ld   a,c
ROM7:433E 81               add  c
ROM7:433F 27               daa  
ROM7:4340 22               ldi  (hl),a
ROM7:4341 78               ld   a,b
ROM7:4342 88               adc  b
ROM7:4343 27               daa  
ROM7:4344 22               ldi  (hl),a
ROM7:4345 3E 00            ld   a,00
ROM7:4347 CE 00            adc  a,00
ROM7:4349 27               daa  
ROM7:434A 22               ldi  (hl),a
ROM7:434B F8 00            ld   hl,sp+00
ROM7:434D 7E               ld   a,(hl)
ROM7:434E 81               add  c
ROM7:434F 27               daa  
ROM7:4350 22               ldi  (hl),a
ROM7:4351 7E               ld   a,(hl)
ROM7:4352 88               adc  b
ROM7:4353 27               daa  
ROM7:4354 22               ldi  (hl),a
ROM7:4355 7E               ld   a,(hl)
ROM7:4356 CE 00            adc  a,00
ROM7:4358 27               daa  
ROM7:4359 22               ldi  (hl),a
ROM7:435A F8 00            ld   hl,sp+00
ROM7:435C 2A               ldi  a,(hl)
ROM7:435D 83               add  e
ROM7:435E 27               daa  
ROM7:435F 4F               ld   c,a
ROM7:4360 2A               ldi  a,(hl)
ROM7:4361 8A               adc  d
ROM7:4362 27               daa  
ROM7:4363 47               ld   b,a
ROM7:4364 2A               ldi  a,(hl)
ROM7:4365 CE 00            adc  a,00
ROM7:4367 27               daa  
ROM7:4368 FE 00            cp   a,00
ROM7:436A 28 03            jr   z,436F
ROM7:436C 01 99 99         ld   bc,9999	;Max Stat is 9999
ROM7:436F E8 03            add  sp,03
ROM7:4371 E1               pop  hl
ROM7:4372 D1               pop  de
ROM7:4373 F1               pop  af
ROM7:4374 C9               ret  

7:4375

ROM7:4375 F5               push af
ROM7:4376 D5               push de
ROM7:4377 E5               push hl
ROM7:4378 E8 FD            add  sp,FD
ROM7:437A F8 00            ld   hl,sp+00
ROM7:437C AF               xor  a
ROM7:437D 22               ldi  (hl),a		;free 3 bytes in stack
ROM7:437E 22               ldi  (hl),a
ROM7:437F 77               ld   (hl),a
ROM7:4380 50               ld   d,b
ROM7:4381 59               ld   e,c		;de = bc
ROM7:4382 2E 04            ld   l,04		;l = 4
ROM7:4384 CB 38            srl  b
ROM7:4386 CB 19            rr   c
ROM7:4388 2D               dec  l
ROM7:4389 20 F9            jr   nz,4384		;bc >> 4
ROM7:438B F8 00            ld   hl,sp+00
ROM7:438D 79               ld   a,c
ROM7:438E 81               add  c
ROM7:438F 27               daa  
ROM7:4390 4F               ld   c,a
ROM7:4391 78               ld   a,b
ROM7:4392 88               adc  b
ROM7:4393 27               daa  
ROM7:4394 47               ld   b,a
ROM7:4395 F8 00            ld   hl,sp+00
ROM7:4397 79               ld   a,c
ROM7:4398 81               add  c
ROM7:4399 27               daa  
ROM7:439A 22               ldi  (hl),a
ROM7:439B 78               ld   a,b
ROM7:439C 88               adc  b
ROM7:439D 27               daa  
ROM7:439E 22               ldi  (hl),a
ROM7:439F 3E 00            ld   a,00
ROM7:43A1 CE 00            adc  a,00
ROM7:43A3 27               daa  
ROM7:43A4 22               ldi  (hl),a
ROM7:43A5 F8 00            ld   hl,sp+00
ROM7:43A7 7E               ld   a,(hl)
ROM7:43A8 81               add  c
ROM7:43A9 27               daa  
ROM7:43AA 22               ldi  (hl),a
ROM7:43AB 7E               ld   a,(hl)
ROM7:43AC 88               adc  b
ROM7:43AD 27               daa  
ROM7:43AE 22               ldi  (hl),a
ROM7:43AF 7E               ld   a,(hl)
ROM7:43B0 CE 00            adc  a,00
ROM7:43B2 27               daa  
ROM7:43B3 22               ldi  (hl),a
ROM7:43B4 F8 00            ld   hl,sp+00
ROM7:43B6 2A               ldi  a,(hl)
ROM7:43B7 83               add  e
ROM7:43B8 27               daa  
ROM7:43B9 4F               ld   c,a
ROM7:43BA 2A               ldi  a,(hl)
ROM7:43BB 8A               adc  d
ROM7:43BC 27               daa  
ROM7:43BD 47               ld   b,a
ROM7:43BE 2A               ldi  a,(hl)
ROM7:43BF CE 00            adc  a,00
ROM7:43C1 27               daa  
ROM7:43C2 FE 00            cp   a,00
ROM7:43C4 28 03            jr   z,43C9
ROM7:43C6 01 99 99         ld   bc,9999
ROM7:43C9 E8 03            add  sp,03
ROM7:43CB E1               pop  hl
ROM7:43CC D1               pop  de
ROM7:43CD F1               pop  af
ROM7:43CE C9               ret

ATK and DEF +500

ROM7:43CF F5               push af
ROM7:43D0 79               ld   a,c
ROM7:43D1 C6 00            add  a,00
ROM7:43D3 27               daa  
ROM7:43D4 4F               ld   c,a
ROM7:43D5 78               ld   a,b
ROM7:43D6 CE 05            adc  a,05
ROM7:43D8 27               daa  
ROM7:43D9 47               ld   b,a		;ATK +500, DEF +500
ROM7:43DA FE 00            cp   a,00
ROM7:43DC 20 03            jr   nz,43E1
ROM7:43DE 01 99 99         ld   bc,9999	;ATK / DEF can't go over 9999
ROM7:43E1 F1               pop  af
ROM7:43E2 C9               ret  

ATK and DEF -500

ROM7:43E3 F5               push af
ROM7:43E4 79               ld   a,c
ROM7:43E5 D6 00            sub  a,00
ROM7:43E7 27               daa  
ROM7:43E8 4F               ld   c,a
ROM7:43E9 78               ld   a,b
ROM7:43EA DE 05            sbc  a,05
ROM7:43EC 27               daa  
ROM7:43ED 47               ld   b,a		;ATK -500, DEF -500
ROM7:43EE 30 03            jr   nc,43F3
ROM7:43F0 01 00 00         ld   bc,0000	;ATK / DEF can't go below 0
ROM7:43F3 F1               pop  af
ROM7:43F4 C9               ret  

Field ATK bonus

  • 0x1C3F5-0x1C41E - Apply Field effect to the ATK and stock it in RAM at 0xC6B7
ROM7:43F5 F5               push af
ROM7:43F6 C5               push bc
ROM7:43F7 D5               push de
ROM7:43F8 E5               push hl
ROM7:43F9 5F               ld   e,a
ROM7:43FA FA B7 C6         ld   a,(C6B7)
ROM7:43FD 4F               ld   c,a
ROM7:43FE FA B8 C6         ld   a,(C6B8)
ROM7:4401 47               ld   b,a		;bc = Original ATK
ROM7:4402 16 00            ld   d,00
ROM7:4404 CB 23            sla  e
ROM7:4406 21 1F 44         ld   hl,441F
ROM7:4409 19               add  hl,de
ROM7:440A 2A               ldi  a,(hl)
ROM7:440B 66               ld   h,(hl)
ROM7:440C 6F               ld   l,a
ROM7:440D 11 12 44         ld   de,4412
ROM7:4410 D5               push de
ROM7:4411 E9               jp   hl		;Jump to -30% or +30%
ROM7:4412 79               ld   a,c
ROM7:4413 EA B7 C6         ld   (C6B7),a	;Stores updated ATK to (C6B7)
ROM7:4416 78               ld   a,b
ROM7:4417 EA B8 C6         ld   (C6B8),a
ROM7:441A E1               pop  hl
ROM7:441B D1               pop  de
ROM7:441C C1               pop  bc
ROM7:441D F1               pop  af
ROM7:441E C9               ret

Field bonus pointers

  • 0x1C41F-0x1C428 - Field bonus pointers
ROM7:441F
FB 42
FB 42
24 43
25 43
25 43

Field DEF bonus

  • 0x1C429-0x1C452 - Apply Field effect to the DEF and stock it in RAM at 0xC6B9
ROM7:4429 F5               push af
ROM7:442A C5               push bc
ROM7:442B D5               push de
ROM7:442C E5               push hl
ROM7:442D 5F               ld   e,a
ROM7:442E FA B9 C6         ld   a,(C6B9)
ROM7:4431 4F               ld   c,a
ROM7:4432 FA BA C6         ld   a,(C6BA)
ROM7:4435 47               ld   b,a		;bc = Original DEF
ROM7:4436 16 00            ld   d,00
ROM7:4438 CB 23            sla  e
ROM7:443A 21 1F 44         ld   hl,441F
ROM7:443D 19               add  hl,de
ROM7:443E 2A               ldi  a,(hl)
ROM7:443F 66               ld   h,(hl)
ROM7:4440 6F               ld   l,a
ROM7:4441 11 46 44         ld   de,4446
ROM7:4444 D5               push de
ROM7:4445 E9               jp   hl		;Jump to -30% or +30%
ROM7:4446 79               ld   a,c
ROM7:4447 EA B9 C6         ld   (C6B9),a	;Stores updated DEF to (C6B7)
ROM7:444A 78               ld   a,b
ROM7:444B EA BA C6         ld   (C6BA),a
ROM7:444E E1               pop  hl
ROM7:444F D1               pop  de
ROM7:4450 C1               pop  bc
ROM7:4451 F1               pop  af
ROM7:4452 C9               ret

Cards effects AI

  • 0x1C466 - Copy the effect cards pointer of the card currently tested by the CPU
  • 0x1C46A-0x1C477 - Effect cards pointers

Cards data

Monster Equipment

Monster Equip subroutine

  • 0x1E469-0x1E480 - Equip a Monster
ROM7:6469 D5               push de
ROM7:646A E5               push hl
ROM7:646B 5A               ld   e,d
ROM7:646C 16 00            ld   d,00		;de = Equip ID
ROM7:646E CB 23            sla  e
ROM7:6470 CB 12            rl   d
ROM7:6472 21 81 64         ld   hl,6481
ROM7:6475 19               add  hl,de
ROM7:6476 2A               ldi  a,(hl)
ROM7:6477 66               ld   h,(hl)
ROM7:6478 6F               ld   l,a
ROM7:6479 11 7E 64         ld   de,647E
ROM7:647C D5               push de
ROM7:647D E9               jp   hl
ROM7:647E E1               pop  hl
ROM7:647F D1               pop  de
ROM7:6480 C9               ret  

Monster Equip functions pointers

ROM7:6481
C1 64 - Legendary Sword
CA 64 - Sword of Ruin
D3 64 - Dark Energy
DC 64 - Axe of Despair
E5 64 - Lazer Cannon Armor
EE 64 - Insect Armor with Laser Cannon
F7 64 - Elf's Light
00 65 - Beast Fangs
09 65 - Steel Shell
12 65 - Vile Germs
1B 65 - Black Pendant
24 65 - Silver Bow & Arrow
2D 65 - Horn of Light
36 65 - Horn of the Unicorn
3F 65 - Dragon Treasure
48 65 - Electro-whip
51 65 - Cyber Shield
5A 65 - Mystical Moon
63 65 - Malevolent Nuzzler
6C 65 - Violet Crystal
75 65 - Book of Secret Art
7E 65 - Invigoration
87 65 - Machine Conversion
90 65 - Raise Body Heat
99 65 - Follow Wind
A2 65 - Power of Kaishin
AB 65 - Magical Labyrinth
B4 65 - Salamandra
BD 65 - Kunai with Chain
C6 65 - Bright Castle
D9 65 - Megamorph
F2 65 - Winged Trumpeter

Equip Legendary Sword

ROM7:64C1 E5               push hl
ROM7:64C2 21 2E 66         ld   hl,662E
ROM7:64C5 CD 05 66         call 6605
ROM7:64C8 E1               pop  hl
ROM7:64C9 C9               ret  

Equip Sword of Ruin

ROM7:64CA E5               push hl
ROM7:64CB 21 C4 66         ld   hl,66C4
ROM7:64CE CD 05 66         call 6605
ROM7:64D1 E1               pop  hl
ROM7:64D2 C9               ret  

Equip Dark Energy

ROM7:64D3 E5               push hl
ROM7:64D4 21 50 67         ld   hl,6750
ROM7:64D7 CD 05 66         call 6605
ROM7:64DA E1               pop  hl
ROM7:64DB C9               ret  

Equip Axe of Despair

ROM7:64DC E5               push hl
ROM7:64DD 21 D6 69         ld   hl,69D6
ROM7:64E0 CD 05 66         call 6605
ROM7:64E3 E1               pop  hl
ROM7:64E4 C9               ret  

Equip Lazer Cannon Armor

ROM7:64E5 E5               push hl
ROM7:64E6 21 86 6A         ld   hl,6A86
ROM7:64E9 CD 05 66         call 6605
ROM7:64EC E1               pop  hl
ROM7:64ED C9               ret  

Equip Insect Armor with Laser Cannon

ROM7:64EE E5               push hl
ROM7:64EF 21 BC 6B         ld   hl,6BBC
ROM7:64F2 CD 05 66         call 6605
ROM7:64F5 E1               pop  hl
ROM7:64F6 C9               ret  

Equip Elf's Light

ROM7:64F7 E5               push hl
ROM7:64F8 21 AC 6C         ld   hl,6CAC
ROM7:64FB CD 05 66         call 6605
ROM7:64FE E1               pop  hl
ROM7:64FF C9               ret  

Equip Beast Fangs

ROM7:6500 E5               push hl
ROM7:6501 21 58 6D         ld   hl,6D58
ROM7:6504 CD 05 66         call 6605
ROM7:6507 E1               pop  hl
ROM7:6508 C9               ret  

Equip Steel Shell

ROM7:6509 E5               push hl
ROM7:650A 21 36 6F         ld   hl,6F36
ROM7:650D CD 05 66         call 6605
ROM7:6510 E1               pop  hl
ROM7:6511 C9               ret  

Equip Vile Germs

ROM7:6512 E5               push hl
ROM7:6513 21 5E 6F         ld   hl,6F5E
ROM7:6516 CD 05 66         call 6605
ROM7:6519 E1               pop  hl
ROM7:651A C9               ret  

Equip Black Pendant

ROM7:651B E5               push hl
ROM7:651C 21 9C 6F         ld   hl,6F9C
ROM7:651F CD 05 66         call 6605
ROM7:6522 E1               pop  hl
ROM7:6523 C9               ret  

Equip Silver Bow & Arrow

ROM7:6524 E5               push hl
ROM7:6525 21 B0 70         ld   hl,70B0
ROM7:6528 CD 05 66         call 6605
ROM7:652B E1               pop  hl
ROM7:652C C9               ret  

Equip Horn of Light

ROM7:652D E5               push hl
ROM7:652E 21 42 71         ld   hl,7142
ROM7:6531 CD 05 66         call 6605
ROM7:6534 E1               pop  hl
ROM7:6535 C9               ret  

Equip Horn of the Unicorn

ROM7:6536 E5               push hl
ROM7:6537 21 C2 71         ld   hl,71C2
ROM7:653A CD 05 66         call 6605
ROM7:653D E1               pop  hl
ROM7:653E C9               ret  

Equip Dragon Treasure

ROM7:653F E5               push hl
ROM7:6540 21 8E 72         ld   hl,728E
ROM7:6543 CD 05 66         call 6605
ROM7:6546 E1               pop  hl
ROM7:6547 C9               ret  

Equip Electro-whip

ROM7:6548 E5               push hl
ROM7:6549 21 36 73         ld   hl,7336
ROM7:654C CD 05 66         call 6605
ROM7:654F E1               pop  hl
ROM7:6550 C9               ret  

Equip Cyber Shield

ROM7:6551 E5               push hl
ROM7:6552 21 14 74         ld   hl,7414
ROM7:6555 CD 05 66         call 6605
ROM7:6558 E1               pop  hl
ROM7:6559 C9               ret  

Equip Mystical Moon

ROM7:655A E5               push hl
ROM7:655B 21 92 74         ld   hl,7492
ROM7:655E CD 05 66         call 6605
ROM7:6561 E1               pop  hl
ROM7:6562 C9               ret  

Equip Malevolent Nuzzler

ROM7:6563 E5               push hl
ROM7:6564 21 62 75         ld   hl,7562
ROM7:6567 CD 05 66         call 6605
ROM7:656A E1               pop  hl
ROM7:656B C9               ret  

Equip Violet Crystal

ROM7:656C E5               push hl
ROM7:656D 21 98 76         ld   hl,7698
ROM7:6570 CD 05 66         call 6605
ROM7:6573 E1               pop  hl
ROM7:6574 C9               ret  

Equip Book of Secret Art

ROM7:6575 E5               push hl
ROM7:6576 21 4A 77         ld   hl,774A
ROM7:6579 CD 05 66         call 6605
ROM7:657C E1               pop  hl
ROM7:657D C9               ret  

Equip Invigoration

ROM7:657E E5               push hl
ROM7:657F 21 08 78         ld   hl,7808
ROM7:6582 CD 05 66         call 6605
ROM7:6585 E1               pop  hl
ROM7:6586 C9               ret  

Equip Machine Conversion

ROM7:6587 E5               push hl
ROM7:6588 21 06 79         ld   hl,7906
ROM7:658B CD 05 66         call 6605
ROM7:658E E1               pop  hl
ROM7:658F C9               ret  

Equip Raise Body Heat

ROM7:6590 E5               push hl
ROM7:6591 21 94 79         ld   hl,7994
ROM7:6594 CD 05 66         call 6605
ROM7:6597 E1               pop  hl
ROM7:6598 C9               ret  

Equip Follow Wind

ROM7:6599 E5               push hl
ROM7:659A 21 7C 7A         ld   hl,7A7C
ROM7:659D CD 05 66         call 6605
ROM7:65A0 E1               pop  hl
ROM7:65A1 C9               ret  

Equip Power of Kaishin

ROM7:65A2 E5               push hl
ROM7:65A3 21 A4 7B         ld   hl,7BA4
ROM7:65A6 CD 05 66         call 6605
ROM7:65A9 E1               pop  hl
ROM7:65AA C9               ret  

Equip Magical Labyrinth

ROM7:65AB E5               push hl
ROM7:65AC 21 92 7C         ld   hl,7C92
ROM7:65AF CD 05 66         call 6605
ROM7:65B2 E1               pop  hl
ROM7:65B3 C9               ret  

Equip Salamandra

ROM7:65B4 E5               push hl
ROM7:65B5 21 AA 7D         ld   hl,7DAA
ROM7:65B8 CD 05 66         call 6605
ROM7:65BB E1               pop  hl
ROM7:65BC C9               ret  

Equip Kunai with Chain

ROM7:65BD E5               push hl
ROM7:65BE 21 96 7C         ld   hl,7C96
ROM7:65C1 CD 05 66         call 6605
ROM7:65C4 E1               pop  hl
ROM7:65C5 C9               ret  

Equip Bright Castle

ROM7:65C6 D5               push de
ROM7:65C7 1E 00            ld   e,00
ROM7:65C9 CD A0 40         call 40A0		;Card Stats routine
ROM7:65CC 16 01            ld   d,01            ;Light
ROM7:65CE FA BE C6         ld   a,(C6BE)        ;Current card Alignment
ROM7:65D1 BA               cp   d
ROM7:65D2 20 02            jr   nz,65D6         ;If(Alignment ≠ Light), jump to 7:65D6
ROM7:65D4 1E 01            ld   e,01
ROM7:65D6 7B               ld   a,e
ROM7:65D7 D1               pop  de
ROM7:65D8 C9               ret

Equip Megamorph

ROM7:65D9 D5               push de
ROM7:65DA 1E 00            ld   e,00
ROM7:65DC CD 72 1A         call 1A72
ROM7:65DF FE 00            cp   a,00
ROM7:65E1 20 0C            jr   nz,65EF
ROM7:65E3 CD A0 40         call 40A0		;Card Stats routine
ROM7:65E6 FA BF C6         ld   a,(C6BF)	;Current card Effect ID (magic trap ritual)
ROM7:65E9 FE 02            cp   a,02
ROM7:65EB 20 02            jr   nz,65EF		;If not a Monster, jump to 7:65EF
ROM7:65ED 1E 01            ld   e,01
ROM7:65EF 7B               ld   a,e
ROM7:65F0 D1               pop  de
ROM7:65F1 C9               ret

Equip Winged Trumpeter

ROM7:65F2 D5               push de
ROM7:65F3 1E 00            ld   e,00
ROM7:65F5 CD A0 40         call 40A0		;Card Stats routine
ROM7:65F8 16 08            ld   d,08		;Fairy
ROM7:65FA FA BB C6         ld   a,(C6BB)	;Current card Type
ROM7:65FD BA               cp   d
ROM7:65FE 20 02            jr   nz,6602		;If(Type ≠ Fairy), jump to 7:6602
ROM7:6600 1E 01            ld   e,01
ROM7:6602 7B               ld   a,e
ROM7:6603 D1               pop  de
ROM7:6604 C9               ret

7:6605

ROM7:6605 C5               push bc
ROM7:6606 D5               push de
ROM7:6607 E5               push hl
ROM7:6608 2A               ldi  a,(hl)
ROM7:6609 5F               ld   e,a
ROM7:660A 2A               ldi  a,(hl)
ROM7:660B 57               ld   d,a
ROM7:660C C5               push bc
ROM7:660D 01 FF FF         ld   bc,FFFF
ROM7:6610 CD 14 1B         call 1B14		;Checks if 0xFFFF ≠ de
ROM7:6613 C1               pop  bc
ROM7:6614 FE 00            cp   a,00
ROM7:6616 20 04            jr   nz,661C
ROM7:6618 1E 00            ld   e,00
ROM7:661A 18 0D            jr   6629
ROM7:661C CD 14 1B         call 1B14		;Checks if bc ≠ de
ROM7:661F FE 00            cp   a,00
ROM7:6621 20 04            jr   nz,6627
ROM7:6623 1E 01            ld   e,01
ROM7:6625 18 02            jr   6629
ROM7:6627 18 DF            jr   6608
ROM7:6629 7B               ld   a,e
ROM7:662A E1               pop  hl
ROM7:662B D1               pop  de
ROM7:662C C1               pop  bc
ROM7:662D C9               ret

Equip Monster IDs arrays

  • 0x1E62E-0x1FE5F - Equip Monster IDs arrays, separated by FF FF
Legendary Sword array
Sword of Ruin array
Dark Energy array
Axe of Despair array
Lazer Cannon Armor array
Insect Armor with Laser Cannon array
Elf's Light array
Beast Fangs array
Steel Shell array
Vile Germs array
Black Pendant array
Silver Bow & Arrow array
Horn of Light array
Horn of the Unicorn array
Dragon Treasure array
Electro-whip array
Cyber Shield array
Mystical Moon array
Malevolent Nuzzler array
Violet Crystal array
Book of Secret Art array
Invigoration array
Machine Conversion array
Raise Body Heat array
Follow Wind array
Power of Kaishin array
Magical Labyrinth array
Kunai with Chain array
Salamandra array
Bright Castle old DM2 array (Unused)
01 00 02 00 21 00 29 00 2C 00 5A 00 6D 00 72 00 7D 00 7E 00 80 00 82 00 86 00 A5 00 AA 00 B7 00
C0 00 C6 00 D0 00 E5 00 04 01 08 01 14 01 1B 01 22 01 25 01 2B 01 66 01 7C 01 85 01 8B 01 8C 01
AB 01 AC 01 AD 01 B1 01 E6 01 EC 01 ED 01 EF 01 01 02 14 02 1C 02 46 02 48 02 50 02 59 02 5B 02
60 02 64 02 68 02 6E 02 79 02 BD 02 C0 02 C7 02 FF FF

Bank 8

rst 08 pointers

ROM8:4002
2C 40
47 40
7D 40
98 40
D8 40
15 45
45 45
1D 45
25 45
2D 45
35 45
3D 45
23 49
F8 52
18 53
8D 48
DF 48
01 49
EF 46
0B 46
25 46

8:402C

ROM8:402C F5               push af
ROM8:402D C5               push bc
ROM8:402E D5               push de
ROM8:402F E5               push hl
ROM8:4030 21 00 90         ld   hl,9000
ROM8:4033 11 10 00         ld   de,0010
ROM8:4036 3E 00            ld   a,00
ROM8:4038 06 80            ld   b,80
ROM8:403A CD 98 40         call 4098
ROM8:403D 19               add  hl,de
ROM8:403E 3C               inc  a
ROM8:403F 05               dec  b
ROM8:4040 20 F8            jr   nz,403A
ROM8:4042 E1               pop  hl
ROM8:4043 D1               pop  de
ROM8:4044 C1               pop  bc
ROM8:4045 F1               pop  af
ROM8:4046 C9               ret  

8:4047

ROM8:4047 F5               push af
ROM8:4048 C5               push bc
ROM8:4049 D5               push de
ROM8:404A E5               push hl
ROM8:404B 3E 05            ld   a,05
ROM8:404D CD 24 12         call 1224
ROM8:4050 3E 7F            ld   a,7F
ROM8:4052 CD 0F 11         call 110F
ROM8:4055 3E 1E            ld   a,1E
ROM8:4057 CD E3 0E         call 0EE3
ROM8:405A 01 00 90         ld   bc,9000
ROM8:405D CD D2 10         call 10D2
ROM8:4060 21 00 D0         ld   hl,D000
ROM8:4063 11 10 00         ld   de,0010
ROM8:4066 3E 00            ld   a,00
ROM8:4068 06 80            ld   b,80
ROM8:406A CD 98 40         call 4098
ROM8:406D 19               add  hl,de
ROM8:406E 3C               inc  a
ROM8:406F 05               dec  b
ROM8:4070 20 F8            jr   nz,406A
ROM8:4072 CD C1 10         call 10C1
ROM8:4075 CD 48 12         call 1248
ROM8:4078 E1               pop  hl
ROM8:4079 D1               pop  de
ROM8:407A C1               pop  bc
ROM8:407B F1               pop  af
ROM8:407C C9               ret  

8:407D

ROM8:407D F5               push af
ROM8:407E C5               push bc
ROM8:407F D5               push de
ROM8:4080 E5               push hl
ROM8:4081 21 60 8C         ld   hl,8C60
ROM8:4084 3E 01            ld   a,01
ROM8:4086 11 10 00         ld   de,0010
ROM8:4089 06 0A            ld   b,0A
ROM8:408B CD 98 40         call 4098
ROM8:408E 19               add  hl,de
ROM8:408F 3C               inc  a
ROM8:4090 05               dec  b
ROM8:4091 20 F8            jr   nz,408B
ROM8:4093 E1               pop  hl
ROM8:4094 D1               pop  de
ROM8:4095 C1               pop  bc
ROM8:4096 F1               pop  af
ROM8:4097 C9               ret  

8:4098

ROM8:4098 F5               push af
ROM8:4099 C5               push bc
ROM8:409A D5               push de
ROM8:409B E5               push hl
ROM8:409C FE 7D            cp   a,7D
ROM8:409E 30 1A            jr   nc,40BA
ROM8:40A0 E5               push hl
ROM8:40A1 6F               ld   l,a
ROM8:40A2 26 00            ld   h,00
ROM8:40A4 29               add  hl,hl
ROM8:40A5 29               add  hl,hl
ROM8:40A6 29               add  hl,hl
ROM8:40A7 11 FD 40         ld   de,40FD
ROM8:40AA 19               add  hl,de
ROM8:40AB 54               ld   d,h
ROM8:40AC 5D               ld   e,l
ROM8:40AD E1               pop  hl
ROM8:40AE 0E 08            ld   c,08
ROM8:40B0 1A               ld   a,(de)
ROM8:40B1 22               ldi  (hl),a
ROM8:40B2 1A               ld   a,(de)
ROM8:40B3 22               ldi  (hl),a
ROM8:40B4 13               inc  de
ROM8:40B5 0D               dec  c
ROM8:40B6 20 F8            jr   nz,40B0
ROM8:40B8 18 19            jr   40D3
ROM8:40BA E5               push hl
ROM8:40BB D6 7D            sub  a,7D
ROM8:40BD 6F               ld   l,a
ROM8:40BE 26 00            ld   h,00
ROM8:40C0 29               add  hl,hl
ROM8:40C1 29               add  hl,hl
ROM8:40C2 29               add  hl,hl
ROM8:40C3 29               add  hl,hl
ROM8:40C4 11 E5 44         ld   de,44E5
ROM8:40C7 19               add  hl,de
ROM8:40C8 54               ld   d,h
ROM8:40C9 5D               ld   e,l
ROM8:40CA E1               pop  hl
ROM8:40CB 0E 10            ld   c,10
ROM8:40CD 1A               ld   a,(de)
ROM8:40CE 22               ldi  (hl),a
ROM8:40CF 13               inc  de
ROM8:40D0 0D               dec  c
ROM8:40D1 20 FA            jr   nz,40CD
ROM8:40D3 E1               pop  hl
ROM8:40D4 D1               pop  de
ROM8:40D5 C1               pop  bc
ROM8:40D6 F1               pop  af
ROM8:40D7 C9               ret  

8:40D8

ROM8:40D8 F5               push af
ROM8:40D9 C5               push bc
ROM8:40DA D5               push de
ROM8:40DB E5               push hl
ROM8:40DC E5               push hl
ROM8:40DD 6F               ld   l,a
ROM8:40DE 26 00            ld   h,00
ROM8:40E0 29               add  hl,hl
ROM8:40E1 29               add  hl,hl
ROM8:40E2 29               add  hl,hl
ROM8:40E3 11 FD 40         ld   de,40FD
ROM8:40E6 19               add  hl,de
ROM8:40E7 54               ld   d,h
ROM8:40E8 5D               ld   e,l
ROM8:40E9 E1               pop  hl
ROM8:40EA 0E 08            ld   c,08
ROM8:40EC 1A               ld   a,(de)
ROM8:40ED CD 13 11         call 1113
ROM8:40F0 1A               ld   a,(de)
ROM8:40F1 CD 13 11         call 1113
ROM8:40F4 13               inc  de
ROM8:40F5 0D               dec  c
ROM8:40F6 20 F4            jr   nz,40EC
ROM8:40F8 E1               pop  hl
ROM8:40F9 D1               pop  de
ROM8:40FA C1               pop  bc
ROM8:40FB F1               pop  af
ROM8:40FC C9               ret  

Graphics 2

  • 0x20100-0x20510 - Character table

8:4545 (Player's Name)

ROM8:4545 F5               push af
ROM8:4546 C5               push bc
ROM8:4547 D5               push de
ROM8:4548 E5               push hl
ROM8:4549 1E 00            ld   e,00
ROM8:454B 57               ld   d,a
ROM8:454C FE 7D            cp   a,7D
ROM8:454E 38 0D            jr   c,455D		;If(Character ID < 0x7D), jump to 8:455D
ROM8:4550 06 00            ld   b,00
ROM8:4552 D6 7D            sub  a,7D		;Character ID - 0x7D (No Japanese character allowed)
ROM8:4554 07               rlca 
ROM8:4555 4F               ld   c,a
ROM8:4556 21 A5 45         ld   hl,45A5
ROM8:4559 09               add  hl,bc
ROM8:455A 2A               ldi  a,(hl)
ROM8:455B 5F               ld   e,a
ROM8:455C 56               ld   d,(hl)
ROM8:455D 7A               ld   a,d
ROM8:455E FE 00            cp   a,00
ROM8:4560 20 0B            jr   nz,456D		;If(Character ID ≠ 0x00), jump to 8:456D
ROM8:4562 06 00            ld   b,00
ROM8:4564 FA E5 C5         ld   a,(C5E5)
ROM8:4567 4F               ld   c,a
ROM8:4568 21 85 45         ld   hl,4585
ROM8:456B 09               add  hl,bc
ROM8:456C 56               ld   d,(hl)
ROM8:456D 7A               ld   a,d
ROM8:456E EA E7 C5         ld   (C5E7),a	;Store Character ID in (C5E7)
ROM8:4571 FA E5 C5         ld   a,(C5E5)
ROM8:4574 83               add  e
ROM8:4575 5F               ld   e,a
ROM8:4576 16 00            ld   d,00
ROM8:4578 21 8D 45         ld   hl,458D
ROM8:457B 19               add  hl,de
ROM8:457C 7E               ld   a,(hl)
ROM8:457D EA E6 C5         ld   (C5E6),a
ROM8:4580 E1               pop  hl
ROM8:4581 D1               pop  de
ROM8:4582 C1               pop  bc
ROM8:4583 F1               pop  af
ROM8:4584 C9               ret

CPU Exodia

CPU Exodia subroutine

ROM8:4625 F5               push af
ROM8:4626 CD 71 46         call 4671		;CPU Exodia subroutine
ROM8:4629 FE 00            cp   a,00
ROM8:462B 20 10            jr   nz,463D		;If no Exodia win, jump to 8:463D
ROM8:462D 3E 02            ld   a,02
ROM8:462F EA 4C C8         ld   (C84C),a	;(C84C) = 2
ROM8:4632 3E 05            ld   a,05
ROM8:4634 EA AF C8         ld   (C8AF),a	;(C8AF) = 5
ROM8:4637 CF               rst  08
...
ROM8:463D F1               pop  af
ROM8:463E C9               ret

Checks CPU Exodia win

ROM8:4671 C5               push bc
ROM8:4672 D5               push de
ROM8:4673 06 00            ld   b,00
ROM8:4675 0E 00            ld   c,00
ROM8:4677 1E 00            ld   e,00
ROM8:4679 78               ld   a,b
ROM8:467A FE 05            cp   a,05
ROM8:467C 30 18            jr   nc,4696
ROM8:467E CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4681 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:4684 C5               push bc
ROM8:4685 FA A3 C7         ld   a,(C7A3)	;Copy card being processed in bc
ROM8:4688 4F               ld   c,a
ROM8:4689 FA A4 C7         ld   a,(C7A4)
ROM8:468C 47               ld   b,a
ROM8:468D CD A3 46         call 46A3		;Checks if Exodia parts are in CPU Hand
ROM8:4690 B3               or   e
ROM8:4691 5F               ld   e,a
ROM8:4692 C1               pop  bc
ROM8:4693 04               inc  b
ROM8:4694 18 E3            jr   4679
ROM8:4696 7B               ld   a,e
ROM8:4697 FE 1F            cp   a,1F
ROM8:4699 20 03            jr   nz,469E
ROM8:469B AF               xor  a		;If Exodia win, a = 0
ROM8:469C 18 02            jr   46A0
ROM8:469E 3E 01            ld   a,01		;Else a = 1
ROM8:46A0 D1               pop  de
ROM8:46A1 C1               pop  bc
ROM8:46A2 C9               ret

Checks if Exodia parts are in CPU Hand

ROM8:46A3 C5               push bc
ROM8:46A4 D5               push de
ROM8:46A5 E5               push hl
ROM8:46A6 16 00            ld   d,00
ROM8:46A8 1E 00            ld   e,00
ROM8:46AA 21 D2 46         ld   hl,46D2
ROM8:46AD 7B               ld   a,e
ROM8:46AE FE 05            cp   a,05
ROM8:46B0 30 1B            jr   nc,46CD		;Loop 5 times (for each card in Hand)
ROM8:46B2 D5               push de
ROM8:46B3 2A               ldi  a,(hl)
ROM8:46B4 5F               ld   e,a
ROM8:46B5 2A               ldi  a,(hl)
ROM8:46B6 57               ld   d,a
ROM8:46B7 CD 14 1B         call 1B14		;Checks if card ID ≠ Exodia part
ROM8:46BA D1               pop  de
ROM8:46BB FE 00            cp   a,00
ROM8:46BD 20 0B            jr   nz,46CA		;If it's not an Exodia part, jump to 8:46CA
ROM8:46BF E5               push hl
ROM8:46C0 21 DC 46         ld   hl,46DC
ROM8:46C3 19               add  hl,de
ROM8:46C4 7E               ld   a,(hl)
ROM8:46C5 E8 02            add  sp,02
ROM8:46C7 18 05            jr   46CE		;If it is an Exodia part, a = Exodia part flag, and get out of this function
ROM8:46C9 E1               pop  hl
ROM8:46CA 1C               inc  e		;Next card in hand
ROM8:46CB 18 E0            jr   46AD		;Loop to 8:46AD
ROM8:46CD AF               xor  a		;If no Exodia part in hand, a = 0 and get out of this function
ROM8:46CE E1               pop  hl
ROM8:46CF D1               pop  de
ROM8:46D0 C1               pop  bc
ROM8:46D1 C9               ret  

Exodia parts IDs array

ROM8:46D2
11 00 12 00 13 00 14 00 15 00

Exodia victory flags array

ROM8:46DC
01 02 04 08 10

Ritual Summon

Ritual Materials array

0x207BD-0x20884 - Ritual materials array, Monsters materials IDs and resulting Ritual Monster ID, in this order.

26 00 - 
1B 00 - 
3A 00 - 
6C 01 - Black Luster Soldier
79 01 - 
2A 01 - 
55 00 - 
68 01 - Zera the Mant
93 01 - 
C9 00 - 
E3 01 - 
64 01 - Super War-lion
53 02 - 
05 01 - 
BA 00 - 
6D 01 - Fiend's Mirror
01 00 - Blue Eyes White Dragon
01 00 - Blue Eyes White Dragon
01 00 - Blue Eyes White Dragon
7C 01 - Blue Eyes Ultra Dragon
28 01 -  
FF 00 - 
75 02 - 
6A 01 - Millennium Shield
1D 00 - 
1F 00 - 
65 00 - 
65 01 - Yamadron
73 01 - Sanga of the Thunder
74 01 - Kazejin
75 01 - Suijin
76 01 - Gate Guardian
F9 00 - 
8B 01 - 
FF 01 - 
BD 02 - Performance of Swords
27 01 - 
0E 00 - 
23 02 - 
BE 02 - Hungry Burger
03 00 - 
40 00 - 
C5 01 - 
BF 02 - Sengenjin
A0 00 - 
A1 00 - 
17 02 - 
C0 02 - Skull Guardian
3B 02 - 
2F 00 - 
06 00 - 
C1 02 - Tri-Horned Dragon
A8 00 - Darkfire Dragon
26 01 - (Unused) Dragoness the Wicked
5C 02 - (Unused) Obese Marmot of Nefariousness
C2 02 - Serpent Night Dragon
C1 01 - 
59 00 - 
C3 01 - 
C6 02 - Crab Turtle
66 00 - 
B6 00 - 
DC 00 - 
D0 02 - Mask of Shine & Darkness
0D 01 - 
B2 00 - 
20 01 - 
C5 02 - Chakra
A6 00 - 
95 01 - 
A0 01 - 
CB 02 - Psycho-Puppet
34 00 - 
E0 01 - 
15 02 - 
CD 02 - Javelin Beetle
6D 02 - 
7A 01 - 
EF 00 - 
CC 02 - Garma Sword
7E 02 - 
7B 02 - 
0A 01 - 
C4 02 - Cosmo Queen
92 00 - 
DF 01 - 
E5 01 - 
CF 02 - Dokurorider
B9 01 - Mech Bass
B4 01 - 
1E 02 - 
CE 02 - Fortress Whale
23 00 - Dark Magician
07 00 - (Unused) Winged Dragon #1
DC 02 - (Unused) Jigen Bakudan
D1 02 - Magician of Black Chaos
DA 02 - Dark-eyes Illusionist
DA 02 - (Unused) Dark-eyes Illusionist
DA 02 - (Unused) Dark-eyes Illusionist
DB 02 - Relinquished

Read Ritual Monster Material

ROM8:4901 F5               push af
ROM8:4902 D5               push de
ROM8:4903 E5               push hl
ROM8:4904 16 00            ld   d,00
ROM8:4906 58               ld   e,b
ROM8:4907 CB 23            sla  e
ROM8:4909 CB 12            rl   d
ROM8:490B CB 23            sla  e
ROM8:490D CB 12            rl   d
ROM8:490F CB 23            sla  e
ROM8:4911 CB 12            rl   d
ROM8:4913 21 BD 47         ld   hl,47BD
ROM8:4916 19               add  hl,de
ROM8:4917 06 00            ld   b,00
ROM8:4919 CB 21            sla  c
ROM8:491B 09               add  hl,bc			;hl = 0x47BD + offset
ROM8:491C 2A               ldi  a,(hl)			;Load Monster ID from the Ritual Materials array
ROM8:491D 46               ld   b,(hl)
ROM8:491E 4F               ld   c,a			;bc = Ritual Material ID
ROM8:491F E1               pop  hl
ROM8:4920 D1               pop  de
ROM8:4921 F1               pop  af
ROM8:4922 C9               ret

Player's Effect Monsters

Display card effect text

ROM8:4961 F5               push af
ROM8:4962 C5               push bc
ROM8:4963 3E 02            ld   a,02
ROM8:4965 EA 4C C8         ld   (C84C),a	;(C84C) = 2
ROM8:4968 3E 04            ld   a,04
ROM8:496A EA AF C8         ld   (C8AF),a	;(C8AF) = 4
ROM8:496D FA DA CA         ld   a,(CADA)	;Column being processed
ROM8:4970 47               ld   b,a
ROM8:4971 FA DB CA         ld   a,(CADB)	;Row being processed
ROM8:4974 4F               ld   c,a
ROM8:4975 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4978 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:497B FA A3 C7         ld   a,(C7A3)
ROM8:497E EA A9 C8         ld   (C8A9),a	;Copy card being processed to (C8A9)
ROM8:4981 FA A4 C7         ld   a,(C7A4)
ROM8:4984 EA AA C8         ld   (C8AA),a
ROM8:4987 CF               rst  08
 => to 6:4007, pointer to 6:400E
ROM8:4989 C1               pop  bc
ROM8:498B F1               pop  af
ROM8:498C C9               ret

Freeze card in selected card zone

ROM8:498D F5               push af
ROM8:498E C5               push bc
ROM8:498F FA DA CA         ld   a,(CADA)	;Column being processed
ROM8:4992 47               ld   b,a
ROM8:4993 FA DB CA         ld   a,(CADB)	;Row being processed
ROM8:4996 4F               ld   c,a
ROM8:4997 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:499A CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:499D CD DF 1F         call 1FDF		;Freezes Card
ROM8:49A0 CD FB 19         call 19FB		;Update selected card ID and status
ROM8:49A3 C1               pop  bc
ROM8:49A4 F1               pop  af
ROM8:49A5 C9               ret

Effect Monster subroutine

ROM8:49A6 F5               push af
ROM8:49A7 C5               push bc
ROM8:49A8 E5               push hl
ROM8:49A9 FA DA CA         ld   a,(CADA)	;Column being processed
ROM8:49AC 47               ld   b,a
ROM8:49AD FA DB CA         ld   a,(CADB)	;Row being processed
ROM8:49B0 4F               ld   c,a
ROM8:49B1 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:49B4 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:49B7 FA A3 C7         ld   a,(C7A3)
ROM8:49BA 4F               ld   c,a		;bc = Card being processed
ROM8:49BB FA A4 C7         ld   a,(C7A4)
ROM8:49BE 47               ld   b,a
ROM8:49BF CF               rst  08
...
ROM8:49C2 3E 00            ld   a,00
ROM8:49C4 47               ld   b,a
ROM8:49C5 FA C0 C6         ld   a,(C6C0)	;Effect Monster ID
ROM8:49C8 4F               ld   c,a
ROM8:49C9 CB 21            sla  c
ROM8:49CB 21 DB 49         ld   hl,49DB
ROM8:49CE 09               add  hl,bc		;hl = 0x49DB + (Effect Monster ID × 2)
ROM8:49CF 2A               ldi  a,(hl)
ROM8:49D0 66               ld   h,(hl)
ROM8:49D1 6F               ld   l,a		;hl = Pointer to the Monster Effect
ROM8:49D2 01 D7 49         ld   bc,49D7		;Address to go back to once the Monster Effect has been resolved
ROM8:49D5 C5               push bc
ROM8:49D6 E9               jp   hl
ROM8:49D7 E1               pop  hl
ROM8:49D8 C1               pop  bc
ROM8:49D9 F1               pop  af
ROM8:49DA C9               ret

Effect Monsters pointers

ROM8:49DB
43 4A - No Effect
4B 4A - Reaper of the Card
5C 4A - Fairy's Gift
70 4A - Relinquished
A7 4A - Thousand-eyes Restrict
E7 4A - Skelengel
F7 4A - Harpie Lady
25 4B - Harpie Lady Sister
59 4B - Time Wizard
9D 4B - Castle of D. Magic
E7 4B - Mystical Elf
15 4C - Curse of Dragon
22 4C - Flame Swordsman
48 4C - Giant Rock Soldier
55 4C - Battle Ox
7B 4C - Monster Tamer
A9 4C - Pumpking the King
E9 4C - Mammoth Graveyard
10 4D - Catapult Turtle
62 4D - Goddess of Whim
87 4D - Spirit of the Mountain
94 4D - Dragon Seeker
BA 4D - Trap Master
EC 4D - Fiend's Hand
1D 4E - Faceless Mage
4A 4E - Electric Lizard
6D 4E - D. Magician Girl
A5 4E - Wodan the Resident
D2 4E - M-warrior #1
00 4F - M-warrior #2
2E 4F - Red Archery Girl
56 4F - Lady of Faith
6A 4F - Fire Reaper
7E 4F - Kairyu-shin
8B 4F - Gyakutenno Megami
C5 4F - Monster Eye
EA 4F - Doron
25 50 - Swamp Battleguard
53 50 - Lava Battleguard
81 50 - Trent
8E 50 - Labyrinth Tank
C6 50 - Spirit of the Book
10 51 - Hourglass of Life
39 51 - Beastking of the Swamp
63 51 - Nemuriko
9F 51 - Toad Master
E6 51 - Hoshiningen
1E 52 - Invitation to a Dark Sleep
4B 52 - Witch's Apprentice
83 52 - Mystic Lamp
A7 52 - Leghul
CB 52 - Insect Queen

Effect Monsters

No Effect
  • 0x20A43-0x20A4A - No Effect : Reveal the card, and display a message informing the Player that this card has no Monster Effect.
ROM8:4A43 F5               push af
ROM8:4A44 3E 01            ld   a,01
ROM8:4A46 CF               rst  08
...
ROM8:4A49 F1               pop  af
ROM8:4A4A C9               ret  
Reaper of the Card
  • 0x20A4B-0x20A5B - Reaper of the Card : Destroys opponent's Trap.
ROM8:4A4B F5               push af
ROM8:4A4C C5               push bc
ROM8:4A4D CD 61 49         call 4961              ;Displays card effect text
ROM8:4A50 CD 8D 49         call 498D		;Freezes this card
ROM8:4A53 CF               rst  08
...
ROM8:4A56 CF               rst  08
...
ROM8:4A59 C1               pop  bc
ROM8:4A5A F1               pop  af
ROM8:4A5B C9               ret
Fairy's Gift
  • 0x20A5C-0x20A6F - Fairy's Gift : Heals 1000 LP.
ROM8:4A5C F5               push af
ROM8:4A5D C5               push bc
ROM8:4A5E CD 61 49         call 4961              ;Displays card effect text
ROM8:4A61 CD 8D 49         call 498D		;Freezes this card
ROM8:4A64 01 00 10         ld   bc,1000		;Heal 1000 LP
ROM8:4A67 CF               rst  08
...
ROM8:4A6A CF               rst  08
...
ROM8:4A6D C1               pop  bc
ROM8:4A6E F1               pop  af
ROM8:4A6F C9               ret  
Relinquished
  • 0x20A70-0x20AA6 - Relinquished : Steals an opponent's monster.
ROM8:4A70 F5               push af
ROM8:4A71 C5               push bc
ROM8:4A72 CD 61 49         call 4961              ;Displays card effect text
ROM8:4A75 CD 8D 49         call 498D		;Freezes this card
ROM8:4A78 CF               rst  08
...
ROM8:4A7B FE 00            cp   a,00
ROM8:4A7D 20 25            jr   nz,4AA4
ROM8:4A7F 0E 01            ld   c,01
ROM8:4A81 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4A84 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:4A87 CD E6 19         call 19E6		;Remove selected card from the field
ROM8:4A8A FA DA CA         ld   a,(CADA)	;Column being processed
ROM8:4A8D 47               ld   b,a
ROM8:4A8E FA DB CA         ld   a,(CADB)	;Row being processed
ROM8:4A91 4F               ld   c,a
ROM8:4A92 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4A95 CD EA 1F         call 1FEA		;Unfreezes Card
ROM8:4A98 CD 25 20         call 2025		;Hide Card, reset Level
ROM8:4A9B CD C9 1F         call 1FC9		;Reveal Card
ROM8:4A9E CD FB 19         call 19FB		;Update selected card ID and status
ROM8:4AA1 CF               rst  08
ROM8:4AA2 59               ld   e,c
ROM8:4AA3 03               inc  bc
ROM8:4AA4 C1               pop  bc
ROM8:4AA5 F1               pop  af
ROM8:4AA6 C9               ret  
Thousand-eyes Restrict
  • 0x20AA7-0x20AE6 - Thousand-eyes Restrict : Steals an opponent's monster, and maximize its Level.
ROM8:4AA7 F5               push af
ROM8:4AA8 C5               push bc
ROM8:4AA9 CD 61 49         call 4961              ;Displays card effect text
ROM8:4AAC CD 8D 49         call 498D		;Freezes this card
ROM8:4AAF CF               rst  08
...
ROM8:4AB2 FE 00            cp   a,00
ROM8:4AB4 20 2E            jr   nz,4AE4
ROM8:4AB6 0E 01            ld   c,01
ROM8:4AB8 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4ABB CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:4ABE CD E6 19         call 19E6		;Remove selected card from the field
ROM8:4AC1 FA DA CA         ld   a,(CADA)	;Column being processed
ROM8:4AC4 47               ld   b,a
ROM8:4AC5 FA DB CA         ld   a,(CADB)	;Row being processed
ROM8:4AC8 4F               ld   c,a
ROM8:4AC9 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4ACC CD EA 1F         call 1FEA		;Unfreezes Card
ROM8:4ACF CD 25 20         call 2025		;Hide Card, reset Level
ROM8:4AD2 CD C9 1F         call 1FC9		;Reveal Card
ROM8:4AD5 CD 70 1F         call 1F70		;Increase Card Level
ROM8:4AD8 CD 70 1F         call 1F70		;Increase Card Level
ROM8:4ADB CD 70 1F         call 1F70		;Increase Card Level
ROM8:4ADE CD FB 19         call 19FB		;Update selected card ID and status
ROM8:4AE1 CF               rst  08
ROM8:4AE2 59               ld   e,c
ROM8:4AE3 03               inc  bc
ROM8:4AE4 C1               pop  bc
ROM8:4AE5 F1               pop  af
ROM8:4AE6 C9               ret  
Skelengel
  • 0x20AE7-0x20AF6 - Skelengel : Draw 1 card.
ROM8:4AE7 CD 61 49         call 4961              ;Displays card effect text
ROM8:4AEA CD 8D 49         call 498D		;Freezes this card
ROM8:4AED CF               rst  08
...
ROM8:4AF0 CF               rst  08
...
ROM8:4AF3 CF               rst  08
...
ROM8:4AF6 C9               ret
Harpie Lady
  • 0x20AF7-0x20B24 - Harpie Lady : +1 Level for Harpie's Pet Dragon.
ROM8:4AF7 F5               push af
ROM8:4AF8 C5               push bc
ROM8:4AF9 D5               push de
ROM8:4AFA 11 82 01         ld   de,0182		;Harpie's Pet Dragon
ROM8:4AFD 7B               ld   a,e
ROM8:4AFE EA AB C8         ld   (C8AB),a	;Monster to target = Harpie's Pet Dragon
ROM8:4B01 7A               ld   a,d
ROM8:4B02 EA AC C8         ld   (C8AC),a
ROM8:4B05 CD 61 49         call 4961              ;Displays card effect text
ROM8:4B08 CD 8D 49         call 498D		;Freezes this card
ROM8:4B0B 01 02 01         ld   bc,0102
ROM8:4B0E CF               rst  08
...
ROM8:4B11 FE 00            cp   a,00
ROM8:4B13 20 03            jr   nz,4B18
ROM8:4B15 CF               rst  08
...
ROM8:4B18 04               inc  b
ROM8:4B19 78               ld   a,b
ROM8:4B1A FE 06            cp   a,06
ROM8:4B1C 38 F0            jr   c,4B0E		;If all the Monster card zones have not been checked, loop to 8:4B0E
ROM8:4B1E CF               rst  08
...
ROM8:4B21 D1               pop  de
ROM8:4B22 C1               pop  bc
ROM8:4B23 F1               pop  af
ROM8:4B24 C9               ret  
Harpie Lady Sisters
  • 0x20B25-0x20B58 - Harpie Lady Sisters : Max Level for Harpie's Pet Dragon.
ROM8:4B25 F5               push af
ROM8:4B26 C5               push bc
ROM8:4B27 D5               push de
ROM8:4B28 11 82 01         ld   de,0182		;Harpie's Pet Dragon
ROM8:4B2B 7B               ld   a,e
ROM8:4B2C EA AB C8         ld   (C8AB),a	;Monster to target = Harpie's Pet Dragon
ROM8:4B2F 7A               ld   a,d
ROM8:4B30 EA AC C8         ld   (C8AC),a
ROM8:4B33 CD 61 49         call 4961              ;Displays card effect text
ROM8:4B36 CD 8D 49         call 498D		;Freezes this card
ROM8:4B39 01 02 01         ld   bc,0102
ROM8:4B3C CF               rst  08
...
ROM8:4B3F FE 00            cp   a,00
ROM8:4B41 20 09            jr   nz,4B4C
ROM8:4B43 CF               rst  08
...
ROM8:4B46 CF               rst  08
...
ROM8:4B49 CF               rst  08
ROM8:4B4C 04               inc  b
ROM8:4B4D 78               ld   a,b
ROM8:4B4E FE 06            cp   a,06
ROM8:4B50 38 EA            jr   c,4B3C		;If all the Monster card zones have not been checked, loop to 8:4B3C
ROM8:4B52 CF               rst  08
...
ROM8:4B55 D1               pop  de
ROM8:4B56 C1               pop  bc
ROM8:4B57 F1               pop  af
ROM8:4B58 C9               ret  
Time Wizard
  • 0x20B59-0x20B9C - Time Wizard : Transforms any Baby Dragon on the field to Thousand Dragon.
ROM8:4B59 F5               push af
ROM8:4B5A C5               push bc
ROM8:4B5B D5               push de
ROM8:4B5C 11 04 00         ld   de,0004		;Baby Dragon
ROM8:4B5F 7B               ld   a,e
ROM8:4B60 EA AB C8         ld   (C8AB),a	;Monster to target = Baby Dragon
ROM8:4B63 7A               ld   a,d
ROM8:4B64 EA AC C8         ld   (C8AC),a
ROM8:4B67 CD 61 49         call 4961              ;Displays card effect text
ROM8:4B6A CD 8D 49         call 498D		;Freezes this card
ROM8:4B6D 01 02 01         ld   bc,0102
ROM8:4B70 CF               rst  08
...
ROM8:4B73 FE 00            cp   a,00
ROM8:4B75 20 19            jr   nz,4B90		;If that's not Baby Dragon, jump to 8:4B90
ROM8:4B77 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4B7A 3E 45            ld   a,45
ROM8:4B7C EA A3 C7         ld   (C7A3),a	;Thousand Dragon
ROM8:4B7F 3E 00            ld   a,00
ROM8:4B81 EA A4 C7         ld   (C7A4),a
ROM8:4B84 CD 25 20         call 2025		;Hide Card, reset Level
ROM8:4B87 CD B4 1F         call 1FB4		;Reset Card Level
ROM8:4B8A CD C9 1F         call 1FC9		;Reveal Card
ROM8:4B8D CD FB 19         call 19FB		;Update selected card ID and status
ROM8:4B90 04               inc  b
ROM8:4B91 78               ld   a,b
ROM8:4B92 FE 06            cp   a,06
ROM8:4B94 38 DA            jr   c,4B70		;If all the Monster card zones have not been checked, loop to 8:4B70
ROM8:4B96 CF               rst  08
...
ROM8:4B99 D1               pop  de
ROM8:4B9A C1               pop  bc
ROM8:4B9B F1               pop  af
ROM8:4B9C C9               ret  
Castle of D. Magic
  • 0x20B9D-0x20BE6 - Castle of D. Magic : Changes the field to Yami, then sets Player's Monsters face down, then reveals any Castle of D. Magic on Player's field.
ROM8:4B9D CD 61 49         call 4961              ;Displays card effect text
ROM8:4BA0 CD 8D 49         call 498D		;Freezes this card
ROM8:4BA3 CF               rst  08
...
ROM8:4BA6 01 02 01         ld   bc,0102
ROM8:4BA9 78               ld   a,b
ROM8:4BAA FE 06            cp   a,06
ROM8:4BAC 30 16            jr   nc,4BC4		;If all the Monster card zones have been checked, loop to 8:4BC4
ROM8:4BAE CF               rst  08
...
ROM8:4BB1 FE 00            cp   a,00
ROM8:4BB3 20 0C            jr   nz,4BC1		;If there's no Monster in the selected card zone, jump to 8:4BC1
ROM8:4BB5 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4BB8 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:4BBB CD D4 1F         call 1FD4		;Hide Card
ROM8:4BBE CD FB 19         call 19FB		;Update selected card ID and status
ROM8:4BC1 04               inc  b
ROM8:4BC2 18 E5            jr   4BA9		;Loop to 8:4BA9
ROM8:4BC4 11 53 00         ld   de,0053		;Castle of D. Magic
ROM8:4BC7 01 02 01         ld   bc,0102
ROM8:4BCA CF               rst  08
...
ROM8:4BCD FE 00            cp   a,00
ROM8:4BCF 20 0C            jr   nz,4BDD		;If it's not Castle of D. Magic, jump to 8:4BDD
ROM8:4BD1 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4BD4 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:4BD7 CD C9 1F         call 1FC9		;Reveal Card
ROM8:4BDA CD FB 19         call 19FB		;Update selected card ID and status
ROM8:4BDD 04               inc  b
ROM8:4BDE 78               ld   a,b
ROM8:4BDF FE 06            cp   a,06
ROM8:4BE1 38 E7            jr   c,4BCA		;If all the Monster card zones have not been checked, loop to 8:4BCA
ROM8:4BE3 CF               rst  08
...
ROM8:4BE6 C9               ret
Mystical Elf
  • 0x20BE7-0x20C14 - Mystical Elf : +1 Level for Blue-Eyes White Dragon.
ROM8:4BE7 F5               push af
ROM8:4BE8 C5               push bc
ROM8:4BE9 D5               push de
ROM8:4BEA 11 01 00         ld   de,0001		;Blue-Eyes White Dragon
ROM8:4BED 7B               ld   a,e
ROM8:4BEE EA AB C8         ld   (C8AB),a	;Monster to target = Blue-Eyes White Dragon
ROM8:4BF1 7A               ld   a,d
ROM8:4BF2 EA AC C8         ld   (C8AC),a
ROM8:4BF5 CD 61 49         call 4961              ;Displays card effect text
ROM8:4BF8 CD 8D 49         call 498D		;Freezes this card
ROM8:4BFB 01 02 01         ld   bc,0102
ROM8:4BFE CF               rst  08
...
ROM8:4C01 FE 00            cp   a,00
ROM8:4C03 20 03            jr   nz,4C08
ROM8:4C05 CF               rst  08
...
ROM8:4C08 04               inc  b
ROM8:4C09 78               ld   a,b
ROM8:4C0A FE 06            cp   a,06
ROM8:4C0C 38 F0            jr   c,4BFE		;If all the Monster card zones have not been checked, loop to 8:4BFE
ROM8:4C0E CF               rst  08
...
ROM8:4C11 D1               pop  de
ROM8:4C12 C1               pop  bc
ROM8:4C13 F1               pop  af
ROM8:4C14 C9               ret  
Curse of Dragon
  • 0x20C15-0x20C21 - Curse of Dragon : Changes the field to Desert.
ROM8:4C15 CD 61 49         call 4961              ;Displays card effect text
ROM8:4C18 CD 8D 49         call 498D		;Freezes this card
ROM8:4C1B CF               rst  08
...
ROM8:4C1E CF               rst  08
...
ROM8:4C21 C9               ret  


Flame Swordsman
  • 0x20C22-0x20C47 - Flame Swordsman : Destroys every Dinosaur monsters on the field.
ROM8:4C22 F5               push af
ROM8:4C23 C5               push bc
ROM8:4C24 CD 61 49         call 4961              ;Displays card effect text
ROM8:4C27 CD 8D 49         call 498D		;Freezes this card
ROM8:4C2A 0E 01            ld   c,01
ROM8:4C2C 06 00            ld   b,00
ROM8:4C2E 78               ld   a,b
ROM8:4C2F FE 05            cp   a,05
ROM8:4C31 30 0F            jr   nc,4C42
ROM8:4C33 3E 0A            ld   a,0A		;Dinosaur (Type)
ROM8:4C35 CF               rst  08
ROM8:4C36 23 03       => Pointer 03:4023
ROM8:4C38 FE 00            cp   a,00
ROM8:4C3A 20 03            jr   nz,4C3F
ROM8:4C3C CD 86 20         call 2086		;Remove selected card from the field
ROM8:4C3F 04               inc  b
ROM8:4C40 18 EC            jr   4C2E
ROM8:4C42 CF               rst  08
ROM8:4C43 59 03       => Pointer 03:4059
ROM8:4C45 C1               pop  bc
ROM8:4C46 F1               pop  af
ROM8:4C47 C9               ret
Giant Rock Soldier
  • 0x20C48-0x20C54 - Giant Rock Soldier : Reverts the field to Arena.
ROM8:4C48 CD 61 49         call 4961              ;Displays card effect text
ROM8:4C4B CD 8D 49         call 498D		;Freezes this card
ROM8:4C4E CF               rst  08
...
ROM8:4C51 CF               rst  08
...
ROM8:4C54 C9               ret  
Battle Ox
  • 0x20C55-0x20C7A - Destroys every Pyro monsters on the field.
ROM8:4C55 F5               push af
ROM8:4C56 C5               push bc
ROM8:4C57 CD 61 49         call 4961              ;Displays card effect text
ROM8:4C5A CD 8D 49         call 498D		;Freezes this card
ROM8:4C2A 0E 01            ld   c,01
ROM8:4C5D 0E 01            ld   c,01
ROM8:4C5F 06 00            ld   b,00
ROM8:4C61 78               ld   a,b
ROM8:4C62 FE 05            cp   a,05
ROM8:4C64 30 0F            jr   nc,4C75
ROM8:4C66 3E 04            ld   a,04		;Pyro (Alignment)
ROM8:4C68 CF               rst  08
...
ROM8:4C6B FE 00            cp   a,00
ROM8:4C6D 20 03            jr   nz,4C72
ROM8:4C6F CD 86 20         call 2086		;Remove selected card from the field
ROM8:4C72 04               inc  b
ROM8:4C73 18 EC            jr   4C61
ROM8:4C75 CF               rst  08
...
ROM8:4C78 C1               pop  bc
ROM8:4C79 F1               pop  af
ROM8:4C7A C9               ret  
Monster Tamer
  • 0x20C7B-0x20CA8 - Monster Tamer : +1 Level for Dungeon Worm.
ROM8:4C7B F5               push af
ROM8:4C7C C5               push bc
ROM8:4C7D D5               push de
ROM8:4C7E 11 77 01         ld   de,0177		;Dungeon Worm
ROM8:4C81 7B               ld   a,e
ROM8:4C82 EA AB C8         ld   (C8AB),a	;Monster to target = Dungeon Worm
ROM8:4C85 7A               ld   a,d
ROM8:4C86 EA AC C8         ld   (C8AC),a
ROM8:4C89 CD 61 49         call 4961              ;Displays card effect text
ROM8:4C8C CD 8D 49         call 498D		;Freezes this card
ROM8:4C8F 01 02 01         ld   bc,0102
ROM8:4C92 CF               rst  08
...
ROM8:4C95 FE 00            cp   a,00
ROM8:4C97 20 03            jr   nz,4C9C
ROM8:4C99 CF               rst  08
...
ROM8:4C9C 04               inc  b
ROM8:4C9D 78               ld   a,b
ROM8:4C9E FE 06            cp   a,06
ROM8:4CA0 38 F0            jr   c,4C92
ROM8:4CA2 CF               rst  08
...
ROM8:4CA5 D1               pop  de
ROM8:4CA6 C1               pop  bc
ROM8:4CA7 F1               pop  af
ROM8:4CA8 C9               ret  
Pumpking the King
  • 0x20CA9-0x20CE8 - Pumpking the King : +1 Level for Armored Zombie, Dragon Zombie, and Clown Zombie.
ROM8:4CA9 F5               push af
ROM8:4CAA C5               push bc
ROM8:4CAB D5               push de
ROM8:4CAC CD 61 49         call 4961              ;Displays card effect text
ROM8:4CAF CD 8D 49         call 498D		;Freezes this card
ROM8:4CB2 01 02 01         ld   bc,0102
ROM8:4CB5 11 60 00         ld   de,0060		;Armored Zombie
ROM8:4CB8 CF               rst  08
...
ROM8:4CBB FE 00            cp   a,00
ROM8:4CBD 20 03            jr   nz,4CC2
ROM8:4CBF CF               rst  08
ROM8:4CC2 11 61 00         ld   de,0061		;Dragon Zombie
ROM8:4CC5 CF               rst  08
...
ROM8:4CC8 FE 00            cp   a,00
ROM8:4CCA 20 03            jr   nz,4CCF
ROM8:4CCC CF               rst  08
ROM8:4CCF 11 62 00         ld   de,0062		;Clown Zombie
ROM8:4CD2 CF               rst  08
...
ROM8:4CD5 FE 00            cp   a,00
ROM8:4CD7 20 03            jr   nz,4CDC
ROM8:4CD9 CF               rst  08
...
ROM8:4CDC 04               inc  b
ROM8:4CDD 78               ld   a,b
ROM8:4CDE FE 06            cp   a,06
ROM8:4CE0 38 D3            jr   c,4CB5
ROM8:4CE2 CF               rst  08
...
ROM8:4CE5 D1               pop  de
ROM8:4CE6 C1               pop  bc
ROM8:4CE7 F1               pop  af
ROM8:4CE8 C9               ret
Mammoth Graveyard
ROM8:4CE9 F5               push af
ROM8:4CEA C5               push bc
ROM8:4CEB CD 61 49         call 4961              ;Displays card effect text
ROM8:4CEE CD 8D 49         call 498D		;Freezes this card
ROM8:4CF1 0E 01            ld   c,01
ROM8:4CF3 06 00            ld   b,00
ROM8:4CF5 78               ld   a,b
ROM8:4CF6 FE 05            cp   a,05
ROM8:4CF8 30 10            jr   nc,4D0A
ROM8:4CFA CF               rst  08
...
ROM8:4CFC FE 00            cp   a,00
ROM8:4CFF 20 06            jr   nz,4D07
ROM8:4D01 CD 92 1F         call 1F92
ROM8:4D04 CD FB 19         call 19FB
ROM8:4D07 04               inc  b
ROM8:4D08 18 EB            jr   4CF5
ROM8:4D0A CF               rst  08
...
ROM8:4D0D C1               pop  bc
ROM8:4D0E F1               pop  af
ROM8:4D0F C9               ret  
Catapult Turtle
ROM8:4D10 F5               push af
ROM8:4D11 C5               push bc
ROM8:4D12 D5               push de
ROM8:4D13 CD 61 49         call 4961              ;Displays card effect text
ROM8:4D16 CD 8D 49         call 498D		;Freezes this card
ROM8:4D19 11 00 00         ld   de,0000
ROM8:4D1C 01 02 01         ld   bc,0102
ROM8:4D1F 78               ld   a,b
ROM8:4D20 FE 06            cp   a,06
ROM8:4D22 30 32            jr   nc,4D56
ROM8:4D24 FA DA CA         ld   a,(CADA)
ROM8:4D27 B8               cp   b
ROM8:4D28 28 29            jr   z,4D53
ROM8:4D2A CF               rst  08
...
ROM8:4D2D FE 00            cp   a,00
ROM8:4D2F 20 22            jr   nz,4D53
ROM8:4D31 CD 4F 20         call 204F		;Retrieve Card Frozen status
ROM8:4D34 FE 00            cp   a,00
ROM8:4D36 20 1B            jr   nz,4D53
ROM8:4D38 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:4D3B CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:4D3E CF               rst  08
...
ROM8:4D41 CD E6 19         call 19E6		;Remove selected card from the field
ROM8:4D44 C5               push bc
ROM8:4D45 FA B7 C6         ld   a,(C6B7)	;Current card ATK
ROM8:4D48 4F               ld   c,a
ROM8:4D49 FA B8 C6         ld   a,(C6B8)
ROM8:4D4C 47               ld   b,a
ROM8:4D4D CD 82 14         call 1482		;daa addtion
ROM8:4D50 50               ld   d,b
ROM8:4D51 59               ld   e,c
ROM8:4D52 C1               pop  bc
ROM8:4D53 04               inc  b
ROM8:4D54 18 C9            jr   4D1F
ROM8:4D56 42               ld   b,d
ROM8:4D57 4B               ld   c,e
ROM8:4D58 CF               rst  08
...
ROM8:4D5B CF               rst  08
ROM8:4D5C 59               ld   e,c
ROM8:4D5D 03               inc  bc
ROM8:4D5E D1               pop  de
ROM8:4D5F C1               pop  bc
ROM8:4D60 F1               pop  af
ROM8:4D61 C9               ret
Goddess of Whim
ROM8:4D62 F5               push af
ROM8:4D63 C5               push bc
ROM8:4D64 CD 61 49         call 4961              ;Displays card effect text
ROM8:4D67 CD 8D 49         call 498D		;Freezes this card
ROM8:4D6A CF               rst  08
ROM8:4D6B 73               ld   (hl),e
ROM8:4D6C 03               inc  bc
ROM8:4D6D CF               rst  08
ROM8:4D6E 63               ld   h,e
ROM8:4D6F 03               inc  bc
ROM8:4D70 FA DA CA         ld   a,(CADA)
ROM8:4D73 47               ld   b,a
ROM8:4D74 FA DB CA         ld   a,(CADB)
ROM8:4D77 4F               ld   c,a
ROM8:4D78 CD D0 19         call 19D0
ROM8:4D7B CD 13 1A         call 1A13
ROM8:4D7E CD E6 19         call 19E6
ROM8:4D81 CF               rst  08
ROM8:4D82 59               ld   e,c
ROM8:4D83 03               inc  bc
ROM8:4D84 C1               pop  bc
ROM8:4D85 F1               pop  af
ROM8:4D86 C9               ret  
Spirit of the Mountain
ROM8:4D87 CD 61 49         call 4961              ;Displays card effect text
ROM8:4D8A CD 8D 49         call 498D		;Freezes this card
ROM8:4D8D CF               rst  08
ROM8:4D8E 8B               adc  e
ROM8:4D8F 03               inc  bc
ROM8:4D90 CF               rst  08
ROM8:4D91 59               ld   e,c
ROM8:4D92 03               inc  bc
ROM8:4D93 C9               ret  
Dragon Seeker
ROM8:4D94 F5               push af
ROM8:4D95 C5               push bc
ROM8:4D96 CD 61 49         call 4961              ;Displays card effect text
ROM8:4D99 CD 8D 49         call 498D		;Freezes this card
ROM8:4D9C 0E 01            ld   c,01
ROM8:4D9E 06 00            ld   b,00
ROM8:4DA0 78               ld   a,b
ROM8:4DA1 FE 05            cp   a,05
ROM8:4DA3 30 0F            jr   nc,4DB4
ROM8:4DA5 3E 00            ld   a,00
ROM8:4DA7 CF               rst  08
ROM8:4DA8 23               inc  hl
ROM8:4DA9 03               inc  bc
ROM8:4DAA FE 00            cp   a,00
ROM8:4DAC 20 03            jr   nz,4DB1
ROM8:4DAE CD 86 20         call 2086
ROM8:4DB1 04               inc  b
ROM8:4DB2 18 EC            jr   4DA0
ROM8:4DB4 CF               rst  08
ROM8:4DB5 59               ld   e,c
ROM8:4DB6 03               inc  bc
ROM8:4DB7 C1               pop  bc
ROM8:4DB8 F1               pop  af
ROM8:4DB9 C9               ret  
Trap Master
ROM8:4DBA F5               push af
ROM8:4DBB C5               push bc
ROM8:4DBC D5               push de
ROM8:4DBD 11 AD 02         ld   de,02AD
ROM8:4DC0 7B               ld   a,e
ROM8:4DC1 EA AB C8         ld   (C8AB),a
ROM8:4DC4 7A               ld   a,d
ROM8:4DC5 EA AC C8         ld   (C8AC),a
ROM8:4DC8 CD 61 49         call 4961              ;Displays card effect text
ROM8:4DCB CD 8D 49         call 498D		;Freezes this card
ROM8:4DCE 01 03 00         ld   bc,0003
ROM8:4DD1 CD D0 19         call 19D0
ROM8:4DD4 7B               ld   a,e
ROM8:4DD5 EA A3 C7         ld   (C7A3),a
ROM8:4DD8 7A               ld   a,d
ROM8:4DD9 EA A4 C7         ld   (C7A4),a
ROM8:4DDC CD D4 1F         call 1FD4
ROM8:4DDF CD B4 1F         call 1FB4
ROM8:4DE2 CD FB 19         call 19FB
ROM8:4DE5 CF               rst  08
ROM8:4DE6 59               ld   e,c
ROM8:4DE7 03               inc  bc
ROM8:4DE8 D1               pop  de
ROM8:4DE9 C1               pop  bc
ROM8:4DEA F1               pop  af
ROM8:4DEB C9               ret  
Fiend's Hand
ROM8:4DEC F5               push af
ROM8:4DED C5               push bc
ROM8:4DEE CD 61 49         call 4961              ;Displays card effect text
ROM8:4DF1 CD 8D 49         call 498D		;Freezes this card
ROM8:4DF4 CF               rst  08
ROM8:4DF5 17               rla  
ROM8:4DF6 03               inc  bc
ROM8:4DF7 FE 00            cp   a,00
ROM8:4DF9 20 0B            jr   nz,4E06
ROM8:4DFB 0E 01            ld   c,01
ROM8:4DFD CD D0 19         call 19D0
ROM8:4E00 CD 13 1A         call 1A13
ROM8:4E03 CD E6 19         call 19E6
ROM8:4E06 FA DA CA         ld   a,(CADA)
ROM8:4E09 47               ld   b,a
ROM8:4E0A FA DB CA         ld   a,(CADB)
ROM8:4E0D 4F               ld   c,a
ROM8:4E0E CD D0 19         call 19D0
ROM8:4E11 CD 13 1A         call 1A13
ROM8:4E14 CD E6 19         call 19E6
ROM8:4E17 CF               rst  08
ROM8:4E18 59               ld   e,c
ROM8:4E19 03               inc  bc
ROM8:4E1A C1               pop  bc
ROM8:4E1B F1               pop  af
ROM8:4E1C C9               ret  
Faceless Mage
ROM8:4E1D F5               push af
ROM8:4E1E C5               push bc
ROM8:4E1F CD 61 49         call 4961              ;Displays card effect text
ROM8:4E22 CD 8D 49         call 498D		;Freezes this card
ROM8:4E25 0E 01            ld   c,01
ROM8:4E27 06 00            ld   b,00
ROM8:4E29 78               ld   a,b
ROM8:4E2A FE 05            cp   a,05
ROM8:4E2C 30 16            jr   nc,4E44
ROM8:4E2E CF               rst  08
ROM8:4E2F 11 03 FE         ld   de,FE03
ROM8:4E32 00               nop  
ROM8:4E33 20 0C            jr   nz,4E41
ROM8:4E35 CD D0 19         call 19D0
ROM8:4E38 CD 13 1A         call 1A13
ROM8:4E3B CD DF 1F         call 1FDF
ROM8:4E3E CD FB 19         call 19FB
ROM8:4E41 04               inc  b
ROM8:4E42 18 E5            jr   4E29
ROM8:4E44 CF               rst  08
...
ROM8:4E47 C1               pop  bc
ROM8:4E48 F1               pop  af
ROM8:4E49 C9               ret  
Electric Lizard
ROM8:4E4A F5               push af
ROM8:4E4B C5               push bc
ROM8:4E4C CD 61 49         call 4961              ;Displays card effect text
ROM8:4E4F CD 8D 49         call 498D		;Freezes this card
ROM8:4E52 CF               rst  08
...
ROM8:4E55 FE 00            cp   a,00
ROM8:4E57 20 0E            jr   nz,4E67
ROM8:4E59 0E 01            ld   c,01
ROM8:4E5B CD D0 19         call 19D0
ROM8:4E5E CD 13 1A         call 1A13
ROM8:4E61 CD DF 1F         call 1FDF
ROM8:4E64 CD FB 19         call 19FB
ROM8:4E67 CF               rst  08
...
ROM8:4E6A C1               pop  bc
ROM8:4E6B F1               pop  af
ROM8:4E6C C9               ret  
D. Magician Girl
ROM8:4E6D F5               push af
ROM8:4E6E C5               push bc
ROM8:4E6F D5               push de
ROM8:4E70 11 23 00         ld   de,0023
ROM8:4E73 7B               ld   a,e
ROM8:4E74 EA AB C8         ld   (C8AB),a
ROM8:4E77 7A               ld   a,d
ROM8:4E78 EA AC C8         ld   (C8AC),a
ROM8:4E7B CD 61 49         call 4961              ;Displays card effect text
ROM8:4E7E CD 8D 49         call 498D		;Freezes this card
ROM8:4E81 01 03 01         ld   bc,0103
ROM8:4E84 CF               rst  08
...
ROM8:4E87 FE 00            cp   a,00
ROM8:4E89 20 0D            jr   nz,4E98
ROM8:4E8B C5               push bc
ROM8:4E8C FA DA CA         ld   a,(CADA)
ROM8:4E8F 47               ld   b,a
ROM8:4E90 FA DB CA         ld   a,(CADB)
ROM8:4E93 4F               ld   c,a
ROM8:4E94 CF               rst  08
ROM8:4E95 21 03 C1         ld   hl,C103
ROM8:4E98 04               inc  b
ROM8:4E99 78               ld   a,b
ROM8:4E9A FE 06            cp   a,06
ROM8:4E9C 38 E6            jr   c,4E84
ROM8:4E9E CF               rst  08
ROM8:4E9F 59               ld   e,c
ROM8:4EA0 03               inc  bc
ROM8:4EA1 D1               pop  de
ROM8:4EA2 C1               pop  bc
ROM8:4EA3 F1               pop  af
ROM8:4EA4 C9               ret  
Wodan the Resident of the Forest
ROM8:4EA5 F5               push af
ROM8:4EA6 C5               push bc
ROM8:4EA7 CD 61 49         call 4961              ;Displays card effect text
ROM8:4EAA CD 8D 49         call 498D		;Freezes this card
ROM8:4EAD 01 02 01         ld   bc,0102
ROM8:4EB0 3E 13            ld   a,13
ROM8:4EB2 CF               rst  08
...
ROM8:4EB5 FE 00            cp   a,00
ROM8:4EB7 20 0D            jr   nz,4EC6
ROM8:4EB9 C5               push bc
ROM8:4EBA FA DA CA         ld   a,(CADA)
ROM8:4EBD 47               ld   b,a
ROM8:4EBE FA DB CA         ld   a,(CADB)
ROM8:4EC1 4F               ld   c,a
ROM8:4EC2 CF               rst  08
ROM8:4EC3 21 03 C1         ld   hl,C103
ROM8:4EC6 04               inc  b
ROM8:4EC7 78               ld   a,b
ROM8:4EC8 FE 06            cp   a,06
ROM8:4ECA 38 E4            jr   c,4EB0
ROM8:4ECC CF               rst  08
ROM8:4ECD 59               ld   e,c
ROM8:4ECE 03               inc  bc
ROM8:4ECF C1               pop  bc
ROM8:4ED0 F1               pop  af
ROM8:4ED1 C9               ret  
M-warrior #1
ROM8:4ED2 F5               push af
ROM8:4ED3 C5               push bc
ROM8:4ED4 D5               push de
ROM8:4ED5 11 A1 00         ld   de,00A1
ROM8:4ED8 7B               ld   a,e
ROM8:4ED9 EA AB C8         ld   (C8AB),a
ROM8:4EDC 7A               ld   a,d
ROM8:4EDD EA AC C8         ld   (C8AC),a
ROM8:4EE0 CD 61 49         call 4961              ;Displays card effect text
ROM8:4EE3 CD 8D 49         call 498D		;Freezes this card
ROM8:4EE6 01 02 01         ld   bc,0102
ROM8:4EE9 CF               rst  08
ROM8:4EEA 1F               rra  
ROM8:4EEB 03               inc  bc
ROM8:4EEC FE 00            cp   a,00
ROM8:4EEE 20 03            jr   nz,4EF3
ROM8:4EF0 CF               rst  08
ROM8:4EF1 21 03 04         ld   hl,0403
ROM8:4EF4 78               ld   a,b
ROM8:4EF5 FE 06            cp   a,06
ROM8:4EF7 38 F0            jr   c,4EE9
ROM8:4EF9 CF               rst  08
ROM8:4EFA 59               ld   e,c
ROM8:4EFB 03               inc  bc
ROM8:4EFC D1               pop  de
ROM8:4EFD C1               pop  bc
ROM8:4EFE F1               pop  af
ROM8:4EFF C9               ret  
M-warrior #2
ROM8:4F00 F5               push af
ROM8:4F01 C5               push bc
ROM8:4F02 D5               push de
ROM8:4F03 11 A0 00         ld   de,00A0
ROM8:4F06 7B               ld   a,e
ROM8:4F07 EA AB C8         ld   (C8AB),a
ROM8:4F0A 7A               ld   a,d
ROM8:4F0B EA AC C8         ld   (C8AC),a
ROM8:4F0E CD 61 49         call 4961              ;Displays card effect text
ROM8:4F11 CD 8D 49         call 498D		;Freezes this card
ROM8:4F14 01 02 01         ld   bc,0102
ROM8:4F17 CF               rst  08
ROM8:4F18 1F               rra  
ROM8:4F19 03               inc  bc
ROM8:4F1A FE 00            cp   a,00
ROM8:4F1C 20 03            jr   nz,4F21
ROM8:4F1E CF               rst  08
ROM8:4F1F 21 03 04         ld   hl,0403
ROM8:4F22 78               ld   a,b
ROM8:4F23 FE 06            cp   a,06
ROM8:4F25 38 F0            jr   c,4F17
ROM8:4F27 CF               rst  08
ROM8:4F28 59               ld   e,c
ROM8:4F29 03               inc  bc
ROM8:4F2A D1               pop  de
ROM8:4F2B C1               pop  bc
ROM8:4F2C F1               pop  af
ROM8:4F2D C9               ret  
Red Archery Girl
ROM8:4F2E F5               push af
ROM8:4F2F C5               push bc
ROM8:4F30 D5               push de
ROM8:4F31 CD 61 49         call 4961              ;Displays card effect text
ROM8:4F34 CD 8D 49         call 498D		;Freezes this card
ROM8:4F37 CF               rst  08
ROM8:4F38 17               rla  
ROM8:4F39 03               inc  bc
ROM8:4F3A FE 00            cp   a,00
ROM8:4F3C 20 11            jr   nz,4F4F
ROM8:4F3E 0E 01            ld   c,01
ROM8:4F40 CD D0 19         call 19D0
ROM8:4F43 CD 13 1A         call 1A13
ROM8:4F46 CD 92 1F         call 1F92
ROM8:4F49 CD DF 1F         call 1FDF
ROM8:4F4C CD FB 19         call 19FB
ROM8:4F4F CF               rst  08
ROM8:4F50 59               ld   e,c
ROM8:4F51 03               inc  bc
ROM8:4F52 D1               pop  de
ROM8:4F53 C1               pop  bc
ROM8:4F54 F1               pop  af
ROM8:4F55 C9               ret  
Lady of Faith
ROM8:4F56 F5               push af
ROM8:4F57 C5               push bc
ROM8:4F58 CD 61 49         call 4961              ;Displays card effect text
ROM8:4F5B CD 8D 49         call 498D		;Freezes this card
ROM8:4F5E 01 00 05         ld   bc,0500
ROM8:4F61 CF               rst  08
ROM8:4F62 43               ld   b,e
ROM8:4F63 03               inc  bc
ROM8:4F64 CF               rst  08
ROM8:4F65 59               ld   e,c
ROM8:4F66 03               inc  bc
ROM8:4F67 C1               pop  bc
ROM8:4F68 F1               pop  af
ROM8:4F69 C9               ret  
Fire Reaper
ROM8:4F6A F5               push af
ROM8:4F6B C5               push bc
ROM8:4F6C CD 61 49         call 4961              ;Displays card effect text
ROM8:4F6F CD 8D 49         call 498D		;Freezes this card
ROM8:4F72 01 50 00         ld   bc,0050
ROM8:4F75 CF               rst  08
ROM8:4F76 49               ld   c,c
ROM8:4F77 03               inc  bc
ROM8:4F78 CF               rst  08
ROM8:4F79 59               ld   e,c
ROM8:4F7A 03               inc  bc
ROM8:4F7B C1               pop  bc
ROM8:4F7C F1               pop  af
ROM8:4F7D C9               ret  
Kairyu-shin
ROM8:4F7E CD 61 49         call 4961              ;Displays card effect text
ROM8:4F81 CD 8D 49         call 498D		;Freezes this card
ROM8:4F84 CF               rst  08
ROM8:4F85 8D               adc  l
ROM8:4F86 03               inc  bc
ROM8:4F87 CF               rst  08
ROM8:4F88 59               ld   e,c
ROM8:4F89 03               inc  bc
ROM8:4F8A C9               ret  
Gyakutenno Megami
ROM8:4F8B F5               push af
ROM8:4F8C C5               push bc
ROM8:4F8D D5               push de
ROM8:4F8E CD 61 49         call 4961              ;Displays card effect text
ROM8:4F91 CD 8D 49         call 498D		;Freezes this card
ROM8:4F94 01 02 01         ld   bc,0102
ROM8:4F97 CF               rst  08
ROM8:4F98 11 03 FE         ld   de,FE03
ROM8:4F9B 00               nop  
ROM8:4F9C 20 1A            jr   nz,4FB8
ROM8:4F9E CF               rst  08
ROM8:4F9F 0B               dec  bc
ROM8:4FA0 07               rlca 
ROM8:4FA1 C5               push bc
ROM8:4FA2 FA B7 C6         ld   a,(C6B7)
ROM8:4FA5 4F               ld   c,a
ROM8:4FA6 FA B8 C6         ld   a,(C6B8)
ROM8:4FA9 47               ld   b,a		;bc = ATK
ROM8:4FAA 11 00 05         ld   de,0500
ROM8:4FAD CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM8:4FB0 C1               pop  bc
ROM8:4FB1 FE 00            cp   a,00
ROM8:4FB3 28 03            jr   z,4FB8
ROM8:4FB5 CF               rst  08
ROM8:4FB6 21 03 04         ld   hl,0403
ROM8:4FB9 78               ld   a,b
ROM8:4FBA FE 06            cp   a,06
ROM8:4FBC 38 D9            jr   c,4F97
ROM8:4FBE CF               rst  08
ROM8:4FBF 59               ld   e,c
ROM8:4FC0 03               inc  bc
ROM8:4FC1 D1               pop  de
ROM8:4FC2 C1               pop  bc
ROM8:4FC3 F1               pop  af
ROM8:4FC4 C9               ret
Monster Eye
ROM8:4FC5 F5               push af
ROM8:4FC6 C5               push bc
ROM8:4FC7 D5               push de
ROM8:4FC8 CD 61 49         call 4961              ;Displays card effect text
ROM8:4FCB CD 8D 49         call 498D		;Freezes this card
ROM8:4FCE 01 00 00         ld   bc,0000
ROM8:4FD1 CD D0 19         call 19D0
ROM8:4FD4 CD 13 1A         call 1A13
ROM8:4FD7 CF               rst  08
ROM8:4FD8 2F               cpl  
ROM8:4FD9 03               inc  bc
ROM8:4FDA CD FB 19         call 19FB
ROM8:4FDD 04               inc  b
ROM8:4FDE 78               ld   a,b
ROM8:4FDF FE 05            cp   a,05
ROM8:4FE1 38 EE            jr   c,4FD1
ROM8:4FE3 CF               rst  08
ROM8:4FE4 59               ld   e,c
ROM8:4FE5 03               inc  bc
ROM8:4FE6 D1               pop  de
ROM8:4FE7 C1               pop  bc
ROM8:4FE8 F1               pop  af
ROM8:4FE9 C9               ret  
Doron
ROM8:4FEA F5               push af
ROM8:4FEB C5               push bc
ROM8:4FEC D5               push de
ROM8:4FED CD 61 49         call 4961              ;Displays card effect text
ROM8:4FF0 CD 8D 49         call 498D		;Freezes this card
ROM8:4FF3 01 02 01         ld   bc,0102
ROM8:4FF6 CF               rst  08
ROM8:4FF7 11 03 FE         ld   de,FE03
ROM8:4FFA 01 28 06         ld   bc,0628
ROM8:4FFD 04               inc  b
ROM8:4FFE 78               ld   a,b
ROM8:4FFF FE 06            cp   a,06
ROM8:5001 38 F3            jr   c,4FF6
ROM8:5003 78               ld   a,b
ROM8:5004 FE 06            cp   a,06
ROM8:5006 28 16            jr   z,501E
ROM8:5008 C5               push bc
ROM8:5009 FA DA CA         ld   a,(CADA)
ROM8:500C 47               ld   b,a
ROM8:500D FA DB CA         ld   a,(CADB)
ROM8:5010 4F               ld   c,a
ROM8:5011 CD D0 19         call 19D0
ROM8:5014 CD 13 1A         call 1A13
ROM8:5017 C1               pop  bc
ROM8:5018 CD D0 19         call 19D0
ROM8:501B CD FB 19         call 19FB
ROM8:501E CF               rst  08
ROM8:501F 59               ld   e,c
ROM8:5020 03               inc  bc
ROM8:5021 D1               pop  de
ROM8:5022 C1               pop  bc
ROM8:5023 F1               pop  af
ROM8:5024 C9               ret  
Swamp Battleguard
ROM8:5025 F5               push af
ROM8:5026 C5               push bc
ROM8:5027 D5               push de
ROM8:5028 11 2A 02         ld   de,022A
ROM8:502B 7B               ld   a,e
ROM8:502C EA AB C8         ld   (C8AB),a
ROM8:502F 7A               ld   a,d
ROM8:5030 EA AC C8         ld   (C8AC),a
ROM8:5033 CD 61 49         call 4961              ;Displays card effect text
ROM8:5036 CD 8D 49         call 498D		;Freezes this card
ROM8:5039 01 02 01         ld   bc,0102
ROM8:503C CF               rst  08
ROM8:503D 1F               rra  
ROM8:503E 03               inc  bc
ROM8:503F FE 00            cp   a,00
ROM8:5041 20 03            jr   nz,5046
ROM8:5043 CF               rst  08
ROM8:5044 21 03 04         ld   hl,0403
ROM8:5047 78               ld   a,b
ROM8:5048 FE 06            cp   a,06
ROM8:504A 38 F0            jr   c,503C
ROM8:504C CF               rst  08
ROM8:504D 59               ld   e,c
ROM8:504E 03               inc  bc
ROM8:504F D1               pop  de
ROM8:5050 C1               pop  bc
ROM8:5051 F1               pop  af
ROM8:5052 C9               ret  
Lava Battleguard
ROM8:5053 F5               push af
ROM8:5054 C5               push bc
ROM8:5055 D5               push de
ROM8:5056 11 0C 00         ld   de,000C
ROM8:5059 7B               ld   a,e
ROM8:505A EA AB C8         ld   (C8AB),a
ROM8:505D 7A               ld   a,d
ROM8:505E EA AC C8         ld   (C8AC),a
ROM8:5061 CD 61 49         call 4961              ;Displays card effect text
ROM8:5064 CD 8D 49         call 498D		;Freezes this card
ROM8:5067 01 02 01         ld   bc,0102
ROM8:506A CF               rst  08
ROM8:506B 1F               rra  
ROM8:506C 03               inc  bc
ROM8:506D FE 00            cp   a,00
ROM8:506F 20 03            jr   nz,5074
ROM8:5071 CF               rst  08
ROM8:5072 21 03 04         ld   hl,0403
ROM8:5075 78               ld   a,b
ROM8:5076 FE 06            cp   a,06
ROM8:5078 38 F0            jr   c,506A
ROM8:507A CF               rst  08
ROM8:507B 59               ld   e,c
ROM8:507C 03               inc  bc
ROM8:507D D1               pop  de
ROM8:507E C1               pop  bc
ROM8:507F F1               pop  af
ROM8:5080 C9               ret  
Trent
ROM8:5081 CD 61 49         call 4961              ;Displays card effect text
ROM8:5084 CD 8D 49         call 498D		;Freezes this card
ROM8:5087 CF               rst  08
ROM8:5088 8F               adc  a
ROM8:5089 03               inc  bc
ROM8:508A CF               rst  08
ROM8:508B 59               ld   e,c
ROM8:508C 03               inc  bc
ROM8:508D C9               ret  
Labyrinth Tank
ROM8:508E F5               push af
ROM8:508F C5               push bc
ROM8:5090 D5               push de
ROM8:5091 11 6E 01         ld   de,016E
ROM8:5094 7B               ld   a,e
ROM8:5095 EA AB C8         ld   (C8AB),a
ROM8:5098 7A               ld   a,d
ROM8:5099 EA AC C8         ld   (C8AC),a
ROM8:509C CD 61 49         call 4961              ;Displays card effect text
ROM8:509F CD 8D 49         call 498D		;Freezes this card
ROM8:50A2 01 02 01         ld   bc,0102
ROM8:50A5 CF               rst  08
ROM8:50A6 1F               rra  
ROM8:50A7 03               inc  bc
ROM8:50A8 FE 00            cp   a,00
ROM8:50AA 20 0D            jr   nz,50B9
ROM8:50AC C5               push bc
ROM8:50AD FA DA CA         ld   a,(CADA)
ROM8:50B0 47               ld   b,a
ROM8:50B1 FA DB CA         ld   a,(CADB)
ROM8:50B4 4F               ld   c,a
ROM8:50B5 CF               rst  08
ROM8:50B6 21 03 C1         ld   hl,C103
ROM8:50B9 04               inc  b
ROM8:50BA 78               ld   a,b
ROM8:50BB FE 06            cp   a,06
ROM8:50BD 38 E6            jr   c,50A5
ROM8:50BF CF               rst  08
ROM8:50C0 59               ld   e,c
ROM8:50C1 03               inc  bc
ROM8:50C2 D1               pop  de
ROM8:50C3 C1               pop  bc
ROM8:50C4 F1               pop  af
ROM8:50C5 C9               ret  
Spirit of the Book
  • 0x210C6-0x2110F - Spirit of the Book : Summons a Boo Koo on the field, and freezes it.
ROM8:50C6 F5               push af
ROM8:50C7 C5               push bc
ROM8:50C8 D5               push de
ROM8:50C9 11 E6 01         ld   de,01E6		;Boo Koo
ROM8:50CC 7B               ld   a,e
ROM8:50CD EA AB C8         ld   (C8AB),a	;Monster to Special Summon = Boo Koo
ROM8:50D0 7A               ld   a,d
ROM8:50D1 EA AC C8         ld   (C8AC),a
ROM8:50D4 CD 61 49         call 4961              ;Displays card effect text
ROM8:50D7 CD 8D 49         call 498D		;Freezes this card
ROM8:50DA 01 02 01         ld   bc,0102
ROM8:50DD CF               rst  08
...
ROM8:50E0 FE 01            cp   a,01
ROM8:50E2 28 06            jr   z,50EA		;If the selected card zone is free, jump to 8:50EA
ROM8:50E4 04               inc  b
ROM8:50E5 78               ld   a,b
ROM8:50E6 FE 06            cp   a,06
ROM8:50E8 38 F3            jr   c,50DD		;If all the Monster card zones have not been checked, loop to 8:50DD
ROM8:50EA 78               ld   a,b
ROM8:50EB FE 06            cp   a,06
ROM8:50ED 28 1A            jr   z,5109
ROM8:50EF CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:50F2 7B               ld   a,e
ROM8:50F3 EA A3 C7         ld   (C7A3),a	;Card being processed
ROM8:50F6 7A               ld   a,d
ROM8:50F7 EA A4 C7         ld   (C7A4),a
ROM8:50FA CD 25 20         call 2025		;Hide Card, reset Level
ROM8:50FD CD B4 1F         call 1FB4		;Reset Card Level
ROM8:5100 CD C9 1F         call 1FC9		;Reveal Card
ROM8:5103 CD DF 1F         call 1FDF		;Freezes Card
ROM8:5106 CD FB 19         call 19FB		;Update selected card ID and status
ROM8:5109 CF               rst  08
...
ROM8:510C D1               pop  de
ROM8:510D C1               pop  bc
ROM8:510E F1               pop  af
ROM8:510F C9               ret
Hourglass of Life
  • 0x21110-0x21138 - Hourglass of Life : Pay 1000 LP to increase own Monsters by 1 Level (+500 ATK).
ROM8:5110 F5               push af
ROM8:5111 C5               push bc
ROM8:5112 D5               push de
ROM8:5113 CD 61 49         call 4961              ;Displays card effect text
ROM8:5116 CD 8D 49         call 498D		;Freezes this card
ROM8:5119 01 02 01         ld   bc,0102		;Column 1, Row 2
ROM8:511C CF               rst  08
...
ROM8:511F FE 00            cp   a,00
ROM8:5121 20 03            jr   nz,5126
ROM8:5123 CF               rst  08
...
ROM8:5126 04               inc  b
ROM8:5127 78               ld   a,b
ROM8:5128 FE 06            cp   a,06
ROM8:512A 38 F0            jr   c,511C		;Loop to 8:511C until every Monster card zone has been checked
ROM8:512C 01 00 10         ld   bc,1000		;Cost 1000 LP
ROM8:512F CF               rst  08
...
ROM8:5132 CF               rst  08
...
ROM8:5135 D1               pop  de
ROM8:5136 C1               pop  bc
ROM8:5137 F1               pop  af
ROM8:5138 C9               ret  
Beastking of the Swamp
  • 0x21139-0x21162 - Beastking of the Swamp : Destroys every Monster on the field.
ROM8:5139 F5               push af
ROM8:513A C5               push bc
ROM8:513B CD 61 49         call 4961              ;Displays card effect text
ROM8:513E CD 8D 49         call 498D		;Freezes this card
ROM8:5141 01 01 00         ld   bc,0001
ROM8:5144 78               ld   a,b
ROM8:5145 FE 05            cp   a,05
ROM8:5147 30 06            jr   nc,514F
ROM8:5149 CD 86 20         call 2086		;Remove selected card from the field
ROM8:514C 04               inc  b
ROM8:514D 18 F5            jr   5144
ROM8:514F 01 02 01         ld   bc,0102
ROM8:5152 78               ld   a,b
ROM8:5153 FE 06            cp   a,06
ROM8:5155 30 06            jr   nc,515D
ROM8:5157 CD 6D 20         call 206D		;Remove selected card from the field, and copies it to to (CAD6)
ROM8:515A 04               inc  b
ROM8:515B 18 F5            jr   5152
ROM8:515D CF               rst  08
ROM8:515E 59               ld   e,c
ROM8:515F 03               inc  bc
ROM8:5160 C1               pop  bc
ROM8:5161 F1               pop  af
ROM8:5162 C9               ret  
Nemuriko
  • 0x21139-0x21162 - Nemuriko : Freezes every monster on the field.
ROM8:5163 F5               push af
ROM8:5164 C5               push bc
ROM8:5165 CD 61 49         call 4961              ;Displays card effect text
ROM8:5168 CD 8D 49         call 498D		;Freezes this card
ROM8:516B 01 01 00         ld   bc,0001
ROM8:516E 78               ld   a,b
ROM8:516F FE 05            cp   a,05
ROM8:5171 30 0F            jr   nc,5182
ROM8:5173 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:5176 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:5179 CD DF 1F         call 1FDF		;Freezes Card
ROM8:517C CD FB 19         call 19FB		;Update selected card ID and status
ROM8:517F 04               inc  b
ROM8:5180 18 EC            jr   516E
ROM8:5182 01 02 01         ld   bc,0102
ROM8:5185 78               ld   a,b
ROM8:5186 FE 06            cp   a,06
ROM8:5188 30 0F            jr   nc,5199
ROM8:518A CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:518D CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROM8:5190 CD DF 1F         call 1FDF		;Freezes Card
ROM8:5193 CD FB 19         call 19FB		;Update selected card ID and status
ROM8:5196 04               inc  b
ROM8:5197 18 EC            jr   5185
ROM8:5199 CF               rst  08
ROM8:519A 59               ld   e,c
ROM8:519B 03               inc  bc
ROM8:519C C1               pop  bc
ROM8:519D F1               pop  af
ROM8:519E C9               ret
Toad Master
  • 0x210C6-0x2110F - Toad Master : Summons a Frog the Jam on the field, and freezes it.
ROM8:519F F5               push af
ROM8:51A0 C5               push bc
ROM8:51A1 D5               push de
ROM8:51A2 11 25 02         ld   de,0225		;Frog The Jam
ROM8:51A5 7B               ld   a,e
ROM8:51A6 EA AB C8         ld   (C8AB),a	;Monster to Special Summon = Frog The Jam
ROM8:51A9 7A               ld   a,d
ROM8:51AA EA AC C8         ld   (C8AC),a
ROM8:51AD CD 61 49         call 4961              ;Displays card effect text
ROM8:51B0 CD 8D 49         call 498D		;Freezes this card
ROM8:51B3 01 02 01         ld   bc,0102
ROM8:51B6 CF               rst  08
...
ROM8:51B9 FE 01            cp   a,01
ROM8:51BB 28 06            jr   z,51C3		;If the selected card zone is free, jump to 8:51C3
ROM8:51BD 04               inc  b
ROM8:51BE 78               ld   a,b
ROM8:51BF FE 06            cp   a,06
ROM8:51C1 38 F3            jr   c,51B6		;If all the Monster card zones have not been checked, loop to 8:51B6
ROM8:51C3 78               ld   a,b
ROM8:51C4 FE 06            cp   a,06
ROM8:51C6 28 1A            jr   z,51E2
ROM8:51C8 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROM8:51CB 7B               ld   a,e
ROM8:51CC EA A3 C7         ld   (C7A3),a
ROM8:51CF 7A               ld   a,d
ROM8:51D0 EA A4 C7         ld   (C7A4),a
ROM8:51D3 CD 25 20         call 2025		;Hide Card, reset Level
ROM8:51D6 CD B4 1F         call 1FB4		;Reset Card Level
ROM8:51D9 CD C9 1F         call 1FC9		;Reveal Card
ROM8:51DC CD DF 1F         call 1FDF		;Freezes Card
ROM8:51DF CD FB 19         call 19FB		;Update selected card ID and status
ROM8:51E2 D1               pop  de
ROM8:51E3 C1               pop  bc
ROM8:51E4 F1               pop  af
ROM8:51E5 C9               ret

Bank 9

Card Drops

Checks Debug mode and Grandpa flag

  • 0x24037-0x24046 - Grandpa gives a card if either Debug mode or Grandpa flag is set
ROM9:4037 FE 00            cp   a,00
ROM9:4039 20 07            jr   nz,4042		;If debug, jump to 9:4042
ROM9:403B CF               rst  08
          25 04         => 4:6DCB, Check if Grandpa flag is set
ROM9:403E FE 00            cp   a,00
ROM9:4040 20 11            jr   nz,4053		;If Grandpa flag is not set, exit this function
ROM9:4042 CD 96 40         call 4096		;Grandpa gives a card
ROM9:4045 C5               push bc
ROM9:4046 CF               rst  08
          9B 01         => 1:4ADF, Returns offset for card ID
ROM9:4049 CF               rst 08
          0B 01         => 1:5292, (Try to) check if card ID is valid, store it to wC5FC
ROM9:404C CF               rst 08
          13 01         => 1:
ROM9:404F C1               pop  bc
ROM9:4050 CF               rst 08
          0D 02         => 2:
ROM9:4053 C1               pop  bc
ROM9:4054 F1               pop  af
ROM9:4055 C9               ret

Card drop subroutine

ROM9:4056 F5               push af
ROM9:4057 C5               push bc
ROM9:4058 D5               push de
ROM9:4059 CD B8 24         call 24B8            ;Did the player win ?
ROM9:405C FE 00            cp   a,00
ROM9:405E 28 26            jr   z,4086		;If the duel was lost, get out of this function
ROM9:4060 3E 00            ld   a,00
ROM9:4062 EA 59 C8         ld   (C859),a
ROM9:4065 3E FF            ld   a,FF
ROM9:4067 EA 5A C8         ld   (C85A),a
ROM9:406A CD 20 1F         call 1F20		;PRN between 0 and 255
ROM9:406D FA 5B C8         ld   a,(C85B)
ROM9:4070 5F               ld   e,a
ROM9:4071 CD 20 1F         call 1F20		;PRN between 0 and 255
ROM9:4074 FA 5B C8         ld   a,(C85B)
ROM9:4077 57               ld   d,a		;de = [0;65535]
ROM9:4078 01 18 01         ld   bc,0118
ROM9:407B CD 0A 14         call 140A
ROM9:407E 42               ld   b,d
ROM9:407F 4B               ld   c,e
ROM9:4080 CF               rst  08
...
ROM9:4086 D1               pop  de
ROM9:4087 C1               pop  bc
ROM9:4088 F1               pop  af
ROM9:4089 C9               ret  

Gives a card to the Player

ROM9:408A F5               push af
ROM9:408B 06 00            ld   b,00
ROM9:408D FA CC C8         ld   a,(C8CC)	;Current CPU opponent
ROM9:4090 4F               ld   c,a
ROM9:4091 CD A8 26         call 26A8		;Gives a card to the Player
ROM9:4094 F1               pop  af
ROM9:4095 C9               ret

Grandpa gives a card

ROM9:4096 F5               push af
ROM9:4097 06 00            ld   b,00
ROM9:4099 0E 12            ld   c,12            ;c = Grandpa
ROM9:409B CD A8 26         call 26A8		;Gives a card to the Player
ROM9:409E F1               pop  af
ROM9:409F C9               ret

If duel was won, Grandpa gives a card

ROM9:40A0 F5               push af
ROM9:40A1 C5               push bc
ROM9:40A2 CD B8 24         call 24B8            ;Did the player win ?
ROM9:40A5 FE 00            cp   a,00
ROM9:40A7 28 11            jr   z,40BA		;If duel was lost, jump to 9:40BA
ROM9:40A9 CD 96 40         call 4096		;Grandpa gives a card
ROM9:40AC C5               push bc
ROM9:40AD CF               rst  08
ROM9:40BA C1               pop  bc
ROM9:40BB F1               pop  af
ROM9:40BC C9               ret

Password mode

Password mode - Main

ROM9:41AF F5               push af
ROM9:41B0 C5               push bc
ROM9:41B1 D5               push de
ROM9:41B2 E5               push hl
ROM9:41B3 E8 E8            add  sp,E8
ROM9:41B5 F8 00            ld   hl,sp+00
ROM9:41B7 54               ld   d,h
ROM9:41B8 5D               ld   e,l
ROM9:41B9 3E 18            ld   a,18
ROM9:41BB CF               rst  08
ROM9:41BC 05               dec  b
ROM9:41BD 02               ld   (bc),a
ROM9:41BE CD 83 41         call 4183
ROM9:41C1 CD BD 40         call 40BD
ROM9:41C4 CD 80 42         call 4280
ROM9:41C7 F8 12            ld   hl,sp+12
ROM9:41C9 7E               ld   a,(hl)
ROM9:41CA FE 01            cp   a,01
ROM9:41CC 20 25            jr   nz,41F3
ROM9:41CE CD 92 44         call 4492          ;Password check subroutine
ROM9:41D1 F8 13            ld   hl,sp+13
ROM9:41D3 7E               ld   a,(hl)
ROM9:41D4 FE 0A            cp   a,0A
ROM9:41D6 20 05            jr   nz,41DD       ;If the password is not valid, jump to 9:41D6
ROM9:41D8 CD 33 54         call 5433          ;Check password type
ROM9:41DB 18 16            jr   41F3
ROM9:41DD CD E7 44         call 44E7		;Checks unused passwords
ROM9:41E0 F8 13            ld   hl,sp+13
ROM9:41E2 7E               ld   a,(hl)
ROM9:41E3 FE 0C            cp   a,0C
ROM9:41E5 20 07            jr   nz,41EE
ROM9:41E7 3E 19            ld   a,19
ROM9:41E9 CF               rst  08
...
ROM9:41EC 18 05            jr   41F3
ROM9:41EE 3E 17            ld   a,17
ROM9:41F0 CF               rst  08
...
ROM9:41F3 E8 18            add  sp,18
ROM9:41F5 E1               pop  hl
ROM9:41F6 D1               pop  de
ROM9:41F7 C1               pop  bc
ROM9:41F8 F1               pop  af
ROM9:41F9 C9               ret

Password screen management

  • 0x243B6-0x243D8 - Password screen management
ROM9:43B6 E5               push hl
ROM9:43B7 21 16 00         ld   hl,0016
ROM9:43BA 19               add  hl,de
ROM9:43BB 7E               ld   a,(hl)
ROM9:43BC FE 00            cp   a,00
ROM9:43BE 20 05            jr   nz,43C5
ROM9:43C0 CD D9 43         call 43D9
ROM9:43C3 18 03            jr   43C8
ROM9:43C5 CD F6 43         call 43F6
ROM9:43C8 3E 06            ld   a,06
ROM9:43CA CD E3 0E         call 0EE3
ROM9:43CD CD FA 41         call 41FA
ROM9:43D0 CD 60 44         call 4460
ROM9:43D3 CD C1 10         call 10C1
ROM9:43D6 AF               xor  a
ROM9:43D7 E1               pop  hl
ROM9:43D8 C9               ret  

Stores password digits in WRAM

  • 0x243D9-0x243F5 - Stores password digits at (CFBC)
ROM9:43D9 F5               push af
ROM9:43DA C5               push bc
ROM9:43DB E5               push hl
ROM9:43DC CD 89 2A         call 2A89		;Sound Effect: Cursor
ROM9:43DF 21 11 00         ld   hl,0011
ROM9:43E2 19               add  hl,de
ROM9:43E3 06 00            ld   b,00
ROM9:43E5 4E               ld   c,(hl)
ROM9:43E6 62               ld   h,d
ROM9:43E7 6B               ld   l,e
ROM9:43E8 09               add  hl,bc
ROM9:43E9 7E               ld   a,(hl)
ROM9:43EA C6 01            add  a,01
ROM9:43EC FE 0A            cp   a,0A		;Password digits are between 0 and 9
ROM9:43EE 20 01            jr   nz,43F1
ROM9:43F0 AF               xor  a
ROM9:43F1 77               ld   (hl),a
ROM9:43F2 E1               pop  hl
ROM9:43F3 C1               pop  bc
ROM9:43F4 F1               pop  af
ROM9:43F5 C9               ret

Stores password digits to display in WRAM

  • 0x24460-0x24485 - Stores digits to display at (C102)
ROM9:4460 F5               push af
ROM9:4461 C5               push bc
ROM9:4462 E5               push hl
ROM9:4463 01 E5 98         ld   bc,98E5
ROM9:4466 CD D2 10         call 10D2
ROM9:4469 62               ld   h,d
ROM9:446A 6B               ld   l,e
ROM9:446B 0E 08            ld   c,08
ROM9:446D 2A               ldi  a,(hl)
ROM9:446E C6 01            add  a,01
ROM9:4470 CD 13 11         call 1113
ROM9:4473 0D               dec  c
ROM9:4474 20 F7            jr   nz,446D
ROM9:4476 21 86 44         ld   hl,4486
ROM9:4479 0E 0C            ld   c,0C
ROM9:447B 2A               ldi  a,(hl)
ROM9:447C CD 13 11         call 1113
ROM9:447F 0D               dec  c
ROM9:4480 20 F9            jr   nz,447B
ROM9:4482 E1               pop  hl
ROM9:4483 C1               pop  bc
ROM9:4484 F1               pop  af
ROM9:4485 C9               ret

Password check subroutine

  • 0x24492-0x244D5 - Password check subroutine
ROM9:4492 F5               push af
ROM9:4493 C5               push bc
ROM9:4494 E5               push hl
ROM9:4495 21 14 00         ld   hl,0014
ROM9:4498 19               add  hl,de
ROM9:4499 3E FF            ld   a,FF
ROM9:449B 22               ldi  (hl),a
ROM9:449C 36 FF            ld   (hl),FF
ROM9:449E 21 13 00         ld   hl,0013
ROM9:44A1 19               add  hl,de
ROM9:44A2 36 0B            ld   (hl),0B
ROM9:44A4 21 08 00         ld   hl,0008
ROM9:44A7 19               add  hl,de
ROM9:44A8 44               ld   b,h
ROM9:44A9 4D               ld   c,l
ROM9:44AA 62               ld   h,d
ROM9:44AB 6B               ld   l,e
ROM9:44AC CD D6 44         call 44D6		;Loads current Password ID being checked
ROM9:44AF CD 78 45         call 4578		;Copies valid password in WRAM
ROM9:44B2 CD 2B 45         call 452B		;Checks if the card has no password or if it is the last password
ROM9:44B5 FE 01            cp   a,01
ROM9:44B7 28 F3            jr   z,44AC		;If card checked has no password, loop to 9:44AC
ROM9:44B9 FE 00            cp   a,00
ROM9:44BB 28 0B            jr   z,44C8		;If no more password to check, get out of this function
ROM9:44BD D5               push de
ROM9:44BE 54               ld   d,h
ROM9:44BF 5D               ld   e,l
ROM9:44C0 CD 5D 45         call 455D		;Checks password entered
ROM9:44C3 D1               pop  de
ROM9:44C4 FE 0A            cp   a,0A
ROM9:44C6 20 E4            jr   nz,44AC
ROM9:44C8 FE 00            cp   a,00
ROM9:44CA 28 06            jr   z,44D2
ROM9:44CC 21 13 00         ld   hl,0013
ROM9:44CF 19               add  hl,de
ROM9:44D0 36 0A            ld   (hl),0A
ROM9:44D2 E1               pop  hl
ROM9:44D3 C1               pop  bc
ROM9:44D4 F1               pop  af
ROM9:44D5 C9               ret

Loads current Password ID being checked

ROM9:44D6 F5               push af
ROM9:44D7 E5               push hl
ROM9:44D8 21 14 00         ld   hl,0014
ROM9:44DB 19               add  hl,de
ROM9:44DC 7E               ld   a,(hl)
ROM9:44DD C6 01            add  a,01
ROM9:44DF 22               ldi  (hl),a
ROM9:44E0 7E               ld   a,(hl)
ROM9:44E1 CE 00            adc  a,00
ROM9:44E3 77               ld   (hl),a
ROM9:44E4 E1               pop  hl
ROM9:44E5 F1               pop  af
ROM9:44E6 C9               ret  

Checks unused passwords

ROM9:44E7 F5               push af
ROM9:44E8 C5               push bc
ROM9:44E9 E5               push hl
ROM9:44EA 21 14 00         ld   hl,0014
ROM9:44ED 19               add  hl,de
ROM9:44EE 3E FF            ld   a,FF
ROM9:44F0 22               ldi  (hl),a
ROM9:44F1 36 FF            ld   (hl),FF
ROM9:44F3 21 13 00         ld   hl,0013
ROM9:44F6 19               add  hl,de
ROM9:44F7 36 0B            ld   (hl),0B
ROM9:44F9 21 08 00         ld   hl,0008
ROM9:44FC 19               add  hl,de
ROM9:44FD 44               ld   b,h
ROM9:44FE 4D               ld   c,l
ROM9:44FF 62               ld   h,d
ROM9:4500 6B               ld   l,e
ROM9:4501 CD D6 44         call 44D6
ROM9:4504 CD 49 52         call 5249
ROM9:4507 CD 2B 45         call 452B		;Checks if the card has no password or if it is the last password
ROM9:450A FE 01            cp   a,01
ROM9:450C 28 F3            jr   z,4501		;If card checked has no password, loop to 9:4501
ROM9:450E FE 00            cp   a,00
ROM9:4510 28 0B            jr   z,451D		;If no more password to check, jump to 9:451D
ROM9:4512 D5               push de
ROM9:4513 54               ld   d,h
ROM9:4514 5D               ld   e,l
ROM9:4515 CD 5D 45         call 455D		;Checks password
ROM9:4518 D1               pop  de
ROM9:4519 FE 0A            cp   a,0A
ROM9:451B 20 E4            jr   nz,4501		;If(Entered_password ≠ Card_password), loop to 9:4501
ROM9:451D FE 00            cp   a,00
ROM9:451F 28 06            jr   z,4527
ROM9:4521 21 13 00         ld   hl,0013
ROM9:4524 19               add  hl,de
ROM9:4525 36 0C            ld   (hl),0C
ROM9:4527 E1               pop  hl
ROM9:4528 C1               pop  bc
ROM9:4529 F1               pop  af
ROM9:452A C9               ret  

Checks if the card has no password

ROM9:452B C5               push bc
ROM9:452C D5               push de
ROM9:452D E5               push hl
ROM9:452E 2E 02            ld   l,02
ROM9:4530 11 4D 45         ld   de,454D		;No more password, 0xFFFFFFFF
ROM9:4533 CD 5D 45         call 455D		;Checks password
ROM9:4536 FE 0A            cp   a,0A
ROM9:4538 20 02            jr   nz,453C		;If(Card_password ≠ 0xFFFFFFFF), a = 2
ROM9:453A 2E 00            ld   l,00		;Else a = 0
ROM9:453C 11 55 45         ld   de,4555		;Card has no password, 0xFFFFFFFE
ROM9:453F CD 5D 45         call 455D		;Checks password
ROM9:4542 FE 0A            cp   a,0A
ROM9:4544 20 02            jr   nz,4548		;If(Card_password ≠ 0xFFFFFFFE), a = 2
ROM9:4546 2E 01            ld   l,01		;Else a = 1
ROM9:4548 7D               ld   a,l
ROM9:4549 E1               pop  hl
ROM9:454A D1               pop  de
ROM9:454B C1               pop  bc
ROM9:454C C9               ret

« No Password » array

  • 0x2454D-0x2455C - No passwords array.
0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0E

Checks password entered

  • 0x2455D-0x24577 - Checks if the password entered is valid, and which card to give, which Stage 5 opponent to load, or activate Grandpa giveaways
ROM9:455D C5               push bc
ROM9:455E D5               push de
ROM9:455F E5               push hl
ROM9:4560 60               ld   h,b
ROM9:4561 69               ld   l,c
ROM9:4562 06 0A            ld   b,0A
ROM9:4564 0E 08            ld   c,08		;8 digits in a password
ROM9:4566 1A               ld   a,(de)
ROM9:4567 BE               cp   (hl)		;Compares entered password at (CFBC) with valid password at (CFC4)
ROM9:4568 28 04            jr   z,456E		;If the character is valid, jump to 9:456E
ROM9:456A 06 0B            ld   b,0B
ROM9:456C 18 05            jr   4573		;Else get out of this function
ROM9:456E 13               inc  de
ROM9:456F 23               inc  hl
ROM9:4570 0D               dec  c
ROM9:4571 20 F3            jr   nz,4566		;Loop 8 times
ROM9:4573 78               ld   a,b		;b = 0xA if the password is valid, else b = 0xB
ROM9:4574 E1               pop  hl
ROM9:4575 D1               pop  de
ROM9:4576 C1               pop  bc
ROM9:4577 C9               ret

Copies valid password in WRAM

  • 0x24578-0x245A4 - Copies valid password in (CFC4)
ROM9:4578 F5               push af
ROM9:4579 C5               push bc
ROM9:457A D5               push de
ROM9:457B E5               push hl
ROM9:457C 21 14 00         ld   hl,0014
ROM9:457F 19               add  hl,de
ROM9:4580 2A               ldi  a,(hl)
ROM9:4581 5F               ld   e,a
ROM9:4582 56               ld   d,(hl)
ROM9:4583 CB 23            sla  e
ROM9:4585 CB 12            rl   d
ROM9:4587 CB 23            sla  e
ROM9:4589 CB 12            rl   d
ROM9:458B 21 A5 45         ld   hl,45A5
ROM9:458E 19               add  hl,de
ROM9:458F 1E 04            ld   e,04
ROM9:4591 7E               ld   a,(hl)
ROM9:4592 E6 F0            and  a,F0
ROM9:4594 CB 37            swap a
ROM9:4596 02               ld   (bc),a		;Copies password in WRAM
ROM9:4597 03               inc  bc
ROM9:4598 2A               ldi  a,(hl)
ROM9:4599 E6 0F            and  a,0F
ROM9:459B 02               ld   (bc),a
ROM9:459C 03               inc  bc
ROM9:459D 1D               dec  e
ROM9:459E 20 F1            jr   nz,4591
ROM9:45A0 E1               pop  hl
ROM9:45A1 D1               pop  de
ROM9:45A2 C1               pop  bc
ROM9:45A3 F1               pop  af
ROM9:45A4 C9               ret

Passwords

  • 0x245A9-0x25228 - Cards Passwords
  • 0x25229-0x25244 - Grandpa / Stage 5 / Credits Passwords
  • 0x25276-0x2541D - Unusable Passwords

Compares password entered with unused password list

ROM9:5249 F5               push af
ROM9:524A C5               push bc
ROM9:524B D5               push de
ROM9:524C E5               push hl
ROM9:524D 21 14 00         ld   hl,0014
ROM9:5250 19               add  hl,de
ROM9:5251 2A               ldi  a,(hl)
ROM9:5252 5F               ld   e,a
ROM9:5253 56               ld   d,(hl)
ROM9:5254 CB 23            sla  e
ROM9:5256 CB 12            rl   d
ROM9:5258 CB 23            sla  e
ROM9:525A CB 12            rl   d
ROM9:525C 21 76 52         ld   hl,5276		;Unusable Passwords array
ROM9:525F 19               add  hl,de
ROM9:5260 1E 04            ld   e,04
ROM9:5262 7E               ld   a,(hl)
ROM9:5263 E6 F0            and  a,F0
ROM9:5265 CB 37            swap a
ROM9:5267 02               ld   (bc),a
ROM9:5268 03               inc  bc
ROM9:5269 2A               ldi  a,(hl)
ROM9:526A E6 0F            and  a,0F
ROM9:526C 02               ld   (bc),a
ROM9:526D 03               inc  bc
ROM9:526E 1D               dec  e
ROM9:526F 20 F1            jr   nz,5262
ROM9:5271 E1               pop  hl
ROM9:5272 D1               pop  de
ROM9:5273 C1               pop  bc
ROM9:5274 F1               pop  af
ROM9:5275 C9               ret

Special passwords handling

9:5422
ROM9:5422 F5               push af
ROM9:5423 C5               push bc
ROM9:5424 E5               push hl
ROM9:5425 21 49 CA         ld   hl,CA49
ROM9:5428 AF               xor  a
ROM9:5429 0E 7D            ld   c,7D
ROM9:542B 22               ldi  (hl),a
ROM9:542C 0D               dec  c
ROM9:542D 20 FC            jr   nz,542B
ROM9:542F E1               pop  hl
ROM9:5430 C1               pop  bc
ROM9:5431 F1               pop  af
ROM9:5432 C9               ret
Check password type
ROM9:5433 F5               push af
ROM9:5434 C5               push bc
ROM9:5435 E5               push hl
ROM9:5436 21 14 00         ld   hl,0014
ROM9:5439 19               add  hl,de
ROM9:543A 2A               ldi  a,(hl)
ROM9:543B 4F               ld   c,a
ROM9:543C 46               ld   b,(hl)
ROM9:543D CD 6A 55         call 556A
ROM9:5440 FE 00            cp   a,00
ROM9:5442 20 13            jr   nz,5457       ;if it is a special password, jump to 9:5457
ROM9:5444 CD 7F 55         call 557F
ROM9:5447 FE 00            cp   a,00
ROM9:5449 20 05            jr   nz,5450
ROM9:544B CD 5E 54         call 545E
ROM9:544E 18 05            jr   5455
ROM9:5450 3E 16            ld   a,16           ;To make 2:6F60 call subroutine Text: Yami Yugi - Password already entered
ROM9:5452 CF               rst  08
 => 05 02 Text display subroutine
ROM9:5455 18 03            jr   545A
ROM9:5457 CD 86 54         call 5486          ;Loads subroutine for the entered special password
ROM9:545A E1               pop  hl
ROM9:545B C1               pop  bc
ROM9:545C F1               pop  af
ROM9:545D C9               ret
9:545E
ROM9:545E F5               push af
ROM9:545F C5               push bc
ROM9:5460 D5               push de
ROM9:5461 E5               push hl
ROM9:5462 11 20 03         ld   de,0320
ROM9:5465 CD 6D 54         call 546D
ROM9:5468 E1               pop  hl
ROM9:5469 D1               pop  de
ROM9:546A C1               pop  bc
ROM9:546B F1               pop  af
ROM9:546C C9               ret
9:546D
ROM9:546D F5               push af
ROM9:546E C5               push bc
ROM9:546F CD A9 55         call 55A9
ROM9:5472 C5               push bc
ROM9:5473 CF               rst  08
ROM9:5474 9B               sbc  e
ROM9:5475 01 CF 0B         ld   bc,0BCF
ROM9:5478 01 CF 13         ld   bc,13CF
ROM9:547B 01 C1 CF         ld   bc,CFC1
ROM9:547E 09               add  hl,bc
ROM9:547F 04               inc  b
ROM9:5480 CF               rst  08
 => 0F 02
ROM9:5483 C1               pop  bc
ROM9:5484 F1               pop  af
ROM9:5485 C9               ret  
Loads subroutine for the entered special password
ROM9:5486 F5               push af
ROM9:5487 C5               push bc
ROM9:5488 E5               push hl
ROM9:5489 06 00            ld   b,00
ROM9:548B 4F               ld   c,a
ROM9:548C CB 21            sla  c
ROM9:548E 21 9E 54         ld   hl,549E
ROM9:5491 09               add  hl,bc
ROM9:5492 2A               ldi  a,(hl)
ROM9:5493 66               ld   h,(hl)
ROM9:5494 6F               ld   l,a
ROM9:5495 01 9A 54         ld   bc,549A
ROM9:5498 C5               push bc
ROM9:5499 E9               jp   hl
ROM9:549A E1               pop  hl
ROM9:549B C1               pop  bc
ROM9:549C F1               pop  af
ROM9:549D C9               ret  
Pointers to subroutines
  • 0x2549E - Pointers to special password subroutines
ROM9:549E
B0 54 - 00 - Fail-safe (ret)
B1 54 - 01 - Grandpa password entered
BF 54 - 02 - Yami Yugi - Stage 5 password entered
DD 54 - 03 - Yami Bakura - Stage 5 password entered
FB 54 - 04 - Nitemare - Stage 5 password entered
19 55 - 05 - Shadi - Stage 5 password entered
37 55 - 06 - Marik Ishtar - Stage 5 password entered
55 55 - 07 - Credits
5C 55 - 08 - Legendary card password (Unused)
Fail-safe (ret)
ROM9:54B0 C9               ret
Grandpa password entered
ROM9:54B1 F5               push af
ROM9:54B2 CF               rst  08
 => 27 04
ROM9:54B5 CF               rst  08
 => 09 04
ROM9:54B8 3E 21            ld   a,21          ;To make 2:6F60 call subroutine Text: Grandpa - Grandpa password entered
ROM9:54BA CF               rst  08
 => 05 02 Text display subroutine
ROM9:54BD F1               pop  af
ROM9:54BE C9               ret
Yami Yugi - Stage 5 password entered
ROM9:54BF F5               push af
ROM9:54C0 CD C5 28         call 28C5
ROM9:54C3 FE 04            cp   a,04
ROM9:54C5 20 0F            jr   nz,54D6          ;if Stage 5 has not been unlocked, jump to 9:54D6
ROM9:54C7 3E 00            ld   a,00
ROM9:54C9 CF               rst  08
 => 23 04
ROM9:54CC CF               rst  08
 => 09 04
ROM9:54CF 3E 1C            ld   a,1C          ;To make 2:6F60 call subroutine Text: Yami Yugi - Stage 5 password entered
ROM9:54D1 CF               rst  08
 => 05 02 Text display subroutine
ROM9:54D4 18 05            jr   54DB
ROM9:54D6 3E 23            ld   a,23          ;To make 2:6F60 call subroutine Text: Yami Yugi - Password can't be used yet
ROM9:54D8 CF               rst  08
 => 05 02 Text display subroutine
ROM9:54DB F1               pop  af
ROM9:54DC C9               ret
Yami Bakura - Stage 5 password entered
ROM9:54DD F5               push af
ROM9:54DE CD C5 28         call 28C5
ROM9:54E1 FE 04            cp   a,04
ROM9:54E3 20 0F            jr   nz,54F4
ROM9:54E5 3E 01            ld   a,01
ROM9:54E7 CF               rst  08
ROM9:54E8 23               inc  hl
ROM9:54E9 04               inc  b
ROM9:54EA CF               rst  08
ROM9:54EB 09               add  hl,bc
ROM9:54EC 04               inc  b
ROM9:54ED 3E 1D            ld   a,1D
ROM9:54EF CF               rst  08
 => 05 02 Text display subroutine
ROM9:54F2 18 05            jr   54F9
ROM9:54F4 3E 23            ld   a,23
ROM9:54F6 CF               rst  08
 => 05 02 Text display subroutine
ROM9:54F9 F1               pop  af
ROM9:54FA C9               ret
Nitemare - Stage 5 password entered
ROM9:54FB F5               push af
ROM9:54FC CD C5 28         call 28C5
ROM9:54FF FE 04            cp   a,04
ROM9:5501 20 0F            jr   nz,5512
ROM9:5503 3E 02            ld   a,02
ROM9:5505 CF               rst  08
ROM9:5506 23               inc  hl
ROM9:5507 04               inc  b
ROM9:5508 CF               rst  08
ROM9:5509 09               add  hl,bc
ROM9:550A 04               inc  b
ROM9:550B 3E 1E            ld   a,1E
ROM9:550D CF               rst  08
 => 05 02 Text display subroutine
ROM9:5510 18 05            jr   5517
ROM9:5512 3E 23            ld   a,23
ROM9:5514 CF               rst  08
 => 05 02 Text display subroutine
ROM9:5517 F1               pop  af
ROM9:5518 C9               ret
Shadi - Stage 5 password entered
ROM9:5519 F5               push af
ROM9:551A CD C5 28         call 28C5
ROM9:551D FE 04            cp   a,04
ROM9:551F 20 0F            jr   nz,5530
ROM9:5521 3E 03            ld   a,03
ROM9:5523 CF               rst  08
ROM9:5524 23               inc  hl
ROM9:5525 04               inc  b
ROM9:5526 CF               rst  08
ROM9:5527 09               add  hl,bc
ROM9:5528 04               inc  b
ROM9:5529 3E 1F            ld   a,1F
ROM9:552B CF               rst  08
 => 05 02 Text display subroutine
ROM9:552E 18 05            jr   5535
ROM9:5530 3E 23            ld   a,23
ROM9:5532 CF               rst  08
 => 05 02 Text display subroutine
ROM9:5535 F1               pop  af
ROM9:5536 C9               ret
Marik Ishtar - Stage 5 password entered
ROM9:5537 F5               push af
ROM9:5538 CD C5 28         call 28C5
ROM9:553B FE 04            cp   a,04
ROM9:553D 20 0F            jr   nz,554E
ROM9:553F 3E 04            ld   a,04
ROM9:5541 CF               rst  08
ROM9:5542 23               inc  hl
ROM9:5543 04               inc  b
ROM9:5544 CF               rst  08
ROM9:5545 09               add  hl,bc
ROM9:5546 04               inc  b
ROM9:5547 3E 20            ld   a,20
ROM9:5549 CF               rst  08
 => 05 02 Text display subroutine
ROM9:554C 18 05            jr   5553
ROM9:554E 3E 23            ld   a,23
ROM9:5550 CF               rst  08
 => 05 02 Text display subroutine
ROM9:5553 F1               pop  af
ROM9:5554 C9               ret
Credits
ROM9:5555 CD 51 2A         Credits music
ROM9:5558 CF               rst  08
 => 03 11
ROM9:555B C9               ret
Legendary card password (Unused)
ROM9:555C F5               push af
ROM9:555D 3E 22            ld   a,22          ;To make 2:6F60 call subroutine Text: Simon Muran - Legendary card password (Unused)
ROM9:555F CF               rst  08
 => 05 02 Text display subroutine
ROM9:5562 CF               rst  08
 => 19 0A
ROM9:5565 CF               rst  08
 => 1B 0A
ROM9:5568 F1               pop  af
ROM9:5569 C9               ret

9:556A

ROM9:556A C5               push bc
ROM9:556B D5               push de
ROM9:556C 11 20 03         ld   de,0320         ;de = 0d800
ROM9:556F CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROM9:5572 FE 00            cp   a,00
ROM9:5574 28 04            jr   z,557A         ;if (current_card_ID > 800), jump to 9:557A
ROM9:5576 3E 00            ld   a,00
ROM9:5578 18 02            jr   557C
ROM9:557A 79               ld   a,c            ;a = c ; special_password_ID
ROM9:557B 93               sub  e
ROM9:557C D1               pop  de
ROM9:557D C1               pop  bc
ROM9:557E C9               ret

9:557F

ROM9:557F C5               push bc
ROM9:5580 D5               push de
ROM9:5581 E5               push hl
ROM9:5582 1E 01            ld   e,01         ;e = 1
ROM9:5584 AF               xor  a            ;a = 0
ROM9:5585 CB 38            srl  b
ROM9:5587 CB 19            rr   c
ROM9:5589 1F               rra  
ROM9:558A CB 38            srl  b
ROM9:558C CB 19            rr   c
ROM9:558E 1F               rra  
ROM9:558F CB 38            srl  b
ROM9:5591 CB 19            rr   c
ROM9:5593 1F               rra  
ROM9:5594 1F               rra  
ROM9:5595 CB 37            swap a
ROM9:5597 21 49 CA         ld   hl,CA49
ROM9:559A 09               add  hl,bc        ;hl = pointer to array at wCA49 + bc
ROM9:559B CD 7B 16         call 167B
ROM9:559E FE 00            cp   a,00
ROM9:55A0 20 02            jr   nz,55A4
ROM9:55A2 1E 00            ld   e,00
ROM9:55A4 7B               ld   a,e
ROM9:55A5 E1               pop  hl
ROM9:55A6 D1               pop  de
ROM9:55A7 C1               pop  bc
ROM9:55A8 C9               ret

Bank A

rst 08 pointers

ROMA:4002
1C 40
3A 40
19 47
1A 47
2B 47
A1 47
06 4A
1B 47 - Remove Player's Trap at turn start
1F 47 - Remove CPU's Trap at turn start
23 47 - Remove Player's Trap
27 47 - Remove CPU's Trap
DF 4C
CE 4D

Copy CPU deck to (C65A)

ROMA:401C F5               push af
ROMA:401D C5               push bc
ROMA:401E D5               push de
ROMA:401F E5               push hl
ROMA:4020 1E 00            ld   e,00
ROMA:4022 7B               ld   a,e
ROMA:4023 FE 28            cp   a,28		;40 cards in a deck
ROMA:4025 30 0E            jr   nc,4035		;If the deck is fully loaded, get out of this function
ROMA:4027 7B               ld   a,e
ROMA:4028 CF               rst  08
ROMA:4029 7D 03       => Pointer 03:407D (Writes value in CPU's deck counter)
ROMA:402B 2A               ldi  a,(hl)
ROMA:402C 4F               ld   c,a
ROMA:402D 2A               ldi  a,(hl)
ROMA:402E 47               ld   b,a
ROMA:402F CF               rst  08
ROMA:4030 7F 03       => Pointer 03:407F (Writes next card in CPU's deck)
ROMA:4032 1C               inc  e
ROMA:4033 18 ED            jr   4022
ROMA:4035 E1               pop  hl
ROMA:4036 D1               pop  de
ROMA:4037 C1               pop  bc
ROMA:4038 F1               pop  af
ROMA:4039 C9               ret  

Load CPU deck

ROMA:403A F5               push af
ROMA:403B D5               push de
ROMA:403C E5               push hl
ROMA:403D 5F               ld   e,a
ROMA:403E 06 00            ld   b,00
ROMA:4040 FA CC C8         ld   a,(C8CC)
ROMA:4043 4F               ld   c,a
ROMA:4044 CB 21            sla  c
ROMA:4046 21 59 40         ld   hl,4059		;CPU decks pointers
ROMA:4049 09               add  hl,bc
ROMA:404A 2A               ldi  a,(hl)
ROMA:404B 66               ld   h,(hl)
ROMA:404C 6F               ld   l,a
ROMA:404D 16 00            ld   d,00
ROMA:404F CB 23            sla  e
ROMA:4051 19               add  hl,de		;hl = CPU decks pointer + (current position × 2)
ROMA:4052 2A               ldi  a,(hl)
ROMA:4053 46               ld   b,(hl)
ROMA:4054 4F               ld   c,a		;bc = Card ID
ROMA:4055 E1               pop  hl
ROMA:4056 D1               pop  de
ROMA:4057 F1               pop  af
ROMA:4058 C9               ret  

CPU Decks pointers

ROMA:4059
89 40 - Weevil
D9 40 - Mai Valentine
29 41 - Rex Raptor
79 41 - Mako Tsunami
C9 41 - Yami Yugi
19 42 - Yugi Muto
69 42 - Tea Gardner (No Deck)
69 42 - Joey Wheeler
B9 42 - Seto Kaiba
09 43 - Espa Roba
59 43 - Tristan Taylor
A9 43 - Rare Hunter
F9 43 - Pandora
49 44 - Marik Ishtar
99 44 - Heishin
E9 44 - P. Seto
39 45 - Simon Muran
89 45 - Exosha
89 45 - Grandpa
89 45 - Yami Bakura
D9 45 - Shadi
29 46 - DarkNite
79 46 - Nitemare
C9 46 - Ishizu Ishtar

CPU Decks

  • 0x28089 - Weevil
  • 0x280D9 - Mai Valentine
  • 0x28129 - Rex Raptor
  • 0x28179 - Mako Tsunami
  • 0x281C9 - Yami Yugi
  • 0x28219 - Yugi Muto
  • 0x28269 - Joey Wheeler
  • 0x282B9 - Seto Kaiba
  • 0x28309 - Espa Roba
  • 0x28359 - Tristan Taylor
  • 0x283A9 - Rare Hunter
  • 0x283F9 - Pandora
  • 0x28449 - Marik Ishtar
  • 0x28499 - Heishin
  • 0x284E9 - P. Seto
  • 0x28539 - Simon Muran
  • 0x28589 - Yami Bakura
  • 0x285D9 - Shadi
  • 0x28629 - DarkNite
  • 0x28679 - Nitemare
  • 0x286C9 - Isis Ishtar

Traps mechanics

Trap removal

Remove Player's Trap at turn start
  • 0x2871B-0x2871E - Remove Player's Trap at turn start
ROMA:471B CF               rst  08
ROMA:471C 4D 03       => Pointer 03:404D (Remove Player's Trap)
ROMA:471E C9               ret  
Remove CPU's Trap at turn start
  • 0x2871F-0x28722 - Remove CPU's Trap at turn start
ROMA:471F CF               rst  08
ROMA:4720 4F 03       => Pointer 03:404F (Remove CPU's Trap)
ROMA:4722 C9               ret  
Remove Player's Trap
  • 0x28723-0x28726 - Remove Player's Trap
ROMA:4723 CF               rst  08
ROMA:4724 4D 03       => Pointer 03:404D (Remove Player's Trap)
ROMA:4726 C9               ret  
Remove CPU's Trap
  • 0x28727-0x2872A - Remove CPU's Trap
ROMA:4727 CF               rst  08
ROMA:4728 4F 03       => Pointer 03:404F (Remove P2's Trap)
ROMA:472A C9               ret

A:472B (stores register bc in (CA47))

ROMA:472B F5               push af
ROMA:472C 78               ld   a,b
ROMA:472D EA 47 CA         ld   (CA47),a
ROMA:4730 79               ld   a,c
ROMA:4731 EA 48 CA         ld   (CA48),a
ROMA:4734 F1               pop  af
ROMA:4735 C9               ret  

Trap card position

  • 0x28736-0x28755 - Reinitializes Duel cursor position
ROMA:4736 C5               push bc
ROMA:4737 FA B0 C7         ld   a,(C7B0)
ROMA:473A FE 01            cp   a,01
ROMA:473C 20 06            jr   nz,4744		;If(current turn ≠ Player's turn), jump to A:4744
ROMA:473E 0E 00            ld   c,00		;Row = 0
ROMA:4740 06 05            ld   b,05		;Column = 5
ROMA:4742 18 04            jr   4748
ROMA:4744 0E 03            ld   c,03		;Row = 3
ROMA:4746 06 00            ld   b,00		;Column = 0
ROMA:4748 CD D0 19         call 19D0		;Updates field Column and Row
ROMA:474B CD 13 1A         call 1A13		;Stores selected card ID and status
ROMA:474E CF               rst  08
ROMA:474F 0B 07       => 7:400B
ROMA:4751 CD 56 47         call 4756
ROMA:4754 C1               pop  bc
ROMA:4755 C9               ret

Trap activation routine

ROMA:4756 C5               push bc
ROMA:4757 0E 00            ld   c,00
ROMA:4759 FA BF C6         ld   a,(C6BF)		;Effect ID (magic trap ritual)
ROMA:475C FE 37            cp   a,37			;Widespread Ruin
ROMA:475E 20 02            jr   nz,4762
ROMA:4760 0E 01            ld   c,01
ROMA:4762 FE 38            cp   a,38			;House of Adhesive Trap
ROMA:4764 20 02            jr   nz,4768
ROMA:4766 0E 02            ld   c,02
ROMA:4768 FE 39            cp   a,39			;Eatgaboon
ROMA:476A 20 02            jr   nz,476E
ROMA:476C 0E 03            ld   c,03
ROMA:476E FE 3A            cp   a,3A			;Bear Trap
ROMA:4770 20 02            jr   nz,4774
ROMA:4772 0E 04            ld   c,04
ROMA:4774 FE 3B            cp   a,3B			;Invisible Wire
ROMA:4776 20 02            jr   nz,477A
ROMA:4778 0E 05            ld   c,05
ROMA:477A FE 3C            cp   a,3C			;Acid Trap Hole
ROMA:477C 20 02            jr   nz,4780
ROMA:477E 0E 06            ld   c,06
ROMA:4780 FE 3D            cp   a,3D			;Goblin Fan
ROMA:4782 20 02            jr   nz,4786
ROMA:4784 0E 07            ld   c,07
ROMA:4786 FE 3E            cp   a,3E			;Simochi Allergy
ROMA:4788 20 02            jr   nz,478C
ROMA:478A 0E 08            ld   c,08
ROMA:478C FE 3F            cp   a,3F			;Reverse Trap
ROMA:478E 20 02            jr   nz,4792
ROMA:4790 0E 09            ld   c,09
ROMA:4792 FE 40            cp   a,40			;Fake Trap
ROMA:4794 20 02            jr   nz,4798
ROMA:4796 0E 0A            ld   c,0A
ROMA:4798 FE 72            cp   a,72			;Anti Raigeki
ROMA:479A 20 02            jr   nz,479E
ROMA:479C 0E 0B            ld   c,0B
ROMA:479E 79               ld   a,c
ROMA:479F C1               pop  bc
ROMA:47A0 C9               ret  

Load appropriate Trap pointer to hl

ROMA:47A1 C5               push bc
ROMA:47A2 E5               push hl
ROMA:47A3 06 00            ld   b,00
ROMA:47A5 CD 36 47         call 4736			;Trap card position
ROMA:47A8 4F               ld   c,a
ROMA:47A9 CB 21            sla  c
ROMA:47AB 21 BA 47         ld   hl,47BA
ROMA:47AE 09               add  hl,bc
ROMA:47AF 2A               ldi  a,(hl)
ROMA:47B0 66               ld   h,(hl)
ROMA:47B1 6F               ld   l,a
ROMA:47B2 01 B7 47         ld   bc,47B7
ROMA:47B5 C5               push bc
ROMA:47B6 E9               jp   hl
ROMA:47B7 E1               pop  hl
ROMA:47B8 C1               pop  bc
ROMA:47B9 C9               ret  

Trap pointers

ROMA:47BA
E4 47 - No Trap
E7 47 - Widespread Ruin
09 48 - House of Adhesive Trap
3F 48 - Eatgaboon
75 48 - Bear Trap
AB 48 - Invisible Wire
E1 48 - Acid Trap Hole
17 49 - Goblin Fan
4B 49 - Simochi Allergy
7F 49 - Reverse Trap
CC 49 - Fake Trap
CF 49 - Anti Raigeki
FD 49 - ret
FE 49 - ret
FF 49 - ret
00 4A - ret
01 4A - ret
02 4A - ret
03 4A - ret
04 4A - ret
05 4A - ret

No Trap

ROMA:47E4 3E 00            ld   a,00
ROMA:47E6 C9               ret  

Widespread Ruin

ROMA:47E7 C5               push bc
ROMA:47E8 E5               push hl
ROMA:47E9 FA 47 CA         ld   a,(CA47)
ROMA:47EC 47               ld   b,a
ROMA:47ED FA 48 CA         ld   a,(CA48)
ROMA:47F0 4F               ld   c,a
ROMA:47F1 CD D0 19         call 19D0
ROMA:47F4 CD 13 1A         call 1A13
ROMA:47F7 CF               rst  08
ROMA:47F8 0B               dec  bc
ROMA:47F9 07               rlca 
ROMA:47FA 2E 00            ld   l,00
ROMA:47FC FA BF C6         ld   a,(C6BF)		;Current card Effect ID (magic trap ritual)
ROMA:47FF FE 02            cp   a,02
ROMA:4801 20 02            jr   nz,4805			;if not a Monster Card, exit this function
ROMA:4803 2E 01            ld   l,01
ROMA:4805 7D               ld   a,l
ROMA:4806 E1               pop  hl
ROMA:4807 C1               pop  bc
ROMA:4808 C9               ret  

House of Adhesive Trap

ROMA:4809 C5               push bc
ROMA:480A D5               push de
ROMA:480B E5               push hl
ROMA:480C FA 47 CA         ld   a,(CA47)
ROMA:480F 47               ld   b,a
ROMA:4810 FA 48 CA         ld   a,(CA48)
ROMA:4813 4F               ld   c,a
ROMA:4814 CD D0 19         call 19D0
ROMA:4817 CD 13 1A         call 1A13
ROMA:481A CF               rst  08
ROMA:481B 0B               dec  bc
ROMA:481C 07               rlca 
ROMA:481D 2E 00            ld   l,00
ROMA:481F FA BF C6         ld   a,(C6BF)		;Current card Effect ID (magic trap ritual)
ROMA:4822 FE 02            cp   a,02
ROMA:4824 20 14            jr   nz,483A			;if not a Monster Card, exit this function
ROMA:4826 FA B7 C6         ld   a,(C6B7)
ROMA:4829 4F               ld   c,a
ROMA:482A FA B8 C6         ld   a,(C6B8)
ROMA:482D 47               ld   b,a			;bc = Current card ATK
ROMA:482E 11 00 05         ld   de,0500
ROMA:4831 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROMA:4834 FE 00            cp   a,00
ROMA:4836 28 02            jr   z,483A			;if(ATK > 500), exit this function
ROMA:4838 2E 01            ld   l,01
ROMA:483A 7D               ld   a,l
ROMA:483B E1               pop  hl
ROMA:483C D1               pop  de
ROMA:483D C1               pop  bc
ROMA:483E C9               ret  

Eatgaboon

ROMA:483F C5               push bc
ROMA:4840 D5               push de
ROMA:4841 E5               push hl
ROMA:4842 FA 47 CA         ld   a,(CA47)
ROMA:4845 47               ld   b,a
ROMA:4846 FA 48 CA         ld   a,(CA48)
ROMA:4849 4F               ld   c,a
ROMA:484A CD D0 19         call 19D0
ROMA:484D CD 13 1A         call 1A13
ROMA:4850 CF               rst  08
ROMA:4851 0B               dec  bc
ROMA:4852 07               rlca 
ROMA:4853 2E 00            ld   l,00
ROMA:4855 FA BF C6         ld   a,(C6BF)		;Current card Effect ID (magic trap ritual)
ROMA:4858 FE 02            cp   a,02
ROMA:485A 20 14            jr   nz,4870			;if not a Monster Card, exit this function
ROMA:485C FA B7 C6         ld   a,(C6B7)
ROMA:485F 4F               ld   c,a
ROMA:4860 FA B8 C6         ld   a,(C6B8)
ROMA:4863 47               ld   b,a			;bc = Current card ATK
ROMA:4864 11 00 10         ld   de,1000
ROMA:4867 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROMA:486A FE 00            cp   a,00
ROMA:486C 28 02            jr   z,4870			;if(ATK > 1000), exit this function
ROMA:486E 2E 01            ld   l,01
ROMA:4870 7D               ld   a,l
ROMA:4871 E1               pop  hl
ROMA:4872 D1               pop  de
ROMA:4873 C1               pop  bc
ROMA:4874 C9               ret  

Bear Trap

ROMA:4875 C5               push bc
ROMA:4876 D5               push de
ROMA:4877 E5               push hl
ROMA:4878 FA 47 CA         ld   a,(CA47)
ROMA:487B 47               ld   b,a
ROMA:487C FA 48 CA         ld   a,(CA48)
ROMA:487F 4F               ld   c,a
ROMA:4880 CD D0 19         call 19D0
ROMA:4883 CD 13 1A         call 1A13
ROMA:4886 CF               rst  08
ROMA:4887 0B               dec  bc
ROMA:4888 07               rlca 
ROMA:4889 2E 00            ld   l,00
ROMA:488B FA BF C6         ld   a,(C6BF)		;Current card Effect ID (magic trap ritual)
ROMA:488E FE 02            cp   a,02
ROMA:4890 20 14            jr   nz,48A6			;if not a Monster Card, exit this function
ROMA:4892 FA B7 C6         ld   a,(C6B7)
ROMA:4895 4F               ld   c,a
ROMA:4896 FA B8 C6         ld   a,(C6B8)
ROMA:4899 47               ld   b,a			;bc = Current card ATK
ROMA:489A 11 00 15         ld   de,1500
ROMA:489D CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROMA:48A0 FE 00            cp   a,00
ROMA:48A2 28 02            jr   z,48A6			;if(ATK > 1500), exit this function
ROMA:48A4 2E 01            ld   l,01
ROMA:48A6 7D               ld   a,l
ROMA:48A7 E1               pop  hl
ROMA:48A8 D1               pop  de
ROMA:48A9 C1               pop  bc
ROMA:48AA C9               ret  

Invisible Wire

ROMA:48AB C5               push bc
ROMA:48AC D5               push de
ROMA:48AD E5               push hl
ROMA:48AE FA 47 CA         ld   a,(CA47)
ROMA:48B1 47               ld   b,a
ROMA:48B2 FA 48 CA         ld   a,(CA48)
ROMA:48B5 4F               ld   c,a
ROMA:48B6 CD D0 19         call 19D0
ROMA:48B9 CD 13 1A         call 1A13
ROMA:48BC CF               rst  08
ROMA:48BD 0B               dec  bc
ROMA:48BE 07               rlca 
ROMA:48BF 2E 00            ld   l,00
ROMA:48C1 FA BF C6         ld   a,(C6BF)		;Current card Effect ID (magic trap ritual)
ROMA:48C4 FE 02            cp   a,02
ROMA:48C6 20 14            jr   nz,48DC			;if not a Monster Card, exit this function
ROMA:48C8 FA B7 C6         ld   a,(C6B7)
ROMA:48CB 4F               ld   c,a
ROMA:48CC FA B8 C6         ld   a,(C6B8)
ROMA:48CF 47               ld   b,a			;bc = Current card ATK
ROMA:48D0 11 00 20         ld   de,2000
ROMA:48D3 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROMA:48D6 FE 00            cp   a,00
ROMA:48D8 28 02            jr   z,48DC			;if(ATK > 2000), exit this function
ROMA:48DA 2E 01            ld   l,01
ROMA:48DC 7D               ld   a,l
ROMA:48DD E1               pop  hl
ROMA:48DE D1               pop  de
ROMA:48DF C1               pop  bc
ROMA:48E0 C9               ret  

Acid Trap Hole

ROMA:48E1 C5               push bc
ROMA:48E2 D5               push de
ROMA:48E3 E5               push hl
ROMA:48E4 FA 47 CA         ld   a,(CA47)		;Column
ROMA:48E7 47               ld   b,a
ROMA:48E8 FA 48 CA         ld   a,(CA48)		;Row
ROMA:48EB 4F               ld   c,a
ROMA:48EC CD D0 19         call 19D0
ROMA:48EF CD 13 1A         call 1A13
ROMA:48F2 CF               rst  08
ROMA:48F3 0B               dec  bc
ROMA:48F4 07               rlca 
ROMA:48F5 2E 00            ld   l,00
ROMA:48F7 FA BF C6         ld   a,(C6BF)		;Current card Effect ID (magic trap ritual)
ROMA:48FA FE 02            cp   a,02
ROMA:48FC 20 14            jr   nz,4912			;if not a Monster Card, exit this function
ROMA:48FE FA B7 C6         ld   a,(C6B7)
ROMA:4901 4F               ld   c,a
ROMA:4902 FA B8 C6         ld   a,(C6B8)
ROMA:4905 47               ld   b,a			;bc = Current card ATK
ROMA:4906 11 00 30         ld   de,3000
ROMA:4909 CD 23 1B         call 1B23		;Checks if bc is less than, equal to, or greater than de
ROMA:490C FE 00            cp   a,00
ROMA:490E 28 02            jr   z,4912			;if(ATK > 3000), exit this function
ROMA:4910 2E 01            ld   l,01
ROMA:4912 7D               ld   a,l
ROMA:4913 E1               pop  hl
ROMA:4914 D1               pop  de
ROMA:4915 C1               pop  bc
ROMA:4916 C9               ret  

Goblin Fan

ROMA:4917 C5               push bc
ROMA:4918 D5               push de
ROMA:4919 E5               push hl
ROMA:491A FA 47 CA         ld   a,(CA47)		;Column
ROMA:491D 47               ld   b,a
ROMA:491E FA 48 CA         ld   a,(CA48)		;Row
ROMA:4921 4F               ld   c,a
ROMA:4922 CD D0 19         call 19D0
ROMA:4925 CD 13 1A         call 1A13
ROMA:4928 CF               rst  08
ROMA:4929 0B               dec  bc
ROMA:492A 07               rlca 
ROMA:492B 16 00            ld   d,00
ROMA:492D FA BF C6         ld   a,(C6BF)		;Current card Effect ID (magic trap ritual)
ROMA:4930 5F               ld   e,a
ROMA:4931 21 45 49         ld   hl,4945
ROMA:4934 2A               ldi  a,(hl)
ROMA:4935 FE FF            cp   a,FF
ROMA:4937 28 07            jr   z,4940
ROMA:4939 BB               cp   e
ROMA:493A 20 02            jr   nz,493E
ROMA:493C 16 01            ld   d,01
ROMA:493E 18 F4            jr   4934
ROMA:4940 7A               ld   a,d
ROMA:4941 E1               pop  hl
ROMA:4942 D1               pop  de
ROMA:4943 C1               pop  bc
ROMA:4944 C9               ret  

0E - Sparks
0F - Hinotama
10 - Final Flame
11 - Ookazi
12 - Tremendous Fire
FF

Simochi Allergy

ROMA:494B C5               push bc
ROMA:494C D5               push de
ROMA:494D E5               push hl
ROMA:494E FA 47 CA         ld   a,(CA47)
ROMA:4951 47               ld   b,a
ROMA:4952 FA 48 CA         ld   a,(CA48)
ROMA:4955 4F               ld   c,a
ROMA:4956 CD D0 19         call 19D0
ROMA:4959 CD 13 1A         call 1A13
ROMA:495C CF               rst  08
ROMA:495D 0B               dec  bc
ROMA:495E 07               rlca 
ROMA:495F 16 00            ld   d,00
ROMA:4961 FA BF C6         ld   a,(C6BF)
ROMA:4964 5F               ld   e,a
ROMA:4965 21 79 49         ld   hl,4979
ROMA:4968 2A               ldi  a,(hl)
ROMA:4969 FE FF            cp   a,FF
ROMA:496B 28 07            jr   z,4974
ROMA:496D BB               cp   e
ROMA:496E 20 02            jr   nz,4972
ROMA:4970 16 01            ld   d,01
ROMA:4972 18 F4            jr   4968
ROMA:4974 7A               ld   a,d
ROMA:4975 E1               pop  hl
ROMA:4976 D1               pop  de
ROMA:4977 C1               pop  bc
ROMA:4978 C9               ret  

09 - Mooyan Curry
0A - Red Medicine
0B - Goblin's Secret Remedy
0C - Soul of the Pure
0D - Dian Keto the Cure Master
FF

Reverse Trap

ROMA:497F C5               push bc
ROMA:4980 D5               push de
ROMA:4981 FA 47 CA         ld   a,(CA47)
ROMA:4984 47               ld   b,a
ROMA:4985 FA 48 CA         ld   a,(CA48)
ROMA:4988 4F               ld   c,a
ROMA:4989 CD D0 19         call 19D0
ROMA:498C CD 13 1A         call 1A13
ROMA:498F CF               rst  08
ROMA:4990 0B               dec  bc
ROMA:4991 07               rlca 
ROMA:4992 16 00            ld   d,00
ROMA:4994 FA BF C6         ld   a,(C6BF)
ROMA:4997 5F               ld   e,a
ROMA:4998 21 AB 49         ld   hl,49AB
ROMA:499B 2A               ldi  a,(hl)
ROMA:499C FE FF            cp   a,FF
ROMA:499E 28 07            jr   z,49A7
ROMA:49A0 BB               cp   e
ROMA:49A1 20 02            jr   nz,49A5
ROMA:49A3 16 01            ld   d,01
ROMA:49A5 18 F4            jr   499B
ROMA:49A7 7A               ld   a,d
ROMA:49A8 D1               pop  de
ROMA:49A9 C1               pop  bc
ROMA:49AA C9               ret  
15 - Legendary Sword
16 - Sword of Ruin
17 - Dark Energy
18 - Axe of Despair
19 - Lazer Cannon Armor
1A - Insect Armor with Fire
1B - Elf's Light
1C - Beast Fangs
1D - Steel Shell
1E - Vile Germs
1F - Black Pendant
20 - Silver Bow & Arrow
21 - Horn of Light
22 - Horn of the Unicorn
23 - Dragon Treasure
24 - Electro-whip
25 - Cyber Shield
26 - Mystical Moon
27 - Malevolent Nuzzler
28 - Violet Crystal
29 - Book of Secret Art
2A - Invigoration
2B - Machine Conversion
2C - Raise Body Heat
2D - Follow Wind
2E - Power of Kaishin
4D - Magical Labyrinth
4E - Salamandra
4F - Kunai with Chain
50 - Bright Castle
62 - Megamorph
64 - Winged Trumpeter
FF


Fake Trap

ROMA:49CC 3E 00            ld   a,00
ROMA:49CE C9               ret  

Anti Raigeki

ROMA:49CF C5               push bc
ROMA:49D0 D5               push de
ROMA:49D1 FA 47 CA         ld   a,(CA47)
ROMA:49D4 47               ld   b,a
ROMA:49D5 FA 48 CA         ld   a,(CA48)
ROMA:49D8 4F               ld   c,a
ROMA:49D9 CD D0 19         call 19D0
ROMA:49DC CD 13 1A         call 1A13
ROMA:49DF CF               rst  08
ROMA:49E0 0B               dec  bc
ROMA:49E1 07               rlca 
ROMA:49E2 16 00            ld   d,00
ROMA:49E4 FA BF C6         ld   a,(C6BF)
ROMA:49E7 5F               ld   e,a
ROMA:49E8 21 FB 49         ld   hl,49FB
ROMA:49EB 2A               ldi  a,(hl)
ROMA:49EC FE FF            cp   a,FF
ROMA:49EE 28 07            jr   z,49F7
ROMA:49F0 BB               cp   e
ROMA:49F1 20 02            jr   nz,49F5
ROMA:49F3 16 01            ld   d,01
ROMA:49F5 18 F4            jr   49EB
ROMA:49F7 7A               ld   a,d
ROMA:49F8 D1               pop  de
ROMA:49F9 C1               pop  bc
ROMA:49FA C9               ret  
14 - Raigeki
FF

Fail-safes (ret)

ROMA:49FD C9               ret  
ROMA:49FE C9               ret  
ROMA:49FF C9               ret  
ROMA:4A00 C9               ret  
ROMA:4A01 C9               ret  
ROMA:4A02 C9               ret  
ROMA:4A03 C9               ret  
ROMA:4A04 C9               ret  
ROMA:4A05 C9               ret

A:4CDF - called by "Legendary card password" routine

ROMA:4CDF F5               push af
ROMA:4CE0 E5               push hl
ROMA:4CE1 CF               rst  08
 => 1D 0B
ROMA:4CE4 21 FB 4C         ld   hl,4CFB
ROMA:4CE7 CD 82 12         call 1282          ;LCD Control
ROMA:4CEA 3E 24            ld   a,24          ;a = 0x24 ; 0d36
ROMA:4CEC CF               rst  08
 => 07 0F
ROMA:4CEF CD 05 4D         call 4D05
ROMA:4CF2 CD 3E 30         call 303E
ROMA:4CF5 CF               rst  08
 => 21 0B
ROMA:4CF8 E1               pop  hl
ROMA:4CF9 F1               pop  af
ROMA:4CFA C9               ret

Bank B

Card Color

Read Card Color data

  • 0x2C13E-0x2C160 - Read the Card Color data, depending on the Card Type
ROMB:413E F5               push af
ROMB:413F C5               push bc
ROMB:4140 D5               push de
ROMB:4141 E5               push hl
ROMB:4142 CD 6D 44         call 446D		;Select Card Color
ROMB:4145 06 00            ld   b,00
ROMB:4147 4F               ld   c,a
ROMB:4148 CB 21            sla  c		;bc = Color ID × 2
ROMB:414A 21 61 41         ld   hl,4161
ROMB:414D 09               add  hl,bc		;hl = Pointer to Color pointers
ROMB:414E 2A               ldi  a,(hl)
ROMB:414F 66               ld   h,(hl)
ROMB:4150 6F               ld   l,a
ROMB:4151 11 B8 C9         ld   de,C9B8
ROMB:4154 0E 08            ld   c,08
ROMB:4156 2A               ldi  a,(hl)		;Read next byte
ROMB:4157 12               ld   (de),a		;Stores it in (C9B8) + current iteration
ROMB:4158 13               inc  de
ROMB:4159 0D               dec  c
ROMB:415A 20 FA            jr   nz,4156		;Loop 8 times
ROMB:415C E1               pop  hl
ROMB:415D D1               pop  de
ROMB:415E C1               pop  bc
ROMB:415F F1               pop  af
ROMB:4160 C9               ret  

Color pointers array

ROMB:4161
6D 41 - Normal Monster
ED 41 - Effect Monster
6D 42 - Unused
ED 42 - Ritual
6D 43 - Magic
ED 43 - Trap

Select Card Color

  • 0x2C46D-0x2C48B - Select the appropriate Card Color:

Green for Magic, Pink for Trap, Blue for Ritual, Orange for Effect Monster, White for Normal Monster

ROMB:446D C5               push bc
ROMB:446E E5               push hl
ROMB:446F 06 00            ld   b,00
ROMB:4471 FA BB C6         ld   a,(C6BB)	;Current card Type
ROMB:4474 4F               ld   c,a
ROMB:4475 21 8C 44         ld   hl,448C
ROMB:4478 09               add  hl,bc		;hl = Pointer to Colors offsets array
ROMB:4479 4E               ld   c,(hl)
ROMB:447A 79               ld   a,c		;a = Color offset
ROMB:447B FE 00            cp   a,00
ROMB:447D 20 09            jr   nz,4488		;If (a ≠ 0), get out of this function
ROMB:447F FA C0 C6         ld   a,(C6C0)	;Current card Effect ID (monster)
ROMB:4482 FE 00            cp   a,00
ROMB:4484 28 02            jr   z,4488		;If(Normal Monster), offset = 0
ROMB:4486 0E 01            ld   c,01		;If(Effect Monster), offset = 1
ROMB:4488 79               ld   a,c		;a = Color offset
ROMB:4489 E1               pop  hl
ROMB:448A C1               pop  bc
ROMB:448B C9               ret  

Color offsets array

ROMB:448B
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 04 05 03

Bank C

rst 08 pointers

ROMC:4002
06 40 - Illustrations ?
42 69 - Characters illustrations ?

C:4006 (Illustrations ?)

ROMC:4006 F5               push af
ROMC:4007 C5               push bc
ROMC:4008 D5               push de
ROMC:4009 E5               push hl
ROMC:400A 16 00            ld   d,00          ;d = 0
ROMC:400C 58               ld   e,b
ROMC:400D CB 23            sla  e             ;e = b << 1;
ROMC:400F 21 33 40         ld   hl,4033       ;hl = 0x4033
ROMC:4012 19               add  hl,de         ;hl += de
ROMC:4013 2A               ldi  a,(hl)
ROMC:4014 66               ld   h,(hl)
ROMC:4015 6F               ld   l,a           ;hl = (hl)
ROMC:4016 06 00            ld   b,00          ;b = 0
ROMC:4018 CB 21            sla  c
ROMC:401A 09               add  hl,bc         ;hl += c << 1
ROMC:401B 2A               ldi  a,(hl)
ROMC:401C 66               ld   h,(hl)
ROMC:401D 6F               ld   l,a           ;hl = (hl)
ROMC:401E 11 08 C5         ld   de,C508       ;de = 0xC508
ROMC:4021 2A               ldi  a,(hl)
ROMC:4022 47               ld   b,a           ;b = (hl)
ROMC:4023 0E 04            ld   c,04          ;c = 4
ROMC:4025 2A               ldi  a,(hl)
ROMC:4026 12               ld   (de),a        ;Copies (hl) to (de)
ROMC:4027 13               inc  de            ;de++
ROMC:4028 0D               dec  c             ;c--
ROMC:4029 20 FA            jr   nz,4025       ;if(c ≠ 0), loop to C:4025
ROMC:402B 05               dec  b             ;b--
ROMC:402C 20 F5            jr   nz,4023       ;if(b ≠ 0), loop to C:4023
ROMC:402E E1               pop  hl
ROMC:402F D1               pop  de
ROMC:4030 C1               pop  bc
ROMC:4031 F1               pop  af
ROMC:4032 C9               ret

C:4033 (Pointers)

ROMC:4033
65 40
6B 40
71 40
77 40
7D 40
83 40
89 40
8F 40
95 40
9B 40
A1 40
A7 40
AD 40
B3 40
B9 40
BF 40
C5 40
CB 40
D1 40
D7 40
DD 40
E3 40
E9 40
EF 40
F5 40
FB 40
84 41
0D 42
96 42
0F 43
88 43
01 44
8E 44
1B 45
A8 45
41 46
DA 46
73 47
04 48
95 48
26 49
B3 49
40 4A
CD 4A
5A 4B
E7 4B
74 4C
F5 4C
76 4D
F7 4D
80 4E
09 4F
92 4F
0B 50
84 50
FD 50
96 51
2F 52
C8 52
55 53
E2 53
6F 54
00 55
91 55
22 56
BB 56
54 57
ED 57
72 58
F7 58
7C 59
05 5A
8E 5A
17 5B
90 5B
09 5C
82 5C
07 5D
8C 5D
11 5E
A6 5E
3B 5F
D0 5F
41 60
B2 60
23 61
A0 61
1D 62
9A 62
2F 63
C4 63
59 64
F2 64
8B 65
24 66
BD 66
56 67
EF 67
60 68
D1 68

C:6942 (Characters illustrations ?)

ROMC:6942 F5               push af
ROMC:6943 C5               push bc
ROMC:6944 D5               push de
ROMC:6945 E5               push hl
ROMC:6946 16 00            ld   d,00
ROMC:6948 58               ld   e,b
ROMC:6949 CB 23            sla  e
ROMC:694B 21 6F 69         ld   hl,696F
ROMC:694E 19               add  hl,de
ROMC:694F 2A               ldi  a,(hl)
ROMC:6950 66               ld   h,(hl)
ROMC:6951 6F               ld   l,a
ROMC:6952 06 00            ld   b,00
ROMC:6954 CB 21            sla  c
ROMC:6956 09               add  hl,bc
ROMC:6957 2A               ldi  a,(hl)
ROMC:6958 66               ld   h,(hl)
ROMC:6959 6F               ld   l,a
ROMC:695A 11 00 C5         ld   de,C500            ;de = pointer to illustration_colors
ROMC:695D 2A               ldi  a,(hl)
ROMC:695E 47               ld   b,a
ROMC:695F 0E 04            ld   c,04
ROMC:6961 2A               ldi  a,(hl)
ROMC:6962 12               ld   (de),a
ROMC:6963 13               inc  de
ROMC:6964 0D               dec  c
ROMC:6965 20 FA            jr   nz,6961
ROMC:6967 05               dec  b
ROMC:6968 20 F5            jr   nz,695F
ROMC:696A E1               pop  hl
ROMC:696B D1               pop  de
ROMC:696C C1               pop  bc
ROMC:696D F1               pop  af
ROMC:696E C9               ret

Bank D - CPU AI program

D:4004

ROMD:4004 C5               push bc
ROMD:4005 D5               push de
ROMD:4006 E5               push hl
ROMD:4007 CD 19 59         call 5919
ROMD:400A CD 32 74         call 7432
ROMD:400D CD 23 76         call 7623
ROMD:4010 CD 93 47         call 4793
ROMD:4013 CD A4 60         call 60A4
ROMD:4016 CD 2B 59         call 592B
ROMD:4019 5F               ld   e,a
ROMD:401A 06 00            ld   b,00
ROMD:401C 4F               ld   c,a
ROMD:401D CB 27            sla  a
ROMD:401F CB 10            rl   b
ROMD:4021 81               add  c
ROMD:4022 4F               ld   c,a
ROMD:4023 3E 00            ld   a,00
ROMD:4025 88               adc  b
ROMD:4026 47               ld   b,a
ROMD:4027 79               ld   a,c
ROMD:4028 85               add  l
ROMD:4029 6F               ld   l,a
ROMD:402A 78               ld   a,b
ROMD:402B 8C               adc  h
ROMD:402C 67               ld   h,a
ROMD:402D 2A               ldi  a,(hl)
ROMD:402E 4F               ld   c,a
ROMD:402F CD 9B 60         call 609B
ROMD:4032 79               ld   a,c
ROMD:4033 FE 00            cp   a,00
ROMD:4035 28 46            jr   z,407D
ROMD:4037 FE 01            cp   a,01
ROMD:4039 28 42            jr   z,407D
ROMD:403B FE 02            cp   a,02
ROMD:403D 28 3E            jr   z,407D
ROMD:403F FE 0C            cp   a,0C
ROMD:4041 28 3A            jr   z,407D
ROMD:4043 FE 0D            cp   a,0D
ROMD:4045 28 36            jr   z,407D
ROMD:4047 FE 0E            cp   a,0E
ROMD:4049 28 32            jr   z,407D
ROMD:404B FE 0F            cp   a,0F
ROMD:404D 28 2E            jr   z,407D
ROMD:404F CD F6 44         call 44F6
ROMD:4052 CD 4A 64         call 644A
ROMD:4055 FE 01            cp   a,01
ROMD:4057 20 24            jr   nz,407D
ROMD:4059 3E 55            ld   a,55
ROMD:405B 83               add  e
ROMD:405C CD 2F 59         call 592F
ROMD:405F CD A4 60         call 60A4
ROMD:4062 CD 2B 59         call 592B
ROMD:4065 06 00            ld   b,00
ROMD:4067 4F               ld   c,a
ROMD:4068 CB 27            sla  a
ROMD:406A CB 10            rl   b
ROMD:406C 81               add  c
ROMD:406D 4F               ld   c,a
ROMD:406E 3E 00            ld   a,00
ROMD:4070 88               adc  b
ROMD:4071 47               ld   b,a
ROMD:4072 79               ld   a,c
ROMD:4073 85               add  l
ROMD:4074 6F               ld   l,a
ROMD:4075 78               ld   a,b
ROMD:4076 8C               adc  h
ROMD:4077 67               ld   h,a
ROMD:4078 2A               ldi  a,(hl)
ROMD:4079 4F               ld   c,a
ROMD:407A CD 9B 60         call 609B
ROMD:407D 21 9D 40         ld   hl,409D
ROMD:4080 06 00            ld   b,00
ROMD:4082 CB 21            sla  c
ROMD:4084 CB 10            rl   b
ROMD:4086 79               ld   a,c
ROMD:4087 85               add  l
ROMD:4088 6F               ld   l,a
ROMD:4089 78               ld   a,b
ROMD:408A 8C               adc  h
ROMD:408B 67               ld   h,a
ROMD:408C 2A               ldi  a,(hl)
ROMD:408D 4F               ld   c,a
ROMD:408E 7E               ld   a,(hl)
ROMD:408F 67               ld   h,a
ROMD:4090 69               ld   l,c
ROMD:4091 01 96 40         ld   bc,4096
ROMD:4094 C5               push bc
ROMD:4095 E9               jp   hl
ROMD:4096 CD 86 60         call 6086
ROMD:4099 E1               pop  hl
ROMD:409A D1               pop  de
ROMD:409B C1               pop  bc
ROMD:409C C9               ret  

D:409D (pointers)

ROMD:409D
BD 40 - ret
DF 40
7A 42
AF 42
48 43
42 44
BD 40 - ret
5E 44
82 44
98 44
AE 44
D2 44
B2 41
F7 41
BD 40 - ret
BE 40

D:40BD (ret)

ROMD:40BD C9               ret  

D:40BE

ROMD:40BE C5               push bc
ROMD:40BF E5               push hl
ROMD:40C0 3E 02            ld   a,02
ROMD:40C2 CD 80 75         call 7580
ROMD:40C5 CD 2B 59         call 592B
ROMD:40C8 CD 8C 75         call 758C
ROMD:40CB 3E 00            ld   a,00
ROMD:40CD CD 90 75         call 7590
ROMD:40D0 CD A8 60         call 60A8
ROMD:40D3 CD AD 5F         call 5FAD
ROMD:40D6 CD D0 19         call 19D0
ROMD:40D9 CD E6 19         call 19E6
ROMD:40DC E1               pop  hl
ROMD:40DD C1               pop  bc
ROMD:40DE C9               ret  

CPU AI

ROMD:40DF C5               push bc
ROMD:40E0 E5               push hl
ROMD:40E1 3E 02            ld   a,02
ROMD:40E3 CD 80 75         call 7580		;(D4FC) = 2
ROMD:40E6 CD 2B 59         call 592B
ROMD:40E9 CD 8C 75         call 758C		;(D4FD) = a
ROMD:40EC CD A8 60         call 60A8
ROMD:40EF CD AD 5F         call 5FAD
ROMD:40F2 CD D0 19         call 19D0		;Update Column and Row
ROMD:40F5 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:40F8 FA A3 C7         ld   a,(C7A3)
ROMD:40FB 4F               ld   c,a
ROMD:40FC FA A4 C7         ld   a,(C7A4)
ROMD:40FF 47               ld   b,a
ROMD:4100 CD 02 76         call 7602
ROMD:4103 CD FD 20         call 20FD		;Copies Card played by CPU in (C88B)
ROMD:4106 CD AC 60         call 60AC
ROMD:4109 CD AD 5F         call 5FAD
ROMD:410C CD D0 19         call 19D0		;Update Column and Row
ROMD:410F CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:4112 FA A3 C7         ld   a,(C7A3)	;bc = Card being processed
ROMD:4115 4F               ld   c,a
ROMD:4116 FA A4 C7         ld   a,(C7A4)
ROMD:4119 47               ld   b,a
ROMD:411A CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:411D FE 01            cp   a,01
ROMD:411F 28 59            jr   z,417A
ROMD:4121 CD 0D 76         call 760D
ROMD:4124 CD 0F 21         call 210F
ROMD:4127 CD 42 21         call 2142		;Fusion subroutine
ROMD:412A FE 00            cp   a,00
ROMD:412C 20 4C            jr   nz,417A
ROMD:412E CF               rst  08
ROMD:412F 2D               dec  l
ROMD:4130 04               inc  b
ROMD:4131 FE 00            cp   a,00
ROMD:4133 20 45            jr   nz,417A
ROMD:4135 3E 01            ld   a,01
ROMD:4137 CD 90 75         call 7590		;Updates (D504)
ROMD:413A CD AC 60         call 60AC
ROMD:413D CD AD 5F         call 5FAD
ROMD:4140 CD D0 19         call 19D0		;Update Column and Row
ROMD:4143 FA 8F C8         ld   a,(C88F)
ROMD:4146 EA A3 C7         ld   (C7A3),a
ROMD:4149 FA 90 C8         ld   a,(C890)
ROMD:414C EA A4 C7         ld   (C7A4),a	;Copy Fusion Monster ID in (C7A3) (Card being processed)
ROMD:414F FA 8F C8         ld   a,(C88F)
ROMD:4152 4F               ld   c,a
ROMD:4153 FA 90 C8         ld   a,(C890)
ROMD:4156 47               ld   b,a		;Copy Fusion Monster ID in register bc
ROMD:4157 CD 18 76         call 7618
ROMD:415A CD 25 20         call 2025		;Hide Card, reset Level
ROMD:415D CD C9 1F         call 1FC9		;Reveal Card
ROMD:4160 CD DF 1F         call 1FDF		;Freezes Card
ROMD:4163 CD B4 1F         call 1FB4		;Reset Card Level
ROMD:4166 CD 00 20         call 2000		;Card controlled by its owner
ROMD:4169 CD FB 19         call 19FB		;Update selected card ID and status
ROMD:416C CD A8 60         call 60A8
ROMD:416F CD AD 5F         call 5FAD
ROMD:4172 CD D0 19         call 19D0		;Update Column and Row
ROMD:4175 CD E6 19         call 19E6		;Remove selected card from the field
ROMD:4178 18 35            jr   41AF
ROMD:417A 3E 00            ld   a,00
ROMD:417C CD 90 75         call 7590		;Updates (D504)
ROMD:417F CD A8 60         call 60A8
ROMD:4182 CD AD 5F         call 5FAD
ROMD:4185 CD D0 19         call 19D0		;Update Column and Row
ROMD:4188 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:418B CD 25 20         call 2025		;Hide Card, reset Level
ROMD:418E CD D4 1F         call 1FD4		;Hide Card
ROMD:4191 CD 00 20         call 2000		;Card controlled by its owner
ROMD:4194 CD AC 60         call 60AC
ROMD:4197 CD AD 5F         call 5FAD
ROMD:419A CD D0 19         call 19D0		;Update Column and Row
ROMD:419D CD FB 19         call 19FB		;Updates selected card ID and status
ROMD:41A0 CD A8 60         call 60A8
ROMD:41A3 CD AD 5F         call 5FAD
ROMD:41A6 CD D0 19         call 19D0		;Update Column and Row
ROMD:41A9 CD E6 19         call 19E6		;Remove selected card from the field
ROMD:41AC CD B0 60         call 60B0
ROMD:41AF E1               pop  hl
ROMD:41B0 C1               pop  bc
ROMD:41B1 C9               ret

CPU AI - Damage Calculation

  • 0x34407-0x34441 - Damage calculation
ROMD:4407 39               add  hl,sp
ROMD:4408 03               inc  bc
ROMD:4409 FA C7 C5         ld   a,(C5C7)
ROMD:440C 4F               ld   c,a
ROMD:440D FA C8 C5         ld   a,(C5C8)
ROMD:4410 47               ld   b,a		;bc = Player's Life Points
ROMD:4411 CD 9F 75         call 759F		;Stores Player's Life Points for damage calculation 
ROMD:4414 FA CA C5         ld   a,(C5CA)
ROMD:4417 4F               ld   c,a
ROMD:4418 FA CB C5         ld   a,(C5CB)
ROMD:441B 47               ld   b,a		;bc = CPU's Life Points
ROMD:441C CD D6 75         call 75D6		;Stores CPU's Life Points for damage calculation 
ROMD:441F CF               rst  08
ROMD:4420 31 03       => 03:4031
ROMD:4422 CD 20 59         call 5920
ROMD:4425 CD 5F 60         call 605F
ROMD:4428 FA C7 C5         ld   a,(C5C7)
ROMD:442B 4F               ld   c,a
ROMD:442C FA C8 C5         ld   a,(C5C8)
ROMD:442F 47               ld   b,a		;bc = Player's Life Points
ROMD:4430 CD AA 75         call 75AA
ROMD:4433 FA CA C5         ld   a,(C5CA)
ROMD:4436 4F               ld   c,a
ROMD:4437 FA CB C5         ld   a,(C5CB)
ROMD:443A 47               ld   b,a		;bc = CPU's Life Points
ROMD:443B CD E1 75         call 75E1
ROMD:443E E1               pop  hl
ROMD:443F D1               pop  de
ROMD:4440 C1               pop  bc
ROMD:4441 C9               ret  

D:4442

ROMD:4442 C5               push bc
ROMD:4443 D5               push de
ROMD:4444 E5               push hl
ROMD:4445 CD A8 60         call 60A8
ROMD:4448 CD AD 5F         call 5FAD
ROMD:444B CD 76 64         call 6476
ROMD:444E CD AC 60         call 60AC
ROMD:4451 CD AD 5F         call 5FAD
ROMD:4454 CD 81 64         call 6481
ROMD:4457 CD 61 67         call 6761
ROMD:445A E1               pop  hl
ROMD:445B D1               pop  de
ROMD:445C C1               pop  bc
ROMD:445D C9               ret  

D:445E

ROMD:445E C5               push bc
ROMD:445F E5               push hl
ROMD:4460 CD A8 60         call 60A8
ROMD:4463 CD AD 5F         call 5FAD
ROMD:4466 78               ld   a,b
ROMD:4467 EA 01 D0         ld   (D001),a
ROMD:446A 79               ld   a,c
ROMD:446B EA 02 D0         ld   (D002),a
ROMD:446E CD AC 60         call 60AC
ROMD:4471 CD AD 5F         call 5FAD
ROMD:4474 78               ld   a,b
ROMD:4475 EA 03 D0         ld   (D003),a
ROMD:4478 79               ld   a,c
ROMD:4479 EA 04 D0         ld   (D004),a
ROMD:447C CD 29 45         call 4529
ROMD:447F E1               pop  hl
ROMD:4480 C1               pop  bc
ROMD:4481 C9               ret  

D:4482

ROMD:4482 C5               push bc
ROMD:4483 E5               push hl
ROMD:4484 CD A8 60         call 60A8
ROMD:4487 CD AD 5F         call 5FAD
ROMD:448A 78               ld   a,b
ROMD:448B EA 01 D0         ld   (D001),a
ROMD:448E 79               ld   a,c
ROMD:448F EA 02 D0         ld   (D002),a
ROMD:4492 CD AA 45         call 45AA
ROMD:4495 E1               pop  hl
ROMD:4496 C1               pop  bc
ROMD:4497 C9               ret  

D:4498

ROMD:4498 C5               push bc
ROMD:4499 E5               push hl
ROMD:449A CD A8 60         call 60A8
ROMD:449D CD AD 5F         call 5FAD
ROMD:44A0 78               ld   a,b
ROMD:44A1 EA 01 D0         ld   (D001),a
ROMD:44A4 79               ld   a,c
ROMD:44A5 EA 02 D0         ld   (D002),a
ROMD:44A8 CD DB 45         call 45DB
ROMD:44AB E1               pop  hl
ROMD:44AC C1               pop  bc
ROMD:44AD C9               ret

AI - Attack Phase

ROMD:4678 C5               push bc
ROMD:4679 FA 05 D0         ld   a,(D005)
ROMD:467C FE 01            cp   a,01
ROMD:467E 20 3C            jr   nz,46BC
ROMD:4680 3E 02            ld   a,02
ROMD:4682 CD 80 75         call 7580
ROMD:4685 CD 2B 59         call 592B
ROMD:4688 CD 8C 75         call 758C
ROMD:468B 3E 03            ld   a,03
ROMD:468D CD 90 75         call 7590
ROMD:4690 FA 01 D0         ld   a,(D001)
ROMD:4693 47               ld   b,a
ROMD:4694 FA 02 D0         ld   a,(D002)
ROMD:4697 4F               ld   c,a
ROMD:4698 CD D0 19         call 19D0		;Updates field Column and Row
ROMD:469B CD 13 1A         call 1A13		;Stores selected card ID and status
ROMD:469E FA A3 C7         ld   a,(C7A3)
ROMD:46A1 4F               ld   c,a
ROMD:46A2 FA A4 C7         ld   a,(C7A4)
ROMD:46A5 47               ld   b,a		;bc = Card being processed
ROMD:46A6 CD 02 76         call 7602
ROMD:46A9 CD E6 19         call 19E6		;Remove selected card from the field
ROMD:46AC FA 06 D0         ld   a,(D006)
ROMD:46AF 4F               ld   c,a
ROMD:46B0 FA 07 D0         ld   a,(D007)
ROMD:46B3 47               ld   b,a
ROMD:46B4 CD 0D 76         call 760D
ROMD:46B7 CF               rst  08
ROMD:46B8 15 0A        => A:4015 - Remove Player's Trap
ROMD:46BA 18 7F            jr   473B
ROMD:46BC FA 01 D0         ld   a,(D001)
ROMD:46BF 47               ld   b,a
ROMD:46C0 FA 02 D0         ld   a,(D002)
ROMD:46C3 4F               ld   c,a
ROMD:46C4 CD D0 19         call 19D0		;Updates field Column and Row
ROMD:46C7 CD 13 1A         call 1A13		;Stores selected card ID and status
ROMD:46CA FA A5 C7         ld   a,(C7A5)
ROMD:46CD E6 30            and  a,30
ROMD:46CF CB 37            swap a		;a = Stat Level
ROMD:46D1 CF               rst  08
ROMD:46D2 09 07        => 7:4009 - Updates current Stat Level
ROMD:46D4 CD 25 20         call 2025
ROMD:46D7 CD C9 1F         call 1FC9		;Reveal Card
ROMD:46DA CD DF 1F         call 1FDF		;Freezes Card
ROMD:46DD CD FB 19         call 19FB		;Update selected card ID and status
ROMD:46E0 FA A3 C7         ld   a,(C7A3)
ROMD:46E3 4F               ld   c,a
ROMD:46E4 FA A4 C7         ld   a,(C7A4)
ROMD:46E7 47               ld   b,a
ROMD:46E8 CF               rst  08
ROMD:46E9 05 07        => 7:4005 - Calculate ATK and DEF
ROMD:46EB CF               rst  08
ROMD:46EC 35               dec  (hl)
ROMD:46ED 03               inc  bc
ROMD:46EE FA 03 D0         ld   a,(D003)
ROMD:46F1 47               ld   b,a
ROMD:46F2 FA 04 D0         ld   a,(D004)
ROMD:46F5 4F               ld   c,a
ROMD:46F6 CD D0 19         call 19D0		;Updates field Column and Row
ROMD:46F9 CD 13 1A         call 1A13		;Stores selected card ID and status
ROMD:46FC FA A5 C7         ld   a,(C7A5)
ROMD:46FF E6 30            and  a,30
ROMD:4701 CB 37            swap a		;a = Stat Level
ROMD:4703 CF               rst  08
ROMD:4704 09 07        => 7:4009 - Updates current Stat Level
ROMD:4706 CD C9 1F         call 1FC9		;Reveal Card
ROMD:4709 CD FB 19         call 19FB		;Update selected card ID and status
ROMD:470C FA A5 C7         ld   a,(C7A5)
ROMD:470F E6 07            and  a,07
ROMD:4711 FE 03            cp   a,03
ROMD:4713 20 04            jr   nz,4719		;If not in no-Frozen Attack mode, jump to D:4719
ROMD:4715 3E 05            ld   a,05
ROMD:4717 18 02            jr   471B
ROMD:4719 3E 01            ld   a,01
ROMD:471B CF               rst  08
ROMD:471C 3B               dec  sp
ROMD:471D 03               inc  bc
ROMD:471E FA A3 C7         ld   a,(C7A3)
ROMD:4721 4F               ld   c,a
ROMD:4722 FA A4 C7         ld   a,(C7A4)
ROMD:4725 47               ld   b,a		;bc = Card being processed
ROMD:4726 CF               rst  08
ROMD:4727 05 07        => 7:4005 - Calculate ATK and DEF
ROMD:4729 CF               rst  08
ROMD:472A 33 03        => 3:4033
ROMD:472C CF               rst  08
ROMD:472D 37 03        => 3:4037
ROMD:472F CF               rst  08
ROMD:4730 39 03        => 3:4039
ROMD:4732 CF               rst  08
ROMD:4733 31 03        => 3:4031
ROMD:4735 CD 20 59         call 5920
ROMD:4738 CD 6A 47         call 476A
ROMD:473B C1               pop  bc
ROMD:473C C9               ret

CPU AI - Retrieve opponent's Trap ID

ROMD:4F0E C5               push bc
ROMD:4F0F 06 00            ld   b,00
ROMD:4F11 0E 03            ld   c,03		;column 0, row 3: Player's Trap card zone
ROMD:4F13 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:4F16 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:4F19 FA A3 C7         ld   a,(C7A3)
ROMD:4F1C 4F               ld   c,a
ROMD:4F1D FA A4 C7         ld   a,(C7A4)
ROMD:4F20 47               ld   b,a		;bc = opponent's Trap card ID
ROMD:4F21 CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:4F24 FE 01            cp   a,01
ROMD:4F26 20 05            jr   nz,4F2D		;if a Monster is in the Trap zone, get out of this function
ROMD:4F28 3E 80            ld   a,80
ROMD:4F2A EA 67 D0         ld   (D067),a	;(D067) = 0x80
ROMD:4F2D C1               pop  bc
ROMD:4F2E C9               ret

ROMD:5919

ROMD:5919 3E 00            ld   a,00
ROMD:591B EA 14 D0         ld   (D014),a
ROMD:591E C9               ret  

ROMD:591F (ret)

ROMD:591F C9               ret  

ROMD:5920

ROMD:5920 FA C5 C7         ld   a,(C7C5)
ROMD:5923 EA 14 D0         ld   (D014),a
ROMD:5926 C9               ret  

ROMD:5927

ROMD:5927 FA 14 D0         ld   a,(D014)
ROMD:592A C9               ret  

ROMD:592B

ROMD:592B FA 13 D0         ld   a,(D013)
ROMD:592E C9               ret  

ROMD:592F

ROMD:592F EA 13 D0         ld   (D013),a
ROMD:5932 C9               ret  

ROMD:5933

ROMD:5933 FA 16 D0         ld   a,(D016)
ROMD:5936 C6 01            add  a,01
ROMD:5938 EA 16 D0         ld   (D016),a
ROMD:593B FA 17 D0         ld   a,(D017)
ROMD:593E CE 00            adc  a,00
ROMD:5940 EA 17 D0         ld   (D017),a
ROMD:5943 FA 18 D0         ld   a,(D018)
ROMD:5946 C6 01            add  a,01
ROMD:5948 EA 18 D0         ld   (D018),a
ROMD:594B FA 19 D0         ld   a,(D019)
ROMD:594E CE 00            adc  a,00
ROMD:5950 EA 19 D0         ld   (D019),a
ROMD:5953 C9               ret  

ROMD:5954

ROMD:5954 C5               push bc
ROMD:5955 01 78 05         ld   bc,0578
ROMD:5958 FA 16 D0         ld   a,(D016)
ROMD:595B 81               add  c
ROMD:595C EA 16 D0         ld   (D016),a
ROMD:595F FA 17 D0         ld   a,(D017)
ROMD:5962 88               adc  b
ROMD:5963 EA 17 D0         ld   (D017),a
ROMD:5966 FA 18 D0         ld   a,(D018)
ROMD:5969 81               add  c
ROMD:596A EA 18 D0         ld   (D018),a
ROMD:596D FA 19 D0         ld   a,(D019)
ROMD:5970 88               adc  b
ROMD:5971 EA 19 D0         ld   (D019),a
ROMD:5974 C1               pop  bc
ROMD:5975 C9               ret  

ROMD:5976

ROMD:5976 C5               push bc
ROMD:5977 FA B7 C6         ld   a,(C6B7)
ROMD:597A EA F6 C5         ld   (C5F6),a
ROMD:597D FA B8 C6         ld   a,(C6B8)
ROMD:5980 EA F7 C5         ld   (C5F7),a
ROMD:5983 CD C1 15         call 15C1
ROMD:5986 79               ld   a,c
ROMD:5987 EA 16 D0         ld   (D016),a
ROMD:598A 78               ld   a,b
ROMD:598B EA 17 D0         ld   (D017),a
ROMD:598E FA B9 C6         ld   a,(C6B9)
ROMD:5991 EA F6 C5         ld   (C5F6),a
ROMD:5994 FA BA C6         ld   a,(C6BA)
ROMD:5997 EA F7 C5         ld   (C5F7),a
ROMD:599A CD C1 15         call 15C1
ROMD:599D 79               ld   a,c
ROMD:599E EA 18 D0         ld   (D018),a
ROMD:59A1 78               ld   a,b
ROMD:59A2 EA 19 D0         ld   (D019),a
ROMD:59A5 C1               pop  bc
ROMD:59A6 C9               ret  

ROMD:59A7

ROMD:59A7 3E 0F            ld   a,0F
ROMD:59A9 91               sub  c
ROMD:59AA 4F               ld   c,a
ROMD:59AB 3E 27            ld   a,27
ROMD:59AD 98               sbc  b
ROMD:59AE 47               ld   b,a
ROMD:59AF C9               ret  

ROMD:59B0

ROMD:59B0 F5               push af
ROMD:59B1 C5               push bc
ROMD:59B2 D5               push de
ROMD:59B3 E5               push hl
ROMD:59B4 CD 41 61         call 6141
ROMD:59B7 CD D6 59         call 59D6
ROMD:59BA CD E3 57         call 57E3
ROMD:59BD FE 00            cp   a,00
ROMD:59BF 28 10            jr   z,59D1
ROMD:59C1 CD 04 40         call 4004
ROMD:59C4 CD AF 74         call 74AF
ROMD:59C7 CF               rst  08
ROMD:59C8 07               rlca 
ROMD:59C9 06 CD            ld   b,CD
ROMD:59CB 73               ld   (hl),e
ROMD:59CC 24               inc  h
ROMD:59CD FE 00            cp   a,00
ROMD:59CF 28 E6            jr   z,59B7
ROMD:59D1 E1               pop  hl
ROMD:59D2 D1               pop  de
ROMD:59D3 C1               pop  bc
ROMD:59D4 F1               pop  af
ROMD:59D5 C9               ret  

CPU AI main subroutine

ROMD:59D6 C5               push bc
ROMD:59D7 E5               push hl
ROMD:59D8 CD C3 5F         call 5FC3		;Copies CPU's hand, Life Points and SoRL status for AI decision
ROMD:59DB CD 22 5A         call 5A22		;CPU AI - Play a Monster card
ROMD:59DE CD 19 59         call 5919
ROMD:59E1 CD FE 58         call 58FE
ROMD:59E4 CD 09 4C         call 4C09
ROMD:59E7 CD C7 57         call 57C7
ROMD:59EA CD FE 58         call 58FE
ROMD:59ED 21 49 61         ld   hl,6149
ROMD:59F0 06 00            ld   b,00
ROMD:59F2 CD 22 5A         call 5A22		;CPU AI - Play a Monster card
ROMD:59F5 CD 19 59         call 5919
ROMD:59F8 CD 32 74         call 7432
ROMD:59FB 2A               ldi  a,(hl)
ROMD:59FC 4F               ld   c,a
ROMD:59FD CD 2F 59         call 592F
ROMD:5A00 2A               ldi  a,(hl)
ROMD:5A01 EA C2 D4         ld   (D4C2),a
ROMD:5A04 2A               ldi  a,(hl)
ROMD:5A05 EA C3 D4         ld   (D4C3),a
ROMD:5A08 79               ld   a,c
ROMD:5A09 CD 9B 5A         call 5A9B
ROMD:5A0C FE 00            cp   a,00
ROMD:5A0E 20 06            jr   nz,5A16
ROMD:5A10 CD 09 4C         call 4C09
ROMD:5A13 CD 81 57         call 5781
ROMD:5A16 CD 11 60         call 6011
ROMD:5A19 04               inc  b
ROMD:5A1A 3E FF            ld   a,FF
ROMD:5A1C B8               cp   b
ROMD:5A1D 20 D3            jr   nz,59F2
ROMD:5A1F E1               pop  hl
ROMD:5A20 C1               pop  bc
ROMD:5A21 C9               ret

CPU AI - Play a Monster card

ROMD:5A22 C5               push bc
ROMD:5A23 D5               push de
ROMD:5A24 E5               push hl
ROMD:5A25 3E 00            ld   a,00
ROMD:5A27 EA C5 D4         ld   (D4C5),a
ROMD:5A2A EA C6 D4         ld   (D4C6),a
ROMD:5A2D 26 00            ld   h,00
ROMD:5A2F 44               ld   b,h
ROMD:5A30 0E 01            ld   c,01
ROMD:5A32 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:5A35 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:5A38 FA A3 C7         ld   a,(C7A3)
ROMD:5A3B 4F               ld   c,a
ROMD:5A3C FA A4 C7         ld   a,(C7A4)
ROMD:5A3F 47               ld   b,a		;bc = Card being processed
ROMD:5A40 CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:5A43 FE 01            cp   a,01
ROMD:5A45 28 3F            jr   z,5A86		;if it is not a Monster card, jump to D:5A86
ROMD:5A47 CD 4F 20         call 204F		;Retrieve Card Frozen status
ROMD:5A4A FE 00            cp   a,00
ROMD:5A4C 20 38            jr   nz,5A86		;if the card is Frozen, jump to D:5A86
ROMD:5A4E FA E8 C5         ld   a,(C5E8)	;a = Field ID
ROMD:5A51 CF               rst  08
ROMD:5A52 07 07       => 07:4007 - Updates current Field
ROMD:5A54 CD DB 60         call 60DB
ROMD:5A57 CF               rst  08
ROMD:5A58 09 07       => 07:4009 - Updates (C6B2)
ROMD:5A5A CF               rst  08
ROMD:5A5B 05 07       => 07:4005 - to 7:4044
ROMD:5A5D FA B7 C6         ld   a,(C6B7)
ROMD:5A60 4F               ld   c,a
ROMD:5A61 FA B8 C6         ld   a,(C6B8)
ROMD:5A64 47               ld   b,a		;bc = Selected Player's card ATK
ROMD:5A65 FA C5 D4         ld   a,(D4C5)
ROMD:5A68 5F               ld   e,a
ROMD:5A69 FA C6 D4         ld   a,(D4C6)
ROMD:5A6C 57               ld   d,a		;de = Selected CPU's card ATK
ROMD:5A6D B8               cp   b
ROMD:5A6E 38 08            jr   c,5A78		;if(CPU's card ATK < Player's card ATK), jump to D:5A78
ROMD:5A70 20 14            jr   nz,5A86
ROMD:5A72 7B               ld   a,e
ROMD:5A73 B9               cp   c
ROMD:5A74 38 02            jr   c,5A78
ROMD:5A76 18 0E            jr   5A86
ROMD:5A78 79               ld   a,c
ROMD:5A79 D6 01            sub  a,01
ROMD:5A7B 27               daa  
ROMD:5A7C EA C5 D4         ld   (D4C5),a
ROMD:5A7F 78               ld   a,b
ROMD:5A80 DE 00            sbc  a,00
ROMD:5A82 27               daa  
ROMD:5A83 EA C6 D4         ld   (D4C6),a
ROMD:5A86 24               inc  h
ROMD:5A87 7C               ld   a,h
ROMD:5A88 FE 05            cp   a,05
ROMD:5A8A 20 A3            jr   nz,5A2F		;Loop to D:5A2F until the entire CPU's hand has been checked
ROMD:5A8C FA C5 D4         ld   a,(D4C5)
ROMD:5A8F 4F               ld   c,a
ROMD:5A90 FA C6 D4         ld   a,(D4C6)
ROMD:5A93 47               ld   b,a
ROMD:5A94 CD 38 52         call 5238
ROMD:5A97 E1               pop  hl
ROMD:5A98 D1               pop  de
ROMD:5A99 C1               pop  bc
ROMD:5A9A C9               ret

CPU card played subroutine

  • 0x35B0F-0x35C0D - CPU turn AI ?
ROMD:5B0F C5               push bc
ROMD:5B10 D5               push de
ROMD:5B11 E5               push hl
ROMD:5B12 1E 01            ld   e,01
ROMD:5B14 21 C2 D4         ld   hl,D4C2
ROMD:5B17 CD AD 5F         call 5FAD
ROMD:5B1A CD D0 19         call 19D0		;Update Column and Row
ROMD:5B1D CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:5B20 FA A3 C7         ld   a,(C7A3)
ROMD:5B23 4F               ld   c,a
ROMD:5B24 FA A4 C7         ld   a,(C7A4)
ROMD:5B27 47               ld   b,a		;Copy Card being processed in register bc
ROMD:5B28 CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:5B2B FE 00            cp   a,00
ROMD:5B2D C2 09 5C         jp   nz,5C09
ROMD:5B30 CD 4F 20         call 204F		;Retrieve Card Frozen status
ROMD:5B33 FE 00            cp   a,00
ROMD:5B35 C2 09 5C         jp   nz,5C09		;If the card is Frozen, get out of this function
ROMD:5B38 CF               rst  08
ROMD:5B39 83               add  e
ROMD:5B3A 03               inc  bc
ROMD:5B3B FE 00            cp   a,00
ROMD:5B3D C2 09 5C         jp   nz,5C09
ROMD:5B40 21 C3 D4         ld   hl,D4C3
ROMD:5B43 CD AD 5F         call 5FAD
ROMD:5B46 CD D0 19         call 19D0		;Update Column and Row
ROMD:5B49 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:5B4C FA A3 C7         ld   a,(C7A3)
ROMD:5B4F 4F               ld   c,a
ROMD:5B50 FA A4 C7         ld   a,(C7A4)
ROMD:5B53 47               ld   b,a		;Copy Card being processed in register bc
ROMD:5B54 CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:5B57 FE 01            cp   a,01
ROMD:5B59 28 7C            jr   z,5BD7
ROMD:5B5B CD 4F 20         call 204F		;Retrieve Card Frozen status
ROMD:5B5E FE 00            cp   a,00
ROMD:5B60 C2 09 5C         jp   nz,5C09		;If the card is Frozen, get out of this function
ROMD:5B63 CD DC 20         call 20DC
ROMD:5B66 21 C2 D4         ld   hl,D4C2
ROMD:5B69 CD AD 5F         call 5FAD
ROMD:5B6C CD D0 19         call 19D0		;Update Column and Row
ROMD:5B6F CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:5B72 FA A3 C7         ld   a,(C7A3)
ROMD:5B75 4F               ld   c,a
ROMD:5B76 FA A4 C7         ld   a,(C7A4)
ROMD:5B79 47               ld   b,a		;Copy Card being processed in register bc
ROMD:5B7A CD FD 20         call 20FD
ROMD:5B7D 21 C3 D4         ld   hl,D4C3
ROMD:5B80 CD AD 5F         call 5FAD
ROMD:5B83 CD D0 19         call 19D0		;Update Column and Row
ROMD:5B86 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:5B89 FA A3 C7         ld   a,(C7A3)
ROMD:5B8C 4F               ld   c,a
ROMD:5B8D FA A4 C7         ld   a,(C7A4)
ROMD:5B90 47               ld   b,a		;Copy Card being processed in register bc
ROMD:5B91 CD 0F 21         call 210F
ROMD:5B94 CD 42 21         call 2142
ROMD:5B97 FE 00            cp   a,00
ROMD:5B99 20 3C            jr   nz,5BD7
ROMD:5B9B CF               rst  08
ROMD:5B9C 2D               dec  l
ROMD:5B9D 04               inc  b
ROMD:5B9E FE 00            cp   a,00
ROMD:5BA0 20 35            jr   nz,5BD7
ROMD:5BA2 21 C3 D4         ld   hl,D4C3
ROMD:5BA5 CD AD 5F         call 5FAD
ROMD:5BA8 CD D0 19         call 19D0		;Update Column and Row
ROMD:5BAB FA 8F C8         ld   a,(C88F)
ROMD:5BAE EA A3 C7         ld   (C7A3),a
ROMD:5BB1 FA 90 C8         ld   a,(C890)
ROMD:5BB4 EA A4 C7         ld   (C7A4),a	;Copy Fusion Monster ID in (C7A3) (Card being processed)
ROMD:5BB7 CD 25 20         call 2025		;Hide Card, reset Level
ROMD:5BBA CD C9 1F         call 1FC9		;Reveal Card
ROMD:5BBD CD DF 1F         call 1FDF		;Freezes Card
ROMD:5BC0 CD B4 1F         call 1FB4		;Reset Card Level
ROMD:5BC3 CD 00 20         call 2000		;Card controlled by its owner
ROMD:5BC6 CD FB 19         call 19FB		;Update selected card ID and status
ROMD:5BC9 21 C2 D4         ld   hl,D4C2
ROMD:5BCC CD AD 5F         call 5FAD
ROMD:5BCF CD D0 19         call 19D0		;Update Column and Row
ROMD:5BD2 CD E6 19         call 19E6		;Remove selected card from the field
ROMD:5BD5 18 30            jr   5C07
ROMD:5BD7 21 C2 D4         ld   hl,D4C2
ROMD:5BDA CD AD 5F         call 5FAD
ROMD:5BDD CD D0 19         call 19D0		;Update Column and Row
ROMD:5BE0 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:5BE3 CD 25 20         call 2025		;Hide Card, reset Level
ROMD:5BE6 CD D4 1F         call 1FD4		;Hide Card
ROMD:5BE9 CD 00 20         call 2000		;Card controlled by its owner
ROMD:5BEC 21 C3 D4         ld   hl,D4C3
ROMD:5BEF CD AD 5F         call 5FAD
ROMD:5BF2 CD D0 19         call 19D0		;Update Column and Row
ROMD:5BF5 CD FB 19         call 19FB		;Update selected card ID and status
ROMD:5BF8 21 C2 D4         ld   hl,D4C2
ROMD:5BFB CD AD 5F         call 5FAD
ROMD:5BFE CD D0 19         call 19D0		;Update Column and Row
ROMD:5C01 CD E6 19         call 19E6		;Remove selected card from the field or hand
ROMD:5C04 CD B0 60         call 60B0
ROMD:5C07 1E 00            ld   e,00
ROMD:5C09 7B               ld   a,e
ROMD:5C0A E1               pop  hl
ROMD:5C0B D1               pop  de
ROMD:5C0C C1               pop  bc
ROMD:5C0D C9               ret

Copies CPU's hand, Life Points and SoRL status for AI decision

ROMD:5FC3 C5               push bc
ROMD:5FC4 D5               push de
ROMD:5FC5 E5               push hl
ROMD:5FC6 21 72 D4         ld   hl,D472		;CPU's hand - copy
ROMD:5FC9 1E 00            ld   e,00
ROMD:5FCB 16 00            ld   d,00
ROMD:5FCD 4B               ld   c,e
ROMD:5FCE 42               ld   b,d
ROMD:5FCF CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:5FD2 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:5FD5 FA A3 C7         ld   a,(C7A3)
ROMD:5FD8 22               ldi  (hl),a		;Copy the card being processed in (D472)
ROMD:5FD9 FA A4 C7         ld   a,(C7A4)
ROMD:5FDC 22               ldi  (hl),a
ROMD:5FDD FA A5 C7         ld   a,(C7A5)
ROMD:5FE0 22               ldi  (hl),a		;Copy the card status as well
ROMD:5FE1 14               inc  d
ROMD:5FE2 3E 06            ld   a,06
ROMD:5FE4 BA               cp   d
ROMD:5FE5 20 E7            jr   nz,5FCE
ROMD:5FE7 1C               inc  e
ROMD:5FE8 3E 04            ld   a,04
ROMD:5FEA BB               cp   e
ROMD:5FEB 20 DE            jr   nz,5FCB
ROMD:5FED FA CA C5         ld   a,(C5CA)	;CPU's Life Points - copy
ROMD:5FF0 22               ldi  (hl),a
ROMD:5FF1 FA CB C5         ld   a,(C5CB)
ROMD:5FF4 22               ldi  (hl),a
ROMD:5FF5 FA C7 C5         ld   a,(C5C7)	;Player's Life Points - copy
ROMD:5FF8 22               ldi  (hl),a
ROMD:5FF9 FA C8 C5         ld   a,(C5C8)
ROMD:5FFC 22               ldi  (hl),a
ROMD:5FFD FA E8 C5         ld   a,(C5E8)	;Field ID
ROMD:6000 22               ldi  (hl),a
ROMD:6001 FA 99 C9         ld   a,(C999)	;Player's Swords of Revealing Light flag copy
ROMD:6004 22               ldi  (hl),a
ROMD:6005 FA 9A C9         ld   a,(C99A)	;CPU's Swords of Revealing Light flag copy
ROMD:6008 22               ldi  (hl),a
ROMD:6009 FA 97 C9         ld   a,(C997)	;(C997) copy
ROMD:600C 22               ldi  (hl),a
ROMD:600D E1               pop  hl
ROMD:600E D1               pop  de
ROMD:600F C1               pop  bc
ROMD:6010 C9               ret

D:6011 (CPU AI)

  • 0x36011 - Reads the cards in CPU's hand, from working RAM at 0xD472, then stores it at 0xC7A3 and determines whether or not it should be played with the value at 0xC7A5
  • 0x36031 - Maximum number of cards in hand + 1 (0x06). The game will read the next card as long as this number has not been reached.
  • 0x36037 - It's done 5 times each time after a monster attacked or defended ; for example in case card #4 was activated on the first check and that it changed the playability of card #2
ROMD:6011 C5               push bc
ROMD:6012 D5               push de
ROMD:6013 E5               push hl
ROMD:6014 21 72 D4         ld   hl,D472
ROMD:6017 1E 00            ld   e,00
ROMD:6019 16 00            ld   d,00
ROMD:601B 4B               ld   c,e
ROMD:601C 42               ld   b,d
ROMD:601D CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:6020 2A               ldi  a,(hl)
ROMD:6021 EA A3 C7         ld   (C7A3),a
ROMD:6024 2A               ldi  a,(hl)
ROMD:6025 EA A4 C7         ld   (C7A4),a
ROMD:6028 2A               ldi  a,(hl)
ROMD:6029 EA A5 C7         ld   (C7A5),a	;Copy card ID + card status in currently processed card at (C7A3)
ROMD:602C CD FB 19         call 19FB		;Updates selected card ID and status
ROMD:602F 14               inc  d
ROMD:6030 3E 06            ld   a,06
ROMD:6032 BA               cp   d
ROMD:6033 20 E7            jr   nz,601C		;Loop until all the cards in the current row have been checked
ROMD:6035 1C               inc  e
ROMD:6036 3E 04            ld   a,04
ROMD:6038 BB               cp   e
ROMD:6039 20 DE            jr   nz,6019		;Loop until the 4 rows have been checked
ROMD:603B 2A               ldi  a,(hl)
ROMD:603C EA CA C5         ld   (C5CA),a
ROMD:603F 2A               ldi  a,(hl)
ROMD:6040 EA CB C5         ld   (C5CB),a	;CPU's Life Points
ROMD:6043 2A               ldi  a,(hl)
ROMD:6044 EA C7 C5         ld   (C5C7),a
ROMD:6047 2A               ldi  a,(hl)
ROMD:6048 EA C8 C5         ld   (C5C8),a	;Player's Life Points
ROMD:604B 2A               ldi  a,(hl)
ROMD:604C EA E8 C5         ld   (C5E8),a	;Field ID
ROMD:604F 2A               ldi  a,(hl)
ROMD:6050 EA 99 C9         ld   (C999),a	;CPU's Swords of Revealing Light
ROMD:6053 2A               ldi  a,(hl)
ROMD:6054 EA 9A C9         ld   (C99A),a	;Player's Swords of Revealing Light
ROMD:6057 2A               ldi  a,(hl)
ROMD:6058 EA 97 C9         ld   (C997),a
ROMD:605B E1               pop  hl
ROMD:605C D1               pop  de
ROMD:605D C1               pop  bc
ROMD:605E C9               ret

D:605F

ROMD:605F CD 27 59         call 5927
ROMD:6062 E6 01            and  a,01
ROMD:6064 28 0C            jr   z,6072
ROMD:6066 CD AC 60         call 60AC
ROMD:6069 CD AD 5F         call 5FAD
ROMD:606C CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:606F CD E6 19         call 19E6		;Remove selected card from the field
ROMD:6072 CD 27 59         call 5927
ROMD:6075 E6 02            and  a,02
ROMD:6077 28 0C            jr   z,6085
ROMD:6079 CD A8 60         call 60A8
ROMD:607C CD AD 5F         call 5FAD
ROMD:607F CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:6082 CD E6 19         call 19E6		;Remove selected card from the field
ROMD:6085 C9               ret

D:6085

ROMD:6085 C9               ret  
ROMD:6086 CD 27 59         call 5927
ROMD:6089 E6 04            and  a,04
ROMD:608B 28 03            jr   z,6090
ROMD:608D CD 63 24         call 2463
ROMD:6090 CD 27 59         call 5927
ROMD:6093 E6 08            and  a,08
ROMD:6095 28 03            jr   z,609A
ROMD:6097 CD 6B 24         call 246B
ROMD:609A C9               ret  

D:609B

ROMD:609B 2A               ldi  a,(hl)
ROMD:609C EA C2 D4         ld   (D4C2),a
ROMD:609F 7E               ld   a,(hl)
ROMD:60A0 EA C3 D4         ld   (D4C3),a
ROMD:60A3 C9               ret  

D:60A4

ROMD:60A4 21 49 61         ld   hl,6149
ROMD:60A7 C9               ret  

D:60A8

ROMD:60A8 21 C2 D4         ld   hl,D4C2
ROMD:60AB C9               ret  

D:60AC

ROMD:60AC 21 C3 D4         ld   hl,D4C3
ROMD:60AF C9               ret  

D:60B0

ROMD:60B0 C5               push bc
ROMD:60B1 D5               push de
ROMD:60B2 16 00            ld   d,00
ROMD:60B4 42               ld   b,d
ROMD:60B5 0E 00            ld   c,00
ROMD:60B7 CD D0 19         call 19D0
ROMD:60BA CD 13 1A         call 1A13
ROMD:60BD FA A3 C7         ld   a,(C7A3)
ROMD:60C0 4F               ld   c,a
ROMD:60C1 FA A4 C7         ld   a,(C7A4)
ROMD:60C4 47               ld   b,a		;bc = Card being processed
ROMD:60C5 CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:60C8 FE 00            cp   a,00
ROMD:60CA 20 06            jr   nz,60D2
ROMD:60CC CD DF 1F         call 1FDF
ROMD:60CF CD FB 19         call 19FB
ROMD:60D2 14               inc  d
ROMD:60D3 3E 05            ld   a,05
ROMD:60D5 BA               cp   d
ROMD:60D6 20 DC            jr   nz,60B4
ROMD:60D8 D1               pop  de
ROMD:60D9 C1               pop  bc
ROMD:60DA C9               ret  

D:60DB

ROMD:60DB FA A5 C7         ld   a,(C7A5)	;Card Status
ROMD:60DE E6 30            and  a,30
ROMD:60E0 CB 37            swap a
ROMD:60E2 C9               ret  

D:60E3 - Retrieves Field ID, then checks if card is not a Monster

  • 0x360E3-0x3610E - Retrieves Field ID, then checks if card ID submitted as a parameter is not a Monster card
ROMD:60E3 D5               push de
ROMD:60E4 1E 01            ld   e,01
ROMD:60E6 78               ld   a,b
ROMD:60E7 FE 00            cp   a,00
ROMD:60E9 20 07            jr   nz,60F2
ROMD:60EB 79               ld   a,c
ROMD:60EC FE 00            cp   a,00
ROMD:60EE 20 02            jr   nz,60F2
ROMD:60F0 18 1A            jr   610C		;If no card is being processed, jump to D:610C
ROMD:60F2 1E 00            ld   e,00
ROMD:60F4 FA E8 C5         ld   a,(C5E8)	;Field ID
ROMD:60F7 CF               rst  08
ROMD:60F8 07 07       => Pointer 07:4007
ROMD:60FA CD DB 60         call 60DB
ROMD:60FD CF               rst  08
ROMD:60FE 09 07       => Pointer 07:4009
ROMD:6100 CF               rst  08
ROMD:6101 05 07       => Pointer 07:4005
ROMD:6103 FA BF C6         ld   a,(C6BF)	;Current card Effect ID (magic trap ritual)
ROMD:6106 FE 02            cp   a,02
ROMD:6108 28 02            jr   z,610C		;If it is a Monster card, jump to D:610C
ROMD:610A 1E 02            ld   e,02
ROMD:610C 7B               ld   a,e
ROMD:610D D1               pop  de
ROMD:610E C9               ret

Retrieves Card ID in selected card zone, and stores it in (D500)

ROMD:6504 C5               push bc
ROMD:6505 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:6508 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:650B FA A3 C7         ld   a,(C7A3)
ROMD:650E 4F               ld   c,a
ROMD:650F FA A4 C7         ld   a,(C7A4)
ROMD:6512 47               ld   b,a		;bc = Card being processed
ROMD:6513 CD 0D 76         call 760D		;Store Card being processed in (D500)
ROMD:6516 CF               rst  08
ROMD:6517 0D 07       => Pointer 07:400D
ROMD:6519 C1               pop  bc
ROMD:651A C9               ret  

AI - Equip a Monster

ROMD:651B C5               push bc
ROMD:651C D5               push de
ROMD:651D 57               ld   d,a
ROMD:651E FA CA D4         ld   a,(D4CA)
ROMD:6521 47               ld   b,a		;Column
ROMD:6522 FA CB D4         ld   a,(D4CB)
ROMD:6525 4F               ld   c,a		;Row
ROMD:6526 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:6529 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:652C CD 4F 20         call 204F		;Retrieve Card Frozen status
ROMD:652F FE 00            cp   a,00
ROMD:6531 20 38            jr   nz,656B		;If the card is Frozen, get out of this function
ROMD:6533 3E 00            ld   a,00
ROMD:6535 EA CE D4         ld   (D4CE),a
ROMD:6538 FA CA D4         ld   a,(D4CA)
ROMD:653B 47               ld   b,a		;Column
ROMD:653C FA CB D4         ld   a,(D4CB)
ROMD:653F 4F               ld   c,a		;Row
ROMD:6540 CD 04 65         call 6504		;Retrieves Card ID in selected card zone, and stores it in (D500)
ROMD:6543 FE 00            cp   a,00
ROMD:6545 20 0C            jr   nz,6553
ROMD:6547 3E 0A            ld   a,0A
ROMD:6549 CD BE 73         call 73BE		;Update (D4D5)
ROMD:654C 3E 02            ld   a,02
ROMD:654E CD 90 75         call 7590		;Update (D504)
ROMD:6551 18 18            jr   656B
ROMD:6553 CD DD 73         call 73DD
ROMD:6556 FA C7 D4         ld   a,(D4C7)
ROMD:6559 FE 01            cp   a,01
ROMD:655B 20 09            jr   nz,6566
ROMD:655D 3E 03            ld   a,03
ROMD:655F CD 90 75         call 7590		;Update (D504)
ROMD:6562 3E 09            ld   a,09
ROMD:6564 18 02            jr   6568
ROMD:6566 3E 02            ld   a,02
ROMD:6568 CD BE 73         call 73BE		;Update (D4D5)
ROMD:656B D1               pop  de
ROMD:656C C1               pop  bc
ROMD:656D C9               ret

CPU Card Effects

AI Field Spell

AI - Forest
  • 0x367D1-0x367E0 - Forest
ROMD:67D1 3E 01            ld   a,01
ROMD:67D3 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:67D6 3E 01            ld   a,01
ROMD:67D8 CD 28 74         call 7428		;Changes AI Field ID
ROMD:67DB 3E 00            ld   a,00
ROMD:67DD EA CE D4         ld   (D4CE),a
ROMD:67E0 C9               ret  
AI - Wasteland
  • 0x367E1-0x367F0 - Wasteland
ROMD:67E1 3E 01            ld   a,01
ROMD:67E3 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:67E6 3E 02            ld   a,02
ROMD:67E8 CD 28 74         call 7428		;Changes AI Field ID
ROMD:67EB 3E 00            ld   a,00
ROMD:67ED EA CE D4         ld   (D4CE),a
ROMD:67F0 C9               ret  
AI - Mountain
  • 0x367F1-0x36800 - Mountain
ROMD:67F1 3E 01            ld   a,01
ROMD:67F3 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:67F6 3E 03            ld   a,03
ROMD:67F8 CD 28 74         call 7428		;Changes AI Field ID
ROMD:67FB 3E 00            ld   a,00
ROMD:67FD EA CE D4         ld   (D4CE),a
ROMD:6800 C9               ret  
AI - Sogen
  • 0x36801-0x3681 - Sogen
ROMD:6801 3E 01            ld   a,01
ROMD:6803 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6806 3E 04            ld   a,04
ROMD:6808 CD 28 74         call 7428		;Changes AI Field ID
ROMD:680B 3E 00            ld   a,00
ROMD:680D EA CE D4         ld   (D4CE),a
ROMD:6810 C9               ret 
AI - Umi
  • 0x36811-0x36820 - Umi
ROMD:6811 3E 01            ld   a,01
ROMD:6813 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6816 3E 05            ld   a,05
ROMD:6818 CD 28 74         call 7428		;Changes AI Field ID
ROMD:681B 3E 00            ld   a,00
ROMD:681D EA CE D4         ld   (D4CE),a
ROMD:6820 C9               ret  
AI - Yami
  • 0x36821-0x36830 - Yami
ROMD:6821 3E 01            ld   a,01
ROMD:6823 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6826 3E 06            ld   a,06
ROMD:6828 CD 28 74         call 7428		;Changes AI Field ID
ROMD:682B 3E 00            ld   a,00
ROMD:682D EA CE D4         ld   (D4CE),a
ROMD:6830 C9               ret

AI Healing Spell

AI - Mooyan Curry
  • 0x36831-0x36856 - Mooyan Curry
ROMD:6831 C5               push bc
ROMD:6832 01 00 02         ld   bc,0200
ROMD:6835 CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:6838 CD 52 64         call 6452
ROMD:683B FA C7 D4         ld   a,(D4C7)
ROMD:683E FE 01            cp   a,01
ROMD:6840 20 09            jr   nz,684B
ROMD:6842 3E 03            ld   a,03
ROMD:6844 CD 90 75         call 7590		;Updates (D504)
ROMD:6847 3E 06            ld   a,06
ROMD:6849 18 02            jr   684D
ROMD:684B 3E 05            ld   a,05
ROMD:684D CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6850 3E 00            ld   a,00
ROMD:6852 EA CE D4         ld   (D4CE),a
ROMD:6855 C1               pop  bc
ROMD:6856 C9               ret  
AI - Red Medicine
  • 0x36857-0x3687C - Red Medicine
ROMD:6857 C5               push bc
ROMD:6858 01 00 05         ld   bc,0500
ROMD:685B CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:685E CD 52 64         call 6452
ROMD:6861 FA C7 D4         ld   a,(D4C7)
ROMD:6864 FE 01            cp   a,01
ROMD:6866 20 09            jr   nz,6871
ROMD:6868 3E 03            ld   a,03
ROMD:686A CD 90 75         call 7590		;Updates (D504)
ROMD:686D 3E 06            ld   a,06
ROMD:686F 18 02            jr   6873
ROMD:6871 3E 05            ld   a,05
ROMD:6873 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6876 3E 00            ld   a,00
ROMD:6878 EA CE D4         ld   (D4CE),a
ROMD:687B C1               pop  bc
ROMD:687C C9               ret  
AI - Goblin's Secret Remedy
  • 0x3687D-0x368A2 - Goblin's Secret Remedy
ROMD:687D C5               push bc
ROMD:687E 01 00 10         ld   bc,1000
ROMD:6881 CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:6884 CD 52 64         call 6452
ROMD:6887 FA C7 D4         ld   a,(D4C7)
ROMD:688A FE 01            cp   a,01
ROMD:688C 20 09            jr   nz,6897
ROMD:688E 3E 03            ld   a,03
ROMD:6890 CD 90 75         call 7590		;Updates (D504)
ROMD:6893 3E 06            ld   a,06
ROMD:6895 18 02            jr   6899
ROMD:6897 3E 05            ld   a,05
ROMD:6899 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:689C 3E 00            ld   a,00
ROMD:689E EA CE D4         ld   (D4CE),a
ROMD:68A1 C1               pop  bc
ROMD:68A2 C9               ret  
AI - Soul of the Pure
  • 0x368A3-0x368C8 - Soul of the Pure
ROMD:68A3 C5               push bc
ROMD:68A4 01 00 20         ld   bc,2000
ROMD:68A7 CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:68AA CD 52 64         call 6452
ROMD:68AD FA C7 D4         ld   a,(D4C7)
ROMD:68B0 FE 01            cp   a,01
ROMD:68B2 20 09            jr   nz,68BD
ROMD:68B4 3E 03            ld   a,03
ROMD:68B6 CD 90 75         call 7590		;Updates (D504)
ROMD:68B9 3E 06            ld   a,06
ROMD:68BB 18 02            jr   68BF
ROMD:68BD 3E 05            ld   a,05
ROMD:68BF CD BE 73         call 73BE		;Updates (D4D5)
ROMD:68C2 3E 00            ld   a,00
ROMD:68C4 EA CE D4         ld   (D4CE),a
ROMD:68C7 C1               pop  bc
ROMD:68C8 C9               ret  
AI - Dian Keto the Cure Master
  • 0x368C9-0x368EE - Dian Keto the Cure Master
ROMD:68C9 C5               push bc
ROMD:68CA 01 00 50         ld   bc,5000
ROMD:68CD CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:68D0 CD 52 64         call 6452
ROMD:68D3 FA C7 D4         ld   a,(D4C7)
ROMD:68D6 FE 01            cp   a,01
ROMD:68D8 20 09            jr   nz,68E3
ROMD:68DA 3E 03            ld   a,03
ROMD:68DC CD 90 75         call 7590		;Updates (D504)
ROMD:68DF 3E 06            ld   a,06
ROMD:68E1 18 02            jr   68E5
ROMD:68E3 3E 05            ld   a,05
ROMD:68E5 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:68E8 3E 00            ld   a,00
ROMD:68EA EA CE D4         ld   (D4CE),a
ROMD:68ED C1               pop  bc
ROMD:68EE C9               ret

AI Damage Spell

AI - Sparks
  • 0x368EF-0x36915 - Sparks
ROMD:68EF C5               push bc
ROMD:68F0 01 50 00         ld   bc,0050
ROMD:68F3 CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:68F6 FA C7 D4         ld   a,(D4C7)
ROMD:68F9 FE 01            cp   a,01
ROMD:68FB 20 0A            jr   nz,6907
ROMD:68FD 3E 03            ld   a,03
ROMD:68FF CD 90 75         call 7590		;Updates (D504)
ROMD:6902 CD 52 64         call 6452
ROMD:6905 18 03            jr   690A
ROMD:6907 CD 5C 64         call 645C
ROMD:690A 3E 06            ld   a,06
ROMD:690C CD BE 73         call 73BE		;Updates (D4D5)
ROMD:690F 3E 00            ld   a,00
ROMD:6911 EA CE D4         ld   (D4CE),a
ROMD:6914 C1               pop  bc
ROMD:6915 C9               ret  
AI - Hinotama
  • 0x36916-0x3693C - Hinotama
ROMD:6916 C5               push bc
ROMD:6917 01 00 01         ld   bc,0100
ROMD:691A CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:691D FA C7 D4         ld   a,(D4C7)
ROMD:6920 FE 01            cp   a,01
ROMD:6922 20 0A            jr   nz,692E
ROMD:6924 3E 03            ld   a,03
ROMD:6926 CD 90 75         call 7590		;Updates (D504)
ROMD:6929 CD 52 64         call 6452
ROMD:692C 18 03            jr   6931
ROMD:692E CD 5C 64         call 645C
ROMD:6931 3E 06            ld   a,06
ROMD:6933 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6936 3E 00            ld   a,00
ROMD:6938 EA CE D4         ld   (D4CE),a
ROMD:693B C1               pop  bc
ROMD:693C C9               ret  
AI - Final Flame
  • 0x3693D-0x36963 - Final Flame
ROMD:693D C5               push bc
ROMD:693E 01 00 02         ld   bc,0200
ROMD:6941 CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:6944 FA C7 D4         ld   a,(D4C7)
ROMD:6947 FE 01            cp   a,01
ROMD:6949 20 0A            jr   nz,6955
ROMD:694B 3E 03            ld   a,03
ROMD:694D CD 90 75         call 7590		;Updates (D504)
ROMD:6950 CD 52 64         call 6452
ROMD:6953 18 03            jr   6958
ROMD:6955 CD 5C 64         call 645C
ROMD:6958 3E 06            ld   a,06
ROMD:695A CD BE 73         call 73BE		;Updates (D4D5)
ROMD:695D 3E 00            ld   a,00
ROMD:695F EA CE D4         ld   (D4CE),a
ROMD:6962 C1               pop  bc
ROMD:6963 C9               ret  
AI - Ookazi
  • 0x36964-0x3698A - Ookazi
ROMD:6964 C5               push bc
ROMD:6965 01 00 05         ld   bc,0500
ROMD:6968 CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:696B FA C7 D4         ld   a,(D4C7)
ROMD:696E FE 01            cp   a,01
ROMD:6970 20 0A            jr   nz,697C
ROMD:6972 3E 03            ld   a,03
ROMD:6974 CD 90 75         call 7590		;Updates (D504)
ROMD:6977 CD 52 64         call 6452
ROMD:697A 18 03            jr   697F
ROMD:697C CD 5C 64         call 645C
ROMD:697F 3E 06            ld   a,06
ROMD:6981 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6984 3E 00            ld   a,00
ROMD:6986 EA CE D4         ld   (D4CE),a
ROMD:6989 C1               pop  bc
ROMD:698A C9               ret  
AI - Tremendous Fire
  • 0x3698B-0x369B1 - Tremendous Fire
ROMD:698B C5               push bc
ROMD:698C 01 00 10         ld   bc,1000
ROMD:698F CD 18 74         call 7418		;Stores Direct Damage or Healing to (D4F8)
ROMD:6992 FA C7 D4         ld   a,(D4C7)
ROMD:6995 FE 01            cp   a,01
ROMD:6997 20 0A            jr   nz,69A3
ROMD:6999 3E 03            ld   a,03
ROMD:699B CD 90 75         call 7590		;Updates (D504)
ROMD:699E CD 52 64         call 6452
ROMD:69A1 18 03            jr   69A6
ROMD:69A3 CD 5C 64         call 645C
ROMD:69A6 3E 06            ld   a,06
ROMD:69A8 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:69AB 3E 00            ld   a,00
ROMD:69AD EA CE D4         ld   (D4CE),a
ROMD:69B0 C1               pop  bc
ROMD:69B1 C9               ret

AI - Dark Hole

ROMD:69B2 C5               push bc
ROMD:69B3 3E 07            ld   a,07
ROMD:69B5 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:69B8 3E 00            ld   a,00
ROMD:69BA CD 09 74         call 7409
ROMD:69BD CD FF 65         call 65FF
ROMD:69C0 3E 00            ld   a,00
ROMD:69C2 EA CE D4         ld   (D4CE),a
ROMD:69C5 C1               pop  bc
ROMD:69C6 C9               ret  

AI - Raigeki

ROMD:69C7 C5               push bc
ROMD:69C8 3E 07            ld   a,07
ROMD:69CA CD BE 73         call 73BE		;Updates (D4D5)
ROMD:69CD FA C7 D4         ld   a,(D4C7)
ROMD:69D0 FE 01            cp   a,01
ROMD:69D2 20 0A            jr   nz,69DE
ROMD:69D4 3E 03            ld   a,03
ROMD:69D6 CD 90 75         call 7590		;Updates (D504)
ROMD:69D9 CD 52 64         call 6452
ROMD:69DC 18 03            jr   69E1
ROMD:69DE CD 5C 64         call 645C
ROMD:69E1 FA CC D4         ld   a,(D4CC)
ROMD:69E4 FE 00            cp   a,00
ROMD:69E6 20 05            jr   nz,69ED
ROMD:69E8 CD 31 66         call 6631
ROMD:69EB 18 03            jr   69F0
ROMD:69ED CD 06 66         call 6606
ROMD:69F0 3E 00            ld   a,00
ROMD:69F2 EA CE D4         ld   (D4CE),a
ROMD:69F5 C1               pop  bc
ROMD:69F6 C9               ret  

AI Equip Spells 1

AI - Legendary Sword
ROMD:69F7 3E 00            ld   a,00
ROMD:69F9 CD 1B 65         call 651B
ROMD:69FC 3E 01            ld   a,01
ROMD:69FE CD 23 74         call 7423
ROMD:6A01 C9               ret  
AI - Sword of Ruin
ROMD:6A02 3E 01            ld   a,01
ROMD:6A04 CD 1B 65         call 651B
ROMD:6A07 3E 01            ld   a,01
ROMD:6A09 CD 23 74         call 7423
ROMD:6A0C C9               ret  
AI - Dark Energy
ROMD:6A0D 3E 02            ld   a,02
ROMD:6A0F CD 1B 65         call 651B
ROMD:6A12 3E 01            ld   a,01
ROMD:6A14 CD 23 74         call 7423
ROMD:6A17 C9               ret  
AI - Axe of Despair
ROMD:6A18 3E 03            ld   a,03
ROMD:6A1A CD 1B 65         call 651B
ROMD:6A1D 3E 01            ld   a,01
ROMD:6A1F CD 23 74         call 7423
ROMD:6A22 C9               ret  
AI - Lazer Cannon Armor
ROMD:6A23 3E 04            ld   a,04
ROMD:6A25 CD 1B 65         call 651B
ROMD:6A28 3E 01            ld   a,01
ROMD:6A2A CD 23 74         call 7423
ROMD:6A2D C9               ret  
AI - Insect Armor with Laser Cannon
ROMD:6A2E 3E 05            ld   a,05
ROMD:6A30 CD 1B 65         call 651B
ROMD:6A33 3E 01            ld   a,01
ROMD:6A35 CD 23 74         call 7423
ROMD:6A38 C9               ret  
AI - Elf's Light
ROMD:6A39 3E 06            ld   a,06
ROMD:6A3B CD 1B 65         call 651B
ROMD:6A3E 3E 01            ld   a,01
ROMD:6A40 CD 23 74         call 7423
ROMD:6A43 C9               ret  
AI - Beast Fangs
ROMD:6A44 3E 07            ld   a,07
ROMD:6A46 CD 1B 65         call 651B
ROMD:6A49 3E 01            ld   a,01
ROMD:6A4B CD 23 74         call 7423
ROMD:6A4E C9               ret  
AI - Steel Shell
ROMD:6A4F 3E 08            ld   a,08
ROMD:6A51 CD 1B 65         call 651B
ROMD:6A54 3E 01            ld   a,01
ROMD:6A56 CD 23 74         call 7423
ROMD:6A59 C9               ret  
AI - Vile Germs
ROMD:6A5A 3E 09            ld   a,09
ROMD:6A5C CD 1B 65         call 651B
ROMD:6A5F 3E 01            ld   a,01
ROMD:6A61 CD 23 74         call 7423
ROMD:6A64 C9               ret  
AI - Black Pendant
ROMD:6A65 3E 0A            ld   a,0A
ROMD:6A67 CD 1B 65         call 651B
ROMD:6A6A 3E 01            ld   a,01
ROMD:6A6C CD 23 74         call 7423
ROMD:6A6F C9               ret  
AI - Silver Bow & Arrow
ROMD:6A70 3E 0B            ld   a,0B
ROMD:6A72 CD 1B 65         call 651B
ROMD:6A75 3E 01            ld   a,01
ROMD:6A77 CD 23 74         call 7423
ROMD:6A7A C9               ret  
AI - Horn of Light
ROMD:6A7B 3E 0C            ld   a,0C
ROMD:6A7D CD 1B 65         call 651B
ROMD:6A80 3E 01            ld   a,01
ROMD:6A82 CD 23 74         call 7423
ROMD:6A85 C9               ret  
AI - Horn of the Unicorn
ROMD:6A86 3E 0D            ld   a,0D
ROMD:6A88 CD 1B 65         call 651B
ROMD:6A8B 3E 01            ld   a,01
ROMD:6A8D CD 23 74         call 7423
ROMD:6A90 C9               ret  
AI - Dragon Treasure
ROMD:6A91 3E 0E            ld   a,0E
ROMD:6A93 CD 1B 65         call 651B
ROMD:6A96 3E 01            ld   a,01
ROMD:6A98 CD 23 74         call 7423
ROMD:6A9B C9               ret  
AI - Electro-whip
ROMD:6A9C 3E 0F            ld   a,0F
ROMD:6A9E CD 1B 65         call 651B
ROMD:6AA1 3E 01            ld   a,01
ROMD:6AA3 CD 23 74         call 7423
ROMD:6AA6 C9               ret  
AI - Cyber Shield
ROMD:6AA7 3E 10            ld   a,10
ROMD:6AA9 CD 1B 65         call 651B
ROMD:6AAC 3E 01            ld   a,01
ROMD:6AAE CD 23 74         call 7423
ROMD:6AB1 C9               ret  
AI - Mystical Moon
ROMD:6AB2 3E 11            ld   a,11
ROMD:6AB4 CD 1B 65         call 651B
ROMD:6AB7 3E 01            ld   a,01
ROMD:6AB9 CD 23 74         call 7423
ROMD:6ABC C9               ret  
AI - Malevolent Nuzzler
ROMD:6ABD 3E 12            ld   a,12
ROMD:6ABF CD 1B 65         call 651B
ROMD:6AC2 3E 01            ld   a,01
ROMD:6AC4 CD 23 74         call 7423
ROMD:6AC7 C9               ret  
AI - Violet Crystal
ROMD:6AC8 3E 13            ld   a,13
ROMD:6ACA CD 1B 65         call 651B
ROMD:6ACD 3E 01            ld   a,01
ROMD:6ACF CD 23 74         call 7423
ROMD:6AD2 C9               ret  
AI - Book of Secret Art
ROMD:6AD3 3E 14            ld   a,14
ROMD:6AD5 CD 1B 65         call 651B
ROMD:6AD8 3E 01            ld   a,01
ROMD:6ADA CD 23 74         call 7423
ROMD:6ADD C9               ret  
AI - Invigoration
ROMD:6ADE 3E 15            ld   a,15
ROMD:6AE0 CD 1B 65         call 651B
ROMD:6AE3 3E 01            ld   a,01
ROMD:6AE5 CD 23 74         call 7423
ROMD:6AE8 C9               ret  
AI - Machine Conversion
ROMD:6AE9 3E 16            ld   a,16
ROMD:6AEB CD 1B 65         call 651B
ROMD:6AEE 3E 01            ld   a,01
ROMD:6AF0 CD 23 74         call 7423
ROMD:6AF3 C9               ret  
AI - Raise Body Heat
ROMD:6AF4 3E 17            ld   a,17
ROMD:6AF6 CD 1B 65         call 651B
ROMD:6AF9 3E 01            ld   a,01
ROMD:6AFB CD 23 74         call 7423
ROMD:6AFE C9               ret  
AI - Follow Wind
ROMD:6AFF 3E 18            ld   a,18
ROMD:6B01 CD 1B 65         call 651B
ROMD:6B04 3E 01            ld   a,01
ROMD:6B06 CD 23 74         call 7423
ROMD:6B09 C9               ret  
AI - Power of Kaishin
ROMD:6B0A 3E 19            ld   a,19
ROMD:6B0C CD 1B 65         call 651B
ROMD:6B0F 3E 01            ld   a,01
ROMD:6B11 CD 23 74         call 7423
ROMD:6B14 C9               ret  

AI - Fail-safe (ret)

ROMD:6B15 C9               ret

AI - Stop Defense

ROMD:6B16 3E 0C            ld   a,0C
ROMD:6B18 CD BE 73         call 73BE		; Updates (D4D5)
ROMD:6B1B CD 5C 64         call 645C
ROMD:6B1E FA CC D4         ld   a,(D4CC)
ROMD:6B21 FE 00            cp   a,00
ROMD:6B23 20 28            jr   nz,6B4D
ROMD:6B25 16 01            ld   d,01
ROMD:6B27 1E 02            ld   e,02
ROMD:6B29 42               ld   b,d
ROMD:6B2A 4B               ld   c,e
ROMD:6B2B CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:6B2E CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:6B31 FA A3 C7         ld   a,(C7A3)
ROMD:6B34 4F               ld   c,a
ROMD:6B35 FA A4 C7         ld   a,(C7A4)
ROMD:6B38 47               ld   b,a		;bc = Card being processed
ROMD:6B39 CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:6B3C FE 00            cp   a,00
ROMD:6B3E 20 05            jr   nz,6B45		;If no Monster card in this card zone, jump to D:6B45
ROMD:6B40 42               ld   b,d
ROMD:6B41 4B               ld   c,e
ROMD:6B42 CD DD 73         call 73DD
ROMD:6B45 14               inc  d
ROMD:6B46 3E 06            ld   a,06
ROMD:6B48 BA               cp   d
ROMD:6B49 20 DE            jr   nz,6B29		;Loop to D:6B29 until every card zone has been checked
ROMD:6B4B 18 26            jr   6B73
ROMD:6B4D 16 00            ld   d,00
ROMD:6B4F 1E 01            ld   e,01
ROMD:6B51 42               ld   b,d
ROMD:6B52 4B               ld   c,e
ROMD:6B53 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:6B56 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:6B59 FA A3 C7         ld   a,(C7A3)
ROMD:6B5C 4F               ld   c,a
ROMD:6B5D FA A4 C7         ld   a,(C7A4)
ROMD:6B60 47               ld   b,a		;bc = Card being processed
ROMD:6B61 CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:6B64 FE 00            cp   a,00
ROMD:6B66 20 05            jr   nz,6B6D		;if no Monster card in this card zone, jump to D:6B6D
ROMD:6B68 42               ld   b,d
ROMD:6B69 4B               ld   c,e
ROMD:6B6A CD DD 73         call 73DD
ROMD:6B6D 14               inc  d
ROMD:6B6E 3E 05            ld   a,05
ROMD:6B70 BA               cp   d
ROMD:6B71 20 DE            jr   nz,6B51		;Loop to D:6B51 until every card zone has been checked
ROMD:6B73 3E 00            ld   a,00
ROMD:6B75 EA CE D4         ld   (D4CE),a
ROMD:6B78 C9               ret

AI - Dragon Capture Jar

ROMD:6B79 CD 5C 64         call 645C
ROMD:6B7C 3E 00            ld   a,00
ROMD:6B7E CD 98 65         call 6598
ROMD:6B81 3E 00            ld   a,00
ROMD:6B83 EA CE D4         ld   (D4CE),a
ROMD:6B86 C9               ret  

AI - Swords of Revealing Light

ROMD:6B87 CD 5C 64         call 645C
ROMD:6B8A 3E 0D            ld   a,0D
ROMD:6B8C CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6B8F CD FF 65         call 65FF
ROMD:6B92 3E 00            ld   a,00
ROMD:6B94 EA CE D4         ld   (D4CE),a
ROMD:6B97 C9               ret  

AI - Dark-Piercing Light

ROMD:6B98 3E 0E            ld   a,0E
ROMD:6B9A CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6B9D CD FF 65         call 65FF
ROMD:6BA0 3E 00            ld   a,00
ROMD:6BA2 EA CE D4         ld   (D4CE),a
ROMD:6BA5 C9               ret  

AI - Spellbinding Circle

ROMD:6BA6 3E 09            ld   a,09
ROMD:6BA8 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6BAB CD 5C 64         call 645C
ROMD:6BAE 3E 01            ld   a,01
ROMD:6BB0 CD 23 74         call 7423
ROMD:6BB3 FA CC D4         ld   a,(D4CC)
ROMD:6BB6 FE 00            cp   a,00
ROMD:6BB8 20 05            jr   nz,6BBF
ROMD:6BBA CD 31 66         call 6631
ROMD:6BBD 18 03            jr   6BC2
ROMD:6BBF CD 06 66         call 6606
ROMD:6BC2 3E 00            ld   a,00
ROMD:6BC4 EA CE D4         ld   (D4CE),a
ROMD:6BC7 C9               ret  

AI - Elegant Egotist

ROMD:6BC8 FA CA D4         ld   a,(D4CA)
ROMD:6BCB 47               ld   b,a
ROMD:6BCC FA CB D4         ld   a,(D4CB)
ROMD:6BCF 4F               ld   c,a
ROMD:6BD0 CD DD 73         call 73DD
ROMD:6BD3 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:6BD6 CD 13 1A         call 1A13		;Loads card ID from the selected card zone + card status in (C7A3)
ROMD:6BD9 CD 4F 20         call 204F		;Retrieve Card Frozen status
ROMD:6BDC FE 00            cp   a,00
ROMD:6BDE 20 34            jr   nz,6C14		;If the card is Frozen, get out of this function
ROMD:6BE0 3E 00            ld   a,00
ROMD:6BE2 EA CE D4         ld   (D4CE),a
ROMD:6BE5 FA A3 C7         ld   a,(C7A3)
ROMD:6BE8 4F               ld   c,a
ROMD:6BE9 FA A4 C7         ld   a,(C7A4)
ROMD:6BEC 47               ld   b,a		;bc = Card being processed
ROMD:6BED 11 3E 00         ld   de,003E
ROMD:6BF0 CD 14 1B         call 1B14		;Checks if Card ID ≠ Harpie Lady
ROMD:6BF3 FE 00            cp   a,00
ROMD:6BF5 20 13            jr   nz,6C0A	;If this isn't Harpie Lady, jump to D:6C0A
ROMD:6BF7 CD 0D 76         call 760D
ROMD:6BFA 3E 0F            ld   a,0F
ROMD:6BFC CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6BFF 01 3F 00         ld   bc,003F	;Harpie Lady Sisters
ROMD:6C02 CD 18 76         call 7618
ROMD:6C05 CD 0D 74         call 740D
ROMD:6C08 18 0A            jr   6C14
ROMD:6C0A 3E 02            ld   a,02
ROMD:6C0C CD 90 75         call 7590		;Updates (D504)
ROMD:6C0F 3E 0A            ld   a,0A
ROMD:6C11 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6C14 C9               ret

AI - Fail-safe (ret)

ROMD:6C15 C9               ret  

AI Traps cards 1 (set)

AI - Widespread Ruin
ROMD:6C16 3E 01            ld   a,01
ROMD:6C18 CD 6E 65         call 656E
ROMD:6C1B 3E 00            ld   a,00
ROMD:6C1D EA CE D4         ld   (D4CE),a
ROMD:6C20 C9               ret  
AI - House of Adhesive Trap
ROMD:6C21 3E 02            ld   a,02
ROMD:6C23 CD 6E 65         call 656E
ROMD:6C26 3E 00            ld   a,00
ROMD:6C28 EA CE D4         ld   (D4CE),a
ROMD:6C2B C9               ret  
AI - Eatgaboon
ROMD:6C2C 3E 03            ld   a,03
ROMD:6C2E CD 6E 65         call 656E
ROMD:6C31 3E 00            ld   a,00
ROMD:6C33 EA CE D4         ld   (D4CE),a
ROMD:6C36 C9               ret  
AI - Bear Trap
ROMD:6C37 3E 04            ld   a,04
ROMD:6C39 CD 6E 65         call 656E
ROMD:6C3C 3E 00            ld   a,00
ROMD:6C3E EA CE D4         ld   (D4CE),a
ROMD:6C41 C9               ret  
AI - Invisible Wire
ROMD:6C42 3E 05            ld   a,05
ROMD:6C44 CD 6E 65         call 656E
ROMD:6C47 3E 00            ld   a,00
ROMD:6C49 EA CE D4         ld   (D4CE),a
ROMD:6C4C C9               ret  
AI - Acid Trap Hole
ROMD:6C4D 3E 06            ld   a,06
ROMD:6C4F CD 6E 65         call 656E
ROMD:6C52 3E 00            ld   a,00
ROMD:6C54 EA CE D4         ld   (D4CE),a
ROMD:6C57 C9               ret  
AI - Goblin Fan
ROMD:6C58 3E 07            ld   a,07
ROMD:6C5A CD 6E 65         call 656E
ROMD:6C5D 3E 00            ld   a,00
ROMD:6C5F EA CE D4         ld   (D4CE),a
ROMD:6C62 C9               ret  
AI - Simochi Allergy
ROMD:6C63 3E 08            ld   a,08
ROMD:6C65 CD 6E 65         call 656E
ROMD:6C68 3E 00            ld   a,00
ROMD:6C6A EA CE D4         ld   (D4CE),a
ROMD:6C6D C9               ret  
AI - Reverse Trap
ROMD:6C6E 3E 09            ld   a,09
ROMD:6C70 CD 6E 65         call 656E
ROMD:6C73 3E 00            ld   a,00
ROMD:6C75 EA CE D4         ld   (D4CE),a
ROMD:6C78 C9               ret  
AI - Fake Trap
ROMD:6C79 3E 0A            ld   a,0A
ROMD:6C7B CD 6E 65         call 656E
ROMD:6C7E 3E 00            ld   a,00
ROMD:6C80 EA CE D4         ld   (D4CE),a
ROMD:6C83 C9               ret

AI Rituals 1

AI cannot play Black Luster Ritual
ROMD:6C84 C9               ret
AI cannot play Zera Ritual
ROMD:6C85 C9               ret
AI cannot play War-lion Ritual
ROMD:6C86 C9               ret
AI cannot play War-lion Ritual
ROMD:6C87 C9               ret
AI cannot play Ultimate Dragon
ROMD:6C88 C9               ret
AI cannot play Commencement Dance
ROMD:6C89 C9               ret
AI cannot play Hamburger Recipe
ROMD:6C8A C9               ret
AI cannot play Revival of Sennen Genjin
ROMD:6C8B C9               ret
AI cannot play Novox's Prayer
ROMD:6C8C C9               ret
AI cannot play Curse of Tri-Horned Dragon
ROMD:6C8D C9               ret
AI cannot play Revived Serpent Night Dragon
ROMD:6C8E C9               ret

AI - Harpie's Feather Duster

ROMD:6C8F 3E 08            ld   a,08
ROMD:6C91 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6C94 CD 5C 64         call 645C
ROMD:6C97 3E 00            ld   a,00
ROMD:6C99 EA CE D4         ld   (D4CE),a
ROMD:6C9C C9               ret  

AI Equip Spells 2

AI - Magical Labyrinth
ROMD:6C9D 3E 1A            ld   a,1A
ROMD:6C9F CD 1B 65         call 651B
ROMD:6CA2 3E 01            ld   a,01
ROMD:6CA4 CD 23 74         call 7423
ROMD:6CA7 C9               ret  
AI - Salamandra
ROMD:6CA8 3E 1B            ld   a,1B
ROMD:6CAA CD 1B 65         call 651B
ROMD:6CAD 3E 01            ld   a,01
ROMD:6CAF CD 23 74         call 7423
ROMD:6CB2 C9               ret  
AI - Kunai with Chain
ROMD:6CB3 3E 1C            ld   a,1C
ROMD:6CB5 CD 1B 65         call 651B
ROMD:6CB8 3E 01            ld   a,01
ROMD:6CBA CD 23 74         call 7423
ROMD:6CBD C9               ret  
AI - Bright Castle
ROMD:6CBE 3E 1D            ld   a,1D
ROMD:6CC0 CD 1B 65         call 651B
ROMD:6CC3 3E 01            ld   a,01
ROMD:6CC5 CD 23 74         call 7423
ROMD:6CC8 C9               ret  

AI - Crush Card

ROMD:6CC9 3E 07            ld   a,07
ROMD:6CCB CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6CCE CD 5C 64         call 645C
ROMD:6CD1 FA CC D4         ld   a,(D4CC)
ROMD:6CD4 FE 00            cp   a,00
ROMD:6CD6 20 08            jr   nz,6CE0
ROMD:6CD8 11 00 15         ld   de,1500	;1500 ATK
ROMD:6CDB CD C0 66         call 66C0
ROMD:6CDE 18 06            jr   6CE6
ROMD:6CE0 11 00 15         ld   de,1500
ROMD:6CE3 CD FC 66         call 66FC
ROMD:6CE6 3E 00            ld   a,00
ROMD:6CE8 EA CE D4         ld   (D4CE),a
ROMD:6CEB C9               ret  

AI - Shadow Spell

ROMD:6CEC 3E 09            ld   a,09
ROMD:6CEE CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6CF1 CD 5C 64         call 645C
ROMD:6CF4 3E 02            ld   a,02
ROMD:6CF6 CD 23 74         call 7423
ROMD:6CF9 FA CC D4         ld   a,(D4CC)
ROMD:6CFC FE 00            cp   a,00
ROMD:6CFE 20 05            jr   nz,6D05
ROMD:6D00 CD 31 66         call 6631
ROMD:6D03 18 03            jr   6D08
ROMD:6D05 CD 06 66         call 6606
ROMD:6D08 3E 00            ld   a,00
ROMD:6D0A EA CE D4         ld   (D4CE),a
ROMD:6D0D C9               ret  

AI Rituals 2

AI cannot play Turtle Oath
ROMD:6D0E C9               ret  
AI cannot play Contract of Mask
ROMD:6D0F C9               ret  
AI cannot play Resurrection of Chakra
ROMD:6D10 C9               ret  
AI cannot play Puppet Ritual
ROMD:6D11 C9               ret  
AI cannot play Javelin Beetle Pact
ROMD:6D12 C9               ret  
AI cannot play Garma Sword Oath
ROMD:6D13 C9               ret  
AI cannot play Cosmo Queen's Prayer
ROMD:6D14 C9               ret  
AI cannot play Revival of Skeleton
ROMD:6D15 C9               ret  
AI cannot play Fortress Whale's Oath
ROMD:6D16 C9               ret  
AI cannot play Curse of Millennium Shield
ROMD:6D17 C9               ret  
AI cannot play Yamadron Ritual
ROMD:6D18 C9               ret  
AI cannot play Gate Guardian Ritual
ROMD:6D19 C9               ret  

AI - Warrior Elimination

ROMD:6D1A CD 5C 64         call 645C
ROMD:6D1D 3E 03            ld   a,03
ROMD:6D1F CD 98 65         call 6598
ROMD:6D22 3E 00            ld   a,00
ROMD:6D24 EA CE D4         ld   (D4CE),a
ROMD:6D27 C9               ret  

AI - Cursebreaker

ROMD:6D28 CD 52 64         call 6452
ROMD:6D2B CD B6 64         call 64B6
ROMD:6D2E 3E 00            ld   a,00
ROMD:6D30 EA CE D4         ld   (D4CE),a
ROMD:6D33 C9               ret  

AI - Eternal Rest

ROMD:6D34 CD 5C 64         call 645C
ROMD:6D37 3E 02            ld   a,02
ROMD:6D39 CD 98 65         call 6598
ROMD:6D3C 3E 00            ld   a,00
ROMD:6D3E EA CE D4         ld   (D4CE),a
ROMD:6D41 C9               ret  

AI Equip Spells 3

AI - Megamorph
ROMD:6D42 3E 1E            ld   a,1E
ROMD:6D44 CD 1B 65         call 651B
ROMD:6D47 3E 01            ld   a,01
ROMD:6D49 CD 23 74         call 7423
ROMD:6D4C C9               ret  
AI - Metalmorph
ROMD:6D4D 3E 0F            ld   a,0F
ROMD:6D4F CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6D52 FA CA D4         ld   a,(D4CA)
ROMD:6D55 47               ld   b,a
ROMD:6D56 FA CB D4         ld   a,(D4CB)
ROMD:6D59 4F               ld   c,a
ROMD:6D5A CD DD 73         call 73DD
ROMD:6D5D CD D0 19         call 19D0
ROMD:6D60 CD 13 1A         call 1A13
ROMD:6D63 CD 4F 20         call 204F
ROMD:6D66 FE 00            cp   a,00
ROMD:6D68 20 47            jr   nz,6DB1
ROMD:6D6A 3E 00            ld   a,00
ROMD:6D6C EA CE D4         ld   (D4CE),a
ROMD:6D6F FA A3 C7         ld   a,(C7A3)
ROMD:6D72 4F               ld   c,a
ROMD:6D73 FA A4 C7         ld   a,(C7A4)
ROMD:6D76 47               ld   b,a
ROMD:6D77 11 87 01         ld   de,0187
ROMD:6D7A CD 14 1B         call 1B14
ROMD:6D7D FE 00            cp   a,00
ROMD:6D7F 20 0E            jr   nz,6D8F
ROMD:6D81 CD 0D 76         call 760D
ROMD:6D84 01 88 01         ld   bc,0188
ROMD:6D87 CD 18 76         call 7618
ROMD:6D8A CD 0D 74         call 740D
ROMD:6D8D 18 22            jr   6DB1
ROMD:6D8F 11 52 00         ld   de,0052
ROMD:6D92 CD 14 1B         call 1B14
ROMD:6D95 FE 00            cp   a,00
ROMD:6D97 20 0E            jr   nz,6DA7
ROMD:6D99 CD 0D 76         call 760D
ROMD:6D9C 01 E6 02         ld   bc,02E6
ROMD:6D9F CD 18 76         call 7618
ROMD:6DA2 CD 0D 74         call 740D
ROMD:6DA5 18 0A            jr   6DB1
ROMD:6DA7 3E 02            ld   a,02
ROMD:6DA9 CD 90 75         call 7590		;Updates (D504)
ROMD:6DAC 3E 0A            ld   a,0A
ROMD:6DAE CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6DB1 C9               ret  
AI - Winged Trumpeter
ROMD:6DB2 3E 1F            ld   a,1F
ROMD:6DB4 CD 1B 65         call 651B
ROMD:6DB7 3E 01            ld   a,01
ROMD:6DB9 CD 23 74         call 7423
ROMD:6DBC C9               ret  

AI - Stain Storm

ROMD:6DBD CD 5C 64         call 645C
ROMD:6DC0 3E 0E            ld   a,0E          ;Machine
ROMD:6DC2 CD 98 65         call 6598
ROMD:6DC5 3E 00            ld   a,00
ROMD:6DC7 EA CE D4         ld   (D4CE),a
ROMD:6DCA C9               ret

AI - Eradicating Aerosol

ROMD:6DCB CD 5C 64         call 645C
ROMD:6DCE 3E 09            ld   a,09          ;Insect
ROMD:6DD0 CD 98 65         call 6598
ROMD:6DD3 3E 00            ld   a,00
ROMD:6DD5 EA CE D4         ld   (D4CE),a
ROMD:6DD8 C9               ret

AI - Breath of Light

ROMD:6DD9 CD 5C 64         call 645C
ROMD:6DDC 3E 12            ld   a,12          ;Rock
ROMD:6DDE CD 98 65         call 6598
ROMD:6DE1 3E 00            ld   a,00
ROMD:6DE3 EA CE D4         ld   (D4CE),a
ROMD:6DE6 C9               ret

AI - Eternal Drought

ROMD:6DE7 CD 5C 64         call 645C
ROMD:6DEA 3E 0C            ld   a,0C          ;Fish
ROMD:6DEC CD 98 65         call 6598
ROMD:6DEF 3E 00            ld   a,00
ROMD:6DF1 EA CE D4         ld   (D4CE),a
ROMD:6DF4 C9               ret

AI cannot use Inexperienced Spy

ROMD:6DF5 C9               ret  

AI Rituals 3

AI cannot use Dark Magic Ritual
ROMD:6DF6 C9               ret  

AI cannot use Pot of Greed

ROMD:6DF7 C9               ret  

AI - Restructer Revolution

  • 0x36DF8-0x36E32 - Restructer Revolution effect
ROMD:6DF8 C5               push bc
ROMD:6DF9 E5               push hl
ROMD:6DFA CD 38 67         call 6738
ROMD:6DFD 06 00            ld   b,00
ROMD:6DFF 4F               ld   c,a
ROMD:6E00 CB 21            sla  c
ROMD:6E02 CB 10            rl   b
ROMD:6E04 21 33 6E         ld   hl,6E33
ROMD:6E07 79               ld   a,c
ROMD:6E08 85               add  l
ROMD:6E09 6F               ld   l,a
ROMD:6E0A 78               ld   a,b
ROMD:6E0B 8C               adc  h
ROMD:6E0C 67               ld   h,a
ROMD:6E0D 2A               ldi  a,(hl)
ROMD:6E0E 4F               ld   c,a
ROMD:6E0F 7E               ld   a,(hl)
ROMD:6E10 47               ld   b,a
ROMD:6E11 CD 18 74         call 7418
ROMD:6E14 FA C7 D4         ld   a,(D4C7)
ROMD:6E17 FE 01            cp   a,01
ROMD:6E19 20 08            jr   nz,6E23
ROMD:6E1B 3E 03            ld   a,03
ROMD:6E1D CD 90 75         call 7590		;Updates (D504)
ROMD:6E20 CD 52 64         call 6452
ROMD:6E23 CD 5C 64         call 645C
ROMD:6E26 3E 06            ld   a,06
ROMD:6E28 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6E2B 3E 00            ld   a,00
ROMD:6E2D EA CE D4         ld   (D4CE),a
ROMD:6E30 E1               pop  hl
ROMD:6E31 C1               pop  bc
ROMD:6E32 C9               ret  
  • 0x36E33-0x36E3E - Restructer Revolution damage array
ROMD:6E33
00 00 - 0 monsters
00 02 - 1 monsters
00 04 - 2 monsters
00 06 - 3 monsters
00 08 - 4 monsters
00 10 - 5 monsters

AI - Last Day of Witch

ROMD:6E3F CD 5C 64         call 645C
ROMD:6E42 3E 01            ld   a,01          ;Magician
ROMD:6E44 CD 98 65         call 6598
ROMD:6E47 3E 00            ld   a,00
ROMD:6E49 EA CE D4         ld   (D4CE),a
ROMD:6E4C C9               ret

AI - Exile of the Wicked

ROMD:6E4D CD 5C 64         call 645C
ROMD:6E50 3E 07            ld   a,07          ;Fiend
ROMD:6E52 CD 98 65         call 6598
ROMD:6E55 3E 00            ld   a,00
ROMD:6E57 EA CE D4         ld   (D4CE),a
ROMD:6E5A C9               ret

AI - Multiply

ROMD:6E5B C5               push bc
ROMD:6E5C 01 3A 00         ld   bc,003A
ROMD:6E5F CD 87 66         call 6687
ROMD:6E62 FE 00            cp   a,00
ROMD:6E64 28 0D            jr   z,6E73
ROMD:6E66 CD 0D 76         call 760D
ROMD:6E69 CD 0D 74         call 740D
ROMD:6E6C CD 5C 66         call 665C
ROMD:6E6F 3E 13            ld   a,13
ROMD:6E71 18 07            jr   6E7A
ROMD:6E73 3E 02            ld   a,02
ROMD:6E75 CD 90 75         call 7590		;Updates (D504)
ROMD:6E78 3E 0A            ld   a,0A
ROMD:6E7A CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6E7D 3E 00            ld   a,00
ROMD:6E7F EA CE D4         ld   (D4CE),a
ROMD:6E82 C1               pop  bc
ROMD:6E83 C9               ret  

AI - Change of Heart

ROMD:6E84 F5               push af
ROMD:6E85 C5               push bc
ROMD:6E86 E5               push hl
ROMD:6E87 FA CD D4         ld   a,(D4CD)
ROMD:6E8A FE 01            cp   a,01
ROMD:6E8C 20 40            jr   nz,6ECE
ROMD:6E8E CF               rst  08
ROMD:6E8F 29               add  hl,hl
ROMD:6E90 03               inc  bc
ROMD:6E91 FE 05            cp   a,05
ROMD:6E93 28 39            jr   z,6ECE
ROMD:6E95 6F               ld   l,a
ROMD:6E96 FA CA D4         ld   a,(D4CA)
ROMD:6E99 47               ld   b,a
ROMD:6E9A 04               inc  b
ROMD:6E9B 0E 02            ld   c,02
ROMD:6E9D CD D0 19         call 19D0
ROMD:6EA0 CD 13 1A         call 1A13
ROMD:6EA3 FA A3 C7         ld   a,(C7A3)
ROMD:6EA6 4F               ld   c,a
ROMD:6EA7 FA A4 C7         ld   a,(C7A4)
ROMD:6EAA 47               ld   b,a		;bc = Card being processed
ROMD:6EAB CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:6EAE FE 00            cp   a,00
ROMD:6EB0 20 1C            jr   nz,6ECE
ROMD:6EB2 CD 0D 76         call 760D
ROMD:6EB5 FA CA D4         ld   a,(D4CA)
ROMD:6EB8 47               ld   b,a
ROMD:6EB9 04               inc  b
ROMD:6EBA 0E 02            ld   c,02
ROMD:6EBC CD DD 73         call 73DD
ROMD:6EBF 45               ld   b,l
ROMD:6EC0 0E 01            ld   c,01
ROMD:6EC2 CD DD 73         call 73DD
ROMD:6EC5 3E 00            ld   a,00
ROMD:6EC7 EA CE D4         ld   (D4CE),a
ROMD:6ECA 3E 11            ld   a,11
ROMD:6ECC 18 07            jr   6ED5
ROMD:6ECE 3E 02            ld   a,02
ROMD:6ED0 CD 90 75         call 7590		;Updates (D504)
ROMD:6ED3 3E 0A            ld   a,0A
ROMD:6ED5 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6ED8 E1               pop  hl
ROMD:6ED9 C1               pop  bc
ROMD:6EDA F1               pop  af
ROMD:6EDB C9               ret  

AI Rituals 4

AI cannot use Black Illusion Ritual
ROMD:6EDC C9               ret

AI Trap cards 2 (set)

AI - Anti Raigeki
ROMD:6EDD 3E 0B            ld   a,0B
ROMD:6EDF CD 6E 65         call 656E
ROMD:6EE2 3E 00            ld   a,00
ROMD:6EE4 EA CE D4         ld   (D4CE),a
ROMD:6EE7 C9               ret  

AI - Brain Control

ROMD:6EE8 F5               push af
ROMD:6EE9 C5               push bc
ROMD:6EEA E5               push hl
ROMD:6EEB FA CD D4         ld   a,(D4CD)
ROMD:6EEE FE 01            cp   a,01
ROMD:6EF0 20 40            jr   nz,6F32
ROMD:6EF2 CF               rst  08
ROMD:6EF3 29               add  hl,hl
ROMD:6EF4 03               inc  bc
ROMD:6EF5 FE 05            cp   a,05
ROMD:6EF7 28 39            jr   z,6F32
ROMD:6EF9 6F               ld   l,a
ROMD:6EFA FA CA D4         ld   a,(D4CA)
ROMD:6EFD 47               ld   b,a
ROMD:6EFE 04               inc  b
ROMD:6EFF 0E 02            ld   c,02
ROMD:6F01 CD D0 19         call 19D0
ROMD:6F04 CD 13 1A         call 1A13
ROMD:6F07 FA A3 C7         ld   a,(C7A3)
ROMD:6F0A 4F               ld   c,a
ROMD:6F0B FA A4 C7         ld   a,(C7A4)
ROMD:6F0E 47               ld   b,a		;bc = Card being processed
ROMD:6F0F CD E3 60         call 60E3		;Retrieves Field ID, then checks if card is not a Monster
ROMD:6F12 FE 00            cp   a,00
ROMD:6F14 20 1C            jr   nz,6F32
ROMD:6F16 CD 0D 76         call 760D
ROMD:6F19 FA CA D4         ld   a,(D4CA)
ROMD:6F1C 47               ld   b,a
ROMD:6F1D 04               inc  b
ROMD:6F1E 0E 02            ld   c,02
ROMD:6F20 CD DD 73         call 73DD
ROMD:6F23 45               ld   b,l
ROMD:6F24 0E 01            ld   c,01
ROMD:6F26 CD DD 73         call 73DD
ROMD:6F29 3E 00            ld   a,00
ROMD:6F2B EA CE D4         ld   (D4CE),a
ROMD:6F2E 3E 10            ld   a,10
ROMD:6F30 18 07            jr   6F39
ROMD:6F32 3E 02            ld   a,02
ROMD:6F34 CD 90 75         call 7590		;Updates (D504)
ROMD:6F37 3E 0A            ld   a,0A
ROMD:6F39 CD BE 73         call 73BE		;Updates (D4D5)
ROMD:6F3C E1               pop  hl
ROMD:6F3D C1               pop  bc
ROMD:6F3E F1               pop  af
ROMD:6F3F C9               ret

CPU's cards effects pointers

  • 0x36F40-0x37027 - List of pointers to each card effect code
CE 67 - (ret)
CF 67 - (ret)
D0 67 - (ret)
D1 67 - Forest
E1 67 - Wasteland
F1 67 - Mountain
01 68 - Sogen
11 68 - Umi
21 68 - Yami
31 68 - Mooyan Curry
57 68 - Red Medicine
7D 68 - Goblin's Secret Remedy
A3 68 - Soul of the Pure
C9 68 - Dian Keto the Cure Master
EF 68 - Sparks
16 69 - Hinotama
3D 69 - Final Flame
64 69 - Ookazi
8B 69 - Tremendous Fire
B2 69 - Dark Hole
C7 69 - Raigeki
F7 69 - Legendary Sword
02 6A - Sword of Ruin
0D 6A - Dark Energy
18 6A - Axe of Despair
23 6A - Lazer Cannon Armor
2E 6A - Insect Armor with Laser Cannon
39 6A - Elf's Light
44 6A - Beast Fangs
4F 6A - Steel Shell
5A 6A - Vile Germs
65 6A - Black Pendant
70 6A - Silver Bow & Arrow
7B 6A - Horn of Light
86 6A - Horn of the Unicorn
91 6A - Dragon Treasure
9C 6A - Electro-whip
A7 6A - Cyber Shield
B2 6A - Mystical Moon
BD 6A - Malevolent Nuzzler
C8 6A - Violet Crystal
D3 6A - Book of Secret Art
DE 6A - Invigoration
E9 6A - Machine Conversion
F4 6A - Raise Body Heat
FF 6A - Follow Wind
0A 6B - Power of Kaishin
15 6B - (ret)
16 6B - Stop Defense
79 6B - Dragon Capture Jar
87 6B - Swords of Revealing Light
98 6B - Dark-Piercing Light
A6 6B - Spellbinding Circle
C8 6B - Elegant Egotist
15 6C - (ret)
16 6C - Widespread Ruin
21 6C - House of Adhesive Trap
2C 6C - Eatgaboon
37 6C - Bear Trap
42 6C - Invisible Wire
4D 6C - Acid Trap Hole
58 6C - Goblin Fan
63 6C - Simochi Allergy
6E 6C - Reverse Trap
79 6C - Fake Trap
84 6C - (ret)
85 6C - (ret)
86 6C - (ret)
87 6C - (ret)
88 6C - (ret)
89 6C - (ret)
8A 6C - (ret)
8B 6C - (ret)
8C 6C - (ret)
8D 6C - (ret)
8E 6C - (ret)
8F 6C - Harpie's Feather Duster
9D 6C - Magical Labyrinth
A8 6C - Salamandra
B3 6C - Kunai with Chain
BE 6C - Bright Castle
C9 6C - Crush Card
EC 6C - Shadow Spell
0E 6D - (ret)
0F 6D - (ret)
10 6D - (ret)
11 6D - (ret)
12 6D - (ret)
13 6D - (ret)
14 6D - (ret)
15 6D - (ret)
16 6D - (ret)
17 6D - (ret)
18 6D - (ret)
19 6D - (ret)
1A 6D - Warrior Elimination
28 6D - Cursebreaker
34 6D - Eternal Rest
42 6D - Megamorph
4D 6D - Metalmorph
B2 6D - Winged Trumpeter
BD 6D - Stain Storm
CB 6D - Eradicating Aerosol
D9 6D - Breath of Light
E7 6D - Eternal Drought
F5 6D - (ret)
F6 6D - (ret)
F7 6D - (ret)
F8 6D - Restructer Revolution
3F 6E - Last Day of Witch
4D 6E - Exile of the Wicked
5B 6E - Multiply
84 6E - Change of Heart
DC 6E - (ret)
DD 6E - Anti Raigeki
E8 6E - Brain Control

CPU Battle Process

Initialize Trap cards

ROMD:71EE C5               push bc
ROMD:71EF FA F3 D4         ld   a,(D4F3)
ROMD:71F2 FE 00            cp   a,00
ROMD:71F4 20 10            jr   nz,7206
ROMD:71F6 06 00            ld   b,00
ROMD:71F8 3E 03            ld   a,03
ROMD:71FA 4F               ld   c,a
ROMD:71FB CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:71FE CD E6 19         call 19E6		;Remove selected card from the field
ROMD:7201 CF               rst  08
...
ROMD:7204 18 0E            jr   7214
ROMD:7206 06 05            ld   b,05
ROMD:7208 3E 00            ld   a,00
ROMD:720A 4F               ld   c,a
ROMD:720B CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:720E CD E6 19         call 19E6		;Remove selected card from the field
ROMD:7211 CF               rst  08
...
ROMD:7214 CD AC 73         call 73AC		;Removes a card from the field
ROMD:7217 C1               pop  bc
ROMD:7218 C9               ret  

CPU removes a card from the field

ROMD:73AC C5               push bc
ROMD:73AD FA D6 D4         ld   a,(D4D6)	;AI - Column to check
ROMD:73B0 47               ld   b,a
ROMD:73B1 FA D7 D4         ld   a,(D4D7)	;AI - Row to check
ROMD:73B4 4F               ld   c,a
ROMD:73B5 CD D0 19         call 19D0		;Updates field Column and Row to value in bc
ROMD:73B8 CD E6 19         call 19E6		;Remove selected card from the field
ROMD:73BB C1               pop  bc
ROMD:73BC C9               ret

Fail-safe (ret)

ROMD:73BD C9               ret  

D:73BE (updates (D4D5))

ROMD:73BE EA D5 D4         ld   (D4D5),a
ROMD:73C1 C9               ret  

Updates Column and Row to check

ROMD:73C2 F5               push af
ROMD:73C3 78               ld   a,b
ROMD:73C4 EA D6 D4         ld   (D4D6),a	;AI - Column to check
ROMD:73C7 79               ld   a,c
ROMD:73C8 EA D7 D4         ld   (D4D7),a	;AI - Row to check
ROMD:73CB F1               pop  af
ROMD:73CC C9               ret  

D:73CD

ROMD:73CD F5               push af
ROMD:73CE E5               push hl
ROMD:73CF 21 D8 D4         ld   hl,D4D8
ROMD:73D2 85               add  l
ROMD:73D3 6F               ld   l,a
ROMD:73D4 7C               ld   a,h
ROMD:73D5 CE 00            adc  a,00
ROMD:73D7 67               ld   h,a
ROMD:73D8 78               ld   a,b
ROMD:73D9 77               ld   (hl),a
ROMD:73DA E1               pop  hl
ROMD:73DB F1               pop  af
ROMD:73DC C9               ret

D:73DD

ROMD:73DD F5               push af
ROMD:73DE D5               push de
ROMD:73DF E5               push hl
ROMD:73E0 FA DE D4         ld   a,(D4DE)
ROMD:73E3 FE FF            cp   a,FF
ROMD:73E5 20 02            jr   nz,73E9
ROMD:73E7 3E 00            ld   a,00
ROMD:73E9 FE 0A            cp   a,0A
ROMD:73EB 28 18            jr   z,7405
ROMD:73ED 5F               ld   e,a
ROMD:73EE 16 00            ld   d,00
ROMD:73F0 21 DF D4         ld   hl,D4DF
ROMD:73F3 CB 27            sla  a
ROMD:73F5 CB 12            rl   d
ROMD:73F7 85               add  l
ROMD:73F8 6F               ld   l,a
ROMD:73F9 7A               ld   a,d
ROMD:73FA 8C               adc  h
ROMD:73FB 67               ld   h,a
ROMD:73FC 78               ld   a,b
ROMD:73FD 22               ldi  (hl),a
ROMD:73FE 79               ld   a,c
ROMD:73FF 77               ld   (hl),a
ROMD:7400 1C               inc  e
ROMD:7401 7B               ld   a,e
ROMD:7402 EA DE D4         ld   (D4DE),a
ROMD:7405 E1               pop  hl
ROMD:7406 D1               pop  de
ROMD:7407 F1               pop  af
ROMD:7408 C9               ret  

D:7409 (updates (D4F3))

ROMD:7409 EA F3 D4         ld   (D4F3),a
ROMD:740C C9               ret  

D:740D (updates (D4F6))

ROMD:740D F5               push af
ROMD:740E 79               ld   a,c
ROMD:740F EA F6 D4         ld   (D4F6),a
ROMD:7412 78               ld   a,b
ROMD:7413 EA F7 D4         ld   (D4F7),a
ROMD:7416 F1               pop  af
ROMD:7417 C9               ret

Stores Direct Damage or Healing to (D4F8)

ROMD:7418 F5               push af
ROMD:7419 79               ld   a,c
ROMD:741A EA F8 D4         ld   (D4F8),a
ROMD:741D 78               ld   a,b
ROMD:741E EA F9 D4         ld   (D4F9),a
ROMD:7421 F1               pop  af
ROMD:7422 C9               ret

D:7423 (updates (D4FA))

ROMD:7423 7F               ld   a,a
ROMD:7424 EA FA D4         ld   (D4FA),a
ROMD:7427 C9               ret

Changes AI Field ID

ROMD:7428 7F               ld   a,a
ROMD:7429 EA F4 D4         ld   (D4F4),a		;AI - Field ID
ROMD:742C C9               ret  

D:742D (updates (D4F5))

ROMD:742D 7F               ld   a,a
ROMD:742E EA F5 D4         ld   (D4F5),a
ROMD:7431 C9               ret

Initialize some AI values

ROMD:7432 F5               push af
ROMD:7433 3E 00            ld   a,00
ROMD:7435 EA D5 D4         ld   (D4D5),a	;AI - Effect triggered
ROMD:7438 EA F8 D4         ld   (D4F8),a	;AI - Direct Damage or Healing
ROMD:743B EA F9 D4         ld   (D4F9),a	;AI - Direct Damage or Healing
ROMD:743E EA FA D4         ld   (D4FA),a
ROMD:7441 3E FF            ld   a,FF
ROMD:7443 EA D6 D4         ld   (D4D6),a	;AI - Column to check
ROMD:7446 EA D7 D4         ld   (D4D7),a	;AI - Row to check
ROMD:7449 EA D8 D4         ld   (D4D8),a
ROMD:744C EA D9 D4         ld   (D4D9),a
ROMD:744F EA DA D4         ld   (D4DA),a
ROMD:7452 EA DB D4         ld   (D4DB),a
ROMD:7455 EA DC D4         ld   (D4DC),a
ROMD:7458 EA DD D4         ld   (D4DD),a
ROMD:745B EA F3 D4         ld   (D4F3),a
ROMD:745E EA F4 D4         ld   (D4F4),a	;AI - Field ID
ROMD:7461 EA F5 D4         ld   (D4F5),a
ROMD:7464 EA DE D4         ld   (D4DE),a
ROMD:7467 EA DF D4         ld   (D4DF),a
ROMD:746A EA E0 D4         ld   (D4E0),a
ROMD:746D EA E1 D4         ld   (D4E1),a
ROMD:7470 EA E2 D4         ld   (D4E2),a
ROMD:7473 EA E3 D4         ld   (D4E3),a
ROMD:7476 EA E4 D4         ld   (D4E4),a
ROMD:7479 EA E5 D4         ld   (D4E5),a
ROMD:747C EA E6 D4         ld   (D4E6),a
ROMD:747F EA E7 D4         ld   (D4E7),a
ROMD:7482 EA E8 D4         ld   (D4E8),a
ROMD:7485 EA E9 D4         ld   (D4E9),a
ROMD:7488 EA EA D4         ld   (D4EA),a
ROMD:748B EA EB D4         ld   (D4EB),a
ROMD:748E EA EC D4         ld   (D4EC),a
ROMD:7491 EA ED D4         ld   (D4ED),a
ROMD:7494 EA EE D4         ld   (D4EE),a
ROMD:7497 EA EF D4         ld   (D4EF),a
ROMD:749A EA F0 D4         ld   (D4F0),a
ROMD:749D EA F1 D4         ld   (D4F1),a
ROMD:74A0 EA F2 D4         ld   (D4F2),a
ROMD:74A3 3E 00            ld   a,00
ROMD:74A5 EA F6 D4         ld   (D4F6),a
ROMD:74A8 3E 00            ld   a,00
ROMD:74AA EA F7 D4         ld   (D4F7),a
ROMD:74AD F1               pop  af
ROMD:74AE C9               ret

D:74AF

ROMD:74AF C5               push bc
ROMD:74B0 E5               push hl
ROMD:74B1 FA FC D4         ld   a,(D4FC)
ROMD:74B4 EA 4C C8         ld   (C84C),a
ROMD:74B7 FE 01            cp   a,01
ROMD:74B9 20 05            jr   nz,74C0
ROMD:74BB CD CA 74         call 74CA		;AI - Retrieves Attack Phase data
ROMD:74BE 18 07            jr   74C7
ROMD:74C0 FE 02            cp   a,02
ROMD:74C2 20 03            jr   nz,74C7
ROMD:74C4 CD 4F 75         call 754F
ROMD:74C7 E1               pop  hl
ROMD:74C8 C1               pop  bc
ROMD:74C9 C9               ret

AI - Retrieves Attack Phase data

ROMD:74CA FA FD D4         ld   a,(D4FD)
ROMD:74CD EA 91 C8         ld   (C891),a	;Player's Monster ID (Attack Phase)
ROMD:74D0 FA FE D4         ld   a,(D4FE)
ROMD:74D3 EA 92 C8         ld   (C892),a	;Player's Monster ID (Attack Phase)
ROMD:74D6 FA 08 D5         ld   a,(D508)
ROMD:74D9 EA 9C C8         ld   (C89C),a	;CPU's Monster ID (Attack Phase)
ROMD:74DC FA 09 D5         ld   a,(D509)
ROMD:74DF EA 9D C8         ld   (C89D),a	;CPU's Monster ID (Attack Phase)
ROMD:74E2 FA FF D4         ld   a,(D4FF)
ROMD:74E5 EA 93 C8         ld   (C893),a	;Player's Life Points (Attack Phase)
ROMD:74E8 FA 00 D5         ld   a,(D500)
ROMD:74EB EA 94 C8         ld   (C894),a	;Player's Life Points (Attack Phase)
ROMD:74EE FA 0A D5         ld   a,(D50A)
ROMD:74F1 EA 9E C8         ld   (C89E),a	;CPU's Life Points (Attack Phase)
ROMD:74F4 FA 0B D5         ld   a,(D50B)
ROMD:74F7 EA 9F C8         ld   (C89F),a	;CPU's Life Points (Attack Phase)
ROMD:74FA FA 01 D5         ld   a,(D501)
ROMD:74FD EA 95 C8         ld   (C895),a	;Player's Life Points (Attack Phase)
ROMD:7500 FA 02 D5         ld   a,(D502)
ROMD:7503 EA 96 C8         ld   (C896),a	;Player's Life Points (Attack Phase)
ROMD:7506 FA 0C D5         ld   a,(D50C)
ROMD:7509 EA A0 C8         ld   (C8A0),a	;CPU's Life Points (Attack Phase)
ROMD:750C FA 0D D5         ld   a,(D50D)
ROMD:750F EA A1 C8         ld   (C8A1),a	;CPU's Life Points (Attack Phase)
ROMD:7512 FA 03 D5         ld   a,(D503)
ROMD:7515 EA 97 C8         ld   (C897),a	;Player's Monster ATK
ROMD:7518 FA 04 D5         ld   a,(D504)
ROMD:751B EA 98 C8         ld   (C898),a	;Player's Monster ATK
ROMD:751E FA 0E D5         ld   a,(D50E)
ROMD:7521 EA A2 C8         ld   (C8A2),a	;CPU's Monster ATK
ROMD:7524 FA 0F D5         ld   a,(D50F)
ROMD:7527 EA A3 C8         ld   (C8A3),a	;CPU's Monster ATK
ROMD:752A FA 05 D5         ld   a,(D505)
ROMD:752D EA 99 C8         ld   (C899),a	;Player's Monster DEF
ROMD:7530 FA 06 D5         ld   a,(D506)
ROMD:7533 EA 9A C8         ld   (C89A),a	;Player's Monster DEF
ROMD:7536 FA 10 D5         ld   a,(D510)
ROMD:7539 EA A4 C8         ld   (C8A4),a	;CPU's Monster DEF
ROMD:753C FA 11 D5         ld   a,(D511)
ROMD:753F EA A5 C8         ld   (C8A5),a	;CPU's Monster DEF
ROMD:7542 FA 07 D5         ld   a,(D507)
ROMD:7545 EA 9B C8         ld   (C89B),a	;Player's Monster Alignment
ROMD:7548 FA 12 D5         ld   a,(D512)
ROMD:754B EA A6 C8         ld   (C8A6),a	;CPU's Monster Alignment
ROMD:754E C9               ret

D:754F

ROMD:754F FA FD D4         ld   a,(D4FD)
ROMD:7552 EA A8 C8         ld   (C8A8),a
ROMD:7555 FA FE D4         ld   a,(D4FE)
ROMD:7558 EA A9 C8         ld   (C8A9),a
ROMD:755B FA FF D4         ld   a,(D4FF)
ROMD:755E EA AA C8         ld   (C8AA),a
ROMD:7561 FA 00 D5         ld   a,(D500)
ROMD:7564 EA AB C8         ld   (C8AB),a
ROMD:7567 FA 01 D5         ld   a,(D501)
ROMD:756A EA AC C8         ld   (C8AC),a
ROMD:756D FA 02 D5         ld   a,(D502)
ROMD:7570 EA AD C8         ld   (C8AD),a
ROMD:7573 FA 03 D5         ld   a,(D503)
ROMD:7576 EA AE C8         ld   (C8AE),a
ROMD:7579 FA 04 D5         ld   a,(D504)
ROMD:757C EA AF C8         ld   (C8AF),a
ROMD:757F C9               ret  

D:7580

ROMD:7580 EA FC D4         ld   (D4FC),a
ROMD:7583 C9               ret  


D:7584

ROMD:7584 EA 07 D5         ld   (D507),a
ROMD:7587 C9               ret  


D:7588

ROMD:7588 EA 12 D5         ld   (D512),a
ROMD:758B C9               ret  


D:758C

ROMD:758C EA FD D4         ld   (D4FD),a
ROMD:758F C9               ret  


D:7590

ROMD:7590 EA 04 D5         ld   (D504),a
ROMD:7593 C9               ret  

D:7594

ROMD:7594 F5               push af
ROMD:7595 79               ld   a,c
ROMD:7596 EA FD D4         ld   (D4FD),a
ROMD:7599 78               ld   a,b
ROMD:759A EA FE D4         ld   (D4FE),a
ROMD:759D F1               pop  af
ROMD:759E C9               ret  

Stores Player's Life Points

  • 0x3759F-0x375A9 - Stores Player's Life Points
ROMD:759F F5               push af
ROMD:75A0 79               ld   a,c
ROMD:75A1 EA FF D4         ld   (D4FF),a
ROMD:75A4 78               ld   a,b
ROMD:75A5 EA 00 D5         ld   (D500),a
ROMD:75A8 F1               pop  af
ROMD:75A9 C9               ret  
  • 0x375AA-0x375B4 - Stores Player's Life Points
ROMD:75AA F5               push af
ROMD:75AB 79               ld   a,c
ROMD:75AC EA 01 D5         ld   (D501),a
ROMD:75AF 78               ld   a,b
ROMD:75B0 EA 02 D5         ld   (D502),a
ROMD:75B3 F1               pop  af
ROMD:75B4 C9               ret  

D:75B5

ROMD:75B5 F5               push af
ROMD:75B6 79               ld   a,c
ROMD:75B7 EA 03 D5         ld   (D503),a
ROMD:75BA 78               ld   a,b
ROMD:75BB EA 04 D5         ld   (D504),a
ROMD:75BE F1               pop  af
ROMD:75BF C9               ret  

D:75C0

ROMD:75C0 F5               push af
ROMD:75C1 79               ld   a,c
ROMD:75C2 EA 05 D5         ld   (D505),a
ROMD:75C5 78               ld   a,b
ROMD:75C6 EA 06 D5         ld   (D506),a
ROMD:75C9 F1               pop  af
ROMD:75CA C9               ret  

D:75CB

ROMD:75CB F5               push af
ROMD:75CC 79               ld   a,c
ROMD:75CD EA 08 D5         ld   (D508),a
ROMD:75D0 78               ld   a,b
ROMD:75D1 EA 09 D5         ld   (D509),a
ROMD:75D4 F1               pop  af
ROMD:75D5 C9               ret  

Stores CPU's Life Points

  • 0x375D6-0x375E0 - Stores CPU's Life Points for damage calculation
ROMD:75D6 F5               push af
ROMD:75D7 79               ld   a,c
ROMD:75D8 EA 0A D5         ld   (D50A),a
ROMD:75DB 78               ld   a,b
ROMD:75DC EA 0B D5         ld   (D50B),a
ROMD:75DF F1               pop  af
ROMD:75E0 C9               ret  

D:75E1

ROMD:75E1 F5               push af
ROMD:75E2 79               ld   a,c
ROMD:75E3 EA 0C D5         ld   (D50C),a
ROMD:75E6 78               ld   a,b
ROMD:75E7 EA 0D D5         ld   (D50D),a
ROMD:75EA F1               pop  af
ROMD:75EB C9               ret  

D:75EC

ROMD:75EC F5               push af
ROMD:75ED 79               ld   a,c
ROMD:75EE EA 0E D5         ld   (D50E),a
ROMD:75F1 78               ld   a,b
ROMD:75F2 EA 0F D5         ld   (D50F),a
ROMD:75F5 F1               pop  af
ROMD:75F6 C9               ret  

D:75F7

ROMD:75F7 F5               push af
ROMD:75F8 79               ld   a,c
ROMD:75F9 EA 10 D5         ld   (D510),a
ROMD:75FC 78               ld   a,b
ROMD:75FD EA 11 D5         ld   (D511),a
ROMD:7600 F1               pop  af
ROMD:7601 C9               ret  

D:7602

ROMD:7602 F5               push af
ROMD:7603 79               ld   a,c
ROMD:7604 EA FE D4         ld   (D4FE),a
ROMD:7607 78               ld   a,b
ROMD:7608 EA FF D4         ld   (D4FF),a
ROMD:760B F1               pop  af
ROMD:760C C9               ret  

D:760D

ROMD:760D F5               push af
ROMD:760E 79               ld   a,c
ROMD:760F EA 00 D5         ld   (D500),a
ROMD:7612 78               ld   a,b
ROMD:7613 EA 01 D5         ld   (D501),a
ROMD:7616 F1               pop  af
ROMD:7617 C9               ret  

D:7618

ROMD:7618 F5               push af
ROMD:7619 79               ld   a,c
ROMD:761A EA 02 D5         ld   (D502),a
ROMD:761D 78               ld   a,b
ROMD:761E EA 03 D5         ld   (D503),a
ROMD:7621 F1               pop  af
ROMD:7622 C9               ret

Bank E

Game text 3

Fields names

  • 0x380E2-0x38116 - Fields names

Read selected card's name

  • 0x38117-0x38151 - Read selected card's name or Construction card's name
ROME:4117 F5               push af
ROME:4118 C5               push bc
ROME:4119 D5               push de
ROME:411A E5               push hl
ROME:411B CD 19 40         call 4019
ROME:411E 11 52 41         ld   de,4152
ROME:4121 FA CD C5         ld   a,(C5CD)
ROME:4124 6F               ld   l,a
ROME:4125 FA CE C5         ld   a,(C5CE)
ROME:4128 67               ld   h,a
ROME:4129 29               add  hl,hl
ROME:412A 44               ld   b,h
ROME:412B 4D               ld   c,l
ROME:412C 19               add  hl,de		;hl = Pointer to card name pointer
ROME:412D 2A               ldi  a,(hl)
ROME:412E 66               ld   h,(hl)
ROME:412F 6F               ld   l,a
ROME:4130 E5               push hl
ROME:4131 03               inc  bc
ROME:4132 03               inc  bc
ROME:4133 60               ld   h,b
ROME:4134 69               ld   l,c
ROME:4135 19               add  hl,de
ROME:4136 2A               ldi  a,(hl)
ROME:4137 46               ld   b,(hl)
ROME:4138 4F               ld   c,a
ROME:4139 E1               pop  hl
ROME:413A 11 D0 C5         ld   de,C5D0
ROME:413D 06 00            ld   b,00
ROME:413F 79               ld   a,c
ROME:4140 BD               cp   l
ROME:4141 28 06            jr   z,4149
ROME:4143 2A               ldi  a,(hl)
ROME:4144 12               ld   (de),a
ROME:4145 13               inc  de
ROME:4146 04               inc  b
ROME:4147 18 F6            jr   413F
ROME:4149 78               ld   a,b
ROME:414A EA E4 C5         ld   (C5E4),a
ROME:414D E1               pop  hl
ROME:414E D1               pop  de
ROME:414F C1               pop  bc
ROME:4150 F1               pop  af
ROME:4151 C9               ret  

Card names pointers

  • 0x38152-0x389C5 - Card names and Construction card names pointers
ROME:4152

Cards names

  • 0x389D8-0x3B2E8 - Cards names

Construction Parts names

  • 0x3B2E9-0x3BABA - Construction Parts names

Cards Types names

  • 0x3BB48-0x3BBFD - Cards Types

CPU Opponents names

  • 0x3BC37-0x3BE08 - CPU Opponents names

Records screen text

  • 0x3BE17-0x3BE6E - Records screen text

Alignments names

  • 0x3BECC-0x3BF22 - Alignments names

Name Creation confirmation / Save Deletion confirmation

  • 0x3C412-0x3C4AE - Name Creation confirmation / Save Deletion confirmation

Duel text

  • 0x3C692 - « Opponent's Turn »

Bank F

Graphics 3

  • 0x3C760-0x3C890 - Cursors (Main menu and Campaign mode)
  • 0x3C960-0x3CBF0 - Duel area

Fusion ROM Bank and pointer

Returns Fusion data ROM Bank

  • 0x3D0AA-0x3D0B1 - Returns Fusion data ROM Bank for the Fusion material card ID
ROMF:50AA E5               push hl
ROMF:50AB 21 C2 50         ld   hl,50C2
ROMF:50AE 09               add  hl,bc		;hl = 0x50C2 + Fusion material card ID
ROMF:50AF 7E               ld   a,(hl)
ROMF:50B0 E1               pop  hl
ROMF:50B1 C9               ret

Returns Fusion data pointer

ROMF:50B2 F5               push af
ROMF:50B3 E5               push hl
ROMF:50B4 CB 21            sla  c		;Fusion_Material_ID × 2
ROMF:50B6 CB 10            rl   b
ROMF:50B8 21 E4 53         ld   hl,53E4
ROMF:50BB 09               add  hl,bc		;hl = 0x53E4 + Fusion_Material_ID × 2
ROMF:50BC 2A               ldi  a,(hl)
ROMF:50BD 46               ld   b,(hl)
ROMF:50BE 4F               ld   c,a
ROMF:50BF E1               pop  hl
ROMF:50C0 F1               pop  af
ROMF:50C1 C9               ret  

Fusion materials ROM Banks

  • 0x3D0C2-0x3D3E3 - ROM Banks for each Fusion material
ROMF:50C2

Fusion materials pointers

  • 0x3D3E4-0x3DA27 - Pointers for each Fusion material
ROMF:53E4

Bank 10

Debug Character Viewer

Display selected Character

RO10:4101 C5               push bc
RO10:4102 E5               push hl
RO10:4103 3E 02            ld   a,02
RO10:4105 CD E3 0E         call 0EE3		;Related to display
RO10:4108 CD C1 10         call 10C1		;Related to display
RO10:410B FA 3A CA         ld   a,(CA3A)
RO10:410E FE 18            cp   a,18
RO10:4110 30 10            jr   nc,4122
RO10:4112 FA 3A CA         ld   a,(CA3A)	;Character ID selected
RO10:4115 EA F9 C6         ld   (C6F9),a	;CPU Character ID displayed = (CA3A)
RO10:4118 AF               xor  a
RO10:4119 EA FA C6         ld   (C6FA),a	;Text ID displayed = 0 (Weevil)
RO10:411C CF               rst  08		;rst 08 to blank screen
...
RO10:411F CF               rst  08		;rst 08 to picture display
...
RO10:4126 C9               ret  

Increment Character ID

RO10:4136 FA 3A CA         ld   a,(CA3A)	;Character ID
RO10:4139 C6 01            add  a,01
RO10:413B EA 3A CA         ld   (CA3A),a
RO10:413E 3E 06            ld   a,06
RO10:4140 CD E3 0E         call 0EE3		;Related to display
RO10:4143 CD 60 41         call 4160
RO10:4146 CD C1 10         call 10C1		;Related to display
RO10:4149 AF               xor  a
RO10:414A C9               ret  

Decrement Character ID

RO10:414B FA 3A CA         ld   a,(CA3A)	;Character ID
RO10:414E D6 01            sub  a,01
RO10:4150 EA 3A CA         ld   (CA3A),a
RO10:4153 3E 06            ld   a,06
RO10:4155 CD E3 0E         call 0EE3		;Related to display
RO10:4158 CD 60 41         call 4160
RO10:415B CD C1 10         call 10C1		;Related to display
RO10:415E AF               xor  a
RO10:415F C9               ret  

10:4160

RO10:4160 F5               push af
RO10:4161 C5               push bc
RO10:4162 01 46 98         ld   bc,9846
RO10:4165 CD D2 10         call 10D2
RO10:4168 FA 3A CA         ld   a,(CA3A)	;Character ID
RO10:416B EA F6 C5         ld   (C5F6),a
RO10:416E 3E 00            ld   a,00
RO10:4170 EA F7 C5         ld   (C5F7),a
RO10:4173 CD 03 15         call 1503		;Converts in decimal
RO10:4176 78               ld   a,b
RO10:4177 E6 0F            and  a,0F
RO10:4179 3C               inc  a
RO10:417A CD 13 11         call 1113		;Related to display
RO10:417D 79               ld   a,c
RO10:417E E6 F0            and  a,F0
RO10:4180 CB 37            swap a
RO10:4182 3C               inc  a
RO10:4183 CD 13 11         call 1113
RO10:4186 79               ld   a,c
RO10:4187 E6 0F            and  a,0F
RO10:4189 3C               inc  a
RO10:418A CD 13 11         call 1113
RO10:418D AF               xor  a
RO10:418E 0E 11            ld   c,11
RO10:4190 CD 13 11         call 1113
RO10:4193 0D               dec  c
RO10:4194 20 FA            jr   nz,4190
RO10:4196 C1               pop  bc
RO10:4197 F1               pop  af
RO10:4198 C9               ret

Bank 11

Credits display and softlock

  • 0x44004-0x44021 - Display the credits, and locks the game
RO11:4004 F5               push af
RO11:4005 C5               push bc
RO11:4006 D5               push de
RO11:4007 E5               push hl
RO11:4008 CD 27 40         call 4027
RO11:400B 3E 1C            ld   a,1C
RO11:400D CD E3 0E         call 0EE3
RO11:4010 CD 6D 40         call 406D
RO11:4013 CD C1 10         call 10C1
RO11:4016 FE 00            cp   a,00
RO11:4018 28 F1            jr   z,400B
RO11:401A CF               rst  08
RO11:401B 19               add  hl,de
RO11:401C 0A               ld   a,(bc)
RO11:401D CF               rst  08
RO11:401E 1B               dec  de
RO11:401F 0A               ld   a,(bc)
RO11:4020 18 FE            jr   4020		;Lock the game

pop in registers

RO11:4022 E1               pop  hl
RO11:4023 D1               pop  de
RO11:4024 C1               pop  bc
RO11:4025 F1               pop  af
RO11:4026 C9               ret  

Disable LCD Display

RO11:4027 F0 40            ld   a,(ff00+40)	;LCD display
RO11:4029 CB BF            res  7,a		;LCD Display OFF
RO11:402B E0 40            ld   (ff00+40),a
RO11:402D CF               rst  08

11:402E (Scroll X / Y, and ?)

RO11:402E 03               inc  bc
RO11:402F 08 3E 00         ld   (003E),sp
RO11:4032 E0 42            ld   (ff00+42),a
RO11:4034 E0 43            ld   (ff00+43),a
RO11:4036 EA C8 CA         ld   (CAC8),a
RO11:4039 EA C9 CA         ld   (CAC9),a
RO11:403C 01 00 04         ld   bc,0400
RO11:403F 21 00 98         ld   hl,9800
RO11:4042 16 00            ld   d,00
RO11:4044 CD AE 41         call 41AE
RO11:4047 FA 38 CA         ld   a,(CA38)
RO11:404A FE 04            cp   a,04
RO11:404C 20 14            jr   nz,4062
RO11:404E CF               rst  08
RO11:404F 13               inc  de
RO11:4050 0B               dec  bc
RO11:4051 CD 17 12         call 1217
RO11:4054 01 00 04         ld   bc,0400
RO11:4057 21 00 98         ld   hl,9800
RO11:405A 16 00            ld   d,00
RO11:405C CD AE 41         call 41AE
RO11:405F CD 1E 12         call 121E
RO11:4062 F0 40            ld   a,(ff00+40)
RO11:4064 CB 8F            res  1,a
RO11:4066 CB AF            res  5,a
RO11:4068 CB FF            set  7,a
RO11:406A E0 40            ld   (ff00+40),a
RO11:406C C9               ret  

Credits text

  • 0x441BB-0x447F9 - Credits
 Original           
  Character Design  
 Original           
  Monster Design    
   KAZUKI TAKAHASHI 
                    
 Game Design &      
  Direction         
   NOBUHIRO YAMADA  
                    
 Program            
   NOBUHIRO YAMADA  
   TAKURI CHIDA     
                    
 Graphics Direction 
   KANAKO KOYAMA    
                    
 Graphics           
   KANAKO KOYAMA    
   YUKIKO HATANAKA  
                    
 Sound              
   ARY              
   NAOKO ISHII      
                    
 Monster Notes      
   KEITA SHIMOMURA  
   TAKURI CHIDA     
   NOBUHIRO YAMADA  
                    
                    
                    
 Special Thanks     
  KAZUHIKO TORISHIMA
 TOSHIMASA TAKAHASHI
  YOSHIHISA HEISHI  
  TOMOYUKI SHIMA    
                    
  HIDEO YOSHIKURA   
  TAKESHI NOMURA    
  MUNEHARU MACHIDA  
                    
  SEIICHI SHIMIZU   
                    
      I.T.L         
                    
  KONAMI SOFTWARE   
    SHANGHAI, INC.  
                    
  MANAMI MIYAZAKI   
    SCOTT DOLPH     
                    
  AKIO MASUDA       
  MASAYUKI TAKAHASHI
  MORIKUNI KUBO     
  TSUTOMU WATANABE  
MASANORI TAKABAYASHI
  TAKASHI KINBARA   
                    
  SHOJI DEWA        
  AKIHIRO TAKATOKU  
                    
  MASAKI YAMADA     
  TAKASHI NUMAZAWA  
  KATSUHIRO NAKAYAMA
  SEIJI AKAGI       
                    
  TAKAO HIYOSHI     
  SHIGEYUKI TAMURA  
  HIROAKI KAMATA    
  KANAKO NAKAHARA   
                    
  MASATO SAKAI      
                    
 Producer           
   SATOSHI SHIMOMURA
                    
 General Producer   
   MOTOYUKI YOSHIOKA

Bank 12

Debug Sound Test

RO12:4125 FA D2 CA         ld   a,(CAD2)	;Music or Sound Effect ?
RO12:4128 FE 00            cp   a,00
RO12:412A 20 08            jr   nz,4134		;If it's a Sound Effect, jump to 12:4134
RO12:412C FA D3 CA         ld   a,(CAD3)	;Selected Music track
RO12:412F CD 52 2B         call 2B52		;Loads Music ROM Bank and pointer
RO12:4132 18 06            jr   413A
RO12:4134 FA D4 CA         ld   a,(CAD4)	;Selected Sound Effect
RO12:4137 CD FC 2B         call 2BFC		;Loads Sound Effect Bank and pointer
RO12:413A 3E 02            ld   a,02
RO12:413C CD E3 0E         call 0EE3
RO12:413F CD C1 10         call 10C1
RO12:4142 AF               xor  a
RO12:4143 C9               ret

Bank 13

Cards Orders

  • 0x4C03B-0x4C67A - Number
  • 0x4C67B-0x4CCBA - Alphabetical
  • 0x4CCBB-0x4D2FA - ATK
  • 0x4D2FB-0x4D93A - DEF
  • 0x4D93B-0x4DF7A - Alignment
  • 0x4DF7B-0x4E5BA - Type

Bank 14 - 1C

Blank.

Bank 1D - 23

Fusions list

  • 0x74004-0x8FA6F - Fusion list
xx xx yy yy
xx - Fusion material #2
yy - Fusion result
For the Fusion material #1, refer to the ROM Banks and pointers arrays at 0x3D0C2.

Bank 24 - 25

Card drops list

  • 0x90002-0x96A4D - Card drops probabilities
aa ab bb cc cd dd ee ef ff gg gh hh ii ij jj
Each probability is [0;2047], and written on 12 bits
For the address list, refer to the ROM Banks and pointers arrays at 0xFB338.

Bank 28 - 37

Graphics 4

  • 0xA0000-0xC8D40 - ?
  • 0xD0000-0xDD3A0 - Title Screen + control routines to check if the Title Screen has been altered

Bank 3E

Returns card drop address

  • 0xFB1E8-0xFB1FC - Returns the ROM Bank and pointer containing the card drop list
RO3E:71E8 F5               push af
RO3E:71E9 E5               push hl
RO3E:71EA 21 38 73         ld   hl,7338
RO3E:71ED 09               add  hl,bc
RO3E:71EE 56               ld   d,(hl)
RO3E:71EF CB 21            sla  c
RO3E:71F1 CB 10            rl   b
RO3E:71F3 21 50 73         ld   hl,7350
RO3E:71F6 09               add  hl,bc
RO3E:71F7 2A               ldi  a,(hl)
RO3E:71F8 46               ld   b,(hl)
RO3E:71F9 4F               ld   c,a
RO3E:71FA E1               pop  hl
RO3E:71FB F1               pop  af
RO3E:71FC C9               ret

Card drop ROM Banks

  • 0xFB338 - Card drop ROM Banks
RO3E:7338
24 24 24 24 24 24 24 24 24 24 24 24 24 24 25 25
25 25 25 25 25 25 25 25

Card drop pointers

  • 0xFB350 - Card drop pointers
RO3E:7350
02 40 - Weevil Underwood
B5 44 - Mai Valentine
68 49 - Rex Raptor
1B 4E - Mako Tsunami
CE 52 - Yami Yugi
81 57 - Yugi Muto
34 5C - Tea Gardner (No drop)
34 5C - Joey Wheeler
E7 60 - Seto Kaiba
9A 65 - Espa Roba
4D 6A - Tristan Taylor
00 6F - Rare Hunter
B3 73 - Pandora
66 78 - Marik Ishtar
02 40 - Heishin
B5 44 - P. Seto
68 49 - Simon Muran
1B 4E - Exosha (no drop)
1B 4E - Grandpa
CE 52 - Yami Bakura
81 57 - Shadi
34 5C - DarkNite
E7 60 - Nitemare
9A 65 - Ishizu Ishtar

Bank 40

Sound Effects management

Loads Sound Effect pointer

  • 0x100002-0x100018 - Loads Sound Effect pointer
RO40:4002 06 00            ld   b,00
RO40:4004 4F               ld   c,a
RO40:4005 CB 21            sla  c
RO40:4007 CB 10            rl   b
RO40:4009 CB 21            sla  c
RO40:400B CB 10            rl   b
RO40:400D 21 19 40         ld   hl,4019
RO40:4010 09               add  hl,bc
RO40:4011 2A               ldi  a,(hl)
RO40:4012 5F               ld   e,a
RO40:4013 2A               ldi  a,(hl)
RO40:4014 57               ld   d,a
RO40:4015 2A               ldi  a,(hl)
RO40:4016 66               ld   h,(hl)
RO40:4017 6F               ld   l,a
RO40:4018 C9               ret

Sound Effects pointers

  • 0x100019-0x0x10006C - Sound Effects pointers
RO40:4019
40 00 6D 40 - Trap Activated
40 00 F6 40 - Card Set
40 00 1B 41 - Cursor 1
40 00 B5 41 - Selected
40 00 94 42 - Level increases
40 00 8A 45 - Level decreases
40 00 80 48 - Cancel
40 00 7C 4A - 
40 00 72 4D - Healing
40 00 D6 4E - Life Points diminishing
40 00 70 4F - 
40 00 66 52 - End of turn
40 00 AE 53 - 
40 00 A4 56 - 
40 00 9A 59 - Cursor 2
40 00 34 5A - Exodia
40 00 32 5B - Direct Damage Spell
40 00 9D 5B - Swords of Revealing Light
40 00 61 5D - Dark Hole
40 00 3F 5E - Raigeki
40 00 C3 5E - Field Spell

Sound Effects

  • 0x10006D - Sound Effects

Bank 41 - 53

Music tracks

  • 0x104002 - 0x14F2D8 - Music tracks

Bank 70 - C3

Graphics 5

  • 0x1C0000-0x30DB00 - Cards illustrations, CPU opponents illustrations...

Bank D0

Menu texts

  • 0x3401E4 - « CHEST »
  • 0x340203 - « DETAILS »
  • 0x340214 - « ADD TO DECK »
  • 0x34078B - « VERSUS »
  • 0x3407C6 - « CHEST »
  • 0x3407E5 - « DETAILS »
  • 0x3407F6 - « TO EXCHANGE »
  • 0x34082C - « DECK »
  • 0x340848 - « DETAILS »
  • 0x34085C - « RETURN TO CHEST »
  • 0x340896 - « CHECK CARDS »
  • 0x3408B9 - « DETAIL »
  • 0x3408C8 - « RETURN TO »
  • 0x340E7B - « END »
  • 0x340EA8 - « INPUT 8-DIGIT NUMBER »
  • 0x34196C - « DECK OF OPPONENT »
  • 0x341990 - « DETAILS »
  • 0x34199D - « DISCARD »
  • 0x3419AA - « END TURN »
  • 0x341C54 - « COST »
  • 0x341E49 - « PARTS »
  • 0x341E93 - « CHEST »
  • 0x341EAF - « DETAILS »
  • 0x341EC0 - « DISASSEMBLE »
  • 0x341EF8 - « GxH » (Debug Sound Test)
  • 0x341F00 - « ET » (Debug Sound Test)

Bank FE - FF

Cards texts

  • 0x3F8002-0x3FF085 - Cards texts