Spectravideo SV-328

User avatar
LamerDeluxe
Posts: 308
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 163 times
Been thanked: 41 times

Re: Spectravideo SV-328

Unread post by LamerDeluxe »

fpganoob wrote: Tue Apr 27, 2021 8:29 pm What happens when you try to load zaxxon cas?
Have you tested the same Zaxxon by adc?
It doesn't seem to load the next part. Maybe I should leave it loading for a an even longer time. I should check one against the duration of a wav version.
fpganoob
Posts: 23
Joined: Mon May 25, 2020 7:35 am
Has thanked: 2 times
Been thanked: 10 times

Re: Spectravideo SV-328

Unread post by fpganoob »

Hummm...
Maybe the Cas is broken.
Check that CAS is Right :
- Test that CAS on Emulator.
- Try to load a Wav coming from that CAS (or directly the CAS if you have how to do it) by ADC.
User avatar
LamerDeluxe
Posts: 308
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 163 times
Been thanked: 41 times

Re: Spectravideo SV-328

Unread post by LamerDeluxe »

fpganoob wrote: Wed Apr 28, 2021 4:53 am Hummm...
Maybe the Cas is broken.
Check that CAS is Right :
- Test that CAS on Emulator.
- Try to load a Wav coming from that CAS (or directly the CAS if you have how to do it) by ADC.
That could be, I will test some more, thanks!
fpganoob
Posts: 23
Joined: Mon May 25, 2020 7:35 am
Has thanked: 2 times
Been thanked: 10 times

Re: Spectravideo SV-328

Unread post by fpganoob »

Later version build the same April 25 :

Changelog :
// - Rewind on CAS load or Reset
// - LED_Disk on Tape Load
Attachments
Svi328_20210425.zip
(3.21 MiB) Downloaded 23 times
User avatar
pgimeno
Posts: 157
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 50 times
Been thanked: 25 times

Re: Spectravideo SV-328

Unread post by pgimeno »

I'm having the same problem with Zaxxon. With OpenMSX the .CAS file works, but with this core it doesn't. (OpenMSX added SVI CAS support very recently, in fact as the result of me writing the converter; you need to compile from source if you want to use it).

I've noticed that after finishing loading, there are remaining bytes before the next header starts. Could that be an issue?

Would it be possible to output the .CAS to audio as it loads, similar to the Tape Sound option of the Spectrum core? That would give hints as to what may be going wrong. It would also be useful to know that the CAS has finished, instead of having to wait an indeterminate amount of time.
fpganoob
Posts: 23
Joined: Mon May 25, 2020 7:35 am
Has thanked: 2 times
Been thanked: 10 times

Re: Spectravideo SV-328

Unread post by fpganoob »

pgimeno wrote: Sat May 01, 2021 11:24 pm I've noticed that after finishing loading, there are remaining bytes before the next header starts. Could that be an issue?
Sure, must be only 0x00(1Byte) between end block and the next header starts.
https://wiki.kasettilamerit.fi/wiki/ind ... ectravideo
pgimeno wrote: Sat May 01, 2021 11:24 pm Would it be possible to output the .CAS to audio as it loads, similar to the Tape Sound option of the Spectrum core? That would give hints as to what may be going wrong.
Sure, Basic supports "sound on".
User avatar
pgimeno
Posts: 157
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 50 times
Been thanked: 25 times

Re: Spectravideo SV-328

Unread post by pgimeno »

fpganoob wrote: Sun May 02, 2021 7:59 am Sure, must be only 0x00(1Byte) between end block and the next header starts.
https://wiki.kasettilamerit.fi/wiki/ind ... ectravideo
That link does not provide the format of a .CAS file, it only contains the encoding of data on tape. Many, if not most, of the existing .CAS files contain extra data between the end of a block and the start of the next block. The block separator in a .CAS is 16 times 0x55 + 0x7F, a 17-byte identifier; when it occurs, my converter to WAV generates a silence followed by 200 times 0x55 to serve as a sync signal, then a 0x7F (all in raw mode, no stop bits). I tested about half the TOSEC collection with that before I considered it robust enough.

MSX .CAS files have a similar layout, except that they use 8 fixed random-ish bytes that have to be aligned to an 8-byte boundary, therefore it's almost guaranteed that spaces will happen.
fpganoob wrote: Sun May 02, 2021 7:59 am Sure, Basic supports "sound on".
Thanks, it's pretty clear what the issue is now.
fpganoob
Posts: 23
Joined: Mon May 25, 2020 7:35 am
Has thanked: 2 times
Been thanked: 10 times

Re: Spectravideo SV-328

Unread post by fpganoob »

pgimeno wrote: Sun May 02, 2021 4:39 pm
fpganoob wrote: Sun May 02, 2021 7:59 am Sure, must be only 0x00(1Byte) between end block and the next header starts.
https://wiki.kasettilamerit.fi/wiki/ind ... ectravideo
That link does not provide the format of a .CAS file, it only contains the encoding of data on tape. Many, if not most, of the existing .CAS files contain extra data between the end of a block and the start of the next block. The block separator in a .CAS is 16 times 0x55 + 0x7F, a 17-byte identifier; when it occurs, my converter to WAV generates a silence followed by 200 times 0x55 to serve as a sync signal, then a 0x7F (all in raw mode, no stop bits). I tested about half the TOSEC collection with that before I considered it robust enough.
That's the info i've used.
Where is the specification of SVI CAS files? Which info is coded in the extra data between blocks? Why those cas has that extra data?
I dont like the idea of detect a header just by 16 X 0x55. What happens if a file has these bytes and is not a header? by now i like more the STOP flag, (motor off and Byte 0x00), bytes after that must be the header.
User avatar
pgimeno
Posts: 157
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 50 times
Been thanked: 25 times

Re: Spectravideo SV-328

Unread post by pgimeno »

fpganoob wrote: Sun May 02, 2021 5:38 pm That's the info i've used.
Where is the specification of SVI CAS files? Which info is coded in the extra data between blocks? Why those cas has that extra data?
I dont like the idea of detect a header just by 16 X 0x55. What happens if a file has these bytes and is not a header? by now i like more the STOP flag, (motor off and Byte 0x00), bytes after that must be the header.
I don't know of any specification of SVI CAS files; I reverse engineered them from the files themselves. I know that the MSX CAS files follow almost the same pattern, except they changed the header bytes to something less likely to appear in a file: 1F A6 DE BA CC 13 7D 74 and added the restriction that it needs to start in a position multiple of 8. Still, files with that byte sequence can't be encoded in MSX CAS files. Like with the SVI, it's just a flaw in the file format design.

Note the header is the 16 X 0x55 plus the single byte 0x7F, which must also be encoded in raw form (no start bit) and therefore not a data byte. That additional byte makes it less likely to appear by chance in a file.

Most of the time the extra data are zeros, and I suspect it's noise due to deficient filtering during the conversion from audio to CAS.

Some files that work in the core, also have additional zeros before the next header. Alien 8 has 10 and they are audible at the beginning of the loading of the next block. Maybe Zaxxon just has too many? It has 22 zeros. It comes from the Spectravideo TOSEC collection at archive.org.

Edit: Indeed, Zaxxon works when removing the extra zeros with this simple Python program:

Code: Select all

import sys
python3 = sys.version_info.major >= 3
read = sys.stdin.read if not python3 else sys.stdin.buffer.read
write = sys.stdout.write if not python3 else sys.stdout.buffer.write
data = bytearray(read())
data[0xA8:0xB4] = b''
write(data)
Usage: python fixZaxxon.py < "Zaxxon (1982)(Coleco)[h Buggy Software][CLOAD + RUN].cas" > ZaxxonFixed.cas
User avatar
kathleen
Posts: 190
Joined: Fri Jun 26, 2020 4:23 am
Has thanked: 22 times
Been thanked: 28 times

Re: Spectravideo SV-328

Unread post by kathleen »

Thank you @pgimeno,

Just tried on my side and Zaxxon, after having it fixed with your python code, works like a charm ! Brillant !
User avatar
Moondandy
Posts: 151
Joined: Mon May 25, 2020 2:14 am
Location: London, UK
Has thanked: 1 time
Been thanked: 9 times

Re: Spectravideo SV-328

Unread post by Moondandy »

Does this system support a RTC?
Post Reply