Date : Thu, 29 Sep 1994 14:17:12 WET DST
From : Bonfield James <jkb@...>
Subject: Re: CRTC and ULA emulation
Chris R. writes:
>I meant to ask about Exile, actually. What mode *does* it run in? it
>looks like mode 1 res, mode 2 colours. Is it fiddling the screen
>boundaries to shrink the screen and make it look less chunky? Or is it my
>eyesight again...
I think it's mode 2, but I'm not certain. It doesn't do anything fancy as I
recall other than shrink the screen a bit. This isn't done on the sideways RAM
version as it's got more memory available. (The screen shrinking also helps to
speed it up I guess, but the main advantage is extra memory.)
>How exactly do these games time it? Is it actually timed by instructions?
>If it is, then all the instructions would need to use exactly the right
>number of clocks! *Shudder*
They use one of the VIA clocks as timers to generate interrupts at a
particular time.
One obvious implementation is the following:
On a refresh interrupt:
set to mode A, colours A
set VIA timer to trigger in X ticks
On timer interrupt
set to mode B, colours B
You could probably also use a continous timer using the timer latching
schemes.
More complex schemes such as Exile have to vary the timers to move the colour
palette switching up and down the screen. This allows for the water boundary
on Exile to be shifted up and down, either by the 'tide' effect or my you
moving. I think also that the water surface - the single pixel high white line
- may also be done with a palette switch. But I'm not so certain on that.
>I still can't get my keyboard to work!
It's trickier than it appears. And yet when it is working you look back and
think "Well, there's not that much to it really!" :-)
James B.