VOGONS


UniPCemu progress

Topic actions

Reply 780 of 787, by superfury

User metadata
Rank l33t++
Rank
l33t++

Just fixed the ET4000/W32i/p emulation to properly render the sprite again. It was using the old attribute controller output field overrides instead of the proper latched output it's supposed to use. This fixes the Windows mouse cursor to render properly when hardware accelerated again.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 781 of 787, by superfury

User metadata
Rank l33t++
Rank
l33t++

Managed to get Windows 3.1 booting into standard mode again. Hopefully no more crashes now.
Although I did experience a 'Stack error. System halted.' running edit.com inside MS-DOS 6.22 after typing a little bit?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 783 of 787, by superfury

User metadata
Rank l33t++
Rank
l33t++

Managed to fix faults and interrupts combined with the EXT bit. Now that should be handled correctly (instead of the EXT bit incorrectly affecting the interrupt processing itself).

CheckIt 3.0 still crashes during it's Interrupt Bug test, however (on a near RET to a 0000 MOV [BX+SI],AL followed by FFFF #UD). The near RET looks fine, but the stack seems weird or corrupted somehow.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 784 of 787, by superfury

User metadata
Rank l33t++
Rank
l33t++

Right now running Memtest86 4.3.7 on my emulator. So far gotten to Test #7 [Moving inversions, 32 bit pattern] Pattern efffffff with 0 errors. So the BIU is probably running without errors. Though that takes an entire weekend and 6:30:23 of emulated time (running at 10% realtime speed, so that's actually 10 times longer in reality).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 785 of 787, by superfury

User metadata
Rank l33t++
Rank
l33t++

Found a little bug in the descriptor loading of the LTR instruction and loads of TR during TSS task switching. It was interpreting the results of the faulting/pending descriptor load incorrectly during pending operations, handling it as a fault-type interruption when it shouldn't.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 786 of 787, by superfury

User metadata
Rank l33t++
Rank
l33t++

Hmmm... Plain win32s 1.3o runs fine (FreeCell including #NM faults for emulation), but Pink Panther in Hocus Pokus Pink hangs during a #NM with it's installed #NM exception keeps returning to the #NM instruction non-stop?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 787 of 787, by superfury

User metadata
Rank l33t++
Rank
l33t++

Just adjusted the SMM save state map for SMI and RSM to be loaded and saved through the BIU as well, not using direct memory accesses anymore. This is done the same as the protected mode memory accesses.

That should make all normal CPU operations to be using the BIU to access memory in all cases, no longer using the old direct memory accesses.
Edit: From what I can see, only the emulator's internal BIOS and it's callbacks (required for booting the emulator) use the old from-CPU direct memory accesses. There's modr/m too, but those should only be in register mode, thus unaffected (IMUL register, LXS register(the offset one), cr/dr/tr registers).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io