Commit graph

221 commits

Author SHA1 Message Date
Cameron Cawley
44544a65d2 RISC OS port 2020-10-20 17:33:36 +01:00
Cameron Cawley
131a8decc0 Update SDL 1.2 backend to reflect recent changes 2020-10-20 14:22:31 +01:00
Cameron Cawley
5328426b4b Support using the OpenGL3 renderer with SDL 1.2 2020-10-20 13:44:23 +01:00
Cameron Cawley
9b81f45381 Add an SDL 1.2 audio backend 2020-10-20 13:44:23 +01:00
Cameron Cawley
72a5f36654 Always use the first available joystick with SDL 1.2 2020-10-20 13:43:17 +01:00
Cameron Cawley
cf8789f887 Initial SDL 1.2 backend 2020-10-20 13:43:17 +01:00
Clownacy
0d7ad3358b Make some filenames more consistent 2020-10-14 23:22:16 +01:00
Clownacy
d391ab77f9 Add a hardware-accelerated 3DS audio backend
Hell yes
2020-10-14 23:18:43 +01:00
Clownacy
28ea9054e7 Remove the dummied-out Wii U controller backend 2020-10-14 20:32:38 +01:00
Clownacy
6e53250a20 Update CMake options 2020-10-14 20:31:16 +01:00
Clownacy
65aac0bb21 Convert the 3DS renderer to Citro2D
Not finished yet - there's no glyph support, and for some reason the
level tileset isn't reloading properly
2020-10-13 18:56:07 +01:00
Clownacy
82630cedb7 Added unfinished 3DS hardware renderer
I'm commiting what I have now because I'm thinking of switching to
Citro2D instead of Citro3D.
2020-10-13 13:22:02 +01:00
Clownacy
75a31005d1 Add basic 3DS audio support
It's using the software mixer for now. I might be able to make it
hardware-accelerated in the future.
2020-10-11 14:27:39 +01:00
Clownacy
f5b3b2e0d0 Add a basic 3DS port
Was a lot easier than I expected. The software renderer is such a
godsend for quick-and-dirty ports.

Oddly enough, even on an old3DS, this actually almost runs at full
speed (hits around 40FPS in Mimiga Village).

There's a lot of work left to do before this is actually useable:
* There's no audio
* You can't save
* A proper hardware-accelerated renderer is needed
2020-10-11 00:09:22 +01:00
Clownacy
3a00286890 Fix SDL2 version check
SDL2 didn't start reporting its version until recently, so this check
is pointless.
2020-10-05 01:48:46 +01:00
Clownacy
51e6cb5a6c Convert cursors and icon to PNG
No point using BMP, since they're way bigger, and they're not
required for authenticity, since the original files were .cur and
.ico files. At some point, I'd like to support those formats, so this
branch can use the original files.
2020-09-27 17:16:58 +01:00
Clownacy
c2bc6c5ec2 Avoid DPI scaling on Windows
Causes ugly blurring. The window can be resized manually if it's too
small.
2020-09-26 23:17:55 +01:00
Clownacy
9973dddbbd Restore the FreeType code
Now you can select either the FreeType fonts or the pre-rendered
fonts with CMake's 'FREETYPE_FONTS' option.
2020-09-17 15:02:42 +01:00
Clownacy
f1a85d4d2c Fix Wii U compilation 2020-09-08 12:55:19 +01:00
Clownacy
633ac64641 Go back to C++98
Now that `cute_spritebatch.h` is gone, there's only one other bit of
C++11 in the project that I can think of.
2020-09-08 03:24:55 +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
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
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
808a437ec2 Fix dependency on libbrotlidec.dll
FreeType must have added a new dependency in 2.10.2
2020-07-13 20:22:04 +01:00
Clownacy
990390adbd Fix CMake error when LTO is enabled 2020-06-29 18:40:17 +01:00
Clownacy
2e8f4cf72e
Merge pull request #117 from GabrielRavier/portableAddOpenGLPolicy
CMakeLists: Fix CMP0072 warning
2020-05-08 18:12:47 +01:00
Clownacy
5596c33b38 Fix stuff
Looks like the Null backend's been broken for a while though
2020-05-06 23:10:40 +01:00
Clownacy
dacd34072a Fix everything after the last commit 2020-05-06 22:52:11 +01:00
Gabriel Ravier
bdbc2475c6 CMakeLists: Add setting of CMP0072 to normal CMakeLists, too
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-05-03 02:21:16 +02:00
Gabriel Ravier
277a0b8e73 CMakeLists: Add minimum version for SDL2
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-05-01 00:19:12 +02:00
Clownacy
99ed3ead55
Merge pull request #115 from GabrielRavier/portableAddCMake3_10Support
Add support for CMake 3.8 in portable
2020-04-27 18:41:34 +01:00
Clownacy
8945ca8275 Remove old Wii U window backend
Made redundant by hardware-accelerated one.
2020-04-23 21:06:36 +01:00
Clownacy
f55450d141 Rename WiiU.cpp to WiiU-Hardware.cpp 2020-04-21 14:27:15 +01:00
Clownacy
5cc1d5ac01 Update CMake options and readme 2020-04-21 14:26:06 +01:00
Clownacy
8377f011cf Add in-progress hardware Wii U renderer
*Very* incomplete. Right now, it can render textures and perform
colour-fills to the screen.
2020-04-21 00:59:12 +01:00
Clownacy
bcfcf2c017 Rename 'BUILD_DOCONFIG' to just 'DOCONFIG' 2020-04-20 12:50:53 +01:00
Clownacy
07ee648181 Add Wii U software audio mixer
The hardware-accelerated one is suffering from a bizarre-ass bug that
I can't fix for the life of me.
2020-04-19 19:03:00 +01:00
Clownacy
9e9b86c6e9 Add new Wii U window backend
This uses basic hardware-acceleration to bounce the software-rendered
frame to both the gamepad *and* the TV!

The previous method only supported the gamepad, suffered from V-tear,
and used slightly more CPU (my test with the end of Egg Corridor ran
at 52FPS, while this new method runs at 55FPS).
2020-04-19 13:34:45 +01:00
Gabriel Ravier
8f4ef85cf8 CMakeLists: Add CMake 3.8 support
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-17 19:48:12 +02:00
Gabriel Ravier
e05fef85fa CMakeLists: Forgot I wasn't in Vim
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-17 12:22:59 +02:00
Gabriel Ravier
4b10fc28b4 CMakeLists: Add CMake 3.5.1 support
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-17 12:22:36 +02:00
Clownacy
a7ebdb75e5 Added unfinished Wii U audio backend
Currently doesn't produce sound unless you stop Organya from calling
AudioBackend_CreateSound, because it exhausts the Wii U's 150-sound
pool before the SFX get any of them.
2020-04-16 22:19:00 +01:00
Gabriel Ravier
99d4a6fbd4 CMakeLists: Added support for CMake 3.10.2
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-16 11:20:53 +02:00
Gabriel Ravier
90476c3a3e CMakeLists: Change minimum CMake version from 3.12 to 3.10.2
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-16 10:25:48 +02:00
Gabriel Ravier
181ecc3ec2 CMakeLists: Reverted random comment change from 593315eb
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-16 00:29:43 +02:00
Gabriel Ravier
593315eb53 CMakeLists: Made build work for cross-compile with mingw
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-04-16 00:11:03 +02:00
Clownacy
6d53668bed Add Wii U platform backend
With this backend, CSE2 can run on the Wii U.

It's not ideal - it doesn't have its own renderer yet, so it just
uses the software renderer, and it only displays on the gamepad,
because drawing to the TV as well makes the game lag.

Also there's no sound.

Also the lack of input rebinding is annoying.
2020-04-14 00:31:13 +01:00
Clownacy
db0b2d0293 Add option to disable DoConfig
Needed for console ports
2020-04-13 19:10:58 +01:00
Clownacy
f4f85f1f9d Add Null platform backend
Also does absolute nothing.

The point of these things is so it's easier to test out new ports.
For example, with the Null backends and the software renderer, we
don't need to write any code to build for other platforms.

In addition, by having no platform-dependant code, this can be used
to trace crashes. For example, I was having crashes on the Wii U,
despite there being no Wii U-specific code at all - the cause turned
out to be that the executable wasn't stripped, and it had nothing to
do with the code at all.
2020-04-13 18:54:34 +01:00