>...when I had side by side comparisons I noticed that the Amiga 500 never could do 60fps animations? We even had Antic software with Cad 3D 2.0 on both computers, but the Amiga was limited to 30fps at best. I remember having several (albeit slightly downgraded graphicly) Amiga HAM-6 animations such as the juggler, or a Scult 3D demo converted to Spectrum 512 running at 60fps on the ST....
You need to give some better way of proving that the ST version actually ran at 60fps in 320*200*16 since the naked eye has its limitations of noticing frame rates above 25fps. I'll give you an example how to quantify your results. Without using the blitter chip and with the sound and copper running in the background, I was able to paint 320*200 full frames at the following rate on an A500 running at 7.16Mhz: at 3 planes (8 colors/pixel) 52 fps, at 4 planes (16 colors/pixel) 39 fps and in HAM mode 19 fps. The following is the code used to test and it compiles and uploads to the real Amiga with MPDOS Pro (
www.mpdos.com):
ORG $10000
Bra.s ProgStart
CopperList:
DW $E0,$0000,$E2,$4000 ;Bplane#0 at $4000
DW $E4,$0000,$E6,$4028 ;Bplane#1 at $4000 + 40
DW $E8,$0000,$EA,$4050 ;Bplane #2 at $4000 + 80
DW $EC,$0000,$EE,$4078 ;Bplane #3 at $4000 + 120
DW $F0,$0000,$F2,$40A0 ;Bplane #4 at $4000 + 160
DW $F4,$0000,$F6,$40C8 ;Bplane #5 at $4000 + 200
DW $180,$F00 ;red color
DW $2c81,$fffeh ;WAIT for video beam (X,Y) = (112,44)
DW $180,$0 ;black color
DW $5E01,$FF00h ;wait for (x,y) = (0,94)
DW $180,$0F0 ;green color
DW $9001,$FF00h ;wait for (x,y) = (0,144)
DW $180,$00F ;blue color
DW $C201,$FF00h ;wait for (x,y) = (0,194)
DW $180,$FF0 ;yellow
DW $F401,$FF00h ;wait for (x,y) = (0,244)
DW $180,$0FF ;cyan
DW $FF01,$FF00h ;wait for (x,y) = (0,255)
DW $180,$F0F ;magenta
DW $FFFF,$FFFE
ProgStart:
Move.l #CopperList,$DFF080 ;1st copper list.
Move #2,$dff088
Move #$2c81,$dff08e
Move #$F4C1,$dff090
Move.l #$3800D0,$dff092
;Move #$d0,$dff094
Move #$4204,$dff100 ;use $6A04 for HAM mode
Move #0,$dff102
Move #$24,$dff104
Move #0,$DFF106 ;unused in OCS
Move #$C8,$dff108
Move #$C8,$dff10a
Move #$C080,$DFF09a
Move #$8381,$dff096
Move #16-1,D1
Move.l #$DFF180,A0 ;color register #0
Clr.w D0
SetPalette: Move D0,(a0)+
Add.w #$111,D0 ;next shade
Dbra D1,SetPalette
Move.l #1200,D3
;Move.l #$0000FFFF,D3
NextFrame: Lea $4000,A0 ;plane #0 at $4000
Move #200-1,D1
NextLine: Moveq #5-1,D0
SetPixels: ;Move.l #-1,$C8(a0) ;plane #5
;Move.l #$0,$A0(a0) ;plane #4
Move.l D3,$78(a0) ;plane #3
Move.l #$00FF00FF,$50(a0) ;plane #2
Move.l #$0F0F0F0F,$28(a0) ;plane #1
Move.l #$33333333,(a0)+ ;plane #0
;Move.l #-1,$C8(a0) ;plane #5
;Move.l #$0,$A0(a0) ;plane #4
Move.l D3,$78(a0) ;plane #3
Move.l #$00FF00FF,$50(a0) ;plane #2
Move.l #$0F0F0F0F,$28(a0) ;plane #1
Move.l #$33333333,(a0)+ ;plane #0
Dbra D0,SetPixels
Adda #200,A0
Dbra D1,NextLine
Dbra D3,NextFrame
AllDone: Move.w $DFF006,D1
Lsr.w #4,D1
Move D1,$DFF180
Jmp AllDone
DW 2 dup(0)