Spectravideo SV-328

User avatar
NML32
Posts: 288
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 272 times
Been thanked: 43 times

Re: Spectravideo SV-328

Unread post by NML32 »

Is there a tool to convert to wav?
User avatar
Hodor
Posts: 135
Joined: Mon May 25, 2020 8:29 am
Has thanked: 354 times
Been thanked: 29 times

Re: Spectravideo SV-328

Unread post by Hodor »

NML32 wrote: Thu Apr 15, 2021 3:13 pm Is there a tool to convert to wav?
This one, for example: https://tsx.eslamejor.com/files/tzx2wav.zip
jca
Top Contributor
Posts: 1911
Joined: Wed May 27, 2020 1:59 pm
Has thanked: 145 times
Been thanked: 454 times

Re: Spectravideo SV-328

Unread post by jca »

jca
Top Contributor
Posts: 1911
Joined: Wed May 27, 2020 1:59 pm
Has thanked: 145 times
Been thanked: 454 times

Re: Spectravideo SV-328

Unread post by jca »

After thinking some I guess you do not have anything to do in the menu but type CLOAD and once the file is loaded RUN.
Is this the correct way to do it?
User avatar
Hodor
Posts: 135
Joined: Mon May 25, 2020 8:29 am
Has thanked: 354 times
Been thanked: 29 times

Re: Spectravideo SV-328

Unread post by Hodor »

jca wrote: Thu Apr 15, 2021 3:32 pm After thinking some I guess you do not have anything to do in the menu but type CLOAD and once the file is loaded RUN.
Is this the correct way to do it?
You´re right. The very same behavior as the real computer.
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Spectravideo SV-328

Unread post by LamerDeluxe »

I found a cas2wav utility said to work for the 328, but it only runs under DOS.
Attachments
sc2w1_0b.zip
(110.37 KiB) Downloaded 191 times
jca
Top Contributor
Posts: 1911
Joined: Wed May 27, 2020 1:59 pm
Has thanked: 145 times
Been thanked: 454 times

Re: Spectravideo SV-328

Unread post by jca »

LamerDeluxe wrote: Thu Apr 15, 2021 6:28 pm I found a cas2wav utility said to work for the 328, but it only runs under DOS.
AO486 to the rescue.
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Spectravideo SV-328

Unread post by LamerDeluxe »

jca wrote: Thu Apr 15, 2021 6:33 pm
LamerDeluxe wrote: Thu Apr 15, 2021 6:28 pm I found a cas2wav utility said to work for the 328, but it only runs under DOS.
AO486 to the rescue.
That should work, or DOSBox.
jca
Top Contributor
Posts: 1911
Joined: Wed May 27, 2020 1:59 pm
Has thanked: 145 times
Been thanked: 454 times

Re: Spectravideo SV-328

Unread post by jca »

Another cool thing would be to run, on the Linux side, a CAS player outputing into an audio dongle looping back into the ADC. Self contained and not using too much storage space
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Spectravideo SV-328

Unread post by LamerDeluxe »

jca wrote: Fri Apr 16, 2021 6:42 pm Another cool thing would be to run, on the Linux side, a CAS player outputing into an audio dongle looping back into the ADC. Self contained and not using too much storage space
Now that would be a really fun solution :lol:
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Spectravideo SV-328

Unread post by LamerDeluxe »

I've tested the cas 2 wav converter, that I posted here, with DOSBox and it works. You need to add the attached file to the same folder you are running this from. I'm using AmpShell to easily add a folder as the C drive.

Most of the commercial games that you load with CLOAD (which loads software written in basic) load a small loader at first. So pause the wav audio as soon as 'ok' is displayed. Then enter 'run' and start the wav playback again. If you get an error, just try the whole procedure again.

Other games load with BLOAD (binary, games written in assembly) like this: bload"NINJA",r

Where 'ninja' is the game name and should be in caps. If you don't know the correct name, just use whatever name when loading and a 'skipping' message will appear with the correct name to load. Then use the bload command with that name.

It was fun to use the ADC adapter to load a game.
Attachments
cwsdpmi.zip
(16.41 KiB) Downloaded 170 times
User avatar
pgimeno
Top Contributor
Posts: 669
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 246 times
Been thanked: 208 times

Re: Spectravideo SV-328

Unread post by pgimeno »

Here's a converter in Python, it even runs in MiSTer's Linux:

http://www.formauri.es/personal/pgimeno ... cas2wav.py

Usage: python svi_cas2wav.py input_file.cas output_file.wav

If using '-' as input file name, standard input is used instead. If using '-' as output file name, standard output is used instead.

Edit (Apr 21): Updated to fix issues with a few .cas files.
MiSTer_Kirk
Posts: 210
Joined: Thu Feb 04, 2021 11:42 pm
Has thanked: 18 times
Been thanked: 46 times

Re: Spectravideo SV-328

Unread post by MiSTer_Kirk »

Blimey!! Didn't see this. A Spectravideo SV-328 core.
Always wanted one of these, but they go for silly money on ebay. And now we have it on Mister, even better.
Tried Hero, International Karate, and the Hyper Sports games, didn't realise if the core had locked or not - it was the slow tape loading taking much longer than expected to load.
fpganoob
Posts: 24
Joined: Mon May 25, 2020 7:35 am
Has thanked: 3 times
Been thanked: 10 times

Re: Spectravideo SV-328

Unread post by fpganoob »

25/04/2021 Version:

Tape Load:
- Audio In
- CAS from OSD : First load CAS file on OSD and then exec command on SVI (cload, bload, ...). MAX 256KB.

Please Test and Report!!! :D
Attachments
Svi328_20210425.zip
(940.56 KiB) Downloaded 191 times
breiztiger
Top Contributor
Posts: 427
Joined: Sun May 24, 2020 7:17 pm
Has thanked: 23 times
Been thanked: 93 times

Re: Spectravideo SV-328

Unread post by breiztiger »

hi
very good work !!!
can we have tape sound please ?
thanks in advance
CPC-Power Staff
User avatar
ron
Posts: 159
Joined: Sun May 24, 2020 7:02 pm
Has thanked: 67 times
Been thanked: 58 times

Re: Spectravideo SV-328

Unread post by ron »

For tape sound , from basic prompt type:

SOUND ON

That's all.
Regards
breiztiger
Top Contributor
Posts: 427
Joined: Sun May 24, 2020 7:17 pm
Has thanked: 23 times
Been thanked: 93 times

Re: Spectravideo SV-328

Unread post by breiztiger »

ok cool
is that right also on real computer ?
CPC-Power Staff
User avatar
ron
Posts: 159
Joined: Sun May 24, 2020 7:02 pm
Has thanked: 67 times
Been thanked: 58 times

Re: Spectravideo SV-328

Unread post by ron »

breiztiger wrote: Tue Apr 27, 2021 2:13 pm ok cool
is that right also on real computer ?
From SVI 300 Series Computer Quick Reference Card
SOUND [ON] [OFF]
To turn sound of the cassette audio on or off.

From SVI328 Basic Reference Manual (Page 247)
To write value directly to the register of PSG.

rampa said it does not work on real SVI :shock:
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Spectravideo SV-328

Unread post by LamerDeluxe »

I tested .cas files with some BLOAD games and it works perfectly. Of course you won't know how far along loading is, but it only takes a few minutes.

I also tried it with some games that do multi-load. You load them with CLOAD, then type run, this starts a loader that loads the rest of the game. This doesn't seem to work. It does work with ADC, but you have to quickly stop the audio when the first load ends.

Does the virtual tape get stopped when loading ends? Does it work correctly when loading the next part from tape? I tried this with Zaxxon, which I think has been converted from another system.

I also had an instance where I changed the .cas file, but had to rewind it for it to load.
fpganoob
Posts: 24
Joined: Mon May 25, 2020 7:35 am
Has thanked: 3 times
Been thanked: 10 times

Re: Spectravideo SV-328

Unread post by fpganoob »

Multiblock Cas works.
With the ADC load you have to stop the audio manually, but on the Cas load, the cas file "stops" automatically, and too starts again alone.
So you just have to cload the first block, and then run...

What happens when you try to load zaxxon cas?
Have you tested the same Zaxxon by adc?

Yes, until i release a new version, better you rewind after load cas.
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 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: 24
Joined: Mon May 25, 2020 7:35 am
Has thanked: 3 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
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 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: 24
Joined: Mon May 25, 2020 7:35 am
Has thanked: 3 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 213 times
User avatar
pgimeno
Top Contributor
Posts: 669
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 246 times
Been thanked: 208 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: 24
Joined: Mon May 25, 2020 7:35 am
Has thanked: 3 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
Top Contributor
Posts: 669
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 246 times
Been thanked: 208 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: 24
Joined: Mon May 25, 2020 7:35 am
Has thanked: 3 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
Top Contributor
Posts: 669
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 246 times
Been thanked: 208 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
Top Contributor
Posts: 409
Joined: Fri Jun 26, 2020 4:23 am
Location: Belgium
Has thanked: 224 times
Been thanked: 131 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 !

かすりん

Post Reply