Commit graph

1928 commits

Author SHA1 Message Date
Clownacy
d250d0de7d Overhaul bin2h
Now it just outputs big lists of numbers, instead of a proper array.
This allows Resource.cpp to control the name of these arrays, while
also making the resource system in general more transparent.
2020-09-03 22:14:13 +01:00
Clownacy
71199c7693 Merge branch 'accurate' into portable 2020-09-03 21:58:40 +01:00
Clownacy
dce5e215c8 Explain the gamepad button limit 2020-09-03 21:54:10 +01:00
Clownacy
9c63e5994b Document SelStage.cpp a little 2020-09-03 21:52:05 +01:00
Clownacy
aa396092b5 Translate error messages with FIX_BUGS 2020-09-03 21:39:36 +01:00
Clownacy
7cff891452 Remove that FRAMERATE thing 2020-09-03 21:31:49 +01:00
Clownacy
b1090cd8f9 Correct some mistakes that this branch has 2020-09-03 21:29:48 +01:00
Clownacy
a05b802904 Merge branch 'accurate' into portable 2020-09-03 21:11:16 +01:00
Clownacy
0c367cecf7 Add FIX_MAJOR_BUGS option
This one specifically fixes bugs that either invoke undefined
behaviour or cause memory leaks. Essentially, they affect stability.
Bugs that just affect gameplay will remain covered by FIX_BUGS.
2020-09-03 21:05:14 +01:00
Clownacy
e43160825e Add bugfix for the broken Waterway TSC script 2020-09-03 20:35:51 +01:00
Clownacy
987b81c946 Fix other audio backends 2020-09-03 19:59:37 +01:00
Clownacy
7abab0039b Pre-convert the Organya callback timer
Oh no, I used the naughty 'm' word :(
2020-09-03 19:19:55 +01:00
Clownacy
be6f46fabd Refactor audio software mixer
Now the various backends have far less duplicate code, and are part
of a separate backend system specifically for the software mixer.

Now, any modifications to the MixSoundsAndUpdateOrganya function
will apply to all backends, instead of needing to manually be applied
to each one.
2020-09-03 19:19:50 +01:00
Clownacy
ab09dc67eb Emulate the Organya thread pauses
Now there's a 100ms pause between songs.

Currently only the miniaudio backend supports this.
2020-09-03 18:14:52 +01:00
Clownacy
fbcb2f5f56 Optimise the linear-interpolator a little
Doesn't have to do two sets of shifts
2020-09-03 16:01:46 +01:00
Clownacy
b68eb076ca Rename a variable 2020-09-03 15:00:07 +01:00
Clownacy
47543eb382 Another Lanczos optimisation 2020-09-03 14:38:56 +01:00
Clownacy
67ee8b9829 Optimise the Lanczos resampler some more 2020-09-03 14:28:04 +01:00
Clownacy
9f002b6180 Convert Lanczos resampler from double to float
Forgot that C++98 has a float version of `sin`.
2020-09-01 19:57:08 +01:00
Clownacy
9a79041c6c Optimise the Lanczos resampler a little
Apprently floating-point divisions are slower than multiplications
2020-08-31 17:28:35 +01:00
Clownacy
48386d443b Add optional Lanczos filter to the audio mixer
Should be higher-quality than the linear-interpolator, but also much
slower, so it's disabled by default.
2020-08-31 16:07:25 +01:00
Clownacy
39067057c1 Fix some code formatting 2020-08-29 18:10:59 +01:00
Clownacy
71970c1f74 Merge branch 'accurate' into portable 2020-08-29 17:11:28 +01:00
Clownacy
845ee1b96f Don't store subsample offset as long
Only a short is needed.
2020-08-25 02:44:54 +01:00
Clownacy
c8e1e7aa0a Another authentic struct name 2020-08-11 00:24:10 +01:00
Clownacy
e41d4472ec Another authentic struct name 2020-08-11 00:24:10 +01:00
Clownacy
a2ecd75271 Restore an original struct name
This was buried in the Linux port
2020-08-11 00:24:04 +01:00
Clownacy
d12ee0813f Remove some trailing commas 2020-08-05 22:09:05 +01:00
Clownacy
90d57b7d1b More direction macros 2020-08-05 22:06:53 +01:00
Clownacy
4c758bb926 Apply more direction macros 2020-08-05 22:03:51 +01:00
Clownacy
a305151302 Apply some direction macros 2020-08-05 21:47:50 +01:00
Clownacy
a3692d1c40 Add Caret enums 2020-08-05 21:45:59 +01:00
Clownacy
d41b3993f5 Document caret stuff some more 2020-08-05 20:55:50 +01:00
Clownacy
8adf593403 Caret documentation/cleanup 2020-08-05 19:51:06 +01:00
Clownacy
02295489d2 More background documentation 2020-08-05 19:42:18 +01:00
Clownacy
a18be9c450 Document background stuff a little more 2020-08-05 19:30:13 +01:00
Clownacy
b016b22a1e Do some NPC documentation 2020-08-05 16:56:26 +01:00
Clownacy
98c2a8880e Convert NPC 0's rects to decimal 2020-08-05 16:56:26 +01:00
Clownacy
6a1d49d6b1 Fix sound enum typo 2020-08-05 16:56:25 +01:00
Clownacy
ea9952c2d0 Clean-up PixTone code a little
This is still ASM-accurate
2020-08-05 16:56:25 +01:00
Clownacy
6fd6a416cd Fix another out-of-bounds array access
This one involves the Spur.
2020-07-15 16:51:11 +01:00
Clownacy
789d4fb0ea Fix another out-of-bounds array access
This one involves the Spur.
2020-07-15 16:35:05 +01:00
Clownacy
da5d7982c6 Improve SDL2 event handling accuracy
Now the event loop doesn't run constantly when the window isn't
focussed. This should match the original WinAPI code's behaviour.
2020-07-13 17:31:30 +01:00
Clownacy
a392034fd6 Fix input lag in SDL2 backend
If you spam keyboard inputs, they'll eventually lag behind. This was
caused by improperly porting the WinAPI logic to SDL2 and CSE2's
fancy backend-abstraction system.
2020-07-13 00:19:27 +01:00
Clownacy
1582af91cf Replace more float logic with integer-only
I hate floats >:(
2020-07-09 01:09:19 +01:00
Clownacy
c7a3e9c308 Comment-out unused variable 2020-07-08 20:43:56 +01:00
Clownacy
6e486d9226 Er, actually remove those dead includes 2020-07-08 20:00:49 +01:00
Clownacy
ab82f014ae Avoid some float logic
Also shuts up some VS2019 warnings
2020-07-08 19:33:53 +01:00
Clownacy
8b854a0c95 Don't use Windows.h in WindowsWrapper.h
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.
2020-07-08 19:33:52 +01:00
Clownacy
565c79a4ce Fix GLFW3 software renderer in VS2019
GLFW will include these headers for us properly
2020-07-08 19:33:49 +01:00