Re: [hatari-devel] Lower emulation ressources in 68000 cycle exact mode

[ Thread Index | Date Index | More Archives ]


On 9.8.2021 0.04, Nicolas Pomarède wrote:
I just pushed some changes to do_cycles_ce() to require a little less cpu ressource. This function is called after every cpu instruction is emulated, so even small optimisations can have positive effects.

In the case of the Amiga and WinUAE, emulation needs to update other components (blitter, video, audio, ...) every 2 cycles during the emulation of each cpu instruction.

In the case of Hatari when emulating STF/STE machines, this is not required. So we can replace this loop :

while ( <n times> )
  do_cycles ( 1 * CYCLE_UNIT );

with :
   do_cycles ( n * CYCLE_UNIT);

From a quick benchmark when running some demos, I go from ~134 emulated VBL/s to 143.3 VBL/s, which gives 7% increase in emulation speed.

It's only when running in STE mode and blitter is enabled that we use the slower "sub cycle" version to emulate that part of the last cpu instruction can run in parallel with the blitter.

Nice! That's a good improvement, especially
considering that it does not have any impact
parts that need to run with sub cycle code.

	- Eero

Mail converted by MHonArc 2.6.19+