You can follow release updates on Twitter: https://twitter.com/AGABlaster
You can follow videos on YouTube https://www.youtube.com/@AGABlaster
AGABlaster is a video player for the Amiga Commodore computer. It uses a customized version of the CDXL format supporting the AGA chipset with 24 bit colors and variable length frames. Customized CDXL files can be generated with AGAConv. AGABlaster is written in 68K Assembly and runs on native Amiga hardware (no gfx card or sound card required). It is currently in alpha testing stage.
The CDXL format was created primarily for the Commodore CDTV, to permit playback of video from CD-ROM in the early 1990s. The original (standard) CDXL format was a simple streaming format, consisting of linear concatenated chunks (packets), each with an uncompressed frame and associated audio data. It did not contain video timing information, additional command line arguments had to be provided to the CDXL player.
AGABlaster can play the original CDXL format (see Current Limitations), but can also play custom variable length CDXL frames. For example, frames can have have a different number of bitplanes. The custom headers in each chunk contain all information necessary to display each frame (audio frequency, etc.), such that no additional command line parameters need to be provided. However, command line arguments are available to set all parameters manually to play also original CDXL videos.
AGABlaster has been tested on an A4000/60 with a Fast ATA 4000 MK-III disk controller (expansion card) and different PIO settings. AGABlaster can play videos with 24 FPS, 320x256 Lores resolution, and 8-bit stereo sound at 22050 Hz directly from disk, with the MK-III in PIO3 setting. Only chip memory is required. Alternatively, playing from an USB 2.0 memory stick connected to a DENEB USB 2.0 expansion card is also fast enough.
AGABlaster is designed to only require chip memory and to display videos in full screen on original Amiga hardware. Graphics cards and/or sound cards are not required (and not supported). AGABlaster can skip frames if disk I/O is too slow. Video data is skipped by seeking on disk to the next frame without loading it into memory. Audio data is always read. All data is read asynchronously from disk, allowing it to read ahead if I/O is fast enough.
Overview of supported video/audio modes:
If you run AGABlaster on an OCS/ECS system, use the additional option 'FMODE=0'. Standard CDXL files should run similar to other CDXL video players on OCS/ECS systems. AGABlaster only supports standard CDXL files or AGABlaster specific extensions. It is designed to get the best out of AGA systems, there is no OCS/ECS specific mode - however, some of the features (e.g. dropping of frames) are also beneficial on OCS/ECS systems.
AGAConv is a tool to convert MPEG4 and other video formats to custom 24-bit CDXL videos and standard 12-bit CDXL videos.
AGABlaster consists of the single file 'agablaster' and has only system library dependencies. Simply copy the file to any location of your choice. To play one of the provided cdxl videos with agablaster enter on a console: 'agablaster myvideo.cdxl' or just 'agablaster' and select the video with the ASL file requester, or start AGABlaster from its workbench icon and select a list of videos with the file requester. It will then play the video(s). To exit video play press the ESC key.
AGABlaster 68K | ||||
---|---|---|---|---|
Release notes | Date | Version | Size | Download |
Added support for overscan in Lores (width 384), Hires (704), Superhires (1344) Fixed error reporting for some unsupported video width in Hires/Superhires |
11-JUN-2023 | 0.9.92 beta | 30 KB | agablaster_0_9_92.lha |
Added support for pausing video at startup (option PAUSE) See 'PAUSE' in Section Command Line Options for more details. |
02-JAN-2023 | 0.9.91 beta | 30 KB | agablaster_0_9_91.lha |
Added support for video playlists CDXL videos can be selected with ASL file requester (multi-select with 'shift') Jump between playlist videos with 'N'ext and 'P'revious Can be started from workbench icon now (AGABlaster.info) New playlist/video loop mode ('L' key to toggle loop mode, or command line option LOOP) Audio filter is off by default now and can be turned on/off with 'F' Optimized versions for 68000/20/30/40/60/80 |
22-FEB-2022 | 0.9.90 beta | 30 KB | agablaster_0_9_90.lha |
Bugfix for 12-bit standard CDXL HAM6 color glitches on AGA systems. HAM6 looks very stable across frames with agaconv 0.9.7 generated videos now. |
21-FEB-2021 | 0.9.83 alpha | 27 KB | agablaster_0_9_83.lha |
Added support for standard 12-bit AGA6-8 and HAM8 videos (used in several games in the late 90s) Optimized versions for 68000, 68020, 68060, 68080 Extended one-line info message after video play has finished Added support for 2GB limit of AmigaOS seek functions (it is still possible to play up to 4GB) Some new features require agaconv 0.9.6 (e.g. big CDXL files with 32-bit frame number) |
17-JAN-2021 | 0.9.82 alpha | 27 KB | agablaster_0_9_82.lha |
Changed behavior when player reaches end of video Added option NOEXIT (otherwise always exits now) |
15-NOV-2020 | 0.9.81 alpha | 25 KB | agablaster_0_9_81.lha | Fixed flickering when skipping frames on slower devices Fixed error when video width was not a multiple of 16 Reduced chip memory consumption for pre-buffering Added audio mute key F6 and option MUTE Added Amiga audio filter toggle key F7 (change persists after exit) Added Amiga audio filter option NOFILTER Added video info output in console (width/height, FPS, Hz, etc.) Added PAL option (forces PAL mode even when NTSC is detected) |
31-OCT-2020 | 0.9.80 alpha | 25 KB | agablaster_0_9_80.lha |
Added support for video size >= 128 as multiples of 16 Added automatic video centering (x-axis) Added OCS support (Kick 1.3 supported as well) Added overscan support for arbitrary height. Added NTSC support (detection and automatic y-centering using overscan) |
29-MAR-2020 | 0.9.71 alpha | 22 KB | agablaster_0_9_71.lha agablaster_0_9_71_kick13.lha |
Added keyboard video controls (forward/backward/pause/restart/volume) Added automatic video centering (y-axis) Added copper effects Activated AGA border blank feature |
26-JAN-2020 | 0.9.70 alpha | 16 KB | agablaster_0_9_70.lha |
Reduced flickering in case of low I/O bandwidth. Fixed memory issues/crashes. |
28-JUL-2019 | 0.9.65 alpha | 14 KB | agablaster_0_9_65.lha |
Added support for video height 128 to 256. Renamed option 'info' to 'about'. Fixed PL=1 bug. |
12-MAY-2019 | 0.9.64 alpha | 12 KB | agablaster_0_9_64.lha |
12 bit color palette bug fix (standard CDXL) | 01-MAY-2019 | 0.9.63 alpha | 12 KB | agablaster_0_9_63 |
Initial alpha release | 28-APR-2019 | 0.9.62 alpha | 12 KB | agablaster_0_9_62 |
AGABlaster is distributed with a freeware license (not as public domain). It is provided free of charge. As freeware software it may be used as many times as you like, for as long as you like. You may copy and distribute copies of this program provided that you keep the copyright notice and disclaimer of warranty intact. See file LICENSE in the distribution for the complete license.
AGABlaster is provided for all variants of 68000-68080 (different optimized versions). AGABlaster does not require any additional libraries. If the ASL requester library is available, it will use the ASL requester if started without a CDXL file name. The included icon file, AGABlaster.info, can be used to start AGABlaster from the workbench. In this case the ASL library is required.
AGABlaster and some example videos can be downloaded from this website. No additional installation is required (except the ASL library if not pre-installed). AGABlaster 0.9.90+ can be started from workbench or a console window with or without the name of the CDXL video as command line argument:
> agablaster [OPTIONS] (using ASL file requester)
> agablaster FILENAME1 FILENAME2 ... FILENAMEn [OPTIONS]
> [from workbench using the AGABlaster icon]
where FILENAME1.. is a list of CDXL file names. The first video starts playing immediately and can be controlled via the keyboard (see below).
An AGABlaster custom CDXL file contains all information to play the video. For standard CDXL files not generated with AGAConv, command line options can be used to set the audio frequency, NTSC/PAL mode, and resolution (e.g. Hires (default is Lores)).
Video controls allow to seek forward, backward, pause/resume the video, and restart the video. Audio volume can be adjusted as well. Copper effects can be selected while the video is playing or paused. The video forward/backward seek distance can be changed via a command line option (default is 10 seconds).
Key | Action |
---|---|
Cursor right | Seek forward 10 seconds (default) |
Cursor left | Seek backward 10 seconds (default) |
Cursor Up | Increase audio volume |
Cursor Down | Decrease audio volume |
M | Mute/Unmute audio |
F | Toggle Amiga hardware audio filter (by default off) |
N | Next video (of playlist) |
P | Previous video (of playlist) |
L | Toggle loop mode. Loop mode applies to a video playlist and restarts after the last video with the very first video. If only one video is loaded it loops this one video. |
X | Toggle exit mode (by default AGABlaster exits after last video. The alternative exit mode pauses at last frame of (each) video and key 'N' can be used to start next video. |
C | Toggle Y-Center/NoCenter mode. By default the video is centered, this allows to turn off the vertical centering. |
Space | Pause/Resume video play |
Backspace | Restart video / Seek to beginning of video |
F1 | Reset display (1x display) |
F2 | Copper effect 1: 4x display (only available in Lores mode, switches from Lores into hires mode) |
F3 | Copper effect 2: 16x display (only available in Lores mode, switches from Lores into superhires mode) |
ESC | Exit video player at any time. Return to workbench. |
- | By default player always exits at the end of the video (V0.9.81+). The only exception is when 'Cursor Right' seeks beyond the end of video, in this case it stops at last frame (to be able to find the end). If option NOEXIT (or Key 'X') is used then it always remains active at end of video. |
LMB | Left mouse button exits video player at any time (same as ESC). |
The copper effects are only available if the video is encoded in Lores resolution. Switching only works if the respective higher resolution mode can be displayed with the data alignment of the displayed video. AGABlaster uses an internal table to determine this, you will see for a short moment a black screen, and then it will switch back, if not supported by the hardware. All modes work when the video width is a multiple of 64, there are restrictions if it is only a multiple of 32 or 16.
If started from a console (or workbench), no command line argument is required. However, a a list of video files and options can be provided on command line. No additional command line options are required if the CDXL file was converted with AGAConv. For standard CDXL files created with other video converters, the frequency and/or screen-modes may need to be added on the command line because this info is not present in standard CDXL files (default is 11025 Hz, Lores)
For example, to play one of the provided
CDXL videos, enter the following in a console window and hit
return:
The following options are useful to customize the appearance or audio during video play:
The following options can be used to set manually parameters when playing standard CDXL files not generated with AGAConv. None of the following options are required for AGAConv generated CDXL videos.
The following options are mostly useful for testing and allow to turn off default settings or override automatically chosen best settings:
Video: Zoraia by Zohre Esmaeli.
Distribution of the video conversion variants on this website with permission of the copyright holders Zohre Esmaeli and photographers.
Video credits: Filmed and directed by Alexei Bazdarev, Camera assistant Leonhard Koall, Makup artist Cara Okfen, Video edit by Janine Risse, Management by Mihai Nagy.
The original video is available on Vimeo - external link: original video in full HD
AGA Amiga - Short CDXL Test Videos - Zoraia (17 seconds) | |||||||||
---|---|---|---|---|---|---|---|---|---|
Resolution | Mode | FPS | Format | Audio | CDXL Type | Colors | Length | CDXL Size | Download |
Lores 320x256 | AGA7 | 15 | 5:4 cropped | 11025 Hz | Custom | 24 bit | 0:17 | 19.0 MB |
zoraia_short_cropped_lo_aga7.cdxl zoraia_short_cropped_lo_aga7.cdxl.lha |
Lores 320x256 | AGA8 | 24 | 5:4 cropped | 22050 Hz | Custom | 24 bit | 0:17 | 34.6 MB |
zoraia_short_cropped_lo_aga8.cdxl zoraia_short_cropped_lo_aga8.cdxl.lha |
Lores 320x256 | HAM8 | 24 | 5:4 cropped | 22050 Hz | Custom | 24 bit | 0:17 | 34.6 MB |
zoraia_short_cropped_lo_ham8.cdxl zoraia_short_cropped_lo_ham8.cdxl.lha |
Lores 320x256 | AGA8 | 24 | 16:9 scaled | 22050 Hz | Custom | 24 bit | 0:17 | 34.5 MB |
zoraia_short_scaled_lo_aga8.cdxl zoraia_short_scaled_lo_aga8.cdxl.lha |
Hires 640x256 | AGA8 | 24 | 5:4 cropped | 22050 Hz | Custom | 24 bit | 0:17 | 68.1 MB |
zoraia_short_cropped_hi_aga8.cdxl zoraia_short_cropped_hi_aga8.cdxl.lha |
Hires 640x256 | AGA8 | 24 | 16:9 scaled | 22050 Hz | Custom | 24 bit | 0:17 | 67.9 MB |
zoraia_short_scaled_hi_aga8.cdxl zoraia_short_scaled_hi_aga8.cdxl.lha |
AGA Amiga - Full CDXL Video - Zoraia (2 min 2 secs) | |||||||||
---|---|---|---|---|---|---|---|---|---|
Resolution | Mode | FPS | Format | Audio | CDXL Type | Colors | Length | CDXL Size | Download |
Lores 320x256 | AGA8 | 24 | 5:4 cropped | 22050 Hz | Custom | 24 bit | 2:02 | 243.9 MB |
zoraia_cropped_lo_aga8.cdxl zoraia_cropped_lo_aga8.cdxl.lha |
Lores 320x256 | AGA8 | 24 | 16:9 scaled | 22050 Hz | Custom | 24 bit | 2:02 | 243.9 MB |
zoraia_scaled_lo_aga8.cdxl (*) zoraia_scaled_lo_aga8.cdxl.lha (*) |
Hires 640x256 | AGA8 | 24 | 5:4 cropped | 22050 Hz | Custom | 24 bit | 2:02 | 480.3 MB | zoraia_cropped_hi_aga8.cdxl.lha |
Hires 640x256 | AGA8 | 24 | 16:9 scaled | 22050 Hz | Custom | 24 bit | 2:02 | 480.3 MB | zoraia_scaled_hi_aga8.cdxl.lha |
The 16:9 scaled videos require an LCD monitor to stretch the picture to HD size. This way one can get a correct HD sized video with the Amiga 5:4 PAL output ratio. For display with an original PAL 5:4 screen ratio the cropped videos are provided.
(*) shown on YouTube (named zoraia_lo_aga8s.cdxl in video)
The following webpages offer standard CDXL videos that are known to work with AGABlaster 0.9.64+.
For the provided custom CDXL videos the following values are reported by AGABlaster with the STATS option (default behavior) for my A4000/60:
Played from hard disk | |||
---|---|---|---|
Fast ATA MK III I/O Speed setting | Video Frame | Measured FPS (V0.9.65) | Measured FPS (V0.9.80) |
PIO 4 | Lores 320x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo, with 24 FPS | 24 | 24.00 |
PIO 3 | Lores 320x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo, with 24 FPS | 24 | 24.00 |
PIO 0 | Lores 320x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo, with 24 FPS | 11 | 9.74 |
PIO 4 | Hires 640x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo, with 24 FPS | 15 | 14.76 |
PIO 3 | Hires 640x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo, with 24 FPS | 12 | 12.35 |
PIO 0 | Hires 640x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo, with 24 FPS | --- | 4.70 |
DENEB USB 2.0, video played from USB memory stick | |
---|---|
Frame size | Measured FPS (V0.9.64) |
Lores 320x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo | 24 (video with 24 FPS) |
Hires 640x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo | 12 (video with 24 FPS) |
RAM, video played from RAM Disk | |
---|---|
Frame size | Measured FPS (V0.9.64) |
Lores 320x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo | 24 (video with 24 FPS) |
Hires 640x256, 8 bitplanes, 24 bit colors, 22050 Hz stereo | 17 (video with 24 FPS) |
Supported AGABlaster extensions are marked with ' [extension]'. If the standard CDXL format is used the following default values are assumed: frequency=11025 Hz, video mode: Lores, fps: implied by frequency. Command line options allow to set parameters explicitly for standard CDXL videos. No command line parameters are necessary for AGABlaster custom CDXL videos.
CDXL Header | ||
---|---|---|
Size | Content | Comment |
BYTE | File type | Supported file types: 0=Custom CDXL, 1=Standard CDXL. |
BYTE | Info byte
bits 0-3: Video encoding bit 4 : Audio mode (stereo flag) bits 5-7: Plane arrangement | Supported video encodings: 0=RGB, 1=HAM. Supported audio modes: 0=mono, 1=stereo Supported plane arrangements: 0=bit planar |
LONG | Current chunk size | = 32 + (Palette size + Palette Padding) + (Video width in bytes)*(Video height)*(Number of bitplanes) + Video padding + (Audio data size (twice as long if stereo) + Audio padding |
LONG | Previous chunk size | chunk size of previous frame |
LONG | Current frame number | 1-4294967295 |
WORD | Video width | Supported >= 128 |
WORD | Video height | Supported >= 128. Overscan is supported. |
BYTE | reserved | 0 |
BYTE | Number of bit planes | 0-8 (if 0, then only background color is displayed; allows for empty video frame data) |
WORD | Palette size in bytes | 0-768 (must be a multiple of 2 or 3) |
WORD | Audio data size in bytes | 2-65534 (only even numbers; sample length; in stereo mode total audio size is twice as long; audio data must be present) |
WORD | Frequency [extension] | Provided in Hz (0=unspecified) |
BYTE | Frames per second [extension] | 1-255 (0=unspecified) |
BYTE | Info byte 2 [extension]
bits 0-3: Resolution bit 4 : Color mode bit 5 : Kill EHB bit 6 : Frame length mode (AGAConv 1.1+) bit 7 : 0 | Supported resolutions: 0=unspecified, 1=lores, 2=hires, 3=superhires Supported color mode: 0=12 bit colors, 1=24 bit colors Kill EHB: 0=keep EHB mode, 1: kill EHB, use AGA6 [since V0.9.82, only required for 12-bit CDXL videos], Frame length mode: 1=variable-length, 0=fixed-length |
WORD | Padding [extension]
bits 0- 3: Audio padding bits 4- 7: Video padding bits 8-11: Palette padding bits 12-14: Padding mode bit 15: 0 | Audio padding: 0-15 (size of padding in number of bytes) Video padding: 0-15 (size of padding in number of bytes) Palette padding: 0-15 (size of padding in number of bytes) Padding modes: 0=unspecified, 1=no padding, 2=16 bit padding, 3=32 bit padding, 4=64 bit padding, 5=128 bit padding |
WORD | reserved | 0 |