pcsx2
pcsx2 copied to clipboard
Ace Combat 04 (Distant Thunder/Shattered Skies) - Protagonist plane is black in GSdx HW
-PCSX2 version: 1.5.0-dev-1230 2016-09-03 12:17:59
-PCSX2 options: Defaults, no settings modifications affect the issue
-Plugins used: GSdx, SPU2-X, LilyPad, Gigaherz CDVD, the rest are null plugins
-Plugin settings: All renderers
-Description: The plane of the protagonist is completely black in all hardware renderers. All other planes aren't affected. OpenGL hardware depth, AD and BUA options don't affect the issue.
- Note: Running a build without Texture Cache mostly resolved the issue, but some parts of the plane remained black. So it's at least partially a TC issue.
-How to replicate: Boot the game and view the cutscene, or start a mission(it doesn't show up in hangar).
-Last known version to work: Unknown, probably never worked
-PC specifications: CPU: Intel Core i5 GPU: AMD Radeon HD 6000 OS: Windows 7 64-bit
- GS Dump: AC4.zip
The issue seems to disappear partially when running the game with no-interlacing cheatcodes. There's still a black outline around the aircraft but the textures are visible. There's also no issue in hangar/cutscenes anymore.
So, you are saying this patch improves it?
patch=1,EE,E0050003,extended,0029F418
patch=1,EE,0029F418,extended,00000001
patch=1,EE,D029F420,extended,0000948C
patch=1,EE,0029F420,extended,00000000
patch=1,EE,D029F420,extended,00009070
patch=1,EE,0029F420,extended,00000000
Indeed, confirmed that no interlacing fixes this. Can somebody check it?
No, the black plane issue is TC related, messing around with settings does improve a bit the situation but never fixes it entirely, depending the mission the plane is either black with small colored parts or have collors but massively reduced in quality.
When upscaling, black vertical stripes appear:
On GSdx debug mode this assertion is false:
Same assert as Death by Degrees, both Namco games FWIW
https://forums.pcsx2.net/Thread-GSDX-Texture-Cache-Bug-Report-Death-By-Degrees-SLUS-20934-NTSC?pid=538349&highlight=degrees#pid538349
Yes, I mentioned on discord. I asked Greg what he thought, don't recall his answer.
God, why are people still making a deal from the black lines on upscaling? Gregory already fixed it plentifully years ago with the various sprites hacks.
This game is not responsive to the hack, Ace Combat 5/Zero are.
Note that this issue can be fully fixed by using the no-interlacing hacks on build 1.5.0-dev-2329 or older (not sure how much older, but maybe knowing 2330 "broke" it can be useful for devs to figure out what's going on). This works on both DX11 HW and OGL HW, with the caveats that the former has borked hangar graphics and the latter requires enabling Auto Flush.
Does it really matter? Who wants to play Ace Combat with invisible explosions? Rockets hitting targets is half the game!
Software renderer is needed for this game, correct me if I'm wrong.
Does it really matter? Who wants to play Ace Combat with invisible explosions? Rockets hitting targets is half the game!
Software renderer is needed for this game, correct me if I'm wrong.
To be perfectly honest, AC04's explosion effects are so terrible that I don't think it's a big loss. In any case, not all of us have CPUs powerful enough to run software mode at full speed, so improvements to the HW renderers are very welcome.
Issue is the cache, couple of problems, needs a rethink. Not much a patcher but maybe someone can refine this a bit
// A32F7CD0.pnach
// move frontbuffer 0xE00 -> 0x0
patch=1,EE,0029f420,word,00009000
// disable interlace
patch=1,EE,0029f418,word,00000000
// nop alpha channel downscale (replace a lui with 0xFFFF for full mask)
patch=1,EE,001437a8,word,3C02FFFF
// nop out black plane draw (replace 0x0 mask with 0xFFFFFFFF)
patch=1,EE,0029f4d4,word,FFFFFFFF
Not tested outside this level:
I'm willing to test patches further if the patch could be adjusted for the PAL version. Gave it a try regardless but as expected it would not work as-is. Got a bunch of messages like the following instead, and the game blacked out, broke audio too:
sceGsSyncPath: DMA Ch.1 does not terminate
<D1_CHCR=3c1a0155:D1_TADR=00000010:D1_MADR=ff595438:D1_QWC=00007ff5>
<D2_CHCR=70000005:D2_TADR=01ffed10:D2_MADR=01ffed20:D2_QWC=00000000>
<VIF1_STAT=10000c02:GIF_STAT=00000000>
I don't have a PAL version at this time unfortunately.
@knight-ryu12 did a NTSC-J version with some direction.
patch=1,EE,E0050003,extended,0029F318
patch=1,EE,0029F318,extended,00000001
patch=1,EE,D029F320,extended,0000948C
patch=1,EE,0029F320,extended,00000000
patch=1,EE,D029F320,extended,00009070
patch=1,EE,0029F320,extended,00000000
patch=1,EE,201439C0,extended,3C02FFFF
patch=1,EE,2029F3D4,extended,80000000
He apparently preferred the old disinterlace codes which makes sense as it seems more robust than the 2 codes I came up with on the fly. Seems he also modified the last code slightly.
Perhaps one of the patchers are around and willing to do PAL.
Ace Combat 4 have notorious issues as well as Sun become huge mess. This will fix both Sun flare and Interlace problem, and also Black planes.
This is for NTSC-J.
comment="DeInterlace and Framebuffer Fix"
patch=1,EE,E0050003,extended,0029F318
patch=1,EE,0029F318,extended,00000001
patch=1,EE,D029F320,extended,0000948C
patch=1,EE,0029F320,extended,00000000
patch=1,EE,D029F320,extended,00009070
patch=1,EE,0029F320,extended,00000000
; Kojins way; I think this may work as well?
;patch=1,EE,2029F320,extended,00009000
;patch=1,EE,2029F318,extended,00000000
comment="NTSC-J AC4 Black Plane Fix"
comment="Patch out FBMSK so it only updates mask"
patch=1,EE,201439C0,extended,3C02FFFF
comment="Change FRAME so transparancy works well"
patch=1,EE,2029F3D4,extended,80000000
comment="NTSC-J AC4 Sun Flare Fix"
; lui a0, 0xFF00 -> lui a0, 0xFFFF
patch=1,EE,00117F64,word,3C04FFFF
; dsll a0, 0x10 -> dsll a0, 0x8
patch=1,EE,00117F68,word,00042238
; ori a0, 0x8 -> ori a0, 0xFFFF
patch=1,EE,00117F6C,word,3484FFFF
; dsll a0, 0x10 -> dsll a0, 0x18
patch=1,EE,00117F70,word,00042638
Ace Combat 4 have notorious issues as well as Sun become huge mess. This will fix both Sun flare and Interlace problem, and also Black planes.
This is for NTSC-J.
comment="DeInterlace and Framebuffer Fix" patch=1,EE,E0050003,extended,0029F318 patch=1,EE,0029F318,extended,00000001 patch=1,EE,D029F320,extended,0000948C patch=1,EE,0029F320,extended,00000000 patch=1,EE,D029F320,extended,00009070 patch=1,EE,0029F320,extended,00000000 ; Kojins way; I think this may work as well? ;patch=1,EE,2029F320,extended,00009000 ;patch=1,EE,2029F318,extended,00000000 comment="NTSC-J AC4 Black Plane Fix" comment="Patch out FBMSK so it only updates mask" patch=1,EE,201439C0,extended,3C02FFFF comment="Change FRAME so transparancy works well" patch=1,EE,2029F3D4,extended,80000000 comment="NTSC-J AC4 Sun Flare Fix" ; lui a0, 0xFF00 -> lui a0, 0xFFFF patch=1,EE,00117F64,word,3C04FFFF ; dsll a0, 0x10 -> dsll a0, 0x8 patch=1,EE,00117F68,word,00042238 ; ori a0, 0x8 -> ori a0, 0xFFFF patch=1,EE,00117F6C,word,3484FFFF ; dsll a0, 0x10 -> dsll a0, 0x18 patch=1,EE,00117F70,word,00042638
Any chance of a sunflare fix for the NTSC-U version?
Ace Combat 4 have notorious issues as well as Sun become huge mess. This will fix both Sun flare and Interlace problem, and also Black planes. This is for NTSC-J.
comment="DeInterlace and Framebuffer Fix" patch=1,EE,E0050003,extended,0029F318 patch=1,EE,0029F318,extended,00000001 patch=1,EE,D029F320,extended,0000948C patch=1,EE,0029F320,extended,00000000 patch=1,EE,D029F320,extended,00009070 patch=1,EE,0029F320,extended,00000000 ; Kojins way; I think this may work as well? ;patch=1,EE,2029F320,extended,00009000 ;patch=1,EE,2029F318,extended,00000000 comment="NTSC-J AC4 Black Plane Fix" comment="Patch out FBMSK so it only updates mask" patch=1,EE,201439C0,extended,3C02FFFF comment="Change FRAME so transparancy works well" patch=1,EE,2029F3D4,extended,80000000 comment="NTSC-J AC4 Sun Flare Fix" ; lui a0, 0xFF00 -> lui a0, 0xFFFF patch=1,EE,00117F64,word,3C04FFFF ; dsll a0, 0x10 -> dsll a0, 0x8 patch=1,EE,00117F68,word,00042238 ; ori a0, 0x8 -> ori a0, 0xFFFF patch=1,EE,00117F6C,word,3484FFFF ; dsll a0, 0x10 -> dsll a0, 0x18 patch=1,EE,00117F70,word,00042638
Any chance of a sunflare fix for the NTSC-U version?
I have no idea who made this, but here:
comment="AC04 NTSC-U sun fix"
patch=1,EE,00117d3c,word,3C04FFFF
patch=1,EE,00117d40,word,00042238
patch=1,EE,00117d44,word,3484FFFF
patch=1,EE,00117d48,word,00042638
It's obviously based on knight-ryu12's code since it's the exact same thing, just with an offset for the addresses. I just can't remember where I got it from.
edit: nevermind, it's by Kojin: https://forums.pcsx2.net/Thread-Post-your-PCSX2-cheats-patches-here?pid=619847#pid619847
I'm running d82d25cc102b26275dba952fa9d02abf87df3ea8 and I was able to fix the black plane issue on Vulkan by setting Blending Accuracy to Minimum. Any value higher than that will result in the black planes. (On Direct3D 11 and 12, Blending Accuracy set to Medium or lower will also fix this issue.)
It's hard to see in this screenshot (I'm only just realizing that testing black planes with a nearly-black skin was a stupid idea...) but the cel-shaded-like borders are still present.
This does not fix some of the other issues, such as Stonehenge's effects causing some insane blur and the shockwaves rendering as rectangles, but at least the black planes don't need cheats or patches now.
Sounds like setting blending on minimum simply skips over the effect that's being broken. As for stonehenge's rectangles, might be the same issue the sun's flare texture is facing.
@coornio Can you test if Preload Frame Data fixes the black plane?
preload works (iirc), but as soon as you swap renderer or change a setting, it breaks again and never recovers.
Note that if you have no-interlacing cheats enabled, Preload Frame Data is somehow not needed in SLUS-20152. Is it actually some ungodly intertwining of GS voodoo here at play, or were "extra fixes" added to the patch?
I'm willing to test patches further if the patch could be adjusted for the PAL version. Gave it a try regardless but as expected it would not work as-is. Got a bunch of messages like the following instead, and the game blacked out, broke audio too:
sceGsSyncPath: DMA Ch.1 does not terminate <D1_CHCR=3c1a0155:D1_TADR=00000010:D1_MADR=ff595438:D1_QWC=00007ff5> <D2_CHCR=70000005:D2_TADR=01ffed10:D2_MADR=01ffed20:D2_QWC=00000000> <VIF1_STAT=10000c02:GIF_STAT=00000000>
A little late but seems like nobody posted PAL versions of those patches so here they are:
gametitle=Ace Combat 04 - Shattered Skies (E) SCES_504.10;1) Game CRC = 0x1B9B7563
comment=black plane fix
patch=1,EE,00143E30,word,3F02FFFF
patch=1,EE,002A1ED4,word,FFFFFFFF
comment=Sun flare fix
patch=1,EE,0011814C,word,3C04FFFF
patch=1,EE,00118150,word,00000000
patch=1,EE,00118154,word,3484FFFF
patch=1,EE,00118158,word,00000000
Sun one works pretty well for disabling the broken effect, black plane fix seems to need the no-interlace code though
Is there any insight into how/why the interlacing patches could sorta address the issue?