Skip to content
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

Dog's Life (PAL) - Dog gets black after a few seconds #1004

Closed
SimplyLiz opened this issue Nov 28, 2015 · 51 comments · Fixed by #5540 or #5635
Closed

Dog's Life (PAL) - Dog gets black after a few seconds #1004

SimplyLiz opened this issue Nov 28, 2015 · 51 comments · Fixed by #5540 or #5635
Assignees

Comments

@SimplyLiz
Copy link

2015-11-28 1

Latest rev from today (1.3.1 - 1487)

Just start a new game and walk around for a fews seconds, Jake get's all black, a lot of texture bugs on him.

Btw, he also has a "colored stripe" on his head. This happens right from the beginning. This seems not to be related to the "getting black" issue.

Happens in both OpenGL and DirectX. (though directx has a lot more texture issues.) Doesn't happen in Software Mode though.

@willkuer
Copy link
Contributor

Have you tried higher accuracy in opengl? E.g.something like blending mode or accurate date?

@SimplyLiz
Copy link
Author

I've tried "Accurate Date", "Hardware Deth" and Blending Unit Accuracy set to Ultra with no difference, jake still turns black.

@willkuer
Copy link
Contributor

Thanks. What about crc hack level : none vs partial vs full?

@SimplyLiz
Copy link
Author

CRC None -> it's even worse. The Textures looks greenish (moldy Oo) like in DirectX. So the crc hack level seems to make it better in openGL :)

i've now tested all combinations of CRC Level / Blending accuracy (and both checkboxes accurate date / hardware depth) and jake always turns black.

8 bit textures also make no difference.
Same goes for Resolution (tried native, 1x, 2x, 3x, 4x)

I've now also disable the HW Hacks (skipdraw set to 1). Still turns black.

I've prepared a savestate. Press X to leave smellovision, run forward and watch jake turn black. when you load the savestate in software mode this doesn't happen.
http://workupload.com/file/wezuzcAl

@willkuer
Copy link
Contributor

I think it would help more if you create a GS dump. The devs do not necessarily have the game and savestates get invalid from time to time. So please create a gs dump.

@SimplyLiz
Copy link
Author

Here you go:
http://workupload.com/file/4y4qA2Pr

I've started the game, loaded the savestate, Hold Shift + F8, ran forward until jake was all black and released the button. Hope that helps!

@FlatOutPS2
Copy link
Contributor

FlatOutPS2 commented Feb 25, 2018

This still happens with latest git build. Jake the dog turns black when moving the character with Direct3D11 and OpenGL hardware renderers, Direct3D9 hardware renderer turns the skin blue-green-ish and it seems to change slower than the other HW renderers. Switching to Software will not fix the issue, but not playing in hardware renderer at all will prevent it.

@FlatOutPS2 FlatOutPS2 added the GS label Feb 25, 2018
@jpovixwm
Copy link

jpovixwm commented Oct 3, 2020

This issue still occurs as of 3231e79. All versions of the game are affected: SLUS-21018, SCES-51248 and SLPM-65995.
I did some investigation with SLUS-21018, and here's what I've got to share:

The visual glitch is caused by the dog gradually getting dirtier the further it travels. This is why the issue doesn't occur when the dog stands in place.
The game constantly checks the distance traveled by the dog, and once it goes over 500.0 units, the value is reset to 0, and the dog is made very slightly more dirty.
The subroutine responsible for making the dog dirtier is the one at 001f99c8 (this also handles the dog cleaning process if you go to the dog wash), while the one for checking the distance traveled is at 001f59e0. By modifying the instructions at 001f60b0 and 001f60f8, it is possible to alter the required distance and the amount by which the dog gets dirtier, respectively.
For example, when the distance condition is set to 1000.0, the rate at which the dog gets dirtier will be 50% of the original game. And if the instruction responsible for the incrementation is altered so that it increments by 2 rather than by 1, the dog will get dirtier in larger steps at a time. Setting it to 0 will cause the dog to never get dirty, avoiding this graphical bug altogether. Because of how useful it is, I've created this PNACH, which lets you enjoy the game with a HW renderer: patch=0,EE,001F60F8,byte,00.

Given the above, I was able to gain control over how the dog is made dirtier, which allowed me to easily reproduce this issue with the dog standing still, which I hope will make the GS dumps I captured easier to work with and analyze.
The issue manifests itself only if a HW renderer is used while the dog gets dirtier.
A GS dump I captured with the SW renderer, where the glitch doesn't occur, can be replayed with GSdx's HW renderers and the glitch cannot be reproduced.
In the opposite case, when the dump was captured in HW mode, the glitch now will reproduce when the dump is replayed in SW mode.
I'm also including a third GS dump, captured using HW mode in 2x resolution. This has interesting effects, because you can see the textures from the ground located behind the dog, get applied to the dog itself. And once again, this dump shows the same problem if replayed in SW mode. (Update: enabling "Large Framebuffer" fixes this particular behavior)
I've also included a save state which makes it trivial to reproduce this issue. After loading the state, just move the dog a bit and that's it. Or, if you want the dog to stay in place, then just write a float greater than ~4000 to 0x20aca5b4, 5000.0 will do. This save state has the incrementing instruction altered so that it increments by 0x100, and the distance threshold is at around 4000, so writing 5000.0 to the memory at that address will instantly make the dog visibly dirty.

Download: https://workupload.com/file/CBTEWWG2S9M

Update: the "Preload Frame Data" hack appears to alleviate this issue somewhat, at least when you use the save state I provided, but not so much with the vanilla game.

Update: use these codes to work around this bug when using a hardware renderer:

patch=0,EE,001F60B0,short,471C
patch=0,EE,001F60B4,short,4000
patch=0,EE,001F60F8,byte,50

This will bump the distance threshold to 40000.0, and the incrementation to 80, making the dog's texture updates happen 80 times less frequently, but each update will be 80x stronger than default. Only works with "Preload Frame Data", and only for native resolution. In general, it seems that each update further deteriorates the dog's texture, thus making the updates less frequent helps a lot. I think it may be a "off-by-one" type of bug somewhere in GSdx, but that's just a wild guess, as I have no idea how any of this works. I'd say that whenever the game attempts to blend the dog's textures with a "dirt" texture, some calculation goes off, and the resulting texture gets a bit more dark than what it should be. Make the updates frequent enough, and the textures would quickly become pitch black.

@tadanokojin
Copy link
Member

Thanks for patch, debug and dumps. I'll take a look when I get a moment.

@tadanokojin tadanokojin self-assigned this Oct 25, 2020
@Dogmander
Copy link

@jpovixwm Could you give me a quick explanation on how to fix this issue with the vanilla game or whatever, as I'm not really sure how to use cheats or patches in PCSX2 that much.

@RedDevilus
Copy link
Contributor

Is MTVU disabled?

@Dogmander
Copy link

I have it disabled, yes. As if I have it enabled it seems to hang after the main cutscenes I think.

@RedDevilus
Copy link
Contributor

MTVU is fixed in 1.7 but it seems to be a CLUT issue from what i hear.

@Dogmander
Copy link

Okay, but all I'm trying to do is just fix the black jake issue

@refractionpcsx2
Copy link
Member

GSdx32-AVX2clutoffset3.zip
it's a long shot but you could give this version of GSDX a try

@Dogmander
Copy link

What will that version do?

@refractionpcsx2
Copy link
Member

Well, that fixes some CLUT issues, so if it's a CLUT problem, it might stop him turning black. No guarantees though

@Dogmander
Copy link

Okay, I'll try it

@Dogmander
Copy link

Nope, Jake still turns black? Any way I can fix this?
image

@tadanokojin
Copy link
Member

Play in SW until it's fixed or mess about with patches. It's not a clut issue.

@Dogmander
Copy link

How can I use the patches? Is it a cheat code or something?

@Dogmander
Copy link

Play in SW until it's fixed or mess about with patches. It's not a clut issue.

I'm using the NTSC-U version of the game btw

@tadanokojin
Copy link
Member

This is an issue tracker, it's not really the purview of this issue to explain how the patch system works. Go ask the forums how to use it. This is for tracking the issue and for providing debugging and other information that helps debug it not for asking how to use the emulator.

@Dogmander
Copy link

Okay, sorry. Also, there is another issue that makes Jake have a stripe on his forehead for some reason. You might also want to check this issue out too.
image

One more issue, when loading into the game. The book turns partly black. image

@tadanokojin
Copy link
Member

Thanks I'll keep it in mind. I suspect it's all related.

@Dogmander
Copy link

Yeah, this game has a lot of graphical issues, which is a shame since this is one of my favorite games and these graphical issues are pretty annoying.

@Dogmander
Copy link

Has anyone had any progress resolving this issue?

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Feb 14, 2022

With the latest master, if you enable Preload Frame, we're nearly there, but I think the remaining issue is because preload frame is pretty janky

image

Edit: Here's a higher resolution screenshot

image

@Dogmander
Copy link

With the latest master, if you enable Preload Frame and Texture in RT, we're nearly there, but I think the remaining issue is because preload frame is pretty janky

image

Edit: Here's a higher resolution screenshot

image

That's definite an improvement, but still not perfect, but it's good to see progress nonetheless

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Feb 17, 2022

okay, did some messing around, and the mud and Jakes body texture are fine if you set blending accuracy to "Ultra" or "minimal".

One of the hw/sw mix blends is breaking this

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Feb 18, 2022

If anybody wants to go ahead and try #5540 it will now work there with basic blending (which is the most ideal). Of course you still need Preload Frame to solve the random black squares and the funny colours on his head, but it looks much better, I would say that's all issues resolved now (videos need SW FMV switch, annoyingly)

image

@Levan7
Copy link

Levan7 commented Mar 11, 2022

Still getting this issue on v1.7.2431 build

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Mar 11, 2022

Still getting this issue on v1.7.2431 build

You need to enable Preload Frame HW Renderer hack, and not go nuts with the upscaling (this really screws with it)

@Levan7
Copy link

Levan7 commented Mar 11, 2022

@refractionpcsx2
It worked thank you and sorry if this information was in the thread and missed.

@Dogmander
Copy link

Dogmander commented Mar 11, 2022 via email

@RedDevilus
Copy link
Contributor

When the GS HW fixes gets added, then it will be possible for the GameDB. But a lot of games will need to be reviewed.

@refractionpcsx2
Copy link
Member

yes, wait for #5593 to be merged

@Dogmander
Copy link

Dogmander commented Mar 11, 2022 via email

@Tecloudwoo
Copy link

No news about a fix with upscaling?
Texture replacement is possible for the main character?

How to fix this?

@refractionpcsx2
Copy link
Member

Upscaling works, though I think some scales are still problematic, not much we can do about that, just pick another one

@Tecloudwoo
Copy link

Ok, but this is a hardware mode issue with upscaling. The dog become darker. It's not linked with the sun effect?

Do you have errors concerning this in the console?

@refractionpcsx2
Copy link
Member

No? As long as you don't have manual hw fixes enabled in the GS settings, it should be dealt with.

@Tecloudwoo
Copy link

No? As long as you don't have manual hw fixes enabled in the GS settings, it should be dealt with.

Which hw fixes do you use for this game with the last version of PCSX2?

@refractionpcsx2
Copy link
Member

clampModes:
vuClampMode: 3 # Fixes minor SPS on characters.
gsHWFixes:
preloadFrameData: 1 # Fixes bad textures on Jake.
halfPixelOffset: 1 # Fixes double image.

@Tecloudwoo
Copy link

3
1
2

I don't have the numbers but this is my captures. Is this correct?

@refractionpcsx2
Copy link
Member

why are you setting it manually? the gamedb does it automatically. set everything back to global (or filled for checkboxes).

All you need to change is your internal resolution to either 3 or 5.

@Tecloudwoo
Copy link

Because I search the best configuration .. thank you for your help
image

@refractionpcsx2
Copy link
Member

Just a quick note to say the going black in Smell-o-vision seems to be fixed with #7267

@Tecloudwoo
Copy link

Just a quick note to say the going black in Smell-o-vision seems to be fixed with #7267

Hey, thank you, this fix is in the last main branch ? Everything is fixed?

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Nov 1, 2022

I think so, yep!

It's possible certain upscales might still make it explode, I don't know, I didn't test that, but other than that, it should be fine!

@Tecloudwoo
Copy link

I think so, yep!

It's possible certain upscales might still make it explode, I don't know, I didn't test that, but other than that, it should be fine!

Thank you :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet