Documentation improvements

This commit is contained in:
MaddoScientisto 2026-03-29 01:14:09 +01:00
commit c34f481c3a
34 changed files with 2800 additions and 20 deletions

View file

@ -322,7 +322,7 @@
]>
<PROGRAM NAME="CRUSADER.EXE" EXE_PATH="/Users/stauff/dosbox/crusader/CRUSADER.EXE" EXE_FORMAT="New Executable (NE)" IMAGE_BASE="0000:0000">
<INFO_SOURCE USER="Maddo" TOOL="Ghidra 12.0.4" TIMESTAMP="Wed Mar 25 23:08:22 CET 2026" />
<INFO_SOURCE USER="Maddo" TOOL="Ghidra 12.0.4" TIMESTAMP="Sat Mar 28 14:17:48 CET 2026" />
<PROCESSOR NAME="x86" LANGUAGE_PROVIDER="x86:LE:16:Protected Mode:default" ENDIAN="little" />
<DATATYPES>
<FUNCTION_DEF NAME="dt_bbae6b42" NAMESPACE="/auto_proto">
@ -7937,7 +7937,11 @@ Flags: 0d00
<COMMENT ADDRESS="1020:0055" TYPE="pre">play the intro movies</COMMENT>
<COMMENT ADDRESS="1020:0199" TYPE="pre">shape 0x4d4 = data link</COMMENT>
<COMMENT ADDRESS="1020:01f6" TYPE="pre">shape 0x598 = some weird smiley face thing?</COMMENT>
<COMMENT ADDRESS="1020:0241" TYPE="end-of-line">Fresh-game startup path: pushes hardcoded map 1 and egg 0x1e before Teleporter_CreateProcessDirect. This is the normal new-game start selector, not a config-driven mission map lookup.</COMMENT>
<COMMENT ADDRESS="1020:0241" TYPE="pre">Fresh-game startup path hardcodes Teleporter_CreateProcessDirect(1, 0x1e, 1), so a normal new game starts on map 1 at teleport egg 0x1e.</COMMENT>
<COMMENT ADDRESS="1020:0249" TYPE="pre">start on level 1, starting egg (0x1e)</COMMENT>
<COMMENT ADDRESS="1020:0254" TYPE="end-of-line">Debug -warp path: mission number from g_warpToLevelNoArg indexes g_warpMissionToMapTable, then g_mapoffArgValue is added to produce the target map.</COMMENT>
<COMMENT ADDRESS="1020:0254" TYPE="pre">Manual warp path uses the embedded mission-to-map table at 1478:0488 (now g_warpMissionToMapTable) plus -mapoff; this table is separate from the normal fresh-game hardcoded start.</COMMENT>
<COMMENT ADDRESS="1020:02aa" TYPE="pre">warp x/y/z not set</COMMENT>
<COMMENT ADDRESS="1020:04da" TYPE="pre">script to find shape = 0x476 (1142) &quot;item&quot; editor item</COMMENT>
<COMMENT ADDRESS="1020:0586" TYPE="pre">script to find shape = 0x476 (1142) &quot;item&quot; editor item</COMMENT>
@ -8157,6 +8161,8 @@ Flags: 0d00
<COMMENT ADDRESS="1090:014c" TYPE="pre">fn ptr = 0x14780f3a == teleporter process functions</COMMENT>
<COMMENT ADDRESS="1090:01c9" TYPE="pre">fn ptr = 0x14780f3a == teleporterProcess</COMMENT>
<COMMENT ADDRESS="1090:0223" TYPE="pre">have the new process wait for this one</COMMENT>
<COMMENT ADDRESS="1090:022d" TYPE="end-of-line">TeleporterProcess_Run consumes TeleporterProcess.mapno as a real target map array: if it differs from g_currentMapArray, the avatar/camera is moved onto that map before the target teleport egg is searched.</COMMENT>
<COMMENT ADDRESS="1090:022d" TYPE="pre">mapno is a real map-array selector here, not just a mission label. Cross-map startup/warp logic uses it before egg search.</COMMENT>
<COMMENT ADDRESS="1090:0312" TYPE="pre">find teleport egg (family 8) with frame 1 and q 0xff and (PARAM).</COMMENT>
<COMMENT ADDRESS="1090:04ce" TYPE="plate">intrinsic 079</COMMENT>
<COMMENT ADDRESS="1090:04f7" TYPE="plate">intrinsic 096</COMMENT>
@ -8304,6 +8310,8 @@ Flags: 0d00
<COMMENT ADDRESS="10a8:07f3" TYPE="pre">item is contained</COMMENT>
<COMMENT ADDRESS="10a8:0842" TYPE="pre">check FLG_EQUIPPED</COMMENT>
<COMMENT ADDRESS="10a8:0ba8" TYPE="pre">saves all the stuff into the file</COMMENT>
<COMMENT ADDRESS="10a8:163a" TYPE="end-of-line">ItemCache_InitAndLoadFixedDat loads external fixed map content (FixedDat_LoadData plus optional static\\fixed.dat patch layer) and resets g_currentMapArray. Map contents are external even though the fresh-game start map is hardcoded in Game_Start.</COMMENT>
<COMMENT ADDRESS="10a8:163a" TYPE="pre">External map/resource loader anchor: fixed.dat/static\\fixed.dat provide map contents, while Game_Start chooses the fresh-game start map in code.</COMMENT>
<COMMENT ADDRESS="10a8:16e8" TYPE="pre">zero out the blocks</COMMENT>
<COMMENT ADDRESS="10a8:1731" TYPE="pre">z = 0xf3 (free)</COMMENT>
<COMMENT ADDRESS="10a8:1743" TYPE="pre">510 is the &quot;bad newgumpid&quot; ?</COMMENT>
@ -8683,6 +8691,8 @@ Flags: 0d00
<COMMENT ADDRESS="1128:0ecf" TYPE="pre">male &quot;ugh!&quot;</COMMENT>
<COMMENT ADDRESS="1128:0fab" TYPE="pre">0x259 == attack process</COMMENT>
<COMMENT ADDRESS="1128:0fc5" TYPE="pre">probably &quot;sleep for random time&quot;</COMMENT>
<COMMENT ADDRESS="1128:0ff0" TYPE="end-of-line">Second direct 10a0:275f caller family: Item_ReceiveHit&apos;s non-NPC path passes hitter=0x4000 plus packed damage=(damagetype&lt;&lt;8)</COMMENT>
<COMMENT ADDRESS="1128:0ff0" TYPE="pre">Second direct 10a0:275f caller family: Item_ReceiveHit&apos;s non-NPC path passes hitter=0x4000 plus packed damage=(damagetype&lt;&lt;8)</COMMENT>
<COMMENT ADDRESS="1128:11da" TYPE="plate">Intrinsic 01E
This is either called from usecode or from an animation (via NPC_FireWeapon)</COMMENT>
@ -8794,6 +8804,8 @@ Flags: 0d00
<COMMENT ADDRESS="1138:0c65" TYPE="pre">limit to 0x18</COMMENT>
<COMMENT ADDRESS="1138:0ee8" TYPE="plate">x,y,z inputs in Run are nowpt, pt3</COMMENT>
<COMMENT ADDRESS="1138:1074" TYPE="pre">sprite 0x426 == 1062, a little sparkly explosion</COMMENT>
<COMMENT ADDRESS="1138:1384" TYPE="end-of-line">Third direct 10a0:275f caller family: SuperSprite_HitAndFinish&apos;s non-NPC collision lane probes Item_GetDamaged with hitter=0x4000 and packed damage=(firetype&lt;&lt;8)</COMMENT>
<COMMENT ADDRESS="1138:1384" TYPE="pre">Third direct 10a0:275f caller family: SuperSprite_HitAndFinish&apos;s non-NPC collision lane probes Item_GetDamaged with hitter=0x4000 and packed damage=(firetype&lt;&lt;8)</COMMENT>
<COMMENT ADDRESS="1138:1565" TYPE="pre">terminate if we&apos;re not in the fast area</COMMENT>
<COMMENT ADDRESS="1138:17ba" TYPE="pre">new x value</COMMENT>
<COMMENT ADDRESS="1138:17d6" TYPE="pre">new y value</COMMENT>
@ -10288,6 +10300,8 @@ Flags: 0d01
LoadOnCall
Impure (Non-shareable)
</COMMENT>
<COMMENT ADDRESS="1478:0488" TYPE="end-of-line">Embedded mission-to-map lookup table used by the debug -warp path in Game_Start. Current recovered word entries: 0,1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,40.</COMMENT>
<COMMENT ADDRESS="1478:0488" TYPE="pre">g_warpMissionToMapTable: executable-side mission-to-map word table used only by the -warp startup path, not by the normal fresh-game start.</COMMENT>
<COMMENT ADDRESS="1478:0542" TYPE="pre">g_fadeProcess3FnPtr</COMMENT>
<COMMENT ADDRESS="1478:06ce" TYPE="pre">g_gumpsFlxFilenamePtr</COMMENT>
<COMMENT ADDRESS="1478:0782" TYPE="pre">s_music.flx</COMMENT>