08.Aug.2023
Frédéric Cordier (Mail)
|
Programming language: Third public alpha version of "Amos Professional Unity"
By means of his "Amos Professional Unity" project, Frédéric 'AmiDARK' Cordier is in the process of adding new features - such as AGA support - to the classic BASIC compiler AMOS Professional (YouTube video on AGA sprites). Now he has published the third public alpha version (V0.4) on his GitHub page with the following changes:
- Removed non kept extra commands for Custom Screens modes. Rebuild all the Custom Screens system.
- Added space in file 'configuration/APUnity_Editor_Config.s' for eXtensions registration system
- Added new command : GFXMODE = get saga c2p screen mode( Width, Height, Depth, Scanmode ) [AmosProUnity.lib/L_L_GetSagaC2PScreenModeEx]
- Added new command : GFXMODE = get saga c2p screen mode( Width, Height, Depth ) [AmosProUnity.lib/L_GetSagaC2PScreenMode]
- Started new command : open custom screen ScreenID, Width, Height, GFXMODE
- Added SAGA CPU/GFX Detection at startup to open SAGA library version when available.
- Added SAGA Chunky screen support in copper list.
- Reverted Aga/sprites.s file to previous version due to a bug in Aga Sprites.
- Reverted Compiler_Shell.AMOS to Original fixed a compiler crash
- Fix AMOSProUnity_Support.Lib functions set fixed a compiler crash
- Fix AMOSProUnity_SpecialFX.Lib functions set fixed a compiler crash
- Now Amos Professional Unity examples can be compiled without crash
- Upgrade compiler to compile with AGAP Sprites/Bobs/Icons banks
- Fixed issue with Get Bob/Sprite/Icon palette to now handle fully RGB24 bits colors
- Update Header.s bank load to handle AGAP color mode ( 256 colors AGA ) from Bank that are inside executable (Bob/Sprite/Icon)
- update Header.s also fix Get Bob/Sprite/Icon Palette commands when program is compiled.
- Update CompExt.s compiler extension for squashed programs to handle AGAP color mode (Bob/Sprite/Icon)
We had first reported on Frédéric Cordier's submissions at the end of 2019, at that time still operating under the name "Amos Professional X". We took this publication as an opportunity to ask him for a summary of his efforts to date, which he kindly provided immediately:
"The Amos Professional Unity is a project I work on in my spare time, together with my other project for the Amiga called "Grimoire" (amiga-news.de reported).
Even though I don't often report about changes or news, I do a lot of work in the background (e.g. compiler problems), because the compiler source code is not documented and is a bit more complex than Amos Professional itself. A few key points about the project:
- Amos Professional Source code was completely reorganized to fit the requirements of AGA support upgrade times ago.
- Source code is available publicly on GitHub
- Many changes were done to achieve support for AGA Chipsets that makes Amos Professional Unity being not compatible with older Amos Professional extensions that uses internal Amos Professional structures (the structures evoled,for example to support 8 bitplanes max instead of previously 6, 256 colors instead of previously 32, etc.)
- Amos professional now have a good AGA support. It will be improved, but it is already interesting for AGA video game creation.
And these features are already supported by "Amos Professional Unity"
- Support lowres AGA graphics up to 256 colors and HAM8 using 24 bits colors support
- Support hires AGA graphics up to 256 colors and Ham8 using 24 bits colors support
- Interlaced is supported for the two above resolutions (lowres and hires)
- Bobs and icons also support up to 256 colors using 24 bits colors support
- Create/Load/Save Sprites/Bobs/Icons banks with AGA colors up to 256 colors is supported.
- AGA Sprites up to 64 pixels wide are also supported using 4 or 16 colors, and native Amos Professional sprites combination using 4 or 16 colors was improved to support AGA sprites width (you can setup a sprite up to 256 pixels wide with 16 colors using all 8 sprites for example).
- AGA Sprites are only low resolution sprites. Hires resolution is not yet added.
- Native commands like "Screen Open" are upgraded to support 256 Colors ( ex. Screen Open 0,320,200,256,lowres+laced )
- Native commands like "Colour" are upgraded to support 24 bits ( ex. Colour 1,Rgb24( 255,128, 0 ) )
- Amos Professional Unity compiled program can detect at running time if configuration run on ECS/OCS or AGA, and user can then create adaptative source code for video game ( The same compiled .exe can open ECS screen on ECS configuration and AGA screen on AGA configuration ).
"Amos Professional Unity" offers a range of new commands that were documented in the course of the releases of the first alpha version or second alpha version. Some commands are not yet documented because they are still in the development process:
- Create Rainbow Fx Bank BANK
- Set Rainbow Fx Color BANK, COLOR_INDEX
- Set Rainbow Fx Color Line BANK, YLINE, RGB24ColorValue
- Apply Rainbow Fx To Screen BANK : Apply to current screen
- Remove Rainbow Fx From Screen
- = Get Rainbow Fx Color Line( BANK, YLINE )
An other extension (Special FX) was also added to the project. It is a mix between my old AmosPro_Personal.lib and new commands. It bring some new commands to Amos Professional Unity (not documented on the website), and more will come in the future:
- Set Ntsc : Push to 60Hz mode
- Set Pal : Push to 50Hz mode
- = Right Click()
- = Fire( 1,BUTTONID ) : Where button ID can be 2 or 3
- Ehb : Can be used to open screen using 64 Half Brite colors (ECS)
- Ham6 : Can be used to open screen using Ham6 ( 4096 colors ) screens (ECS)
- Create Memblock BANK, SIZE_IN_BYTES : Create a memory block, this command set is inspired from Dark BASIC v1 & Professional )
- = Memblock Exist( BANK )
- = Get Memblock Size( BANK )
- Write Memblock Long BANK, POSITION_IN_BYTES, 32BITSVALE : Write a 32 Bits value at POSITION_IN_BYTES of the memblock BANK
- = Memblock Long( BANK, POSITION ) : Will return the 32 Bits value stored at POSITION in the memblock BANK
- Write Memblock WordBANK, POSITION_IN_BYTES, 16BITSVALE : Write a 16 Bits value at POSITION_IN_BYTES of the memblock BANK
- = Memblock Word( BANK, POSITION ) : Will return the 16 Bits value stored at POSITION in the memblock BANK
- Write Memblock ByteBANK, POSITION_IN_BYTES, 32BITSVALE : Write a 8 Bits value at POSITION_IN_BYTES of the memblock BANK
- = Memblock Byte( BANK, POSITION ) : Will return the 8 Bits value stored at POSITION in the memblock BANK
- Reserve F Icon BANK, SIZE : Create a custom icons bank, not blitter, CPU drawing one for fasts CPU and FastRam. Icon size is Width/Heigth same
Set Current F Icon Bank BANK : Allow to have multiple Fast Icons banks
- = Get Current F Icon Bank() : Will return the current bank used for Fast Icons
- Get F Icon ICON, X, Y : Grab an icon ICON from the current screen
- Paste Icon ICON, X, Y(, TRANSPARENCY ) : Will draw an icon at X,Y coordinates. X is multiple of 16 pixels.
- = Get Fie Size( FileName$ )
- Create Playfield from sprite HEIGHT, YSTART : Create a background playfield using sprites
- Remove Sprite Playfield : Remove the background playfield
There are some known issues and limitations. One known issue for example is that compiler must be improved to allow compilation of source code containing Sprites/Icons banks in it. Currently, banks must not be included in .AMOS when compiling.
Amos Professional Unity is provided with some examples that show the uses of AGA Chipset and the Special FX commands sets. This simply mean you can already create AGA video games using Amos Professional Unity and compiles them as executables." (dr)
[News message: 08. Aug. 2023, 09:21] [Comments: 0]
[Send via e-mail] [Print version] [ASCII version]
|