English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 02 November 2011, 11:17   #1
Raislin77it
Zone Friend
 
Raislin77it's Avatar
 
Join Date: Jan 2005
Location: italy
Age: 46
Posts: 244
newbe help

hi, i want to subscribe to the annual gamemaking contest but i know nothing about the amiga hw

i know the c language and a little to none of basic.

i want to create an aga game, able to play also on the vanilla 1200.

what language is best for me?

my first option will be c+sdl , but the speed is good?

here i have also hollywood registered, but it soesn't work on a vanilla 1200 (it need an rtg card)

i have readed also some docs of the blitzbasic, but the initcopperlist scare me (and if i use the dbl_display.include of bb3 the speed is good on 020?)

the gamesmith seems good but i don't want to use dice, i will prefer to cross comile from win( gamesmith is compatible with gcc? )

what are yours advices ?
Raislin77it is offline  
Old 02 November 2011, 21:44   #2
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
GameSmith is not compatible with GCC's .a format for object code. Also the recommended compiler to use with GameSmith is SAS/C rather than the crippled version of DICE that it comes with.

I'd recommend that you learn Graphics.library first in C first before messing with API wrappers. The only thing I wouldn't recommend is AnimOb structures and the Animate() command because they have longword alignment issues that prevent them from working properly on the '020+.
Samurai_Crow is offline  
Old 02 November 2011, 23:40   #3
Raislin77it
Zone Friend
 
Raislin77it's Avatar
 
Join Date: Jan 2005
Location: italy
Age: 46
Posts: 244
Quote:
Originally Posted by Samurai_Crow View Post
GameSmith is not compatible with GCC's .a format for object code. Also the recommended compiler to use with GameSmith is SAS/C rather than the crippled version of DICE that it comes with.

I'd recommend that you learn Graphics.library first in C first before messing with API wrappers. The only thing I wouldn't recommend is AnimOb structures and the Animate() command because they have longword alignment issues that prevent them from working properly on the '020+.
so i must use the classical os (intuition/gfx)blitrasterport etc ?

Last edited by Raislin77it; 02 November 2011 at 23:45.
Raislin77it is offline  
Old 03 November 2011, 02:22   #4
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
Quote:
Originally Posted by Raislin77it View Post
so i must use the classical os (intuition/gfx)blitrasterport etc ?
That's usually best with one exception that transparent blits are slower than CPU blitting with GameSmith. GameSmith will save time when making some types of copper list instructions also, but the best examples for a beginner are the Rom Kernel Reference Manual examples. If you have the Amiga Developer CD version 2.1, you'll be in fine shape using SAS/C. If not, see the sticky message containing the RKRM, Amiga Mail, and so on at the top of the Coders.General forum. The first post has the link.

Also, you mentioned SDL. Avoid using SDL on a Classic Amiga because it will only work with a graphics card and, even still, will be very slow even with one.
Samurai_Crow is offline  
Old 03 November 2011, 03:18   #5
matthey
Banned
 
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
Quote:
Originally Posted by Samurai_Crow View Post
I'd recommend that you learn Graphics.library first in C first before messing with API wrappers. The only thing I wouldn't recommend is AnimOb structures and the Animate() command because they have longword alignment issues that prevent them from working properly on the '020+.
Unaligned memory accesses are not a problem for the 020+ which handles any alignment although the 020/030 has a large penalty for such accesses. It's the 68000 that will crash with a longword or word access at an odd address. Could you explain more?
matthey is offline  
Old 03 November 2011, 03:53   #6
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
Quote:
Originally Posted by matthey View Post
Unaligned memory accesses are not a problem for the 020+ which handles any alignment although the 020/030 has a large penalty for such accesses. It's the 68000 that will crash with a longword or word access at an odd address. Could you explain more?
Since every longword in the AnimOb structure except a minimum list node at the beginning is misaligned causing the speed penalty to be compounded to such a wild extent that I'd say such a design only works properly on 16-bit Amigas. (Although adding a padword to the beginning of the structure before you allocate it would be a quick and easy fix, I've been told that the Animate() subroutine is only about 250 bytes of code and easily duplicated.)
Samurai_Crow is offline  
Old 03 November 2011, 05:22   #7
matthey
Banned
 
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
Quote:
Originally Posted by Samurai_Crow View Post
Since every longword in the AnimOb structure except a minimum list node at the beginning is misaligned causing the speed penalty to be compounded to such a wild extent that I'd say such a design only works properly on 16-bit Amigas. (Although adding a padword to the beginning of the structure before you allocate it would be a quick and easy fix, I've been told that the Animate() subroutine is only about 250 bytes of code and easily duplicated.)
I see. You speak of longword data accesses that are only word aligned. The 020+ handles it better than most processors. It doesn't hurt performance that much unless the data is accessed inside a loop. I believe the 040, 060 and N68k processors will have no penalty for these types of accesses in the cache either. It's less than optimum but I've seen worse performance killers.
matthey is offline  
Old 03 November 2011, 18:34   #8
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
@matthey

The Animate() function accesses all AnimOb structures in a loop and the items are accessed only once per iteration for the most part. That means the data cache loading will not be there. You're better off reinventing the wheel for this one.
Samurai_Crow is offline  
Old 28 January 2012, 01:33   #9
Raislin77it
Zone Friend
 
Raislin77it's Avatar
 
Join Date: Jan 2005
Location: italy
Age: 46
Posts: 244
i have another question, i have a palette , how i can fade it?
the palette is apointer to an array of long (via loadrgb32 so AGA)

how can i obtrain the r,g,b value ?

wow i've founded on aminet what i was searching: FaderFunct.lha

Last edited by Raislin77it; 28 January 2012 at 14:15.
Raislin77it is offline  
Old 08 February 2012, 10:28   #10
Raislin77it
Zone Friend
 
Raislin77it's Avatar
 
Join Date: Jan 2005
Location: italy
Age: 46
Posts: 244
i have another problem

(fixed)

Last edited by Raislin77it; 10 February 2012 at 09:29. Reason: fixed the problem
Raislin77it 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
Amiga Newbe here!!! marvio Retrogaming General Discussion 5 07 July 2009 00:54
aga coding newbe questions. kas1e Coders. General 0 20 May 2006 13:54

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

Top

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