Re: [hatari-devel] Hatari freeze on XaAES quit with TT + MMU + 24-bit emulation |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Hatari freeze on XaAES quit with TT + MMU + 24-bit emulation
- From: Thomas Huth <th.huth@xxxxxxxxx>
- Date: Sat, 9 Jul 2022 07:32:21 +0000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1657351944; bh=FR1IbxOiYEiE9vVWxPxhLQvptzneWBLtSSNX/MlN5yA=; h=Date:From:To:Subject:From; b=EjJ3yausHazksqEekXpvrRgWSEqWL5EpU6/Bpor7ODHtGhU9MFCQgr+ITnqSk7lfm JmxTuUqnplQ9dTF2jz6d6CCn//MktS5YN46cmxBPT105fpZJWv9BnB4t/SDGBWMKZP S7F/se1RNH1lEN8tVvR/FyHK/cio80SX1Tddy7tNSGuGJqkm/Engh5CMNKRwhAvQSz eN2bcYnrINSB5I79uuwJ+2o9qVQKXLyPCX/HDk7RJI6RN1rMH7SfNLJtUtD8+OlK/W Mx+qP16K8T8PPZ1LB+ylALIGEcvJwpTmI29d3qgDjMFFRdGRxiKlfPbeJdhdA5EEeV Euv7JkaDDXNqw==
Am Wed, 6 Jul 2022 22:31:38 +0200
schrieb Nicolas Pomarède <npomarede@xxxxxxxxxxxx>:
> Le 06/07/2022 à 22:19, Nicolas Pomarède a écrit :
>
> >> But when the hang happens, it seems like the emulated code is looping
> >> through the whole cleared memory, only executing op_0000_35_ff() in
> >> cpuemu_35.c. And this never seems to add any cycles anymore, thus Hatari
> >> completely hangs in the m68k_run_mmu030() loop, without ever
> >> generating an
> >> interrupt and thus not reacting to user input anymore...
> >>
> >
> > I had the feeling the hang happened on the above loop, but I will let
> > hatari runs for longer until I read the point you mention (where input
> > is not processed anymore)
> >
>
> no lock here when running :
>
> ./hatari --tos etos1024k.img --machine tt -s 14 --fast-boot on --mmu on
> --log-level debug --cpu-exact on --addr24 on
>
> it boots to gem desktop
>
> Do I really need to use XaAES to see this freeze or can it be seen with
> just emutos 1.1.1 ?
I had another try, but it only reproduces with XaAES as far as I can tell.
While looking at the code, I noticed that we have some differences between
WinUAE and Hatari in the set_x_funcs() function:
--- hatari/src/cpu/newcpu.c 2022-07-09 08:55:17.109584474 +0200
+++ winuae/newcpu.cpp 2022-07-03 14:48:00.686757771 +0200
@@ -1047,10 +979,15 @@
x_get_byte = get_byte_dc030;
}
}
- x_do_cycles = do_cycles;
- x_do_cycles_pre = do_cycles;
- x_do_cycles_post = do_cycles_post;
-
+ if (currprefs.cpu_cycle_exact) {
+ x_do_cycles = do_cycles_ce020;
+ x_do_cycles_pre = do_cycles_ce020;
+ x_do_cycles_post = do_cycles_ce020_post;
+ } else {
+ x_do_cycles = do_cycles;
+ x_do_cycles_pre = do_cycles;
+ x_do_cycles_post = do_cycles_post;
+ }
} else if (currprefs.cpu_model < 68020) {
// 68000/010
if (currprefs.cpu_cycle_exact) {
@@ -1518,19 +1455,6 @@
dcache_lput = put_long030_cicheck;
dcache_wput = put_word030_cicheck;
dcache_bput = put_byte030_cicheck;
- if (currprefs.cpu_data_cache) {
- dcache_lput = mem_access_delay_long_write_ce030_cicheck;
- dcache_wput = mem_access_delay_word_write_ce030_cicheck;
- dcache_bput = mem_access_delay_byte_write_ce030_cicheck;
- } else {
- dcache_lput = mem_access_delay_long_write_ce020;
- dcache_wput = mem_access_delay_word_write_ce020;
- dcache_bput = mem_access_delay_byte_write_ce020;
- }
- } else if (currprefs.cpu_data_cache) {
- dcache_lput = put_long030_cicheck;
- dcache_wput = put_word030_cicheck;
- dcache_bput = put_byte030_cicheck;
}
}
}
But I already tried to adapt Hatari and it makes no differnce for this
problem. Anyway, should we still adjust this before the release?
Thomas