Hey All. Figured I'd give a quick update on this and what's been done in the last few weeks.
- Made a lot of under the hood improvements.
- With all the string compares used for this the engine was using a lot of CPU usage. (Only 2% but still that's a lot considering how basic the app is) So i've created a method that only compares strings when a new value is detected in the memory, this brought cpu usage down to 0.2% so much better.
- Fixed Physics simulation... Not really reliant but the engine does have that feature and I had an annoying glitch where physics and collision would behave differently depending on the frame-rate. I finally corrected that.
- Tested to see if I could inject translations into the dialog. Sorry to say
EmuMusicFan but the way that the game works it has each line of dialog in it's own unique section of memory then a function moves it to be converted to an image to be displayed. I cannot read it until after that move which means it is already called to draw before I can replace it. I could get it before then but I need to search and map as many memory blocks as there are lines of dialog in the game and it does seem worth it. Alternatively you can make edits to the dialog via WCMissionEditor so the memory doesn't need to be mapped but I tested this with German and Chinese characters and it caused broken graphics and in some cases crashes so I don't think the game can support other languages.
- Messed around with Super Wing Commander Audio files (Thanks
GuybrushSF) and played around with getting them into the game. Was easy enough to swap and I might make an option to toggle between SegaCD and 3DO versions. They are quite low quality and don't sound that great with the background music but I'm gonna keep this in mind as I so forward and see what I can do.
- Completed Enyo, McAuliffe and partially complete of Gateway. Had some issues where if a Wingman is dead during a briefing then the player would say the exact same line. Because the strings would be the same I needed to have a way to tell them apart. For now I simply changed the Wingman's dialog to have an extra period but I'd like to find a flag for if Wingman is alive or not and use that.
That's it for now. Stay save everyone and I'll try to keep you all posted every now and then. Cheers!