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
< User:Kojin
Revision as of 20:18, 24 August 2018 by Kojin (talk | contribs)
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.

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
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 debug menu loop
MenuLoop_Fv      // Main debug menu draw loop
EventSelect_Fv   // Game start menu loop

// Finny Frenzy Routines
sgInitGyoRace_FP11SubGameInfo  // Finny Frenzy init
sgLoopGyoRace_FP11SubGameInfo  // Finny Frenzy loop