An Atari 8-bit demo by Lucy, MotionRide, and JAC! for Silly Venture 2k18 with the following unique selling points:

  • works on unexpanded Atari 400 with 16k RAM or higher machine
  • works on both PAL and NTSC machines, PAL recommended
  • only uses passive ROMs and standard tapes, no external CPU, microcontroller, etc.
  • 384 x 232 pixels, full overscan display
  • 50 frames per second, dynamically adapted on NTSC
  • real voice audio from the "educational soft" left tape channel
  • additional intro and outro part resulting in a 5:35 total runtime
  • 177 MB of raw video compressed to 41 MB of video using unique ANTIC hardware compression
  • 29 MB uncompressed 16-bit PCM audio recorded on the tape 

Story

I started this one in 2013 when FLM released the first conversion of the Bad Apple video for the Sega Megadrive.

Like every low-end platform coder, I started thinking about this great video. How cloud I best transform it into an actual program for my most beloved hardware? So I downloaded the video and started to play around with it, analyzing its structure and complexity and thinking about how this could be made possible on the Atari 8-bit computer.

Over the years, Bad Apple advanced to the modern "Hello World" of retro computing demoscene. It has been converted to even the most obscure platforms, including Atari VCS and Vectrex, often with exciting and unexpected results. The creators of most versions set themselves the constraints they wanted to do their "personal" version of the demo. Of course, given the amount of data for 3:39 minutes of video, everybody used modern storage devices. I mean everybody except Algorithm, but I think that goes without saying :-)

After experimenting with different screen resolutions and compression strategies, I finally had a working version in 2016. It didn't have sound yet, only working on the emulator because it used the unlimited speed of the emulator when loading multi-segment executables from the host drive. But, of course, I aimed to run this on real hardware. Maybe even have cartridges produced by Atariage or something like this. Hence I targeted the 4 MB cartridge from Bigben. This was the same size as the video data in the original version, so it seemed enough and was supported by emulators.
But after some attempts in different directions, it turned out that nobody could produce this cartridge anymore because the chips used were no longer available or too expensive now.

The next idea was to use "The!Cart", which offers up to 128 MB. But there are only 100 such carts worldwide, so the target audience was minimal.

In March 2016, Paul Lay (aka "Playsoft") released his version for the Atari 8-bit computer on AtariAge. Damn, he beat me to it. He was the first. Yet the conversions were straightforward bitplane compression, and the frame rate was very low. The unique features of this version are the different resolutions and the music by Dhor.

In June 2017, R0ger released his version for the Atari 8-bit computer on AtariAge. Honestly, I was shocked. This version uses a standard 1 Megabyte / 8 Megabit Atarimax cartridge. It has a lovely POKEY conversion of the original tune and fantastic artwork by PG. The unique features of this version are the different visualization options, karaoke mode, and the beautiful end screen. It is definitively the best you can achieve within 1 MB.

Finally, at SillyVenture 2k17, a Bad Apple version for the Atari ST was presented, and I felt the air was getting thin. So SillyVenture 2k18 definitively had to be the release date for my version.

At Fujiama 2018, with the great help of Insane, I managed to completely automate over 20 previously manual steps of the conversion process from the original video to the Atari executable. With this, I could verify that the Atari computer could not unpack the data at the framerate I wanted. With the full overscan resolution I was targeting, the ANTIC keeps the CPU blocked most of the time.

Because another 100 pieces of "The!Cart" had meanwhile been sold with even more to come, I decided to go for "The!Cart". I wanted to push the quality to the maximum, no matter how much space that takes. After all, this should be a showcase of what unique things the Atari 8-bit hardware can do without modifications:

  • 384 x 232 pixels full overscan display
  • 50 frames per second
  • real voice audio from the "educational soft" left tape channel

When I finally had the ROM working in September 2018, I saw a video posted by MotionRide on Facebook. I had met him and his wife at last year's Silly Venture. This animation style was precisely what was missing to introduce the history of my version to the audience. Without it, it would just be a tech demo. Nobody was able to understand or judge. But with it, it would be the best 1979 Atari commercial that never was.

So I contacted him on Facebook, created a script describing my ideas, and spent the next four weeks chatting, skyping, discussing uncounted problems with resolutions, frame rates, audio issues, and bitrates, and sending updates and tips.

Ultimately also, an outro part was added. It is based on the famous end screen of State of the Art demo by Spaceballs on the Amiga 500. The demo won the 1992 Amiga demo compo at "The Party" with an unprecedented presentation. The demo was a movie streamed from the disk, just like Bad Apple HD streams the data from "The!Cart". And just like "the real coders" back then stated, "How could this demo win?? Lame programming and a useless track loader." there will probably be people who will say just the same about this version.

On the other hand, "State of the Art" is one of the most remembered demos on the Amiga because it simply looks and sounds f..king great, even by today's standards. And looking at the 1979 hardware I've been using here, I am very proud of the result of the 5 years of work that went into it. Special thanks go to Tigerduck for his external Soundblaster and biobern for his "Dual C 820", on which I could record the tapes, and for his support in recording the live video.

The final cartridge and tape for the party
Me at Bernahrd's place, fighting to get the timing right for NTSC, so we can record from the real hardware

Download the demo

  • Click badapplehd.zip to download the archive that contains all required files.
  • Extract the complete archive to a local folder.

Running the demo in emulation

  1. Double click "BadAppleHD.bat" to start the emulator with the cartridge "BadAppleHD.car" and tape file "BadAppleHD-Altirra.wav" mounted correctly.
  2. Because Altirra turned out to have slightly different audio playing speeds, a separate WAV file is provided.
  3. Make sure to activate full-screen mode when the menu is shown.

Running the demo on real hardware

  1. The demo uses both The!Cart (64 MB or 128 MB) and regular audiotape as storage media. You can obtain "The!Cart" from the member shop on the ABBUC website.
  2. The tape drive must be a standard Atari program recorder that can handle audio correctly.
  3. Preferably an XC11 as it has the best audio circuit.
  4. Ensure the program recorder is connected directly to the Atari and not via another SIO device.
  5. The "BadAppleHD.wav" file is a stereo wave file you must record on tape.
  6. You can loop the recording to use the loop mode of the demo later.
  7. The folder "studio" contains the The!Cart Studio workbook file "BadAppleHD.tcw" and the corresponding "BadAppleHD.tcd" folder with the data files.
  8. You can open it as is in the latest version of "The!Cart Studio" and export it to flash the content on a "The!Cart" with 64 MB or 128 MB.
  9. Add the data files individually to an existing "The!Cart" workbook.
    In that case, the "BadAppleHD-Data.bin" must be assigned to the fixed bank 256 and must be set to content type "Executable File".
    Use the context menu to make the two columns "Start Bank Fixed" and "Start Bank " visible" if they are not.
    Select the "Start Bank Fixed" flag for the "BadAppleHD-Data.bin" entry and enter "256" as the start bank.
    If there is enough free space, but the workbook's content is fragmented, or the bank is already in use, click "Edit / Reassign Banks".
  10. In that case, the "BadAppleHD-Data.bin" must be assigned to the fixed bank 256.
  11. Flashing with POKEY divisor 0 and AspecQt takes about 2 hours.
  12. Insert the flashed "The!Cart" in the module port.
  13. Power on the Atari, hold down "SHIFT", and press "RETURN" to start the demo.
  14. You will see a white screen prompting you to insert the tape.
  15. Insert the tape in the program recorder and rewind it to the beginning.
  16. Press "RETURN" again and enjoy the demo.
  17. Pressing "ESC" during the demo performs a cold start and restarts the demo from the beginning.
  18. Twenty seconds after the demo has ended, it will automatically restart in loop mode and run as a storefront demo.
  19. In that mode, you do not need to press any keys anymore.
  20. The loader will sync the tape position automatically and play the video again until the tape is over.

Credits

Credits

  • Narration / Voice-Over: Lucy
  • Pixel Graphics: MotionRide
  • Code: JAC!

Thanks

  • To the original Bad Apple tune and video creators and their conversions on the different platforms. I must have heard it several thousand times in these five years, and it's still great and enjoyable.
  • To Insane for helping me through the darkness and trapdoor of the AVI format and the FFMPEG command line parameters.
  • To Lucy and Pete, without whom, this release would only have been yet another awesome-build-chain-tech-demo thing. Your ideas and creativity are why this demo has finally reached the big screen in a way I am proud of.
  • To my beloved wife Patricia and my kids for motiving me and keeping many things off my back, so I do these crazy things.
  • To Grey for organizing SillyVenture and periodically kicking my ass to get my things done. Without you, this would not even have been finished in 10 years.
  • To all fellow sceners and Atari fans who actively contribute to SillyVenture - Stay Atari!