dvdmth wrote:
Are people with problems running on NTSC or PAL hardware?
Also, there are two versions of SMB3 on NTSC (GoodNES calls them PRG0 and PRG1 - other ROM sets, such as No-Intro, use REV0 and REVA). I haven't looked at the two versions to see if the IRQ code is different between them, but one might want to try both versions in case.
It is worth noting that the status bar should NOT look 100% glitch-free. It is perfectly normal for a small glitch to appear on the first line of the status bar (this is caused by the DPCM channel's DMA fetches, which cause the IRQ code' timing to get offset). That said, I don't think the status bar should jump vertically during gameplay (at least I don't remember ever seeing it when playing the game on a real NES).
To answer these questions:
1. NTSC
2. SMB3 PRG1
3. I am aware of the flickering part of the scanline, that is normal. When the whole status bar area shakes up and down constantly, that is incorrect behavior.
I have tested the PowerPak in my Famicom AV and my friend's NES Top Loader and the jumping status bar is the same for both. Additionally, the status bar jumps in Kirby, MM3, Startropics, in short whenever the effect is used on the MMC3/6.
On blargg's MMC3 tests, the PowerPak with v1.11 fails all but test four. Here are the detailed results, everything but the failure number is copied from blargg's document accompanying the ROMs:
1.Clocking - Failure #3
----------
Tests counter operation. Requires support for clocking via manual
toggling of VRAM address.
3) Should decrement when A12 is toggled via $2006
4) Writing to $C000 shouldn't cause reload
5) Writing to $C001 shouldn't cause immediate reload
6) Should reload (no decrement) on first clock after clear
7) IRQ should be set when counter is decremented to 0
IRQ should never be set when disabled
9) Should reload when clocked when counter is 0
2.Details - Failure #2
---------
Tests counter details.
2) Counter isn't working when reloaded with 255
3) Counter should run even when IRQ is disabled
4) Counter should run even after IRQ flag has been set
5) IRQ should not be set when counter reloads with non-zero
6) IRQ should not be set when counter is cleared via $C001
7) Counter should be clocked 241 times in PPU frame
3.A12 Clocking - Failure #4
--------------
Tests clocking via bit 12 of VRAM address.
2) Shouldn't be clocked when A12 doesn't change
3) Shouldn't be clocked when A12 changes to 0
4) Should be clocked when A12 changes to 1 via $2006 write
5) Should be clocked when A12 changes to 1 via $2007 read
6) Should be clocked when A12 changes to 1 via $2007 write
4.Scanline Timing - Passed
-----------------
Tests basic timing for scanlines 0, 1, and 240.
2) Scanline 0 time is too soon
3) Scanline 0 time is too late
4) Scanline 1 time is too soon
5) Scanline 1 time is too late
6) Scanline 239 time is too soon
7) Scanline 239 time is too late
5.MMC3 Rev A - Failure #2
------------
Tests MMC3 revision A differences (tested with Crystalis board).
2) IRQ should be set when reloading to 0 after clear
3) IRQ shouldn't occur when reloading after counter normally reaches 0
6.MMC3 Rev B - Failure #2
------------
Tests MMC3 revision B differences (tested with Super Mario Bros. 3 and
Mega Man 3 boards).
2) Should reload and set IRQ every clock when reload is 0
3) IRQ should be set when counter is 0 after reloading