English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 14 March 2024, 17:08   #121
saimon69
J.M.D - Bedroom Musician
 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,604
Quote:
Originally Posted by reassembler View Post
The main thing - and I'm going to regret saying this no doubt - is that a lot of the remaining game logic should be relatively easy. It's almost a copy and paste job from the original source code. I've found solutions for all of the rendering required and just about have enough colours remaining. It also isn't particularly performance intensive.
I remember the original cannonball blog that was describing how they did organize the traffic flow in the arcade game, and wonder if will scale properly

Last edited by saimon69; 15 March 2024 at 05:42.
saimon69 is offline  
Old 14 March 2024, 21:58   #122
trixster
Guru Meditating
 
Join Date: Jun 2014
Location: England
Posts: 2,356
A demo would be great!

I’d be keen to test on my 28Mhz 020 8MB A1200.
trixster is offline  
Old 16 March 2024, 00:10   #123
Cathal
Registered User
 
Join Date: Feb 2022
Location: Cologne / Germany
Posts: 13
Amazing Work!
When the Demo is available I can test a lot of different A1200/A4000 setups from 030/50 to 060/66, Vampire V4 (Icedrake & Firebird) and PiStorm32/CM4.
Cathal is offline  
Old 17 March 2024, 13:34   #124
mrupp
Registered User
 
mrupp's Avatar
 
Join Date: Jun 2019
Location: St.Gallen, Switzerland
Posts: 105
This really looks amazing and the last video already was very promising.
I love this game and was quite hooked to it when I was a teenager. I remember that I once even dreamed of playing a perfect port on the Amiga and that when I woke up I was feeling... err.. well, you know... as we're stuck with this horrible US Gold port.

So this is LITERALLY a dream coming true!

Can't wait to beta test on my A4000/060, A1200/030 (Blizzard), CD32 TF030 and Vampire V4.

Keep up this excellent drive of yours, you're amazing
Michael
mrupp is offline  
Old 17 March 2024, 17:00   #125
reassembler
Registered User
 
reassembler's Avatar
 
Join Date: Oct 2023
Location: London, UK
Posts: 124
Latest video showing things running on hardware:

[ Show youtube player ]
reassembler is offline  
Old 17 March 2024, 17:19   #126
DanyPPC
Registered User
 
Join Date: Dec 2016
Location: Italy
Posts: 769
Simply excellent
DanyPPC is offline  
Old 17 March 2024, 18:15   #127
gingerbeardman
Registered User
 
gingerbeardman's Avatar
 
Join Date: Apr 2010
Location: UK
Posts: 61
Lovely! Looking great.

ps: in the long video there's a graphical glitch at 02:05 you are probably aware of but I thought I'd mention just in case.
Attached Thumbnails
Click image for larger version

Name:	Screen shot 2024-03-17 at 17.12.06.jpg
Views:	74
Size:	87.1 KB
ID:	81850  

Last edited by gingerbeardman; 17 March 2024 at 18:23.
gingerbeardman is offline  
Old 17 March 2024, 18:35   #128
reassembler
Registered User
 
reassembler's Avatar
 
Join Date: Oct 2023
Location: London, UK
Posts: 124
Quote:
Originally Posted by gingerbeardman View Post
Lovely! Looking great.

ps: in the long video there's a graphical glitch at 02:05 you are probably aware of but I thought I'd mention just in case.
Well done for spotting this. I was going to ask on here if anyone had any theories as to what caused this.

It's a random bug that occasionally seems to spam a single frame of erroneous graphics data to the screen. I've attached a slightly better quality image. You can spot a ghosted image is split down the centre of the screen and mirrored in two directions. It's almost as if some of the individual bitplanes are going haywire and displaying in the wrong place. I write to the copper list to swap bitplanes every frame, so perhaps it's related to my double buffering code or timing?

I can reproduce this in UAE, which makes me think it's some sort of timing issue or memory corruption that I've introduced.

It's not consistently repeatable so I haven't spent time trying to address it... yet.
Attached Thumbnails
Click image for larger version

Name:	vlcsnap-2024-03-17-16h05m48s722.jpg
Views:	99
Size:	472.0 KB
ID:	81851  
reassembler is offline  
Old 17 March 2024, 18:52   #129
demoniac
Registered User
 
Join Date: Jul 2005
Location: -
Posts: 1,698
Excellent update.

Is that the same bug that seems to remove the lanes in the first level?
demoniac is offline  
Old 17 March 2024, 18:59   #130
Keops/Equinox
Registered User
 
Keops/Equinox's Avatar
 
Join Date: Feb 2008
Location: .
Posts: 109
Really nice!
Keops/Equinox is offline  
Old 17 March 2024, 19:41   #131
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,379
Did you bench your engine with all cars displayed? Small blits can kill performance as much as big blits

great work!
jotd is offline  
Old 17 March 2024, 19:52   #132
reassembler
Registered User
 
reassembler's Avatar
 
Join Date: Oct 2023
Location: London, UK
Posts: 124
Quote:
Originally Posted by jotd View Post
Did you bench your engine with all cars displayed? Small blits can kill performance as much as big blits

great work!
Not yet. Traffic will probably be one of the more significant performance killers remaining. But there may be optimizations elsewhere to compensate for that.
reassembler is offline  
Old 17 March 2024, 20:12   #133
reassembler
Registered User
 
reassembler's Avatar
 
Join Date: Oct 2023
Location: London, UK
Posts: 124
Back to that minor graphical corruption bug. Is this a dumb way of doing double buffering?

In my Coplist, one of the first things is the usual list of bitplane pointers. The actual addresses of the bitplanes are written by code, but the start of the coplist is...

Code:
    
    DC.W    BPL1PTH,0       ; High word APTR bitplane 1
    DC.W    BPL1PTL,0       ; Low word APTR bitplane 1
    DC.W    BPL2PTH,0       ; High word APTR bitplane 2
    DC.W    BPL2PTL,0       ; Low word APTR bitplane 2
; etc for the rest of the bitplanes!
The final entry in the CopList is a standard, wait for VBLANK entry:
Code:
dc.w    $ffff,$fffe
At which point the coplist will wrap and setup the bitplane pointers again during the VBlank itself.

My main 68K loop ends by waiting for a VBlank as follows, pseudo code:

Code:
    bsr           Chunky2Planar   ; Output to the *current* bitplanes
    bsr           SwapBitPlanes   ; Update the coplist to point to the *current* bitplanes and then denote next time round we'll be writing to the alternate set.
    bsr           WaitVBlank      ; At which point the Coplist will also wrap and process the bitplane pointers
    bsr           DoVBlankStuff   ; Palette changes and OutRun specific code
Now presumably there could be a timing mis-match where SwapBitPlanes occasionally gets called just after a VBlank, dependent on frame timing. This would mean that the Bitplane pointers in the CopList were written to, let's say, halfway through the point at which the Copper is reading them. And cause a temporary frame of corruption.

I hope I'm making sense. Is there an obvious solution to this I'm missing?
reassembler is offline  
Old 17 March 2024, 20:29   #134
reassembler
Registered User
 
reassembler's Avatar
 
Join Date: Oct 2023
Location: London, UK
Posts: 124
Hmm... and yes I'm sort of talking to myself here. Maybe I need to disable the copper DMA during the SwapBitPlanes routine.

Edit: Well that might have fixed it. Although given the intermittent nature of the issue, we shall see.

Last edited by reassembler; 17 March 2024 at 20:36.
reassembler is offline  
Old 17 March 2024, 20:38   #135
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,379
I usually swap the bitplanes in the copper interrupt (so bottom of frame, not top of frame), not vblank, so there is plenty of time to set them.

From vblank, I think I had issues for the reason you stated: changing copperlist while copper is potentially reading too is a big problem.
jotd is offline  
Old 17 March 2024, 20:49   #136
reassembler
Registered User
 
reassembler's Avatar
 
Join Date: Oct 2023
Location: London, UK
Posts: 124
Quote:
Originally Posted by jotd View Post
I usually swap the bitplanes in the copper interrupt (so bottom of frame, not top of frame), not vblank, so there is plenty of time to set them.

From vblank, I think I had issues for the reason you stated: changing copperlist while copper is potentially reading too is a big problem.
This also occured to me as well. I'm presuming the approach of disabling copper DMA is faster than enabling Copper interrupts, so long as disabling DMA doesn't cause the copper to miss doing something important...

Anyway, it sounds like there's a backup/alternate approach so thanks for the response.
reassembler is offline  
Old 18 March 2024, 02:48   #137
saimon69
J.M.D - Bedroom Musician
 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,604
So you are using a 030/50, what the performance would be in a EC030/40 like the one i have? (i would suggest some kind of rendering reduction option like skip one side object every 2 or 3 unless needed or maybe side object rendering in 2x2 or even 4x4 pixels))
saimon69 is offline  
Old 18 March 2024, 12:06   #138
d4rk3lf
Registered User
 
d4rk3lf's Avatar
 
Join Date: Jul 2015
Location: Novi Sad, Serbia
Posts: 1,701
Quote:
Originally Posted by reassembler View Post
Latest video showing things running on hardware:

[ Show youtube player ]
Fantastic job.

Just out of curiosity, what you think would happen if you run it on a Stock A1200 (maybe with some added Fast Ram)?
Will it refuse to run at all? Or it will crawl?

Keep up the amazing job.
d4rk3lf is offline  
Old 18 March 2024, 14:22   #139
chiark
Needs a life
 
chiark's Avatar
 
Join Date: Jan 2008
Location: England
Posts: 1,707
Not an original comment but huge congrats, this is awesome to see, and great that you've stuck at it! Brilliant work, keep going, can't believe how much you're managing to optimise this.
chiark is offline  
Old 18 March 2024, 14:47   #140
reassembler
Registered User
 
reassembler's Avatar
 
Join Date: Oct 2023
Location: London, UK
Posts: 124
Quote:
Originally Posted by d4rk3lf View Post
Fantastic job.

Just out of curiosity, what you think would happen if you run it on a Stock A1200 (maybe with some added Fast Ram)?
Will it refuse to run at all? Or it will crawl?

Keep up the amazing job.
Using WinUAE, cycle accurate - it runs on an A1200 configuration with added FastRAM. But it's too slow to be anything beyond a curiosity - although US Gold would have probably released it. I haven't tried on hardware.

I will be implementing toggles for a lot of the graphical elements in the final release, so you'll be able to compromise visual fidelity to claw back some speed - but not to the point where it's ever going to be any fun on an A1200.
reassembler is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Outrun AGA agermose project.Amiga Game Factory 401 10 June 2024 17:08
Better Outrun port for Amiga tekopaa Retrogaming General Discussion 399 14 April 2022 17:56
Outrun adfs macce2 request.Old Rare Games 3 18 April 2021 21:22
would you like to have an Outrun like for Aga? sandruzzo Retrogaming General Discussion 50 30 January 2013 12:03
Aweb: New APL 3.5Beta AOS4 PPC code + Milestone: KHTML porting started Paul News 0 05 November 2004 11:21

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 06:15.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10960 seconds with 14 queries