Reported by @hankmorgan in PR #33 review (2026-04-26):
If I load a game that has a thrown object in flight dos Underworld will crash, save loads okay in the port.
Repro
- In port, throw an object (e.g. dagger, rock).
- While the projectile is in flight, save to slot N.
- Boot DOS UW.EXE, Journey Onward, load slot N.
- UW.EXE crashes with error A003.
Hank offered to provide a sample save in the same review thread:
I can provide relevant files for the above if you cannot reproduce.
Suspected area
Projectiles in flight are tracked as object records with a special motion / trajectory state distinct from grounded mobile objects. The port likely serialises this transient state (velocity vector, frame counter, parent attribution) into the LEV.ARK or PLAYER.DAT in a layout DOS UW.EXE rejects with A003.
Acceptance
- A port-saved in-flight-projectile state loads in DOS UW.EXE without A003 (graceful behaviour: projectile lands at next tick, or projectile vanishes, whichever matches DOS chargen-derived semantics).
- The error code A003 is identified in disasm so we know exactly which validation path rejects the save.
- Regression test asserts the relevant byte(s) round-trip across DOS -> port -> DOS.
Notes
This was not addressed in PR #33. Save loads fine in the port itself; the bug is purely DOS-side parser / validator rejection.
Reported by @hankmorgan in PR #33 review (2026-04-26):
Repro
Hank offered to provide a sample save in the same review thread:
Suspected area
Projectiles in flight are tracked as object records with a special motion / trajectory state distinct from grounded mobile objects. The port likely serialises this transient state (velocity vector, frame counter, parent attribution) into the LEV.ARK or PLAYER.DAT in a layout DOS UW.EXE rejects with A003.
Acceptance
Notes
This was not addressed in PR #33. Save loads fine in the port itself; the bug is purely DOS-side parser / validator rejection.