Why not a ".TSX" Format for MSX Tapes???

Page 2/11
1 | | 3 | 4 | 5 | 6 | 7

By wouter_

Champion (374)

wouter_'s picture

29-01-2013, 13:48

manolito74 wrote:

I think both systems (".Cas" and ".Tsx") can live perfectly together.

Just like CAS and WAV can live perfectly together.

manolito74 wrote:

We can use a ".Tsx" Format and Tools in order to obtain a Tape Image as "pure" as we can. After, this "perfect" image obtained in a ".Tsx" file could be used to differents purposes: manipulate it to obtain a ".Wav" file, to obtain a ".cas" file, to load it from emulator directly, to revert it and save in a physic tape...

In this paragraph replace TSX with WAV and you have a working solution _today_.

I've re-read this whole discussion and really the _only_ advantage of TZX/TSX that I could find is that the files are smaller than WAV files. But this is easily solved by compressing the WAV files. Maybe I'm missing something, because I'm not familiar with the file format.

A big disadvantage of TSX is that there are no exiting tools for it and I also don't see any volunteers to work on that.

But again, if for some weird reason TZX/TSX does become popular enough on MSX, we may add support for it in openMSX.

By RetroTechie

Paragon (1413)

RetroTechie's picture

29-01-2013, 15:54

Edwin wrote:
RetroTechie wrote:

That's just stupid (no offense to openMSX dev's Wink ).

It's funny how you can always recognise the most clueless people by comments like this.

Why? CAS format is essentially a sequence of bytes as the BIOS produces them (compare with TAP format on the Spectrum). To load in an emulator, all you have to do is sort out which bytes to copy into the emulated MSX's memory. There might be technical/coding reasons, but going through WAV format is a detour. That's what I called 'stupid'.

wouter_ wrote:

* TZX files can support all tapes, but so can WAV files.

TZX is a much, much more compact representation. Rough estimate: most TZX files I have for the Spectrum, are similar size as the machine's RAM. Compare that with compressed WAV. That's an advantage for users. WAV's generally compress badly, TZX can also be compressed to become smaller still. TZX also better reflects the information contents of a tape. Users don't care about audio wave forms, but about frequencies, pauses, and the 1's and 0's encoded in there.

Quote:

* Adding support for WAV files to an emulator is easy. Adding support for TZX will always require a moderate amount of extra code.

True. Adding TZX support is mostly an emulator developer's problem, I think. Wink The format itself is well documented.

FWIW: I don't think there's much point to adding TZX support to MSX emulators. Like said, the vast majority of MSX tapes is mediocre quality software, almost all work fine as a CAS file, custom loaders are rare, and using WAV for preservation is always an option.

There's a number of TZX -> WAV tools around, so nothing to stop anyone from encoding a few MSX tapes in TZX format. And perhaps add MSX as a machine to the format spec?

By wouter_

Champion (374)

wouter_'s picture

29-01-2013, 17:02

RetroTechie wrote:
Edwin wrote:

It's funny how you can always recognise the most clueless people by comments like this.

Why? CAS format is essentially a sequence of bytes as the BIOS produces them (compare with TAP format on the Spectrum). To load in an emulator, all you have to do is sort out which bytes to copy into the emulated MSX's memory. There might be technical/coding reasons, but going through WAV format is a detour. That's what I called 'stupid'.

I'll try to explain why we decided to make this detour in openMSX. Historically in openMSX we implemented this fast-loading trick/hack for both cassettes and for diskettes. So just like CAS files represent the bytes that should end up in memory after you call some BIOS routine, DSK files represent the bytes that should end up in memory after you call the BDOS read sector routine. So in very early versions of openMSX we would 'patch' both the BIOS and BDOS routines with special opcodes that the cpu emulation code recognizes and then performs 'magic' very fast loading.

However there's a problem with this approach: some MSX software breaks when you use it. I don't remember which game it was (Xak?? it was some microcabin game IIRC) but what the game did was start a VDP command to clear the screen, then load some data from disk and then execute some more VDP commands. The second batch of VDP commands was started without first checking that the previous VDP command was finished. On a real MSX loading from disk takes so much time that the first command was long finished. Though with the fast disk loading hack this was no longer the case and the screen was not correctly cleared, resulting in corrupt graphics. It took quite some effort to debug this 'emulation bug'.

I don't know of any concrete examples, but theoretically similar problems can occur with fast cassette loading. It doesn't even have to involve VDP commands, any timing related aspect (e.g. interrupts) could trigger such problems.

Some people don't like these long loading times (but no longer than what you get on a real MSX machine). For those people we added a feature that detects when the MSX is loading (cassette or disk) and optionally speeds up emulation during loading. So you get correct emulation and fast loading speeds.

Actually in very recent openMSX versions we even make a detour for DSK files. internally we convert DSK files to
a format that contains raw track info with sector headers and gaps between the headers and data blocks. This allows us
to more accurately emulate the delay you get when reading/writing from/to disk: if you're lucky the desired sector is located near the disk drive head, but in the worst case you have to wait for almost a full revolution of the disk.

RetroTechie wrote:

TZX is a much, much more compact representation. ... WAV's generally compress badly, ...

You're right that in general WAVs compress badly. But WAVs that represent 'clean' cassette data compress very well. I've just checked a few of the cassette-WAV files i have and they compress to approx 1/150 of the original size. That's only a factor 3x-5x bigger than corresponding size in RAM.

So we're talking about a file size difference in the order of 10's of kBs. IMHO this small difference is not worth the extra complexity.

By AlesteDX

Resident (48)

AlesteDX's picture

10-06-2014, 19:16

Hello..

I suppose there is no news or talk about this matter, although I think a TSX format would be very useful for the community. The main advantage would be exact copies of tape for preservation purposes, not a imperfect representation of them.

I have a lot of MSX tapes, some a bit rare, and I'm waiting for a good format and tools for dump them. For TZX there is a lot of tools that make working with that archives a very easy and powerful task. There' only advantages, but I understand that it requires extra work to develop (I'm not a programmer, unfortunately).

On the MSX community traditionally this matter has been rejected, but I think with TZX format definition much of the work is already done, and would be only a matter of adapt it, as other platforms have done.

That is why I ask all of you to reconsider this matter as a real possibility.

Regards.

By DrWh0

Champion (504)

DrWh0's picture

10-06-2014, 19:58

As a "shadow dumper" I absolutely agree with AlesteDX´s statements, TSX is *better format*, in an perspective of true preservationist, if "cas" format is enough for you, ok, go ahead, but don´t cry when some tricky copy protection appears, cas is good for cracked games or not "tricky" games.

TZX derived formats has better tools for handling exotic formats, it´s absurd to deny it.

I hope I am not touching any feelings, but facts are facts, preferences is a very different affair.

By hap

Paragon (2006)

hap's picture

10-06-2014, 20:19

I agree Smile

However to be honest, I wouldn't add support of this format to an emulator until files are available. Make dozens of TZX rips (not just a handful) and I'm near certain that team openMSX will support it.

By DrWh0

Champion (504)

DrWh0's picture

10-06-2014, 20:35

I know somebody is going to flood internet with msx tzx images Face

By hap

Paragon (2006)

hap's picture

10-06-2014, 20:55

By the way, I see the last post of wouter(openmsx main developer) here was over a year ago. His opinion has changed since then to pro-preservation: he added support for DMK disk images to the emulator. To the MSX disk controller, DMK rips are indistinguishable from real disks, making it possible to create rips of copy-protected disks.

Wouter, care to react? Smile

By wouter_

Champion (374)

wouter_'s picture

10-06-2014, 21:16

hap wrote:

... His opinion has changed since then to pro-preservation: he added support for DMK disk images to the emulator.

I don't think my opinion changed (much). DMK disk images do solve a technical problem: unless DSK files, DMK files can store the full disk content including copy-protections (at least when using common MSX Floppy Disk Controllers (FDC)). But for cassette we already have a solution for that problem: WAV files.

So I can only repeat what I've already said earlier in this thread: once TZX (or TSX??) becomes popular enough for MSX games we may consider adding support for it in openMSX. Even though I personally think TZX has no technical advantages over WAV (and the file size advantage is very moot, difference is only a few 10s of kBs).

And if you do want to help emulator developers (openMSX or other) make progress on this front, it would be useful if you could point us to a good open source tool that can convert TZX back to WAV. Because something like this is needed internally in the emulator.

By jltursan

Prophet (2061)

jltursan's picture

10-06-2014, 23:28

Quote:

Even though I personally think TZX has no technical advantages over WAV (and the file size advantage is very moot, difference is only a few 10s of kBs)

I'm lost here. An 8bits-8000Hz-mono WAV is about 1,4MB uncompressed. Even packed can't be compared with a TZX file, usually they're not bigger than 50KB oO

Page 2/11
1 | | 3 | 4 | 5 | 6 | 7
My MSX profile