IOC IR pin (FLYBK) on a GPU

Discuss VIDC, translation to VIDC20 and emulation of VIDC
JonAbbott
Posts: 1682
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

IOC IR pin (FLYBK) on a GPU

Postby JonAbbott » Mon Feb 20, 2017 11:59 am

Emulating this pin, which on the face of it appears trivial, is somewhat of a problem. Although you can emulate the pin going high at the end of the display and going low during display (as ADFFS does currently), game code won't see the low event as its not executing during the frame blit.

The blitter currently blits the full frame in one go, triggering a virtualized T0/T1 IRQ if either pass zero at the end of a raster. This is sufficient for all (that I've seen at any rate) games that palette swap and is very CPU efficient. This isn't remotely close to what happens on a physical Arc through, as VIDC works in parallel to ARM.

A solution would be to blit one raster, then allow code to continue executing until it's time to plot the next raster, more closely emulating the hardware. As there's no Timer API, I can't currently implement the required IRQ code.

Something to revisit if/when a suitable API is added to RISCOS.

Return to “VIDC”

Who is online

Users browsing this forum: No registered users and 1 guest