![]() |
![]() |
#1 |
Registered User
Join Date: Mar 2019
Location: Melbourne, Australia
Posts: 410
|
F/A-18 Interceptor and speed
Every time I have tried this game on a more modern Amiga I have been disappointed that it seems unplayable on anything more than the faster 68030s, as game speed just keeps increasing. On the base 68000 there was no need to worry about this as it is just fine running as fast as it possibly can. I guess there has never been a "fixed" version that increases render and frame speed while maintaining the rate of elapsing game time?
|
![]() |
![]() |
#2 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 51
Posts: 7,584
|
I think it would be worth fixing through whdload, yes.
|
![]() |
![]() |
#3 |
Registered User
Join Date: Jul 2015
Location: Novi Sad, Serbia
Posts: 1,530
|
Yeah, and the same problem is with Wing Commander.
Frontier, on the other hand, just work smoother if you have faster Amigas (which is great). |
![]() |
![]() |
#4 |
Registered User
Join Date: Apr 2022
Location: Dublin
Posts: 19
|
Same for Falcon.
Actually, are there any flight sims that have improved framerates with better CPU ? |
![]() |
![]() |
#5 |
Registered User
Join Date: Apr 2015
Location: Spain
Posts: 459
|
|
![]() |
![]() |
#6 |
Registered User
Join Date: Jul 2013
Location: Finland
Posts: 24
|
|
![]() |
![]() |
#7 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 51
Posts: 7,584
|
Had a quick look yesterday. Game loop is like
Code:
LAB_03BD: JSR update_some_vars ;07ee6: 4eb900024038 JSR _OwnBlitter ;07eec: 4eb900048f8c JSR update_everything ;07ef2: 4eb900001124 JSR _DisownBlitter ;07ef8: 4eb900048f9c BSR.W sync_and_switch_screen_buffers ;07efe: 6100037c BRA.S LAB_03BD ;07f02: 60e2 The sync method waits for bottom of frame. It's classic on old games: the programmers didn't expect that all the processing is done in only one frame, so one frame out of 2 (or 3..) is skipped. With a faster cpu, the processing can be done in 1 frame, which speeds up the game 2x or maybe 3x. On a 3D game the difference is greater because the blitter isn't used as much. This game is really impressive, it's using blitter and CPU to draw stuff I guess and it was smooth even on 68000. Red Zone doesn't use blitter at all as a comparison. What can be easily done is to sync the game (like I did for 2D games that were too fast). It's not going to be faster but will be playable. It's also a waste... For 2D games it's not really a problem since the game can't really be smoother, but for 3D games it's not satisfactory. In Red Zone, once the code was relocated in fastmem, the game kept the same speed but had better framerate. Most of 3D game coders were "visionaries" and thought about more powerful processors when programming (even if it originally fails, like Red Zone running on chipmem, or Shuttle crashing with fast memory data), but it's harder to code since you have to keep track of VBL ticks and apply speeds using the time variation instead of considering that time variation is constant. |
![]() |
![]() |
#8 |
Puttymoon inhabitant
|
I have just returned from the new Top Gun: Maverick movie. I can say the speed is not a problem of F/A-18
![]() (sorry, I had to) |
![]() |
![]() |
#9 |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 872
|
I think it's drawing nearly everything using the blitter and that appears to take ~3 (PAL) frames even if the CPU is super fast. On a non-accelerated A500 it looks like the update_everything part takes around 6+ frames (and sometimes much longer). Haven't found the part that updates the game state, but I'm guessing it just runs as fast as possible.
If the above is correct, the easiest fix would probably be to limit it to say 10fps and fix other issues like keyboard input (I see this on my A1200 even w/o accelerator). |
![]() |
![]() |
#10 | |
Registered User
Join Date: Nov 2014
Location: Italy
Posts: 2,037
|
Quote:
When i used to 68040 frame rate, i have no more problem. Same thing with Sierra Soccer. It accelerate so much with fasteter processor. With 68040 and 68060 is unplayable, too fast, but when i used to 68040, i see normal speed. |
|
![]() |
![]() |
#11 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 51
Posts: 7,584
|
I think that this is going to be tough to decorrelate FPS from computations. The game seems to be designed to do everything. Finding a base delta time would be key, but not sure if this is even centralized. Reverse a 3D game is not a piece of cake. Even the x,y,z positions are difficult to locate.
|
![]() |
![]() |
#12 | |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 872
|
Quote:
The game has a few key functions with lots of MUL/DIVs (MULS.W (An)+, Dm, ..) where most of the time is spent, that's surely the way to work backwards from, but I haven't had time to do that yet. |
|
![]() |
![]() |
#13 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 51
Posts: 7,584
|
it's integer floating point arithmetic probably. I've started the reverse of the game, but didn't go that far. It's probably using some flight mechanics copied from somewhere and implemented in asm. I could certainly use some help here.
If we can figure out which variables control x,y,z, delta time... if it's not hardcoded everywhere. |
![]() |
![]() |
#14 |
Registered User
Join Date: Jun 2005
Location: Aarhus, Denmark
Age: 45
Posts: 78
|
Just a crazy idea - how about we reach out to Bob Dinnerman and ask him the specifics? He might like that we are all still fond of his game.
|
![]() |
![]() |
#15 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 51
Posts: 7,584
|
that would be the best idea.
there was an interview but it's from 2004. https://steiny.typepad.com/premise/2...iew_with_.html Guy is even on imdb: https://www.imdb.com/name/nm4874233/ Some parts of the text suggest that he's no longer with us... but that's not very clear. Last edited by jotd; 28 May 2022 at 12:08. |
![]() |
![]() |
#16 |
Registered User
Join Date: Jun 2005
Location: Aarhus, Denmark
Age: 45
Posts: 78
|
I’ll be happy to give it a shot as long as I can direct him to someone that actually knows about programming, because I certainly don’t. I got hold of Jordan Mechner a long time ago for an interview - if Dinnerman is still around, I’m sure we can get hold of him.
|
![]() |
![]() |
#17 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 51
Posts: 7,584
|
If we could get a look at the source code that would be very helpful indeed
|
![]() |
![]() |
#18 |
Registered User
Join Date: Jun 2005
Location: Aarhus, Denmark
Age: 45
Posts: 78
|
I’ll try and track him down and report back.
|
![]() |
![]() |
#19 |
Registered User
Join Date: Mar 2019
Location: Melbourne, Australia
Posts: 410
|
It would be so cool if there could be a reworked F/A-18. It was definitely one of the best, if not the best Amiga game if you liked sims. I know at least one person that bought an Amiga after seeing it run.
I bet you find that Dinnerman isn't allowed to release any code because someone else controls it... |
![]() |
![]() |
#20 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 51
Posts: 7,584
|
we don't need the source (well, in theory), it's just that without the source it's going to be very long and difficult to do that. On 2D games, it's relatively easy to understand the mechanics through disassembly/debug. For 3D it's way more difficult to guess things that put you on the tracks (like coordinates)
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
F/A-18 Interceptor | qzxcvbn | support.Games | 4 | 16 April 2022 23:31 |
F/A-18 Interceptor | jotd | Nostalgia & memories | 51 | 21 January 2020 09:36 |
F/A-18 Interceptor | whiteb | project.SPS (was CAPS) | 12 | 12 May 2013 19:44 |
F/A-18 Interceptor | _-IceMan-_ | support.Games | 3 | 13 July 2008 19:18 |
F/A-18 Interceptor | VermillioN | support.Games | 4 | 15 October 2002 06:58 |
|
|