Welcome, Guest. Please login or register.

Author Topic: I made my first demoscene effect in assembler!  (Read 3623 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: I made my first demoscene effect in assembler!
« Reply #14 from previous page: November 27, 2006, 04:34:30 PM »
Okay, took a look at the code and optimized it couple of cycles. It should be slightly faster, but not much. I also fixed some small bugs from the startup code, made it render as fast as possible (it's much slower than vertical blank, so rendering from VBL doesn't make much sense), removed chipmem allocation, fixed random returncode etc.

ROTOZOOM.S
ROTOZOOM.exe
 

Offline Speelgoedmannetje

  • Hero Member
  • *****
  • Join Date: Oct 2002
  • Posts: 9656
    • Show only replies by Speelgoedmannetje
Re: I made my first demoscene effect in assembler!
« Reply #15 on: November 27, 2006, 07:44:33 PM »
Quote

motorollin wrote:
I bet you guys don't even need to run the executable. You can probably see the effect just by reading the code :lol:

jk

--
moto
It's funny, and it's true...
Also, I found out certain errors in my code when I was asleep (wich were indeed errors wich I fixed next morning).
And the canary said: \'chirp\'
 

Offline balrogsoftTopic starter

  • Full Member
  • ***
  • Join Date: Jan 2006
  • Posts: 186
    • Show only replies by balrogsoft
    • http://www.amigaskoolnet
Re: I made my first demoscene effect in assembler!
« Reply #16 on: November 27, 2006, 10:23:21 PM »
I made some changes from last version, i mixed Piru code with mine, my changes are: improve rotation (more smoothness), constants to define screen size, initial raster position, box map size and useless copper list instructions was removed.

I think that my next step will be make an AGA version with a 4x1 pixel definition, and a small 4k intro maybe...

@Piru: i will learn a lot from your changes, thank you.
Balrog Software · http://www.amigaskool.net
Mac Mini G4 1,5ghz · MorphOS 2.7 · Ati Radeon 9200 64Mb · 1 Gb RAM · 80 GB HD
Efika · MorphOS 2.7 · Ati Radeon 9250 128Mb · 120 Gb WD HD
Amiga 1200T · OS 3.9 · Voodoo3 · Blizzard 603e/240mhz 060/50mhz · 98 Mb RAM · 40 GB HD
Amiga 600 · OS 3.1 · ACA 630/25mhz 32 Mb RAM · 4Gb CF
 

Offline Britelite

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 187
    • Show only replies by Britelite
    • http://www.dekadence64.org
Re: I made my first demoscene effect in assembler!
« Reply #17 on: November 28, 2006, 01:36:51 AM »
Damn, I almost feel like posting my own copperchunky-rotozoomer here now, but I guess I won't ;)
 

Offline balrogsoftTopic starter

  • Full Member
  • ***
  • Join Date: Jan 2006
  • Posts: 186
    • Show only replies by balrogsoft
    • http://www.amigaskoolnet
Re: I made my first demoscene effect in assembler!
« Reply #18 on: December 01, 2006, 10:46:33 PM »
I'm trying to make an AGA chunky 2 copper routine, but i can't get a 4x1 pixel definition, i got some sources from aminet, and i have some questions.

The examples i tested, create a copper list with 7 bitplanes, change colors of differents color banks, but chunky 2 copper routine work setting color0? then why AGA Chunky2copper changes others colors?

What need to be added to a copper list to have an AGA copper list with a 4x1 pixel definition? i made the swaps of hi and low words on copper list colors, but i got 8x1 pixel definition. I need to add 7 empty bitplanes?

I found on google groups, old messages explaining chunky2copper tips, but i can get it working, i read that  you can get 4x1 pixel definition with ECS and 2x1 with AGA. Somebody can explain this tip better?

http://groups.google.es/group/comp.sys.amiga.programmer/browse_thread/thread/ec4c0c74850913fe/06f1e2632d149d7d?lnk=st&q=12bit+aga+copper+list&rnum=4&hl=es#06f1e2632d149d7d

Thanks in advance.
Balrog Software · http://www.amigaskool.net
Mac Mini G4 1,5ghz · MorphOS 2.7 · Ati Radeon 9200 64Mb · 1 Gb RAM · 80 GB HD
Efika · MorphOS 2.7 · Ati Radeon 9250 128Mb · 120 Gb WD HD
Amiga 1200T · OS 3.9 · Voodoo3 · Blizzard 603e/240mhz 060/50mhz · 98 Mb RAM · 40 GB HD
Amiga 600 · OS 3.1 · ACA 630/25mhz 32 Mb RAM · 4Gb CF
 

Offline DamageX

  • Sr. Member
  • ****
  • Join Date: Jun 2005
  • Posts: 339
    • Show only replies by DamageX
    • http://www.hyakushiki.net/
Re: I made my first demoscene effect in assembler!
« Reply #19 on: December 03, 2006, 05:10:01 AM »
I've read two things about getting the 4x1 AGA copper chunky mode, I'm not sure what is right. 1) turn off all bitplanes 2) set the low bits in FMODE (register 1FC) and use a 32-bit aligned copper list

Other than that I guess it is the same as your current program.
 

Offline balrogsoftTopic starter

  • Full Member
  • ***
  • Join Date: Jan 2006
  • Posts: 186
    • Show only replies by balrogsoft
    • http://www.amigaskoolnet
Re: I made my first demoscene effect in assembler!
« Reply #20 on: December 07, 2006, 03:16:16 PM »
Quote

DamageX wrote:
1) turn off all bitplanes 2) set the low bits in FMODE (register 1FC) and use a 32-bit aligned copper list


I tried it but i can't get 4x1 pixel resolution, i'm not sure if i need to turn off all bitplanes, i read that setting FMODE to 3 can speed up copper, but only if exist bitplanes, i tried it also and don't work.

Balrog Software · http://www.amigaskool.net
Mac Mini G4 1,5ghz · MorphOS 2.7 · Ati Radeon 9200 64Mb · 1 Gb RAM · 80 GB HD
Efika · MorphOS 2.7 · Ati Radeon 9250 128Mb · 120 Gb WD HD
Amiga 1200T · OS 3.9 · Voodoo3 · Blizzard 603e/240mhz 060/50mhz · 98 Mb RAM · 40 GB HD
Amiga 600 · OS 3.1 · ACA 630/25mhz 32 Mb RAM · 4Gb CF
 

Offline darkcoder

  • Full Member
  • ***
  • Join Date: Sep 2002
  • Posts: 164
    • Show only replies by darkcoder
Re: I made my first demoscene effect in assembler!
« Reply #21 on: December 12, 2006, 10:44:35 AM »
hi,

 I suspect that many info in the thread you linked are wrong or confused.

 AFAIK, on both OCS and AGA the copper does 1 move every 8 pixel. So, with bitplanes turned off, you can only do 8x1.
To get higher resolution you have to use bitplanes to create a  buffer for color changes done by the copper. The usual AGA chunkycopper uses 7 bitplanes, and the BPLCON4 features to switch the palette to bufferize copper moves. You can get
a 107x86 screen made up by 3x3 pixels and a smaller screen with 2x2 pixels.

regards
The Dark Coder / Trinity
 

Offline DamageX

  • Sr. Member
  • ****
  • Join Date: Jun 2005
  • Posts: 339
    • Show only replies by DamageX
    • http://www.hyakushiki.net/
Re: I made my first demoscene effect in assembler!
« Reply #22 on: December 13, 2006, 06:14:20 AM »
So what you're saying is there isn't really a way to make the copper run faster with AGA?

I guess I understand now. You use the copper to write colors into the palette registers instead of the background color register. Use 7 bitplanes (setup with fixed values counting 0,0,0,1,1,1,2,2,2,etc.) so that the copper can be writing to one half of the palette (128 colors) while the other half is being displayed. But to give the copper enough time to write that many colors to the palette, it must work during two or more scanlines, so the vertical resolution is limitted...