Commit graph

59 commits

Author SHA1 Message Date
Wayward Heart
a73f9ccc1f Prevent memory leaks from rb_raise
rb_raise calls longjmp, which bypasses C++ destructors, and also keeps the error for catch blocks from being unallocated if passed by reference, which we do for exceptions.

Some of the calls I left can still jump out of try blocks, which you're not supposed to do, but there shouldn't be any objects with destructors initialized at those points so it's probably fine.
2024-08-02 09:26:51 -05:00
Struma
950e62dff1 make reloads after using System.un/mount optional
Also, use rb_bool_arg more often.
2022-01-20 19:50:46 -05:00
Struma
95e17244fd Remove Windows API emulation 2021-06-08 19:02:15 -04:00
Struma
fdb86f2ede Do not use GVL on possibly time-consuming functions 2021-06-02 08:42:32 -04:00
Struma
84c4f97c6c Add more detailed platform detection 2021-05-23 21:40:48 -04:00
Struma
f583683609 Satisfy hardened runtime dyld path reqs in Win32API 2021-04-15 23:59:27 -04:00
Struma
db919e9f29 Make sure all Ruby strings are created as UTF-8 2021-03-02 03:26:51 -05:00
Struma
92f92dc480 lParam size should be architecture dependent 2021-01-05 01:31:27 -05:00
Struma
19f04599b7 Revert "Detect DLL architecture at runtime"
This reverts commit 3106df636a.
2021-01-01 00:26:37 -05:00
Struma
1785d7c2dd Detect DLL architecture at runtime 2021-01-01 00:08:28 -05:00
Struma
8f78a4cf17 Fix Windows build errors 2020-12-31 19:59:53 -05:00
Struma
69514de7c6 Attept 64-bit MiniFFI on Windows 2020-12-31 16:58:47 -05:00
Struma
7db1c1219e Prefix mkxp-z preprocessor definitions with MKXPZ_ 2020-12-31 14:50:07 -05:00
Struma
bd549a65ad Support building with Ruby 1.9 2020-11-15 18:47:21 -05:00
Struma
c08cd8359e Raise max FFI args to 32 (for Windows) 2020-04-23 06:10:09 -04:00
Struma
5e001c79c5 rename fake_api easypoke
Really the only reason it even exists at this point is
Pokemon Essentials, so I might as well stick all the dumb Essentials
fixes together
2020-04-23 02:19:24 -04:00
Struma
21f75f84aa Use native SetWindowLong+RegisterHotKey on Windows 2020-04-16 06:40:09 -04:00
Struma
6b0ffa069f rewrite Windows FFI asm 2020-04-14 06:48:33 -04:00
Struma
5cccbc22df movnz should be cmovnz 2020-04-13 04:12:14 -04:00
Struma
5afa2ee527 actually require cxx compiler to be clang 2020-04-13 04:07:32 -04:00
Struma
13bd24a003 woops fix 2020-04-13 04:03:43 -04:00
Struma
d3a16e88a7 Restore stack pointer after FFI calls (and pray) 2020-04-13 03:59:07 -04:00
Struma
bc7709fb53 Implement SteamUserStatsLite 2020-02-28 03:23:16 -05:00
Struma
fdaa00fb71 Restrict integer arguments to 32 bits
When built as 64-bit, use the 'i' and 'I' arguments for MiniFFI/Win32API
to specifically refer to a 32-bit integer.
'l', 'L', 'n' and 'N' continue to refer to the `long` sizes.
2020-02-26 18:47:46 -05:00
Struma
94e063c6c0 OLD_RUBY -> RAPI_MAJOR/RAPI_MINOR/RAPI_TEENY/RAPI_FULL 2020-02-26 12:44:37 -05:00
Struma
80f2fb3677 Fix Win32API on Windows (screw Windows) 2020-02-23 02:09:55 -05:00
Inori
faef84e1ae always alias MiniFFI class as Win32API 2019-12-21 04:53:14 -05:00
Inori
c07a24821d Use pkg-config with Ruby 1.8 2019-12-17 06:22:01 -05:00
Inori
fa8f9915dd Always use same typedef for MINIFFI_FUNC 2019-12-17 02:27:55 -05:00
Inori
392fe91fb5 rb_get_args is annoying 2019-09-21 20:19:34 -04:00
Inori
3b71c1f501 Replace MiniFFI allocation function with correct one 2019-09-15 07:56:30 -04:00
Inori
a102b875b4 use MiniFFI in Ruby >1.8 2019-09-14 03:03:41 -04:00
Inori
4a98056f19 Add fake-api GetUserName 2019-09-06 16:51:02 -04:00
Inori
8876d58275 Use MKXP_SetWindowLong for Windows 2019-08-27 10:35:56 -04:00
Inori
8b384ba759 more fakeapi stuff + Disable frameskipping by default 2019-08-25 17:58:12 -04:00
Inori
f15f767d73 Add fake-api GetPrivateProfileString 2019-08-25 12:27:41 -04:00
Inori
6a563ba31c Support Boolean in MiniFFI 2019-08-24 22:53:53 -04:00
Inori
dc8a1b100b misc fake-api functions for Unix 2019-08-24 22:14:44 -04:00
Inori
15a64924a3 Add GetAsyncKeyState 2019-08-23 12:21:52 -04:00
Inori
d0b377e41f Use eventthread keystates instead of SDL_GetKeyboardState 2019-08-22 21:33:33 -04:00
Inori
606975b505 Start macOS/Linux fake-api 2019-08-22 13:56:18 -04:00
Inori
9c08249992 Remove 'fix_essentials', add 'use_fakeapi' 2019-08-20 05:21:30 -04:00
Inori
28b60eb9fb Add Graphics.screenshot 2019-08-19 08:59:35 -04:00
Inori
8243802921 Fix GetKeyboardState not recognizing Shift presses 2019-08-17 18:43:20 -04:00
Inori
c7fafb2316 Correctly pass arguments for fastcalls 2019-08-10 12:39:23 -04:00
Inori
9ee77a8f2d Use SDL for Win32API.SetWindowText 2019-08-09 08:14:02 -04:00
Inori
d08c07b42a Use own GetWindowRect instead of WinAPI's 2019-08-08 09:40:50 -04:00
Inori
ad0cf67cb9 Resurrect mouse detection 2019-08-06 22:43:19 -04:00
Inori
5ce926b2d7 whoops 2019-08-06 15:54:01 -04:00
Inori
cd6c659387 Move fake Win32API functions out of if/else chain 2019-08-06 15:33:54 -04:00