Commit graph

995 commits

Author SHA1 Message Date
Clownacy
a81fe10fc7 Move Visual Studio 2003 files to their own folder
We don't want these conflicting with the upcoming Visual Studio 2017
files.
2019-09-10 00:41:32 +01:00
Clownacy
f8c2e17655 Clean up Map.cpp 2019-09-09 23:46:35 +01:00
Clownacy
c368734a5c Fix the resource file in MinGW-w64
I hate all these headers
2019-09-09 23:43:48 +01:00
Clownacy
c5a4a3cb4c Future-proof the Windows resource file
Now it works with newer versions of Visual Studio
2019-09-06 21:04:40 +01:00
Clownacy
0532e2afa2 Shut up a warning 2019-09-06 20:08:07 +01:00
Clownacy
8114f88dd1 Shut up some build warnings 2019-09-06 15:21:43 +00:00
Clownacy
b6fccd509d Add a missing comment translation 2019-09-06 14:47:13 +00:00
Clownacy
9aa97205b7
Get Peter Mackay's name right 2019-09-05 23:35:59 +00:00
Clownacy
4d42842742
More readme work 2019-09-05 22:00:29 +00:00
Clownacy
d80adf9cc8 Comment on a bug in MakePixToneObject 2019-09-05 21:41:40 +00:00
Clownacy
7300157f54
Convert the Makefile setting list to a table 2019-09-05 19:48:27 +00:00
Clownacy
14442eaaba
Add some background information to the readme
Also removed the link to the woefully-neglected 'Bug Fixes.txt'.
2019-09-05 19:37:44 +00:00
Clownacy
7f7553bef2 An accuracy improvement in Triangle.cpp
This one's weird: it doesn't affect the actual generation of ASM in
the function, but rather it affects the ASM of sinf and cosf.

You see, sinf and cosf are static - they're built right into the EXE.
Since the previous code used cosf and sinf, they were embedded into
the EXE, and InitTriangleTable would call them directly.

However, this isn't what the original EXE does: instead,
InitTriangleTable calls an intermediary function, that in turn calls
the real cosf and sinf. Turns out this strange code generation is
caused by calling cos and sin instead of cosf and sinf, but still
using float parameters.
2019-09-05 17:04:07 +01:00
Clownacy
af7d8222a8 The EXE now has its functions in the exact same order as the original
This is crazy. So, MSVC2003 always links the source files in
alphabetical order, but for some reason the original EXE ends with
the NPC and boss files.

Cucky figured out why: Pixel used folders in his Visual Studio
project - one for NPC code, and one for boss code.

With this, the built EXE now has its functions in the exact same
order as the original. Hell yeah. I guess now we just have to figure
out how to get the variables in the correct order.
2019-09-05 16:42:16 +01:00
Clownacy
a394f7a611 Update the readme 2019-09-05 16:01:49 +01:00
Clownacy
3bac7674f4 Correct some WinAPI usage
All the broken stuff just happened to work on 32-bit, but would cause
MinGW-w64 to explode if you tried building as 64-bit.

I guess thanks to Microsoft keeping the basic C int types the same
size in 64-bit as they were in 32-bit, this branch compiles as 64-bit
just fine, despite Cave Story's many int-size dependencies.
2019-09-05 15:03:34 +01:00
Clownacy
5dd3a5dd2d Add the typos back to the stage table
These were corrected in an earlier commit because they affect
portability.
2019-09-05 14:56:03 +01:00
Clownacy
c6f074c2b9 Add cursors and icons to the MSVC2003 project 2019-09-05 14:14:57 +01:00
Clownacy
b24d212e82 Convert resource file to forward-slash path separators
MSVC2003 seems fine with them, and doesn't seem to automatically
revert them either.
2019-09-05 14:08:03 +01:00
Clownacy
42e1b36fd8 Restore the Windows-style path separators 2019-09-05 14:05:27 +01:00
Clownacy
e3eb16af0a Disable MSVC2003 assembly output
I can't remember the last time I even used it.
2019-09-05 13:48:51 +01:00
Clownacy
27bc6d1abe Clean up the MSVC2003 project a little 2019-09-05 13:46:47 +01:00
Clownacy
323b556b27 Move the MSVC2003 stuff to the main folder 2019-09-05 13:42:33 +01:00
Clownacy
69dd308cf8 Remove the MSVC2003 builds of SDL2 and Freetype
Useless, now.
2019-09-05 12:55:57 +00:00
Clownacy
c7c5077103 Remove the leftover CMakeLists.txt file
I might bring this back at some point. Depends.
2019-09-05 12:46:39 +00:00
Clownacy
afb3e2f83e Removed the DoConfig folder
It's just a clone. A proper decompilation will be added some other
time.
2019-09-05 12:45:11 +00:00
Clownacy
8f9125cf09 Remove the 'bin2h' folder
Resources are compiled with other tools in this branch
2019-09-05 12:44:16 +00:00
Clownacy
10214f8f45 Remove the 'external' folder
This branch doesn't have any dependencies outside of what Windows
provides.
2019-09-05 12:43:20 +00:00
Clownacy
990c0d37ac Remove unneeded resource files 2019-09-04 14:59:45 +00:00
Clownacy
93029e8e2c Fix incorrectly-ordered #include 2019-09-04 14:13:51 +00:00
Clownacy
3a40e9eb36 Add .exe file extensions to the Makefile
32-bit MinGW-w64 has this stupid thing where the Makefile can't
detect that executable depedencies may end with '.exe', causing it to
regenerate them every time it's ran.
2019-09-04 14:01:51 +00:00
Clownacy
7a5eb3993c Remove some FIX_BUGS things that aren't actually bugs
Code cleanup isn't within the scope of the project.
2019-09-04 13:57:22 +00:00
Clownacy
dcf9921481 Move SystemTask from WindowsWrapper.h to Main.h 2019-09-04 02:23:49 +01:00
Clownacy
4e50046d4b Remove WINDOWS and NONPORTABLE
Now that the portable stuff gets its own branch, these are unneeded
2019-09-04 02:14:15 +01:00
Clownacy
44f3b15348 Move the resource script to where it used to be 2019-09-04 01:47:51 +01:00
Clownacy
987ecd5340 Apply a missing constant in Organya 2019-09-04 01:41:15 +01:00
Clownacy
8f1bc269f0 I might have found out why Sound.cpp uses DSBUFFERDESC1 2019-09-03 00:34:47 +01:00
Clownacy
09b188ac29 Add a bugfix for a bizarre function call 2019-09-03 00:17:42 +01:00
Clownacy
bc262bd5e2 Explain some Shift-JIS 2019-09-02 20:28:41 +01:00
Clownacy
4b0584b5b8 Rename 'resources.o' to 'windows_resources.o' 2019-09-02 20:24:34 +01:00
Clownacy
4dadefc7d4 Add a missing NULL 2019-09-02 20:02:25 +01:00
Clownacy
14f4d5d7a6 Fix Makefile when WINDRES is not defined 2019-09-02 20:01:42 +01:00
Clownacy
023188a1b3 Makefile fixes
I really need to test thing before I commit them.

The library linkage things are because MinGW-w64 on Linux is
case-sensitive.

Unfortunately, Linux windres seems to have a problem with
Windows-style directory separators, so if you try building on Linux,
you'll have to convert CSE2.rc to use forward-slashes. I'd make a
commit that does this, but I'm pretty sure MSVC2003 will just revert
it automatically.
2019-09-02 15:37:11 +00:00
Clownacy
46c59b9389 Use -ggdb3
More debug data than -ggdb
2019-09-02 02:12:25 +01:00
Clownacy
8a440e6fdf Update readme 2019-09-02 02:11:21 +01:00
Clownacy
b261616597 Added MinGW-w64 support 2019-09-02 02:08:29 +01:00
Clownacy
35344c5f4f Fixes
What is it with Pixel's official code, and relying on non-standard
stuff? Even his PxTone library had portability issues.
2019-09-02 02:02:25 +01:00
Clownacy
2a70cbe89a Shut up a warning
The ASM is unaffected
2019-09-01 23:42:28 +01:00
Clownacy
d35c9cd09e Deobfuscate WinMain, and make some accuracy improvements 2019-09-01 23:35:41 +01:00
Clownacy
46b48510a8 Remove File.cpp 2019-09-01 20:39:26 +01:00