English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 10 August 2017, 14:30   #2121
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
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  
Old 10 August 2017, 14:32   #2122
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
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, 15:13   #2123
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
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 offline  
Old 10 August 2017, 15:17   #2124
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
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, 15:20   #2125
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
Is there a fast way to disable and enable Amiga os?
sandruzzo is offline  
Old 10 August 2017, 15:34   #2126
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
with 60 height parallax we are near 50hz
sandruzzo is offline  
Old 10 August 2017, 15:42   #2127
Trachu
Registered User
 
Join Date: Dec 2015
Location: Poland
Posts: 189
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, 17:02   #2128
roondar
Registered User
 
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
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 17:09.
roondar is offline  
Old 10 August 2017, 19:48   #2129
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
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, 20:28   #2130
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
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, 22:55   #2131
LeCaravage
Registered User
 
LeCaravage's Avatar
 
Join Date: May 2017
Location: AmigaLand
Posts: 456
Any further news with the project ?
I like to read musicians/graphics/coders/developers diaries
LeCaravage is offline  
Old 07 September 2017, 01:11   #2132
saimon69
J.M.D - Bedroom Musician
 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,516
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 07 September 2017, 23:50   #2133
LeCaravage
Registered User
 
LeCaravage's Avatar
 
Join Date: May 2017
Location: AmigaLand
Posts: 456
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, 03:01   #2134
saimon69
J.M.D - Bedroom Musician
 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,516
Well actually Milkytracker and Audacity; tried to cut pieces from mp3s of the music and so far did work
saimon69 is offline  
Old 02 December 2017, 00:27   #2135
zambot3
Registered User
 
Join Date: Feb 2008
Location: Italy
Posts: 98
Project abandoned?
zambot3 is offline  
Old 04 December 2017, 03:27   #2136
invent
pixels
 
invent's Avatar
 
Join Date: May 2014
Location: Australia
Age: 52
Posts: 476
Hi Zambot3, just a quick update, it's certainly not abandoned but I would say its on the back burner at the moment. Don't panic though as we are always working hard in the Amiga scene on a few projects and people can always volunteer to help

Hi LeCaravage, developer diaries are a great idea although i have been more tempted on a Patreon site or "the making of" digital books. I do post on my blog, possibly should post more.

Sandruzzo may be able to speak further on development but he and I both are busy on ProXima 3
invent is offline  
Old 01 January 2018, 14:11   #2137
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,281
Sorry If I left this project, but isn't possible to finish this game since it'll take a lot of time. If there was a kickstarter project or some kind of founding that would be possible.

I did what I could.
sandruzzo is offline  
Old 01 January 2018, 14:46   #2138
DamienD
Banned
 
DamienD's Avatar
 
Join Date: Aug 2005
Location: London / Sydney
Age: 47
Posts: 20,420
That's very sad to hear

...but you're saying that if you were paid you then would continue? What sort of funds would you require?

Last edited by DamienD; 01 January 2018 at 15:15.
DamienD is offline  
Old 01 January 2018, 15:31   #2139
mcgeezer
Registered User
 
Join Date: Oct 2017
Location: Sunderland, England
Posts: 2,702
Quote:
Originally Posted by sandruzzo View Post
Sorry If I left this project, but isn't possible to finish this game since it'll take a lot of time. If there was a kickstarter project or some kind of founding that would be possible.

I did what I could.
What is it coded in?

If it’s assembler then i may be willing to take over the coding after i complete bombjack, would also depend on if u would be willing to let that happen also.
mcgeezer is offline  
Old 01 January 2018, 21:29   #2140
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
It is written in asm. Not sure if it is the last version
https://drive.google.com/file/d/0B03...tROU1Db3c/view
kamelito 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
rygar? Prosonic support.Games 7 09 June 2013 14:18
two more that borrow heavily from Rygar & Black Tiger NfernalNfluence Nostalgia & memories 5 30 September 2012 18:57
SCIENCE 451-RYGAR: same disks mrodfr project.TOSEC (amiga only) 0 26 December 2006 15:38
Wordworth conversion vertigo support.Apps 5 09 December 2003 14: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 12:50.

Top

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