Difference between revisions of "Yu-Gi-Oh! Dark Duel Stories:ROM map"

From Data Crystal
Jump to: navigation, search
(update comment format ("//" → ";"))
(Attribute → Alignment (DDS didn't feature any Attributes); clean up a bunch of links formatting (there's still tons and tons more though))
 
Line 7: Line 7:
  
 
====rst 08====
 
====rst 08====
  ROM0:0008 C3 A2 11        [[#rst_08_instructions|jp  11A2          ;rst 08 instructions]]
+
  ROM0:0008 C3 A2 11        [[#rst 08 instructions|jp  11A2          ;rst 08 instructions]]
  
 
====rst 10====
 
====rst 10====
Line 29: Line 29:
  
 
====rst 40 (vblank)====
 
====rst 40 (vblank)====
  ROM0:0040 C3 24 05        [[#rst_40_-_Load_pointer_to_OAM_subroutine|jp  0524]]
+
  ROM0:0040 C3 24 05        [[#rst 40 - Load pointer to OAM subroutine|jp  0524]]
  
 
====rst 48 (LCD)====
 
====rst 48 (LCD)====
Line 36: Line 36:
  
 
====rst 50 (timer)====
 
====rst 50 (timer)====
  ROM0:0050 C3 2C 3D        [[#rst_50_-_Read_Game_Boy_Sound_file|jp  3D2C            ;Read Game Boy Sound file]]
+
  ROM0:0050 C3 2C 3D        [[#rst 50 - Read Game Boy Sound file|jp  3D2C            ;Read Game Boy Sound file]]
  
 
====rst 58 (serial)====
 
====rst 58 (serial)====
  ROM0:0058 C3 DA 02        [[#rst_58_-_Serial_Interrupt|jp  02DA]]
+
  ROM0:0058 C3 DA 02        [[#rst 58 - Serial Interrupt|jp  02DA]]
  
 
====rst 60 (joypad)====
 
====rst 60 (joypad)====
Line 59: Line 59:
 
  ROM0:015F 21 00 D0        ld  hl,D000
 
  ROM0:015F 21 00 D0        ld  hl,D000
 
  ROM0:0162 F9              ld  sp,hl
 
  ROM0:0162 F9              ld  sp,hl
  ROM0:0163 CD EF 11        [[#Game_Boy_Color_check|call 11EF ;Game Boy Color check]]
+
  ROM0:0163 CD EF 11        [[#Game Boy Color check|call 11EF ;Game Boy Color check]]
 
  ROM0:0166 CD D1 2F        call 2FD1
 
  ROM0:0166 CD D1 2F        call 2FD1
 
  ROM0:0169 3E 01            ld  a,01
 
  ROM0:0169 3E 01            ld  a,01
Line 169: Line 169:
 
  ROM0:0204 0C              inc  c
 
  ROM0:0204 0C              inc  c
 
  ROM0:0205 0C              inc  c
 
  ROM0:0205 0C              inc  c
  ROM0:0206 CD 00 12        [[#ROM_Bank_switch|call 1200 ;ROM Bank switch]]
+
  ROM0:0206 CD 00 12        [[#ROM Bank switch|call 1200 ;ROM Bank switch]]
 
  ROM0:0209 F2              ld  a,(ff00+c)
 
  ROM0:0209 F2              ld  a,(ff00+c)
 
  ROM0:020A E0 70            ld  (ff00+70),a
 
  ROM0:020A E0 70            ld  (ff00+70),a
Line 195: Line 195:
 
  ROM0:0225 BB              cp  e
 
  ROM0:0225 BB              cp  e
 
  ROM0:0226 20 04            jr  nz,022C
 
  ROM0:0226 20 04            jr  nz,022C
  ROM0:0228 CD D1 01        [[#ROM_Bank_.2B_WRAM_Bank_switching|call 01D1 ;ROM Bank + WRAM Bank switching]]
+
  ROM0:0228 CD D1 01        [[#ROM Bank + WRAM Bank switching|call 01D1 ;ROM Bank + WRAM Bank switching]]
 
  ROM0:022B E5              push hl
 
  ROM0:022B E5              push hl
 
  ROM0:022C 16 C0            ld  d,C0
 
  ROM0:022C 16 C0            ld  d,C0
Line 218: Line 218:
 
  ROM0:0246 BB              cp  e
 
  ROM0:0246 BB              cp  e
 
  ROM0:0247 20 06            jr  nz,024F
 
  ROM0:0247 20 06            jr  nz,024F
  ROM0:0249 CD D1 01        [[#ROM_Bank_.2B_WRAM_Bank_switching|call 01D1 ;ROM Bank + WRAM Bank switching]]
+
  ROM0:0249 CD D1 01        [[#ROM Bank + WRAM Bank switching|call 01D1 ;ROM Bank + WRAM Bank switching]]
 
  ROM0:024C E5              push hl
 
  ROM0:024C E5              push hl
 
  ROM0:024D 18 F4            jr  0243
 
  ROM0:024D 18 F4            jr  0243
Line 243: Line 243:
 
  ROM0:0269 BA              cp  d
 
  ROM0:0269 BA              cp  d
 
  ROM0:026A 20 06            jr  nz,0272 ;If(((C5A1) + 0x80) ≠ (C5A0)), jump to 0:0272
 
  ROM0:026A 20 06            jr  nz,0272 ;If(((C5A1) + 0x80) ≠ (C5A0)), jump to 0:0272
  ROM0:026C CD D1 01        [[#ROM_Bank_.2B_WRAM_Bank_switching|call 01D1 ;ROM Bank + WRAM Bank switching]]
+
  ROM0:026C CD D1 01        [[#ROM Bank + WRAM Bank switching|call 01D1 ;ROM Bank + WRAM Bank switching]]
 
  ROM0:026F E0 18            ld  (ff00+18),a ;NR23 - Channel 2 Frequency low
 
  ROM0:026F E0 18            ld  (ff00+18),a ;NR23 - Channel 2 Frequency low
 
  ...
 
  ...
Line 501: Line 501:
 
  ROM0:044B 06 01            ld  b,01
 
  ROM0:044B 06 01            ld  b,01
 
  ROM0:044D 3E 60            ld  a,60
 
  ROM0:044D 3E 60            ld  a,60
  ROM0:044F CD 89 04        [[#Start_data_transfer|call 0489 ;Start data transfer]]
+
  ROM0:044F CD 89 04        [[#Start data transfer|call 0489 ;Start data transfer]]
 
  ROM0:0452 CD 65 11        call 1165
 
  ROM0:0452 CD 65 11        call 1165
 
  ROM0:0455 FA A4 C5        ld  a,(C5A4)
 
  ROM0:0455 FA A4 C5        ld  a,(C5A4)
Line 3,838: Line 3,838:
 
  ROM0:17BF 6F              ld  l,a
 
  ROM0:17BF 6F              ld  l,a
 
  ROM0:17C0 2A              ldi  a,(hl)
 
  ROM0:17C0 2A              ldi  a,(hl)
  ROM0:17C1 CD 00 12        [[#ROM_Bank_switch|call 1200 ;ROM Bank switch]]
+
  ROM0:17C1 CD 00 12        [[#ROM Bank switch|call 1200 ;ROM Bank switch]]
 
  ROM0:17C4 E5              push hl
 
  ROM0:17C4 E5              push hl
 
  ROM0:17C5 FA AE C6        ld  a,(C6AE)
 
  ROM0:17C5 FA AE C6        ld  a,(C6AE)
Line 3,860: Line 3,860:
 
  ROM0:17DF CD 77 18        call 1877
 
  ROM0:17DF CD 77 18        call 1877
 
  ROM0:17E2 7A              ld  a,d
 
  ROM0:17E2 7A              ld  a,d
  ROM0:17E3 CD 00 12        [[#ROM_Bank_switch|call 1200 ;ROM Bank switch]]
+
  ROM0:17E3 CD 00 12        [[#ROM Bank switch|call 1200 ;ROM Bank switch]]
 
  ROM0:17E6 CD 80 18        call 1880
 
  ROM0:17E6 CD 80 18        call 1880
 
  ROM0:17E9 E1              pop  hl
 
  ROM0:17E9 E1              pop  hl
Line 4,137: Line 4,137:
 
  ROM0:19E7 C5              push bc
 
  ROM0:19E7 C5              push bc
 
  ROM0:19E8 E5              push hl
 
  ROM0:19E8 E5              push hl
  ROM0:19E9 CD 36 1A        [[#Retrieve_selected_card_zone_pointer|call 1A36 ;Returns card zone RAM address of the selected column and row in register bc]]
+
  ROM0:19E9 CD 36 1A        [[#Retrieve selected card zone pointer|call 1A36 ;Returns card zone RAM address of the selected column and row in register bc]]
 
  ROM0:19EC 60              ld  h,b
 
  ROM0:19EC 60              ld  h,b
 
  ROM0:19ED 69              ld  l,c
 
  ROM0:19ED 69              ld  l,c
Line 4,156: Line 4,156:
 
  ROM0:19FC C5              push bc
 
  ROM0:19FC C5              push bc
 
  ROM0:19FD E5              push hl
 
  ROM0:19FD E5              push hl
  ROM0:19FE CD 36 1A        [[#Retrieve_selected_card_zone_pointer|call 1A36 ;Returns card zone RAM address of the selected column and row in register bc]]
+
  ROM0:19FE CD 36 1A        [[#Retrieve selected card zone pointer|call 1A36 ;Returns card zone RAM address of the selected column and row in register bc]]
 
  ROM0:1A01 60              ld  h,b
 
  ROM0:1A01 60              ld  h,b
 
  ROM0:1A02 69              ld  l,c
 
  ROM0:1A02 69              ld  l,c
Line 4,175: Line 4,175:
 
  ROM0:1A14 C5              push bc
 
  ROM0:1A14 C5              push bc
 
  ROM0:1A15 E5              push hl
 
  ROM0:1A15 E5              push hl
  ROM0:1A16 CD 36 1A        [[#Retrieve_selected_card_zone_pointer|call 1A36 ;Returns card zone RAM address of the selected column and row in register bc]]
+
  ROM0:1A16 CD 36 1A        [[#Retrieve selected card zone pointer|call 1A36 ;Returns card zone RAM address of the selected column and row in register bc]]
 
  ROM0:1A19 60              ld  h,b
 
  ROM0:1A19 60              ld  h,b
 
  ROM0:1A1A 69              ld  l,c
 
  ROM0:1A1A 69              ld  l,c
Line 4,194: Line 4,194:
 
  ROM0:1A2D CF              rst  08
 
  ROM0:1A2D CF              rst  08
 
  ...
 
  ...
  ROM0:1A30 CD FB 19        [[#Updates_selected_card_ID_and_status|call 19FB ;Updates selected card ID and status]]
+
  ROM0:1A30 CD FB 19        [[#Updates selected card ID and status|call 19FB ;Updates selected card ID and status]]
 
  ROM0:1A33 C1              pop  bc
 
  ROM0:1A33 C1              pop  bc
 
  ROM0:1A34 F1              pop  af
 
  ROM0:1A34 F1              pop  af
Line 4,254: Line 4,254:
 
  ROM0:1A86 E5              push hl
 
  ROM0:1A86 E5              push hl
 
  ROM0:1A87 11 00 00        ld  de,0000
 
  ROM0:1A87 11 00 00        ld  de,0000
  ROM0:1A8A CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1A8A CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1A8D FE 01            cp  a,01
 
  ROM0:1A8D FE 01            cp  a,01
 
  ROM0:1A8F 20 04            jr  nz,1A95 ;If(Card ID ≠ 0), jump to 0:1A95
 
  ROM0:1A8F 20 04            jr  nz,1A95 ;If(Card ID ≠ 0), jump to 0:1A95
Line 4,260: Line 4,260:
 
  ROM0:1A93 18 1E            jr  1AB3 ;Else get out of this function (No card)
 
  ROM0:1A93 18 1E            jr  1AB3 ;Else get out of this function (No card)
 
  ROM0:1A95 11 20 03        ld  de,0320
 
  ROM0:1A95 11 20 03        ld  de,0320
  ROM0:1A98 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1A98 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1A9B FE 00            cp  a,00
 
  ROM0:1A9B FE 00            cp  a,00
 
  ROM0:1A9D 28 04            jr  z,1AA3 ;If(Card ID > 800), jump to 0:1AA3
 
  ROM0:1A9D 28 04            jr  z,1AA3 ;If(Card ID > 800), jump to 0:1AA3
Line 4,266: Line 4,266:
 
  ROM0:1AA1 18 10            jr  1AB3 ;Else get out of this function (Normal card)
 
  ROM0:1AA1 18 10            jr  1AB3 ;Else get out of this function (Normal card)
 
  ROM0:1AA3 11 44 16        ld  de,1644
 
  ROM0:1AA3 11 44 16        ld  de,1644
  ROM0:1AA6 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1AA6 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1AA9 FE 00            cp  a,00
 
  ROM0:1AA9 FE 00            cp  a,00
 
  ROM0:1AAB 28 04            jr  z,1AB1 ;If(Card ID > 5700), jump to 0:1AB1
 
  ROM0:1AAB 28 04            jr  z,1AB1 ;If(Card ID > 5700), jump to 0:1AB1
Line 4,284: Line 4,284:
 
  ROM0:1ABA E5              push hl
 
  ROM0:1ABA E5              push hl
 
  ROM0:1ABB 11 00 00        ld  de,0000
 
  ROM0:1ABB 11 00 00        ld  de,0000
  ROM0:1ABE CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1ABE CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1AC1 FE 01            cp  a,01
 
  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:1AC3 20 04            jr  nz,1AC9 ;If(Position in Card Trunk ≠ 0), jump to 0:1AC9
Line 4,290: Line 4,290:
 
  ROM0:1AC7 18 1C            jr  1AE5
 
  ROM0:1AC7 18 1C            jr  1AE5
 
  ROM0:1AC9 11 E9 03        ld  de,03E9
 
  ROM0:1AC9 11 E9 03        ld  de,03E9
  ROM0:1ACC CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1ACC CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1ACF FE 01            cp  a,01
 
  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:1AD1 20 04            jr  nz,1AD7 ;If(Position in Card Trunk ≠ 1001), jump to 0:1AC9
Line 4,296: Line 4,296:
 
  ROM0:1AD5 18 0E            jr  1AE5
 
  ROM0:1AD5 18 0E            jr  1AE5
 
  ROM0:1AD7 11 21 03        ld  de,0321 ;de = 801
 
  ROM0:1AD7 11 21 03        ld  de,0321 ;de = 801
  ROM0:1ADA CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1ADA CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1ADD 16 00            ld  d,00
 
  ROM0:1ADD 16 00            ld  d,00
 
  ROM0:1ADF 5F              ld  e,a
 
  ROM0:1ADF 5F              ld  e,a
Line 4,318: Line 4,318:
 
  ROM0:1AEF E5              push hl
 
  ROM0:1AEF E5              push hl
 
  ROM0:1AF0 11 38 04        ld  de,0438 ;1080, theoretical max number of different cards in Card Trunk
 
  ROM0:1AF0 11 38 04        ld  de,0438 ;1080, theoretical max number of different cards in Card Trunk
  ROM0:1AF3 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1AF3 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1AF6 FE 01            cp  a,01
 
  ROM0:1AF6 FE 01            cp  a,01
 
  ROM0:1AF8 20 04            jr  nz,1AFE ;If bc ≠ 1080, jump to 0:1AFE
 
  ROM0:1AF8 20 04            jr  nz,1AFE ;If bc ≠ 1080, jump to 0:1AFE
Line 4,324: Line 4,324:
 
  ROM0:1AFC 18 0E            jr  1B0C
 
  ROM0:1AFC 18 0E            jr  1B0C
 
  ROM0:1AFE 11 20 03        ld  de,0320 ;800, number of non-construction cards
 
  ROM0:1AFE 11 20 03        ld  de,0320 ;800, number of non-construction cards
  ROM0:1B01 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:1B01 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:1B04 16 00            ld  d,00
 
  ROM0:1B04 16 00            ld  d,00
 
  ROM0:1B06 5F              ld  e,a
 
  ROM0:1B06 5F              ld  e,a
Line 4,363: Line 4,363:
 
  ROM0:1B25 E5              push hl
 
  ROM0:1B25 E5              push hl
 
  ROM0:1B26 2E 02            ld  l,02
 
  ROM0:1B26 2E 02            ld  l,02
  ROM0:1B28 CD 92 14        [[#daa_substraction|call 1492 ;daa subtraction, de - bc]]
+
  ROM0:1B28 CD 92 14        [[#daa substraction|call 1492 ;daa subtraction, de - bc]]
 
  ROM0:1B2B 7B              ld  a,e
 
  ROM0:1B2B 7B              ld  a,e
 
  ROM0:1B2C FE 01            cp  a,01
 
  ROM0:1B2C FE 01            cp  a,01
Line 4,627: Line 4,627:
 
  ROM0:1E92 FA 58 C8        ld  a,(C858)
 
  ROM0:1E92 FA 58 C8        ld  a,(C858)
 
  ROM0:1E95 EA 50 C8        ld  (C850),a
 
  ROM0:1E95 EA 50 C8        ld  (C850),a
  ROM0:1E98 CD 4F 1E        [[Yu-Gi-Oh! Dark Duel Stories:ROM_map#PRNG|call 1E4F ;Generates a 1-byte Pseudo-Random Number]]
+
  ROM0:1E98 CD 4F 1E        [[Yu-Gi-Oh! Dark Duel Stories:ROM map#PRNG|call 1E4F ;Generates a 1-byte Pseudo-Random Number]]
 
  ROM0:1E9B FA 4D C8        ld  a,(C84D)
 
  ROM0:1E9B FA 4D C8        ld  a,(C84D)
 
  ROM0:1E9E EA 55 C8        ld  (C855),a
 
  ROM0:1E9E EA 55 C8        ld  (C855),a
Line 4,713: Line 4,713:
  
 
===Generates Construction Cards data===
 
===Generates Construction Cards data===
* <code>0x1F48-0x1F6F</code> - Generates a new value for (C859)(C85A)(C85B) (used to generate Construction cards Cost, Attribute and Type)
+
* <code>0x1F48-0x1F6F</code> - Generates a new value for (C859)(C85A)(C85B) (used to generate Construction cards Cost, Alignment and Type)
 
  ROM0:1F48 F5              push af
 
  ROM0:1F48 F5              push af
 
  ROM0:1F49 C5              push bc
 
  ROM0:1F49 C5              push bc
Line 5,256: Line 5,256:
 
  ROM0:22C9 EA 99 C8        ld  (C899),a ;Player's Monster DEF
 
  ROM0:22C9 EA 99 C8        ld  (C899),a ;Player's Monster DEF
 
  ROM0:22CC EA 9A C8        ld  (C89A),a
 
  ROM0:22CC EA 9A C8        ld  (C89A),a
  ROM0:22CF EA 9B C8        ld  (C89B),a ;Player's Monster Attribute
+
  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:22D2 EA 9C C8        ld  (C89C),a ;CPU's card ID
 
  ROM0:22D5 EA 9D C8        ld  (C89D),a
 
  ROM0:22D5 EA 9D C8        ld  (C89D),a
Line 5,267: Line 5,267:
 
  ROM0:22EA EA A4 C8        ld  (C8A4),a ;CPU's Monster DEF
 
  ROM0:22EA EA A4 C8        ld  (C8A4),a ;CPU's Monster DEF
 
  ROM0:22ED EA A5 C8        ld  (C8A5),a
 
  ROM0:22ED EA A5 C8        ld  (C8A5),a
  ROM0:22F0 EA A6 C8        ld  (C8A6),a ;CPU's Monster Attribute
+
  ROM0:22F0 EA A6 C8        ld  (C8A6),a ;CPU's Monster Alignment
 
  ROM0:22F3 EA A7 C8        ld  (C8A7),a ;? (Battle value)
 
  ROM0:22F3 EA A7 C8        ld  (C8A7),a ;? (Battle value)
 
  ROM0:22F6 F1              pop  af
 
  ROM0:22F6 F1              pop  af
Line 5,330: Line 5,330:
 
  ROM0:2430 2A              ldi  a,(hl)
 
  ROM0:2430 2A              ldi  a,(hl)
 
  ROM0:2431 4F              ld  c,a ;bc = 12 lsb (card drop probability)
 
  ROM0:2431 4F              ld  c,a ;bc = 12 lsb (card drop probability)
  ROM0:2432 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM0:2432 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM0:2435 C1              pop  bc
 
  ROM0:2435 C1              pop  bc
 
  ROM0:2436 FE 00            cp  a,00
 
  ROM0:2436 FE 00            cp  a,00
Line 7,121: Line 7,121:
 
  ROM1:46D7 CE 00            adc  a,00
 
  ROM1:46D7 CE 00            adc  a,00
 
  ROM1:46D9 47              ld  b,a
 
  ROM1:46D9 47              ld  b,a
  ROM1:46DA CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM1:46DA CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM1:46DD FE 02            cp  a,02
 
  ROM1:46DD FE 02            cp  a,02
 
  ROM1:46DF 20 1B            jr  nz,46FC
 
  ROM1:46DF 20 1B            jr  nz,46FC
Line 7,134: Line 7,134:
 
  ROM1:46F0 CE 00            adc  a,00
 
  ROM1:46F0 CE 00            adc  a,00
 
  ROM1:46F2 47              ld  b,a
 
  ROM1:46F2 47              ld  b,a
  ROM1:46F3 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM1:46F3 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM1:46F6 FE 02            cp  a,02
 
  ROM1:46F6 FE 02            cp  a,02
 
  ROM1:46F8 20 02            jr  nz,46FC ;If(bc ≥ de) ,jump to 1:46FC
 
  ROM1:46F8 20 02            jr  nz,46FC ;If(bc ≥ de) ,jump to 1:46FC
Line 7,149: Line 7,149:
 
  ROM1:470E CE 00            adc  a,00
 
  ROM1:470E CE 00            adc  a,00
 
  ROM1:4710 47              ld  b,a
 
  ROM1:4710 47              ld  b,a
  ROM1:4711 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM1:4711 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM1:4714 FE 02            cp  a,02
 
  ROM1:4714 FE 02            cp  a,02
 
  ROM1:4716 20 1B            jr  nz,4733
 
  ROM1:4716 20 1B            jr  nz,4733
Line 7,423: Line 7,423:
 
  ROM1:5022 FE 00            cp  a,00
 
  ROM1:5022 FE 00            cp  a,00
 
  ROM1:5024 20 1A            jr  nz,5040
 
  ROM1:5024 20 1A            jr  nz,5040
  ROM1:5026 CD 81 2A        [[#SE:_Validate_.28Menu.29|call 2A81 ;Sound Effect: Validate (Menu)]]
+
  ROM1:5026 CD 81 2A        [[#SE: Validate (Menu)|call 2A81 ;Sound Effect: Validate (Menu)]]
 
  ROM1:5029 3E 01            ld  a,01
 
  ROM1:5029 3E 01            ld  a,01
 
  ROM1:502B EA EC C5        ld  (C5EC),a
 
  ROM1:502B EA EC C5        ld  (C5EC),a
Line 7,920: Line 7,920:
 
  ROM1:5389 FE 00            cp  a,00
 
  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:538B 20 0C            jr  nz,5399 ;If the deck has 40 cards, get out of that function
  ROM1:538D CD C8 52        [[#Decrease_card_quantity_.28deck.29|call 52C8 ;Decrease card quantity in trunk]]
+
  ROM1:538D CD C8 52        [[#Decrease card quantity (deck)|call 52C8 ;Decrease card quantity in trunk]]
 
  ROM1:5390 FE 00            cp  a,00
 
  ROM1:5390 FE 00            cp  a,00
 
  ROM1:5392 20 05            jr  nz,5399
 
  ROM1:5392 20 05            jr  nz,5399
Line 8,021: Line 8,021:
 
  ROM1:5438 FA FD C5        ld  a,(C5FD)
 
  ROM1:5438 FA FD C5        ld  a,(C5FD)
 
  ROM1:543B 47              ld  b,a
 
  ROM1:543B 47              ld  b,a
  ROM1:543C CD E7 52        [[#Decrease_card_quantity_.28trade.29|call 52E7 ;Decrease card quantity]]
+
  ROM1:543C CD E7 52        [[#Decrease card quantity (trade)|call 52E7 ;Decrease card quantity]]
 
  ROM1:543F FE 00            cp  a,00
 
  ROM1:543F FE 00            cp  a,00
 
  ROM1:5441 20 1A            jr  nz,545D
 
  ROM1:5441 20 1A            jr  nz,545D
Line 8,146: Line 8,146:
 
  ROM1:54FA 69              ld  l,c
 
  ROM1:54FA 69              ld  l,c
 
  ROM1:54FB 11 00 00        ld  de,0000
 
  ROM1:54FB 11 00 00        ld  de,0000
  ROM1:54FE CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM1:54FE CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM1:5501 FE 02            cp  a,02
 
  ROM1:5501 FE 02            cp  a,02
 
  ROM1:5503 28 03            jr  z,5508
 
  ROM1:5503 28 03            jr  z,5508
Line 8,164: Line 8,164:
 
  ROM1:551E 54              ld  d,h
 
  ROM1:551E 54              ld  d,h
 
  ROM1:551F 5D              ld  e,l
 
  ROM1:551F 5D              ld  e,l
  ROM1:5520 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM1:5520 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM1:5523 FE 01            cp  a,01
 
  ROM1:5523 FE 01            cp  a,01
 
  ROM1:5525 28 02            jr  z,5529
 
  ROM1:5525 28 02            jr  z,5529
Line 8,353: Line 8,353:
 
  ROM1:5B51 18 E4            jr  5B37 ;Loop to 1:5B37
 
  ROM1:5B51 18 E4            jr  5B37 ;Loop to 1:5B37
 
  ROM1:5B53 11 0F 27        ld  de,270F
 
  ROM1:5B53 11 0F 27        ld  de,270F
  ROM1:5B56 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM1:5B56 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM1:5B59 FE 00            cp  a,00
 
  ROM1:5B59 FE 00            cp  a,00
 
  ROM1:5B5B 20 02            jr  nz,5B5F ;If Deck Cost ≤ 9999, get out of this function
 
  ROM1:5B5B 20 02            jr  nz,5B5F ;If Deck Cost ≤ 9999, get out of this function
Line 8,482: Line 8,482:
 
  ROM1:6E0D 18 08            jr  6E17
 
  ROM1:6E0D 18 08            jr  6E17
 
  ROM1:6E0F 18 06            jr  6E17
 
  ROM1:6E0F 18 06            jr  6E17
  ROM1:6E11 CD 81 2A        [[#SE:_Validate_.28Menu.29|call 2A81 ;Sound Effect: Validate (Menu)]]
+
  ROM1:6E11 CD 81 2A        [[#SE: Validate (Menu)|call 2A81 ;Sound Effect: Validate (Menu)]]
 
  ROM1:6E14 CD E6 6E        call 6EE6
 
  ROM1:6E14 CD E6 6E        call 6EE6
 
  ROM1:6E17 E1              pop  hl
 
  ROM1:6E17 E1              pop  hl
Line 8,505: Line 8,505:
 
  ROM1:6E33 FE 00            cp  a,00
 
  ROM1:6E33 FE 00            cp  a,00
 
  ROM1:6E35 20 05            jr  nz,6E3C
 
  ROM1:6E35 20 05            jr  nz,6E3C
  ROM1:6E37 CD 81 2A        [[#SE:_Validate_.28Menu.29|call 2A81        ;Sound Effect: Validate (Menu)]]
+
  ROM1:6E37 CD 81 2A        [[#SE: Validate (Menu)|call 2A81        ;Sound Effect: Validate (Menu)]]
 
  ROM1:6E3A 18 03            jr  6E3F
 
  ROM1:6E3A 18 03            jr  6E3F
 
  ROM1:6E3C CD 91 2A        [[#SE:_Invalid|call 2A91        ;Sound Effect: Invalid]]
 
  ROM1:6E3C CD 91 2A        [[#SE:_Invalid|call 2A91        ;Sound Effect: Invalid]]
Line 8,570: Line 8,570:
 
  ROM1:6EBD FE 00            cp  a,00
 
  ROM1:6EBD FE 00            cp  a,00
 
  ROM1:6EBF 20 05            jr  nz,6EC6
 
  ROM1:6EBF 20 05            jr  nz,6EC6
  ROM1:6EC1 CD 81 2A        [[#SE:_Validate_.28Menu.29|call 2A81 ;Sound Effect: Validate (Menu)]]
+
  ROM1:6EC1 CD 81 2A        [[#SE: Validate (Menu)|call 2A81 ;Sound Effect: Validate (Menu)]]
 
  ROM1:6EC4 18 03            jr  6EC9
 
  ROM1:6EC4 18 03            jr  6EC9
 
  ROM1:6EC6 CD 91 2A        [[#SE:_Invalid|call 2A91 ;Sound Effect: Invalid]]
 
  ROM1:6EC6 CD 91 2A        [[#SE:_Invalid|call 2A91 ;Sound Effect: Invalid]]
Line 10,044: Line 10,044:
 
====Attack Phase - Main====
 
====Attack Phase - Main====
 
* <code>0xCDDF-0xCE3C</code> - Attack Phase. Everything that happens when the Player attacks is handled here.
 
* <code>0xCDDF-0xCE3C</code> - Attack Phase. Everything that happens when the Player attacks is handled here.
  ROM3:4DE1 CD 99 2A        [[#SE:_Validate_.28Duel.29|call 2A99 ;Sound Effect: Validate (Duel)]]
+
  ROM3:4DE1 CD 99 2A        [[#SE: Validate (Menu)|call 2A99 ;Sound Effect: Validate (Duel)]]
 
  ROM3:4DE4 CD 9A 2C        [[#Swords of Revealing Light|call 2C9A ;Checks Swords of Revealing Light]]
 
  ROM3:4DE4 CD 9A 2C        [[#Swords of Revealing Light|call 2C9A ;Checks Swords of Revealing Light]]
 
  ROM3:4DE7 FE 00            cp  a,00
 
  ROM3:4DE7 FE 00            cp  a,00
Line 10,250: Line 10,250:
 
  ROM3:51CF FA B8 C6        ld  a,(C6B8)
 
  ROM3:51CF FA B8 C6        ld  a,(C6B8)
 
  ROM3:51D2 47              ld  b,a ;bc = Current card ATK
 
  ROM3:51D2 47              ld  b,a ;bc = Current card ATK
  ROM3:51D3 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM3:51D3 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM3:51D6 D1              pop  de
 
  ROM3:51D6 D1              pop  de
 
  ROM3:51D7 C1              pop  bc
 
  ROM3:51D7 C1              pop  bc
Line 10,316: Line 10,316:
 
  ROM3:5232 FE 06            cp  a,06
 
  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:5234 30 0D            jr  nc,5243 ;If all the Monster cards have been checked, jump to 3:5243
  ROM3:5236 CD 0D 52        [[#Check_if_selected_card_ID_.3D_register_de|call 520D ;Check if selected card ID = register de]]
+
  ROM3:5236 CD 0D 52        [[#Check if selected card ID = register de|call 520D ;Check if selected card ID = register de]]
 
  ROM3:5239 FE 00            cp  a,00
 
  ROM3:5239 FE 00            cp  a,00
 
  ROM3:523B 20 03            jr  nz,5240
 
  ROM3:523B 20 03            jr  nz,5240
Line 10,419: Line 10,419:
 
  ROM3:5798 28 06            jr  z,57A0 ;If no damage, skip Life Points calculation
 
  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: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 / Attribute / ATK / DEF
+
  ROM3:579D CD C4 5A        call 5AC4 ;Copies Player's and CPU's monsters IDs / Alignment / ATK / DEF
 
  ROM3:57A0 E1              pop  hl
 
  ROM3:57A0 E1              pop  hl
 
  ROM3:57A1 C1              pop  bc
 
  ROM3:57A1 C1              pop  bc
Line 10,480: Line 10,480:
  
 
====Loads Player's Monster data====
 
====Loads Player's Monster data====
* <code>0xD9A1-0xD9CD</code> - Loads Player's monster ATK / DEF / Attribute
+
* <code>0xD9A1-0xD9CD</code> - Loads Player's monster ATK / DEF / Alignment
 
  ROM3:59A1 F5              push af
 
  ROM3:59A1 F5              push af
 
  ROM3:59A2 FA B3 C6        ld  a,(C6B3)
 
  ROM3:59A2 FA B3 C6        ld  a,(C6B3)
Line 10,495: Line 10,495:
 
  ROM3:59C3 EA C2 C7        ld  (C7C2),a ;Stores Card DEF in (C7C1)
 
  ROM3:59C3 EA C2 C7        ld  (C7C2),a ;Stores Card DEF in (C7C1)
 
  ROM3:59C6 FA BE C6        ld  a,(C6BE)
 
  ROM3:59C6 FA BE C6        ld  a,(C6BE)
  ROM3:59C9 EA B7 C7        ld  (C7B7),a ;Stores Card Attribute in (C7B7)
+
  ROM3:59C9 EA B7 C7        ld  (C7B7),a ;Stores Card Alignment in (C7B7)
 
  ROM3:59CC F1              pop  af
 
  ROM3:59CC F1              pop  af
 
  ROM3:59CD C9              ret
 
  ROM3:59CD C9              ret
  
 
====Loads CPU's Monster data====
 
====Loads CPU's Monster data====
* <code>0xD9CE-0xD9FA</code> - Loads CPU's monster ATK / DEF / Attribute
+
* <code>0xD9CE-0xD9FA</code> - Loads CPU's monster ATK / DEF / Alignment
 
  ROM3:59CE F5              push af
 
  ROM3:59CE F5              push af
 
  ROM3:59CF FA B3 C6        ld  a,(C6B3)
 
  ROM3:59CF FA B3 C6        ld  a,(C6B3)
Line 10,515: Line 10,515:
 
  ROM3:59F0 EA C4 C7        ld  (C7C4),a ;Stores Card DEF in (C7C3)
 
  ROM3:59F0 EA C4 C7        ld  (C7C4),a ;Stores Card DEF in (C7C3)
 
  ROM3:59F3 FA BE C6        ld  a,(C6BE)
 
  ROM3:59F3 FA BE C6        ld  a,(C6BE)
  ROM3:59F6 EA B8 C7        ld  (C7B8),a ;Stores Card Attribute in (C7B8)
+
  ROM3:59F6 EA B8 C7        ld  (C7B8),a ;Stores Card Alignment in (C7B8)
 
  ROM3:59F9 F1              pop  af
 
  ROM3:59F9 F1              pop  af
 
  ROM3:59FA C9              ret
 
  ROM3:59FA C9              ret
Line 10,571: Line 10,571:
  
 
====Copies Player's and CPU's Monsters data====
 
====Copies Player's and CPU's Monsters data====
* <code>0xDAC4-DB1A</code> - Copies Player's and CPU's monsters IDs / Attribute / ATK / DEF
+
* <code>0xDAC4-DB1A</code> - Copies Player's and CPU's monsters IDs / Alignment / ATK / DEF
 
  ROM3:5AC4 F5              push af
 
  ROM3:5AC4 F5              push af
 
  ROM3:5AC5 FA B3 C7        ld  a,(C7B3)
 
  ROM3:5AC5 FA B3 C7        ld  a,(C7B3)
Line 10,578: Line 10,578:
 
  ROM3:5ACE EA 92 C8        ld  (C892),a ;Copies Player's monster ID in (C891)
 
  ROM3:5ACE EA 92 C8        ld  (C892),a ;Copies Player's monster ID in (C891)
 
  ROM3:5AD1 FA B7 C7        ld  a,(C7B7)
 
  ROM3:5AD1 FA B7 C7        ld  a,(C7B7)
  ROM3:5AD4 EA 9B C8        ld  (C89B),a ;Copies Player's monster Attribute in (C89B)
+
  ROM3:5AD4 EA 9B C8        ld  (C89B),a ;Copies Player's monster Alignment in (C89B)
 
  ROM3:5AD7 FA BD C7        ld  a,(C7BD)
 
  ROM3:5AD7 FA BD C7        ld  a,(C7BD)
 
  ROM3:5ADA EA 97 C8        ld  (C897),a
 
  ROM3:5ADA EA 97 C8        ld  (C897),a
Line 10,592: Line 10,592:
 
  ROM3:5AF8 EA 9D C8        ld  (C89D),a ;Copies CPU's monster ID in (C89C)
 
  ROM3:5AF8 EA 9D C8        ld  (C89D),a ;Copies CPU's monster ID in (C89C)
 
  ROM3:5AFB FA B8 C7        ld  a,(C7B8)
 
  ROM3:5AFB FA B8 C7        ld  a,(C7B8)
  ROM3:5AFE EA A6 C8        ld  (C8A6),a ;Copies CPU's monster Attribute in (C8A6)
+
  ROM3:5AFE EA A6 C8        ld  (C8A6),a ;Copies CPU's monster Alignment in (C8A6)
 
  ROM3:5B01 FA BF C7        ld  a,(C7BF)
 
  ROM3:5B01 FA BF C7        ld  a,(C7BF)
 
  ROM3:5B04 EA A2 C8        ld  (C8A2),a
 
  ROM3:5B04 EA A2 C8        ld  (C8A2),a
Line 10,927: Line 10,927:
 
  ROM3:61D2 CD 92 61        call 6192
 
  ROM3:61D2 CD 92 61        call 6192
 
  ROM3:61D5 18 0F            jr  61E6
 
  ROM3:61D5 18 0F            jr  61E6
  ROM3:61D7 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Failed Fusion]]
+
  ROM3:61D7 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Failed Fusion]]
 
  ROM3:61DA CD 3E 5E        call 5E3E
 
  ROM3:61DA CD 3E 5E        call 5E3E
 
  ROM3:61DD CD 14 7B        call 7B14
 
  ROM3:61DD CD 14 7B        call 7B14
Line 12,575: Line 12,575:
 
=====Widespread Ruin=====
 
=====Widespread Ruin=====
 
  ROM3:6C3F F5              push af
 
  ROM3:6C3F F5              push af
  ROM3:6C40 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C40 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C43 CD 9F 5E        call 5E9F
 
  ROM3:6C43 CD 9F 5E        call 5E9F
 
  ROM3:6C46 CD 68 41        call 4168
 
  ROM3:6C46 CD 68 41        call 4168
Line 12,583: Line 12,583:
 
=====House of Adhesive Trap=====
 
=====House of Adhesive Trap=====
 
  ROM3:6C4B F5              push af
 
  ROM3:6C4B F5              push af
  ROM3:6C4C CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C4C CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C4F CD 9F 5E        call 5E9F
 
  ROM3:6C4F CD 9F 5E        call 5E9F
 
  ROM3:6C52 CD 68 41        call 4168
 
  ROM3:6C52 CD 68 41        call 4168
Line 12,591: Line 12,591:
 
=====Eatgaboon=====
 
=====Eatgaboon=====
 
  ROM3:6C57 F5              push af
 
  ROM3:6C57 F5              push af
  ROM3:6C58 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C58 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C5B CD 9F 5E        call 5E9F
 
  ROM3:6C5B CD 9F 5E        call 5E9F
 
  ROM3:6C5E CD 68 41        call 4168
 
  ROM3:6C5E CD 68 41        call 4168
Line 12,599: Line 12,599:
 
=====Bear Trap=====
 
=====Bear Trap=====
 
  ROM3:6C63 F5              push af
 
  ROM3:6C63 F5              push af
  ROM3:6C64 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C64 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C67 CD 9F 5E        call 5E9F
 
  ROM3:6C67 CD 9F 5E        call 5E9F
 
  ROM3:6C6A CD 68 41        call 4168
 
  ROM3:6C6A CD 68 41        call 4168
Line 12,607: Line 12,607:
 
=====Invisible Wire=====
 
=====Invisible Wire=====
 
  ROM3:6C6F F5              push af
 
  ROM3:6C6F F5              push af
  ROM3:6C70 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C70 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C73 CD 9F 5E        call 5E9F
 
  ROM3:6C73 CD 9F 5E        call 5E9F
 
  ROM3:6C76 CD 68 41        call 4168
 
  ROM3:6C76 CD 68 41        call 4168
Line 12,615: Line 12,615:
 
=====Acid Trap Hole=====
 
=====Acid Trap Hole=====
 
  ROM3:6C7B F5              push af
 
  ROM3:6C7B F5              push af
  ROM3:6C7C CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C7C CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C7F CD 9F 5E        call 5E9F
 
  ROM3:6C7F CD 9F 5E        call 5E9F
 
  ROM3:6C82 CD 68 41        call 4168
 
  ROM3:6C82 CD 68 41        call 4168
Line 12,623: Line 12,623:
 
=====Goblin Fan=====
 
=====Goblin Fan=====
 
  ROM3:6C87 F5              push af
 
  ROM3:6C87 F5              push af
  ROM3:6C88 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C88 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C8B CD 9F 5E        call 5E9F
 
  ROM3:6C8B CD 9F 5E        call 5E9F
 
  ROM3:6C8E CD 68 41        call 4168
 
  ROM3:6C8E CD 68 41        call 4168
Line 12,631: Line 12,631:
 
=====Simochi Allergy=====
 
=====Simochi Allergy=====
 
  ROM3:6C93 F5              push af
 
  ROM3:6C93 F5              push af
  ROM3:6C94 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6C94 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6C97 CD 9F 5E        call 5E9F
 
  ROM3:6C97 CD 9F 5E        call 5E9F
 
  ROM3:6C9A CD 68 41        call 4168
 
  ROM3:6C9A CD 68 41        call 4168
Line 12,639: Line 12,639:
 
=====Reverse Trap=====
 
=====Reverse Trap=====
 
  ROM3:6C9F F5              push af
 
  ROM3:6C9F F5              push af
  ROM3:6CA0 CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6CA0 CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6CA3 CD 9F 5E        call 5E9F
 
  ROM3:6CA3 CD 9F 5E        call 5E9F
 
  ROM3:6CA6 CD 68 41        call 4168
 
  ROM3:6CA6 CD 68 41        call 4168
Line 12,647: Line 12,647:
 
=====Fake Trap=====
 
=====Fake Trap=====
 
  ROM3:6CAB F5              push af
 
  ROM3:6CAB F5              push af
  ROM3:6CAC CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card]]
+
  ROM3:6CAC CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card]]
 
  ROM3:6CAF CD 9F 5E        call 5E9F
 
  ROM3:6CAF CD 9F 5E        call 5E9F
 
  ROM3:6CB2 CD 68 41        call 4168
 
  ROM3:6CB2 CD 68 41        call 4168
Line 13,222: Line 13,222:
 
  ROM3:7024 47              ld  b,a
 
  ROM3:7024 47              ld  b,a
 
  ROM3:7025 11 00 15        ld  de,1500 ;1500 ATK
 
  ROM3:7025 11 00 15        ld  de,1500 ;1500 ATK
  ROM3:7028 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM3:7028 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM3:702B C1              pop  bc
 
  ROM3:702B C1              pop  bc
 
  ROM3:702C FE 02            cp  a,02
 
  ROM3:702C FE 02            cp  a,02
Line 14,484: Line 14,484:
 
* <code>0xFB3F-0xFB7D</code> - Tribute Summon
 
* <code>0xFB3F-0xFB7D</code> - Tribute Summon
 
  ROM3:7B3F 0E 00            ld  c,00
 
  ROM3:7B3F 0E 00            ld  c,00
  ROM3:7B41 FA BF C6        ld  a,(C6BF) ;[[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Card_Effect_IDs_.28Magic_Ritual_Trap.29|Effect ID (magic trap ritual)]]
+
  ROM3:7B41 FA BF C6        ld  a,(C6BF) ;[[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Effect IDs (Magic Ritual Trap)|Effect ID (magic trap ritual)]]
 
  ROM3:7B44 FE 02            cp  a,02
 
  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:7B46 20 18            jr  nz,7B60 ;If it is not a Monster Card, jump to 3:7B60
Line 14,502: Line 14,502:
 
  ROM3:7B65 20 14            jr  nz,7B7B ;If it is not a Ritual, exit this function
 
  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:7B67 0E 02            ld  c,02 ;2 Sacrifice required
  ROM3:7B69 FA BF C6        ld  a,(C6BF) ;[[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Card_Effect_IDs_.28Magic_Ritual_Trap.29|Effect ID (magic trap ritual)]]
+
  ROM3:7B69 FA BF C6        ld  a,(C6BF) ;[[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Effect IDs (Magic Ritual Trap)|Effect ID (magic trap ritual)]]
 
  ROM3:7B6C FE 45            cp  a,45
 
  ROM3:7B6C FE 45            cp  a,45
 
  ROM3:7B6E 20 02            jr  nz,7B72 ;If(Effect ID ≠ Ultimate Dragon), jump to 3:7B72
 
  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:7B70 0E 00            ld  c,00 ;No Sacrifice required
  ROM3:7B72 FA BF C6        ld  a,(C6BF) ;[[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Card_Effect_IDs_.28Magic_Ritual_Trap.29|Effect ID (magic trap ritual)]]
+
  ROM3:7B72 FA BF C6        ld  a,(C6BF) ;[[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Effect IDs (Magic Ritual Trap)|Effect ID (magic trap ritual)]]
 
  ROM3:7B75 FE 5E            cp  a,5E
 
  ROM3:7B75 FE 5E            cp  a,5E
 
  ROM3:7B77 20 02            jr  nz,7B7B ;If(Effect ID ≠ Gate Guardian Ritual), exit this function
 
  ROM3:7B77 20 02            jr  nz,7B7B ;If(Effect ID ≠ Gate Guardian Ritual), exit this function
Line 14,525: Line 14,525:
  
 
===Main Menu===
 
===Main Menu===
* <code>0x1041C-0x1042D</code> - Loads RAM <code>0xC85C</code> ([[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Menu_IDs_.28Main.29|current menu ID]]), and increases it. If it is equal to 7, it is set to 0.
+
* <code>0x1041C-0x1042D</code> - Loads RAM <code>0xC85C</code> ([[Yu-Gi-Oh! Dark Duel Stories:Notes#Menu IDs (Main)|current menu ID]]), and increases it. If it is equal to 7, it is set to 0.
 
  ROM4:441C F5              push af
 
  ROM4:441C F5              push af
 
  ROM4:441D CD 89 2A        [[#SE:_Cursor|call 2A89 ;Sound Effect: Cursor]]
 
  ROM4:441D CD 89 2A        [[#SE:_Cursor|call 2A89 ;Sound Effect: Cursor]]
Line 14,536: Line 14,536:
 
  ROM4:442C F1              pop  af
 
  ROM4:442C F1              pop  af
  
* <code>0x1042E-0x10440</code> - Loads RAM <code>0xC85C</code> ([[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Menu_IDs_.28Main.29|current menu ID]]), and decreases it. If it is equal to 0, it is set to 6.
+
* <code>0x1042E-0x10440</code> - Loads RAM <code>0xC85C</code> ([[Yu-Gi-Oh! Dark Duel Stories:Notes#Menu IDs (Main)|current menu ID]]), and decreases it. If it is equal to 0, it is set to 6.
 
  ROM4:442E F5              push af
 
  ROM4:442E F5              push af
 
  ROM4:442F CD 89 2A        [[#SE:_Cursor|call 2A89 ;Sound Effect: Cursor]]
 
  ROM4:442F CD 89 2A        [[#SE:_Cursor|call 2A89 ;Sound Effect: Cursor]]
Line 14,548: Line 14,548:
  
 
===Campaign Menu===
 
===Campaign Menu===
* <code>0x108FC-0x1095E</code> - Loads Stage corresponding to [[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Menu_IDs_.28Campaign.29|Stage ID]] in RAM <code>0xC85D</code>
+
* <code>0x108FC-0x1095E</code> - Loads Stage corresponding to [[Yu-Gi-Oh! Dark Duel Stories:Notes#Menu IDs (Campaign)|Stage ID]] in RAM <code>0xC85D</code>
 
  ROM4:48FC F5              push af
 
  ROM4:48FC F5              push af
 
  ROM4:48FD C5              push bc
 
  ROM4:48FD C5              push bc
Line 14,917: Line 14,917:
 
===4:5146===
 
===4:5146===
 
  ROM4:5146 F5              push af
 
  ROM4:5146 F5              push af
  ROM4:5147 CD 81 2A        [[#SE:_Validate_.28Menu.29|call 2A81 ;Sound Effect: Validate (Menu)]]
+
  ROM4:5147 CD 81 2A        [[#SE: Validate (Menu)|call 2A81 ;Sound Effect: Validate (Menu)]]
 
  ROM4:514A FA CF C8        ld  a,(C8CF)
 
  ROM4:514A FA CF C8        ld  a,(C8CF)
 
  ROM4:514D FE 00            cp  a,00
 
  ROM4:514D FE 00            cp  a,00
Line 14,932: Line 14,932:
 
  ROM4:5160 FE 01            cp  a,01
 
  ROM4:5160 FE 01            cp  a,01
 
  ROM4:5162 20 09            jr  nz,516D
 
  ROM4:5162 20 09            jr  nz,516D
  ROM4:5164 CD 81 2A        [[#SE:_Validate_.28Menu.29|call 2A81 ;Sound Effect: Validate (Menu)]]
+
  ROM4:5164 CD 81 2A        [[#SE: Validate (Menu)|call 2A81 ;Sound Effect: Validate (Menu)]]
 
  ROM4:5167 CD 3C 56        call 563C
 
  ROM4:5167 CD 3C 56        call 563C
 
  ROM4:516A CD FF 56        call 56FF
 
  ROM4:516A CD FF 56        call 56FF
Line 15,320: Line 15,320:
 
  ROM4:5C88 F5              push af
 
  ROM4:5C88 F5              push af
 
  ROM4:5C89 C5              push bc
 
  ROM4:5C89 C5              push bc
  ROM4:5C8A CD 81 2A        [[#SE:_Validate_.28Menu.29|call 2A81 ;Sound Effect: Validate (Menu)]]
+
  ROM4:5C8A CD 81 2A        [[#SE: Validate (Menu)|call 2A81 ;Sound Effect: Validate (Menu)]]
 
  ROM4:5C8D 06 00            ld  b,00
 
  ROM4:5C8D 06 00            ld  b,00
 
  ROM4:5C8F FA 70 C9        ld  a,(C970)
 
  ROM4:5C8F FA 70 C9        ld  a,(C970)
Line 16,120: Line 16,120:
 
  ROM5:6848 47              ld  b,a ;bc = Deck Capacity + 1
 
  ROM5:6848 47              ld  b,a ;bc = Deck Capacity + 1
 
  ROM5:6849 11 0F 27        ld  de,270F
 
  ROM5:6849 11 0F 27        ld  de,270F
  ROM5:684C CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM5:684C CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM5:684F FE 00            cp  a,00
 
  ROM5:684F FE 00            cp  a,00
 
  ROM5:6851 20 02            jr  nz,6855 ;If(Deck Capacity < 9999), jump to 5:6855
 
  ROM5:6851 20 02            jr  nz,6855 ;If(Deck Capacity < 9999), jump to 5:6855
Line 16,146: Line 16,146:
 
  ROM5:686B 47              ld  b,a
 
  ROM5:686B 47              ld  b,a
 
  ROM5:686C 11 90 01        ld  de,0190
 
  ROM5:686C 11 90 01        ld  de,0190
  ROM5:686F CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM5:686F CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM5:6872 FE 02            cp  a,02
 
  ROM5:6872 FE 02            cp  a,02
 
  ROM5:6874 20 02            jr  nz,6878 ;If(Deck Capacity > 400), jump to 5:6878
 
  ROM5:6874 20 02            jr  nz,6878 ;If(Deck Capacity > 400), jump to 5:6878
Line 16,223: Line 16,223:
 
  ROM5:68C4 F0 DA            ld  a,(ff00+DA)
 
  ROM5:68C4 F0 DA            ld  a,(ff00+DA)
 
  ROM5:68C6 57              ld  d,a ;de = Deck Capacity
 
  ROM5:68C6 57              ld  d,a ;de = Deck Capacity
  ROM5:68C7 CD 23 1B        [[#Checks_if_less_than.2C_equal_to.2C_or_greater_than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
+
  ROM5:68C7 CD 23 1B        [[#Checks if less than, equal to, or greater than|call 1B23 ;Checks if bc is less than, equal to, or greater than de]]
 
  ROM5:68CA FE 00            cp  a,00
 
  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:68CC 20 02            jr  nz,68D0 ;If(Deck Points total ≤ Deck Capacity), jump to 5:68D0 and return 0
Line 16,556: Line 16,556:
 
  ROM6:449B FE 01            cp  a,01
 
  ROM6:449B FE 01            cp  a,01
 
  ROM6:449D 20 05            jr  nz,44A4
 
  ROM6:449D 20 05            jr  nz,44A4
  ROM6:449F CD A9 2A        [[#SE:_Set_Trap_card_.2F_Failed_Fusion|call 2AA9 ;SE: Set Trap card / Failed Fusion]]
+
  ROM6:449F CD A9 2A        [[#SE: Set Trap card / Failed Fusion|call 2AA9 ;SE: Set Trap card / Failed Fusion]]
 
  ROM6:44A2 18 07            jr  44AB
 
  ROM6:44A2 18 07            jr  44AB
 
  ROM6:44A4 FE 02            cp  a,02
 
  ROM6:44A4 FE 02            cp  a,02
 
  ROM6:44A6 20 03            jr  nz,44AB
 
  ROM6:44A6 20 03            jr  nz,44AB
  ROM6:44A8 CD 99 2A        [[#SE:_Validate_.28Duel.29|call 2A99 ;Sound Effect: Validate (Duel)]]
+
  ROM6:44A8 CD 99 2A        [[#SE: Validate (Duel)|call 2A99 ;Sound Effect: Validate (Duel)]]
 
  ROM6:44AB E1              pop  hl
 
  ROM6:44AB E1              pop  hl
 
  ROM6:44AC C1              pop  bc
 
  ROM6:44AC C1              pop  bc
Line 16,714: Line 16,714:
 
  ROM6:594A FE 00            cp  a,00
 
  ROM6:594A FE 00            cp  a,00
 
  ROM6:594C 20 05            jr  nz,5953
 
  ROM6:594C 20 05            jr  nz,5953
  ROM6:594E CD E9 2A        [[#SE:_Cursor_.28Duel.29|call 2AE9 ;Sound Effect: Cursor (Duel)]]
+
  ROM6:594E CD E9 2A        [[#SE: Cursor (Duel)|call 2AE9 ;Sound Effect: Cursor (Duel)]]
 
  ROM6:5951 2E 05            ld  l,05
 
  ROM6:5951 2E 05            ld  l,05
 
  ROM6:5953 2D              dec  l
 
  ROM6:5953 2D              dec  l
Line 16,787: Line 16,787:
 
  ROM7:402B EA BC C6        ld  (C6BC),a ;Current card Cost
 
  ROM7:402B EA BC C6        ld  (C6BC),a ;Current card Cost
 
  ROM7:402E EA BD C6        ld  (C6BD),a ;Current card Level
 
  ROM7:402E EA BD C6        ld  (C6BD),a ;Current card Level
  ROM7:4031 EA BE C6        ld  (C6BE),a ;Current card Attribute
+
  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: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:4037 EA C0 C6        ld  (C6C0),a ;Current card Effect ID (monster)
Line 16,900: Line 16,900:
 
  ROM7:40E5 09              add  hl,bc
 
  ROM7:40E5 09              add  hl,bc
 
  ROM7:40E6 7E              ld  a,(hl)
 
  ROM7:40E6 7E              ld  a,(hl)
  ROM7:40E7 EA BE C6        ld  (C6BE),a ;(C6BE) = Current card Attribute
+
  ROM7:40E7 EA BE C6        ld  (C6BE),a ;(C6BE) = Current card Alignment
 
  ROM7:40EA 21 07 5B        ld  hl,5B07
 
  ROM7:40EA 21 07 5B        ld  hl,5B07
 
  ROM7:40ED 09              add  hl,bc
 
  ROM7:40ED 09              add  hl,bc
Line 16,962: Line 16,962:
 
  ROM7:4152 3E 28            ld  a,28
 
  ROM7:4152 3E 28            ld  a,28
 
  ROM7:4154 EA 5A C8        ld  (C85A),a ;Cost is between 20 and 40
 
  ROM7:4154 EA 5A C8        ld  (C85A),a ;Cost is between 20 and 40
  ROM7:4157 CD 48 1F        [[#Generates_Construction_Cards_data|call 1F48 ;Generates Construction Card data]]
+
  ROM7:4157 CD 48 1F        [[#Generates Construction Cards data|call 1F48 ;Generates Construction Card data]]
 
  ROM7:415A FA 5B C8        ld  a,(C85B)
 
  ROM7:415A FA 5B C8        ld  a,(C85B)
 
  ROM7:415D EA BC C6        ld  (C6BC),a ;Card Cost
 
  ROM7:415D EA BC C6        ld  (C6BC),a ;Card Cost
Line 16,968: Line 16,968:
 
  ROM7:4162 EA 59 C8        ld  (C859),a
 
  ROM7:4162 EA 59 C8        ld  (C859),a
 
  ROM7:4165 3E 09            ld  a,09
 
  ROM7:4165 3E 09            ld  a,09
  ROM7:4167 EA 5A C8        ld  (C85A),a ;[[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Card_Attribute_IDs|Attribute ID]] is between 0 and 9
+
  ROM7:4167 EA 5A C8        ld  (C85A),a ;[[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Alignment IDs|Alignment ID]] is between 0 and 9
  ROM7:416A CD 48 1F        [[#Generates_Construction_Cards_data|call 1F48 ;Generates Construction Card data]]
+
  ROM7:416A CD 48 1F        [[#Generates Construction Cards data|call 1F48 ;Generates Construction Card data]]
 
  ROM7:416D FA 5B C8        ld  a,(C85B)
 
  ROM7:416D FA 5B C8        ld  a,(C85B)
  ROM7:4170 EA BE C6        ld  (C6BE),a ;Card Attribute
+
  ROM7:4170 EA BE C6        ld  (C6BE),a ;Card Alignment
 
  ROM7:4173 3E 02            ld  a,02
 
  ROM7:4173 3E 02            ld  a,02
 
  ROM7:4175 EA BF C6        ld  (C6BF),a ;Card Effect ID (Magic Trap)
 
  ROM7:4175 EA BF C6        ld  (C6BF),a ;Card Effect ID (Magic Trap)
Line 17,042: Line 17,042:
 
  ROM7:4206 EA BC C6        ld  (C6BC),a ;card_Cost = 0
 
  ROM7:4206 EA BC C6        ld  (C6BC),a ;card_Cost = 0
 
  ROM7:4209 3E 0B            ld  a,0B
 
  ROM7:4209 3E 0B            ld  a,0B
  ROM7:420B EA BE C6        ld  (C6BE),a ;card_Attribute = 0xB (non-monster)
+
  ROM7:420B EA BE C6        ld  (C6BE),a ;card_Alignment = 0xB (non-monster)
 
  ROM7:420E 3E 02            ld  a,02
 
  ROM7:420E 3E 02            ld  a,02
 
  ROM7:4210 EA BF C6        ld  (C6BF),a ;card_Effect_magic = 0x2 (non-magic)
 
  ROM7:4210 EA BF C6        ld  (C6BF),a ;card_Effect_magic = 0x2 (non-magic)
Line 17,079: Line 17,079:
 
=====Pointers to Stat Levels=====
 
=====Pointers to Stat Levels=====
 
  ROM7:4241
 
  ROM7:4241
  49 42 - [[#Stat_Level_-1|Stat Level -1]]
+
  49 42 - [[#Stat Level -1|Stat Level -1]]
  74 42 - [[#Stat_Level_0|Stat Level 0]]
+
  74 42 - [[#Stat Level 0|Stat Level 0]]
  75 42 - [[#Stat_Level_.2B1|Stat Level +1]]
+
  75 42 - [[#Stat Level +1|Stat Level +1]]
  A0 42 - [[#Stat_Level_.2B2|Stat Level +2]]
+
  A0 42 - [[#Stat Level +2|Stat Level +2]]
  
 
====Stat Level -1====
 
====Stat Level -1====
Line 17,119: Line 17,119:
 
  ROM7:427B FA B8 C6        ld  a,(C6B8)
 
  ROM7:427B FA B8 C6        ld  a,(C6B8)
 
  ROM7:427E 47              ld  b,a ;bc = card_ATK
 
  ROM7:427E 47              ld  b,a ;bc = card_ATK
  ROM7:427F CD CF 43        [[#ATK_and_DEF_.2B500|call 43CF ;ATK +500]]
+
  ROM7:427F CD CF 43        [[#ATK and DEF +500|call 43CF ;ATK +500]]
 
  ROM7:4282 79              ld  a,c
 
  ROM7:4282 79              ld  a,c
 
  ROM7:4283 EA B7 C6        ld  (C6B7),a ;card_ATK
 
  ROM7:4283 EA B7 C6        ld  (C6B7),a ;card_ATK
Line 17,128: Line 17,128:
 
  ROM7:428E FA BA C6        ld  a,(C6BA)
 
  ROM7:428E FA BA C6        ld  a,(C6BA)
 
  ROM7:4291 47              ld  b,a ;bc = card_DEF
 
  ROM7:4291 47              ld  b,a ;bc = card_DEF
  ROM7:4292 CD CF 43        [[#ATK_and_DEF_.2B500|call 43CF ;DEF +500]]
+
  ROM7:4292 CD CF 43        [[#ATK and DEF +500|call 43CF ;DEF +500]]
 
  ROM7:4295 79              ld  a,c
 
  ROM7:4295 79              ld  a,c
 
  ROM7:4296 EA B9 C6        ld  (C6B9),a ;card_DEF
 
  ROM7:4296 EA B9 C6        ld  (C6B9),a ;card_DEF
Line 17,144: Line 17,144:
 
  ROM7:42A6 FA B8 C6        ld  a,(C6B8)
 
  ROM7:42A6 FA B8 C6        ld  a,(C6B8)
 
  ROM7:42A9 47              ld  b,a ;bc = card_ATK
 
  ROM7:42A9 47              ld  b,a ;bc = card_ATK
  ROM7:42AA CD CF 43        [[#ATK_and_DEF_.2B500|call 43CF ;ATK +500]]
+
  ROM7:42AA CD CF 43        [[#ATK and DEF +500|call 43CF ;ATK +500]]
  ROM7:42AD CD CF 43        [[#ATK_and_DEF_.2B500|call 43CF ;ATK +500]]
+
  ROM7:42AD CD CF 43        [[#ATK and DEF +500|call 43CF ;ATK +500]]
 
  ROM7:42B0 79              ld  a,c
 
  ROM7:42B0 79              ld  a,c
 
  ROM7:42B1 EA B7 C6        ld  (C6B7),a ;card_ATK
 
  ROM7:42B1 EA B7 C6        ld  (C6B7),a ;card_ATK
Line 17,154: Line 17,154:
 
  ROM7:42BC FA BA C6        ld  a,(C6BA)
 
  ROM7:42BC FA BA C6        ld  a,(C6BA)
 
  ROM7:42BF 47              ld  b,a ;bc = card_DEF
 
  ROM7:42BF 47              ld  b,a ;bc = card_DEF
  ROM7:42C0 CD CF 43        [[#ATK_and_DEF_.2B500|call 43CF ;DEF +500]]
+
  ROM7:42C0 CD CF 43        [[#ATK and DEF +500|call 43CF ;DEF +500]]
  ROM7:42C3 CD CF 43        [[#ATK_and_DEF_.2B500|call 43CF ;DEF +500]]
+
  ROM7:42C3 CD CF 43        [[#ATK and DEF +500|call 43CF ;DEF +500]]
 
  ROM7:42C6 79              ld  a,c
 
  ROM7:42C6 79              ld  a,c
 
  ROM7:42C7 EA B9 C6        ld  (C6B9),a ;card_DEF
 
  ROM7:42C7 EA B9 C6        ld  (C6B9),a ;card_DEF
Line 17,492: Line 17,492:
 
* <code>0x1CABC-0x1D0FB</code> - Cards DEF
 
* <code>0x1CABC-0x1D0FB</code> - Cards DEF
 
* <code>0x1D0FC-0x1D1A3</code> - Effects categories ?
 
* <code>0x1D0FC-0x1D1A3</code> - Effects categories ?
* <code>0x1D1A5-0x1D4C4</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card_Type_IDs|Cards Types]]
+
* <code>0x1D1A5-0x1D4C4</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Type IDs|Cards Types]]
 
* <code>0x1D4C6-0x1D7E5</code> - Cards Costs
 
* <code>0x1D4C6-0x1D7E5</code> - Cards Costs
* <code>0x1D7E7-0x1DB06</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card_Attribute_IDs|Cards Attributes]]
+
* <code>0x1D7E7-0x1DB06</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Alignment IDs|Card Alignments]]
* <code>0x1DB08-0x1DE27</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card_Effect_IDs_(Magic_Ritual_Trap)|Cards Effects IDs (Magic, Rituals and Traps)]]
+
* <code>0x1DB08-0x1DE27</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Effect IDs (Magic Ritual Trap)|Cards Effects IDs (Magic, Rituals and Traps)]]
* <code>0x1DE29-0x1E148</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card_Effect_IDs_(Monster)|Cards Effects IDs (Effect Monsters)]]
+
* <code>0x1DE29-0x1E148</code> - [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Effect IDs (Monster)|Cards Effects IDs (Effect Monsters)]]
 
* <code>0x1E149-0x1E468</code> - Cards Levels
 
* <code>0x1E149-0x1E468</code> - Cards Levels
  
Line 17,763: Line 17,763:
 
  ROM7:65C9 CD A0 40        [[#Card_Stats_routine|call 40A0 ;Card Stats routine]]
 
  ROM7:65C9 CD A0 40        [[#Card_Stats_routine|call 40A0 ;Card Stats routine]]
 
  ROM7:65CC 16 01            ld  d,01            ;Light
 
  ROM7:65CC 16 01            ld  d,01            ;Light
  ROM7:65CE FA BE C6        ld  a,(C6BE)        ;Current card Attribute
+
  ROM7:65CE FA BE C6        ld  a,(C6BE)        ;Current card Alignment
 
  ROM7:65D1 BA              cp  d
 
  ROM7:65D1 BA              cp  d
  ROM7:65D2 20 02            jr  nz,65D6        ;If(Attribute ≠ Light), jump to 7:65D6
+
  ROM7:65D2 20 02            jr  nz,65D6        ;If(Alignment ≠ Light), jump to 7:65D6
 
  ROM7:65D4 1E 01            ld  e,01
 
  ROM7:65D4 1E 01            ld  e,01
 
  ROM7:65D6 7B              ld  a,e
 
  ROM7:65D6 7B              ld  a,e
Line 18,409: Line 18,409:
  
 
====Effect Monsters pointers====
 
====Effect Monsters pointers====
* <code>0x209DB-0x20A42</code> - Effect Monsters pointers. This follow the [[Yu-Gi-Oh!_Dark_Duel_Stories:Notes#Card_Effect_IDs_.28Monster.29|Effect Monster IDs]].
+
* <code>0x209DB-0x20A42</code> - Effect Monsters pointers. This follow the [[Yu-Gi-Oh! Dark Duel Stories:Notes#Card Effect IDs (Monster)|Effect Monster IDs]].
 
  ROM8:49DB
 
  ROM8:49DB
 
  43 4A - ''No Effect''
 
  43 4A - ''No Effect''
Line 18,804: Line 18,804:
 
  ROM8:4C62 FE 05            cp  a,05
 
  ROM8:4C62 FE 05            cp  a,05
 
  ROM8:4C64 30 0F            jr  nc,4C75
 
  ROM8:4C64 30 0F            jr  nc,4C75
  ROM8:4C66 3E 04            ld  a,04 ;Pyro (Attribute)
+
  ROM8:4C66 3E 04            ld  a,04 ;Pyro (Alignment)
 
  ROM8:4C68 CF              rst  08
 
  ROM8:4C68 CF              rst  08
 
  ...
 
  ...
Line 19,716: Line 19,716:
 
  ROM9:4057 C5              push bc
 
  ROM9:4057 C5              push bc
 
  ROM9:4058 D5              push de
 
  ROM9:4058 D5              push de
  ROM9:4059 CD B8 24        [[#Did_the_player_win_.3F|call 24B8            ;Did the player win ?]]
+
  ROM9:4059 CD B8 24        [[#Did the player win ?|call 24B8            ;Did the player win ?]]
 
  ROM9:405C FE 00            cp  a,00
 
  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:405E 28 26            jr  z,4086 ;If the duel was lost, get out of this function
Line 19,760: Line 19,760:
 
  ROM9:40A0 F5              push af
 
  ROM9:40A0 F5              push af
 
  ROM9:40A1 C5              push bc
 
  ROM9:40A1 C5              push bc
  ROM9:40A2 CD B8 24        [[#Did_the_player_win_.3F|call 24B8            ;Did the player win ?]]
+
  ROM9:40A2 CD B8 24        [[#Did the player win ?|call 24B8            ;Did the player win ?]]
 
  ROM9:40A5 FE 00            cp  a,00
 
  ROM9:40A5 FE 00            cp  a,00
 
  ROM9:40A7 28 11            jr  z,40BA ;If duel was lost, jump to 9:40BA
 
  ROM9:40A7 28 11            jr  z,40BA ;If duel was lost, jump to 9:40BA
Line 22,027: Line 22,027:
 
  ROMD:6831 C5              push bc
 
  ROMD:6831 C5              push bc
 
  ROMD:6832 01 00 02        ld  bc,0200
 
  ROMD:6832 01 00 02        ld  bc,0200
  ROMD:6835 CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:6835 CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:6838 CD 52 64        call 6452
 
  ROMD:6838 CD 52 64        call 6452
 
  ROMD:683B FA C7 D4        ld  a,(D4C7)
 
  ROMD:683B FA C7 D4        ld  a,(D4C7)
Line 22,047: Line 22,047:
 
  ROMD:6857 C5              push bc
 
  ROMD:6857 C5              push bc
 
  ROMD:6858 01 00 05        ld  bc,0500
 
  ROMD:6858 01 00 05        ld  bc,0500
  ROMD:685B CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:685B CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:685E CD 52 64        call 6452
 
  ROMD:685E CD 52 64        call 6452
 
  ROMD:6861 FA C7 D4        ld  a,(D4C7)
 
  ROMD:6861 FA C7 D4        ld  a,(D4C7)
Line 22,067: Line 22,067:
 
  ROMD:687D C5              push bc
 
  ROMD:687D C5              push bc
 
  ROMD:687E 01 00 10        ld  bc,1000
 
  ROMD:687E 01 00 10        ld  bc,1000
  ROMD:6881 CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:6881 CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:6884 CD 52 64        call 6452
 
  ROMD:6884 CD 52 64        call 6452
 
  ROMD:6887 FA C7 D4        ld  a,(D4C7)
 
  ROMD:6887 FA C7 D4        ld  a,(D4C7)
Line 22,087: Line 22,087:
 
  ROMD:68A3 C5              push bc
 
  ROMD:68A3 C5              push bc
 
  ROMD:68A4 01 00 20        ld  bc,2000
 
  ROMD:68A4 01 00 20        ld  bc,2000
  ROMD:68A7 CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:68A7 CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:68AA CD 52 64        call 6452
 
  ROMD:68AA CD 52 64        call 6452
 
  ROMD:68AD FA C7 D4        ld  a,(D4C7)
 
  ROMD:68AD FA C7 D4        ld  a,(D4C7)
Line 22,107: Line 22,107:
 
  ROMD:68C9 C5              push bc
 
  ROMD:68C9 C5              push bc
 
  ROMD:68CA 01 00 50        ld  bc,5000
 
  ROMD:68CA 01 00 50        ld  bc,5000
  ROMD:68CD CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:68CD CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:68D0 CD 52 64        call 6452
 
  ROMD:68D0 CD 52 64        call 6452
 
  ROMD:68D3 FA C7 D4        ld  a,(D4C7)
 
  ROMD:68D3 FA C7 D4        ld  a,(D4C7)
Line 22,128: Line 22,128:
 
  ROMD:68EF C5              push bc
 
  ROMD:68EF C5              push bc
 
  ROMD:68F0 01 50 00        ld  bc,0050
 
  ROMD:68F0 01 50 00        ld  bc,0050
  ROMD:68F3 CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:68F3 CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:68F6 FA C7 D4        ld  a,(D4C7)
 
  ROMD:68F6 FA C7 D4        ld  a,(D4C7)
 
  ROMD:68F9 FE 01            cp  a,01
 
  ROMD:68F9 FE 01            cp  a,01
Line 22,148: Line 22,148:
 
  ROMD:6916 C5              push bc
 
  ROMD:6916 C5              push bc
 
  ROMD:6917 01 00 01        ld  bc,0100
 
  ROMD:6917 01 00 01        ld  bc,0100
  ROMD:691A CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:691A CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:691D FA C7 D4        ld  a,(D4C7)
 
  ROMD:691D FA C7 D4        ld  a,(D4C7)
 
  ROMD:6920 FE 01            cp  a,01
 
  ROMD:6920 FE 01            cp  a,01
Line 22,168: Line 22,168:
 
  ROMD:693D C5              push bc
 
  ROMD:693D C5              push bc
 
  ROMD:693E 01 00 02        ld  bc,0200
 
  ROMD:693E 01 00 02        ld  bc,0200
  ROMD:6941 CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:6941 CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:6944 FA C7 D4        ld  a,(D4C7)
 
  ROMD:6944 FA C7 D4        ld  a,(D4C7)
 
  ROMD:6947 FE 01            cp  a,01
 
  ROMD:6947 FE 01            cp  a,01
Line 22,188: Line 22,188:
 
  ROMD:6964 C5              push bc
 
  ROMD:6964 C5              push bc
 
  ROMD:6965 01 00 05        ld  bc,0500
 
  ROMD:6965 01 00 05        ld  bc,0500
  ROMD:6968 CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:6968 CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:696B FA C7 D4        ld  a,(D4C7)
 
  ROMD:696B FA C7 D4        ld  a,(D4C7)
 
  ROMD:696E FE 01            cp  a,01
 
  ROMD:696E FE 01            cp  a,01
Line 22,208: Line 22,208:
 
  ROMD:698B C5              push bc
 
  ROMD:698B C5              push bc
 
  ROMD:698C 01 00 10        ld  bc,1000
 
  ROMD:698C 01 00 10        ld  bc,1000
  ROMD:698F CD 18 74        [[#Stores_Direct_Damage_or_Healing_to_.28D4F8.29|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
+
  ROMD:698F CD 18 74        [[#Stores Direct Damage or Healing to (D4F8)|call 7418 ;Stores Direct Damage or Healing to (D4F8)]]
 
  ROMD:6992 FA C7 D4        ld  a,(D4C7)
 
  ROMD:6992 FA C7 D4        ld  a,(D4C7)
 
  ROMD:6995 FE 01            cp  a,01
 
  ROMD:6995 FE 01            cp  a,01
Line 23,458: Line 23,458:
 
  ROMD:753F EA A5 C8        ld  (C8A5),a ;CPU's Monster DEF
 
  ROMD:753F EA A5 C8        ld  (C8A5),a ;CPU's Monster DEF
 
  ROMD:7542 FA 07 D5        ld  a,(D507)
 
  ROMD:7542 FA 07 D5        ld  a,(D507)
  ROMD:7545 EA 9B C8        ld  (C89B),a ;Player's Monster Attribute
+
  ROMD:7545 EA 9B C8        ld  (C89B),a ;Player's Monster Alignment
 
  ROMD:7548 FA 12 D5        ld  a,(D512)
 
  ROMD:7548 FA 12 D5        ld  a,(D512)
  ROMD:754B EA A6 C8        ld  (C8A6),a ;CPU's Monster Attribute
+
  ROMD:754B EA A6 C8        ld  (C8A6),a ;CPU's Monster Alignment
 
  ROMD:754E C9              ret
 
  ROMD:754E C9              ret
  
Line 23,696: Line 23,696:
 
* <code>0x3BE17-0x3BE6E</code> - Records screen text
 
* <code>0x3BE17-0x3BE6E</code> - Records screen text
  
====Attributes names====
+
====Alignments names====
* <code>0x3BECC-0x3BF22</code> - Attributes names
+
* <code>0x3BECC-0x3BF22</code> - Alignments names
  
 
====Name Creation confirmation / Save Deletion confirmation====
 
====Name Creation confirmation / Save Deletion confirmation====
Line 23,986: Line 23,986:
 
* <code>0x4CCBB-0x4D2FA</code> - ATK
 
* <code>0x4CCBB-0x4D2FA</code> - ATK
 
* <code>0x4D2FB-0x4D93A</code> - DEF
 
* <code>0x4D2FB-0x4D93A</code> - DEF
* <code>0x4D93B-0x4DF7A</code> - Attribute
+
* <code>0x4D93B-0x4DF7A</code> - Alignment
 
* <code>0x4DF7B-0x4E5BA</code> - Type
 
* <code>0x4DF7B-0x4E5BA</code> - Type
  

Latest revision as of 20:15, 11 January 2019

Contents

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

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
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 (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
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

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

Pseudo-Random Numbers

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
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 - 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  

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)

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  

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

2:6F78 (pointers array)

ROM2:6F78
C0 6F
D8 6F
F0 6F
08 70
A0 72
B6 72
CC 72
4A 73
63 73
79 73
79 70
BC 70
FF 70
44 71
89 71
8F 73
AD 73
B7 73
C3 73
CE 73
DA 73
ED 73
1B 74
31 74
44 74
5A 74
E2 72
F8 72
6D 74
83 74
99 74
AF 74
C5 74
DB 74
F1 74
04 75

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

2:7431 (Invalid password text)

ROM2:7431 F5               push af
ROM2:7432 3E 04            ld   a,04
ROM2:7434 EA F9 C6         ld   (C6F9),a
ROM2:7437 3E 6E            ld   a,6E
ROM2:7439 EA FA C6         ld   (C6FA),a
ROM2:743C CD 12 40         call 4012
ROM2:743F CD C0 6D         call 6DC0
ROM2:7442 F1               pop  af
ROM2:7443 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

  • 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