Commit graph

2245 commits

Author SHA1 Message Date
刘皓
f00cfdbcf5
Rework the patches for Ruby WASI memory leaks 2025-04-20 11:56:50 -04:00
刘皓
6c83fbe180
Implement UTF-8 parsing for Bitmap.draw_text/.text_size in libretro builds 2025-04-19 23:37:39 -04:00
刘皓
ae0a7a7f87
Implement text shadow and outline in libretro builds 2025-04-19 11:53:53 -04:00
刘皓
ced3e697bd
Fix Graphics.fadeout/.fadein causing screen flashing in libretro builds 2025-04-18 11:54:23 -04:00
刘皓
996e47ed81
Fix geometry calculation in core.cpp 2025-04-18 10:42:30 -04:00
刘皓
56056914d7
Enable subimage fix by default when using OpenGL ES in libretro builds 2025-04-17 22:08:06 -04:00
刘皓
dafcb15ea5
Add enough bindings in libretro builds to play Crysalis 2025-04-17 14:17:17 -04:00
刘皓
e1c0e62aed
Fix Font.default_size binding in libretro builds 2025-04-17 11:34:42 -04:00
刘皓
35ffaff26e
Add bindings for snap_to_bitmap in libretro builds 2025-04-17 00:00:03 -04:00
刘皓
726b7f77f8
Fix bugs in VX/VXA input and window bindings in libretro builds 2025-04-16 23:42:52 -04:00
刘皓
b3976bf61e
Fix several bugs and missing bindings in libretro builds 2025-04-16 21:57:13 -04:00
刘皓
5a5fcd26c5
Delete copy constructor for stack_frame_guard and stack_frame
The copy constructors are causing problems when the `fiber.stack` vector
gets reallocated when its capacity is full, since when vectors are
reallocated, the elements are moved (or copied if there's no usable move
constructor) to the reallocated memory and then the original elements
are destroyed.

This premature calling of destructors leads to double-free and
use-after-free errors.

I fixed it by deleting the copy constructors and explicitly defining
move constructors.
2025-04-16 21:39:04 -04:00
刘皓
8e9e7700f0
Fix stack pointer corruption in binding-base.h 2025-04-16 19:21:48 -04:00
刘皓
3ace4ad6ae
Merge branch 'misc-fixes' into libretro 2025-04-15 23:25:55 -04:00
刘皓
8bae6e65db
Merge branch 'dev' into misc-fixes 2025-04-15 23:16:06 -04:00
Splendide Imaginarius
8243ee53e9
Merge pull request #242 from Splendide-Imaginarius/mkxp-z-matrix
Some checks failed
Automatic Build / Ubuntu 22.04 x86_64 (push) Failing after 3s
Automatic Build / Ubuntu 22.04 arm64 (push) Failing after 2s
Automatic Build / Ubuntu 22.04 armv6 (push) Failing after 2s
Automatic Build / Ubuntu 22.04 armv7 (push) Failing after 2s
Automatic Build / Ubuntu 22.04 armv7-neon (push) Failing after 2s
Automatic Build / Ubuntu 22.04 power8le (push) Failing after 2s
Automatic Build / Ubuntu 22.04 power9le (push) Failing after 2s
Automatic Build / Ubuntu 22.04 riscv64 (push) Failing after 2s
Automatic Build / Ubuntu 22.04 s390x (push) Failing after 3s
Automatic Build / Windows (push) Has been cancelled
Automatic Build / macOS (push) Has been cancelled
README: Link to Matrix space
2025-04-16 01:58:24 +00:00
Splendide Imaginarius
8f3fbd972d README: Link to Matrix space
Fixes https://github.com/mkxp-z/mkxp-z/issues/85
2025-04-16 01:16:26 +00:00
刘皓
8277390e13
Move embedtool.cpp into tools directory 2025-04-15 12:20:22 -04:00
刘皓
c7f35c96c9
Make sandbox-bindgen allocate varargs buffers on the stack
Not sure why, but this fixes crashes when calling variadic functions in
the Ruby API in libretro builds when Ruby is built without `-DNDEBUG`.
Maybe the previous way of calling varargs functions was undefined
behaviour somehow.
2025-04-14 21:04:14 -04:00
刘皓
911cfc29f5
Fix sandbox-bindgen.rb not generating bindings for functions that take no arguments 2025-04-13 22:48:58 -04:00
刘皓
dae17511aa
Rescue all Ruby errors in libretro builds instead of only StandardErrors
`rb_rescue` only catches `StandardError`s, which doesn't include things
like Ruby syntax errors that we'd like to catch. We need to explicitly
use `rb_rescue2` to catch `Exception` in order to catch everything.
2025-04-13 22:18:41 -04:00
刘皓
06819fb9a9
Start implementing VX/VX Ace bindings in libretro builds 2025-04-13 17:30:50 -04:00
刘皓
539dbb3a84
Add SDL_IntersectRect implementation for libretro builds 2025-04-13 12:41:25 -04:00
刘皓
7a01d1cc56
Fix libretro compilation errors caused by the config-reading implementation 2025-04-12 17:09:41 -04:00
刘皓
07a03be7df
Use libiconv instead of the system iconv in libretro builds 2025-04-12 16:40:50 -04:00
刘皓
8c16bc0092
Implement config loading in libretro builds 2025-04-11 23:12:05 -04:00
刘皓
c5af94c25a
Merge branch 'misc-fixes' into libretro 2025-04-11 12:47:05 -04:00
刘皓
3625ab9989
Merge branch 'dev' into misc-fixes 2025-04-11 12:46:48 -04:00
Splendide Imaginarius
737aed0330
Merge pull request #239 from white-axe/vorbis
Use CMake instead of Autotools for building Vorbis
2025-04-11 05:29:45 +00:00
刘皓
2c3c560af2
Add uchardet to libretro builds 2025-04-10 23:42:44 -04:00
刘皓
299650159f
Implement changing the frame rate in libretro builds 2025-04-10 16:51:25 -04:00
刘皓
35455e17dc
Apply patches from https://github.com/mkxp-z/ruby in libretro builds 2025-04-10 14:00:32 -04:00
刘皓
ae19c0e42e
Reconcile the standalone and libretro build systems 2025-04-09 23:52:12 -04:00
刘皓
ecd8e50e9e
Upgrade OpenAL Soft from 1.23.1 to 1.24.2 again in libretro builds
I don't know why the Wii U build fails with older versions of OpenAL
Soft. There's nothing we can do here except use the newer OpenAL Soft
versions.
2025-04-09 17:22:13 -04:00
刘皓
8c7786da2b
Change openal-soft-int32.patch to also apply to devkitPPC 2025-04-08 23:36:42 -04:00
刘皓
01a5875fd3
Improve detection of aligned memory allocation APIs in libretro builds 2025-04-08 17:32:19 -04:00
刘皓
495d00d5ed
Fix libretro compilation errors caused by the previous commit 2025-04-08 15:20:13 -04:00
刘皓
74f4c0e714
Downgrade OpenAL Soft from 1.24.2 to 1.23.1 in libretro builds
OpenAL Soft 1.24 introduces a lot of code that doesn't work well with
the PlayStation 3 homebrew toolchain, and also the old version of the
Wii U homebrew toolchain currently used by the libretro buildbot.
Instead of maintaining a bunch of patches to get 1.24 to work on these
toolchains, I think it'd be easier to just use 1.23.
2025-04-08 14:27:20 -04:00
刘皓
0bd07c8dc8
Disable building the FluidSynth executable in libretro builds 2025-04-08 01:15:33 -04:00
刘皓
192300dbe9
Allow FluidSynth to build for libretro targets with no threading support 2025-04-08 00:27:32 -04:00
刘皓
89ffd49acf
Fix several FluidSynth compilation errors in libretro builds 2025-04-07 22:16:00 -04:00
刘皓
db7853d02d
Use fluidsynth-sans-glib instead of fluidlite in libretro builds
FluidLite plays one of the tracks in the intro sequence of KNight-Blade
incorrectly.
2025-04-07 21:24:27 -04:00
刘皓
45565bf4db
Fix code formatting in meWatchProc 2025-04-07 20:08:43 -04:00
刘皓
85f112cab0
Fix compilation error in audiostream.cpp in standalone builds 2025-04-07 20:05:41 -04:00
刘皓
8fa20c660a
Implement audio fading in libretro builds 2025-04-07 14:33:50 -04:00
刘皓
9f3329e1cb
Implement more of the audio bindings for libretro builds 2025-04-06 22:38:10 -04:00
刘皓
4d742228a8
Fix BGS and ME cutting off after about a second in libretro builds 2025-04-06 21:48:49 -04:00
刘皓
4df253e0d1
Use latest available OpenGL version in libretro builds 2025-04-06 14:43:10 -04:00
刘皓
6bbe58378d
Don't normalize game path in libretro builds
Reverts commit d6ede8bcc6 and changes the
game path parser in libretro builds to not normalize the game path as it
causes problems on consoles with weird path formats.
2025-04-06 12:11:23 -04:00
刘皓
b1f1fb7571
Make Graphics.transition a no-op in libretro builds when not frozen 2025-04-05 21:37:27 -04:00