English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 10 August 2017, 15:30   #2121
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 1,105
Quote:
Originally Posted by Trachu View Post
Ok I have checked your current DMA activity.
It looks like you have freed slots which are not used because in the raster area of them only CPU is used so 4th bitplane slot is ALWAYS empty.
Sorry but You have degraded the quality without any gain. Yet you still have plenty of notused by anything DMA slots. I know it will be hard to utilise them all, but if you want extra speed search it here.

The best idea if you cant change your raster code execution is to move the top panel down. In this way the area of CPU activity will fit perfectly to 6 bitplane screen.
It was just a test to see if doing 4 full coockie cut, plus 2 fast cookie cut could help speed.
sandruzzo is offline  
AdSense AdSense  
Old 10 August 2017, 15:32   #2122
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 1,105
Quote:
Originally Posted by Retro-Nerd View Post
Still huge slowdowns if 2 dragons are on the screen, A500+ config.

Maybe 6 planes are too much. Or we cut down one dragon, or we have to get back to 5 planes
sandruzzo is offline  
Old 10 August 2017, 16:13   #2123
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,764
Tiny optimization: do not use blitter wait subroutine, especially when blits are small and there are many of them, it will waste dozens of cycles vs time that blitter takes to finish (BSR + RTS = lots of wasted cycles).

EDIT: and always put blitter wait before blitter register writes, not immediately after bltsize write.
Toni Wilen is online now  
Old 10 August 2017, 16:17   #2124
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 1,105
Quote:
Originally Posted by Toni Wilen View Post
Tiny optimization: do not use blitter wait subroutine, especially when blits are small and there are many of them, it will waste dozens of cycles vs time that blitter takes to finish (BSR + RTS = lots of wasted cycles).

EDIT: and always put blitter wait before blitter register writes, not immediately after bltsize write.
For more than a blitter i wait blitter after blitter start
sandruzzo is offline  
Old 10 August 2017, 16:20   #2125
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 1,105
Is there a fast way to disable and enable Amiga os?
sandruzzo is offline  
Old 10 August 2017, 16:34   #2126
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 1,105
with 60 height parallax we are near 50hz
sandruzzo is offline  
Old 10 August 2017, 16:42   #2127
Trachu
Registered User
 
Join Date: Dec 2015
Location: Poland
Posts: 172
Quote:
Originally Posted by sandruzzo View Post
with 60 height parallax we are near 50hz
82 lines is the minimum which could look acceptable nice, but we can use sprites for dragon as long as it will fly only in certain area. In first level it does i am not sure how about the rest.

Anyway untill we will start lowering the quality we need to make sure our blitter and cpu procedures are at maximum.
It seems OS and some blitter routines optimisation could give us enough to work.
We can of course lower the colours for sprites to 16 and we can make the dragon sprite, but originally they use more colours we have available, and they wont look as good as on arcade and if they wont whats the point of use EHB... Thats the harsh reality.
Trachu is offline  
Old 10 August 2017, 18:02   #2128
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 248
Some ideas that may help optimizing (note: I haven't seen the source code, it's possible you already do some of this):
  • Use sprites for the top and bottom panels.
    All these panels use seem to use <=128 pixels horizontally of actual graphics data and no more than 3 colours per segment. Right now, you use bitplane DMA for all of the horizontal pixels, though most of them are empty. Replacing this with sprites will save you quite a few DMA cycles.
  • Don't use a WaitVBL or VBL interrupt, but rather a WaitVPOS or Copper interrupt at the start of the 6BPL area.
    This can help, because on average the Blitter performs best during HBLANK and VBLANK, while the CPU performs better* than the Blitter during Display DMA - having most of your CPU cycles happen during display DMA will save you some for use with the Blitter. In my own programs doing this gave me a 'free' 3-5% performance increase, though this will be depended on actual CPU/Blitter loads
  • Consider setting colours once before the game starts and then only changing the ones that change with the copper
  • Check the same for other display registers (probably won't help, but can't hurt)
  • Remember that you only need to set some of the Blitter registers (such as modulo's) once for every BOB/Restore action with the same value needed. Pointers will always need to be set though.
  • Good Blitter routines can make a lot of difference, the CPU overhead for blitting on a 68000 is not that small, so check if you can replace MULU's or other calculations by tables.

Maybe some of these can help out, they may not give you a ton of extra performance, but every bit helps

*) I don't mean for softblitting, but rather - it's delayed less severely than the Blitter.


Quote:
Originally Posted by sandruzzo View Post
Is there a fast way to disable and enable Amiga os?
Basically, disabling the OS means blocking all interrupts and saving the sate of the display, vectors etc. Restoring means doing the reverse.

Photon made an mini startup that does just this, you can find it on his site in the downloads area: http://coppershade.org/articles/More!/Downloads/

Last edited by roondar; 10 August 2017 at 18:09.
roondar is offline  
Old 10 August 2017, 20:48   #2129
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 1,105
Quote:
Originally Posted by Trachu View Post
82 lines is the minimum which could look acceptable nice, but we can use sprites for dragon as long as it will fly only in certain area. In first level it does i am not sure how about the rest.

Anyway untill we will start lowering the quality we need to make sure our blitter and cpu procedures are at maximum.
It seems OS and some blitter routines optimisation could give us enough to work.
We can of course lower the colours for sprites to 16 and we can make the dragon sprite, but originally they use more colours we have available, and they wont look as good as on arcade and if they wont whats the point of use EHB... Thats the harsh reality.
we can still use the whole 6 planes, but only 4 for each enemy that can be mapped as we like
sandruzzo is offline  
Old 10 August 2017, 21:28   #2130
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 1,105
Quote:
Originally Posted by roondar View Post
Some ideas that may help optimizing (note: I haven't seen the source code, it's possible you already do some of this):
  • Use sprites for the top and bottom panels.
    All these panels use seem to use <=128 pixels horizontally of actual graphics data and no more than 3 colours per segment. Right now, you use bitplane DMA for all of the horizontal pixels, though most of them are empty. Replacing this with sprites will save you quite a few DMA cycles.
  • Don't use a WaitVBL or VBL interrupt, but rather a WaitVPOS or Copper interrupt at the start of the 6BPL area.
    This can help, because on average the Blitter performs best during HBLANK and VBLANK, while the CPU performs better* than the Blitter during Display DMA - having most of your CPU cycles happen during display DMA will save you some for use with the Blitter. In my own programs doing this gave me a 'free' 3-5% performance increase, though this will be depended on actual CPU/Blitter loads
  • Consider setting colours once before the game starts and then only changing the ones that change with the copper
  • Check the same for other display registers (probably won't help, but can't hurt)
  • Remember that you only need to set some of the Blitter registers (such as modulo's) once for every BOB/Restore action with the same value needed. Pointers will always need to be set though.
  • Good Blitter routines can make a lot of difference, the CPU overhead for blitting on a 68000 is not that small, so check if you can replace MULU's or other calculations by tables.

Maybe some of these can help out, they may not give you a ton of extra performance, but every bit helps

*) I don't mean for softblitting, but rather - it's delayed less severely than the Blitter.



Basically, disabling the OS means blocking all interrupts and saving the sate of the display, vectors etc. Restoring means doing the reverse.

Photon made an mini startup that does just this, you can find it on his site in the downloads area: http://coppershade.org/articles/More!/Downloads/
Even whiout upper and lower panel we can hit 50 hz.

Using only 4 planes for each enemy we'll have 4 blitting with channels abcd and 2 with only 3 channels, this will save a lot of dma
sandruzzo is offline  
Old 06 September 2017, 23:55   #2131
LeCaravage
Registered User

 
Join Date: May 2017
Location: France
Posts: 34
Any further news with the project ?
I like to read musicians/graphics/coders/developers diaries
LeCaravage is offline  
Old 07 September 2017, 02:11   #2132
saimon69
Bedroom musician

 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 686
Quote:
Originally Posted by LeCaravage View Post
Any further news with the project ?
I like to read musicians/graphics/coders/developers diaries
Well, music speaking last week some one provided me via FB a link to the FM songs of the arcade plus a plug-in for Winamp that should help me to play and capture single audio channels of it in order to get better samples but i did nothing yet; i did achieve a good level of fidelity with arcade samples even though sometimes sound seems a bit dirty; am busy with other gigs and will put my hands on it once more free
saimon69 is offline  
Old 08 September 2017, 00:50   #2133
LeCaravage
Registered User

 
Join Date: May 2017
Location: France
Posts: 34
Quote:
Originally Posted by saimon69 View Post
Well, music speaking last week some one provided me via FB a link to the FM songs of the arcade plus a plug-in for Winamp that should help me to play and capture single audio channels of it in order to get better samples but i did nothing yet; i did achieve a good level of fidelity with arcade samples even though sometimes sound seems a bit dirty; am busy with other gigs and will put my hands on it once more free
Just curious. Did you have to convert samples to amiga format ? You use protracker I guess ?
LeCaravage is offline  
Old 15 October 2017, 04:01   #2134
saimon69
Bedroom musician

 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 686
Well actually Milkytracker and Audacity; tried to cut pieces from mp3s of the music and so far did work
saimon69 is offline  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
rygar? Prosonic support.Games 7 09 June 2013 15:18
two more that borrow heavily from Rygar & Black Tiger NfernalNfluence Nostalgia & memories 5 30 September 2012 19:57
SCIENCE 451-RYGAR: same disks mrodfr project.TOSEC (amiga only) 0 26 December 2006 16:38
Wordworth conversion vertigo support.Apps 5 09 December 2003 15:46

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 21:38.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.24419 seconds with 15 queries