home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
ppc
/
rtgppc
/
ppcdocs.txt
next >
Wrap
Text File
|
1998-01-06
|
9KB
|
178 lines
Docs about rtgmaster PPC
========================
First of all: This is a PREVIEW of rtgmaster PPC !!! Coders read this docs very
careful !!!
As now PowerPC Boards are available for the Amiga Computers, it will be interesting
of creating games that will run on these Boards. The problem is, the current
software available for PPC Boards does not feature PPC Native Graphics Functions.
rtgmaster PPC will support such functions.
Before i go into detail i have to tell some things about how the Amiga PowerPC
Control Software works principially. Actually, there are TWO software systems,
one called ppc.library being shipped with the Boards, and one called WarpUP
being available as Freeware (Reminds a bit of CyberGraphX and Picasso96, doesn't
it ?). If you ran a program that used ppc.library, and now want to run a WarpUP
program, you have to reboot (and vice versa).
68k and PPC part
================
New for both:
- Added RtgBobSystem (Soft-sprites...)
- Changed CopyRtgPixelArray (in a backward compatible way, to support AGA Support
without c2p...)
* the Planar Copy under AGA is now fully functional (the function does Planar
Copy under AGA, Chunky Copy under GFX Board, so you can do AGA Support
without c2p, if you do not want c2p... you need two sets of graphics files
then... if you want to use c2p, use CopyRtgBlit instead, it does c2p for
AGA)
* Blit Width/Destination Width don't have to be the same any longer.
Destination Width/Height is always that of the Screen. Source Width
has to be the same like Destination Width, but it is possible to copy only
parts of the Buffer to the Destination, by using Source Offsets and
smaller Width/Height.
- Changed CopyRtgBlit (in a backward compatible way, due to user wishes... if you
don't need the new features you won't have to change your code !!!)
- C Part of the thing is now StormC instead of SAS/C (more system-conform
Init-Code also...)
- Fat/Mixed Binary (runs on PPC and on 68k Amigas !!!)
Masked Parameter:
0: GfxBoard: Chunky Copy, AGA: c2p, Please use only Fullscreen c2p, not all c2p
Modules support Not-Fullscreen-c2p. To do Fullscreen c2p simply set All Offsets
to 0, all Width/Height to Screenwidth/Screenheight.
1: GfxBoard: Chunky Copy, No pixel will be overwritten with color 0. Not available
for AGA.
2: The same like 0, but also works with Fastram Buffers. Performs Chunky-Copy
for both GFX Boards and AGA.
3: The same like 1, but also works with Fastram Buffers. Performs Chunky-Copy with
color-0-restriction for both GFX Boards and AGA.
- rtg_MouseMove sends IDCMP_MOUSEMOVE messages additionally
- rtg_DeltaMove sends IDCMP_MOUSEMOVE messages with Delta-Values. For EGS, which
does not support this feature, the same like rtg_MouseMove.
- rtg_Workbench: Not yet working, hopefully in V31...
Note: rtg_MouseMove/rtg_DeltaMove do not work with the PPC Versions of the Message
functions. Use the 68k Functions with Context-Switch, if you need these tags.
Also the PPC Versions do not send the timer values for IntuiMessages...
The ppc.library<->WarpUP Discussion
===================================
I am very sorry that i have to tell about this whole sad discussion. But i fear
i HAVE to tell some words about it... I am sorry to Phase 5 that this text won't
let their software look good. But as to game coding (what rtgmaster is intended
mainly for) i am interest in EFFICIENCY. And for that i have to use WarpUP. Like
most other PPC Software products that are in developpement do...
Now, why does WarpUP exist at all ? Why a second software ? (I tell at this place,
that rtgmaster PPC uses WarpUP, like probably ANY bigger PPC Application asides
from Wildfire does).
- Anytimes you want to start a PPC Function, a whole new task has to be started.
This causes slowdowns.
- The 68k<->PPC Switches on ppc.library are slower than on WarpUP.
- ppc.library Software is quite complicated to code... even if it is only a
"Hello, World" program. More complicated programs are VERY complicated to do.
- Only the WarpUP-using Compiler StormC deals with Context-Switches AUTOMATICALLY.
- Overall, the performance of WarpUP is much better, the usability too.
- AFAIK, only WarpUP features Fat Binary, Mixed Binary and PPC Shared Libs.
(At least for the Version of ppc.library i saw last, this was true). I need
all these three features for rtgmaster PPC.
- WarpUP uses the AmigaDOS Executable Format, while ppc.library uses the Format
of the Linux OS
I have to tell here, we have REALLY to be grateful to Phase 5 for creating the
PowerUP Hardware. But they should have left the software part to Haage&Partner.
Sorry, if i tell this that bluntly. Especially if you want to code a performance
intensive game i only can recommend you to use WarpUP. Not only will the speed be
better. You also will need much less knowledge to create PPC Applications. You can
even create applications that run on both 68k and PPC very easy. Portability is the
key :)
Sometimes it is said, that ppc.library would support Multiprocessoring, what WarpUP
would not. This is wrong. WarpUP supports Multiprocessoring (but you have to create
the PROTOCOL for the CPU communication yourselves). This is, because with the given
PowerUP Hardware, running PPC and 68k parallel will SLOW DOWN your program, not SPEED
UP it. With future Hardware that might be different, but not with the existing
PowerUP Boards. And Sam Jordan, the coder of WarpUP already said, he would enhance
the Multiprocessoring support in case such hardware appears.
Also Haage&Partner will support ANY Hardware manufacturer with WarpUP who wants to
do a PPC Board. Not only the Phase 5 Hardware.
So, as rtgmaster PPC uses WarpUP, what does this mean ?
If you intend to use ppc.library, you should install the 68k Version of rtgmaster.
Programs using the PPC functions of rtgmaster won't run then, of course. Alternatively
you can simply install WarpUP V7. It provides compatibility with ppc.library, but it
uses the same slow and problematic functions like ppc.library (because of that it is
compatible...). When i tested rtgmaster PPC with powerpc.library V7 and ppc.library,
though, i got a crash at startup, probably caused by the way ELF-Format does stack-handling,
like i was told. I am not sure, if this is fixed with ppc.library V45, but to tell
the truth, i don't care that much. If it does not run with ppc.library, try rtgmaster V27.
Most new features of rtgmaster V30 are PPC-features, which are only usable with WarpUP.
How does the concept of rtgmasterPPC work ?
===========================================
rtgmaster PPC is a Mixed Shared Library, which means, that it has functions in 68k,
and functions in PPC. On a 68k system, you should ONLY use the 68k functions, on a
PowerUP system both can be used. Every rtgmaster function exists in both 68k and PPC,
but not all of them are PPC Native. Some of those PPC functions (currently nearly all)
simply call a Context-Switch and execute the function on 68k.
You SHOULD USE the function CheckPPCCommand() to find out which functions are available
in "true PPC code".
To use the functions, for 68k you have to use the protos and the pragma-file (for
SAS/C: pragmas-file). For PPC you only have to include the protos-File (works only
with StormC PowerUP, in case other compilers supporting WarpUP appear, they will
be supported, too, of course. And it works also with StormPowerASM, of course, and
shold run with pASM - did not try it yet, just downloaded it- .
List of true PPC functions:
CS means that the PPC function exists, but is not a true PPC function. Instead
it performs a context-switch to the 68k function. - means that not even this
exists. I will fix this as soon as possible. Remember, this is yet a preview only.
In case of - an empty function will be performed.
rtgP96.library rtgCGX.library rtgAMI.library rtgEGS.library
============== ============== ============== ==============
PPCCCopyRtgBlit PPCCopyRtgBlit PPCCopyRtgBlit -
PPCLockRtgScreen PPCLockRtgScreen PPCLockRtgScreen -
PPCUnlockRtgScreen PPCUnlockRtgScreen PPCUnlockRtgScreen -
PPCGetBufAdr PPCGetBufAdr PPCGetBufAdr -
PPCCopyRtgPixelArray PPCCopyRtgPixelArray - -
PPCRtgSetTextMode PPCRtgSetTextMode PPCRtgSetTextMode -
PPCRtgSetTextModeRGB PPCRtgSetTextModeRGB PPCRtgSetTextModeRGB -
PPCRtgInitRDCMP PPCRtgInitRDCMP PPCRtgInitRDCMP -
PPCopyRtgBlit PPCCopyRtgBlit PPCCopyRtgBlit -
PPCRtgScreenAtFront PPCRtgScreenAtFront PPCRtgScreenAtFront -
PPCDrawRtgLine PPCDrawRtgLine - -
PPCWriteRtgPixel PPCWriteRtgPixel - -
PPCRtgWaitRDCMP PPCWaitRDCMP PPCWaitRDCMP -
PPCRtgGetMsg PPCRtgGetMsg PPCRtgGetMsg -
PPCRtgReplyMsg PPCRtgReplyMsg PPCRtgReplyMsg -
PPCFillRtgRect PPCFillRtgRect CS -
PPCFillRtgRectRGB PPCFillRtgRectRGB No 24 Bit for AGA -
PPCWriteRtgPixelArrayPPCWriteRtgPixelArray- -
PPCCallRtgC2P PPCCallRtgC2P PPCCallRtgC2P -
All other PPC functions simply perform a contextswitch to 68k.
Steffen Haeuser