The need for this was eliminates ages ago, when I remove the
WindowsWrapper.h dependencies from the backends (it should only be
used by core Cave Story code).
This should eliminate any future issues with Windows.h causing
name-collisions.
Storytime: Cucky's original SDL2 port work involved using SDL2's
threading API to emulate the original WinAPI threading.
I can't be assed with that stuff, so I used the same trick Cucky did
for the Wii port, and hooked Organya up to the SDL2 audio callback.
This actually opens up the possibility for perfectly-synchronised
Organya playback. By that I mean, instead of needing a super
low-latency audio callback, I can have the callback synchronise its
audio mixing with Organya itself. I haven't done it yet, I plan to
soon.
Okay so WindowsWrapper.h now just includes Windows.h if it wants
non-portability. This meant I had to split the custom RECT struct
back to the original RECT and unknown nameless struct (one uses
left/right, while the other uses front/back).
Goes toward #74
A few core functions like Flip_SystemTask and GetTrg have a different
number of parameters to the original version of the game, so they cause
the ASM to generate differently.
So I found out that the orignal EXE was compiled with Visual Studio .NET
2003, thanks to its Rich Header. With this compiler, I can create the
exact same assembly code as the EXE.
Using this, I found a bunch of inaccuracies in Flash.cpp, as a small
test. I'll come back to this later, once the rest of the game is
complete, but until then, here's a small taster.