-
Notifications
You must be signed in to change notification settings - Fork 146
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
Improve frame pacing when using Original graphics mode. #451
base: master
Are you sure you want to change the base?
Conversation
Not fully related to this, but since I see mentions of Vsync here, is there any way not to get tearing and flashing subtitles in games with Adrenaline? I tried multiple filter combinations, with and without wifi on, but it always happens. It's not just tearing, the animations actually go backwards a but sometimes. In games like Daxter and the God of War games the cutscenes are bizarrely awkward. I have a PSP and none of that happens in it, which means the games themselves are fine. I tried this version (I got the module from the forum you linked) and it didn't help either. Vita slim running Enso 3.65 and a SD2VITA. |
@onda88 @CruelTott Since the goal might be performance, you guys might like what I found out here: frangarcj/vita2dlib#7
I don't know how important this would be @TheOfficialFloW, but might be something you want to know (or something I completely missed the mark at). |
Thanks for the investigation, I'll look into it this weekend! |
sceDisplayWaitVblankStart(); | ||
if (config.graphics_filtering == 0) { | ||
sceKernelDelayThread(4 * 1000); | ||
sceCompatLCDCSync(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this needed if no rendering is being done here?
Using a delay is probably not the right thing to do. I just stumbled upon it helping when I was trying to figure out why scrolling in PSX games was so juddery when not using a filter. I initially just added the LCDCSync() to match the one further down in the code that is skipped over if filtering is disabled, since that was the only difference in synchronization I could find between filtered and unfiltered. Almost any value for delay helps, but some are slightly better, but none are perfect. So there is probably some better way to do it. |
The sync at the end of the loop probably was never executed anyway because It might be worth checking what happens with the AdrenalineDraw thread removed from the code. |
I am still getting the occasional screentear or micro stutter with PSP and PS1 games, on VitaTV. On handheld Vita, I don’t get screentears, but I still get microstutters with smooth PS1 games like Rayman, which is perfectly smooth on real PSP. Changing graphics modes like filtering shader or filtering original changes the amount of stutters/tear, but it never goes away completely, not even with filter set to Original. For example, in Rayman first level, if you walk left or right for a few seconds, there will always be a microstutter in the scrolling. On PSP it remains perfectly smooth always. EDIT: I am not sure anymore that the Rayman scrolling micro stutters are an Adrenaline problem. I just read on a forum that it also happens with the official Rayman Vita purchased from PSN. |
The Rayman stutter is not there on the official psn release as I bought it a couple of months ago to test out this stutter issue. It's also not there in the alundra PSN release either. I've mentioned before on other forums, this issue of stutter is 100 percent tied to sound somehow. The stutter in alundra for example goes hand in hand with certain drum beats in the soundtrack. In Rayman, it's the same, certain sound effects trigger the stutter. |
Any plans to fix the crash when utilizing the camera? |
Is it known if this patch been implemented ? To make sure I bought a couple Ps1 games from PSN: Einhander, Zanac X Zanac, and the difference between native PS1 emulation and Adrenalin, for the same games @ original PS1 driver settings, is absolute night and day. Native emulation is flawless and Adrenaline a mess when it comes to smoothness. Oh how I wished TheFlow had developed a very much needed NoPspEmuDrm instead. As much as seeing the PSP XMB running on Vita is crazy neat, the same can't be said for actually running games (at least all those I tried). I certainly hope TheFlow would reconsider an hypothetical NoPspEmuDrm if possible technically. |
Sadly I dont think the PS1 issues on the Vita are ever going to be fixed. Its just a case now I think of PS1 doesnt work properly for whatever reason and it just has to stay that way. There are a load of games that drop frames and its not performance issues, its tied to sound effects somehow as I've created lots of videos proving this, but no one seems to know the solution. |
Too bad, since several games are not present in the PS Store :( |
So I'm not sure where to report this but hopefully TheOfficialFloW will get to see it. There seems to be a limitation or oversight regarding the MC Utility in Adrenaline. In the official emu, the MC Utility allows to import saves from the current game (MC1 to MC2 / MC2 to MC1) AND from MCs from other games. Open Adrenalin menu > Open Official Settings > Memory Card Utility > Import. |
compared to my psp adrenaline has horrible frame pacing. This is observed on rayman psx. |
Rayman SLPS-00026 has no problems. |
Rayman does have frame pacing problems when run through adrenaline. Tested on a vita 1000 and 2000. Running the purchased game through PSN and booting from vita homescreen the game runs fine. This is the same for games like Alundra, symphony of the night etc. This issues has been going on for years and has never been solved despite me going in depth as to what is going on in terms of when frame pacing issues occur and what causes them. It'll never be fixed |
Did you test the changes on this PR and saw whether they fixed the issues you had? |
how can i test? |
@LeonardoMeireles55 you'd need to build it yourself from the source code. I can do that later and post the |
@Zarke669 I've also seen people "fix it" with 444MHz and 222MHz for CPU and GPU. |
it is fixed only with 222mhz 111mhz 111mhz. in the official psn emulator runs at 333mhz 111mhz 111mhz. |
@Zarke669 and do PSP games run ok at those frequencies? |
@andrebrait yes, now it's perfect. I think the ps vita cpu is used to emulate the audio. apparently high clocks cause frame pacing and frame-skip issues. |
can anyone else test? |
What are you using to change the clock speed? |
and testing ps1 games in adrenaline v7.0? |
@shadowknight1620 @Zarke669 I'm very interested in that this PR was keant to fix issues only when using the original graphics mode. Could you test to see if the clock makes any difference when using one of the filtered modes as well? |
@andrebrait filter lcd3x, advancedAA require higher gpu clocks causing the same issues.
|
@shadowknight1620 whatever the installed version. |
Do you have to use a sepcific version of adrenaline for these clocks to work? I'm on standard 7/0 and have tried the clocks on the vita at 222/111/111. And then in adrenaline im running the emulator at 333/166 and it isnt making any difference. I still get the same stutters. What am i missing here? This is the same no matter what filter I use |
would love to get a vpk with this pr build tbh, i cant compile it myself and i rlly wanna test many many titles |
I'll try to build it today and post it here. I'll also post a build that forces CPU clocks to 222MHz and some other things, so you can test all variations. |
@kristianity77 which plugin are you using?
|
I've tried psvshell 1.1. I have CPU set to 222. Es4 set to 111. Bus set to 111. Xbr set to 111. |
@kristianity77 just change the cpu so that 222mhz inside the adrenaline or bubble. I performed several tests and it really fixed it. high cpu clocks cause some audio emulation problem causing stuttering. |
Just one note: some of those apps have separate clocks for PSPEmu and Vita modes. Be sure you're changing the correct section. |
something interesting frameskip works best with cpu clock 222mhz. |
@kristianity77 PSVshellPlus to force 222mhz cpu(vita). |
@Zarke669 @kristianity77 @EnekoT2001 @shadowknight1620 here are 4 builds of Adrenaline.
|
Thank you so much!! Im gonna test it now, also, i can just use the one without clock changes and change them manually with psvshellplus right? |
Technically yes, but it would be useful if you could also test the ones with underclocking afterwards so we could check if it's a workaround that can be implemented in the code, and maybe an extra menu option. |
I have a problem now tho, i cant get it to work, im using the Adrenaline_7_github_pr451.vpk one I tried replacing the files manually just how the readme says in the how to update section and it gives me an error when opening it, i tried removing the adrenaline_kernel.skprx from loading in my tai config and it opens and closes like usual and then when i open it again same error. Now I uninstalled adrenaline completely and installed it using the vpk directly and if i open it once the menu to download the firmware appears but if i close it and open it again same error, i rebooted and opened it again to at least get the firmware downloaded but after that i cant do anything same error. C1-2758-2, i removed the native resolution patch too in case that had anything to do so idk what to do now, ill try one of the vpks with underclocked clocks too maybe its just this one thats wrong unless im missing something? |
Maybe the new version of the SDK broke it, or something like that. I need to test it myself too. I didn't have time to test them, only to build. I guess the fix for the newlib didn't work so well. |
No worries, i tested all of them except for the dynamic one and they all show the same problem for me, i even tried to install the normal adrenaline and just replace the sce_modules folder and same problem so its not the eboot or whatnot in case it helps, thank you for compiling them tho, i hope you can figure out whats wrong easily, if it helps i can test stuff for u tbh just send me links and i can try it on my vita |
@Zarke669 @kristianity77 @EnekoT2001 @shadowknight1620 here are the fixed VPKs. There's a new variant which is Let me know the results. Please use the module replacement method instead of installing the VPKs directly, since that will wipe your firmware and downloading 661.PBP from Sony's servers doesn't seem to be working right now. |
@LeonardoMeireles55 @CruelTott @onda88 see the comment above and let me know if you can also give these different workarounds for this issue a try. For everybody testing, could you provide the game you're testing and, if a save file is needed, the virtual memory card files for the games that display issues? |
hey sorry just saw this, ive been very busy, i tried the experimental one bc it was the most intriguing to me and on normal psp resolution ti does seem to offer better frame pacing on the sims 2 (is the game im kinda playing regularly now so it was a good way to test), i do play it with the native vita resolution patch and after enabling that it doesnt seem to improve but thats probably bc the gpu itself cant render as many frames, when i have some more time ill test some more games and compare the different versions you provided, tysm ! |
@EnekoT2001 |
Oh for real? So there’s no code change relating to frametimes and such? I’m gonna check another one real quick rn |
Ok I tried the one without the underclock bc I was gonna try changing the clock speeds manually and see if there was any difference, again on sims 2 there doesn’t seem to, on normal resolution it might be a bit better but pretty sure the inconsistencies are just frame drops, on native it’s the exact same I think, tested both in 222 and 500mhz cpu just to test. I’ll try to check some god of war later when I have some time and maybe another game, I’ll keep you posted |
@andrebrait just leaving the vita's cpu set to 222mhz solved all the problems. I always compare it with my psp and it works exactly the same in terms of framepacing.
|
@LeonardoMeireles55 I get it, but I'd like for you to test the builds I made (specifically the one for this PR and the ones with underclocking) so I can test whether it's safe to have Adrenaline itself set the CPU clock instead of having the user to it externally. |
@andrebrait |
@LeonardoMeireles55 at the very least I need to know the game you're running, specially which version and region and, if possible, a save game (you can zip and send a VMC here) |
@andrebrait
|
@LeonardoMeireles55 huh, weird. I actually did set the clocks for the CPU too in the code. Have you disabled whatever you're using for setting clocks? |
yes, I left everything in stock. |
discussion here: "https://forum.devchroma.nl/index.php/topic,112.45.html"
credits to CruelTott