|View Issue Details [ Jump to Notes ]||[ Issue History ] [ Print ]|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006078||WHDLoad||[All Projects] General||public||2023-03-11 22:15||2023-03-17 00:03|
|Assigned To||Wepl||Project Info||HD-Installer for OS-Killer|
|Target Version||18.9||Fixed in Version||18.9beta|
|Summary||0006078: resload_SaveFileOffset causes file corruption if NOWRITECACHE used|
|Description||While looking at an old patch for Chuck Yeager AFT 2.0, I noticed that the disk image becomes corrupted when the game/slave tries to save data using resload_SaveFileOffset, if NOWRITECACHE is enabled.|
If write cache is enabled, the data saves just fine when WHDLoad exits. The issue seems to be with swapping to OS to do an immediate save.
On further investigation, the issue affects all WHDLoad versions from 18.4 onwards - 18.3 does NOT exhibit this issue (nor does 18.0 which I also tested).
The data stored seems to be mostly random garbage, although it sometimes has interesting results such as the attached screenshot - the WHDLoad filenames present are from LZX that I had just run to extract an older version of WHDLoad as part of my investigation, which may mean the memory being saved to disk is being overwritten by the OS restore?
|Steps To Reproduce||1. Load Chuck Yeager AFT 2.0 install, with NOWRITECACHE enabled|
2. In game, open menu with ESC, select Missions -> Demo Flight
3. Wait for OS swaps to save to disk.
4. Exit, and load Disk.1 into a hex editor
5. Locate offset $DAA00 (where game saves data) - notice the random garbage that has replaced the data that should be there.
|Tags||No tags attached.|
|KickROM||39 - Kick 3.0|