-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to upstream #319
base: master
Are you sure you want to change the base?
Update to upstream #319
Conversation
…t-pc JitArm64: Store PC on debug exit
We need to check for the address of the *previous* instruction, because checking fifoWriteAddresses happens not at the end of the instruction that triggered it but at the start of the next instruction.
This bug has been lurking in the code ever since I added the discard functionality. It doesn't seem to be triggered all that often, and on top of that the emitted code only runs conditionally, so I'm not sure if people have been affected by this bug in practice or not.
This adds a check for the bug addressed by the previous commit.
Jit: Don't discard before gather pipe interrupt check
Jit: Use correct address when checking fifoWriteAddresses
Common/MemArena: Set MAP_NORESERVE in LazyMemoryRegion on Linux.
…loader IOS/KD: Implement Download Scheduler
…ture_integration VideoCommon: add cubemap to ShaderAsset and TextureAsset
…id needing to check the msr bits. And in order to avoid a double dereference in the dispatcher, directly store the normalEntry in the map. The index to the block map becomes ((((DR<<1) | IR) << 30) | (address >> 2)). This has been chosen since the msr bits change less often than the address, thus we keep nearby entries together. Also do not call the C dispatcher in case the assembly dispatcher didn't find a block, since it wouldn't find a block either due to the 1:1 mapping, except when falling back to the non shm segment lookup table.
…-long Common: Fix HttpRequest::GetLastResponseCode stack corruption
JitArm64/Jit64: Extend the fast lookup mmap-ed segment further to avoid needing to check the msr bits.
Common/LogManager: Add logging category for Achievements.
This fixes a bug where custom cover loading was initiated but would finish by the time another image view would be in the place of the previous one.
…Malgrave Incident See https://bugs.dolphin-emu.org/issues/13356. Testing there determined that forcing a specific value for SafeTextureCacheColorSamples is not needed.
Implicit conversion operators and enums was removed for parity with std::format (fmtlib/fmt@fce74ca).
Android: Use custom image loader for game covers
In some settings where the default value could not be evenly divided by the step size for the slider, there would be a crash. This increases the precision of all double numeric settings to 0.5 and now shows the decimal that you couldn't see before.
Move text above slider
Debugger/Memory: Fix mem2 search
Update fmt to 10.1.1
…s-fix Android: Float slider settings fix
hi, thanks for this massive work. hope you could achieve this |
could you please tell me what is the line command to compile this? I tried last night and there were many errors at my end. |
I used such flags for build mkdir build && cd build
cmake -DLIBRETRO=ON -DENABLE_X11=OFF -DENABLE_NOGUI=OFF -DENABLE_QT=OFF -DENABLE_ALSA=OFF -DENABLE_PULSEAUDIO=OFF \
-DENABLE_TESTS=OFF -DUSE_DISCORD_PRESENCE=OFF -DENABLE_AUTOUPDATE=OFF -DENABLE_SDL=OFF -DENABLE_EVDEV=OFF -DENABLE_CLI_TOOL=OFF \
..
make -j$(nproc) |
Thanks, I successfully compiled the core. If I changed the video driver to vulkan, retroarch crash. If I changed to GL driver, it trows this error My system is running Archlinux. I reset the core config to avoid any bad behavior from the before one.
With vulkan driver
|
Idk, maybe wrong video driver ? |
Yeah, I was testing the standard emu, and it ran ok. I don't know why it didn't on Retroarch. |
Thanks for picking this up. Happy to test things out. Do you have an idea of what's needed to move it forwards? What's missing? |
I don't know much about programming but this commit appears to be the culprit because the error I saw above |
Probably find all
No, its not. It just fix linker errors about "undefined reference to" and uncomment some "deinit" in video context destroy (which is not called in your case). |
@zorn-v I see that you're in the Discord. I pinged you because you might want to hear what I said, but I'll reproduce it here:
That offer is 100% serious. If you're willing to work on something that won't need as much maintenance in the long run (at the cost of some front-heavy preparation and the need for upstream collaboration), then I can help you get it started. |
I doubt that it is always possible. Some methods are private, some classes are final etc. |
Hence the need to send patches upstream. I've sent a ton to melonDS that were mutually beneficial (including to other non-libretro frontends).
Better than dealing with massive merge conflicts, in my experience. |
And wait until they merged... or not.
Merge conflicts not so scary as behavior changes. And they helps to understand codebase by the way. Just do minimum editing as possible of original code (and comment/do talking naming to parts that related to libretro) and all should be all right in future I suppose. |
Yeah, I downloaded that file from retroarch. |
Then we
Those behavior changes would happen with or without merge conflicts. I'd argue that they're worse when dealing with merge conflicts, as an improper merge can cause behavior changes. If dealing with Dolphin as a dependency, you can at least be assured that behavior-changing updates don't come from the core's codebase. Also, here's the kicker with embedding it as a dependency; you don't have to update to the latest upstream commit immediately. You can move it forward a few dozen commits at a time as needed.
So does embedding upstream as a dependency. I think we might have slightly different goals; my goal with melonDS DS was not to understand the upstream emulator. It just so happened to be required for what I really wanted to do (make a kickass, highly-polished libretro core).
This world is not ideal, and nothing about that million-and-a-half-line diff is minimal. That approach is what brought us a Dolphin core that breaks a large portion of the Wii/WiiWare library and needs an overhaul every year. It is not sustainable. |
Yep
I sincerely wish to make this world a little better 😉 |
Me too. Let's do it in a way that lasts longer than a year and doesn't have to be redone by some other poor bastard. What do you say? |
Unfortunately I does not have much free time now. Sometime work need to be worked ) |
Also, if a change is pending upstream or is refused for some reason, a patch can be added in the repository in order to modify the upstream project before compilation, without having to fork it. Of course, as already said above, better to have this patches upstreamed. Howerver, that's not always possible. |
Hm, I forgot that it can be done like this. Well, agreed that using original project as dependency is better than fork for libretro core. But most worse is hard fork (like LRPS2) - you did not even know what commit it was be in original project to compare changes. |
All right, not a problem. I do have a question, though; if I were to start up a new Dolphin core after I finish my current one, would you be interested in contributing to it? There's another core I'm considering as well, but I can only devote my time to one major project. |
Even if you do ultimately have to fork upstream, this kind of separation makes it very easy to update your core. Just change a git hash in the submodules file, or
In this case I tend to propose some kind of extension point or generalization, like breaking a class into smaller pieces. That way I can define the desired behavior on the "frontend" (the core). This is something you'd want to do even in a standalone frontend unrelated to libretro, anyway. |
Why not, if I can help. melonDS DS is seems like high-quality core (compared to original melonDS core where even no option to hide cursor and no upscale). But miss some pretty options like texture scale etc. I know that there is no such functions in standalone melonDS yet, but I stay with DeSmuME core for now, even it is significant slower. |
Seems there some significant changes (removed
bEMUThread
option which is "false" in libretro core but "considered true" in current master) and we stuck inRunGpuLoop
even with "Null" video driver