David wrote: ↑September 8th, 2018, 8:22 pm
On second thought, I'm not sure if "<=" (BLE, 0x6F) is the correct comparison. Maybe it should be "<" (BLT, 0x6D) instead?
Consider this:
Suppose that the previous waiting ended when TickCount() returned some T value. Then previous_ticks = T.
Then suppose that frame_time = 5.
Now, the loop condition will be true when TickCount() returns T+5, because (T+5) - T <= 5 is true.
So the loop will stop when TickCount() returns T+6 !
This means that 6 ticks have elapsed since the end of the previous waiting, with is 1 tick (1/60 second) too much!
At least this is what I think.
Here is a disk image of Prince of Persia for Mac with the patch applied.
Indeed, this fixes the slowness.
(I used Super ResEdit, which has a built-in disassembler and hex editor.)
Just wanted to throw in my thanks for this, I did a playthrough of the Mac port a while ago and the speed fix was awesome:
The funny thing is that even the rare Ubisoft releases that included the Mac port are slower than DOS and since those were my introduction to this version I always thought that well, the Mac version is just supposed to be slower for some reason.
Re: Mac PoP emulation
Posted: May 8th, 2022, 5:10 pm
by David
Recently I found some sites where you can play Mac PoP in the browser.
https://classicreload.com/mac-prince-of-persia.html
The interesting part is that it does not directly emulate a Mac.
Instead it runs ARDI Executor (a Mac(OS) emulator) within DOSBox.
I already knew about Executor for Windows (from PoPUW), but I didn't know it also existed for DOS.