the cutting room mirror

Built from Source Code

This article has a talk page!This article has a talk page!
view on tcrf.net

This is a sub-page of Proto:The Legend of Zelda: Link's Awakening (Game Boy).

The source code which leaked in 2020 can be easily built into working ROMs using the ISDMG / ISAS32 assembler and the ISLINK / ISLK32 linkers, and running the appropriate .bat file (named GAL or CGAL usually). A ROM file in the .isx format is produced, usually named T.ISX for example.

The following is some general info about how the ROMs were built:

  • Placed files into one single folder as needed. Ex: DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR\German_* folders' files were merged into one.
  • Used isxc.exe to convert from .isx to .gb. This program conveniently also corrects the checksums. rgbfix can also be used to correct checksums.
  • Converted sound data from Intel .hex format to .bin using objcopy (File names: bgm_1 / bgm_1F / bgm_1G.bin, bgm_2.bin, se.bin).

The following ROMs which match known retail dumps or leaked builds can be built from the folders listed here:

Matching Retail Dumps#

Zelda no Densetsu - Yume o Miru Shima DX (Japan).gbc:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk3\DEMO_zelda\

Zelda no Densetsu - Yume o Miru Shima DX (Japan) (Rev 1).gbc:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\DEMO_zelda\

Legend of Zelda, The - Link's Awakening DX (USA, Europe).gbc:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk3\CGB_zeldaUSA\cgb_usa\

Legend of Zelda, The - Link's Awakening DX (USA, Europe) (Rev 1).gbc:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaUSA\cgb_usa\

Legend of Zelda, The - Link's Awakening DX (France).gbc:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaFRANCE\cgb_f\

Legend of Zelda, The - Link's Awakening DX (Germany).gbc:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaFRANCE\cgb_d\

Matching Leaked Builds#

C_fra.isx (99-09-22):
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk1\ゼルダの伝説_JP3_US3_EU2\CGB_zeldaFRANCE\cgb_f\

C_usa.isx (98-12-24):
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk1\ゼルダの伝説_JP3_US3_EU2\CGB_zeldaUSA\cgb_usa\

c_e.isx (98-12-13):
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaEIKOKU\cgb_e\

C.isx (98-09-01):
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk3\TEST_zelda\

Some additional steps were required to build these source folders:

  • Referred to zchr.s files in the CGB source to make ZCHR.DMG, and added it accordingly to GAL.BAT for each folder, in order to build the DMG source. The ZCHR file lists the graphic and data assets to use, and which bank they are placed in the ROM.
  • The version number for US_v2 was set like in the retail dump (0x14C), The debug byte was set to 0 for CGB_zeldaFRANCE\gb.
  • Padding of 0x00 is present in the following built ROMs, rather than 0xFF as found in retail dumps.

After accounting for the padding and fixing checksums, the following ROMs which match known retail dumps or leaked builds can be built from the folders listed here:

Matching Retail Dumps#

Legend of Zelda, The - Link's Awakening (Canada).gb:
DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR\CanadianFrench_*\

Legend of Zelda, The - Link's Awakening (Germany).gb:
DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR\German_*\

Zelda no Densetsu - Yume o Miru Shima (Japan).gb:
DMG\XXX__ゼルダの伝説 夢を見る島\Source\SRD_DMG_Zelda_JP_v0\ (folders "1", "2", and "3")

Zelda no Densetsu - Yume o Miru Shima (Japan) (Rev 1).gb:
DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_JP_EN\JP_v1_*\

Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 1).gb:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaUSA\gb\

Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2).gb:
DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_EN_v2_CFR_v1\US_v2_*\

Legend of Zelda, The - Link's Awakening (France).gb:
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaFRANCE\gb\

Matching Leaked Builds#

Leaked build RZ.ICE (98-04-28):
CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk3\gbzelda\

Other Builds#

The following eight folders contain source code which has been slightly modified compared to the previously listed folders and builds. The resulting built ROMs do not match any other known builds. Interestingly, within the DMG source, are folders named "v1", possibly indicating a planned Revision 1 release for some regions (Germany, France, and Canada). and the differences are very minor, but when compared to available retail source folders, the following changes were found:

CFR_v1#

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_EN_v2_CFR_v1\CanadianFrench_v1_*\

when compared to:

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR\CanadianFrench_*\

ZE7.DMG - Around line 6806, 6809 a CALL and RET was added:

   CALL    PUK0010     ; 94.2.21 revised !!
;
   CALL    CREPKEL
   RET

CGB_zeldaDOITU\gb#

CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaDOITU\gb\

when compared to:

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR\German_*\

ZCO.DMG - Line 9 was changed to:

   ORG $27A8

DE_v1#

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR_v1\German_*\

when compared to:

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR\German_*\

ZE7.DMG - Around line 6806, 6809 a CALL and RET was added:

   CALL    PUK0010     ; 94.2.21 revised !!
;
   CALL    CREPKEL
   RET

FR_v0#

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR\French_*\

when compared to:

CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaFRANCE\gb\

ZDB.DMG - line 1259 line was removed:

   DB  NXGO+DNJ,$00,$0B,$58,$40

ZMA.DMG - Line 43 was changed to:

   DB  $00

FR_v1#

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_DE_FR_v1\French_*\

when compared to:

CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk2\CGB_zeldaFRANCE\gb\

ZDB.DMG - Line 1259, this line was removed:

   DB  NXGO+DNJ,$00,$0B,$58,$40

ZMA.DMG - Line 43 was changed to:

   DB  $00

ZE7.DMG - Around line 6806, 6809 a CALL and RET was added:

   CALL    PUK0010     ; 94.2.21 revised !!
;
   CALL    CREPKEL
   RET

JP_v0#

DMG\XXX__ゼルダの伝説 夢を見る島\Source\DMG_Zelda_JP_EN\JP_v0_*\

when compared to:

DMG\XXX__ゼルダの伝説 夢を見る島\Source\SRD_DMG_Zelda_JP_v0\

ZED.DMG - around line 1310 under DE0C1, a line got commented out

;;;;;; DB  $11,HART1

GBZE#

CGB\AZL__ゼルダの伝説 夢を見る島DX\Source\Disk3\GBZE\

when compared to:

DMG\XXX__ゼルダの伝説 夢を見る島\Source\SRD_DMG_Zelda_JP_v0\

The folder with the most changes, although most are minor. The bulk of the differences were that the EXTERNs at the beginning of the files were organized (GROUPed into BANKs) and moved up a few lines to line 1.

ZBS.DMG - Just the EXTERNs moved.

ZCO.DMG - The EXTERNs moved, and the ORG after LIB ZRAM on line 18 is now:

   ORG $27AC

ZES.DMG - Just the EXTERNs moved.

ZMA.DMG - Just the EXTERNs moved.

ZS1.DMG - Just the EXTERNs moved.

ZGD.DMG - The following was added to beginning of file:

BANK1A GROUP   $1A
;
   ORG $04000

ZPL.DMG - The EXTERNs moved. Additionally, some lines were changed around 1320:

;;;    LD  HL,DJFLAG
   LD  HL,ITEMNOT
   LD  A,(MSGEFG)
   OR  (HL)
;; AND A
   JR  NZ,GMP0000

is now:

;;;    LD  HL,DJFLAG
   LD  A,(MSGEFG)
   LD  HL,ITEMNOT
   OR  (HL)
   LD  HL,SCRLFG 
   OR  (HL)
;; AND A
   JR  NZ,GMP0000