It is currently Thu Jul 19, 2018 10:23 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Sat Apr 07, 2018 9:59 am 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3127
Location: Brazil
In Mega Man 3, (as you know) the boss select screen has a half-glitched scanline over Shadowman's box. I don't know why, but even my emulator gettting a "passed" through all MMC3 IRQ tests, such scanline isn't there! There's a bit of line flickering over Magnetman's box (at right) though. I already tried to hack the IRQ timing, but it doesn't seem to be the problem.

Any thoughts? Is that possibly related with my PPU gfx engine?


Top
 Profile  
 
PostPosted: Sat Apr 07, 2018 10:13 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7443
Location: Chexbres, VD, Switzerland
Quote:
I don't know why

It's quite simple, the game writes to $2006.2 way too early so that the PPU is still rendering the scanline, which causes the PPU to instantly render the playfield from the new adress. They should have waited until HBlank to change the address if they wanted it to look good.


Top
 Profile  
 
PostPosted: Sat Apr 07, 2018 10:31 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20273
Location: NE Indiana, USA (NTSC)
From Game bugs:
On the boss select screen, the scanline above Shadow Man looks wrong.


Top
 Profile  
 
PostPosted: Sat Apr 07, 2018 10:34 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1418
I think Zepper's problem here isn't that the game is glitchy, but that it's glitchy in the wrong way - it's possible you're not emulating the PPU's rendering pipeline correctly.

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
PostPosted: Sat Apr 07, 2018 11:53 am 
Online
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10612
Location: Rio de Janeiro - Brazil
I would bet on something related to the scroll, the exact way in which the temporary end the actual VRAM address registers are affected, something like that.

The IRQ may be firing at the correct time (although it would be a good idea to verify this in this specific situation, instead of relying on test results alone), but if the PPU writes that follow aren't interpreted accurately, the end result will still differ.


Top
 Profile  
 
PostPosted: Sat Apr 07, 2018 12:57 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3127
Location: Brazil
tepples wrote:
From Game bugs:
On the boss select screen, the scanline above Shadow Man looks wrong.

Zepper wrote:
In Mega Man 3, (as you know) the boss select screen has a half-glitched scanline over Shadowman's box.
:beer:

It's only at the boss select screen. The rest of the game is okay. About $2006, I could fix Kick Master by delaying the PPU address reset (loopy_v = loopy_t) by 1 CPU cycle. Also, James had suggested to avoid PPU address > $2FFF. None of these things had effect on Mega Man 3.

I don't use the background rendering exactly as Nintendulator does, but a real-time pixel rendering. Yes, fetching tiles at every cycle. What kind of pipeline is missing that affects scrolling?


Top
 Profile  
 
PostPosted: Sat Apr 07, 2018 2:58 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1418
During a single 8-pixel chunk, the real PPU only reads the VRAM address twice (once for tile number, once for attribute) and increments it once, so attempts to manually update it via $2006 can cause some writes to happen before the increment and others to happen after it, resulting in noticeable shaking that you might not get with your "per pixel" method.

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
PostPosted: Mon Apr 09, 2018 6:13 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3127
Location: Brazil
My PPU rendering engine is off by 16 pixels. As expected, tile/CHR fetching should NOT start at PPU cycle 0, but 16 dots before the ending of the previous scanline. It explains the annoyances until then, unless someone is able to give me an hand, but... dunno.


Top
 Profile  
 
PostPosted: Fri Apr 13, 2018 10:49 pm 
Offline

Joined: Mon May 25, 2009 2:20 pm
Posts: 56
I know this is not related to emulators how they do things, but just wanted to say..

in Megaman 3 Improvement, i manually edited the coding of every individual IRQ where a scanline glitch would be (stage select, weapon pause menu, and nearly all boss fights where they appear)..
by just squeezing in a simple "ldx #$xx, dex, loop backwards to dex ..to force pushing the "scanline glitch" into the H-blank time thing ..to fix them all


Top
 Profile  
 
PostPosted: Sat Apr 14, 2018 4:54 am 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3127
Location: Brazil
kuja killer wrote:
I know this is not related to emulators how they do things, but just wanted to say..

in Megaman 3 Improvement, i manually edited the coding of every individual IRQ where a scanline glitch would be (stage select, weapon pause menu, and nearly all boss fights where they appear)..
by just squeezing in a simple "ldx #$xx, dex, loop backwards to dex ..to force pushing the "scanline glitch" into the H-blank time thing ..to fix them all

I'd like to know more about it, really. I want to spot the problem of $2006 vs IRQ triggering.


Top
 Profile  
 
PostPosted: Sat Apr 14, 2018 7:18 am 
Offline

Joined: Mon May 25, 2009 2:20 pm
Posts: 56
okay, if you'd like to try it, do this:
use fceux/fceux hex editor to watch in "real-time"

3C2DD:
D057A208CAD0FDAD0220A57A29010A0A09228D0620A5794A4A4A291F09608D0620A57A290305FF8D0020A5798D0520A998D0910000

3C4E0:
CF

-------------
now, edit 3C2E0 to control where the "glitched line" is shown on the screen. this is the LDX value i was talking about earlier. you gotta just "fine tune" it until it's hidden off the screen in that so-called H-blank thing.
it's already set to 08 in the above example as that hides it.

if you start with 01, the line will appear above shadowman as it was, and the higher you go, the farther to the right the line will be hidden. and 08 hides it completely.

at 0D, the line will go across the entire screen, and eventually keep getting smaller as you go higher, until hidden on the next scanline


Top
 Profile  
 
PostPosted: Tue Apr 24, 2018 9:48 pm 
Offline

Joined: Mon May 25, 2009 2:20 pm
Posts: 56
is everything okay now ??
wondered why no reply from ya yet.

If you need any fixes for any of the other mm 3's irq's i'll post them too.


Top
 Profile  
 
PostPosted: Wed Apr 25, 2018 8:06 am 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3127
Location: Brazil
kuja killer wrote:
is everything okay now ??
wondered why no reply from ya yet.

If you need any fixes for any of the other mm 3's irq's i'll post them too.

Nope. It's not a matter of fixing the software, but the hardware emulation. I'm not getting that glitched scanline, which IS supposed to happen.


Top
 Profile  
 
PostPosted: Wed Apr 25, 2018 2:37 pm 
Offline

Joined: Mon May 25, 2009 2:20 pm
Posts: 56
oh i see, so i guess i wasnt any help then ? bummer, darn. :( well okay then


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: Gilbert and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group