Developer diary

2021.03.01 Memblock, the new Bank type for Amos Professional

It's something I wanted to do from a long time now.
And due to the fact that it will be really useful for mewith the package  I'll prepare for Amos Professional Unity, I decided to create this command set now.

This set of commands will allow to handle memory block in a way similar to products like TheGameCreators do (DarkBASIC, DarkBASIC Professional, AGK, AppGameKit).

These methods will be "memory secure" because checking are done to be sure you do not modify memory outside the allocated memory block.
So commands to handle this will be done soonly :

All these commands are now created and fully working for the next build release :

- Created : Create Memblock MEMBLOCKID,SIZE_IN_BYTES created and working.
- Created : = Memblock Exist( MEMBLOCKID )
- Created : = Get Memblock Size( MEMBLOCKID )
- Created : Write Memblock Long MEMBLOCKID, POSITION, INTEGER(32Bits)
- Created : Write Memblock Word MEMBLOCKID, POSITION, WORD(16Bits)
- Created : Write Memblock Byte MEMBLOCKID, POSITION, BYTE(8Bits)
- Created : LONG = Memblock Long( MEMBLOCKID, POSITION )
- Created : WORD = Memblock Word( MEMBLOCKID, POSITION )
- Created : BYTE = Memblock Byte( MEMBLOCKID, POSITION )

Memblock Exist will return 1 only if memory bank exists and is a memblock one.
All these methods will produce error if memory bank does not exist or if the bank is not a memblock.

I hope you'll enjoy them for memory manipulation.
This principle is perfect to handle game levels datas especially for 2D tiled systems.

It also open the door to re-integrate color palette support in a more "Amos friendly" way by making Color palette becoming true Amos Professional Banks that will be, like Memblocks and natives ones, be saved with .AMOS file and loaded back with them.

01 March 2021 - Frédéric Cordier

2021.03.01 Amos Professional Unity - Private Alpha R1 for Patreons

Today, I released a private Alpha build of Amos Professional Unity for my patreons
There is probably some bugs to hunt. I also test it on my side.

01 March 2021 - Frédéric Cordier

2021.02.28 AmosProUnity_Support.lib color manipulation & chipset methods

Today, to complete the integration of previous Amos Professional X methods inside Amos Professional Unity,, I worked on the AmosProUnity_Support.lib.

This extension already own the new color RGB12/15/24 conversions methods as internal methods callable from everywhere inside the Amos Professional Unity source code.

Now, I have added some methods that were previously available in Amos Professional X. More to this, the methods that allow color manipulations are now updated to use the new Color Conversion methods.

Here are the details of all the news for today :

- Fixed =Colour(INDEX) bug
- Start inserting new commands from Amos Professional X project

New Methods inserted :
= Is Aga Available() : Return 1 if AGA is detected, otherwise 0.
= Is Ham8() : Return 1 if current screen uses HAM8, otherwise 0
Ham8 : Return 262144, the value you must use to open a HAM8 screen
Ham6 : Return 4096, the value you must use to open a HAM6 screen
= Rgb24(Red8,Green8,Blue8) : Return a RGB 24 bits color value created using the RGB8 values.
= RgbR8( RGBValue12/15/24 ) : Return the 8 Bits value for Red color component from an RGB 12, 15 or 24 bits color value)
= RgbG8( RGBValue12/15/24 ) : Return the 8 Bits value for Green color component from an RGB 12, 15 or 24 bits color value)
= RgbB8( RGBValue12/15/24): Return the 8 Bits value for Blue color component from an RGB 12, 15 or 24 bits color value)
= Rgb12(Red4,Green4,Blue4) : Return a RGB 12 bits color value created using the RGB4 values.
= RgbR4( RGBValue12/15/24 ) : Return the 4 Bits value for Red color component from an RGB 12, 15 or 24 bits color value)
= RgbG4( RGBValue12/15/24 ) : Return the48 Bits value for Green color component from an RGB 12, 15 or 24 bits color value)
= RgbB4( RGBValue12/15/24): Return the 4 Bits value for Blue color component from an RGB 12, 15 or 24 bits color value)

28 February 2021 - Frédéric Cordier

2021.02.28 Bobs & Icons Retro-compatibility and Enhancements completed !

I'm happy to announce that Bobs/Icons retro-compatibility and enhancements are completed. But what does this mean ?

It simply mean that ECS Unity and AGA Unity can load Original Amos Professional 2.0 Bobs and Icons.
ECS Unity Will save Bobs and Icons using the Amos Professional 2.0 format
AGA Unity Will Save Bobs and Icons using the new AGAP Mode (full Aga Color Palette)
ECS Unity can load AGA Unity Bobs and Icons (AGAM Mode) and will only use the 6 ECS Bitplanes (Extra AGA Bitplanes and colours will simply be ignored).

Here are the development details for Today development until last post :

- Fixed the graphic update issue in Amos Professional productivity Wonderland game. Now bobs refresh works as expected.
- Tested with AGA bobs (256 colors) : Everything is now OK.
- Updated ExtractedFromAmosProLib : Bnk.SaveA0, AMP_Bnk.Ric2
- ECS Unity Save bobs/icons using Classics format (old ECS method)
- ECS Unity can load AGA Unity save bobs/icons and uses them if they uses no more than 6 bitplanes (Extra AGA bitplanes will be simply ignored)

With these latest news, I can say that we are really near of the 1st official Alpha release for Amos Professional Unity binaries.

28 February 2021 - Frédéric Cordier

2021.02.27 Bob/Icon Aga Support "Work In Progress"

- Fixed Get Bob & Paste Bob crashs
- AGA Unity Load/Save bob/Icons now works and handle AGAP Mode
- AGA Unity Will always Save Bob/Icon using Amos Professional Unity method (AGAP Mode)
- AGA Unity can load both Classics and Unity methods (AGAP Mode) Bob/Icon
- Fixed Colour INDEX,RGBVALUE bug
- Find a graphic update issue in Amos Professional Productivity Wonderland game (bobs are not cleared from screen)

27 February 2021 - Frédéric Cordier

2021.02.26 : SPack & Unpack retro compatibility with Amos Professional Classics + Major improvements

- Major improvements completed for commands : SPack SCREEN To BANK, UnPack BANK To SCREEN
- ECS Unity will always SPack using Amos Professional 2.0 Classics methods (old ECS method)
- ECS Unity can UNPACK AGA Unity (AGAP Mode) methods if bitplanes amount <=6( ECS limits )
- AGA Unity Will always SPack using Amos Professional Unity method (AGAP Mode)
- AGA Unity can load, and unpack both Classics (old ECS method) and Unity methods (AGAP Mode)
- ECS Unity Screen Opening EcCree method updated to handle AGA Unity AGAP Mode for screens up to 6 bitplanes.
- Both ECS Unity and AGA Unity can UnPack Classic Methods (old ECS method) and Unity methods (AGAP Mode)

Now Unpack BANK To SCREEN is fully compatible with older Amos Professional 2.0 (Original from François Lionet) and can takes advantage of the Unity enhancements.

26 February 2021 - Frédéric Cordier

2021.02.23 Latest news concerning dual AGA / ECS/OCS build version


I get good progress these last days.

I'm happy to show you the last progress in a small WIP video :

All changes until the previous news :

  • Updated APUnity_Editor_Config.s to handle new popup windows message displaying running chipset.
  • Added AmosProfessionalUnityAGA.Library build in the AMOSProUnity_library.batch
  • Added informations/paths for AmosProfessionalUnityAGA.library
  • Added AGA chipset detection at startup and loading of AmosProfessionalUnityAGA.library instead of AmosProfessionalUnityECS.library if AGA Chipset is detected
  • Removed User Registration details calculation in ABOUT popup as they are no more used.
  • Added Chipset display in the ABOUT popup (must now add true AGA Chipset detection)- Erased all works using AGA because many crashs were available.
  • Restarted AGA .library from ECS one
  • Inserted a special vector call to allow the use of "Rjmp L_Error" from everywhere in Amos Professional Unity. Required for extraction.
  • Inserted in AGA Extracted : IffPal, InScreenOpen, IffBODY, prepareHam8Logic, IffScreen, SaveCMAP, (AMP_)GSPal, (AMP_)PalRout, (AMP_)InGetPalette2
  • Inserted in AGA Extracted : IFFWidthTooBig, IFFHeightTooBig, IFFDepthTooBig, (AMP_)UnPack_Screen, (AMP_)UnPack_Bitmap, (AMP_)IffFormLoad, (AMP_)IffForm, (AMP_)IffFormPlay
  • Inserted in AGA Extracted : (AMP_)Bnk.EffBobA0
  • Updated in AmosProUnity.lib : Bnk.Load, Bnk.GetAdr, Bnk.GetBobs, Bnk.GetIcons, Bnk.AdBob, Bnk.Change, InGetIconPalette1, InBob, InGetSprite6, InGetSprite5
  • Updated in AmosProUnity.(I)lib : InFade(?)
  • Updated in AmosProfessionalUnityAGA.library : GetBob, TPatch, BobSet, BobLim, BbEcOff, BobCalc, BobAff, BM*** methods, TAMOSWb, DrawBloc
  • Updated AmodProfessionalUnityAGA.library files : BraList_Screens.s, AmosProLibrary_Start.s, Autoback.s, CopperListSystem.s, FadingSystem.s, MemoryHandler.s
  • Updated AmodProfessionalUnityAGA.library files : RainbowsSystem.s, Screens.s, Texts.s
  • Restoring previous Amos LoadView (AmosProfessionalUnityAGA.library) prevent WB closed when quitting Amos Professional Unity.
  • Everything works excepted Bobs/Icons that must be fixed
23 February 2021 - Frédéric Cordier

2021.02.16 Color Conversion methods moved to AmosPro_UnitySupport.lib completed

- Checked RGB12/15/24 color conversion calls in AmosPro_UnitySupport.lib : Fixed
- Added AmosPro_UnitySupport.lib to the EditorInterpreter configuration creation process
- Re-inserted AmosPro_UnitySupport.lib in the full Build process
- Amos Professional Unity Compilation & Run : Success
- Color Conversion methods are now fully moved and calleable from AmosPro_UnitySypport.lib

Due to a crash encountered using many sprites/bobs/icons, restored original AmosProUnity_Lib.s
Then I tested the exported methods again to find the crash and fix it.
- Updated A_BnkEffA0 and A_BnkEffBobA0 to fix issues (Crash)
- Reintegration of AmpLCallR calls : A_SHunk, A_Bnk.SaveA0, A_BnkEffA0, A_BnkEffBobA0 A_BnkReserveIC2 and A_BnkUnRev
- Reintegration of AmpLCallR calls : A_IffFormLoad, A_IffFormSize, A_IffRead, A_IffSeek, A_IffForm, A_IffFormPlay and A_IffSaveScreen
- Reintegration of AmpLCallR calls : A_InScreenOpen, InScreenDisplay, A_ScreenCopy0 and A_GetEc
- Reintegration of AmpLCallR calls : A_PalRout, A_InGetPalette2 and A_GSPal
- Reintegration of AmpLCallR calls : A_InRain and A_FnRain
- Reintegration of AmpLCallR calls : A_InPen, A_WnPp and A_GoWn
- Reintegration of AmpLCallR calls : A_UnPack_Screen and A_UnPack_Bitmap

Now Amos Professional Unity works perfectly again.

16 February 2021 - Frédéric Cordier

2021.02.12 Latest news about project progress. Working on AmosPro_UnitySupport.lib.

Reinserted EcCallA1, SyCallA1 and SyJmp from previous AGA version.
Reinserted EcCall calls 77-84 from previous AGA version.
Reinserted FMODE, BplCon3 & Color31 registers variables in equates

12 February 2021 - Frédéric Cordier

2021.01.31 Moved all methods to handle color conversion from AmosProUnityECS.library to AmosProUnitySupport.lib to avoid duplicate in others AmosProUnityXXX.library

- Moved AmosProUnityECS.library/colorSupport_Init inside AmosProUnitySupport.lib setup
- Moved AmosProUnityECS.library/colorSupport_Functions list inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/SeparateRGBComponents inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/InputIsRGB12 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/InputIsR5G5B5 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/InputIsRGB24 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/MergeRGBComponents inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/OutputIsRGB12 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/OutputIsR5G5B5 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/OutputIsRGB24 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/ForceToRGB24 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/F24_InputIsRGB12 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/F24_InputIsR5G5B5 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/F24_InputIsRGB24 inside AmosProUnitySupport.lib
- Moved AmosProUnityECS.library/convertRGB15toRGB24 inside AmosProUnitySupport.lib
- Moved all methods to handle color conversion from AmosProUnityECS.library to AmosProUnitySupport.lib to avoid duplicate in others AmosProUnityXXX.library

31 January 2021 - Frédéric Cordier