User:Kojin/Dark Cloud 2 Technical Information
This is a sub-page of User:Kojin.
Dark Cloud 2 (Dark Chronicle) is a game developed by level-5 and was released between Dark Cloud and Dragon Quest VIII: Journey of the Cursed King (PlayStation 2). As such, the engine of Dark Cloud 2 closely resembles the engine of those games (being more similar it seems to Dragon Quest VIII). This subpage is for expanding on the details of the Level-5 engine as it pertains to Dark Cloud 2. Some details provided here may be used to gain insight into other Level-5 games.
Details are from the US release of the game with notes about differences between other releases.
Contents
Notes
Codes
Dark Cloud 2 Japanese Demo debug code
00195f38 24020000
Diffs
jp v101 vs v201
Binary files NTSCJ-SCPS-15033-v101/DATA/event/e300/e314/e314_monica.chr and NTSCJ-SCPS-15033-v201/DATA/event/e300/e314/e314_monica.chr differ Binary files NTSCJ-SCPS-15033-v101/DATA/event/e300/e315/e315_monica.chr and NTSCJ-SCPS-15033-v201/DATA/event/e300/e315/e315_monica.chr differ Binary files NTSCJ-SCPS-15033-v101/DATA/event/e300/e316/e316_monica.chr and NTSCJ-SCPS-15033-v201/DATA/event/e300/e316/e316_monica.chr differ Binary files NTSCJ-SCPS-15033-v101/DATA/event/e300/e317/e317_monica.chr and NTSCJ-SCPS-15033-v201/DATA/event/e300/e317/e317_monica.chr differ Only in NTSCJ-SCPS-15033-v101/DATA: g.lnk Binary files NTSCJ-SCPS-15033-v101/DATA/map/s/s17/s17.stb and NTSCJ-SCPS-15033-v201/DATA/map/s/s17/s17.stb differ Only in NTSCJ-SCPS-15033-v201/DATA: nk
en v100 vs v200
Binary files NTSCU-SCUS-97213-v100/DATA/map/i/i04/h01/i04h01_1.stb and NTSCU-SCUS-97213-v200/DATA/map/i/i04/h01/i04h01_1.stb differ
Version Numbers
Version numbers reported by the debug menu.
Serial | Version | ELF Modified | Notes |
---|---|---|---|
PAPX-90506 | 0.152 | 2002/09/02 | Japan Demo |
SLPM-61033 | 0.154 | 2002/09/06 | Dengeki D55 |
SCUS-97261 | 0.154 | 2002/08/18 | Kiosk Demo 2.8 |
SCUS-97229 | 0.154 | 2003/07/28 | US Demo |
SCPS-15033 | 0.204 | 2002/11/07 | Japan v1.01 |
SCPS-15033 | 0.208 | 2003/01/24 | Japan v2.01 |
SCUS-97213 | 0.309 | 2003/01/10 | US v1.00 |
SCUS-97213 | 0.309 | 2003/01/10 | US v2.00 |
SCES-51190 | 0.334 | 2003/07/28 | PAL |
SCKA-20014 | Korea |
Folder Structure
Note: Not all files are included here for brevity. Instead, interesting files are highlighted.
chara/ dbg/ dungeon/ effect/ etc/ event/ img/ item/ mainchr/ map/ menu/ meswin/ sg/ snd2/ title/ wep_t/ edit.cfg geo0.cfg // Georama condition scripts (Japanese) geo1.cfg // Georama condition scripts (English) gyop.cfg gyorace.cfg mv.bk // Backup from mv.cfg that includes a reference to "e3rush.pss" mv.cfg // Movie scripts for debugger npc.cfg // NPC scripts (Japanese Demo) npc_place.cfg npc_place2.cfg npc_place3.cfg npc_place4.cfg npc0.cfg // NPC scripts (Japanese) npc1.cfg // NPC scripts (English) place.cfg // NPC position scripts test.stb uofp.cfg
chara
dbg
cap1.cfg // Chapter 1 script ... cap8.cfg db_cap1.cfg // Chapter 1 script (debug) ... db_cap8.cfg dbg1.cfg // Dungeon 1 script ... dbg7.cfg game0.cfg // Script loaded by "Load cfg" ... game22.cfg geo.cfg // Georama script pb.cfg // Palm Brinks script sg0.cfg // Spheda script sg1.cfg // Finny Frenzy script sg2.cfg // Fishing script
Scripting Engine
Dark Cloud 2 uses a simple scripting engine to perform tasks like setting progress and npc names.
Debug Scripts
// Sets the in-game progress to chapter id PROGRESS int; // Loads inventory defaults // 0: Presentation // 1: Game Start // 2: Debug // 6: Weapon Only ITEM_SET int; // Adds Monica to party MONICA; // Sets Steve core STEVE int; // Sets available monster transformations by id MONSTER int, int; // Adds NPC to party PARTY int; GET_ITEM int [, int...]; GET_N_ITEM int, int [, int...]; // Equips weapons. // character_id, item_id EQUIP int, int; HP int, int; DEFENSE int, int; // Game Settings // ex: // OPTION "MonsterName", 1; // enables monster names OPTION string, int; // Sets the current character // 0: Max // 1: Monica ACTIVE_CHARA int; BIT_FLAG_ON int; ALL_GEO_PARTS;
Notable Labels
So I don't forget them.
// Address 00305e5c // Location of finny frenzy crash (US v2) // Memory GamePad // Controller input DebugFlag // Debug enable menu_mode // Current debug menu (0=main, 1=map, 2=game start) select$1302 // Current debug menu selection (0=game start, 1=map, etc) event_view // Event selection menu future_sel // Future map selection menu hdd_sel // HDD debug menu select$1459 // Current game start menu selection (0=from the beginning, 1=from chapter (normal), etc) // Debug Routines MainLoop_Fv // Main loop MenuLoop_Fv // Main debug menu draw loop EventSelect_Fv // Game start menu loop EditDebugLoop__FP6CSceneP13EditDebugInfo // Field debug menu loop // Finny Frenzy Routines sgInitGyoRace_FP11SubGameInfo // Finny Frenzy init sgLoopGyoRace_FP11SubGameInfo // Finny Frenzy loop
File Format
img
Archive for TIM2 files and other texture metadata
HEADER
File 1 Header File 2 Header File 3 Header ... FILE 1 FILE 2 FILE 3 ...
VERSION 1
HEADER
struct { char ver[4]; int32_t numFiles; int32_t unk1; int32_t unk2; }
FILE HEADER
struct { char name[32]; int32_t fileLoc; int32_t fileSize; int32_t align1; }
VERSION 2
HEADER
struct { char ver[4]; int32_t numFiles; int32_t unk1; int32_t unk2; }
FILE HEADER
struct { char name[32]; int64_t fileLoc; }
VERSION 3
HEADER
struct { char ver[4]; int32_t unk1; int32_t numFiles; int32_t align1; }
FILE HEADER
struct { char name[32]; int32_t unk1; int32_t fileLoc; int32_t unk2; int32_t align1; int32_t unk3; int32_t fileSize; int32_t unk4; int32_t align2; }
pak
Generic archive.
structure:
- header - file1 - header - file2 ...
header:
struct chrHeader { char name[64]; int32_t headerSize; int32_t fileSize; int32_t nextHeaderOffset; int32_t unk[4]; //sometimes has value };
chr
pak archive for model-related files.
ipk
pak archive for map related stuff.
mpk
pak archive for map related stuff.
mds
Model data
mot
Motion data