Commit Graph

66 Commits

Author SHA1 Message Date
Luke Street b5c987925c Use custom memory allocator 2023-10-02 11:27:26 -04:00
Luke Street c4de05946d Fix TlsGetValue & more (#48)
`TlsGetValue` disambiguates 0 and an error by relying on `GetLastError`. Depending on the program state, `GetLastError` could be non-0, even though `TlsGetValue` succeeded. Resolve this by always setting `wibo::lastError`. This matches the behavior described by the documentation.

Additionally, when reading resources, later versions of mwcc and mwld call `GetModuleHandleA` with the program path, and then call `LoadStringA` on that handle. Support this behavior by _actually_ loading the PE at the path passed in to `GetModuleHandleA`, instead of assuming it's the current program.

(This is especially useful because sjiswrap relies on overriding `GetModuleFileNameA`, so the wrapped program reads its own resources, rather than sjiswrap's.)

Other small changes:
- Add ms-win-crt `exit` & run atexit funcs
- Implements vcruntime `memmove`
- Implements kernel32 `GetModuleFileNameA`
2023-10-01 23:56:35 -04:00
Ethan Roseman 8a6aacb82d GetLocaleInfoW (#47)
* GetLocaleInfoW for ee-as.exe 991111b

* Try to do it the right way

* 3rd time's the charm?

* round 4

* it doesn't matter now what happens i will never give up the fight

* comments

* fin
2023-09-22 09:13:56 +09:00
ConorB 218b4d7d76 Implement enough process handling logic to make psyq4.0 happy (#46)
* Implement enough process handling logic to make psyq4.0 happy

* revert gitignore

* data type update

* PR review

* DEBUG_LOG mistake

---------

Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-09-18 15:05:47 +09:00
Mark Street ceb13b34de Use correct token for docker deployment (#45)
* Use correct token for docker deployment

* Update link to gc_wii compilers

* Update deps in ci.yml too
2023-09-14 15:12:28 +01:00
Ethan Roseman 6a420668e5 CorExitProcess for armcc_41_1440 (#44)
* Implement CorExitProcess for armcc_41_1440

* Fix function signature, add dll coverage
2023-09-12 22:44:56 +09:00
Luke Street d27fc944bd Fix GetFullPathNameW, GetEnvironmentVariableW (#43) 2023-09-11 18:36:13 +09:00
Ethan Roseman b7e8e5fb80 3 msvcrt funcs (#42)
* msvcrt funcs

* fix empty final line

* Promment
2023-09-11 04:22:01 +09:00
Anghelo Carvajal a5499f27de Fix SetFilePointerEx to return FALSE instead of INVALID_SET_FILE_POINTER (#41) 2023-09-10 21:54:25 +09:00
Ethan Roseman 8ab683e5c6 WiBo -> wibo 2023-09-10 13:14:45 +09:00
Luke Street 94b44fd697 Everything needed to run simple Rust programs (#40)
* Everything needed to run simple Rust programs

* Add IsDBCSLeadByte implementation

* Address PR comments
2023-09-10 12:07:23 +09:00
ConorB 6e18120410 Add armcc support (#39)
* armcc 5.04, ignore seh longjmps

* Update CI link

* Stub RtlUnwind entirely

---------

Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-09-08 08:17:35 +09:00
ConorB 3e2d84fa69 Force VirtualAlloc allocations to fall below the 2GB mark (#36)
Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
0.4.2
2023-06-02 21:30:45 +02:00
Parker e83af50b10 Properly implement GetCurrentProcessID, GetCurrentThreadId (#35) 2023-04-01 11:13:21 +02:00
Luke Street 7d08a2bdca Various fixes for mwcc/mwld (#32)
* Override GetFileAttributesA for MWCC license.dat

* Add WIN_FUNC to FileTimeToLocalFileTime

* Use callee_pop_aggregate_return(0)

* Lexically normalize paths
0.4.1
2023-01-23 21:22:50 +01:00
Luke Street 6b6a462ea1 Use __attribute__((force_align_arg_pointer)) (#30) 2023-01-23 16:36:14 +01:00
Luke Street 9837ce0bf4 Pass absolute path to exe in argv[0] (#31) 2023-01-23 16:35:50 +01:00
Luke Street 67f99ba1b2 Build static binary (#29) v0.4.0 2023-01-23 10:20:30 +09:00
jdflyer aec6f0dbe9 Implement GetShortPathNameA (#28) 2022-12-30 01:37:21 +01:00
Ryan Burns 635de4fa93 Handle GetCurrentDirectory required buffer size return value (#27)
When the output buffer size is too small, GetCurrentDirectory does
nothing and simply returns the larger required size.

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcurrentdirectory#return-value

Needed to run Code Warrior 4 mwcc.exe with no arguments, displaying usage/help message.

(Still unable to compile/preprocess with CW4 mwcc.exe)
2022-12-02 10:46:38 +01:00
Ethan Roseman 681137902b don't try to mmap 0-sized things (#26) 0.3.0 2022-09-25 02:03:40 +09:00
Ethan Roseman b65a585ee3 Move docker build back a bit (#25) 2022-09-25 02:02:49 +09:00
Ethan Roseman d631bad6b2 Build it on focal (#24)
* Build it on bionic

* no sudo

* cmake

* don't use ninja

* try focal

* model after #15

* Whoops

* lower minimum CMakeLists

* focal

* Fix

* debug yaml

* whut

* now?
0.2.6
2022-09-25 01:04:29 +09:00
Ethan Roseman 6de4e9a163 3 funcs needed for some mwcc compilers (#22)
* 3 funcs needed for some mwcc compilers

* some PR feedback

* lots more via pair programming with Simon

* cleanup, add test dir as an include dir for tests

* bugfix
0.2.5
2022-09-24 23:59:30 +09:00
Simon Lindholm ffe30a626b Fix cmdline backslash escaping 0.2.4 2022-07-31 13:17:14 +02:00