RPCS3 / rpcs3

PS3 emulator/debugger
https://rpcs3.net/
GNU General Public License v2.0
15.2k stars 1.9k forks source link

Kingdom Hearts 1.5 Atlantica bug [BLUS31212] #4303

Closed lastdance1 closed 5 years ago

lastdance1 commented 6 years ago

I know this one has been around for awhile, but bear with me.

Version: RPCS3 v0.0.5-6543-b232409cc Alpha (one commit behind i think)

Problem: When i load up the Atlantica world, it becomes impossible to see whats going on. Certain objects such as text bubbles, poppups, the UI, pause menu, and such are still clearly visible, but the overall interface is replaces by a previous scene from the game, usually related to whatever you were doing when you last paused, or opened a menu (note, you must open a menu to get to Atlantica, so simply not opening one does not solve the issue.).

I would like to add as a side note, that this problem is one that is relatable to the rest of the game. Any transition effects, and often during loading this exact problem occurs but does not prevent gameplay. However, the problem is probably something related the a screen overlay effect the original developers used. In this case, the overlay is users to make Atlantica appear to be underwater (the screen stretches and shrinks). Notably, the graphical issue stretches and shrinks with it. Other players have reported this problem has happened in earlier world when fighting Jafar (i did not experience this) and later in the game in hallow bastion.

Previous fixes for this dont seem to work anymore. Ive tried nearly every combination of settings ( will provide the ones that worked best in the log file), different devices, updating drivers, clearing the Shaders and LLVM cache, restarting the computer, ect. I know there have been open Issues for this in the past, but the problem doesn't appear to be solved.

My specs: Windows 10 Intel Core i7-6820HK @ 2.7GH Nvidia Geforce GTX 980M, driver version 391.01 (current) 32 GB of RAM.

Here is a screenshot, there are no distinctive differences between settings, except when changing the aspect ratio to 4:3, in which the bottom half becomes a black box. https://puu.sh/zJRtz/94ca89654e.jpg

My .log File (put in a zip for compression reasons):

http://puu.sh/zJRTE/af9eeb20a7.zip

fifazalata commented 6 years ago

I would like to add that this issue happens in MGS3 Snale Eater as well. it's happening in the cutscene transitions too where the current cutscene or (gameplay) after transition will have a left over from the previous scene. so maybe it's a common problem in some games & fixing the issue in one could fix all others?

jgerstle commented 6 years ago

Did you try using Write color buffers in gpu settings? That fixed it for me.

lastdance1 commented 6 years ago

Did you read my post or check my log file? I've tried this and a million other possibilities.

Are you using the latest version of rcps3? If so, perhaps something had changed, if not, could you provide the version you are using?

jgerstle commented 6 years ago

ya you're right it worked for me because I saved in atlantica already. Loading from a save file works. I originally got it working using an older build see this post: https://forums.rpcs3.net/thread-180504-page-4.html. Specifically jvanzalen's post he says what build he uses make sure to use vulkan and write color buffers. I think I also used strict rendering. It took me a bit but I got it to work on that build. Once you save you can use the newer build. I would also suggest using the newer build because I had issues saving on that build after being there for a while. I think I may have also used a lower resolution although I am not sure if that's neccessary

jgerstle commented 6 years ago

I think these were my settings: ID:BLUS31212 Title:Kingdom Hearts HD 1.5 ReMIX PR:3112 Status:Playable Updated:2017-07-28

RPCS3 v0.0.4-6212-0b3fbf1d Alpha | HEAD Intel(R) Core(TM) i7-4702MQ CPU @ 2.20GHz | 8 Threads | 7.93 GiB RAM | AVX+ GPU: GeForce GT 750M

PPU Decoder: Recompiler (LLVM) | Thread Scheduler: false SPU Decoder: Recompiler (ASMJIT) | SPU Threads: 1 SPU Lower Thread Priority: false | Hook Static Functions: false SPU Loop Detection: false | Lib Loader: Load liblv2.sprx only

Selected Libraries: None

Renderer: Vulkan | Frame Limit: Off Resolution: 720x480 | Write Color Buffers: true Resolution Scale: Strict Mode | Use GPU texture scaling: false Resolution Scale Threshold: 128 | Anisotropic Filter Override: 2 VSync: false | Disable Vertex Cache: true

lastdance1 commented 6 years ago

Unfortunately, this is still a bug, and it's one that isn't solvable on the latest build unless you go back to a previous one. I don't think this knowledge is particularly useful to the devs unless we know which build the regression happened. Perhaps it's useful to know a workaround exists in the meantime though?

jgerstle commented 6 years ago

Well yes that was the point in my response just now to have some usable workaround. The thing is it does work from a save just not when travelling there. Although it did work at end of the world which was interesting.

lastdance1 commented 6 years ago

@jgerstle

Hey, so i went and downloaded the build you mentioned above to see if i can replicate the settings and see where the bug happened. Using your settings, I cant seem to replicate being able to get it working. Using the above build, were you able to travel to atlantica from another world or just load from a save point?

hex7cd commented 6 years ago

The same bug seems to happen in the Genie Jafar fight. Interestingly enough, I could pinpoint it to a single setting, the resolution. I'm using the newest build (6633). At 720p, everything is fine. At 1080p it shows a wavering standstill image of the title screen (some kind of last cached frame i guess) when I enter the lava area where the boss is. Changing any other settings (even switching between OpenGL and Vulkan) don't make a difference. Only the resolution causes it. And I looked at the back of my copy, it officially supports 1080p, so it must be something in the emulator, that doesn't work the same at different resolutions.

tycho94 commented 6 years ago

@hex7cd I've tested multiple resolutions and did not get the same result as you did. The resolution was not the issue causing this for me. Are you sure you tried additional settings options combined with a vulkan & openGL change?

My result is identical to @lastdance1 's

Sora3100 commented 6 years ago

@hex7cd iirc 1.5 doesn't actually support 1080p, if you used a homebrew app to take a screen of the game from a real ps3, it would render at 720p It is just upscaled to 1080p

hex7cd commented 6 years ago

@tycho94 I'll make a 2nd save file and compare stuff between the Genie Jafar fight and Atlantica (once I get there, maybe it actually isn't the exact same bug...) and do some extensive testing to settings combinations for both.

lastdance1 commented 6 years ago

I didnt do any testing for it, but using the setting listed in my original post, i didnt experience any glitches during the Genie/Jafar fight.

hex7cd commented 6 years ago

Sorry for taking so long. First of all, I made 1 new observation. With my settings (OpenGL, 720p, Write Color Buffers, Strict Rendering Mode, Disable Vertex Cache), the "screen transition" glitch when changing rooms and other stuff where the screen fades, is gone for a while, but does reappear after some time. Booting the game and immediately starting the Genie Jafar fight does indeed work. Up until now I haven't been able to get into Atlantis without the glitch. I don't know what to do anymore. In the forums there is a post where some guy got through it. I'll try and just use the build and settings in that post, but it would be really nice if this could be fixed.

To me it simply seems like a framebuffer or something similar gets cached, even though it shouldn't be.

ghost commented 6 years ago

I found a sort of workaround to access Atlantica. It's by no means a proper fix, but it'll make Atlantica accessible on the latest version.

First, back up your rpcs3 folder, of course.

Then, download version 0.0.3-5583, found here (currently page 19), then download the fix found here that doesn't work on the latest version.

Copy your save over to the older build, and go to Atlantica. Then get past the introductory section, to the first save point. Save your game (in a different slot, just in case), then copy the save back to the latest version. It should be playable now.

lastdance1 commented 6 years ago

That's awesome! Do you know if any version of rpcs3 works after that? If we can find out when change occurred it would significantly help the developers solve the issue.

ghost commented 6 years ago

I only used the closest version that I could find to the date of that thread. I'll look into later versions later.

tycho94 commented 6 years ago

@lastdance1 @Ndgtr If you are posting this as a potential workaround, it might be worth it to mention that you need this fix twice. Since you make two trips to Atlantica. I saw this fix on the rpcs3 forums and it still works.

How I understood it is that you should copy only dev_hdd0 and dev_hdd1 folders to the older version directory. Install the new firmware (I forgot to do this) and you'll be able to play through the intros.

I also figured out that when you delete the LLVM cache the game tends to not get stuck when booting from the initial game menu. It increased the chance that this would work, but it wasn't perfect. This was important to me as the throphy system did not work when you boot from the .self file.

Finally, if you go to Atlantica and there is no introduction you spawn on a save point, this allows you to (blindly) save the game, load it up again, and be able to continue in Atlantica.

ghost commented 6 years ago

Just wanted to confirm @Ndgtr 's workaround works for me as well.

In addition to @tycho94 comments, I had to enable strict rendering, disable the vertex cache, write color buffers, and I used GPU texture scaling. I didn't need to touch the CPU config at all.

However, I had an issue where my instance of Vulkan was not appended to the registry, so Vulkan was not available in the GPU configuration screen, this is not user error as mentioned on the forums, but an issue with NVIDIA install. (Which is a problem, because the fix build needs Vulkan to run or you get a black screen with OpenGL and a freeze.)

Anyways, you can fix the issue by navigating to C:\Windows\System32\DriverStore\FileRepository and look for a folder that starts with nv_disp.inf (for example on my own system C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_c1a085cc86772d3f) Open and ensure you have nv-vk64.json in the folder. Copy the file path.

Open registry, and you will want to create a new REG_DWORD in HKEY_LOCAL_MACHINE \ SOFTWARE \ Khronos \ Vulkan \ Drivers"

Should look like this below (and will for people who don't have the problem)

capture

Finally, navigate to /program files (x86)/Vulkan RT/ and run vulcaninfo.exe, restart emulator and vulkan will become available in the rendering configuration.

Aaronstar-McClure commented 6 years ago

i tried using @Ndgtr fix, but i just get a black screen with ui instead of an old distorted frame with ui

Monlopo commented 6 years ago

it seems you can no longer download old versions of rpcs3 past a certain date, would anyone have a download for version 0.0.3-5583?

im stuck at atlantica, tried everything just like op.

or did anyone find the latest version the glitch wasn't happening on?

jgerstle commented 6 years ago

I have the version it worked for me on: rpcs3-v0.0.4-2017-12-06-0b3fbf1d_win64

NeelAPatel commented 6 years ago

Where can i download that exact version?

Monlopo commented 6 years ago

it seems that the website they use to host the old builds are slowly expiring https://ci.appveyor.com/project/rpcs3/rpcs3/build/0.0.4-7507/artifacts this one is the last version i can see

Monlopo commented 6 years ago

I managed to get past the loading screen and into Atlantica but in the first fight you have after playing tag with flounder it freezes

spish1517 commented 6 years ago

after going from top to bottom the last update i found that didn't have the Atlantica bug and i was able to Finnish the first fight and save was rpcs3-v0.0.4. 2018-02-03-c21fa2d8.

https://ci.appveyor.com/project/rpcs3/rpcs3/build/0.0.4-7873/artifacts

Aaronstar-McClure commented 6 years ago

ok, maby i am doing something wrong, but when i download that file it says it is 7873, but when i extract and run it, it is 6392. also, i still get the wavy bug...

BreakBB commented 6 years ago

@spish1517 I just tested the version you mentioned and can't confirm that I can enter Atlantica, without getting this. I was using default settings, did you change something?

NeelAPatel commented 6 years ago

Game wise: im at a point where im done monstro, and use the gumiship to go to atlantica (2 minutes distance) Can confirm that @spish1517 's linked version does not work. Wavy bug still persists.

If anyone has an RPCS3 copy that works with Atlantica, please upload it without the game and save file here, as well as a detailed list of settings (screenshot preferred). It would help a ton more. (Or if you're using Spish1517's version, just the settings is fine)

BreakBB commented 6 years ago

I nearly forgot: You can enter Atlantica with the version mentioned here, save after the first intro and then use the current version to keep playing. I had to disable "Use GPU Texture Scaling" in the current version.

NeelAPatel commented 6 years ago

WORKS: Semi-Solution for Atlantica!! To confirm: @BreakBB 's solution works. It leads you to a post with the following RPCS3 version: [http://www.mediafire.com/file/hyg2v1iqvvjh6sc/Rpcs3.zip/file](RPCS3 - 0.0.3-5586-02845f5 Alpha)

Steps: This is what I personally did to get past the Atlantica bug.

Some notes:

I hope this helps a ton!! I can finally play this game until i encounter another bug!

Sharlock93 commented 5 years ago

I was messing with the settings and found a way that worked for me, can someone else check this, i have the following stuff:

go to View -> Show Debugger. then when in Atlantica, hit RSX Capture, it will pause your game from the emulator RPCS3 Interface

Simply hit Play and it will resume the game with the cut scene showing up. hope this works for everyone.

kd-11 commented 5 years ago

This bug has been known for a long time and a fix already exists in my fbo_fixes branch. Will PR it soon.

Aaronstar-McClure commented 5 years ago

You may want to edit your comment @sharlock93 , i can see stuff i should not

diegovalerad commented 5 years ago

@Sharlock93 This worked for me, thank you so much. At first, it didn't work for me, but once I changed the default resolution from 1080p to 720p, it worked perfectly.

kd-11 commented 5 years ago

No need for strange workarounds, just use this build.

For those interested, the fixes in that branch merge the two formerly separate memory trees for gpu resource tracking so that they interleave and data can be gathered via a resolve-type operation if needed where all the data is merged with a fifo ordering scheme to ensure old data is properly overwritten. Helps preserve memory contents when a game decides to change a memory block from use as a framebuffer to use as another type of resource like a 2D transfer destination block. Still rather hacky and needs a lot more work but it works great for some games already.

Sharlock93 commented 5 years ago

Awesome @kd-11 I will test it out tonight checkout the results :D.

vasiliyaltunin commented 5 years ago

I can confirm that kd-11 build works for me, it allow me view intro, first fight and save first time in atlantica

D2001 commented 5 years ago

@kd-11 After 20 hours of playtime i got into Atlantica without any problems, finished first fight and saved. All without any problems or glitches. Resolution must be 720p though!

This build seems to work perfectly for KH, many thanks!

BlackwellDev commented 5 years ago

Thank you @kd-11 it fixed 🧞‍♂️ too

Vlaovich88 commented 5 years ago

I am not going to lie, I have no clue what I am doing. I see the build that @kd-11 posted, but I am unsure to place those files. Sorry for being dumb with stuff. This is my first attempt at playing on an emulator.

RainbowCookie32 commented 5 years ago

You just extract the 7z with the emulator files and run it as normal. For instructions about setting up RPCS3 https://rpcs3.net/quickstart

paulofoca commented 5 years ago

For the Genie Jafar fight, after trying many settings from this and other posts/forums, the only change that truly worked was simply setting "Force CPU blit emulation" on the debug tab (open the "\GuiConfigs\CurrentSettings.ini" file and change showDebugTab to true), plus "Write Color Buffers" as the setting itself suggests. No other settings needed, not even "Strict Rendering Mode" is set for me as the wiki suggests. Using 0.0.6-7809. Edit: just confirmed that this also fixes Atlantica! ALL you need is both options above (also tried only cpu blit, didn't work), worked even with resolution set to native 1920x1080 (100% scale). It's a much easier workaround to check 2 boxes than to switch to an older version of the emulator imo.

kd-11 commented 5 years ago

Closing as fixed by https://github.com/RPCS3/rpcs3/pull/5675

Toff-kun commented 5 years ago

Doesn't seem to be completely fixed, as playing at 1920x1080 (listed as one of the supported resolutions) makes both Jafar fight and Atlantica world completely black. To fix it I have to either switch to 1280x720 or enable the flags paulofoca described (Force CPU blit emulation + Write Color Buffers).

Illynir commented 5 years ago

Playing in direct 1080p resolution has never been recommended, it is even marked in the emulator directly that 720p is recommended. Instead use the 720p with 150% upscaling and you will have exactly the same thing in 1080p, with fewer bugs.