We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

User:Kojin/Dark Cloud 2 Technical Information

From The Cutting Room Floor
Jump to navigation Jump to search

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.

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

pak

Generic archive.

structure:

- header
- file1
- header
- file2
...

header:

struct chrHeader {
  char name[64];
  long headerSize;
  long fileSize;
  long nextHeaderOffset;
  long alignmentByte;
};

chr

pak archive for model-related files.

ipk

pak archive for map related stuff.

mpk

pak archive for map related stuff.