Introducing CDTV OS 2.35

Introducing CDTV OS 2.35

For 30 years now CDTV owners have had to settle for the original Extended ROMs from the early 1990s. There is the original 1.0 ROM and the later version 2.7 or 2.30 ROMs and some ROM hacks that followed in later years. All these versions have their bugs and compatibility issues, especially if you want to upgrade your CDTV player beyond its original stock configuration of Kickstart 1.3 and 1MB of Chip RAM. Thankfully, things are about to change…

Time for something new

The Kickstart ROM is a chip in every Amiga that contains many of the system software components that make up the Amiga operating system. The CDTV Extended ROMs (or CDTV OS ROMs for short) are the extra chips inside a CDTV player that contain additional system software specific to the CDTV. It contains a driver for the CD-ROM drive, a CD filesystem library, a driver for bookmarks/cardmarks, the CD audio player application, the CDTV Preferences application and much more. Basically it’s all the extra system software needed that makes a CDTV (or A570 or A690) work like a CDTV!

Coming soon to a CDTV near you

CDTV OS 2.35

Today, I am proud to announce a new version of the CDTV OS: 2.35. It is the result of many man hours of disassembling, reverse engineering, problem solving and creating a stable build environment that can serve as a foundation to move things forward for CDTV in the 21st century. CDTV OS 2.35 is an entirely community driven project. It’s a custom, unofficial ROM and is available now, free of charge. Due to copyright reasons, it is currently only available in patch form on GitHub. Official distribution might be possible in the future, but for now, this is the best I can do without breaching copyright.

So what new stuff does CDTV OS 2.35 bring to the table? Well, it fixes a couple of long standing bugs which have plagued CDTV owners for many years and it throws a couple of small improvements into the mix for good measure! Here’s what has changed compared to the last known original Commodore ROM release (2.30) from 1992:

  • Support for systems with 68030 CPUs
  • Support for systems with 32-bit Fast RAM
  • Memory card support restored for CDTV players
  • CD+G functionality restored for CDTV players
  • Buffer overflow bug fixed in bookmark.device
  • CD-ROMs will now boot even without CDTV.tm file
  • Ability to access the CDTV title screen when a harddisk is installed
  • Option to force exit CDTV title screen
  • OS build target device ID on CDTV title screen
  • No error screen when no disk drive connected to CDTV player

Let’s have a look at some of these improvements and fixes in more detail!

1

This is probably the big one. When most of the CDTV system software was originally written in late 1990/early 1991, it was developed by a very small team under considerable time pressure. Many of the core components were even programmed by one engineer. The software was made to function on the stock hardware configuration of the day: a 68000 CPU, 1MB of Chip RAM, and Kickstart 1.3. If you upgrade your CDTV player with a faster CPU and/or 32-bit Fast RAM you will soon find the CD-ROM drive stops functioning. Granted, a tricked out CDTV player can function just fine without a working CD-ROM drive, but it does sting a little that a core component (a component the system is partly named after!) is rendered inoperable by a CPU and memory upgrade. A CDTV that cannot boot CDTV titles or access CDs? Boo!

CDTV OS 2.35 restores CD-ROM functionality for CDTV players with a 68030 CPU and 32-bit Fast RAM by fixing the underlying compatibility issues. Finally you can access the CD-ROM drive as an AmigaDOS device again whether it’s from the Workbench or the CLI. But you can of course also boot all those classic CDTV titles now. Good times! Got a CDTV player with a 68030 CPU @50 MHz and 128 MB of 32-bit Fast RAM? Now you can have your cake and eat it too.

Because every accelerator might have its own characteristic behavior, I cannot (yet) guarantee that CD-ROM support will work flawlessly on every known 68030 based accelerator under the sun. However, the list of supported devices is growing and devices that are not supported today will most likely be supported in a future OS update!

2

Because the 1.0 CDTV ROMs do not support Kickstart 2 and higher, the 2.7 and 2.30 ROMs have often been used as an upgrade path by CDTV owners. The problem with using 2.7 or 2.30 ROMs is that they break cardmark.device, which is a driver that alllows the storage and retrieval of snippets of data on CDTV memory cards (like e.g. save games or preferences). CDTV OS ROM 2.35 fixes this by including a properly built bookmark/cardmark.device driver for each target device: CDTV players, A570 drives, and A690 drives.

3

For the same reason that cardmark.device is broken in 2.7 and 2.30, bookmark.device on a CDTV will use unnecessarily clunky code to write to bookmark memory. This has been fixed in 2.35. What has also been fixed is a nasty buffer overflow bug that has recently been discovered in bookmark.device, which can corrupt bookmark memory. This bug is present in all known versions of bookmark.device up to the CDTV-CR and CD32.

Note to developers: because not every one will run CDTV OS 2.35 (which they should, of course) I will release the buffer overflow bugfix as a light-weight commandline utility, including source code, under the GPL license. If you ever plan to use bookmark.device in a future project, you can just add this little tool to the startup-sequence and it will patch the bug using SetFunction.

4

CD+G playback is broken in the 2.30 release when used on a CDTV player. Because the CD+G driver was built for the A570, the playback control buttons don’t work anymore. CDTV OS 2.35 fully restores this functionality by including a properly built driver, so you can once more enjoy all those obscure CD+G releases and Karaoke CDs on your CDTV player in all their, ahem, glory! Now where’s my microphone and my beer…

5

Waaay back in the early 1990s, when CDTV launched, Commodore decided that only registered CDTV developers who paid a licensing fee and royalties were allowed to create bootable CD-ROMs. This was “enforced” by requiring the presence of a special file (named CDTV.tm) on the CD-ROM for it to be bootable. This file contains copyrighted code and the trademarked CDTV logo. Including this file on a CD-ROM without owning a license would technically be breach of copyright. While necessary back in the early 1990s when CDTV was an economically viable platform, today it is nothing more than an unnecessary technical hurdle for CDTV users who just want to author bootable CD-Rs for personal use on their CDTV player.

The illustrious CDTV trademark screen

CDTV OS 2.35 finally removes the requirement of needing to have the CDTV.tm file on disc for it to be able to boot on a CDTV player or an A570/A690-equipped system. As long as the disc has an AmigaDOS Startup-Sequence, OS 2.35 will happily boot from it! This change is 100% backward compatible. Your system will boot from discs with or without the CDTV.tm file.

Not only is there now one less hurdle to take in authoring your own bootable CD-Rs for your CDTV player, there is also a wealth of Amiga CD-ROMs out there that suddenly become bootable! Think of all the CU Amiga and Amiga Format cover CD-ROMs and all manner of other bootable Amiga compatible CD-ROMs that were released after the CDTV’s demise, which do not contain the license file, but are perfectly bootable otherwise.

6

OS build target device ID on CDTV title screen? What does that even mean and why should I care? Although the classic CDTV player (CD-1000), the A570 and A690 CD-ROM drive addons are very similar devices, they were not created equal. Each of these three devices has their own specific characteristics, and some components inside the CDTV OS ROM need to be built with specific settings for each target device for everything to work correctly. This means that each target device needs to have their own specific ROM. Using the wrong device ROM for your CDTV player, A570 or A690 will lead to loss of functionality, even though it might not be immediately noticeable.

CDTV OS 2.35 (and all future custom CDTV OS releases by CDTV Land) will allow you to quickly ID the ROM you are using, simply by looking at the CDTV title screen. You can find the device ID on the bottom left, just above the ROM version number. CDTV ROMs will display the ID “CDTV” on the title screen. In the same way, the A570 ROM will show “A570”, and the A690 ROM will show “A690”. A small but very useful change that will go a long way in preventing the accidental use of incorrect ROMs on your precious systems! Here’s an example of a CDTV ROM:

7

There’s a major design flaw in the way that the CDTV OS user interface works when you have a harddisk installed: The iconic CDTV title screen with the spinning logo becomes inaccessible and so does the CDTV Preferences application! You will notice as soon as you install a bootable harddisk, that you never see the CDTV title screen again because the system skips the title screen altogether and immediately boots from harddisk.

In CDTV OS 2.35 a simple solution is added. Harddisks will still autoboot, but only after a 5 second delay. During this short delay, the beautiful CDTV title screen is visible and you can press any key on your CDTV remote controller or keyboard to access the CDTV Preferences application, as you normally would. The boot delay is only applicable to harddisks. If you insert a bootable CD or floppy disk, CDTV OS 2.35 will assume you want to boot from that medium right away without any delays.

Choice is important, so the boot delay is completely configurable. You can set it to any duration you want or even completely disable it. Your preference will be stored in bookmark memory so that it can be recalled even after your CDTV player has been turned off. You can even override the boot delay interactively and force the CDTV title screen to exit at any time by pressing the Escape key on the CDTV remote controller or keyboard.

Availability

Enough! How much does this cost and when is it available? Well, it is totally free of course! This much needed, long overdue OS upgrade for CDTV has been a labor of love. I would like to offer the ROM images free of charge, so anyone with an EPROM programmer can burn these and use them in a CDTV, A570 or A690, but because they contain still copyrighted material, I would be in breach of copyright if I did so without permission. I have reached out to Amiga Corporation, the current IP owner, to see if something can be arranged to make it easier for the CDTV community to obtain these ROMs and I hope to be able to make some announcements regarding this before the ROM images are ready for release. More information on the technical and legal aspects of CDTV OS 2.35 here.

UPDATE: I’ve been in contact with the IP owner. The contact was pleasant, but ongoing legal proceedings in the Amiga world are making an official release of my work problematic at this point in time. That is why I have released my work as a patch on GitHub.

Acknowledgments

Nothing is created inside a vacuum. Great things are usually based on great work previously done by others and created with help from others. CDTV OS 2.35 would almost certainly not have been possible without the work or the contributions of the persons listed below.

  • Dale King for his advice, his patience and for valiantly risking his valuable CDTV/A570 hardware to run the countless development builds of CDTV OS 2.35 that I sent his way, and for providing me with valuable test reports.
  • Alexander Holland and Bartek Malysz for additional testing and advice.
  • Stephen Leary for doing the vital groundwork that was needed to add support for systems with 32-bit Fast RAM, for his work on resourcing cdtv.device and for updating the TF536 firmware to increase compatibility with CDTV.
  • go0se for building my TF536 accelerator board and for his advice.
  • Robert ‘Phibrizzo’ Krajcarz for discovering and reporting the cdg.library issue in 2.30 and for contributing valuable information on some CDTV-CR ROM modules.
  • All the beta testers from the CDTV Land Discord.
  • Chris Millard for additional advice.
  • Tony Wilen for creating WinUAE. Development and troubleshooting would have been a million times harder without it.

Thank you, all!

-Mijo Saftic / Captain Future, 2021.