English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Language > Coders. Blitz Basic

 
 
Thread Tools
Old 28 December 2018, 12:55   #1
Marle
Pixel Vixen

 
Join Date: Feb 2018
Location: UK
Posts: 184
AGA Sprite + Dual Playfield Limits

Hi all,

I hope you're all well And season's greetings to all!

Just a question, in the Blitz Manual, it is stated that anyone expecting 8 64 pixel wide sprites with 256 colours is going to find themselves out of luck with AGA. Which I can well believe.

But out of interest, can a stock A1200 handle two 4bpp dual playfields, plus 2 64px wide sprites in 16colours (so two attached sprites) with a good speed? Say 25fps?

There would be minimal blitting to the background bitmaps outside of this?

Also can the two sprites have different palette offsets, so sprite 1+2 (making the entire 16col 64px wide sprite) takes its 16 colours from palette reg 32 onward, and sprite 3+4 from 48 onwards?

Just curious!

Thanks!
Marle is offline  
Old 29 December 2018, 00:54   #2
Daedalus
Registered User

Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 3,551
I haven't tried it on a stock A1200, but I actually don't think that would be too much of a problem speed-wise. It certainly runs very smoothly on an A1200/030. Sprites are more or less free when it comes to display speed - the DMA slots are too long when you use 8 bitplanes so sprite channel 7 is disabled, but they don't significantly slow down the display.

The demo I published for the Blitz tutorials in Amiga Future used a 4+4 bitplane display plus two 64-pixel-wide sprites and ran fine on an A1200/030. It used one 15-colour and one 3-colour sprite, but it could easily be adjusted to use two 15-colour sprites. Here's a short video of it in action:

[ Show youtube player ]

Any jittering is probably down to the YouTube encoding rather than dropping frames, but you get the idea.

Unfortunately, as far as I am aware, it's not possible to use different colours for each sprite in that way. Joined sprites (and odd-numbered sprites) all take their palette from the same 16-colour bank. You can use a different bank for the even-numbered, non-joined sprites, but these will of course only be 3-colour.
Daedalus is online now  
Old 29 December 2018, 05:35   #3
Shatterhand
Warhasneverbeensomuchfun

Shatterhand's Avatar
 
Join Date: Jun 2001
Location: Rio de Janeiro / Brazil
Age: 35
Posts: 3,053
I dont have an AGA machine, so I never properly played with one.

So that I can understand it...

With AGA you could have like a 64 colors bitmap (6 bitplanes) while also having eight 16-color sprites that could be up to 64 pixels wide ? (all of them sharing the same palette)

Is my assumption correct?
Shatterhand is offline  
Old 29 December 2018, 10:51   #4
Solo Kazuki
Registered User
Solo Kazuki's Avatar
 
Join Date: Sep 2004
Location: Poland
Posts: 362
AFAIK AGA can handle 64px sprites in 16 colors even with independent palete (no need to sharing). But i'm not programmer, just read this somewhere.
Solo Kazuki is online now  
Old 29 December 2018, 13:58   #5
Daedalus
Registered User

Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 3,551
No, on AGA the sprites are still only 2 bitplanes deep. To get 16 colours, you need to join two sprites to get 4 bitplanes, just like on OCS/ECS. You can get 4 16-colour sprites in theory, but in reality you'll likely need the DMA slots for other things. The AGA advantages for sprites are:

- they can be 64 pixels wide instead of 16 without joining sprites as you need to on OCS/ECS

- you can reassign the 16-colour bank(s) used for the palette, instead of having the pens fixed as with OCS/ECS, meaning that you can use different colours to those in your 64-colour playfields, and different colours for every 3-colour sprite

- the sprites can use subpixel positioning on low resolution screens
Daedalus is online now  
Old 29 December 2018, 13:58   #6
ross
Sum, ergo Cogito

ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 48
Posts: 1,404
64px with 2 separate and independent palettes for odd and even sprites (0/2/4/6 and 1/3/5/7) but only in 4 colors mode.
If you join sprites (0/1,2/3,4/5,6/7) for 16 colors (so 4x64px sprites) you can use a single shared palette.

Summing up: 24 different colors possible in 4 colors sprite mode (due to transparency), 15 otherwise.
You can theoretically mix sprites modes (with partial cover-up) and gain some otherwise transparent colors.
ross is offline  
Old 29 December 2018, 15:11   #7
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 713
Just to add a point here: if you want a scrolling screen plus 64 pixel wide sprites on AGA you basically can only do that full screen by either not taking advantage of the higher bitplane fetch modes or shifting the display to the right by 64 pixels. This much of a shift is usually not acceptable so you only end up with the first option.

Which would essentially mean that for a 4+4 dual playfield display you'd have no better performance than running a game in 16 colour hires on OCS. Or in short, you'd have a very hard time getting it to perform.

This is why the manual says you can't mix it.

Do note that 256 colours + 64 pixel sprites + no scrolling can be done just fine, though.
roondar is offline  
Old 30 December 2018, 10:38   #8
chb
Registered User

 
Join Date: Dec 2014
Location: germany
Posts: 110
I'm no expert on the mysteries of AGA screen timings, but couldn't you use one of the 32 bit fetch modes (FMODE=1 or 2) and need only 32 pixels shift? This would give you a 256 pix wide screen, if symmetry is required, quite acceptable for many applications. As sprite fetch mode is independent from bpl fetch, 64 pix wide sprites are still possible. Bandwidth should be equal to OCS 4 bpl lowres.
chb is offline  
Old 30 December 2018, 15:21   #9
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 713
True, you can use 32 pixel fetch for a 32 pixel shift instead and couple this with 64 pixel sprites (this is how mcgeezer's Rygar port works). There is a performance penalty vs 64 pixel fetch however and you're still shifting right by a pretty big amount.
roondar is offline  
Old 30 December 2018, 17:01   #10
carrion
Registered User

carrion's Avatar
 
Join Date: Dec 2016
Location: Warsaw area
Posts: 68
@Marle
Pls take a look at my attempts to do a 2d platformer engine.
Here: [ Show youtube player ]
I have scrolled dual playfield parallax + 32pix wide 16 col sprites (all in AGA)
The screen width is 288 IIRC.

Im not sure it answers your questions (probably not) but I can share some code if that helps you. It needed a lot of experimenting with seting up the display parameters correctly.

Last edited by carrion; 31 December 2018 at 00:15.
carrion is offline  
Old 30 December 2018, 20:22   #11
E-Penguin
Banana

 
Join Date: Jul 2016
Location: Darmstadt
Posts: 729
That looks amazing! You did that in blitz?
E-Penguin is offline  
Old 31 December 2018, 00:13   #12
carrion
Registered User

carrion's Avatar
 
Join Date: Dec 2016
Location: Warsaw area
Posts: 68
Yes
carrion is offline  
Old 10 January 2019, 22:34   #13
Marle
Pixel Vixen

 
Join Date: Feb 2018
Location: UK
Posts: 184
Thank you to everyone that has responded sorry I haven't replied to you all yet, it's been a very busy start to the new year as my horrible cold came back with a vengeance straight into the new year and I have been travelling all week up and down the country with work too so I've not had much time to digest all this.

But I will reply properly but it sounds very promising.

@carrion if you'd like to share some code I'd be very interested. I have an idea for a simple game demo I'd like to try, as I am hoping to draw a nice sprite this weekend with some nice animation and I want to try it out on some code.

I'll reply to you all as soon as I can find a few minutes to sit down and digest this all properly.

Many thanks!
Marle is offline  
Old 11 January 2019, 20:08   #14
redblade
Zone Friend

redblade's Avatar
 
Join Date: Mar 2004
Location: Middle Earth
Age: 34
Posts: 1,190
Quote:
Originally Posted by carrion View Post
@Marle
Pls take a look at my attempts to do a 2d platformer engine.
Here: [ Show youtube player ]
I have scrolled dual playfield parallax + 32pix wide 16 col sprites (all in AGA)
The screen width is 288 IIRC.

Im not sure it answers your questions (probably not) but I can share some code if that helps you. It needed a lot of experimenting with seting up the display parameters correctly.
Great work carrion.

Is this blitz basic 2.1 or Amiblitz? What Amiga is this running on Amiga 1200 standard or does it require a fast cpu and extra ram? How many colours are you using? 2 * playfields at 16 colours? are the sprite colours 32 -> 48??

Thanks.
redblade is offline  
Old 12 January 2019, 15:14   #15
carrion
Registered User

carrion's Avatar
 
Join Date: Dec 2016
Location: Warsaw area
Posts: 68
@redblade
thanks pal
It's BB2.1 it is intended to run on unexpanded A1200. If it comes to colors you guessed right. 2*16 colors dualplayfield + 16 colors for sprites. Also there's a copper colors effect done with Rainbow command just to check if some DMA cycles are left to use it.

The work on this engine is currently stoped. I think I have to do something easier in first place. This engine and game I had in mind is above me at this moment in time.
But I don't give up and will finally get back to finish it.

Pls also check my other production. A damascene demo done entirely in BB2.1
[ Show youtube player ]
carrion 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
Dual Playfield Palette Assignments LuMan Coders. Blitz Basic 1 24 February 2016 16:35
Help with Dual Playfield Shatterhand Coders. Blitz Basic 15 14 December 2015 14:05
flimbo's quest dual playfield? Raislin77it Coders. General 14 01 August 2015 17:53
Dual playfield colors and AGA losso Coders. Asm / Hardware 1 03 December 2013 03:48
Dual Playfield BippyM project.Maptapper 6 03 July 2013 01:43

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 18:47.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.
Page generated in 0.07999 seconds with 15 queries