Chrono Cross File Structure

From Chrono Compendium
Revision as of 18:37, 22 October 2007 by ZeaLitY (Talk | contribs)

Jump to: navigation, search

Chrono Cross, released late in the PlayStation's life, was subject to clever obfuscation by Square. Obfuscation—the art of hiding data—means at the simplest level that, if you put Chrono Cross in your hard drive, you can't browse directories and view individual assets, like character models and textures. Instead, the game disc is compiled as a unified whole with an index file at the beginning which the PlayStation / Chrono Cross read to find files and operate. Halkun of QHIMM.com explains by narrating Square's probable process for creating Final Fantasy VII.

  1. All uncompressed data was preloaded in a particular data structure (like how it was originally).
  2. Compiling - The executables are built and the compiled structure's length is recorded. These can be dynamic; my theory is that there's no sector data here.
  3. PSX data creation - The ANI, TIM, RSD, HRC, and all the other PSX data is created from source assets.
  4. Compression - Pass 1 - GZIP - All the files that are not sector critical are GZipped. Compressed and uncompressed lengths are recorded.
  5. Compression - Pass 2 - LZS - All the files that are going to be sector critical are compressed in LZS and their lengths recorded.
  6. Concentration - Headers are made for all the files that need to be stuck together. They are then done so. Sector locations are kept blank.
  7. File finalization - All files are manifested in their final form, minus sector information.
  8. Cool preburn - A disk image is created on a blank hard drive. Blank indexes are written first. Then, when a file is copied to this image, sector information is written in the files that need it, and recorded in the master index. Each file gets this treatment.
  9. Burn - The disk is mastered.

The most location-important files accumulate at the beginning of the data, and the index is usually first (or perhaps last on a disc). In 2002, Terminus Traduction (specifically, Yazoo, Nemesis, and Manz) successfully audited Chrono Cross and wrote a set of utilities for extracting its data.

Chrono Cross Hacking Tools

Yazoo's Chrono Cross hacking tools creates the following folders, each containing several .OUT files of data.

  • BF = 2415-2513 BattleFields
  • BS = 2543-3054 Battlescript
  • CD = 75- 125 Character Descriptions
  • CF = 25- 74 Character Faces
  • CTF = 1993-2084 Character talking face
  • MISC = 0- 24 Misc
  • MISC = 179- 185 Misc
  • MISC = 190- 203 Misc
  • MISC = 332- 355 Misc
  • MISC = 1967-1977 Misc
  • MISC = 2085-2416 Misc
  • MISC = 2514-2542 Misc
  • MISC = 3054-3707 Misc
  • MISC = 3760-5597 Misc
  • OAM = 322- 331 OverWorld Alternate Models
  • OMCM = 204- 321 OverWorld Main Characters Models
  • ROT = 126- 178 Rare objects TIM
  • ROT = 186- 189 Rare objects TIM
  • Rooms = 356-1966 Rooms
  • SCL = 3708-3759 Small Character Layer
  • WF = 1978-1992 Windows frame
  • V = 5598-5918 Video

Chrono Cross Translation Tools

File and Data Types

Debug Mode

With the room modifier code 8007E6E8 000E enabled, ZeaLitY restored a savestate in ePSXe immediately following the defeat of the Time Devourer on a new game plus in disc one. The game shifted to the Hydra Marshes, but strangely, this savestate (and only this savestate) booted the location with a debug mode menu active. Thanks to this completely accidental discovery, the game's debug mode is being mapped. Here is the Time Devourer battle savestate (to be used with that room modifier code):

Savestate Image

Here is a savestate with the debug mode enabled:

Savestate Image

Menu Layout

Several of these break the four-line height of text boxes, and the options as a result go well below the textbox. However, the decisions scroll down to the end of the string. So, if something has 8 choices (like the main menu), the first option will highlight the name of the fifth (since only 5-8 will be displayed). To get to the actual fifth and beyond, you have to go below the textbox to the invisible options.

Adjust Screen's RGB
	Start Changes
	   "Mode: 00
		R: 0
		G: 0
		B: 0"
		Input Red: 000

		Next
		Input Red again!
			(If >255) "Max is 255, stupid!"
		~
		Input Green again!
			(If >255) "Max is 255, silly!"
		~
		Input Blue again!
			(If >255) "Max is 255, dope!"
		~
		Select Mode: 000
			(If >3) "Range is 0 to 3!"
		End
		Select Mode again!
	Default
	Return
	Quit
Adjust Underwater RGB
	Start Changes
	   "Mode: 00
		R: 0
		G: 0
		B: 0"
		Input Red: 000

		Next
		Input Red again!
			(If >255) "Max is 255, stupid!"
		~
		Input Green again!
			(If >255) "Max is 255, silly!"
		~
		Input Blue again!
			(If >255) "Max is 255, dope!"
	Default
	Return
	Quit
Adjust Chara.'s RGB
	Start Changes
	   "Mode: 00
		R: 0
		G: 0
		B: 0"
		Input Red: 000

		Next
		Input Red again!
			(If >255) "Max is 255, stupid!"
		~
		Input Green again!
			(If >255) "Max is 255, silly!"
		~
		Input Blue again!
			(If >255) "Max is 255, dope!"
	Default
	Return
	Quit
Adjust Chara.'s rot
	Start Changes
	   "Current Values...
		X:0
		Z:0
		Y:0"
		Set rotx = 0000
			(If >4096) "Max is 4096!"
		~
		Next
		Set rotx again
		~
		Set rotz again
		~
		Set roty again
	Default
	Return
	Quit
Adjust Chara.'s scale
   "Scale what?"
	All
		00/10
			(If 0 "A number other than 0!")
	X
	Z
	Y
	Cancel
Set Rect.
	Rect. Size
		rectsizeX 0000
		~
		rectsizeZ 0000
	Go away!
Return
	YOU'RE AT MAP NO. 9!
		Map Jump
		This Map
		Before Jump
		Next Map
		Previous Map
		Planners' Rooms
		Special
		Exit Menu/Return
Quit

For the demo scenes, a map parameter of 0 or 1 starts one at one of two exits with static characters. Moving takes one to the title screen. A parameter of 2 plays the demo scenes. A parameter of more than that acts like 0 or 1 except that no characters are loaded.

Map Digits

000 - Crash
001 - Crash
002 - Crash
003 - Crash
004 - Crash
005 - Black screen
006 - Crash
007 - Crash
008 - Title screen
009 - Game Over screen
010 - Demo scene - Shadow Forest Entrance
011 - Demo scene - Shadow Forest Giant Tree
012 - Demo scene - Viper Manor Study Bridge (Night)
013 - Demo scene - Viper Manor Study with Harle
014 - Demo scene - Hydra Marshes (bg music - Dilemma) with Solt and Peppor
015 - Demo scene - Hydra Marshes (bg music - Dilemma)
016 - Demo scene - Termina Entrance
017 - Demo scene - Termina Fortune Teller
018 - Demo scene - Lucca's Orphanage (unused?)
019 - Demo scene - S.S. Invincible
020 - Demo scene - Cape Howl Sunset
021 - Demo scene - Viper Manor (Night)
022 - Fort Dragonia - Second Story Elevator Lobby
023 - Fort Dragonia - Second Story Teleporter Room
024 - Fort Dragonia - Second Story Side-Staircase
025 - Fort Dragonia - Second Story Crystal
026 - Fort Dragonia - Dragon Tear Chamber Station
027 - Arni (Home World)
028 - Arni (Another World)
029 - Arni - Serge's House Living Room (Home)
030 - Arni - Serge's House Living Room (Another)
031 - Arni - Serge's Room (Home)
032 - Arni - Serge's Room (Another)
033 - Arni - Chief's Meadow (Home)
034 - Arni - Chief's Meadow (Another)
035 - Arni - Chief's Hut (Home)
036 - Arni - Chief's Hut (Another)
037 - Arni Dock (Home)
038 - Arni Dock (Another)
039 - Arni - Belcha's Kitchen (Home)
040 - Arni - Cafe Fleur (Another)
041 - Arni - Belcha's Kitchen Bed (Home)
042 - Arni - Cafe Fleur Bed (Another)
043 - Arni - Kiki's Dad's Room (Home)
044 - Arni - Kiki's Dad's Room (Another)
045 - Arni - Leena's House (Home)
046 - Arni - Leena's House (Another)
047 - Arni - Kiki's House (Home)
048 - Arni - Kiki's House (Another)
049 - SCENE - Sea of Eden - Wazuki takes Serge to Chronopolis
050 - Lizard Rock Entrance (Home)
051 - Lizard Rock Entrance (Another)
052 - Lizard Rock East (Home)
053 - Lizard Rock East (Another)
054 - Lizard Rock South (Home)
055 - Lizard Rock South (Another)
056 - Opassa Beach (Home)
057 - Opassa Beach (Another)
058 - Cape Howl Entrance (Home)
059 - Cape Howl Entrance (Another)
060 - Cape Howl Cape (Home)
061 - Cape Howl Cape (Another)
062 - Cape Howl Cape Sunset (Another)
063 - Cape Howl Rock (Home)
064 - Cape Howl Grave (Another)
065 - Cape Howl Grave Sunset (Another)
066 - Fossil Valley Entrance (Home)
067 - Fossil Valley Entrance (Another)
068 - Fossil Valley Skeleton (Home)
069 - Fossil Valley Skeleton (Another)
070 - Fossil Valley Entrance Post-Lynx Invasion (Another)
071 - Termina Cemetery (Home)
072 - Termina Cemetery (Another)
073 - Termina Fortune Teller (Home)
074 - Termina Fortune Teller (Another)
075 - Termina Dragoon Quarter (Home)
076 - Termina Dragoon Quarter (Another)
077 - Termina Entrance (Home)
078 - Termina Entrance (Another)
079 - Termina Dock (Home)
080 - Termina Dock (Another)
081 - Termina - Lisa's Element Shop (Home)
082 - Termina - Lisa's Element Shop (Another)
083 - Termina - Lisa's Element Shop Bed (Home)
084 - Termina - Lisa's Element Shop Bed (Another)
085 - Termina - Dragon's Tail Bar (Home)
086 - Termina - Dragon's Tail Bar (Another)
087 - Termina - Dragon's Tail Bar Back Room (Home)
088 - Termina - Dragon's Tail Bar Back Room (Another)
089 - Termina - Sick Girl's House (Home)
090 - Termina - Sick Girl's House (Another)
091 - Termina - Skelly's House (Home)
092 - Termina - Skelly's House (Another)
093 - Termina - Zappa's House (Home)
094 - Termina - Zappa's House (Another)
095 - Termina - Zappa's Guest Room (Home)
096 - Termina - Zappa's Guest Room (Another)
097 - Termina - Glenn's House (Home)
098 - Termina - Glenn's House (Another)
099 - Termina Cemetery House (Home)
100 - Termina Cemetery House (Another)
101 - Termina Inn (Home)
102 - Termina Inn (Another)
103 - Termina Inn Suite One (Home)
104 - Termina Inn Suite One (Another)
105 - Termina Inn Suite Two (Home)
106 - Termina Inn Suite Two (Another)
107 - Termina - Van's Room (Home)
108 - Termina - Van's Room (Another)
109 - Termina - Van's House (Home)
110 - Termina - Gogh's Room (Another)
111 - Termina - Van's House (Another)
112 - Termina Fortune Teller (Before Viper Manor Break-in) (Another)
113 - Termina Cemetery (Another)
114 - Termina Dock (Another)
115 - Termina - Magical Dreamers Ship Deck (Another)
116 - Termina - Magical Dreamers Ship - Nikki's Room (Another)
117 - Termina - Magical Dreamers Ship - Miki's Room (Another)
118 - Termina Entrance (Post-Invasion) (Another)
119 - SCENE - Karsh thinks of Riddel in the Dragoon Quarter
120 - Termina Dragoon Quarter (Disabled Exits) (Another)
121 - SCENE - The party sails through the Dragoon Quarter to Viper Manor
122 - Shadow Forest (Home)
123 - Shadow Forest (Another)
124 - Shadow Forest Second Shade (Home)
125 - Shadow forest Second Shade (Another)
126 - Shadow Forest Waterfall (Home)
127 - Shadow Forest Waterfall (Another)
128 - Shadow Forest Grotto (Home)
129 - Shadow Forest Grotto (Another)
130 - Shadow Forest Giant Tree (Home)
131 - Shadow Forest Giant Tree (Another)
132 - Shadow Forest Waterfall (Before Viper Manor) (Another)
133 - Shadow Forest Tree River (Home)
134 - Shadow Forest Tree River (Another)
135 - Shadow Forest River Current (Home)
136 - Shadow Forest River Current (Another)
137 - Shadow Forest Well Base (Home)
138 - Shadow Forest Well Base (Another)
139 - Viper Manor Drainage Duct (Home)
140 - Viper Manor Drainage Duct (Another)
141 - Viper Manor Gate (Home)
142 - Viper Manor Gate (Another)
143 - Viper Manor Bluffs Dock (Home)
144 - Viper Manor Bluffs Dock (Another)
145 - Viper Manor Bluffs Second Ascent (Home)
146 - Viper Manor Bluffs Second Ascent (Another)
147 - Viper Manor Bluffs Final Ascent (Home)
148 - Viper Manor Bluffs Final Ascent (Another)
149 - Viper Manor Courtyard (Home)
150 - Viper Manor Courtyard (Another)
151 - Viper Manor Stable Courtyard (Another)
152 - Viper Manor Stables
153 - Viper Manor Foyer
154 - Viper Manor - Karsh's Room
155 - Viper Manor - ZOAH'S ROOM
156 - Viper Manor - Norris's Room
157 - Viper Manor - Harle's Room
158 - Viper Manor - Throne Room
159 - Viper Manor - Bridge to Study
160 - Viper Manor - Bridge to Study (Night)
161 - Viper Manor Study
162 - Viper Manor Balcony (Night)
163 - Viper Manor - Executive Hallway
164 - Viper Manor Balcony
165 - Viper Manor - Viper's Room
166 - Viper Manor - Riddel's Room
167 - Viper Manor Basement Hall
168 - Viper Manor Barracks
169 - Viper Manor Mess Hall
170 - Viper Manor Treasury
171 - Viper Manor Armament
172 - Viper Manor Jail Cells (Home)
173 - Viper Manor Jail Cells (Another)
174 - Viper Manor - Fargo's Cell
175 - Viper Manor - Interrogation Chamber (Home)
176 - Viper Manor - Interrogation Chamber (Another)
177 - Viper Manor Sewers - Main Complex (Home)
178 - Viper Manor Sewers - Main Complex (Another)
179 - Viper Manor Sewers - Pump Controls (Home)
180 - Viper Manor Sewers - Pump Controls (Another)
181 - Viper Manor Sewers - Entrance (Home)
182 - Viper Manor Sewers - Entrance (Another)
183 - Viper Manor - Bridge to Treasure Tower
184 - Viper Manor - Treasure Tower
185 - SCENE - Belthasar explains dimensions
186 - Viper Manor Balcony Edge (Night)
187 - Viper Manor - Jail Cell
188 - Viper Manor - Throne Room (After Invasion)
189 - Viper Manor Foyer (Escape from Porre)
190 - Viper Manor Stables Courtyard (Escape from Porre)
191 - Viper Manor Basement Hall (During Break-In)
192 - Viper Manor Foyer (During Break-In)
193 - Viper Manor Treasury (After Invasion?)
194 - Viper Manor Gates (After Invasion)
195 - Viper Manor Courtyard (After Invasion)
196 - Viper Manor Study (After Invasion)
197 - Viper Manor Gates (Dario's Restoration) (Home)
198 - Viper Manor Courtyard (Dario's Restoration) (Home)
199 - Viper Manor - Viper's Room (After Invasion)
200 - Viper Manor - Neo Epoch
201 - Viper Manor - Executive Wing (Disabled Exits)
202 - Viper Manor Mess Hall (After Invasion)
203 - Guldove Dock (Home)
204 - Guldove Dock (Before Going with Macha) (Another)
205 - Guldove Shop Exterior (Home)
206 - Guldove Shop Exterior (Another)
207 - Guldove - Macha's Tent Upper Exterior (Home)
208 - Guldove - Macha's Tent Upper Exterior (Another)
209 - Guldove - Chief's Tent Exterior (Home)
210 - Guldove - Chief's Tent Exterior (Another)
211 - Guldove - Doc's House (Home)
212 - Guldove - Doc's House (Another)
213 - Guldove - Doc's Beds (Home)
214 - Guldove - Doc's Beds (Another)
215 - Guldove - Element Shop (Home)
216 - Guldove - Element Shop (Another)
217 - Guldove Bar (Home)
218 - Guldove Bar (Another)
219 - Guldove - Macha's Tent (Home)
220 - Guldove - Macha's Tent (Another)
221 - Guldove - Macha's Tent Lower Level (Home)
222 - Guldove - Macha's Tent Lower Level (Another)
223 - Guldove - Chief's Tent (Home)
224 - Guldove - Chief's Tent (Another)
225 - Guldove - Doc's House (After Lynx) (Another)
226 - Guldove - Doc's Beds (After Lynx) (Home)
227 - SCENE - Discussion with Kid and Korcha after escape from Lynx
228 - Guldove Dock (Another)
229 - SCENE - Orlha battles Porre soldiers
230 - Hydra Marshes Entrance (Home)
231 - Hydra Marshes Entrance (Another)
232 - Hydra Marshes Northeast of Entrance (Home)
233 - Hydra Marshes Northeast of Entrance (Another)

From: Games
From: Modification

Thanks to halkun for explanation of Square practices</pre>