Thread: Any Ideas
View Single Post
Old 04-03-24, 03:54 AM   #8
Johnfb
Commodore
 
Join Date: Mar 2011
Location: Ireland
Posts: 639
Downloads: 292
Uploads: 64
Icon14

Quote:
Originally Posted by Hooston View Post
See this on GWX but not on NYGM, which has shorter messages.
Never delved into SH3 code, but it looks like a buffer overflow.
At some point the game reads in the mission startup text from a file and sticks it in an area of memory. It saves the address of the start of this to use later. This "buffer" is not big enough for GWX, so either the program keeps writing over the next chunk of memory or it correctly stops reading when the buffer end is reached but the coder has forgotten to add a "null" character to signal the end of the string.
There's a slight chance it is caused by a consistent typo in the GWX campaign file, like missing quotation marks, in which case it would be an easy fix.

At some point the game saves the latest save game filename, which happens to be after the mission startup text in memory. This ends with a null character to show the end of the string.

When the game wants to display the startup text it says "output text starting at this address and ending in a null character" so you get the startup text and then whatever is after it until a zero byte is reached - which just happens to be the latest save game fileneme.
It's just luck that this does not cause a crash, but then if it caused a crash it would have been caught during testing. This is the sort of horrible hidden bug that leaps out and bites you on the bum years later.


Unless of course the Allied situation really was un220424...

Amazing post...really well explained thanks 😊 👍

Last line ...lol .. 😆
Johnfb is offline   Reply With Quote