Commit graph

577 commits

Author SHA1 Message Date
Clownacy
f1e6103a46 ...Actually add the SDL_Surface renderer file 2019-07-17 16:35:33 +01:00
Clownacy
44456e4a25 Add an SDL_Surface-based renderer
Ha, my custom software renderer is faster!
2019-07-17 16:09:18 +01:00
Clownacy
f21f17f4c2 Cleanup 2019-07-17 14:13:49 +01:00
Clownacy
36fdb4596d Cleanup and an accuracy improvement 2019-07-16 13:21:21 +01:00
Clownacy
7c12e7817c Use SDL_ALPHA_OPAQUE 2019-07-16 00:37:31 +01:00
Clownacy
81eb438482 Fixes and tweaks 2019-07-16 00:15:20 +01:00
Clownacy
a679373c14 Disable font anti-aliasing when FIX_BUGS is enabled
It causes ugly artifacting around the text
2019-07-15 18:20:24 +00:00
Clownacy
6a4f4e0df3 Added handlers for render target loss/window resize
These only really happen when you use exclusive fullscreen and
alt-tab out. Or, at least, it does on Windows with SDL2 in DirectX
mode.
2019-07-15 17:47:22 +01:00
Clownacy
b84661d88a Move the backend files around a bit 2019-07-15 17:01:42 +01:00
Clownacy
15bfd00d25 Added hardware-accelerated rendering backend
Still need to add the code for surviving render target losses
2019-07-15 16:47:10 +01:00
Clownacy
21cf78b86d Split Draw.cpp into common code and backend code
Should be easy to add the new hardware renderer now
2019-07-15 13:42:49 +01:00
Clownacy
3ef9b67b1d Replaced a lot of Draw.cpp with a software renderer
Also fixed the SDL_Window not being freed. This commit's a bit of a
blob, since I made a bunch of tweaks to Draw.cpp while adding the new
renderer. Don't worry though, I'll add the hardware accelerated code
back again soon. In fact, I've got an idea on how to make it even
faster, while still being able to survive render target losses.

Hopefully this software renderer will come in handy for the Wii U
port: its SDL2 port's hardware acceleration is broken, and the
SDL_Surface API is too slow.
2019-07-15 11:41:40 +01:00
Clownacy
f9de3f8216 Added another bugfix
This was causing MSVC debug builds to raise a warning whenever a save
was loaded.
2019-07-12 13:09:08 +01:00
Clownacy
97acb292bb Made Game.cpp ASM-accurate
Working towards #74.
2019-06-30 03:03:25 +01:00
Clownacy
5167a341aa Made NpChar.cpp ASM-accurate
SetBulletObject has a commented-out if, it seems, and the leftover
braces affected the ASM.
2019-06-30 00:57:19 +01:00
Clownacy
c162d06f96 BossAlmo1.cpp extra accuracy
I forgot, the Linux debug data tells us the exact line number each
variable is declared on.
2019-06-30 00:30:30 +01:00
Clownacy
deb0538d03 Boss.cpp cleanup 2019-06-30 00:20:32 +01:00
Clownacy
a9940c9ca9 ArmsItem.cpp code cleanup and accuracy improvements 2019-06-29 23:29:44 +01:00
Clownacy
2c23de27d5 Made KeyControl.cpp ASM-accurate
Didn't realise this file was so tiny. Anyway, working towards #74.
2019-06-29 21:16:43 +01:00
Clownacy
21d5ba34b0 Shut up some Clang warnings in the Enhanced branch
Once again SDL2 using plain ints everywhere causes issues.
2019-06-27 18:01:55 +00:00
Clownacy
941dec2c7c Add a bugfix for unsafe usage of sprintf
Thanks, Gabe
2019-06-27 17:50:19 +00:00
Clownacy
d1c7cd53df Added a translation for a Japanese variable 2019-06-23 22:55:01 +00:00
Clownacy
19166f80d0 Correct some misdecompiled switchcases 2019-06-21 11:02:20 +00:00
Clownacy
427fe69374 MessageBoxA usage cleanup 2019-06-20 21:17:32 +01:00
Clownacy
546631fad7 Made Profile.cpp ASM-accurate 2019-06-20 21:10:27 +01:00
Clownacy
323e33ed36 Fixes for non-MSVC2003 builds 2019-06-20 20:46:03 +01:00
Clownacy
078dc440c7 Made TextScr.cpp ASM-accurate
Yes! Finally!

Working towards #74
2019-06-20 20:33:47 +01:00
Clownacy
44f142d8e7 Big ugly rework of WindowsWrapper.h
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).
2019-06-20 20:06:55 +01:00
Clownacy
765beff57a In-progress TextScriptProc fixes and accuracy improvements
Need to rework WindowsWrapper.h before I can progress.
2019-06-20 19:13:59 +01:00
Clownacy
3039e3b846 Link to the actual source code for Organya.cpp and Sound.cpp 2019-06-17 17:03:54 +00:00
Clownacy
f9b498c51c
Merge pull request #37 from GabrielRavier/feature/improveOToR
Improve O to R
2019-06-17 15:48:46 +00:00
Gabriel Ravier
a89d97846c
Fixed brace initilizers to not have spaces at the start and end
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 21:22:45 +02:00
Gabriel Ravier
11e25b5aa5
Fixed indentation by using spaces instead of tabs when appropriate
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 20:56:48 +02:00
Gabriel Ravier
00fdea492f
Merge branch 'master' into feature/improveOToR 2019-06-14 20:33:26 +02:00
Gabriel Ravier
4ab849f4ef
Merge branch 'master' into feature/improveNonNpcCharNpcFiles 2019-06-14 20:33:23 +02:00
Clownacy
078da6ccf7 Correct fmod usage 2019-06-14 17:06:42 +01:00
Gabriel Ravier
fd83c08c9c
Added newline at end of NpcHit.cpp
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 17:50:07 +02:00
Gabriel Ravier
16e66971d5
Reformatted Profile.cpp
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 16:54:43 +02:00
Gabriel Ravier
5ccb7dfa93
Reformatted Pixtone.cpp
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 16:52:53 +02:00
Gabriel Ravier
473bd43ca7
Reformatted Organya.cpp
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 16:51:49 +02:00
Gabriel Ravier
3a80d8f4fb
Did initial sweep with regexes
Changed regex to "((//|\;)[^ \t\n]|(for|while|if|while|do|void|int|bool)\((for|while|if|while|do)\ \(.*\)\;|\(\ |\ \)|//\ [a-z]|\ \ )|break;\n[\t]*[^\n\t\}(\/\/ Fallthrough]|[^\t\n]\{[^\n]|[^\n\t]\}[^\n]|\,[^\ ]"

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 16:49:32 +02:00
Gabriel Ravier
e8c7daca35
Reverted capitalization of struct member names
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-14 08:37:49 +02:00
Gabriel Ravier
06e65cad6e
Revamped NpChar, NpcHit and NpcTbl
Also changed regex to "((//|\;)[^
\t\n]|(for|while|if|while|do|void|int|bool)\((for|while|if|while|do)\
\(.*\)\;|\(\ |\ \)|//\ [a-z]|\ \ )|break;\n[\t]*[^\n\t\}(\/\/
Fallthrough]|[^\t\n]\{[^\n]|[^\n\t]\}[^\n]"

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-06-13 20:39:46 +02:00
Clownacy
44094b103e <SDL.h> -> "SDL.h"
The SDL devs recommend this:
https://wiki.libsdl.org/FAQDevelopment#Do_I_.23include_.3CSDL.h.3E_or_.3CSDL.2FSDL.h.3E.3F
2019-06-06 18:51:44 +00:00
Clownacy
c80b593a3f Some #include fixes
Finally figured out how to get include-what-you-use working
2019-06-06 18:44:28 +00:00
Clownacy
0fb147aa0d Change the sound buffer size to a power of 2
Turns out giving SDL2 a non-power-of-2 buffer size crashes it in
Emscripten.
2019-05-29 18:49:09 +00:00
Clownacy
d2b5872c95 Weeded out some bool usage
Cave Story was written in C89. No bools. I've left in Sound.cpp's
though, since that's written in C++98 currently.
2019-05-24 10:07:30 +01:00
Clownacy
5b89a31976 Split bin2h to its own CMake file
Also added warnings to its part of the Makefile
2019-05-23 19:42:52 +01:00
Clownacy
43958d2771 ...For real, this time 2019-05-23 14:28:44 +00:00
Clownacy
a4248b13e2 Fix broken stage centring 2019-05-23 14:15:30 +00:00