Decomp updates
This commit is contained in:
parent
f6a5155675
commit
c4fa8a6b05
62 changed files with 9413 additions and 20 deletions
|
|
@ -199,6 +199,56 @@ So the `-warp mission` path also uses code/data embedded in the executable, not
|
|||
|
||||
`-mapoff` therefore matters only inside the manual/debug warp path. It does not affect the ordinary fresh-game selector when no `-warp` argument is present.
|
||||
|
||||
### 3a. No Regret cross-check: the live `REGRET.EXE` table is the same 17-word sequence at `1480:075c`
|
||||
|
||||
The currently opened `REGRET.EXE` session now closes the missing cross-check directly.
|
||||
|
||||
In `Game_RunNewGameFlow`, the debug/manual warp lane computes:
|
||||
|
||||
```c
|
||||
mapno = *(int *)(g_warpToLevelNoArg * 2 + 0x75c) + DAT_1480_0ad0;
|
||||
```
|
||||
|
||||
So the live No Regret table base is:
|
||||
|
||||
- `1480:075c`
|
||||
|
||||
The retail bytes at that address are:
|
||||
|
||||
```text
|
||||
1480:075c: 00 00 01 00 03 00 05 00 07 00 09 00 0b 00 0d 00
|
||||
1480:076c: 0f 00 11 00 13 00 15 00 17 00 19 00 1b 00 1d 00
|
||||
1480:077c: 28 00
|
||||
```
|
||||
|
||||
Interpreted as little-endian words, that is the same 17-entry base-map sequence already recovered in No Remorse:
|
||||
|
||||
- `0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 40`
|
||||
|
||||
The next two words after the last entry are `0x0000, 0x0000`, so the retail table also has a clean double-zero terminator immediately after the `40` entry.
|
||||
|
||||
Current best cross-game read is therefore tighter than the earlier one-sided Remorse note:
|
||||
|
||||
- No Remorse and No Regret both keep the debug `-warp mission` base-map table in executable data
|
||||
- the two currently checked retail tables carry the same 17-word payload
|
||||
- the practical game-to-game difference in this startup area is not the mission table itself, but the surrounding startup control flow and data addresses
|
||||
|
||||
### 3b. Renderer-side extracted JSON now records both retail tables
|
||||
|
||||
The public renderer project now has a dedicated extractor for this table instead of keeping the mission mapping only in prose notes.
|
||||
|
||||
Current generator and output:
|
||||
|
||||
- script: `Crusader_Decomp_Public/map_renderer/src/generate-mission-map-data.js`
|
||||
- generated cache file: `Crusader_Decomp_Public/map_renderer/.cache/mission-map-data.generated.json`
|
||||
|
||||
That JSON captures both retail tables, their data-segment addresses, the per-mission base-map entries, and the reverse `map -> missions` lookup used by the renderer metadata.
|
||||
|
||||
The renderer's scene metadata builder now consumes that generated table so usage notes can distinguish:
|
||||
|
||||
- maps that are real base mission entries in the executable `-warp` table
|
||||
- maps that are only reachable through `-mapoff` or some other non-table selector path
|
||||
|
||||
Practical implication for the earlier patch question:
|
||||
|
||||
- if the goal was `start a normal new game on a different first map`, the executable patch was still required
|
||||
|
|
@ -207,7 +257,7 @@ Practical implication for the earlier patch question:
|
|||
|
||||
The No Remorse cross-check now makes that last point stronger: this eggless-map workaround is not just a Regret quirk. `CRUSADER.EXE` uses the same parser shape and the same consumer-side precedence.
|
||||
|
||||
### 3a. Why `-warp 0 28670 30718 0 -mapoff 246` likely lands in a bad spot in No Remorse
|
||||
### 3c. Why `-warp 0 28670 30718 0 -mapoff 246` likely lands in a bad spot in No Remorse
|
||||
|
||||
The current cached scene data from `Crusader_Decomp_Public/map_renderer/.cache/scene-cache/remorse/map-246/bb7e36195d39ac72/scene.json` confirms that map `246` is real and nonempty:
|
||||
|
||||
|
|
@ -366,4 +416,75 @@ For No Regret, the patcher now updates both hardcoded selectors so the later mis
|
|||
- No Regret hardcodes the same values twice: once in `Game_Start`, and again in the later `FUN_1030_032d` mission-start path that actually controls a real new game.
|
||||
- The debug `-warp mission` path uses an executable-embedded mission-to-map word table at `1478:0488`, plus `-mapoff`.
|
||||
- External files such as `FIXED.DAT` hold the actual map contents.
|
||||
- `CRUSADER.CFG` does not control which map a new game starts on.
|
||||
- `CRUSADER.CFG` does not control which map a new game starts on.
|
||||
|
||||
# Maps mapping by Candy
|
||||
|
||||
These entries might be shifted by 1
|
||||
|
||||
28: Rebel base
|
||||
29: destroyed Rebel base
|
||||
|
||||
Mission 1:
|
||||
0: level 1, looks complete
|
||||
34: level 1, most complete
|
||||
56: level 1
|
||||
|
||||
Mission 2:
|
||||
2: mission 2
|
||||
3: mission 2 incomplete
|
||||
|
||||
Mission 3:
|
||||
4: thermatron manufacturing plant
|
||||
38: thermatron manufacturing plant
|
||||
43: thermatron manuf plant
|
||||
45: thermatron manuf plant
|
||||
5: thermatron plant broken
|
||||
|
||||
Mission 4:
|
||||
6: blow up comms
|
||||
44: incomplete mission 5
|
||||
|
||||
Mission 5:
|
||||
8: first half
|
||||
9: second half
|
||||
|
||||
Mission 6:
|
||||
10:
|
||||
|
||||
Mission 7:
|
||||
11: Blow up nerve gas stockpile
|
||||
12: Blow up nerve gas stockpile
|
||||
|
||||
Mission 8: Save prof Willmar who dies on telepad
|
||||
13,14: first mission with extra protection stuff, 5?
|
||||
|
||||
Mission 9:
|
||||
15:
|
||||
36:
|
||||
|
||||
Mission 10:
|
||||
16: mission 10
|
||||
|
||||
Mission 11: Download plans for platform
|
||||
17: first half
|
||||
35: no idea, looks mostly complete level
|
||||
37: incomplete cipher chip level
|
||||
31: incomplete mission 6
|
||||
20: Looks like part of a mission but incomplete. Has that big computer thing
|
||||
|
||||
Mission 12:
|
||||
19: ????? Third done mission. Start matches.
|
||||
|
||||
Mission 13:
|
||||
21: mission 13
|
||||
22: incomplete mission 13
|
||||
39: mission 13 incomplete
|
||||
40: mission 13 very incomplete
|
||||
|
||||
Mission 14:
|
||||
23: mission 14
|
||||
24: mission 14 with cheese fart
|
||||
|
||||
Mission 15:
|
||||
25: mission 15
|
||||
Loading…
Add table
Add a link
Reference in a new issue