English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 09 January 2014, 20:33   #1
chaos
Registered User
 
chaos's Avatar
 
Join Date: Mar 2013
Location: Slovenia
Posts: 138
A simple animation - is there a better way?

Hi everybody.

I'm trying to do a simple animation (the classic spinning ball, of course ), which after the initial setup, should be able to run with just the copper and the blitter, without CPU intervention.

I have a basic version ready (thanks partly to Photon's nice video guides!), but the copper lists are pretty long, and I was wondering if there is a smarter way to do this?

Basically, I'm using copper to setup the blitter to copy the ball's two bitplanes to screen, and I need a 5 frame delay for each frame of animation, so that's 8frames*5 different copper lists.

Is there a better way to do this?

Oh and another question - how can the executable from this source be only 404 bytes big, if just the ball data is much bigger than this?? Does AsmOne use some sort of compression, or am I missing something?

EDIT: the animation data that is INCLUDEd into the source is definitely missing in the executable, it seems the only reason it worked was that all the data was already loaded into the right place and luckily wasn't overwritten. After restarting WinUAE, it stopped working. I have no idea how to convince ASMOne to include the required data in the executable, is this a common problem?
Attached Files
File Type: s test2.s (11.1 KB, 159 views)

Last edited by chaos; 09 January 2014 at 22:00.
chaos is offline  
Old 09 January 2014, 22:58   #2
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Some quick notes:
- the source starts with 44 bytes trash
- SECTION and ORG should not be mixed
- where is boingball_data.s ?
phx is offline  
Old 09 January 2014, 23:31   #3
chaos
Registered User
 
chaos's Avatar
 
Join Date: Mar 2013
Location: Slovenia
Posts: 138
Ah, thanks!

1. Yes, I saw the garbage at the beginning when I tried to compile it with vasm. Didn't see it in AsmOne ...
2. Ups, didn't notice the second ORG, I only fixed the first one :S I guess that is why it didn't work Also found out how to fix it: (http://eab.abime.net/showthread.php?t=71291), but it's too much work to fix this test program. Doesn't matter though, for what I will need this requires absolute memory addresses anyway (bootup screen for minimig, when there is no kickstart or even CPU available).
3. Attached!
Attached Files
File Type: s boingball_data.s (33.3 KB, 124 views)

Last edited by chaos; 09 January 2014 at 23:44.
chaos is offline  
Old 10 January 2014, 17:13   #4
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,538
Quote:
Originally Posted by chaos View Post
Basically, I'm using copper to setup the blitter to copy the ball's two bitplanes to screen, and I need a 5 frame delay for each frame of animation, so that's 8frames*5 different copper lists.

Is there a better way to do this?
To do it with the Copper alone is certainly an interesting approach, but in a real project I never found a reason for it.

An improvement would be to use interleaved bitplanes, so you can blit the ball with a single Blitter start.


Quote:
Oh and another question - how can the executable from this source be only 404 bytes big, if just the ball data is much bigger than this??
I know nothing about AsmOne's internals, but I guess that everything after the ORG directive was missing, and written directly into memory instead.
phx is offline  
Old 11 January 2014, 02:15   #5
chaos
Registered User
 
chaos's Avatar
 
Join Date: Mar 2013
Location: Slovenia
Posts: 138
Quote:
Originally Posted by phx View Post
To do it with the Copper alone is certainly an interesting approach, but in a real project I never found a reason for it.

An improvement would be to use interleaved bitplanes, so you can blit the ball with a single Blitter start.
Yes, I would imagine this would be much simpler with the CPU, but like I said, this must be able to run without kickstart & CPU.

I might try the interleaved bitplanes approach, thanks for the hint!

Quote:
I know nothing about AsmOne's internals, but I guess that everything after the ORG directive was missing, and written directly into memory instead.
Yes, it seems that is what happened. I'm really more or less a beginner here, so this was completely new to me

Anywayz, I added a logo, and this is more or less how I want the bootup screen to look, with the bootup text below the logo:

[ Show youtube player ]
chaos is offline  
Old 11 January 2014, 02:45   #6
Codetapper
2 contact me: email only!
 
Codetapper's Avatar
 
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
Another tip for you, if you're unrolling a loop for speed you can do this and make your code more elegant!

Code:
REPT 64
move.w (a4)+,(a3)+
ENDR
Codetapper is offline  
Old 11 January 2014, 14:08   #7
chaos
Registered User
 
chaos's Avatar
 
Join Date: Mar 2013
Location: Slovenia
Posts: 138
Great, thanks for the tip!
chaos 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
Animation Studio ptrchiappe request.Apps 17 09 June 2011 22:17
A simple demo with dragon animation? Ziaxx request.Demos 0 22 November 2010 21:37
Animation Journeyman hit request.Apps 2 08 May 2010 01:21
ST PD animation of an owl Adropac2 request.Demos 0 18 February 2008 19:51
Name of animation? Drake1009 Retrogaming General Discussion 7 10 December 2001 13:00

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:13.

Top

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