OS4 DepotLogo by DaveyD 
(anonymous IP:,1158) 

   Bug tracker
   Locale browser

   o Audio (328)
   o Datatype (47)
   o Demo (180)
   o Development (532)
   o Document (21)
   o Driver (87)
   o Emulation (141)
   o Game (856)
   o Graphics (457)
   o Library (93)
   o Network (201)
   o Office (56)
   o Utility (805)
   o Video (61)

Total files: 3865

Full index file. Download
Recent index file. Download



Support the site

 Readme for:  Development » Language » amidark2dengine.lha


Description: Game Development Package (Demo version)
Download: amidark2dengine.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 38Mb
Version: 0.9r1
Date: 09 Jan 14
Author: Frederic Cordier / AmiDARK
Submitter: Frederic Cordier / AmiDARK
Email: fred/amidark-engine com
Homepage: http://www.amidark-engine.com
Requirements: Amiga OS 4.1u6, MiniGL 2.5
Category: development/language
Replaces: development/language/amidark2dengine.lha
License: Shareware
Distribute: yes
Min OS Version: 4.1
FileID: 8546
Comments: 4
Snapshots: 0
Downloads: 115  (Current version)
448  (Accumulated)
Votes: 0 (0/0)  (30 days/7 days)

Show comments Show snapshots Show content Show crashlogs Replace file 
AmiDARK 2D Engine Beta-Demo-Evaluation version 0.9 // 2013.03.27

AmiDARK 2D Engine is a Game Development Package ( GDK ).
It can be used from C/C++ under Amiga OS 4 & MorphOS..

This is a *special* demo/test version of the AmiDARK 2D Engine in its actual
development state.
By downloading this demo you agree that you use it at your own risk.

I decided to release this special version to show the actual development state
of the project.
AmiDARK Engine is highly inspired from DarkBASIC Professional and DarkGDK.
With this versoin, you can see that the AmiDARK 2D Engine command set is similar
to DarkGDK one.
That will allow when the engine will be more complete to allow fast and easy
migration of DarkGDK application.

There are few demos available in this version and libamidark.h contain the
actual development state commands sets definition.
You can play with them but, don't forget that AmiDARK Engine is under
development and some functions/commands may not work properly as they are not
completely coded.
Don't forget that this version is available for public only for tests purposes.
You must/should not use it for project development as it is not yet enough
mature for.

If you want more informations, feel free to jump at
or send-me an e-mail at : fred()amidark-engine.com
If you want to support the project :

Copy files in SDK folder in your Amiga OS 4 SDK folders with full path like they
are in this archive.
Also install freetype and FTGL library. Libraries are now included in the

This demo is limited to 5 minutes running applications.
An application compiled using AmiDARK Engine will run for 5 minutes and then
it'll stop with a message about the fact it's a demo version.
It must not be used for commercial/shareware/freeware developments.
This release is only for tests/evaluation purposes.

You must have the latest Hyperion's Amiga OS 4 SDK 53.20 installed.
AmiDARK Engine also need MiniGL 2.5 from Hans de Ruiter available on
os4depot.net installed.
Freetype & FTGL are required libraries for Text Output.
PTReplay.library is needed for music audio playback.

You must have the latest MorphOS SDK Installed.
AmiDARK Engine also need latest TiniGL installed.
Freetype & FTGL are required libraries for Text Output.
PTReplay.library is needed for music audio playback.

A private beta tester release will be done within the next few days.
the limitation of the beta tester will be different.
The applications will run for a longer duration and,
The demos/application will cease to function after a certain date (where the
next release should be ready for release)
The special *private* version is only available for beta tester and donators
that proved their interest in the project.

Kindest Regards,
Frťdťric Cordier aka AmiDARK


2014.01.09 Release 0.9 :
- Fixed .cbp files to work correctly on any configurations where CodeBench is
- Added missing .cbp files so all samples, Darkbasic demo, FX2D and technical
projects own one.
- Fixed a bug in the AmigaOS4 makefiles (.aos4 files).
- Updated and optimised all AmigaOS4 makefiles.
- Created a script file for an automatic installation of the AmiDARK Engine.
- Untested.
- Engine entirely rebuilded in "modules" forms
- Engine now count 33 modules inside the libAmiDARK.a library file.
- Fixed a bug in the DECls & DEClsEx commands that caused flickering in
fullscreen mode.
- Added a new sample that show how to draw triangles.
- Basic 2D is now integrated in the new render list method.
- Transparency, ghosting and filtering fixed extracted from 3D object render
method to allow these to be used by other functions.
- Improved textures filtering.
- Added a new sample that show the use of some of the CORE output functions.
- Rebuilded entirely the rendering system to now handle display lists.
- Plugin system added.
- Improved performance by adding a function to disable the "sprite system
backdrop refresh".
- Removed some internal MiniGL GL_INVALID_ENUM.
- Now use Basic3D transparency, ghosting and filtering methods.
- Improved the light system, and parameters to be more accurate.
- Fixed a bug that prevented DEPlaySound from outputting audio.
- Modified the default sample to work without backdrop saving. Increase the
- Fixed the Raster demonstration by fixing the DECls command issue.
-Plugin available in this release as a "demonstration plugin".

Known Issues in this release:
Drawing Basic2D do no more work. It will be fixed by incorporating the Basic2D
functions render to the new Render List
Functions DEGetDate & DEGetTime causes DSI Errors when using. May be fixed in
next release.
Functions DEPlaySound will not start sound again until it's previous playing is
Backdrop saving/restore is not correct.

Missing in this release:
(That will be added in a future release):
- Plugin development system documentation
- Some more documentations
- Some more demonstration/technical samples.

2013.02.07 :
- Updated makefile.aos4 files to compile correctly with latest changes.
- Added missing Makefile.aos4 files so all samples can be compiled on AmigaOS4
with these makefile.
- Removed gstabs & wall flags from all Makefile.aos4 so, compiled demonstration
should run faster.
- Updated "default project" files to work with the latest changes.
- Updated HELP "Using The Language" to work with the latest changes.
- Added samples that were missing under MorphOS. MorphOS now have exactly the
same samples than AmigaOS4 release.
- Added Makefile.mos files so, all samples may be compiled directly under
MorphOS with these makefile (untested).
- Updated "default project" files to work with the latest changes.
- Updated HELP "Using The Language" to work with the latest changes.
- Removed some old printf debug outputs and replaced them with the default
DebugMessage function.
- Added more commands & functions documentation. Nearly all commands & functions
are now documented.
- Added a new *special* command set called FX2D that does not exist in DarkBASIC
Professional. It will contain various 2D effects.
- Status of FX2D additional command set is not yet defined. It will be a
separate plugin or maybe integrated in the main engine core. Not yet decided.
- Fixed display sizes that were 1 pixel less than sizes specified in
DESetDisplayMode command.
- Fixed a bug that prevented DEInk to be used for text outputs.
- Added internal support for Anisotropic filtering
- Modified DESetObjectFilter, when activating Anisotropic filtering, that
function can't set extra value so, it will be set to 1 per default. 
- Added function DESetObjectFilterEx function to handle Anisotropic on/off and
extra value for anisotropic filtering value.
- Warning : These DESetObjectFilter(Ex) functions is available but it will not
work until both Warp3D & MiniGL will include changes to handle Anisotropic
- Added support for FX2D Fake Raster special effect in the Synchro refresh
- Fixed DEPrint function now correctly handle font height for horizontal
alignment drawing.
- Added commands FXCreateFakeRaster, FXCreateFakeRasterEx &
- Added commands FXDeleteRaster & FXUpdateRaster.
- Added commands FXSetRasterLine, FXSetRasterGradient and function
- Added commands FXSetRasterFromMemblock & FXMakeMemblockFromRaster.
- Added command FXSetRasterY & function FXGetRasterY.
- Added functions FXRasterExist & FXGetRasterHeight.
- Added commands FXHideRaster, FXShowRaster & function FXIsRasterHidden.
- Added commands FXEnableRasters, FXDisableRasters & function
- Added function FXIsRasterUpdated.
- Added commands DEFxImageRastered, DEFxImageRasteredEx,
DEFxStretchedImageRastered & DEFXStretchedImageRasteredEx
- Added internal function to display rasters on screen.
- Added internal function to display raster within an image.
- Added 2 demonstrations samples to show the use of FXRaster commands.
- Added 1 technical demonstration with FX raster and some other stuffs.
- Added support for rasterized images in the refresh process.
- Fixed a bug preventing image from using linear filtering.
- Fixed sprite backdrop restore process.
- Added 2 special commands : DERefreshDoubleBufferOn & DERefreshDoubleBufferOff
- Now text output uses color from DEInk command.
- Fixed font size support.
- DEPlaySound command does not output any audio
- FXRaster effects don't work in full screen.

2012.12.30 :
AmiDARK 2D Engine Beta 0.7 is now available for AmigaOS4 and MorphOS.
- Changed the folder structures for shorter folders names.
- Added a new sample from DarkBASIC Professional that uses memblock to
manipulate images.
- Thank you to stefkos from morphzone.org that provided me a FTGL build for
- Added used libraries (freetype & FTGL) with their original archives and readme
into the MorphOS release.
- Changed the SDK folder structure to fit what we have in MorphOS SDK:
- Fixed function DEBoxEx to draw fully filled boxes.
- Fixed several Basic2D functions. Now, all Basic2D Functions works properly.
- Included the Ghost sample again. Modified and updated.
- Added DEGetBitmapPtr & DEGetBitmapPtrEx functions for direct pixels
- Multi Camera sample available again.
- Fixed a bug that can cause flickering on pasted images.
- Added to DEGetImage & DEGetImageEx functions, the capability to grab images
from Bitmap.
- Added to DEPasteImage & DEPasteImageEx function, the capability to paste
images directly to bitmaps.
- Fixed the transparency handler for DEGetImage & DEGetImageEx
- Added a new sample showing how to use DEGetImage & DEGetImageEx functions.
- Fixed DEReadString.
- Fixed functions DEScancode() to return same values than DarkBASIC
- Added the function DEAScancode() that return the values GLUT gives.
- Fixed internal GLUT keyboard function to not lock on the last pressed key.
- Fixed a bug in DELightPosition that resetted the light type ID.
- Added a new sample to show basics on how to use 3D Lights.
- Added a new sample "Wobble" from DarkBASIC Pro collection that manipulate
images using memblocks.
- Added sample to show how to load an play a .MOD music.
- Known issue that make sound not work properly. May be fixed in next release.
- Fixed the FTGL use to output text. Texts are now outputted correctly.
- Fixed DEMid function. Modified it to be compatible with DarkBASIC Professional
- Added DEMidEx function that is the old DEMid fixed/
- Fixed DESpace function.
- Fixed DEUpper & DELower function.
- Added sample to show the use of text commands.

- Sprites backdrop is not correctly refreshed.
- Sound playing functions does not output any audio.

2012.09.13 :
- Added CodeBench project setups for the actual samples.
- Added used libraries (freetype & FTGL) with their original archives and

2012.09.11 :
AmiDARK 2D Engine Beta 0.6 Release 2 now available for AmigaOS4 
- Fixed a bug that causes compilation errors under AmigaOS4.
- Improved the HTML help and added project creation under AmiDevCPP and
- Compiled all examples with the latest build of the library.

2012.09.10 :
- Removed 4 commands for camera controls using vectors that are not yet
available and, that caused compilation errors.
-Replaced the missing commands.
- Removed a "not available" function from the include files that may cause
compilation error.

2012.09.09 :
Released AmiDARK Engine BETA 0.6 for both AmigaOS4 & MorphOS.

2012.09.09 :
Due to the fact that Iím locked at home because my health is not good these
days, I take some time, to fix some issues.
Working on the MorphOS Build of the AmiDARK Engine.
Now, last build compiles on both AmigaOS4 & MorphOS OSes again. 
-Removed all debug calls for a cleaner source code. BASIC2D 
-HELP files finished.
-HELP files finished.
-added internal functions to allow texts inputs with DEInput function. 
-added functions DEInput, DEInputS, DEInputI & DEInputF to return strings,
integer and floating number. 
-HELP files finished.
Core commands set is now 100% complete
-Fixed system INTERNAL_RunCmd command for MorphOS compatibility. 
-Put DirContexts AmigaOS4 functions in // waiting for a replacement on MorphOS. 
-HELP files finished.
-Fixed DEPositionMouse for MorphOS compatibility.
-Put some AmigaOS4 specific dos in // for MorphOS compilation, waiting for
replacement functions on MorphOS. 
-HELP files finished.
-HELP files finished.
-Added command DERestoreWindow & DEMaximizeWindow. 
-Put DESetWindowLayout in // because SetWindowAttrs does not exist on MorphOS.
No other command found to replace. 
-HELP files finished.
-Updated IDoMethod with DoMethod for MorphOS build. 
-Fixed DESetSoundPan on which arguments differ from AmigaOS4. 
-Fixed bad arguments used on some commands from the SOUND set. 
-HELP files finished.
-HELP files finished.

2012.08.17 :

After a check of all commands sets for the 2D release of the AmiDARK Game
Engine, I took some decisions :

1. Concerning the "Video Animation" commands set. It will not be included in the
initial release of the Game Engine.
In fact, this plugin will need many "dependencies" that may complicate
compilation and makes .exe bigger
So, to avoid this, it will be developed during the 2nd part of development of
the AmiDARK Engine, in parallel with 3D engine development.
This plugin will be released as a "free plugin" for those that will own a
registered copy of the AmiDARK Engine (in both 2D & 2D+3D releases.)
User will only have to add the -lAmiDEVideo plugin (and all needed dependencies
-l) in compilation progress and the .h file definition, to take benefit of these
extra commands.
This decision was made because video games can be developed without these
functions and to not make .exe bigger if you donít use videos.
Of course, development of this plugin will be started as soon as possible.

2. Concerning some *special* commands/functions : "check lists".
Check list are not something we donít use "every day" in a simple game
development. They need us to have some expertise in development to use them so,
I have also decided that the unfinished checklist commands & functions will not
be available in the initial release of the Game Engine.
More to this, the engine is always "under development" so ... I think that
people must 1stly learn the engine before using it deeply...
It will give me some more time to develop these extra commands & functions.
There are few checklist functions. They are used to check fonts, files,
controlers availables in specific folders.
Of course, these functions will be integrated in the Game Engine (in both 2D &
2D+3D releases) as soon as possible.

In fact, I wanted to concentrate on the "essential commands & functions" needed
to develop a video game hoping for a "soon" release, maybe before 2012 ending
All the most importants commands concerning 2D drawings, Bitmaps, Core, File
I/O, Images, Input, Memblocks, Musics, Setup, Sounds, Sprite, System & Texts
functions are now done and available for the next release.
You may ask me : "But what does all these mean ?"
It simply mean that the AmiDARK Engine, in its 2D only version, is now enough
mature and contain all importants functions to be considered (by me) as BETA.
It also mean that to have the 1st RC1 release to be available, only 12 commands
& functions needs to be developed and 286 commands & functions need to be
I also have some more "examples" source code to develop to show the use of some
commands/functions sets.

I hope to release what I can call something like AmiDARK 2D Engine Beta within
the next few days.
With of course, a special version with less restriction (and maybe none) for

2012.08.16 :
-Added internal checking to avoid running the engine when needed system
libraries/devices are not found.
-Added command DEPositionMouse (thanks to Broadblues for the help)..
The command set INPUT is now complete with 60 commands/Functions.
The game engine in its 2D version contain now 479 commands/functions out of 524
actually planed (remain 45 commands/functions to develop).
The game engine in its 2D+3D version contain now 708 commands/functions out of
1177 actually planed (remain 469 commands/functions to develop).

2012.08.15 :
-Added internal GLUT support for special keys : shift, control & alt. 
-Added internal support for default mouse pointers. 
-Added functions DEControlKey & DEShiftKey. 
-Added command DEChangeMouse, DEHideMouse & DEShowMouse.
-Added command DEMakeMemblockFromBitmap & DEMakeBitmapFromMemblock.

2012.08.14 :
-Added function DEReturnKey.
-Added commands DEMakeMemblockFromImage & DEMakeImageFromMemblock.

2012.08.13 :
-Added command DEChangeMeshFromMemblock. 
-Updated commands DEMakeMemblockFromMesh & DEMakeMeshFromMemblock.
-Added commands DEWindowToFront & DEWindowToBack.

2012.07.22 :
-Added commands DEExecuteExecutable & DEExecuteExecutableEx.
-Added Command DEStretchImage & DELoadImageResize.

2012.07.21 :
-Added commands DEGetFileDate & DEGetFileCreation.

2012.07.15 :
-Added commands DECopyFile & DEMoveFile.

2012.07.13 :
-Fixed a bug in the DEMakeFileFromMemblock command. 
-Added commands DEWriteMemblock & DEReadMemblock.
Warning, DEWriteMemblock/DEReadMemblock are not the same commands than
In the 1st case, you can have multiple memblocks in the same file. In the 2nd
case, you canít, the file and the memblock will always have the same size.

2012.07.05 :
-Fixed DESetDir to release context from DEfindFirst & DEfindNext commands use. 
-Added commands DESkipBytes, DEMakeFile, DEMakeFileFromMemblock &
-Added function DEFileEnd.
-Added function DESoundType.

2012.07.02 :
GENERAL The engine now reach 80% of the total 2D Game Engine command set.
-Added command DEFindFirst & DEFindNext. 
-Added function DEGetFileName & DEFileType. 
-Added function DEReadFile
-Added command DEStopSound, DESetSoundPan, DESetSoundVolume & DESetSoundSpeed. 
-Added function DESoundPan, DESoundVolume & DESoundSpeed.
Removed the 3D Sound functions from the development list.
They will be developed later.

2012.07.01 :
Hi everyone, The summer comes and during this period, generally my main
employment activity is lower ... it should makes me less tired and, I hope to be
able to regularly add new functions to the engine.
Now, my efforts concentrate in preparing the engine for the next ĶAlchimie weíll
have at the end of the year.
This section will continue to contain informations on new commands and functions
that will be added to the main Game Development Engine but, all that concern
special demonstrations will remain unrevealed until the next ĶAlchimie.
I hope to release a new alpha/beta version for registered users soonly.
-Added command DECopyBitmap & DECopyBitmapEx.
All planed Bitmap command are done. Bitmap Command Set is now complete .
Removed CD Audio ccmmands & functions from development.
They will be developed later, if requested by users.
-Added DEPlaySound, DEPauseSound & DEResumeSound commands. 
-Added functions DESoundPlaying & DESoundPaused.

2012.05.17 :
Due a to hard disk crash, I have lost some of the latest work.
The last backup was on 2012.02.28 so, I have removed newer comment as Iíll have
to rewrite these changes.
Secondly, these two last months, I encouter health problems so. I had to suspend
all kind of developments during this period.
Now, things are better, I hope that things will continue to go better and better
... and then I can continue the development of the AmiDARK Engine.

2012.02.28 :
-Added command DECopyMemblock.

2012.02.21 :
-Added DEWaitKey & DESuspendForKey commands. 
-Added DEWaitMouse & DESuspendForMouse commands.
-Added functions DEControlDeviceX & DEControlDeviceY that are experimental and
uses the Vertical & Horizontal counter (for tests only). 
-Added function DEControlDeviceY wrapped as empty function as it cannot be
supported by AmigaOSes. 
-Added function DEJoystickFireX. 
-Added command DESetControlDevice & DESetControlDeviceEx. 
-Added function DEGetControlDevice. 
-Improved the mouse support.
-Added commands DESetEmulationOn, DESetEmulationOff & function DEEmulationMode
wrapped as empty functions. 
-Added command DESetGamma. 
-Added functions DEScreenType & DEScreenInvalid. 
-Added command DESetWindowLayout.

2012.02.20 :
Thank you to Sharynn for his Joystick functions. 
-Added functions DEJoystickUp, DEJoystickDown, DEJoystickLeft & DEJoystickRight.

-Added functions DEJoystickFireA, DEJoystickFireB, DEJoystickFireC &
-Added function DEJoystickFireXL.

2012.02.18 :
-Added command DELoadBitmap & DELoadBitmapEx.
-Functions DEJoystickSliderA, DEJoystickSliderB, DEJoystickSliderC &
DEJoystickSliderD wrapped as empties functions thatíll return 0. 
-Functions DEJoystickSliderX, DEJoystickSliderY & DEJoystickSliderZ wrapped as
empties functions thatíll return 0. 
-Functions DEForceUP, DEForceDown, DEForceLeft & DEForceRight wrapped as empties
-Functions DEForceAngle, DEForceNoEffect, DEForceAutoCenterOn &
DEForceAutoCenterOff wrapped as empties commands. 
-Functions DEForceChainWas, DEForceShoot, DEForceImpact & DEForceWaterEffect
wrapped as empties commands.
All functions listed on INPUT command set are functions that are not supported
on AmigaOSes.
They are wrapped as empties functions for compatibility with DarkGDK.
-Integration of FreeType 2 & GLFT in the core of the engine. 
-Added functions DETextHeight & DETextWidth ( and alternates DEGetTextHeight &
DEGetTextWidth ). 
-Added command DESetTextFont, DESetTextFontEx & function DETextFont. 
-Added command DECenterText. 
-Updated DEPrint to handle GLFT informations for text cursor changes. 
-Updated internal text output to screen function to use GLFT

2012.02.12 :
-Created function DEArgb / DEARGB
-Added DEText command. 
-Added functions DEFindSubString, DEFindFirstChar & DEFindLastChar 
-Added command DEReverse & function DECompareCase. 
-Added command DESetTextSize and function DETextSize. 
-Added Command DESetTextColor and function DEGetTextColor that handle 32 bits
(with alpha channel) 
-Modified the DEPrint command to being added to the 2D draw list.
( now Text and Images are displayed in order they are asked in the source code
-Added commands DESetTextToNormal, DESetTextToItalic, DESetTextToBold and
-Added commands DESetTextToOpaque and DESetTextToTransparent. (and alternates
ones DESetTextOpaque and DESetTextTransparent) 
-Added functions DETextStyle and DETextBackgroundType. 
-Added functions DEStr, DEStrI, DEStrEx and DEAppend. 
-Added new internal Text Render function included in the Display (image) Render

2012.02.11 :
-Added functions DEValF, DEValR and DEChr.

2012.02.10 :
-Added functions DEBin, DEHex. 
-Improved functions DEAsc, DELeft, DELower 

2012.02.05 :
- Released Alpha05 for both AmigaOS4 & MorphOS. This is the 1st MorphOS release!
- Modified "escape key" to use F12 on MorphOS to quit applications until the
escape key GLUT bug will be fixed on MorphOS.
- Escape remain the quit application key on AmigaOS4.
- *updated* 410 commands informations on the 569 available for the 2D/3D Engine.
- *updated* 205 commands informations on the 340 available for the 2D Engine.
- Reorganised the release archive folder structure.
- All samples for the MorphOS Version now compiled and running.

2012.01.26 :
- Added DERotateSprite to the sprite render method.
- Sprite commands set is now 100% complete.
Now 3 commands set are complete (Basic2D, Sprite2D & System)
The full 3D Game engine cover 570 commands on 1251 planed (51%).
The 2D Game engine cover 340 on 597 planed (58.74%).

2012.01.21 :
Fixed a Timer.Device setup bug that caused problems with timer use (thanks to
- Fixed DESyncRate function issue that caused unstable frame rate when using
another value than 0.

2012.01.19 :
I have now fixed the issue concerning the Object transparency (hide the black
part of a texture). It now work on both AmigaOS4 & MorphOS.
I decided to release a small 3D demo showing that 3D & 2D are now fully running
on MorphOS :
Here is a small snapshot of this demonstration :
- Improved transparency mode 4.

2012.01.15 :
I have now finished to integrate the new "dynamic list handler" to IMAGE,
Now, both IMAGES, SPRITES and 3D are Working on MorphOS.
Iíve noticed that, translucent 3D object, TIMER & OpenGL Inputs (keys, windows
buttons) donít work on MorphOS so, Iím now working on fixing these.
Once these "bugs" will be hunted and fixed, I may release a new Alpha version of
the engine. One for AmigaOS4 and now, one for MorphOS.

2011.12.19 :
Started to modify the "dynamic list handler" to be a more global list handler
so, I will use it for other parts of the engine that need fast & dynamic lists.
Started changes to the sprite system to use the new global "dynamic list

2011.12.18 :
The Image2D plugin of the Game Engine is now fully working on MorphOS.
To show this, I decided to release a small "beta test" demo for MorphOS.
Be sure to close all running application before running this demo because you
canít exit it and youíll have to soft-reset your Amiga.
here is the link : http://files.amidark-engine.com/DarkEngine_ImagesTest.lzh
Of course, some minor tweakings are needed to improve texture clipping render
It will be done shortly.

2011.12.16 :
Dynamic Image/Texture handler is now entirely rebuilded from scratch.
It work perfectly on AmigaOS4 and allocate memory dynamically to increase list
depending on the user needs.

2011.12.08 :
Iíve made several debug tests and it showed that the internal dynamic image
handler cause crashes on MorphOS.
Iíve then decided to rewrite it entirely from scratch.

2011.11.11 :
- Added functions : DECloneSprite, DEPasteSprite, DEMoveSprite, DESpriteAngle
- Added functions : DESpriteHit, DESpriteCollision SYSTEM
- Rebuilded the DEExitPrompt function.

2011.10.20 :
File commands set partially converted to multi-platform code use.
- MyIoErr, MyGetFilePosition, MyGetfileSize, MyCreateDir, MyDeleteFile
multi-platform functions done.
- MyRenameFile, MyGetCurrentDirName & MyChangeFilePosition multi-platform
functions done.
- MyAvailMem multi-platform function done. All AmigaOS4 functions used more than
1 time are now converted to multi-platform auto/detection function.
  All others functions were modified to handle AmigaOS4 & Other AmigaOSes
direction in the functions in which they are.
  Compilation done and working successfully with all changes.

2011.10.18 :
AmigaOS_DataTypes.c, AmigaOS_Devices.c, AmigaOS_FileIdentifier.c converted to
multi-platform code.
AmigaOS_MEDReplay.c, AmigaOS_MP3Loader.c, AmigaOS_PTReplay.c converted to
multi-platform code.
Basic2D command set converted to multi-platform code.
Basic3D command set converted to multi-platform code.
Core command set converted to multi-platform code.
- MyOpen, MyClose, MyRead & MyWrite Multi-platform functions done.

2011.10.16 :
Decided to entirely remove the GetInterface & DropInterface functions Now a new
system is done with my own MyOpenLibrary & MyCloseLibrary
to handle Amiga OSes ( Lib (AmigaOS, MorphOS) & Interface ( AmigaOS4.x only ).
Modified various functions to handle the new Datatypes.library &
Intuition.library alternate functions for OS selection.

2011.10.09 :
Modified GetInterface & DropInterface functions to check for OS version and to
open what is needed
( Lib (AmigaOS, MorphOS) & Interface ( AmigaOS4.x only ).

2011.10.06 :
Started to rewrite special OS functions to handle AmigaOS4.x, MorphOS & Future
- MyOpenLibrary, MyCloseLibrary, MyAllocVec & MyFreeVec : done

2011.10.01 :
After a long time with no news, Iím back and, as I received the Efika won at
"the best 2011 AmigaOS4.x/MorphOS project" competition,
Iíve now started to migrate to MorphOS the actual AmiDARK Engine build. the
changes made should allow to easily migrate the engine to
any other Amiga OS such as Aros, Natami, MiniMIG and Amiga OS 3.x ...
Nothing is planed actually concerning these Amiga OSes but ... who know ? Maybe
later ...

2011.06.05 :
- Compilation is done with all the new commands available.
- Added function DEBitmapExist
- Added functions DEBitmapWidth, DEBitmapHeight & DEBitmapDepth
- Added functions DEBitmapFlipped, DEBitmapMirrored
- Added command DESetCurrentBitmap & function DECurrentBitmap
- Added alternate function DEBitmapExist
- Added alternate functions DEBitmapWidth, DEBitmapHeight & DEBitmapDepth
- Added alternate functions DEBitmapFlipped, DEBitmapMirrored
- Updated DESetDisplayMode to modify bmpBitMap[ 0 ] informations to use current
display settings as Bitmap 0 data.

2011.06.04 :
- Added commands DECreateBitmap & DEDeleteBitmap.
- Added commands DEFlipBitmap & DEMirrorBitmap.

2011.05.30 :
- Added DEPerformanceTimer function.
- Added DEInKey function.
- Removed commands DEDrawToCamera & DEDrawToScreen as drawing are always done on
main screen (or virtuals bitmaps).
- Removed DEFastSync command (considered as obsolete actually. Will maybe be
developed later if needed/requested)
- Added DEPathExist function.
- Added DEImageFileExist function.
- Added DEGetImage & DEWriteImage commands to read/write direct pixels RGB
values from/to image.
- Added DELockImage & DEUnlockImage to allow/update image changes made with
DEGetImage & DEWriteImage commands.
- Added DESetImageMipmapMode command.
- Added DEGetImageName function.
- Added DESetImageTranslucency command.
- Added DEGetImageData function and DESetImageData for direct image manipulation
accessing the image data block.
- Removed Image block commands & functions. They will be maybe developed later.
- Removed Image to Icon commands & functions. They will be maybe developed

2011.05.28 :
- Added DESpriteOffset command, DESpriteOffsetX & DESpriteOffsetY functions.
- Fixed sprite render with changes.

2011.05.26 :
- Added DECreateAnimatedSprite, DESetSpriteFrame, DEPlaySprite commands &
DESpriteFrame function.
- Added DESpriteRed, DESpriteGreen, DESpriteBlue & DESpriteAlpha functions.
- Added DESpriteVisible function.
- Added DESpriteScaleX & DESpriteScaleY functions.
- Added DEMirrorSprite & DEFlipSprite commands.
- Added DESetSpriteImage, DESetSpriteAlpha & DESetSpriteDiffuse commands.
- Added DESetSpriteCoordinates command.
- Added DESizeSprite, DEScaleSprite & DEStretchSprite commands.
- Separated Sprite render from Image render to use sprite data for render.
- Added internal support in sprite render for vertex manipulation (displaying a
portion of original sprite image, sprites animations)

2011.05.25 :
- Added DEWait & DESleep commands.
- Added DEWriteByteToFile command & DEReadByteFromFile function.
- Added DERenamefile & DEDeleteFile commands.
- Added DEMakeDirectory & DEDeleteDirectory commands.
- Added DEReadByte & DEWriteByte commands.
- Removed filemap functions from dev. list. They will be maybe developed later
if needed.
- Removed fileblock functions from dev. list. They will be maybe developed later
if needed.
- Removed Registry functions from dev. list as they are Windows specific
- Removed clipboard functions from dev. list. They will be maybe developed later
if needed.
- Removed backbuffer functions from dev. list. They will be maybe developed
later if needed.
- Added 2 special commands DEDisableSpritesBackdrop & DEEnableSpritesBackdrop to
increase performances when sprites backdrop are not needed.

2011.05.24 :
- Fixed compilation issues with latest changes made.
- Added utility.library to allow DEGetTime & DEGetDate to return correct values.
- Added DEAlwaysActiveOn & DEAlwaysActiveOff commands.
- Added DEDrawSpritesFirst & DEDrawSpritesLast commands.
- Added DEMakeMemory, DEDeleteMemory, DEFillMemory & DECopyMemory commands.
- AHI is always opened at startup to check if any playback device is available
for audio output.
- Worked on DELoadSound, DEDeleteSound & DEPlaySound to use directly Datatypes.

2011.05.13 :
- Added DEDot3D( X, Y, Z) & DEDot3DEx( X, Y, Z, RGBColor )
- Added =DEGetPixelsPointer() & =DEGetPixelsPitch()
- Added DECopyPixels( iDestX, iDestY, iWidth, iHeight, iSourceX, iSourceY )
- Removed DELockPixels & DEUnlockPixels from dev list.
- Basic2D Set is now 100% done

2011.05.07 :
- Added DEVPositionCamera & DEVRotateCamera, ...CameraEx for position and
rotation using vectors.
- Added DEClearCameraView, ...ViewEx & ...ViewEx2 for clearing camera view.
- Added DESetCameraAspect & ...AspectEx.
- added DEGetImageEx. DESetImageColorKey.
- Added =DESpriteMirrored() & =DESpriteFlipped().
- Modified TEXT functions to use the CreateDeleteString() functions.

2011.04.24 :
AmiDARK Engine public release 0.4c available at www.os4depot.net
AmiDARK Engine *private* alpha test version sent.

2011.04.22 :
- DECls() & DEClsEx() now clear both GL_FRONT and GL_BACK buffers.
- Added transparency mode 1-6 like DarkBASIC Professional
- Modified DEGhostObjectOn to work similarly than DarkBASIC Professional
- Modified engine to use double buffer
- Image are now rendered on both GL_FRONT and GL_BACK buffers.

2011.04.18 :
- Fixed Sprites Vs 3D. I Had to reintroduce an older build and re-insert sprites
codes to fix issue. Now 3D and Sprites are correctly displayed.

2011.04.11 :
- Fixed 3D not appearing : _AMIDARK3D_H_ was not defined. 

2011.04.06 :
- Release of the Alpha Public 0.4 release on www.os4depot.net
- Release of the private *less limitations* 0.4 release for alpha/beta testers.

2011.03.31 :
- Added commands : DESetSpriteImage( SpriteID, ImageID ) 
- Added functions : =DESpriteScaleX( SpriteID ), =DESpriteScaleY( SpriteID ),
=DESpriteWidth( SpriteID ), = DESpriteHeight( SpriteID ) 

2011.03.30 :
- Added commands : DEFlipSprite( SpriteID ), DEMirrorSprite( SpriteID ) 
- Finished to restructurate all libraries of the engine. 

2011.03.21 :
- Added commands : DEHideSprite( SpriteID ), DEShowSprite( SpriteID ),
DEHideAllSprites(), DEShowAllSprites() 

2011.03.20 :
- Added commands : DEPositionSprite( SpriteID, X, Y ), DESetSpriteX( SpriteID, X
) & DESetSpriteY( SpriteID, Y ) 

2011.03.18 :
- Checked and fixed render : Sprites are now correctly displayed on screen using
INTERNAL image pasting functions. 

2011.03.12 :
- Added commands : DESetSpritePriority( SpriteID ) 
- Rethough the way to support priority to increase render speed. 
- Started support for sprites rendering. 
- Finished support for sprites Backbuffer. 
- Finished support for sprites display priority. 

2011.01.29 :
- started support for sprites display priority. 

2011.01.17 :
- Started support for bitmaps memory management.
- Added 11 checklist functions to read data from checklist. 

2010.11.28 :
- Rebuilded "libamidark.h" file to include separately plugins and activate 3D
module if asked. 
- Updated synchro functions to handle both version of the engine. 
- libAmiDARK.h 2D actual development version done 
- Added DECurveValue, DENewXValue, DENewYValue, DENewZValue & DECurveAngle
- Camera 0 is not activated by default. Only if a 3D object is created.
- Added checking to setup default camera 0 is non exist when models must be
rendered ( DarkBASIC Pro compatibility ) 

2010.11.24 :
Release of the last public alpha 0.3 release of the AmiDARK Engine.

2010.11.22 :
- Lights, Particles3D commands sets HTML English Help done.
- Added some more HTML English Help pages to show witch sections will be covered
in the final full HELP system.
- Adapted & Added functions made by Sharynn : DELeft, DELen, DEMid, DERight,
DESpace, DEFlip, DEUpper, DELower.

2010.11.19 :
- Setup, Sprite, System, Text commands sets HTML English Help done.

2010.11.17 :
- Input, Memblock commands sets HTML English Help done.

2010.11.14 :
- Basic3D, Camera, File, Matrix commands sets HTML English Help done.

2010.11.13 :
- Bitmap, Core, Image, Music, Sound commands sets HTML English Help done.

2010.11.11 :
- Full re-organisation of this library
- Full re-organisation of this library
- Full re-organisation of this library
- Basic 2D commands set HTML English Help done.

2010.11.06 :
- Full re-organisation of this library
- Modified to simplify and include MESH constructors/destructors in the Basic3D
main ones.

2010.11.01 :
- Fixed get image to automatically check for existing image.

2010.10.31 :
- Fixed DEMakeObjectPlain() & DEMakeObjectTriangle() commands.
- Added support for object texture scrolling and scaling in render.
- Added and improved Crisot Z-Buffer trick to increase rendering framerate.
- Added functions that return display width, height and depth;

2010.10.28 :
- Added Enable/Disable object z write functions for 3D objects.

2010.10.24 :
- Fixed DEInstanceObject() function.

2010.10.09-10 :
- Added DEPoint( X, Y )
- Added DESyncCamera( CameraID )
- DESync() now refresh correctly using DESyncRate( ) choosen value.
- Added DEGetImage( ImageIndex,  X, Y, X2, Y2 )
- Lights are now more compatible with DarkBASIC Professional lights.
- Lights have now their own ambient color settings.
- Support for SPOT Light added
- Support for DIRECTIONAL Light added
- Support for POSITION Light added
- Added various Light commands ( specular, ambient, falloff, attenuations )

2010.10.05 :
- Added support for .WebP images using DataTypes.

2010.09.09 :
- Added .MED support from medplayer.library ( need MEM-Handler )

2010.09.08 :
- Added MUSIC commands to load/play/resume/pause/stop/delete music
- Added support for music volume.
- Added .MOD support for ptreplay.library

2010.09.01 :
- Added "file type" detection system based on files header & if not available
file name extension.
- Added DATATYPES support for Images and textures loading.
- AmiDARK Engine does no more need glpng additional library. PNG images are
loaded from DataType too.

2010.08.19 :
 AmiDARK Engine alpha r2 Demo version : Released at www.os4depot.net

2010.08.19 :
- Loaded 3D Objects automatically load internal textures and applies them to
- Loaded 3D Objects that have internal textures, also delete them when object is

2010.08.17 :
- Reorganised source codes in /shared/ and in subfolders.

2010.06.08 :
- Added support for CreateDeleteString() system similar to DarkBASIC PRo &

2010.05.19 :
- Improved light support.

2010.05.08 :
- fixed texture issue with loaded object.
- fixed applying world matrix changed to limb using limb hierarchy.
- Support for DETextureObject on loaded objects.

2010.05.07 :
- Added DELoadObject() function. 95% Load object, limbs.

2010.04.17 :
- Improved texture support to apply textures params. only if texture is used.

2010.04.10 :
- WIP : Adding MESH dependencies to handle correct position/rotation within the
3D object.

2010.03.16 :
- Added separate debug mode to display only information from the plugin to
- Added internal functions to separate Image to internal images.
- Handle internal images in load/delete image functions.
- Added support for internal images in Basic 3D objects render.

2010.03.05 :
- Added Basic 3D MESHES functions.

2010.02.18 :
- Improved Light 0 to fit default DarkBASIC Professional settings.

2010.02.17 :
- 3D Object support rebuilded to handle limbs.

2010.01.28 :
- Added move camera functions.
- Added DEShowLight() DEHideLight() functions.
- Fixed texture issue with skysphere objects.

***** www.amidark-engine.com UPDATED with functions list *****

2010.01.26 :
- Added several camera functions.

2010.01.23 :
- Added several camera functions.

2009.12.06 :
- Fixed bits manipulations functions.

2009.12.04 :
- Added internal functions for bits manipulations.
- Added DESyncMask() function for camera enabling/disabling.

2009.11.29 :
- Added function to read free memories.
- Added functions to enable/disable escape key use to quit an AmiDARK Engine
- Added functions DESyncOn(), DESyncOff(), DESyncRate( RATE );

2009.11.27 :
- Fx Camera clear (glClear) to clear only the camera display area on screen.

2009.11.25 :
- Added timer.device to handle frame rate and soonly animations.
- Added DEScreenFPS() and DEStatistics() functions.

2009.11.23 :
- Improving DBKeyState() function.
- Improving internal MiniGL MyKeyboardFunc() function.
- Fix camera backdrop to not clear Basic2D draws.
- Added DBProEx( Left, Top, Right, Bottom, Color1, Color2, Color3, Color4 )
- Added support for camera backdrop color.
- Added support for window close caption.
- Added various internal & user Core command set functions.
2009.11.11 :
- Now Disable global lighting on a 3D object that is not sensitive to lights.

- Changes how textures are applied on a 3D Object to be the same than DarkBASIC
- Updated camera rotations calculations to be the same than DarkBASIC
- Updated camera movements calculations to be the same than DarkBASIC

2009.11.03 :
- Added support for various keyboard functions (scancode, keystate, special keys
: up, down, left, right, function keys F1 to F12

2009.10.25 ;
- Added command : DEScrollObjectTexture( ObjectID, U.f, V.f )
- Added command : DEScaleObjectTexture( ObjectID, XScale.f, YScale;f )  

2009.10.17 :
- Added support for bilinear/trilinear/no filtering on 3D objects.
- Added support for extra propoerties ( fog, light, ambient 3D objects
sensitivity )
- Added support for object Ambience, Specular, Diffuse and Emissive properties
- Added support for switching from windowed to fullscreen and reverse.

2009.10.16 :
- Added support for Ghost Object functions ( On/Off Ex with support for dark
ghost mode too )
- Added support for ScaleObject() function
- Added DrawToFront & DrawToBack function to change priority between 2D and 3D

2009.10.12 :
- Added support for transparency using BLENDING command set : Set Alpha Mapping

2009.10.05 :
- Fixed Camera & Objects rotation to be the same than Default DarkBASIC
Professional ones.
- Added support for 3D Objects instancies.

2009.10.05 :
- Added support for FILES command set ( OpenToRead, OpenToWrite, Close,

2009.09.01 :
- Support for Loading Images as images & Textures
- Support for Objects Texturing, Lighting ( Light 0 ), Normals.
- Adding Ambient light support
- Adding some IMAGES command set
- Adding some MEMBLOCK command set
- Internal object structure development.

Copyright (c) 2004-2018 by Björn Hagström All Rights Reserved
Amiga OS and its logos are registered trademarks of Hyperion Entertainment