Some Developerinfos for ShowAmiga96 v2.2


When SA96 is started, it



Structs/Files

(A) .img file (example for 800x600x16 image)

"imginfo"

infodc.b'SA962048IMG',0just to check if itīs a correct file
sizedc.l960000
widthdc.l800
heightdc.l600
depthdc.l16
formatdc.lRGBFF_R5G6B5PC
fadincntdc.l1number of checked faders
fadoutcntdc.l3number of checked faders
emptyds.l10for future use
imgdatads.lsizeraw image data
colortabds.l256*3for chunky images

(B) memory for patches and module communication



"patchmem"

patch1dc.l 0backup addr of patched function
patch2dc.l 0backup addr of patched function
quititdc.l 00=patches active (no screen switching)
1=ignore patches (i donīt remove them)
patch3dc.l 0backup addr of patched function
emptydc.l 0
patch4dc.l 0backup addr of patched function
fadeinstatdc.l 0status of running fadein module
fadeoutstatdc.l 0status of running fadeout module
actioncntdc.l 0number of running action modules
actioninstdc.l 0instuctions for running action modules
stopmaxwaitdc.l 00=countdown maxwait
1=stop maxwait countdown (while waiting for MUFS-login)
wbstartupdc.l 01=ShowAmiga96_Close has been executed
actionpauseddc.l 0number of paused action modules



(C) ramfile (ram:showamiga96.dat)

"ramfile"

screenptrdc.l0pointer to screen-struct of bootscreen
imagememptrdc.l0pointer to buffer with raw image data
patchmemptrdc.l0pointer to patchmem (B)
sizedc.l0size of raw image data (w*h*d)
widthdc.l0from imginfo (A)
heightdc.l0from imginfo (A)
depthdc.l0from imginfo (A)
formatdc.l0from imginfo (A)
fadeincntdc.l0from imginfo (A)
fadeoutcntdc.l0from imginfo (A)
emptyds.l10
fadeoutmodds.b200filepathname of picked fadeoutmodule
colortabds.l256*3from imginfo (A)
p96driverds.b200pathname of monitordriver
loadfastdc.l0donīt use buffer, load to p96bitmap
monidelaydc.l0
currentpicdc.l0
maxtransdc.l0
randomimagesdc.l0
waitwindowxdc.l0
waitwindowydc.l0
closedelaydc.l0
backgroundcolxdc.l0
backgroundcolydc.l0
waitwbstartupdc.l0
usewaitwindowdc.l0
usebackgpixeldc.l0
useclosedelaydc.l0
backgpixelcoldc.l0




Tasks of a fadein module


When a fadein module is launched, the screen is ready, the raw imagedata buffer is allocated and filled.

First you have to read the ramfile (if it doesnīt exist just quit) and check the fadeinstat longword in the patchmem struct. It must be 3, which indicates that the module may be started. If itīs not equal to 3 just quit.

If everything is ok and your module is running, you have to set fadeinstat to 1.

While patchmemptr->fadeinstat is equal to 1, you have full access to the bootscreen - action and fadeout modules have to wait.

Now you can copy (or whatever) ramfile.imagememptr to the p96 bitmap. If necessary you have to loadrgb32 ramfile.colortab for chunky images.

When you are finished, you have to set patchmemptr->fadeinstat to 0, which is the signal for all other modules that they can start.

Last but not least you must freemem ramfile.imagememptr with ramfile.size.



Here you can download a little demo module ...I hope itīs more helpful...



The SA96 prefs program recognizes the faders by a file called "modulename.inf" in showamiga96/modules/fadein which contains the following information:

dc.b0module supports 8 bit images
dc.b0module supports 16 bit images
dc.b0module supports 24 bit images
dc.b0module supports 32 bit images
dc.b0module supports fastload (probably only 8bit colorcycle effects)
dc.b0empty
dc.b0empty
dc.b0empty
dc.b0empty
dc.b0empty