37 Commits

Author SHA1 Message Date
9ea5b24b67 Split kernel32 into separate files (part 1) 2025-10-01 18:18:13 -06:00
c099a1b577 Improve current thread handles 2025-10-01 16:56:51 -06:00
ccd79a256a Reimplement kernel32 time functions, fix HeapReAlloc, debug log improvements 2025-10-01 00:59:11 -06:00
62d8daccac Overlapped I/O support (fixes ProDG compilers) 2025-09-29 23:32:17 -06:00
9dd65bc70a More msvcrt (WIP quality) and various fixes 2025-09-29 20:07:19 -06:00
d69fc8a422 Implement kernel32 Heap* funcs using mimalloc 2025-09-29 14:54:38 -06:00
c17953b318 Refactor main module resolution & HMODULE handle behavior 2025-09-29 13:50:27 -06:00
4a2ba45620 Resolve own absolute path for subprocess spawn 2025-09-29 09:25:57 -06:00
195f6c1408 Un-stub FileTime functions; impl TerminateProcess, HeapDestroy 2025-09-29 09:25:19 -06:00
f941a1e642 Initial threading support & more impls for compilers 2025-09-28 22:44:35 -06:00
8cac50e50e Rewrite BCryptGenRandom and add tests 2025-09-28 17:20:43 -06:00
b53ae15c82 Force builtin lmgr stub and stub missing imports 2025-09-26 19:59:58 -06:00
f23224bbcc cl.exe works! but I didn't review most of this code 2025-09-26 17:38:24 -06:00
042a43ced1 DLL fixes; impl GetSystemInfo, __dllonexit, and more 2025-09-26 13:30:39 -06:00
a17a3c5413 Invoke dllMain with proper TIB selector 2025-09-26 13:09:27 -06:00
f83d228cc1 strutil cleanup & fixes 2025-09-26 12:01:15 -06:00
01ddf95d36 Add proper resource implementation 2025-09-26 01:51:25 -06:00
720e6639a9 Return ERROR_RESOURCE_DATA_NOT_FOUND if open_resource_stream fails 2025-09-26 01:16:52 -06:00
836f485d66 Initial external DLL support 2025-09-26 00:55:35 -06:00
Dávid Balatoni
8bd112f0e4
Add GetTempFileNameA (#84) 2025-06-18 00:12:39 +02:00
c9d634876d
Handle special handle value from FindFirstFileA in FindNextFileA (#52) 2023-10-08 13:08:53 -04:00
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
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
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
2023-01-23 21:22:50 +01:00
6b6a462ea1
Use __attribute__((force_align_arg_pointer)) (#30) 2023-01-23 16:36:14 +01:00
Simon Lindholm
42f2e6935e MessageBoxA 2022-07-27 21:27:27 +01:00
Simon Lindholm
ced712df09 Clean up function resolution a little 2022-07-18 23:02:55 +02:00
camthesaxman
97c946fd86
implement SetEndOfFile, CreateDirectoryA, RemoveDirectoryA, SetFileAttributesA (#6)
* implement SetEndOfFile, CreateDirectoryA, RemoveDirectoryA, SetFileAttributesA

* call fflush before ftruncate
2022-07-06 11:26:24 +09:00
Simon Lindholm
f11759cc71 mwcc 4.* 2022-06-29 17:34:38 +02:00
Simon Lindholm
916c10543d ole32 2022-06-29 17:26:24 +02:00
Simon Lindholm
81e85504de Improve logging 2022-06-29 16:56:36 +02:00
Simon Lindholm
1a9d5d5a86 resources 2022-06-29 13:19:45 +02:00
Simon Lindholm
e6dc3b4ffd Command line parsing 2022-06-29 01:29:26 +02:00
Simon Lindholm
3fd1f6a30c wip 2022-06-28 23:08:23 +02:00
Ash Wolf
d1a4fd35a7 first commit 2022-06-13 02:20:18 +02:00