Thread: Dogfight II
View Single Post
Old 09 September 2021, 15:38   #32
clebin
Registered User
 
clebin's Avatar
 
Join Date: Apr 2012
Location: Cardiff
Posts: 406
Quote:
Originally Posted by piratematt77 View Post
I will say that it runs best on a stock 500
I suspect it doesn't time anything to the screen refresh, so even on my modestly accelerated A1200 it's unplayable and too fast
I just had a look and as I remembered, it's actually uncompiled AMOS so will be easy enough to add a speed lock. I was able to find the main loop and add a 'Wait Vbl' statement. That was still too fast, but a second 'Wait Vbl' brought the speed down to roughly what I'd expect. I assume this is a terrible solution that's going to ruin the game on a 7mhz machine though.

I haven't touched AMOS in 25 years, but a few options spring to mind without digging into the code too much:

1) Do whatever is the correct way of locking the speed in AMOS!? Is there some kind of frame counter that you could use to time the game? (if FRAME_NUM % 2 == 0...)

2) Use CPU detection if possible, and only wait on 020+

3) Just have a separate a 020+ version.

3) Compile with the AMOS compiler so that (hopefully) a 7mhz machine can crunch through the main loop quick enough to make the double Wait Vbls work.

With the code, I guess it wouldn't be too hard to update it to run at 50fps. The whole game is only something like 1200 lines, including menu screen, load/save and the rest. Having said that, it's not commented and the variable names aren't obvious so it will still take a bit of time.

Anyone have any thoughts?
clebin is offline  
 
Page generated in 0.24314 seconds with 11 queries