From Nesdev wiki
Revision as of 18:29, 2 July 2017 by Zepper (Talk | contribs) (lternate IRQ timing: new section)

Jump to: navigation, search

As for the 2mb PRG, I'm not sure if the cart actually supports that much ROM, but the PRG registers apparently are 8 bits, and 8kb * $100 = 2048kb = 2mb. --Drag 03:05, 9 November 2011 (UTC)

IRQ related - Hard Drivin'

Suggested changes for the Mapper64 IRQ. It makes Hard Drivin' to work fine. No other games are affected with this change. Every cycle on 6502 is either a read or a write cycle. So, you update the IRQ counter in the next CPU cycle:

  • IF $C001 was written to after previous clock
    • reload IRQ counter with IRQ Reload value PLUS ONE
  • ELSE IF IRQ counter is 0
    • reload IRQ counter with IRQ Reload value

When the IRQ is clocked by the mapper (in scanline or cycle mode):

    • Decrement IRQ counter by 1
    • IF IRQ counter is now 0 AND IRQs are enabled
      • wait one M2 cycle, then trigger IRQ

Hard Drivin' works. --Zepper (talk) 17:57, 14 January 2014 (MST)

lternate IRQ timing

This is an hack to get 3 games working: Klax, Skull&Crossbones and Hard Drvin'.

When the IRQ is clocked by CPU or scanline modes

  • If the IRQ counter++ == IRQ latch:
    • If IRQs are enabled, trigger an IRQ 2 CPU cycles later.
    • Set IRQ reset flag.
  • If the IRQ flag is set (including previous $C001 write):
    • IRQ counter is set to zero.
    • IRQ reset flag is cleared.


  • Skull&Crossbones has a glitched scanlined at the top of the scorebar, but NOT on the continue screen. Plus, the bottom line of the scorebar is NOT missing.
  • Hard Drivin' works, but the title screen has 2 glitched scanlines. Upon a cruve, it's glitched with line segments.
  • Klax is perfect, no problems.

--Zepper (talk) 19:29, 2 July 2017 (MDT)