Commit graph

28720 commits

Author SHA1 Message Date
lizzie
d7aee42379 extra buffer precautions to not exhaust DMem, format better + perf history nerf 2026-05-16 01:51:41 +00:00
lizzie
707754cdef more inline pt2 2026-05-16 01:51:41 +00:00
lizzie
e74ca4381c fix atexit impl 2026-05-16 01:51:41 +00:00
lizzie
9f9d130fa0 fibers that don't immediately crash?!!?!?!!? 2026-05-16 01:51:41 +00:00
lizzie
1db720173d add fallback buffer back 2026-05-16 01:51:41 +00:00
lizzie
ed230bba32 force running services on host 2026-05-16 01:51:41 +00:00
lizzie
56d60ab236 fix alloc failures 2026-05-16 01:51:41 +00:00
lizzie
aede8db560 fix sdl2 2026-05-16 01:51:41 +00:00
lizzie
c86887d7ff fix for crashes on TLS due to openorbis being W E I R D 2026-05-16 01:51:41 +00:00
lizzie
a59aeea2e2 opengl bullshit 2026-05-16 01:51:41 +00:00
lizzie
51e4e1ca32 proper memswap mechanism 2026-05-16 01:51:41 +00:00
lizzie
9033c5fceb more stupid stuff 2026-05-16 01:51:41 +00:00
lizzie
488aaea1d6 fixes 4 stuff 2026-05-16 01:51:41 +00:00
lizzie
efc44db9df swap handling 2026-05-16 01:51:41 +00:00
lizzie
fc3c706fd5 license 2026-05-16 01:51:41 +00:00
lizzie
db9571cc9f add sce_module so it loads on real hw 2026-05-16 01:51:41 +00:00
lizzie
1ceffefad1 fixes for mbedtls 2026-05-16 01:51:41 +00:00
lizzie
0b9a0966f2 adapt to new master 2026-05-16 01:51:40 +00:00
lizzie
c73e17f4f1 evil haxx 2026-05-16 01:51:30 +00:00
lizzie
c7169dfbb1 extra ps4 defs 2026-05-16 01:51:30 +00:00
lizzie
27f0d1add1 make virtual buffer become an optional 2026-05-16 01:51:29 +00:00
lizzie
48c0912bdd force NO fastmem 2026-05-16 01:51:29 +00:00
lizzie
88ad8917dc more memory shit 2026-05-16 01:51:29 +00:00
lizzie
0b1d7d39bc MAP_SYSTEM 2026-05-16 01:51:29 +00:00
lizzie
14dccb898f (likely) fixes for virtual dmem? 2026-05-16 01:51:29 +00:00
lizzie
5be4ad6b65 disable fastmem 2026-05-16 01:51:29 +00:00
lizzie
bcb9e1514c try to fix the paths 2026-05-16 01:51:29 +00:00
lizzie
a7cb95d921 sysconf stub cuz crash(?) + some stderrp stuff 2026-05-16 01:51:29 +00:00
lizzie
4ad405e785 the orb 2026-05-16 01:51:29 +00:00
lizzie
1868834646 fself + pkg stuffs 2026-05-16 01:51:29 +00:00
lizzie
b20c03a7af make .pkg and .self 2026-05-16 01:51:29 +00:00
lizzie
66463d6947 exclude more stuff from vulkan 2026-05-16 01:51:29 +00:00
lizzie
a4f3edec96 exclude from vulkan surface selection 2026-05-16 01:51:29 +00:00
lizzie
fe8fbec2e8 buildable toolchain script + fixes for ffmpeg 2026-05-16 01:51:27 +00:00
lizzie
b95c0092e9 merge 2026-05-16 01:51:07 +00:00
lizzie
85b45d5472 merge 2026-05-16 01:50:50 +00:00
lizzie
ca8f2dd5c4 fix 2026-05-16 01:50:38 +00:00
lizzie
248b34ff4b toolchain-fix 2026-05-16 01:49:53 +00:00
lizzie
4d49341918
[vk, opengl] recognize and use ETC2 (if available) textures natively (#3237)
Some checks are pending
tx-src / sources (push) Waiting to run
Check Strings / check-strings (push) Waiting to run
this makes it so VK and OGL backends map the NVIDIA's ETC2 into VK_FORMAT_ETC-whatever and GL_ETC-whatever remaps, instead of using the default fallback for AR8G8B8. in short, just make the ETC2 textures be submitted as ETC2 instead of being submit as A8R8G8B8.

Signed-off-by: lizzie lizzie@eden-emu.dev

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3237
Reviewed-by: Ghost <>
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-15 22:08:09 +02:00
lizzie
2f0f8a979c
[dynarmic, macroHLE] Use faster ankerl for xbyak maps (#3716)
the nominal std::unordered_map<> isn't enough to warrant it's continued usage in xbyak internal structures, thus using ankerl should greatly remove a lot of indirection/stdc++ specific overhead from the usually poorly performant std::unordered_map

Both dynarmic and macroHLE should benefit greatly from a less-stupid unordered_dense

This should speedup both CPU and shader compilation latency (NOT BY A GREAT MARGIN) just enough to make loading zones in ToTK less horrific

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3716
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-15 22:07:45 +02:00
lizzie
413c7543ba
[hle] inline HLE cmif request to not allocate on heap stuff (#3605)
so basically each construction of HLEContext and whatever would result in a heap allocation (atleast 1)

so what if instead of that we did a memset() at ctor time and we avoided heap allocations altogether?

reminder that std::vector<> CAN do small object optimisation but it's not guaranteed

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3605
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-15 22:07:03 +02:00
lizzie
975aa4e2f2
[common] remove ptr indirection on WallClock (#3864)
also devirtualizes manually since compiler doesn't do it with LTO

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3864
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-15 22:06:38 +02:00
lizzie
a1f9e68f46
[hid_core] remove contentious mutex from EmulatedController and just rely on atomic semantics for fields (#3866)
inputs shouldnt be that critical to require a full mutex of them

this relies on CPU guaranteeing u32/u16/u8 atomic load/stores for EmulatedController fields, which works on x86_64 but may not have the same behaviour on other architectures - thats why i wrap them in `std::atomic<>`

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3866
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-15 22:06:23 +02:00
lizzie
02dee4a20b
[file_sys/system_archive] remove uneeded ctor/dtor initializations for std::map<> when creating system archives for nx_tzdb generated files (#3919)
sounds like word salad but let me say:

- std::map<> created a static ctor for EVERY SINGLE ZONEINFO
- fuck that, instead lets just use a raw array and construct things statically
- works the same except with less baggage carried around (+ less heap allocations!!!)

this should help reduce codesize due to the aforementioned global ctor/dtor

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3919
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-15 22:05:32 +02:00
lizzie
bc9b9480fb
[dynarmic] fix 12th-gen Intel CPUs crashing due to UMONITOR (#3954)
see https://github.com/herumi/xbyak/issues/255

> Proof: https://godbolt.org/z/9vseq4Ynj
> Xbyak currently implements it as:
> ```c++
> void umonitor(const Reg& r) {
> int idx = r.getIdx();
> if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) //umonitor DOES accept r8,r9,r10,etc this is NOT correct
> int bit = r.getBit();
> if (BIT != bit) {
>   if ((BIT == 32 && bit == 16) || (BIT == 64 && bit == 32)) {
>     db(0x67);
>   } else {
>     XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER)
>   }
> }
> db(0xF3); db(0x0F); db(0xAE); setModRM(3, 6, idx);
> }
> ```
> My program was throwing Xbyak::Exception and I tracked it down to this particular umonitor

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3954
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-05-15 22:01:42 +02:00
lizzie
d1ceeeca22
[cmake] use -mtls-dialect=gnu2 (#3948)
Some checks failed
tx-src / sources (push) Has been cancelled
Check Strings / check-strings (push) Has been cancelled
see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120933

we use TLS very sparingly (which is a good thing), some of our dependencies, in turn, may not
we should be aware of that fact

allegedly, there are minor glibc issues and such, but most distros should be fine
additionally, this is only enabled for FreeBSD and Linux, if it works on FreeBSD, naturally every Linux distro should support it as well

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3948
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-05-14 00:17:13 +02:00
lizzie
ee188168c1
[common] do not crash when don't have permissions to /tmp/eden directory due to unforessen circumstances (FreeBSD) (#3912)
Some checks are pending
tx-src / sources (push) Waiting to run
Check Strings / check-strings (push) Waiting to run
instead of throwing, use std::error_code and such

due to reasons unberknownst to me, the UID of the /tmp/eden directory was set for another user, this inevitably caused a crash due to wrong permissions (which is a very user unfriendly thing to do generally)

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3912
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-13 19:14:59 +02:00
lizzie
1f558ce9b3
[vk, ogl] bump shader cache version to 17 (#3947)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3947
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-13 19:14:18 +02:00
smiRaphi
28a2ff1b94
[file_sys] fix romfs_ext mods (#3914)
Makes them show up in the menu & also let's them load from SDMC

Note: the android edit is totally untested and I've no clue of Kotlin but I don't see a reason why it shouldn't work

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3914
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-05-13 19:13:44 +02:00
Eden CI
d8070c74c3
[dist, android] Update translations from Transifex for May 12 (#3949)
Automatic translation update for May 12

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3949
2026-05-13 19:13:16 +02:00