Clownacy
011cb94f73
More guards
2020-04-18 01:23:25 +01:00
Clownacy
873566a19e
Attempt 100 of trying to fix Wii U audio hangs
...
There's a new bug I've noticed: sometimes, an instrument will just
'disappear', and refuse to ever play again.
This stuff is practically impossible to debug, so I'm just throwing
things at the wall. This time, I'm going to make more use of the
`AXVoiceBegin` and `AXVoiceEnd` functions. I have no idea what
they're meant to do: code I found online uses it inconstently, and
Decaf doesn't have it implemented at all!
Hopefully, all of my problems have just been race conditions caused
by not using these guard functions (assuming that's what they are).
2020-04-18 01:16:36 +01:00
Clownacy
bbfcc48e2a
Update Wii U instructions
2020-04-18 01:01:53 +01:00
Clownacy
f78f6b7105
Split Organya callback data
...
The function pointer only ever needs to be set once, unlike the
timer. This should avoid any scary race-conditions.
2020-04-18 00:54:24 +01:00
Clownacy
1ad6fdf539
Rename mutex
2020-04-17 23:52:00 +01:00
Clownacy
b06e1e1312
Remove old junk
2020-04-17 23:48:40 +01:00
Clownacy
051d12f434
Stop shouldn't rewind the sound
...
According to the DirectSound docs, stop doesn't rewind.
https://docs.microsoft.com/en-us/previous-versions/ms817375%28v%3dmsdn.10%29
2020-04-17 23:47:45 +01:00
Clownacy
5bcc0ec393
New way to allocate Wii U voices
...
The previous method wasn't good enough: we were still maxing-out at
96 (did the Decaf devs misread that as hex? Is that why the
emulator's limit is 150 instead?).
Anyway, this new solution is a little brutish, but I can't think of
anything else that would work: right now, I have the Organya thread
constantly polling a linked-list of the currently-loaded sounds, and
checking if their voices have finished playing or not. If they've
finished, they get freed.
When AudioBackend_PlaySound is called, if checks if the sound's voice
has been freed or not, and reallocates it if it has.
There doesn't seem to be a noticable overhead to this, and it keeps
the number of currently-allocated voices *very* low (from 10 to 20 on
average).
2020-04-17 23:43:17 +01:00
Clownacy
617f7a25d4
Wii U video tweaks and fixes
2020-04-17 23:42:18 +01:00
Clownacy
b123e3743e
Clean-up the weird buggy code
...
I'mma just assume each sound needs their struct preserving for some
reason.
2020-04-17 21:48:34 +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
Clownacy
db14899b3e
Try to fix Wii U audio hang part 2
...
I encountered a hang earlier, so the previous attempt obviously
didn't work.
2020-04-17 18:34:26 +01:00
Clownacy
670f49db77
Optimise Wii U video code a little
2020-04-17 18:07:54 +01:00
Clownacy
76e7a6f857
Revert some suspicious code
...
I'm getting some rare audio hangs. I tried doing some
regression-testing, but it's so random that I'm getting anomalous
results. That said, there were suspicious results around this change
(and also the way `mix_data` is initialised/cleared), so I'm
reverting this for now, and restoring it next time I encounter a
hang.
2020-04-17 16:58:07 +01:00
Clownacy
c2a857d4f5
Flush the screen buffer on Wii U
...
Weird cache stuff I don't know
2020-04-17 15:51:27 +01:00
Clownacy
d025fecf54
Minor cleanup
2020-04-17 15:47:56 +01:00
Clownacy
274de9e0f9
Replace Liberation Mono with DejaVu Sans Mono
...
Looks better at 320x240
2020-04-17 14:18:32 +01:00
Clownacy
93ad3ae7c5
Make font look better at 320x240
...
This restores some vanilla logic, where at 320x240, the font would
use a slightly larger size, in order to not look terrible.
2020-04-17 14:16:49 +01:00
Clownacy
24bcbb8dfd
Upscale 320x240 to 640x480 on the Wii U
...
For performance reasons, I'm going to switch to 320x240 for Wii U
builds.
2020-04-17 14:15:59 +01:00
Clownacy
a177f44b88
Clean up Wii U audio backend
2020-04-17 14:15:23 +01: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
9eacc74ee2
Got music working on Wii U!
2020-04-17 01:47:23 +01:00
Clownacy
edc9299007
Fix the game using too many Wii U voices
...
Now it just allocates channels on-demand, rather than ahead-of-time.
2020-04-16 22:42:33 +01: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
Clownacy
1898633602
Found a name for nameless_flag
!
2020-04-16 15:28:57 +01:00
Clownacy
ff45da6a0e
Mark a static function as static
...
Both the Linux and Mac debug data indicate this is static (they both
prefix static function names with an extra underscore)
2020-04-16 14:45:08 +01:00
Clownacy
8f49276d5e
Note some not-so-authentic variable names
2020-04-16 14:44:53 +01:00
Clownacy
4c910dbee6
Correct variable name
...
I must have guessed this one, and not left a comment saying it was
fake... dammit.
2020-04-16 13:52:00 +01:00
Clownacy
8a9f70875c
More authentic variable/function names
2020-04-16 13:48:36 +01:00
Clownacy
47740fe88d
Note some weird code
2020-04-16 13:47:17 +01:00
Clownacy
b83b7f25fc
Found the real name for DummiedOutLogFunction..?
2020-04-16 13:47:17 +01:00
Clownacy
b8c0581ee4
Found the original Config.cpp variable names
...
Thank you, Mac port...
2020-04-16 13:47:17 +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
Clownacy
6e3d90d3d1
Merge pull request #112 from GabrielRavier/accurateFixCrossBuild
...
Fix build for mingw cross-compilation
2020-04-15 23:31:07 +01: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
6bd4e89f9d
Update readme
2020-04-15 22:12:58 +01:00
Clownacy
c38a8aa857
Read files from SD/CSE2-portable
on Wii U
2020-04-15 22:12:41 +01:00
Clownacy
763e4a9986
Vertically center screen on Wii U
2020-04-15 22:10:40 +01:00
Clownacy
a983417771
Update Wii U backend
2020-04-15 22:03:59 +01:00
Clownacy
be0c61018b
Update SDL2 backend
2020-04-15 22:01:27 +01:00
Clownacy
8524d1e349
Change software renderer backend API
2020-04-15 21:59:23 +01:00
Clownacy
7ca33677f8
Remove some old junk
2020-04-15 21:52:13 +01:00
Clownacy
f2a82d09bd
Remove unneeded #include
2020-04-15 20:37:10 +01:00
Clownacy
d7733004d0
Correct a BOOL
2020-04-15 20:32:49 +01:00
Clownacy
0653c20ba4
Merge branch 'accurate' into portable
2020-04-15 20:03:59 +01:00
Clownacy
624adbdab8
Remove junk widescreen code
...
This doesn't belong in here. Also, this code was overhauled in the
enhanced branch, so this version is useless.
2020-04-15 19:59:13 +01:00
Clownacy
c93ed6a014
Comment-out unused #include
2020-04-15 18:42:02 +01:00