GET REAL
The impossible with just an upgraded hard drive setup?
A History
In 1991, Commodore was awarded U.S. patent #5293606 for the invention of CDXL. Unfortunatly, this was before Commodore released the next-generation AGA-based Amiga computers. Fast forward to 2019 and Markus Schordan decided to extend CDXL and add AGA support. This targeted a windowed box of video on the screen. In early 2020, I discovered an exploit I could use to push this past the intended limits. This page depicts my journey, the results, and how you too can acheive them.
This is basically Commodore's CDXL on steroids - pushed to the edge of insanity.
A basically stock Amiga 1200 can do video and audio like this? Yes...
- NO HIDDEN VIDEO PLAYER
- NO MPEG/HARDWARE DECODER CARD
- STOCK ON-BOARD "PAULA" AUDIO
- STOCK ON-BOARD "AGA" GRAPHICS
- NO MODERN CPU, NO RASPBERRY PI, NO DSP
- NO MONITOR TRICKS ‑ ACTUAL OVERSCAN VIDEO
Okay, then how can this insanity be happening? I'm glad you asked...
2019 ‑ The backdrop
In the early CD-ROM days, Commodore created and patented an audio/video playback system that uses split DMA (Direct Memory Access) called CDXL. This took advantage of the Amiga's state-of-the-art graphics and sound and streamed various raw data from CD-ROM to different memory areas of the Amiga. In late 2019, Markus Schordan released his first public tools for an enhanced version of CDXL, adding support for the later Amiga AGA graphics modes. He calls his CDXL player "AGABlaster". This is the project I started to follow. This player targeted common graphics modes like 320-wide lo-res and 640-wide hi-res. It also uses DMA – just like Commodore – for supported video sizes. Over time, the versions added support for debugging, tweaking vertical playback position, setting NTSC or PAL output and more. I was sucked in and I started to see how far I could push it.
2020 ‑ The epiphany
"Fast forward" to early 2020 and version 0.9.70 of AGABlaster came out. This version had a new curiosity - I was able to feed it oversized video and it failed to force the graphics mode to the next higher mode. I decided to try and exploit this and after determining that the player would still do the DMA transfers correct if I used frames of exactly 384 pixel width I knew I had something. I knew DMA needed a multiple of 64 pixels. At this point I started to make some tools to allow me to create source video that was pillar-boxed with active video in the middle and black (empty) bars off the screen. I started to tweak the width of the active area to try and have it run all the way to and into the bezel of a CRT monitor. This is what is called "overscan" video - where the whole line is used - not just a centered "box" like computers screens (and CDXL) normally are. AGABlaster was targeting a video box in the middle of the screen - I was trying to push it way past that.
Later in 2020, version 0.9.71 was released. This version had the same curiosity that I was exploiting, but added a desperately-needed additional switch for vertical positioning/centering. This was intended to allow your normal non-overscan playback area to be moved up or down a bit to center the box. However, I wondered - could this open up the possibility of stretching the graphics to the bezel/overscan area top-to-bottom? As it turns out - barely – IF you REALLY straddle the line on how many rows high the graphics are. Limit pushing.
The next version of the player - 0.9.80 - in late 2020 fixed the exploit and broke my video playback. I stayed on the old version and this is what you are watching today.
2022 ‑ The grunt work and first public showing
Starting late 2020 (after 0.9.71 was released) I focused on pushing the graphics to full overscan - so it looked like watching TV. I worked to find the right CPU, the right drive storage, the right filesystem, customizing my video prep scripts, and more. I even wrote a wrapper for AGABlaster to allow for playlists, shut off the audio high-pass filter and more. My initial goal was 15 FPS (frames per second) of video. Then 20. Then 24 or 25. I hoped for stereo audio, then aimed for high frequency stereo audio, then dynamic range. Was a full 30FPS possible?
2022 (continued)
I got there, but how? What changed? I moved to an SSD for storage. I added an Elbox Fast ATA IV disk controller to allow for larger disks than the stock controller. I changed to a more modern Amiga filesystem – one with speed in mind. I tweaked PIO modes. That's it. That and tweaking every little thing about the video size and audio rates to not waste data yet maximize the result.
I even spent time tweaking audio to get nice highs and dynamic range out of the old on-board Paula audio.
In the end, we're talking 500MB-700MB or more per music video. Hundreds of megabytes per minute. It's a LOT of data. Best of all - no dropped frames.
In 2022 I demoed this at the Chicago VCF (VCF Midwest) but a lot of people walked right by. I think they thought it was a trick. It's not. This is actually a real Amiga, nearly stock, playing this.
2024 and beyond
I know it made an impression. Last year, in 2024, Markus Schordan officially added overscan support to AGABlaster. The curiosity is no longer a curiosity. However, there's still a lot to learn from me – well beyond the large disks, PIO modes, and all the Amiga-side software tweaks. There’s preparing the source video - pillar-boxing the video (which actually has to be unevenly centered), the line count, audio tweaks, aspect correction - it's an art. I have continued to evolve my own scripts for this. Follow me to learn more. My page provides links to Markus' tools and will be a hub if you want to learn from me various tips and tricks to achieve this feat - full overscan NTSC 30-FPS video and audio delight. Learn why I still recommend version 0.9.71 (for now) if you want to do what I’m doing. Ask me questions. Let’s tweak my landing page right here, this weekend, at VCF East!
Like myself, others have drawn inspiration from Commodore’s and Markus' work and are doing their own cool things with AGABlaster. Check it all out.
Lastly, thank you Markus!
Remember:
ONLY AMIGA MAKES IT POSSIBLE!
- Greg of Florida