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