Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Online tape conversion

Reply to topic
Author Message
  • Joined: 25 Feb 2013
  • Posts: 384
  • Location: Osaka
Reply with quote
Online tape conversion
Post Posted: Thu Aug 19, 2021 9:09 am
I made a lossless compression from wav to tzx available online at http://tapeconv.tk:5000/

If you get warnings from chrome that the file "is not commonly downloaded" just give it "Keep". Yep, .tzx are not commonly downloaded :D
The file is tar.xz compressed. Use winrar or any other decompressor you like.

Details:
In the past, alternative formats (e.g. ".bit") were proposed for the storage of tapes. However, these formats are unsuited to store games with protections (which do not follow the sega basic's standard, aka the Kansas City standard).
The TZX format, initially developed for the ZXspectrum, is a very flexible format. Here is the format description
http://k1.spdns.de/Develop/Projects/zasm/Info/TZX%20format.html
This format is supported by many tools (e.g. mame's castool) and hardware players (e.g. https://hackaday.com/tag/tzxduino/)
To go into the gritty details, I represent the audio using Direct Recording
blocks. For basic programs, a proposed extension of TZX, the Kansas City Block (ID 4B) could be used for further compression
https://github-wiki-see.page/m/nataliapc/makeTSX/wiki/Tutorial-How-to-generate-T...
However, the support is still not widespread (e.g. I believe mame's castool does not support it yet) so for the moment I believe it's better to stick to the direct recording blocks. And, a simple tar.xz compression yields files under 100Kb anyway.
And let's clarify why I say "lossless". Clearly wav files have intensity levels, so there's more information in them then in a tzx. However, the SC-3000 (or the SK-1100 keyboard) convert the analog signals to a binary signal (fed to the 8255), so for what it concerns the SC-3000, a signal is either high or low, and it doesn't make any difference if it's +0.7V or +0.9 V
  View user's profile Send private message
  • Joined: 12 Apr 2005
  • Posts: 391
  • Location: London, United Kingdom
Reply with quote
Post Posted: Fri Aug 20, 2021 11:02 am
Very interesting work, thank you for sharing! I've been working on a tape loader for the Master System recently but as the intention is to load BBC BASIC programs I've been using Acorn's cassette format and so gravitated towards UEF as the format of choice for tape images. Is TZX more accepted for SC-3000 or is this something you're more working towards personally?
  View user's profile Send private message Visit poster's website
  • Joined: 25 Feb 2013
  • Posts: 384
  • Location: Osaka
Reply with quote
Post Posted: Fri Aug 20, 2021 1:40 pm
There are still not many sc-3000 tapes available, so there's no "more accepted format" yet.
I initially had a look at .bit files, as they seem the most common (and I generated this https://archive.org/details/saverioTapes2 from a set of audio files kindly provided by the sc-3000 survivors guys) but their limitations in representable signals made me sway away from the .bit format.

What pushed me toward tzx is Maxim's comment in this thread

https://www.smspower.org/forums/15470-SC3000TapeSoftwareRestorationProject

the fact that mame's castool supports it, and the proliferation of tzx players.

UEF is surely a valid alternative (and it seems to be supported by recent hardware http://arduitape.blog spot.com/2018/05/uef-playback-added-to-tzxduino.html ) but I find tzx has no particular reasons to be avoided either. In particular, the Direct Recording blocks are a totally straightforward description of the signal (1 bit for each sample). Adding support to any emulator is trivial. As for the compression capabilities, I tried converting PALIKAT (great game guys!!), a 3.3Mb wav with a non standard loader. A tar.xz archive of the txz becomes a 54Kb file. Perfectly ok for nowadays storage and bandwidth (a photo is few Mbs!).
Furthermore a simple
castool convert tzx game.tzx game.wav
is enough to generate a wav back.
  View user's profile Send private message
  • Joined: 12 Apr 2005
  • Posts: 391
  • Location: London, United Kingdom
Reply with quote
Post Posted: Fri Aug 20, 2021 7:03 pm
Thank you for the information! I'll make sure to add TZX support to my cassette emulator too, as long as I can turn the loaded image into a 4800Hz bitstream it'll be a trivial change. For convenience I also list the files on a tape so you can "fast forward" to one by clicking on its name, do you know of somewhere the SC-3000's tape format is documented?
  View user's profile Send private message Visit poster's website
  • Joined: 25 Feb 2013
  • Posts: 384
  • Location: Osaka
Reply with quote
Post Posted: Sat Aug 21, 2021 2:51 am
Here are sega basic's format specifications:

https://www.smspower.org/uploads/Development/sc3000-tape_format_notes.zip
However the hardware poses no constraints on the encoding, so some software uses basic to load a custom loader, and then proceeds with its custom encoding.

(I just had a look at your homepage, your ongoing project is so cool!!)
  View user's profile Send private message
Reply to topic



Back to the top of this page

Back to SMS Power!