English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   project.WHDLoad (http://eab.abime.net/forumdisplay.php?f=63)
-   -   Saint Dragon framerate fix (http://eab.abime.net/showthread.php?t=97293)

Puggsy 07 May 2019 08:03

Saint Dragon framerate fix
 
It looks like this game skips a lot of frames when the screen gets busy no matter how fast the Amiga I run the game on is.

Can anyone fix the whdload install to remove this frame skipping? It’s the only thing dragging down this otherwise great conversion. You can loose just by shooting when you have a lot of power ups because the screen rate skips so much you end up nailed by a bullet.

Galahad/FLT 07 May 2019 11:41

Quote:

Originally Posted by Puggsy (Post 1319874)
It looks like this game skips a lot of frames when the screen gets busy no matter how fast the Amiga I run the game on is.

Can anyone fix the whdload install to remove this frame skipping? It’s the only thing dragging down this otherwise great conversion. You can loose just by shooting when you have a lot of power ups because the screen rate skips so much you end up nailed by a bullet.

Nope.

Only way to fix it would be to recode every single blitter routine to use the processor if a 030+ is detected.

The game heavily relies on the blitter to redraw everything, and it would be no trivial task to recode all those routines.

It would probably be quicker to take the Atari ST version and use that as the base version as that only uses the processor for its redrawing, but I gather its not as good looking as the Amiga version.

haynor666 07 May 2019 13:37

I know it not the best answer but why don't You try arcade version? Does amiga version apart from better resolution has something better than arcade original?

ross 07 May 2019 14:25

An approach different from the usual Amiga games concerning the crowding on screen, probably due to the ST origins and the considerable amount of objects on the screen.
So would it be tolerable even just not having the frame-skip?

I state that I have not looked at the game's code so I don't know if it is possible, but a solution would be to switch from the frameskip mode to the no-skip one :). Logically this would lead to having a massive amount of slowdows and speed changes (also possible to attenuate it , but only with significant changes to the code).
Can someone verify this possibility by setting the 'immediate blitter' option in emulation? (if the game works properly then there is a good chance)

Certainly I don't have time to look at it now, but it would be interesting.

ross 08 May 2019 13:11

Just to clarify.
My answer and Galahad's are absolutely not in opposition.
His approach would be to 'exceed' the limits by rewriting the code to use a software system for object blitting
(rendering in fastram with a fast processor and using the chipram as a frame buffer or something in between).
In that case the engine could maintain a decent framerate.

My proposal, on the other hand, would not improve the frame-rate in any way, but it would simply delay the refresh (making duplicate frames).

In any case it'll remains a game designed for A500 and you can not expect more than that in this conversion.
Any kind of drastical change will require too time that maybe the coders/patchers prefer to use for other :)

Puggsy 10 May 2019 17:26

Hello, and sorry for the late reply.

Ross is absolutely correct, I never suggested for the whole game to be redone, as I said, the problem is the frame skipping. When there's a lot of stuff going on, you could get hit by bullets because so many frames were skipped. I rather have a slow down than that.

So switching it off would be a great temporary solution, yes please Ross do it! I tried in winUAE and you are correct, "immediate blits" makes the game silky smooth perfect! :great

Another idea: the main problem happens when your dragon has its firepower maxed out. Maybe it can be fixed so maxing out doesn't create as many objects? I really don't know what they were thinking when they made this.

For the time being slowdown is better than frames skipped.

Quote:

Originally Posted by haynor666 (Post 1319921)
I know it not the best answer but why don't You try arcade version?

That's not an answer at all. I am playing in my Amiga, not an emulator:mad:mad:mad:mad

haynor666 10 May 2019 20:04

I know. I used to play using groovymame on CRT screen. Looks and works fantastic.

Mrz 11 May 2019 03:07

if you want 60 fps smooth gameplay try the original arcade version using mame
on the AMiga500 with its hardware limitation is basically impossible

Puggsy 15 May 2019 00:55

I asked for a very specific fix/patch to be done. I never said I wanted "arcade perfect" or "60FPS', you are making things up out of thin air. You people are trolling.
Don't you have better things to do in EAB or life than to subvert someone's thread with unrelated nonsense? :mad

Hewitson 17 May 2019 00:12

Quote:

Originally Posted by Puggsy (Post 1319874)
You can loose just by shooting when you have a lot of power ups because the screen rate skips so much you end up nailed by a bullet.

:laughing:laughing:laughing

I have experienced this as well. Not many games where having lots of power ups can make it harder, but on this one it can.

roondar 17 May 2019 00:30

Saint Dragon is an interesting game on the Amiga.

Given enough power ups, some of your shots become partly/mostly invisible. It's also an ST port that manages to be slower than the 68000 ST version, while it still uses the Blitter and sprite hardware on the Amiga. I've always found that very intriguing because achieving that combination (use the hardware and still end up slower than a software solution) is not actually easy.

Makes me wonder what decisions were made and why.

The extra slow down with more power ups... That seems like I've noticed that before on some ST ports. Doesn't Xenon 2 also do this?

Galahad/FLT 17 May 2019 00:43

Quote:

Originally Posted by roondar (Post 1321692)
Saint Dragon is an interesting game on the Amiga.

Given enough power ups, some of your shots become partly/mostly invisible. It's also an ST port that manages to be slower than the 68000 ST version, while it still uses the Blitter and sprite hardware on the Amiga. I've always found that very intriguing because achieving that combination (use the hardware and still end up slower than a software solution) is not actually easy.

Makes me wonder what decisions were made and why.

The extra slow down with more power ups... That seems like I've noticed that before on some ST ports. Doesn't Xenon 2 also do this?

I don't think the ST version has half the action onscreen the Amiga version has, I can't see how a sprite multiplexing routine can be slower than software plotting bitmap bobs.

roondar 17 May 2019 00:56

Quote:

Originally Posted by Galahad/FLT (Post 1321696)
I don't think the ST version has half the action onscreen the Amiga version has, I can't see how a sprite multiplexing routine can be slower than software plotting bitmap bobs.

Oh but I agree it shouldn't be slower.

It's just that I've seen a direct comparison on the Retro Core YouTube channel a while back and both versions seemed very similar, but the ST version quite obviously ran faster/smoother.

And that puzzles me, hence my comment.

Galahad/FLT 17 May 2019 01:11

Quote:

Originally Posted by roondar (Post 1321700)
Oh but I agree it shouldn't be slower.



It's just that I've seen a direct comparison on the Retro Core YouTube channel a while back and both versions seemed very similar, but the ST version quite obviously ran faster/smoother.


And that puzzles me, hence my comment.

The guy that runs the Retro Core channel is a bit of a noob when it comes to ST and Amiga emulation, frequently not getting the settings right.

I wouldn't judge the performance of any ST game over Amiga on a Youtube video because its so easy to fudge the results by not ticking the right boxes.

roondar 17 May 2019 01:33

Well, after viewing the video I thought the same, because at that time he did seem a bit biased against the Amiga. So I looked at the performance on my A500. As far as I could tell, his Amiga footage was accurate to what my A500 showed.

That said, I don't have an Atari ST to run the game on so can't tell if that footage was as correct.

turrican3 17 May 2019 04:05

Quote:

Originally Posted by ross (Post 1320119)
My proposal, on the other hand, would not improve the frame-rate in any way, but it would simply delay the refresh (making duplicate frames).
:)

Do you know a game which was patched like this even on an other platform ?? I try to understand if the result would be good ???

ross 17 May 2019 11:18

Quote:

Originally Posted by turrican3 (Post 1321729)
Do you know a game which was patched like this even on an other platform ??

I really don't know.

Quote:

I try to understand if the result would be good ???
The result is the usual one on all platforms: slowdowns ;)
It's a choice: maintain constant speed (so skip some frame) or mantain constant flow (so keep all frames).
Usually the simplest thing to do, from a coder perspective, is to mantain all frames.

-----

Back to Saint Dragon. Such a patch could be not trivial.

Should be considered the rendering time code and how it interact with all the remaining game engine
(technically could be complex, code contain also a dynamic floppy loader and a convoluted 'multi'-tasks management).
I looked at it very superficially (and now I have absolutely no time available) :).

Galahad/FLT 17 May 2019 18:14

Quote:

Originally Posted by ross (Post 1321762)
I really don't know.


The result is the usual one on all platforms: slowdowns ;)
It's a choice: maintain constant speed (so skip some frame) or mantain constant flow (so keep all frames).
Usually the simplest thing to do, from a coder perspective, is to mantain all frames.

-----

Back to Saint Dragon. Such a patch could be not trivial.

Should be considered the rendering time code and how it interact with all the remaining game engine
(technically could be complex, code contain also a dynamic floppy loader and a convoluted 'multi'-tasks management).
I looked at it very superficially (and now I have absolutely no time available) :).

The dynamic loader is easy to circumvent, i've got Saint Dragon running completely from memory with no access to the floppy once loaded.

turrican3 21 May 2019 10:14

Quote:

Originally Posted by ross (Post 1321762)
The result is the usual one on all platforms: slowdowns ;)
It's a choice: maintain constant speed (so skip some frame) or mantain constant flow (so keep all frames).
Usually the simplest thing to do, from a coder perspective, is to mantain all frames.

saint dragon use the frame skipping !!!

ok, then i saw better what you meant.
But for the slowdowns, an a1200 should be sufficient to maintain the framerate even if the game needs to be on the fast ram (thanks Galahad) ??
edited : or perhaps galahad meant from chip ram ??

Puggsy 22 May 2019 19:46

Quote:

Originally Posted by turrican3 (Post 1322655)
But for the slowdowns, an a1200 should be sufficient to maintain the framerate even if the game needs to be on the fast ram (thanks Galahad) ??

This was already explained: the game uses the blitter and that creates the speed bottleneck, not the processor. game would need a major rewrite to use CPU instead of Blitter.


All times are GMT +2. The time now is 08:25.

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

Page generated in 0.04639 seconds with 11 queries