SmokeMonsterPacks / Super-NT-Jailbreak

Custom "Jailbreak" firmware for the Analogue Super NT
638 stars 35 forks source link

Glitches: Final Fantasy 3 (USA) #27

Closed masterninjah closed 3 years ago

masterninjah commented 6 years ago

20180219_031509 1

garbled backgrounds in final fantasy 3 right after the fight with vargus. it goes back to normal after you go to another screen. using the original cart, not sure what revision it is. im using the jailbreak firmware also

update: this has happened twice now, this time at the raft ride shortly after the fight with vargus

i also have the problem with the 4x scale making my screen smaller than what i set it to. if i turn the scaling off it pops back to normal then i can set it back to 4x

gammy commented 6 years ago

I'm curious: @masterninjah, does this happen on the stock firmware (as of writing, v4.1) as well?

masterninjah commented 6 years ago

im not sure, i havent played this on anything but the jailbreak firmware

XOmniverse commented 6 years ago

I've been playing a repro of the Final Fantasy VI - Ted Woosley Edition hack and noticed the same issue. I had chalked it up to the hack being weird. It occasionally happens whenever leaving a battle and is fixed by entering the menu/entering town/entering another battle/etc.

OP stated he's using the original cart so I doubt he can get an md5sum of the ROM.

saftle commented 6 years ago

Ah you're right. I should have read the issue in its entirety.

masterninjah commented 6 years ago

not sure if this helps but my version of the game is the one where you automatically pick up the cider after fighting a guy instead of having to pick it up off the table after the fight. im guessing it would be revision 1 because of that.

frederic-mahe commented 6 years ago

@masterninjah it seems that byuu and SNEScentral only report one US version of the game (SNS-F6-0), no other revision.

masterninjah commented 6 years ago

well my game is different than the one on youtube for that part and i have revision 1 of ff3 in my smokemonster 4.2 rom pack. i couldnt even take the cider off the table, on the youtube video he takes it off and it disappears. this shows what im talking about https://youtu.be/iGNskqYu2_0?t=10588. i got a message saying i got the cider right after the fight and walking up to the table did nothing

frederic-mahe commented 6 years ago

You are right, there is a Final Fantasy III (USA) (Rev 1) in SmokeMonster's pack (SHA256: 10eccc5d2fab81346dd759f6be478dcb682eef981e8d3d662da176e1f9a996bc), but no Rev 0 (SHA256: 0f51b4fca41b7fd509e4b8f9d543151f68efa5e97b08493e4b2a0c06f5d8d5e2).

It seems you have a cartridge that has not been referenced yet by SNEScentral :+1:. Could you open the cartridge and take a picture of the PCB? (example).

masterninjah commented 6 years ago

20180222_022042 1

masterninjah commented 6 years ago

lol cool, i just looked up a speedrun and they dont even run this version. i could save about 3 seconds on their 5 hour run with this.

frederic-mahe commented 6 years ago

thanks @masterninjah you have this model. It is a Rev 0 as indicated on the largest chip (SNS-F6-0). That's a valid US cartridge.

SmokeMonsterPacks commented 6 years ago

Please re-test this issue with the new official firmware v4.3 using an original cartridge.

https://support.analogue.co/hc/en-us/articles/360000557452-Super-Nt-Firmware-Update-v4-3

masterninjah commented 6 years ago

this issue seems to be fixed with the latest firmware. im not 100% sure though because i think its random and doesnt happen every time. i did the raft ride again without a problem but it was at a later point in the game without cutscenes where it happened so who knows. this problem also happens after battles and i just did an hour and 15 minute level grind so i think its good.

ShinKaz commented 6 years ago

@masterninjah just wanna chime in and say I had a similar bug yesterday with Marvelous (original sfc cart), looked extremely similar as you picture... could not reproduce it though. (was coming out of a tent like 15mins into a new game) it was with the jb fw though. (I did not give the newest official fw a shot yet)

SmokeMonsterPacks commented 6 years ago

No follow up. Issue marked as resolved.

scotthammack commented 6 years ago

I just encountered this on JB6.5 in the same area in Final Fantasy III (USA) (Rev 1), but before the Vargus fight. I just came out of a random battle on Mt. Kolts and the graphics were glitched. I went into the menu and back and they went back to normal.

Hash: 10eccc5d2fab81346dd759f6be478dcb682eef981e8d3d662da176e1f9a996bc

neonstreetlight commented 6 years ago

This graphical glitch had happened to me once when returning to the menu in Prince of Persia on Jailbreak 6.4. I haven’t seen it happen again, but it is extremely hard to replicate since it was so seemingly random.

SmokeMonsterPacks commented 6 years ago

Closed until someone tests in JB v6.6. Please comment if it needs to be re-opened.

rumpleteazer commented 6 years ago

Can confirm this visual glitch is still happening on JB v6.6.

Had it once before boarding the raft from a save point and later after a battle. Both fixed by transition to another screen. I'm using an original cart.

buvk commented 5 years ago

Just wanted to report that I just experienced this twice within about 30 minutes in FFVI Relocalization Project using JB v6.6.

pearljammzz commented 4 years ago

EDIT I have unchecked the 64 sprite limit in the video settings and now the 2nd issue isn't there. That said, I have got the garbled backgrounds before so that still seems valid. I'll post if I am able to reproduce it consistently.

I have been playing through FF3/6 on the latest firmware (4.9) and it still happens. Only happened to me on Mt Zozo in World of Ruin. I did not test older firmware but I am glad to try if there is a suggested version that may be before some attempt at fixing this.

I am also seeing a lot of weird graphical glitches that I assume are connected. In certain instances characters will walk through/over the text box and this is most easily seen in the fight with Chadarnook in Owzer's basement. When Chadarnook is about to change forms you can see the new sprite form 'load' over the text box. Like I said, a very similar thing has happened in multiple cutscenes through the game but this one is easy to reproduce since there is a save right before. I can provide a save file if needed.

I am playing on a SD2SNES which is also on the latest firmware. Tested ROM on an original SNES and it doesn't have the issue that is present on the SuperNT.

bootsector commented 4 years ago

This is what fixed Final Fantasy III on MiSTer SNES core:

https://github.com/MiSTer-devel/SNES_MiSTer/commit/7559d08dd58c6ad028eb8931753e3cdee50c6ea4

This basically fixes SDRAM's refresh.

Maybe the above could serve as an insight for a potential fix for the Super NT.

redacted173 commented 4 years ago

Not sure how useful this is, but I tried to hit the bug with a SD2SNES. The problem in the intro I encountered is right after the fortress transitions to the scene with the overlook. A DMA from $E26EC0 (ROM) to $0 (VRAM) of size $2000 during the screen transition with $420B write at $C0275B ends early. The DMA ends before writing VRAM $006F (byte address) causing a large set of tile data to be from the previous scene. The $C2FFFF address is not expected on the bus.

Another weird thing is the $420B write had a value of $9 on the bus, but in the code it looks like it should have been $1. There were some weird transitions on the data bus from $01->$09->$01 on the LDA #$01 operand read. But this may not matter. I have the D3 and RD pin swapped in the traces below. The important characteristics are the extra address $C2FFFF and the early end at ROM address $E26F2E.

Unfortunately, I couldn't make a short test that hits this which doesn't require custom software and SD2SNES modifications. My cart extender is also of questionable quality, but I'm able to hit the same bug without it in.

Bad Tiles: ff6_snt_dma_bad_video

SNT Trace of DMA ending early: ff6_snt_dma_bad

SNT Trace of DMA running correctly: ff6_snt_dma_ok

1CHIP Trace of DMA running correctly: ff6_1chip_dma_ok

redacted173 commented 4 years ago

The attached zip file contains a bps (floating) patch against ff3 US 1.1: CRC-32: C0FA0464 SHA-256: 10ECCC5D2FAB81346DD759F6BE478DCB682EEF981E8D3D662DA176E1F9A996BC

It modifies ff3 (ff6) so it loops on the intro scene with the problem DMA. It looks for the missing DMA and will hang using an infinite loop if the problem is detected by checking VRAM for the old (stale) data. An 8b LFSR (seeded with the same value on reset) is used to produce a delay in frames prior to resuming execution for each loop iteration. The LFSR is stored in the first byte of SaveRAM. The loop works by reloading a full (minus audio) save state stored in the expanded ROM.

It's hit or miss as to whether it will actually have a problem but what I find speeds it up: (1) Let the ROM run and wait 1 minute for the scene to cycle 5-6 times. If this doesn't hit the problem go to (2). (2) Try a game reset and go back to (1). If this doesn't work then reset back to the SD2SNES menu by holding reset for a few seconds and go back to (1).

I can typically hit the problem in a few minutes by doing this. It's possible, but rare for it to hit the problem by just letting it loop in (1) for a long time.

All options in the SD2SNES menu are disabled (in-game hooks, region patch, brightness patch, etc). Not sure if this matters.

The trigger I normally use is continuous on ROM read from address $E26F2E, data value $54 which is the last successful read in the failed DMA.

EDIT: Also hits the bug on a SD card with the SNT JB firmware. SD2SNES is not required.

ff3us11_snt_issue27.zip

mattysaurus commented 3 years ago

Just ran into this bug using the latest non-JB firmware and a Super Everdrive X5. Rom is No-Intro patched with latest version of Ted Woolsey Uncensored Edition. Issue resolved itself after entering another battle.

re4mat commented 3 years ago

Tested on JB7.0 using 1.1 ROM patched with redacted173's patch above. Did not hit the bug. (Have not tried with the vanilla ROM, though.)