Skip to content

Commit 625a197

Browse files
Adubbzclaude
andcommitted
Show the Items page over the exact pause scene and record skinned palettes
The town and dungeon main menus keep the frame captured when the game pauses, plus a same-tick copy replayed without the player's meshes, shadow, outline, player-owned effects and town exit markers. Entering Items runs the native orb close: the orb shows the scene converging on the playerless backdrop while bg16 fades and the player dissolves; the return uses the native open. The menu character is framed on the left above its name, centred on the HP bar, and fades in once the orb has closed. The Item title is centred, the quick-select slots sit higher, and the cursor moves on one continuous offset across the panel split, stays hidden until the panels settle and is never mirrored. The debug item browser ignores the spread. Skinned prog0 draws record their bone palettes beside the draw (Kazarov bump), the renderer gains Tracy profiling, and the logging, crash report, config, input startup and quick-change sound work is included with its docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent b4bc674 commit 625a197

65 files changed

Lines changed: 2262 additions & 602 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎docs/CRASH_REPORTS.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ A copy of `logs/darkchronicle-<session>.log`, made after a flush of at most 2 se
9292

9393
### config.json
9494

95-
`<save root>/config.json`, with every path redacted as below.
95+
`<save root>/../config.json`, with every path redacted as below.
9696

9797
### last_crash.json
9898

‎docs/DEBUG.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Retail cites are `ps2/src` file:line. PC cites are `port/src` or `tools/kazarov`
99
- `true`: at boot, `MasterDebugCode` is set to `MASTER_DEBUG_CODE` and `MasterDebugModeOn` is set to 1. Retail `title.cpp:2377` then unlocks pad 2 without a developer save. Retail `title.cpp:2281` would otherwise read the save's debug code. Also enables the pad-1 chord below.
1010
- `false`: nothing changes at boot. Retail behaviour: pad 2 unlocks only if the four shoulders are held on pad 2 at boot and a memory card save carries a debug code. The pad-1 chord is off.
1111

12-
Set `"game": {"debug_mode": true}` in the save root's `config.json` to enable native debug controls. Ordinary boots preserve the retail developer-save gate. `--jump` enables debug controls explicitly for that run.
12+
Set `"game": {"debug_mode": true}` in the `config.json` beside the save root to enable native debug controls. Ordinary boots preserve the retail developer-save gate. `--jump` enables debug controls explicitly for that run.
1313

1414
Boot code: `port/src/debug_mode.cpp` (`DebugModeBoot`), called from `port/src/mainloop.cpp` after the retail shoulder check.
1515

‎docs/FLATPAK.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ so:
4747
| | |
4848
|---|---|
4949
| game data | `~/.var/app/org.themoonpeople.ChronicleTwo/data/chronicletwo/data` and `port_data` beside it |
50-
| saves, `config.json`, the pipeline cache | `~/.var/app/org.themoonpeople.ChronicleTwo/data/chronicletwo/saves` |
50+
| saves and the pipeline cache | `~/.var/app/org.themoonpeople.ChronicleTwo/data/chronicletwo/saves` |
51+
52+
`config.json` and `logs/` live one level above `saves/`, in
53+
`~/.var/app/org.themoonpeople.ChronicleTwo/data/chronicletwo`.
5154

5255
`config.json` is described in `docs/PC.md`. `flatpak uninstall --delete-data
5356
org.themoonpeople.ChronicleTwo` removes both. The usual options still apply:

‎docs/LOGGING.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ lines on its console in every build type. A directly launched executable keeps t
6060

6161
- **stderr** (`log.console`, on by default): the message alone, one line per call, no timestamp. Lines at or above
6262
the category's level.
63-
- **The session file**: `<save root>/logs/darkchronicle-<session>.log`, opened by `LogAttachFile` once
63+
- **The session file**: `<save root>/../logs/darkchronicle-<session>.log`, opened by `LogAttachFile` once
6464
`config.json` is read. Lines logged since `LogInit` are held in memory (up to 1 MiB) and written first, so the
6565
file begins with the session header. Each line reads
6666

‎docs/LOGGING_CRASH_PLAN.md‎

Lines changed: 198 additions & 0 deletions
Large diffs are not rendered by default.

‎docs/NATIVE_MODELS.md‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,21 @@ A rotation key replaces an authored matrix's scale in the game; a clip that rota
2424

2525
Each CFG `KEY` interval is one action and one glTF animation, named in English (see [motion names](MOTION_NAMES.md)); a motion without `KEY` intervals is one action named after its file. Clip times start at zero, and keys the game would interpolate at an action's first and last frame are sampled with the game's own interpolation (including its rotation thresholds) and added there. Where several actions share an interval each still has its own clip. Auxiliary material, visibility, camera and vertex keys are sliced to each action the same way, with step sampling for visibility and linear sampling for the rest. A `KEY` that ends before it starts (one in the retail data: `横飛びL` in `event/e00/e50/e50_monica.chr`) plays as a still pose at its start.
2626

27-
Motions loaded onto an existing character, such as event and extension motions, are published into the models the game loads them onto and never into an animation-only glTF. The extractor reads those loads from the compiled event and map scripts (`_LOAD_MOTION`, and `_LOAD_CHARA` of the pack itself, with constant actors or actors read from globals the script only sets to constants) and from a table of the game code that loads packs itself (fishing, the buggy game and the invent menu). Actor 0 is the player unit, whose model the game picks at run time from the active character and weapon, so those motions go to each player model they fit. Every target must fit the motion's skeleton; [the model format](PORT_MODEL_FORMAT.md#motions-for-other-bundles-models) gives the rules. Their clips are named `<bundle>/<action>`.
27+
Motions loaded onto an existing character, such as event and extension motions, are published into the models the game loads them onto and never into an animation-only glTF. The extractor reads those loads from the compiled event and map scripts (`_LOAD_MOTION`, and `_LOAD_CHARA` of the pack itself, with constant actors or actors read from globals the script only sets to constants) and from a table of the game code that loads packs itself (fishing, the buggy game and the invent menu). Actor 0 is the player unit, whose model the game picks at run time from the active character and weapon, so those motions go to each player model they fit. Every target must fit the motion's skeleton; [the model format](PORT_MODEL_FORMAT.md#motions-for-other-bundles-models) gives the rules.
28+
29+
Fourteen of the 254 external motions are placed by skeleton match because no load reaches them, and `dc2data` reports each one:
30+
31+
| Motion | Reason | Models |
32+
|---|---|---|
33+
| `event/e00/e50/e50_guiltoni#1`, `event/e300/e352/e352_guiltoni#0`, `event/e500/e536/e536_guiltoni#0` | Scripts load the pack, but its own models do not fit | `event/lm/p00_06vs` |
34+
| `dungeon/chara/c01_fishing#0` | Unloaded; the game loads the copy `chara/c01_fishing` onto the player | Max's player models |
35+
| `menu/chara4/c01_camera#0` | Unloaded; the game loads the copy in `camera.pac` onto the invent menu's Max | `menu/chara4/c01b_think` |
36+
| `event/e200/e209/e208_mints#0` | Unloaded; copy of `event/e200/e208/e208_mints` | That copy's models |
37+
| `event/e700/e712/e207_monica#0` | Unloaded; copy of `event/e200/e207/e207_monica` | That copy's models |
38+
| `sg/sig/sig.pak/mints_bomb#0` | Unloaded; copy of `sg/pb/pb.pak/mints_bomb` | Max's player models |
39+
| `event/e3_event/e3_mints#0`, `event/e700/e712/e712_mints#0` | Unloaded, no copy | Best skeleton fit: `chara/c01_base` |
40+
| `event/lm/monica#0`, `event/lm/mo_vs_gil2/c02_vs2#0` | Unloaded, no copy | Best skeleton fit: `chara/c02_base` |
41+
| `event/lm/mo_vs_gil2/b03a_vs2#0`, `dungeon/monster/b18a#1` | Unloaded, no copy | Best skeleton fit: `event/lm/p00_06vs` | Their clips are named `<bundle>/<action>`.
2842

2943
MDT corner streams become standard position, normal, UV and colour attributes. Sidecar primitive mappings preserve independent source stream identities for CPU deformation. Normalized normals and clamped colours meet glTF requirements. Sparse `stream_overrides` retain only components standard reconstruction cannot reproduce: fourth components, nonunit normals, unclamped colours and unused source elements. Full geometry streams are not duplicated.
3044

0 commit comments

Comments
 (0)