dirkwhoffmann / virtualc64

VirtualC64 is a cycle-accurate C64 emulator for macOS
https://dirkwhoffmann.github.io/virtualc64
Other
356 stars 33 forks source link

Vandalism demo not working #379

Closed dirkwhoffmann closed 6 years ago

dirkwhoffmann commented 6 years ago

VirtualC64:

irq-ack-vicii-fault

Vice 3.1:

irq-ack-vicii
dirkwhoffmann commented 6 years ago

Adding one additional delay cycle when raising and clearing the IRQ line in VIC::poke seems to fix the issue:

rasterirq

Todo items:

  1. Check what VICE is doing in their VIC implementation (delay cycles on the IRQ line)
  2. In Hoxs64's VIC implementation, I found the following comments:

      // vandalismnews64 wants a 1 clock deplay.
      // passes the rastercompareirq beta test."

Find out what demo could be meant and which test is "rastercompareirq beta"? We should test VirtualC64 with those programs.

Ottavius commented 6 years ago

https://csdb.dk/release/download.php?id=172339

Alessandro1970 commented 6 years ago

in HOSX ...Fix VIC where a write to the raster compare register was causing a raster IRQ to occur one clock too soon. This fixes "Vandalism News #64" http://csdb.dk/release/?id=138976 reported by iAN CooG/HVSC.

dirkwhoffmann commented 6 years ago

Thanks for the link, that was quick. The demo does not work, even after applying the irq-ack fix.

vandalism
dirkwhoffmann commented 6 years ago

Vandalism demo is working now. I should have read the Hoxs64 description more thoroughly which was posted above by Alessandro (" raster compare register"). Delaying the IRQ event by one cycle when poking into this register makes the demo fly.

vandalism