English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.OtherUAE (https://eab.abime.net/forumdisplay.php?f=54)
-   -   Some WHDLoad games running too fast in UAE4All2 (https://eab.abime.net/showthread.php?t=89561)

rsn8887 22 November 2017 21:46

Some WHDLoad games running too fast in UAE4All2
 
I am using UAE4All2 on Vita. It doesn't have a cycle-exact option. Several WHDLoad games (Flashback, Hostages, etc.) run too fast on the emulator. They run fine if booted from adf, also without cycle-exact. So it must be a WHDLoad problem. I'd rather not load those games from disk.

I am wondering, has anyone found a trick to get WHDLoad games to run at the correct speed without using cycle-exact? Maybe there's a tooltype option that is causing this problem?

I am honestly a bit disappointed with WHDLoad because of this. I always thought WHDLoad slaves would be coded so that they are not dependent on real hardware cycle counts, and should therefore not require cycle-exact.

Retro-Nerd 22 November 2017 22:41

This is no WHDLoad problem. Wepl made it for real hardware. A non-cycle exact emulator (why, when it's based on UAE? To save performance on weaker systems?) can cause several issues. And WHDLoad patches are often timing critical.

rsn8887 23 November 2017 01:31

But we're talking about 68020 cycle exactness here, since WHDLoad is started from A1200 config. For a long time, even WinUAE didn't have this and only had 68000 cycle exactness. UAE4all2 is based on an early version of UAE. And yes, any form of cycle exactness would kill performance.

I guess it is a problem of the slaves, not WHDLoad itself. I guess the slaves rely on the blitter behaving in a certain way on all Amiga hardware, and use that for timing. But I also remember some slaves ran too fast even on real hardware, so I think there is a real problem here.

I think it should be possible to code all WHDLoad patches so they do not use "hacky stuff" like blitter cycle counts for accurate timing. Then they would also work fine in WinUAE even with JIT on and/or fastest possible setting. Another, related problem with WHDLoad - speed should NOT depend on fastest possible, and honestly, not on JIT on/off either as far as I am concerned.

Since the emulator on Vita runs these games just fine at correct speed from .adf files with A500 config, I am certain there must be some way to slow down WHDLoad to the correct speed. Maybe I can switch it to A500 speed after booting into A1200 config and loading the game.

StingRay 23 November 2017 08:52

Quote:

Originally Posted by rsn8887 (Post 1201497)
I think it should be possible to code all WHDLoad patches so they do not use "hacky stuff" like blitter cycle counts for accurate timing. Then they would also work fine in WinUAE even with JIT on and/or fastest possible setting.

There is no "hacky stuff" used in the slaves, the slaves fix a lot of problems with dubious and "hacky" code in the games! And there sure are no blitter cycle counts used for timing (how are blitter cycles "hacky" anyway?).

The slaves are made for real Amigas and I for one will not spend time just because someone on the internet complains that they don't run correctly on an emulator with JIT on. Why do you need JIT for games that were made for 68000 CPU's? Where's the problem to turn JIT off? And most of all, where are your bug reports on the Mantis tracker so slave coders actually know about games running too fast?

Quote:

Another, related problem with WHDLoad - speed should NOT depend on fastest possible, and honestly, not on JIT on/off either as far as I am concerned.
How is that a WHDLoad problem? Does a real Amiga have JIT?

FOL 23 November 2017 13:04

Have you tried altering CPU speed. Its well known that running as fastest possible causes all sorts of wierd problems. I have to set cpu to 14MHz and turn off JIT for games that run to fast.

rsn8887 24 November 2017 20:00

Quote:

Originally Posted by FOL (Post 1201561)
Have you tried altering CPU speed. Its well known that running as fastest possible causes all sorts of wierd problems. I have to set cpu to 14MHz and turn off JIT for games that run to fast.

Thanks for the suggestion. Using your hint I made some progress:

- Hostages WHDLoad now runs at correct speed in UAE4all2 but only if I set CPU Speed to 7 MHz instead of 14 MHz and Blitter Mode to Normal instead of Immediate. However I get shot immediately as soon as i leave my hiding spot on the street, even if the searchlights are not pointing on me. It happens so quickly that it seems like another speed problem, or it could be a problem with the slave.

- Flashback has a tooltype to slow down anim that is displayed on the WHDLoad splash, which causes the game to run at the correct speed.

I need to test some other games that run too fast, to see if this blitter=normal and cpu speed=7 MHz setting works for all of them...

Quote:

Originally Posted by StingRay (Post 1201526)
There is no "hacky stuff" used in the slaves, the slaves fix a lot of problems with dubious and "hacky" code in the games! And there sure are no blitter cycle counts used for timing (how are blitter cycles "hacky" anyway?).

The slaves are made for real Amigas and I for one will not spend time just because someone on the internet complains that they don't run correctly on an emulator with JIT on. Why do you need JIT for games that were made for 68000 CPU's? Where's the problem to turn JIT off? And most of all, where are your bug reports on the Mantis tracker so slave coders actually know about games running too fast?



How is that a WHDLoad problem? Does a real Amiga have JIT?

But certainly the slave should run at the same speed regardless of cpu clock frequency. But what I noticed is that for some games it depends on that, at least in the emulator. Since JIT is just causing the emu to behave as if it had extreme cpu overclocking, the slaves should run ok also with JIT on. Unless I am missing some fundamental difference between JIT on/off that makes it behave differently than just an Amiga with really large CPU speed.

Retro-Nerd 24 November 2017 20:26

JIT is not like an overclocked Amiga CPU, it provides the fastest speed dependent on your host system speed. Which is much faster then any Amiga CPU ever made (overclocked included).

ransom1122 24 November 2017 20:46

That hostages problem your talking about is caused by cycle exact = off. Unfortunately on Amiberry it doesnt have the option to turn it on. Try the game on winuae with cycle exact on and it will work.


All times are GMT +2. The time now is 02:45.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.07479 seconds with 11 queries