<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 24 Jan 1995 15:44:14 GMT
From   : David Alan Gilbert <gilbertd@...>
Subject: Re: REVS Timing

> > I found it impossible to keep exact time AND get good performance.
> > On your faster PCs and in machine code, the task becomes feasible.
> > It's really only REVS which is fussy which is why gave up and implemented
> > a REVS cheat. It's a lot of effort just for the benefit of one game.
> > Getting the timing absolutely bang-on seems to me a real herculian
> > task. I can just imagine the agony of watching the REVS interrupts
> > scroll very, very slowly up the screen...
> > 
> 
> Well, I think that as long as the via timeouts are checked for after every
> opcode there should not be a problem, even if the actual opcode ticks are
> not quite right.

Doesn't help - my emulator checks after each instruction and still has Revs
trouble.

>  The problem seems to be caused by the variable delay
> between when the IRQ should have been flagged and then it actually occurs.
> Checking after every code should (at least) reduce the problem.  I just
> wonder how Revs on the real bbc manages to deal with different interrupt
> times, depending on when the timer irq actually happens.  Compare, for
> instance you're doing a 7 tick opcode and a 3 tick one.  Say the irq
> happens just after the instruction starts.  The first has a delay of 14
> ticks, and the latter 10.  Any ideas how revs actually deals with this
> slight error, which would increase over time.

Not too mention the indeterminate amount of time caused by cycle extension
when accessing Sheila.

I think it does a timing loop somewhere - I see a small run near the start
of accesses to User VIA timer 2, I'm guessing its doing a timing loop - and then
using that to set something else up - but thats pure guess work - I haven't
yet done
any serious disassembly of it.

Dave
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>