08.Aug.2023
Frédéric Cordier (Mail)
|
Programmiersprache: Dritte öffentliche Alpha von "Amos Professional Unity"
Mittels seines "Amos Professional Unity"-Projektes ist Frédéric 'AmiDARK' Cordier dabei, neue Features - wie zum Beispiel AGA-Unterstützung - dem klassischen BASIC-Compiler AMOS Professional hinzuzufügen (YouTube-Beispielvideo). Nun hat er auf seiner GitHub-Seite die dritte öffentliche Alphaversion (V0.4) mit folgenden Änderungen veröffentlicht:
- 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)
Wir hatten zum erste Mal über Frédéric Cordiers Voraben Ende 2019 berichtet, damals noch firmierend unter dem Namen "Amos Professional X". Wir haben die nunmehrige Veröffentlichung zum Anlass genommen, bei ihm nachzufragen und um eine Zusammenfassung seiner bisherigen Bemühungen zu bitten, die er freundlicherweise umgehend geliefert hat:
"Das Amos Professional Unity ist ein Projekt, an dem ich in meiner Freizeit arbeite, gemeinsam mit meinem anderen Projekt für den Amiga namens "Grimoire" (amiga-news.de berichtete).
Auch wenn ich nicht oft über Änderunge oder Neuigkeiten berichte, so arbeite ich doch viel im Hintergrund (z.B. Compiler-Probleme), da der Compiler-Quellcode nicht dokumentiert ist und etwas komplexer ist als Amos Professional selbst. Ein paar Stichpunkte zum Projekt:
- Der Quellcode von Amos Professional wurde vor einiger Zeit komplett reorganisiert, um den Anforderungen des AGA-Support-Upgrades gerecht zu werden.
- Der Quellcode ist hier öffentlich auf GitHub verfügbar
- Viele Änderungen wurden vorgenommen, um die Unterstützung für AGA Chipsets zu erreichen, was dazu führt, dass Amos Professional Unity nicht mit älteren Amos Professional Erweiterungen kompatibel ist, die interne Amos Professional Strukturen verwenden (die Strukturen wurden weiterentwickelt, um z.B. maximal 8 Bitebenen anstelle von vorher 6 zu unterstützen, 256 Farben anstelle von vorher 32, usw.)
- Amos Professional hat jetzt eine gute AGA-Unterstützung. Sie wird noch verbessert werden, ist aber schon jetzt für die Erstellung von AGA-Videospielen interessant.
Und diese Features sind mit "Amos Professional Unity" bereits möglich:
- Unterstützung von LowRes AGA-Grafiken bis zu 256 Farben und HAM8 mit 24-Bit-Farben-Unterstützung
- Unterstützt Hires AGA-Grafiken mit bis zu 256 Farben und Ham8 mit 24-Bit-Farbunterstützung
- Interlaced wird für die beiden oben genannten Auflösungen (lowres und hires) unterstützt
- Bobs und Icons unterstützen ebenfalls bis zu 256 Farben und 24 Bit Farben
- Erstellen/Laden/Speichern von Sprites/Bobs/Icons-Banks mit AGA-Farben bis zu 256 Farben wird unterstützt.
- AGA-Sprites mit einer Breite von bis zu 64 Pixeln werden auch mit 4 oder 16 Farben unterstützt, und die Kombination von nativen Amos-Professional-Sprites mit 4 oder 16 Farben wurde verbessert, um die Breite von AGA-Sprites zu unterstützen (man kann ein Sprite mit einer Breite von bis zu 256 Pixeln mit 16 Farben einrichten, indem man zum Beispiel alle 8 Sprites verwendet).
- AGA-Sprites sind nur Sprites mit niedriger Auflösung. Hires-Auflösung ist noch nicht hinzugefügt.
- Native Befehle wie "Screen Open" werden aktualisiert, um 256 Farben zu unterstützen ( z.B. Screen Open 0,320,200,256,lowres+laced )
- Native Befehle wie "Farbe" wurden aktualisiert, um 24 Bits zu unterstützen ( z.B. Farbe 1,Rgb24( 255,128, 0 ) )
- Das mit Amos Professional Unity kompilierte Programm kann zur Laufzeit erkennen, ob die Konfiguration auf ECS/OCS oder AGA läuft, und der Benutzer kann dann einen anpassungsfähigen Quellcode für das Videospiel erstellen (die gleiche kompilierte .exe kann den ECS-Bildschirm auf der ECS-Konfiguration und den AGA-Bildschirm auf der AGA-Konfiguration öffnen ).
"Amos Professional Unity" bietet eine Bandbreite neuer Befehle, die im Zuge der Veröffentlichungen der ersten Alphaversion bzw. zweiten Alphaversion dokumentiert wurden. Einige Befehle sind noch nicht dokumentiert, da sie sich noch im Entwicklungsprozess befinden:
- 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 )
Eine weitere Erweiterung, "Special FX", wurde dem Projekt ebenfalls hinzugefügt. Sie ist eine Mischung aus meiner alten AmosPro_Personal.lib und neuen Befehlen und stellt einige neue Befehle für Amos Professional Unity zur Verfügung:
- 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
Es gibt einige bekannte Probleme und Einschränkungen, zum Beispiel, dass der Compiler verbessert werden muss, um die Kompilierung von Quellcode zu ermöglichen, der Sprites/Icons-Banks enthält. Derzeit dürfen Banks beim Kompilieren nicht in .AMOS enthalten sein.
Amos Professional Unity ist mit einigen Beispielen versehen, die die Verwendung des AGA-Chipsatzes und der Special FX-Befehlssätze zeigen.
Somit kann man mit "Amos Professional Unity" bereits jetzt AGA-Spiele erstellen und als ausführbare Dateien kompilieren." (dr)
[Meldung: 08. Aug. 2023, 09:21] [Kommentare: 37 - 18. Aug. 2023, 05:45]
[Per E-Mail versenden] [Druck-Version] [ASCII-Version]
|