Re: [hatari-devel] User input during fast-forward

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]




Am 04.08.2024 um 16:25 schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:

Hi,

On 4.8.2024 15.33, Uwe Seimet wrote:
Because many interactions still work fine in fast-forward mode, one
option is user just disabling fast-forward while doing such interactions.
It is really inconvenient that when you edit and compile code you often
need to switch between regular and full speed, in order to have the benefit
of fast compilation on the one hand and working keyboard repeats on the
other.

Hm.  What if GEMDOS HD could enable fast-forward while programs matching a given pattern would run?

Or maybe an option for automatically fast-forwarding certain things that GEMDOS HD can recognize:
--fast-forward <off|on[:boot,ttp,tos,prg,app]>

Where:
* boot: enable fast-forward from emulation start/reset until TOS opens "*.INF" file
* ttp: enable fast-forward from "*.TTP" program Pexec() until its Pterm()
* tos/prg/app: same for *.TOS, *.PRG. and *.APP

For example:
--fast-forward on:boot,ttp,tos


Comments?

- Eero


Again: I think you might be interested in how Previous handles this. 

Previous has a mode that is called „realtime mode“. In this mode some delayed interrupts are coupled to the host’s real time instead of the emulated machine’s CPU cycles. This is especially true for the emulated timers which are used by the guest system to calculate double click intervals and similar things. This makes it possible to run at arbitrary speeds without messing with those timers. Double click works at fast forward speed and the clock ticks normally.

As a little extra we only run at full speed while the CPU is in user mode. This makes it possible to save host CPU time while the guest system is idle. Not sure this works with Atari, but it is only an extra anyway. I appended a short video to demonstrate the feature. You can see an application starting while the clock ticks. In the status bar you see how the speed varies while code is executed in user mode.


For details have a look at cycInt.c, host.c and includes/m68000.h: https://sourceforge.net/p/previous/code/HEAD/tree/trunk/src/
Unfortunately this is based on the old cycInt.c from Hatari. So some porting efforts will be required. But it might solve your problems.

Attachment: demo.mp4
Description: video/mp4




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/