English Amiga Board


Go Back   English Amiga Board > Main > Amiga scene

 
 
Thread Tools
Old 26 January 2012, 23:35   #21
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
I think the starfield is doable in realtime. I'm concocting a way in my head right now to draw a whole bunch of stars with one blitter operation. Put it into line mode and screw with the modulo registers.
Mrs Beanbag is offline  
Old 26 January 2012, 23:40   #22
Galahad/FLT
Going nowhere
 
Galahad/FLT's Avatar
 
Join Date: Oct 2001
Location: United Kingdom
Age: 50
Posts: 8,986
For a start, very few of the stars onscreen get to full size, and the star circles are only 1 colour, so i'm fairly confident an A500 could cope with that easily.

Secondly, where the stars are generated from the centre is mostly garbage, so could be disguised with a simple anim in the centre instead of plotting lots of stars in the centre.

The shadowed sine scroller has been done to death on Amiga.

The copper bars in the background I think on A500 could be very nearly replicated colourwise, but on AGA could be done 100% spot on.

A combination of copper bars and real graphics reloaded with colours should give you most of the steps that are required to get a close approximation to that in that fake cracktro.
Galahad/FLT is offline  
Old 27 January 2012, 00:02   #23
alexh
Thalion Webshrine
 
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 14,331
Interesting that the scroll text is actually the Wikipedia review of the game....

http://en.wikipedia.org/wiki/Shadow_...f_the_Beast_II
alexh is offline  
Old 27 January 2012, 00:21   #24
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
haha that's some good detective work right there!

still doesn't mean it isn't possible though...
Mrs Beanbag is offline  
Old 27 January 2012, 02:21   #25
Codetapper
2 contact me: email only!
 
Codetapper's Avatar
 
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,182
The starfield in the demo moves so fast that you could probably fake the whole thing with about 10 frames of animation in a loop (and even mirror the top and bottom half) and perhaps plot the odd big circle star to make it appear that it's not an anim.

Like a number of people on here, I don't see the big deal about this intro either. An A500 could easily do a very similar version without too much hassle.
Codetapper is offline  
Old 27 January 2012, 13:52   #26
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
Quote:
Originally Posted by Codetapper View Post
The starfield in the demo moves so fast that you could probably fake the whole thing with about 10 frames of animation in a loop (and even mirror the top and bottom half) and perhaps plot the odd big circle star to make it appear that it's not an anim.

Like a number of people on here, I don't see the big deal about this intro either. An A500 could easily do a very similar version without too much hassle.
I think a real starfield is possible using the blitter. The blitter can plot a lot of points in a frame by clever use of line mode. Just make the starfield out of lines of up to 16 stars instead of individual stars, it probably wouldn't be noticed. Use 1-pixel per scanline mode but set the modulo so that they all come out on the same line, put a random value in BLTBDAT... if you can do 50 stars in a frame you can do 500.

The sinewave scroller is trivial. I've googled to see what other people's technique is, everyone seems to suggest blitting the vertical columns one at a time, thus a 16-pixel wide section needs 16 blits. It can be done in four. Yes and still retain 1-pixel resolution. It's only blitting one bitplane each frame, the other bitplanes are just previous versions through which it cycles, making a trail effect.

The copper effects can be done by changing the palette every 20 pixels easily, use a single bitplane with a dithering pattern on it, and blit pre-rendered lines into the copperlist. The copperlist is in Chip Ram right, you can blit into it.
Mrs Beanbag is offline  
Old 27 January 2012, 14:21   #27
pmc
gone
 
pmc's Avatar
 
Join Date: Apr 2007
Location: completely gone
Posts: 1,596
Quote:
Originally Posted by Mrs Beanbag
It can be done in four. Yes and still retain 1-pixel resolution.
This might be my misreading but are you saying you can do only four blits per word and still get a 1 pixel resolution sinescroller?

How?
pmc is offline  
Old 27 January 2012, 14:25   #28
discomeats
Just add brown sauce.
 
discomeats's Avatar
 
Join Date: May 2008
Location: North East Englandland
Posts: 170
someone should just do the demo
discomeats is offline  
Old 27 January 2012, 14:34   #29
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
Quote:
Originally Posted by pmc View Post
This might be my misreading but are you saying you can do only four blits per word and still get a 1 pixel resolution sinescroller?

How?
yes.

blit up and down with a mask. first mask covers all columns that have to go down 8 pixels. next cover all columns that have to go up by four pixels, then up by 2, then up by 1. as long as the slope never exceeds 1:1, this is sufficient.

example: first mask = $FF00, second mask $0F0F, third mask $3333, fourth mask $5555, this would give a straight 1:1 slope.

to calculate the values of the masks, do a quick "chunky-to-planar" type conversion on the y-data. (Could precalculate all these)

sometimes it is useful to think deeper inside the box.
Mrs Beanbag is offline  
Old 27 January 2012, 14:36   #30
pmc
gone
 
pmc's Avatar
 
Join Date: Apr 2007
Location: completely gone
Posts: 1,596
Cool.

Make the demo and post the code
pmc is offline  
Old 27 January 2012, 14:47   #31
Amiga1992
Registered User
 
Join Date: May 2001
Location: ?
Posts: 19,644
Mrs. Beanbag's full of wisdom :O
Amiga1992 is offline  
Old 27 January 2012, 17:33   #32
StingRay
move.l #$c0ff33,throat
 
StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
Quote:
Originally Posted by Mrs Beanbag View Post
yes.

blit up and down with a mask. first mask covers all columns that have to go down 8 pixels. next cover all columns that have to go up by four pixels, then up by 2, then up by 1. as long as the slope never exceeds 1:1, this is sufficient.

example: first mask = $FF00, second mask $0F0F, third mask $3333, fourth mask $5555, this would give a straight 1:1 slope.

to calculate the values of the masks, do a quick "chunky-to-planar" type conversion on the y-data. (Could precalculate all these)

sometimes it is useful to think deeper inside the box.
I can't see how this is going to work. In a normal 1pixel sine scroller each slice can have a different y position so you need 16 different blits for a 16 pixel wide char. Also, they can have any y position, i.e. they don't move in just 1/2/4/8 pixels. Might be that I am missing something obvious but without a working example I don't believe that your approach will work.
StingRay is offline  
Old 27 January 2012, 17:56   #33
pmc
gone
 
pmc's Avatar
 
Join Date: Apr 2007
Location: completely gone
Posts: 1,596
Yep, me neither - hence me wanting to see the code. I can't say for sure it wouldn't work so I'd love to be proved wrong with a working example.
pmc is offline  
Old 27 January 2012, 18:29   #34
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
1, 2, 4 and 8 covers all the numbers from 0 to 15... the first blit can position the 16-pixel wide block anywhere on the y-axis, with an additional 8-pixel shift of any of the columns (use two blitter sources, one 8 lines higher than the other, with a mask of $FF00).

Then shift upwards progressively in place like this (only showing 8 pixels wide here):

after 2nd blit (00001111):
________________
________________
________________
________________
________[][][][]
________[][][][]
________[][][][]
________[][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][]________
[][][][]________
[][][][]________
[][][][]________

3rd blit (mask 00110011):
________________
________________
____________[][]
____________[][]
________[][][][]
________[][][][]
____[][][][][][]
____[][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][]____
[][][][][][]____
[][][][]________
[][][][]________
[][]____________
[][]____________

4th blit (mask 01010101):
________________
______________[]
____________[][]
__________[][][]
________[][][][]
______[][][][][]
____[][][][][][]
__[][][][][][][]
[][][][][][][][]
[][][][][][][]__
[][][][][][]____
[][][][][]______
[][][][]________
[][][]__________
[][]____________
[]______________

with different mask combinations one can make any shape, so long as it is within a 16-pixel range. Most sine scrollers don't exceed 1:1 gradients (a 2:1 gradient could be done but it would need 5 blits).

In fact four blits per 16 pixel columns is WORST CASE behaviour, sometimes the mask will be zero so you can skip those blits altogether.
Mrs Beanbag is offline  
Old 27 January 2012, 18:38   #35
pmc
gone
 
pmc's Avatar
 
Join Date: Apr 2007
Location: completely gone
Posts: 1,596
Looks to be a very interesting solution. Forget the rest of the demo, just make the sinescroller so we can see this in action. Would be cool.
pmc is offline  
Old 27 January 2012, 19:02   #36
StingRay
move.l #$c0ff33,throat
 
StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
An interesting thought indeed, however, I am still not convinced it will look like a normal sine scroller. Any of the 16 slices can have any y-position, e.g. col1 = y, col2=y+(whatever). As far as I can see Mrs. Beanbag's approach will give a somewhat static scroller but yes, it depends on the used masks. Also, I'm not sure if it will be much faster since it requires one additional blitter source = more DMA used = slow down.

It would be interesting to see an example of this approach though so it can be compared with the speed of a highly optimised sine scroller.
StingRay is offline  
Old 27 January 2012, 19:07   #37
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
Sine scroller needs to use two sources and a mask already anyway, in order to blit a single column of pixels, you need a mask with one bit set and combine it with the graphics that's already there from previous blits. Any of the 16 slices can have any position with a 16 pixel range. As long as the wavelength isn't too short there is no problem.

But. Yes. I shall write it and post the source.

Last edited by Mrs Beanbag; 27 January 2012 at 19:09. Reason: additional
Mrs Beanbag is offline  
Old 27 January 2012, 19:10   #38
StingRay
move.l #$c0ff33,throat
 
StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
Quote:
Originally Posted by Mrs Beanbag View Post
Sine scroller needs to use two sources and a mask already anyway, in order to blit a single column of pixels, you need a mask with one bit set and combine it with the graphics that's already there from previous blits.
Yes of course, I know how a sine scroller works. As I understood it your approach needs one additional source to the already used 2 sources. If that isn't the case it'll be interesting to see the result indeed.
StingRay is offline  
Old 27 January 2012, 19:13   #39
Lonewolf10
AMOS Extensions Developer
 
Lonewolf10's Avatar
 
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 44
Posts: 1,924
Quote:
Originally Posted by Codetapper View Post
The starfield in the demo moves so fast that you could probably fake the whole thing with about 10 frames of animation in a loop
I said the same thing yesterday - though perhaps I didn't word it clearly enough:

Quote:
Originally Posted by Lonewolf10 View Post
Plus you could cheat (and be lame) and pre-render the star bit (say 20 frames of half-screens)
Quote:
Originally Posted by discomeats View Post
someone should just do the demo
I agree


Regards,
Lonewolf10
Lonewolf10 is offline  
Old 27 January 2012, 19:13   #40
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
no only 2 sources, one in the same place as the destination as usual and one 4/2/1 pixels higher. The mask is put straight into BLTBDAT so no DMA needed.

The FIRST blit is slightly different however because it doesn't need to combine with the background at all. That uses two sources pointing into the original graphics, one 8 pixels higher than the other.
Mrs Beanbag 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
fpga for ecs -> aga turrican3 support.Hardware 17 14 August 2013 00:09
give your best 10 ecs and aga demos turrican3 support.Demos 5 07 November 2010 06:11
AGA/ECS centering Zandig support.WinUAE 8 02 May 2010 21:31
OCS/ECS , AGA Diffrencies Kyon New to Emulation or Amiga scene 7 10 June 2009 11:43
Heimdall 2 AGA vs ECS PiCiJi support.Games 0 28 September 2005 19:04

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 10:05.

Top

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