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 ]


Le 03/07/2022 à 15:08, Thomas Huth a écrit :
Am Sun, 26 Jun 2022 12:35:02 +0300
schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:

Hi,

On 26.6.2022 9.27, Thomas Huth wrote:
Am Fri, 24 Jun 2022 17:32:26 +0300
schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:
Hatari hard-freezes with following:
[...]
7. In XaAES, click on "Process" -> "Quit all Apps" menu item

8. Then click on "Process" -> "Quit XaAES"
=> After second or two, Hatari freezes completely.

I cannot reproduce the issue - for me, XaAES simply gets restarted in that
case. Which version of EmuTOS are you using?

Freeze happens with EmuTOS v1.1.1 (which is going to be shipped with
Hatari), but not with the latest Git version of EmuTOS.

Can you reproduce it with EmuTOS v1.1.1?

Yes, I can reproduce it with EmuTOS v1.1.1 - and only if CPU cycle exact
mode is enabled, too. Seem like 030 + MMU + CE is pretty much defunc in
Hatari right now. In m68k_run_mmu030() I can see:

					if (!currprefs.cpu_cycle_exact) {

						count_instr (regs.opcode);
						do_cycles (cpu_cycles);

						cpu_cycles = (*cpufunctbl[regs.opcode])(regs.opcode);
					} else {
#ifdef WINUAE_FOR_HATARI
						currcycle = 0;
#endif
						(*cpufunctbl[regs.opcode])(regs.opcode);
						wait_memory_cycles();
					}

However, if cpu_cycle_exact is enabled, currcycle is often still 0 after
the emulated instruction has been run via cpufunctbl.
Looks like cpufunctbl is either pointing to the wrong table, or the table
has been somehow generated badly? ... no clue yet ... Nicolas, do you maybe
have an idea?

Hi

I need to look in more detail, but I guess it's possible that with cycle exact some instructions are 0 cycles because of emulated behaviour where tail/head cycles for some instruction are "overlapping"

running this with emutos 1.1.1 :

/hatari --tos tos.img --machine tt -s 14 --fast-boot on --mmu on --log-level debug --cpu-exact on

I see that after a while it loops on these instructions :

cpu video_cyc=531003 651@261 423252551 : 00e0d612 2039 0000 04ba move.l $000004ba [*00000a4a],d0 cpu video_cyc=531003 651@261 423252551 : 00e0d618 b081 cmp.l d1,d0 cpu video_cyc=531003 651@261 423252551 : 00e0d61a 6c0e bge.b #$0e == $00e0d62a (F) cpu video_cyc=531003 651@261 423252551 : 00e0d61c 1038 fa01 move.b $fa01,d0
mfp read gpip fffa01=0xb1 video_cyc=531003 651@261 pc=e0d61c instr_cycle 0
IO read.b $00fffa01 = $b1 pc=e0d61c
cpu video_cyc=531010 658@261 423252558 : 00e0d620 0800 0005 btst.l #$0005,d0 cpu video_cyc=531010 658@261 423252558 : 00e0d624 66ec bne.b #$ec == $00e0d612 (T)

Is that what you see ?




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