Re: [hatari-devel] WinUAE core freeze with ST emulation

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


Hi,

On sunnuntai 15 tammikuu 2012, Laurent Sallafranque wrote:
>  From my first tests :
> 
> winuae cpu works well for 68000, no prefetch, no cycle exact.
> It doesn't work for prefetch or cycle exact.

Cycle exact doesn't seem to be enabled by default.

> Do you have the same behaviour ?

Yes, if I disable prefetch from options, set 68000 / ST and save
options, it works.

Even just disabling prefetch and saving the Falcon options and
then booting Hatari with --machine st works fine.


> PS : I remind you that you have to save the config you want to test,
> quit hatari and restart it again to see the change, (there's a bug I
> still haven't found that disallow to change CPU on the fly (see a
> previous thread of mine).

If I boot with "--machine falcon --tos etos512k.img" and in
the settings select ST / 68000 / 8Mhz / TOS 1.02, them the old TOS
boots up fine too without saving settings, even with prefetch enabled.

However, if I save those settings and start Hatari with them, I still
get the same assert.  If I enable prefetch after booting, it works
fine after the forced reboot.

-> Is it only the CPU model which isn't right without saving config first?


When looking more into the assert:
$ gdb src/hatari
....
(gdb) run --tos etos512k.img
....
hatari: /home/eero/work/hatari/src/cycInt.c:378: 
CycInt_AddRelativeInterruptWithOffset: Assertion `CycleTime >= 0' failed.
....
(gdb) bt
....
#3  0xb7bf48b8 in *__GI___assert_fail (assertion=0x83fa407 "CycleTime >= 0", 
file=0x83fa228 "/home/eero/work/hatari/src/cycInt.c", line=378, 
    function=0x83fa460 "CycInt_AddRelativeInterruptWithOffset") at 
assert.c:81
#4  0x080e1341 in CycInt_AddRelativeInterruptWithOffset (CycleTime=-2164, 
CycleType=7358, Handler=INTERRUPT_VIDEO_ENDLINE)
    at /home/eero/work/hatari/src/cycInt.c:378
#5  CycInt_AddRelativeInterrupt (CycleTime=-2164, CycleType=7358, 
Handler=INTERRUPT_VIDEO_ENDLINE) at /home/eero/work/hatari/src/cycInt.c:338
#6  0x08124938 in Video_InterruptHandler_EndLine () at 
/home/eero/work/hatari/src/video.c:1814
....
(gdb) up 6
#6  0x08124938 in Video_InterruptHandler_EndLine () at 
/home/eero/work/hatari/src/video.c:1814
1814                    CycInt_AddRelativeInterrupt ( LineTimerBCycle - 
LineCycles + nCyclesPerLine,
(gdb) info locals
FrameCycles = 3072
HblCounterVideo = 1
LineCycles = 3072
PendingCycles = 2672
(gdb) print LineTimerBCycle
$1 = 400
(gdb) print nCyclesPerLine
$2 = 508

Yep, it's a fairly large negative value.

Note also that:
(gdb) print nHBL
$4 = 0


	- Eero



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