VOGONS


Reply 40 of 40, by superfury

User metadata
Rank l33t++
Rank
l33t++

The prefetch queue will load 17+EA+8(Two word memory accesses)-8(memory time) divided by 4 bytes from memory after the pop, so the prefetch buffer should be full after the pop. Don't know what the previous instruction leaves yet though. It should have at least 16 cycles left for the next to be loaded correctly?

Edit: I've modified the CPU and MMU to store the data written to memory during execution of an instruction. Then, after it's processed the reads to the Prefetch Input Queue, it writes the data that's supposed to have been written to memory. 8088 MPH still reports being 4% off at 1604 cycles, but the credits sound better than ever! 😁

Edit 2: It seems that some software is currently broken because of some yet unknown reason (tried multiple software. In this case running Bill & Ted's Excellent Adventure after terminating Prince of Persia using Ctrl+Q. It already hangs when displaying the first image and starting the animation. Zool also hangs for some still unknown reason (after displaying the main menu logo ZOOL image)).

Current MIPS rating when running a more cycle-accurate 4.77MHz 8088 CPU:

MIPS x86EMU_20160609_2008.png

Although it should be pretty cycle-accurate, for some reason many of those numbers don't approach 1.00 that much?

CPU core: https://bitbucket.org/superfury/x86emu/src/e1 … cpu.c?at=master
8086&8088 core: https://bitbucket.org/superfury/x86emu/src/e1 … 086.c?at=master
NEC V20/V30(80186/80188) core: https://bitbucket.org/superfury/x86emu/src/e1 … V30.c?at=master

Anyone can see what's going wrong here?

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