Yu-Gi-Oh! Duel Monsters/Early Days Collection subroutines

From Data Crystal
< Yu-Gi-Oh! Duel Monsters
Revision as of 09:35, 12 April 2025 by Mantidactyle (talk | contribs) (Created page with "This page lists the changes made by Digital Eclipse in the gbz80 code. It is apparent they did not have access to the source code, and opted to directly modify the game's subroutines. Early Days Collection's re-release of Duel Monsters 1 is, for all intents and purposes, a ROM hack.<br> This is even more evident when they didn't properly fix the ROM checksum in some of the GB(C) ROMs in the collection, improperly changed the ROM size in the headers, and when some instru...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page lists the changes made by Digital Eclipse in the gbz80 code. It is apparent they did not have access to the source code, and opted to directly modify the game's subroutines.

Early Days Collection's re-release of Duel Monsters 1 is, for all intents and purposes, a ROM hack.
This is even more evident when they didn't properly fix the ROM checksum in some of the GB(C) ROMs in the collection, improperly changed the ROM size in the headers, and when some instructions are simply nop'd rather than moving instruction around and modifying the pointers.

ROM start

ROM0:0100 00               nop  
ROM0:0101 C3 50 01         jp   0150
...
ROM0:0150 E0 DD            ld   (ff00+DD),a
ROM0:0152 21 00 E0         ld   hl,E000
ROM0:0155 F9               ld   sp,hl
ROM0:0156 CD 90 10         call 1090
ROM0:0159 CF               rst  08
ROM0:015A 05               dec  b
ROM0:015B 04               inc  b
ROM0:015C 3E 00            ld   a,00
ROM0:015E CF               rst  08
ROM0:015F 03               inc  bc
ROM0:0160 3F               ccf  
ROM0:0161 CF               rst  08
ROM0:0162 03               inc  bc
ROM0:0163 3E CD            ld   a,CD
ROM0:0165 EA 14 CD         ld   (CD14),a
ROM0:0168 96               sub  (hl)
ROM0:0169 03               inc  bc
ROM0:016A CD D8 0D         call 0DD8
ROM0:016D CD 9F 01         call 019F
ROM0:0170 3E 02            ld   a,02
ROM0:0172 CF               rst  08
ROM0:0173 03               inc  bc
ROM0:0174 3F               ccf  
ROM0:0175 CF               rst  08
ROM0:0176 49               ld   c,c
ROM0:0177 01 3E 04         ld   bc,043E
ROM0:017A CF               rst  08
ROM0:017B 03               inc  bc
ROM0:017C 3F               ccf  
ROM0:017D CF               rst  08
ROM0:017E 4B               ld   c,e
ROM0:017F 01 3E 06         ld   bc,063E
ROM0:0182 CF               rst  08
       => 03 3F
ROM0:0184 3F               ccf  
ROM0:0185 CD 0C 04         call 040C
ROM0:0188 00               nop                 ;the rst 08 => 1:65F3 got nop'd
ROM0:0189 00               nop
ROM0:018A 00               nop
ROM0:018B CF               rst  08
      => 03 04
ROM0:018E CD 24 17         call 1724
ROM0:0191 3E 16            ld   a,16
ROM0:0193 CD E3 0D         call 0DE3
ROM0:0196 CD 2F 0F         call 0F2F
ROM0:0199 CD 1F 2D         call 2D1F
ROM0:019C 18 FE            jr   019C
ROM0:019E C9               ret