".TSX" --> ".TZX" Format in MSX

Страница 3/12
1 | 2 | | 4 | 5 | 6 | 7 | 8

By Louthrax

Prophet (2436)

Аватар пользователя Louthrax

13-05-2017, 21:00

Hi Nataliapc,

Yes,I did use a makeTZX tool to extract the game data of Laser Squad, and also the extra levels from the Spectrum version, they were encoded on tape the exact same way (disk version with extra Spectrum levels is available on my website). I'll check my TSX file tomorrow, but this looks a bit too small for the loader, IIRC.

By nataliapc

Expert (95)

Аватар пользователя nataliapc

14-05-2017, 18:09

At same thread (zonadepruebas.com, see link in previous posts) there are some test cases using WAVer and extracted to TSX using:
- Audacity (conversion to 8bit 44Khz PCM WAV file)
- makeTSX (to extract MSX blocks)
- wave2tzx (to extract Turbo blocks)
- TZX Blockeditor (to mix them, last version supports new #4B MSX blocks)

After that they have been tested using TapRider* on my HX-10:
- Test1: don't works but seems good extracted. The WAV don't works too. Readed Ok but at end reset or hangup
- Test2: same
- test3: works fine
- test4: works fine

*TapRider: Tape emulator for android that supports TSX files.
Download here: http://www.zonadepruebas.com/viewtopic.php?f=4&t=5369&start=...

By manolito74

Paragon (1288)

Аватар пользователя manolito74

11-06-2017, 16:31

The version 0.6 of makeTSX is available. It includes several new features:

1. Option to do hex / ASCII dump [-c]

2. When generating a ".TSX" file automatically are generated also the following blocks at the beginning of the file:

-- Block # 30 with info about the version of makeTSX that has extracted this file.

-- Block # 32 with an empty info block in order that user can modify it to identify the Tape.

-- Block # 35 with the MSXLOAD key to indicate the load instruction of the Tape (RUN / CLOAD / BLOAD), provided the first data block be a standard MSX header.

3. Listing the blocks of a ".TSX" file now shows the start / finish / execution addresses of data blocks # 4B in case of having previously an MSX header that identifies it as binary.

You can found this new version here:


Thank you very much to NataliaPC for her efforts creating the MakeTSX Program. ;-)

By manolito74

Paragon (1288)

Аватар пользователя manolito74

24-07-2017, 13:58

Hello again,

Our friend NataliaPc offers us a new version of MakeTSX, 0.7beta version. The most important features are:

- Predictive mode
- Interactive mode
- Improved recognition of 4B blocks
- verbose mode
- Reading 8/16-bit PCM / Mono WAVs

These are the direct links to download the different versions:

MakeTSXv0.7b_Linux64.zip -> http://www.zonadepruebas.com/download/file.php?id=5247

MakeTSXv0.7b_Win64.zip -> http://www.zonadepruebas.com/download/file.php?id=5248

MakeTSXv0.7b_Linux32.zip -> http://www.zonadepruebas.com/download/file.php?id=5246

And this is the address of the thread about that topic in the Web "Zona de Pruebas" where this new version is mentioned:


Gracias & Saludetes. ;-)

By manolito74

Paragon (1288)

Аватар пользователя manolito74

24-07-2017, 14:16


I have forgotten to mention that we have now a FTP repository where we put all the ".TSX" File that are being created.

host: opencomputer.ddns.net
user: msx
pass: msxtsx
port: 21

Gracias & saludetes. ;-)

By manolito74

Paragon (1288)

Аватар пользователя manolito74

27-07-2017, 15:41

Hello again,

I am pleased to inform you of the following news that our partner NataliaPC has officially confirmed today:

The ".TSX" Format Support is already implemented and running on the VRoBit . According to Alberto, responsible for the Project, he has already added support for Block 4Bh and has been correctly loaded all the ".TSX" Files sent to him, both those containing only MSX Standard Blocks (4Bh) as those containing Turbo Blocks (10h).

Note: Clarify however that although MakeTSX still does not support Turbo Blocks NataliaPC has made some conversion of Games with Load TURBO to ".TSX" but in a somewhat handmade way (and using other Tools) in order to do Tests. ;-)

So from here thank once again to NataliaPC for all her work and her efforts and also thank to Alberto for "adopt" us ... XD

Thanks & Greetings. ;-)

Pd. Here more info about the VroBIT project:




By manolito74

Paragon (1288)

Аватар пользователя manolito74

02-08-2017, 03:41

The 0.8beta version of the makeTSX is available and includes the following improvements:

- Normalization of the audio before the detection process (can be disabled with -dn).
- Record the WAV once normalized (wav_normalized.wav) to see the result (-outn).
- Record the WAV after applying the wav_envelopped.wav to see the result (-oute).
- Autodetection of baudrate in blocks # 4B (no longer detects only 1200 and 2400).
- Improved detection of Blocks # 20 (Silences) and their integration with other blocks to optimize the total number of blocks.
- Improved Detection of Blocks # 4B.
- Detection of Blocks # 10 (colloquially known as Turbo blocks in the MSX world).
- Detection of Blocks # 12 (Pure tone) but pending improvement.

You can download the Program here:

- Windows -> http://www.zonadepruebas.com/download/file.php?id=5253

- Linux 32 bit -> http://www.zonadepruebas.com/download/file.php?id=5251

- Linux 64 bit -> http://www.zonadepruebas.com/download/file.php?id=5252

The great advance is the recognition of the "TURBO BLOCKS" ;-)

We also have an FTP in which you can upload the versions of ".TSX" files that you are creating (you have to upload them to the "UpLoads" folder). The FTP access data are as follows:

Host: opencomputer.ddns.net
User: anonymous
Port: 21

By nataliapc

Expert (95)

Аватар пользователя nataliapc

03-12-2017, 11:59

These last months I've worked in several dev lines to support TSX format:

- OpenMSX support for TSX files

- TZXDuino support for TSX files

- Maxduino support for TSX files (thanks @rcmolina)

- PHP classes to read TSX, CAS, and UEF formats, and tool conversions CAS2TSX and UEF2TSX

The tool UEF2TSX translate UEF files (Acorn/Electron/BBC/...) to TSX format and can be used with TZXDuino/Maxduino.

I hope these devs give you fun testing them :)

PD: Thanks to acf76es (Retrocant) for his help testing.

By TomH

Champion (340)

Аватар пользователя TomH

04-12-2017, 16:28

As a teenager, I originated the UEF file format in my ElectrEm emulator. I've also implemented support for a whole bunch of other tape formats over the years. If I can be of any help:

TZX is a poorly-designed file format — most of the elementary chunks have completely distinct ways of encoding their length. So you need to implement a large number of things correctly before anything works reliably; more recent revisions have become very duplicative and given off a vibe of being the repository for whatever the authors are playing with that week. Even in the Spectrum world, there is a vocal movement towards PZX as a format that doesn't have most of the multitude of deficiencies of TZX (cf. the PZX description, and particularly the threads linked to underneath 'Why new format?'*).

From a keep-it-simple point of view, if adopting another format then I'd strongly advocate CSW or, possibly, the Commodore-style TAP as completely natural fits. CSW just stores the time between every zero crossing with byte stream compression. Commodore TAP stores the time between every upward zero crossing (i.e. from low to high, but not vice versa). CSW is preferable because TAP doesn't record the relative widths of the high and low periods of any complete wave. On Commodore hardware you're signalled only upon a rising crossing so the difference is immaterial there.

Since a CSW chunk has been added to recent revisions of TZX, implementing CSW support is unavoidable even if you stick with TZX. Honestly, without any legacy collections about, I'd strongly advocate just picking CSW.

Acorn computers use a different stream of bytes but at the bit level use exactly the same Kansas City standard as the MSX. Since it can contain a raw Kansas City bitstream at an arbitrary baud rate, or just a collection of pulses if necessary, arbitrarily spaced, a UEF can already exactly describe any MSX tape. Unlike TZX, blocks are entirely uniform, so there's no TZX-esque initial coding cost or multitude of potential sources of regression.

* Thread one, thread two, thread three.

By CASDuino

Champion (330)

Аватар пользователя CASDuino

17-01-2018, 14:26

I've been doing some work on speed in both TZX and TSX files and it looks like all TSX files have been converted at the wrong speed. They are all a third faster than they should be.

To work out what the 0-bit pulse length, 1-bit pulse length, and pilot pulse length should be you use the following formula.

3,500,000 / speed = average pulse length

Average pulse length / 3 = 1-bit pulse length, and pilot pulse length.

1-bit pulse length * 2 = 0-bit pulse length.

If you look at CAS files that have been converted to TSX files they should have the following values for 1200 baud (the standard speed for CAS files)
0-bit pulse length = 1945
1-bit pulse length = 972
Pilot pulse length = 972

Instead they have the following which is for 1600 baud
0-bit pulse length = 1458
1-bit pulse length = 729
Pilot pulse length = 729

This means that all TSX files are currently incorrect.

Страница 3/12
1 | 2 | | 4 | 5 | 6 | 7 | 8