03-10-2016, 02:10 AM
03-10-2016, 02:13 AM
(03-10-2016, 01:50 AM)degasus Wrote: [ -> ]One build for every pull request, like my one on the first page: https://github.com/dolphin-emu/dolphin/pulls/
(03-10-2016, 02:10 AM)JosJuice Wrote: [ -> ]The PRs are individual changes that aren't mature enough to be in the master builds yet.
Thanks guys, I'll ignore them for now then. Info much appreciated.
05-02-2017, 09:08 PM
I have a problem with missing character in the resident evil remake using jitarm64 (it work with interpreter and cache interpreter but they are slow). When I save state in interpreter mode and load in jit mode it show character, but when move area, character is gone again.
Can I disable some of jit function like you said and build using android studio to solve it (using interpreter fallback) ?
I'm a beginner in android development but I think I can try to build the release using gradle.
Can I disable some of jit function like you said and build using android studio to solve it (using interpreter fallback) ?
I'm a beginner in android development but I think I can try to build the release using gradle.
05-02-2017, 11:43 PM
(05-02-2017, 09:08 PM)Servlet Wrote: [ -> ]Can I disable some of jit function like you said and build using android studio to solve it (using interpreter fallback) ?
First step is to disable groups of instructions by replacing a false with a true: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/ConfigManager.cpp#L851
If there is one broken group, you need to find the instruction in https://github.com/dolphin-emu/dolphin/tree/master/Source/Core/Core/PowerPC/JitArm64
All of them start with JITDISABLE(instruction_group), eg here: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp#L126
There you can add a FALLBACK_IF(true);
If there is one broken instruction, you may also check which part of it is broken. But this is highly instruction dependend. In this example, you may check those values of inst.OPCD.
Keep in mind that many instructions have optimizations which are only possible based on prior instructions. So it is not that unlikely to workaround a bug by using the interpreter for the prior instruction. This makes this fallback game a bit harder. A good way to disable most of those optimizations is to flush all registers here: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/PowerPC/JitArm64/Jit.cpp#L839
gpr.Flush(FlushMode::FLUSH_ALL);
fpr.Flush(FlushMode::FLUSH_ALL);
05-03-2017, 02:03 AM
(05-02-2017, 11:43 PM)degasus Wrote: [ -> ]First step is to disable groups of instructions by replacing a false with a true: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/ConfigManager.cpp#L851
If there is one broken group, you need to find the instruction in https://github.com/dolphin-emu/dolphin/tree/master/Source/Core/Core/PowerPC/JitArm64
All of them start with JITDISABLE(instruction_group), eg here: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp#L126
There you can add a FALLBACK_IF(true);
If there is one broken instruction, you may also check which part of it is broken. But this is highly instruction dependend. In this example, you may check those values of inst.OPCD.
Keep in mind that many instructions have optimizations which are only possible based on prior instructions. So it is not that unlikely to workaround a bug by using the interpreter for the prior instruction. This makes this fallback game a bit harder. A good way to disable most of those optimizations is to flush all registers here: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/PowerPC/JitArm64/Jit.cpp#L839
gpr.Flush(FlushMode::FLUSH_ALL);
fpr.Flush(FlushMode::FLUSH_ALL);
I see, its sound a lot complicated, I will try compile the source 1st and see what you suggesting afterward. Thanks, hopefully I can learn hehe
05-03-2017, 02:28 AM
(05-03-2017, 02:03 AM)Servlet Wrote: [ -> ]I see, its sound a lot complicated, I will try compile the source 1st and see what you suggesting afterward. Thanks, hopefully I can learn hehe
Feel free to join us on #dolphin-emu @freenode and ask for help there, too.
05-03-2017, 08:33 AM
https://forums.dolphin-emu.org/Announcement-global-forum-rules
*waves her magic moderator wand*
Closed!
Global Forum Rules Wrote:Necroposting: Do not revive a discussion older than 6 months unless your post adds something meaningful or otherwise contributes to the thread. Please create a new thread about your subject instead. Threads violating this rule will be closed. Stickied threads, Game Discussion threads, and HD Texture threads are exempt, however, and users can freely post there regardless of how old the topics are.
*waves her magic moderator wand*
Closed!