pcsx2 icon indicating copy to clipboard operation
pcsx2 copied to clipboard

Ace Combat 04 (Distant Thunder/Shattered Skies) - Protagonist plane is black in GSdx HW

Open FlatOutPS2 opened this issue 8 years ago • 23 comments

-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

FlatOutPS2 avatar Sep 03 '16 19:09 FlatOutPS2

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.

m4ti140 avatar Feb 01 '19 00:02 m4ti140

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

mirh avatar Feb 01 '19 22:02 mirh

Indeed, confirmed that no interlacing fixes this. Can somebody check it?

mirh avatar Aug 21 '19 11:08 mirh

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.

ghost avatar Aug 21 '19 13:08 ghost

When upscaling, black vertical stripes appear:

image

On GSdx debug mode this assertion is false:

image

iMineLink avatar Aug 29 '19 18:08 iMineLink

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

MrCK1 avatar Aug 29 '19 18:08 MrCK1

Yes, I mentioned on discord. I asked Greg what he thought, don't recall his answer.

tadanokojin avatar Aug 29 '19 18:08 tadanokojin

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.

mirh avatar Aug 29 '19 18:08 mirh

This game is not responsive to the hack, Ace Combat 5/Zero are.

ghost avatar Aug 29 '19 19:08 ghost

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.

PositronCannon avatar May 16 '20 00:05 PositronCannon

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.

VGkav avatar May 16 '20 02:05 VGkav

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.

PositronCannon avatar May 16 '20 22:05 PositronCannon

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: 000470

tadanokojin avatar May 17 '21 07:05 tadanokojin

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>

coornio avatar May 17 '21 09:05 coornio

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.

tadanokojin avatar May 17 '21 20:05 tadanokojin

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

knight-ryu12 avatar May 30 '21 05:05 knight-ryu12

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?

daninthemix avatar Aug 17 '21 05:08 daninthemix

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

PositronCannon avatar Dec 09 '21 02:12 PositronCannon

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.

gs_20220709173253_Ace Combat 4 - Shattered Skies_SLUS-20152

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.

gs_20220709171643_Ace Combat 4 - Shattered Skies_SLUS-20152

SlyAceZeta avatar Jul 09 '22 21:07 SlyAceZeta

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 avatar Jul 10 '22 16:07 coornio

@coornio Can you test if Preload Frame Data fixes the black plane?

lightningterror avatar Jul 11 '22 17:07 lightningterror

preload works (iirc), but as soon as you swap renderer or change a setting, it breaks again and never recovers.

refractionpcsx2 avatar Jul 11 '22 17:07 refractionpcsx2

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?

mirh avatar Jul 19 '22 15:07 mirh

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 image

Mc-muffin avatar Sep 26 '22 20:09 Mc-muffin

Is there any insight into how/why the interlacing patches could sorta address the issue?

mirh avatar May 12 '23 23:05 mirh