Tree:
b690813196
Kernel
Update-some-barriers-test
astc_optimization1
astc_optimizations
atomicops-mxwell
bcn-ternary-soft
camille/bufferc
chore/chore
civa
cyber/async-gpu-android
descriptor
descriptor_pool_opt
descriptor_set
discfix
dmnt2
dravee/less-toggle
dravee/qt
dravee/qt-fix
dravee/uma
dynarmic-ppc64
eden-orbis-ps4
eds-true-adreno-fixes
eds-true-adreno-fixes-pre-0.1.0
feat/android_kotlin_compose
feat/game_override
ffmpeg-cross-compile
fix/discord-rpc
fix/socket
fixup-android
flatopsfixes23485
fps-overlay
fs-try
gentoo-gdb
gpuopts
interval-zero
lanobu
liz-crash-dumps-solaris
liz-dynarmic-macos-fbsd-port
liz-get-rid-of-mcl-intrusive-list
liz-heaptrack-fix
liz-no-rtti-allowance
lizzie/adreno5-mali-driver-fix
lizzie/astc-mp4-improv
lizzie/audio-remove-recursive-lock
lizzie/correcter-convert-abgr8-srgb-d24s8
lizzie/dynarmic-remove-interpreter
lizzie/dynarmic-sse3-impls
lizzie/dynarmic-xbyak-use-ankerl
lizzie/dynrregabiset
lizzie/evil-f32-u32-format-fix
lizzie/fix-dragonslayer-armnce
lizzie/fix-idiv-crash
lizzie/fix-my-fuckup-with-vic
lizzie/fix-rw-garten
lizzie/fix-vic-msvc-attempt-2
lizzie/gmake-fix
lizzie/gutter-sw-blitter
lizzie/inline-dynarmic-spooky
lizzie/ltofix123
lizzie/macos-vk-metal-fix-stype
lizzie/maxwell-dumb-tools
lizzie/nce-port1123
lizzie/qt-fix-user-dialogue
lizzie/rasterizer-recursive-mutex-not
lizzie/remove-disassembler-dynarmic
lizzie/remove-disassembler-dynarmic2
lizzie/rework-block-list
lizzie/sgsr
lizzie/sse2neon-fuck123
lizzie/stupid-socket-bullshit
lizzie/texture-pass-revert-1
lizzie/try-fix-win11-crash-fuck
lizzie/update-headers-meta
lizzie/vids-ratatata
lock-term-1
macroify-surface-stuffs
master
memsetopsyscallavoid
mmap-fixews
msvc
msvc-debug
mutliplayer-filter-better1
n64
nce_cpp
pipelinederivative
port/lr
qcomopts2
querybugfix
refactoreds2
release-early-fences
release/0.0.3
release/0.0.4
release/0.1.0
renderer_vulkan
retroarch-core
revert-2695
revert-noinline
revertrevert
sgsrtry
showcase
showcase2
sjkdbsdfjkbsdf-2834
spvopts
sured-revert
techno48473719
test-revert-gpu-optim
test2
true-eds
true-eds-graphics
true-eds-pre-0.0.1
uma
vk-fix-oom-force-maller-buffers
vk-surface-andpc
vk-symph
vkexperiments1
vulkan-thingy
vulkanasync
woa-turnip-expr
workgroup
xbzk-saf-recursive-write-with-permission-request
xbzk/bindless-textures-support
0.0.0
0.0.1-pre-alpha
0.0.2-pre-alpha
test-tag1
test-tag2
v0.0.3
v0.0.3-rc1
v0.0.3-rc2
v0.0.3-rc3
v0.0.3.git
v0.0.4
v0.0.4-rc1
v0.0.4-rc2
v0.0.4-rc2.test
v0.0.4-rc2.test2
v0.0.4-rc3
v0.0.4-rc3.test1
v0.0.4-rc3.test2
v0.0.4.test
v0.1.0
v0.1.0-rc1
v0.1.1
v0.2.0-rc1
${ noResults }
3 Commits (b6908131969b3977e071d6737f2a102a0354224d)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
39f226a853
|
[qt] Ryujinx save data link (#2815)
This adds an action to the Game List context menu that lets users link save data from Eden to Ryujinx, or vice versa. Unfortunately, this isn't so simple to deal with due to the way Ryujinx's saves work. Ryujinx stores its saves in the... config directory... in `bis/user/save`. Unlike Yuzu, however, it doesn't store things by TitleID, instead it's just a bunch of directories from 000...01 to 000...0f and so on. The way it *maps* TitleID to SaveID is via `imkvdb.arc` in `bis/system/save/8000000000000000/0/` and also an identical copy in the `1` directory for... some reason. `imkvdb.arc` is handled by `FlatMapKeyValueStore` in LibHac, which, as the name implies, is a key-value storage system that `imkvdb.arc`, and seemingly `imkvdb.arc` alone, uses. The way this class is written is really weird, almost as if it's designed to accommodate more types of kvdbs... but for now we can safely assume that there aren't gonna be any other `kvdb` implementations added to HorizonNX. Regardless, the file format is ridiculously simple so I didn't actually need to do a deep dive into C# code... of which I can basically only read Avalonia. A simple `xxd` on the `imkvdb.arc` is all that's needed, and here's everything that matters: - The `IMKV` magic header (4 bytes) - 8 bytes that don't really have anything useful to us, except for a size byte (presumably a `u32`) strewn at offset `0x08` from the start of the file, which is useless to us - Then we start the `IMEN` list. I don't know what the `IM` stands for, but `IMEN` is just, well, an ENtry. Offsets shown are relative to the start of the `IMEN` header. * 4-byte `IMEN` magic header at 0x0 * 8 bytes of filler data. It contains two `0x40` bytes, but I'm not really sure what they do * TitleID (u64) at `0xC`, for example `00a0 df10 501f 0001` for Legends: Arceus (the byte order is swapped) * 0x38 bytes of filler starting at offset 0x14 * SaveID (u64) at `0x4C`, for example `0a00 0000 0000 0000` for my Legends: Arceus save * 0x38 bytes of filler starting at offset 0x54 Full example for Legends: Arceus: ``` 000001b0: 494d 454e 4000 0000 4000 0000 00a0 df10 IMEN@...@....... 000001c0: 501f 0001 0100 0000 0000 0000 0000 0000 P............... 000001d0: 0000 0000 0000 0000 0000 0000 0100 0000 ................ 000001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001f0: 0000 0000 0000 0000 0000 0000 0a00 0000 ................ 00000200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000210: 0000 0000 0100 0000 0000 0000 0000 0000 ................ 00000220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000230: 0000 0000 0000 0000 0000 0000 494d 454e ............IMEN ``` Ultimately, the size of the `IMEN` sits at 0x8C or 140 bytes. With this knowledge reading all the TitleID -> SaveID pairs is basically free, and outside of validation and stuff is like 15 lines of relevant code. Some interesting caveats, though: - There are two entries for some TitleIDs for... some reason? Ignoring the second one seems to work though. - Within each save directory, there are directories `0` and `1`... and only `0` ever seems used??? It's where Ryujinx points you to for save, so I just chose to use that. Once everything is parsed, the rest of the implementation is extremely trivial: - When the user requests a Ryujinx link, match the current program_id to the corresponding SaveID in `imkvdb` - If it doesn't exist, just error out (save data is probably nonexistent) - If it does though, give the user the option to use Eden's current save data OR Ryujinx's current save data. Old save data is deleted depending on which one you chose. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2815 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> |
4 months ago |
|
|
87cacbeed4
|
[compat] HaikuOS port (#2805)
Still had the issues with libusb, but that should get solved with the other PRs anyways Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2805 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev> |
4 months ago |
|
|
f4386423e8
|
[qt] refactor: qt_common lib (#94)
This is part of a series of PRs made in preparation for the QML rewrite. this PR specifically moves a bunch of utility functions from main.cpp into qt_common, with the biggest benefit being that QML can reuse the exact same code through ctx passthrough. Also, QtCommon::Frontend is an abstraction layer over several previously Widgets-specific stuff like QMessageBox that gets used everywhere. The idea is that once QML is implemented, these functions can have a Quick version implemented for systems that don't work well with Widgets (sun) or for those on Plasma 6+ (reduces memory usage w/o Widgets linkage) although Quick from C++ is actually anal, but whatever. Other than that this should also just kinda reduce the size of main.cpp which is a 6000-line behemoth rn, and clangd straight up gives up with it for me (likely caused by the massive amount of headers, which this DOES reduce). In the future, I probably want to create a common strings lookup table that both Qt and QML can reference--though I'm not sure how much linguist likes that--which should give us a way to keep language consistent (use frozen-map). TODO: Docs for Qt stuff Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/94 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> |
5 months ago |
|
|
19a0345f69 |
vulkan: Use newer VK_EXT_metal_surface to create surface for MoltenVK.
|
3 years ago |
|
|
5a4e361862 |
qt_common: consistently ifdef QPlatform after 17507c4849
src/yuzu/qt_common.cpp:45:33: error: member access into incomplete type 'QPlatformNativeInterface'
wsi.display_connection = pni->nativeResourceForWindow("display", window);
^
/usr/include/qt6/QtGui/qguiapplication.h:20:7: note: forward declaration of 'QPlatformNativeInterface'
class QPlatformNativeInterface;
^
src/yuzu/qt_common.cpp:47:42: error: member access into incomplete type 'QPlatformNativeInterface'
wsi.render_surface = window ? pni->nativeResourceForWindow("surface", window) : nullptr;
^
/usr/include/qt6/QtGui/qguiapplication.h:20:7: note: forward declaration of 'QPlatformNativeInterface'
class QPlatformNativeInterface;
^
|
3 years ago |
|
|
fa8da0ded9 |
qt_common: Remove yuzu prefix
|
3 years ago |
|
|
17507c4849 |
qt_common: Move window info function out of bootmanager
Function is useful outside of bootmanager, so put it in a common place. qt_common: Add missing include qt_common: Add some newlines qt_common: Add trailing newline qt_common: Add trainline newline |
3 years ago |