-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathplaytzx.txt
209 lines (183 loc) · 12 KB
/
playtzx.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
Tape Utilities
----------------
Play TZX , TZX to VOC Converter & TZX Info
v0.59b
by Tomaz Kac
Welcome to first utility that uses the new TZX format (.TZX) file. This
utility will let you replay the .TZX files back to your ZX Spectrum (or to
a cassette recorder) using SoundBlaster or if you don't have a SoundBlaster
or if your emulator doesn't support .TZX files you can convert them to .VOC
files. Also from v0.4b onwards you can show extensive information about ALL
blocks in the .TZX file.
What is required: - PC with atleast 486 processor
- Soundblaster Pro or better (SB16, AWE32, ...)
(if you want to playback tapes on SB)
This version of PLAYTZX is able to play .TZX files of version 1.11. It is
still in its BETA stages since not all ZXTape blocks have yet been tested and
some are still not supported (like the Snapshot block).
Also the .VOC files generated by this version should work with all possible
programs and they have been tested (atleast) with Z80 and X128 emulators.
Now that many emulators directly support .TZX files this option is not needed
so much.
All DATA blocks (10-14) should work fine. The Direct Recording block should
work OK if you use the sampling rate that is the same, or a multiply of the
original sampling rate that was used to create the Direct Recording Block
(i.e. if direct recording block was created using 10kHz then use either 10,20
or 40kHz for playback/conversion). Also the Pause and Stop the tape command
work just fine and can be used.
if you would like to see more information on the INFO blocks then use the
/info command switch which will show you ALL possible info on all the blocks.
Use /p command to pause after each page is displayed. Also a condensed form
of info can be displayed with one line per block (as in replay or conversion)
with the /one switch. You can stop the display by pressing <ESC> key.
By default the Groups are not displayed expanded... i.e. Only the Group Name
is shown and not what is in that group. If you would like to see what is in
the groups then use the /x switch. This is only relevant when displaying info
one line per block (or playing/converting the TZX tape) ... in /info mode ALL
blocks are always displayed.
If you don't want to replay/convert/see all blocks then you can specify the
starting and ending block with /b and /e switches.
If you want to replay other file formats, such as Z80, SNA, VOC, ... then
you can use my other utility HYPRALOADER. Look on the homepage (below) for it.
Command Line Syntax:
PLAYTZX [switches] FILE.TZX [OUTPUT.VOC]
Switches: (you can just enter FIRST letter of an argument ... i.e. /voc = /v)
/b n - Start replay (or conversion) of the tape at block n.
The first block has number 1. ALL blocks (including Info, group,...)
are numbered. This will ofcourse change in HypraLoader, but until
then this is the best way.
/e n - Stop replay (or conversion) of the tape AFTER block n.
i.e. if you use /b 3 /e 5 then blocks 3,4 and 5 will be played.
/voc - This will create a .VOC file instead of replaying the TZX file to the
Soundblaster. This is handy if you don't own a Soundblaster compatible
sound card or if your emulator doesn't support .TZX files but only
.VOC files.
/freq n - This will set the sampling frequency to n Hz. The default sampling
frequency for SoundBlaster playback is 44100 Hz and for .VOC file
conversion is 30303 Hz. If you have a very old SoundBlaster which
cannot handle higher frequencies than 22050 Hz then you should use
this setting. Also if the .TZX file uses normal speeds and you want
to convert it to .VOC for use in an emulator then you will be better
off if you set this to 20000 Hz or even 10000 Hz. It should work.
If you get distorted sound (or no sound at all) then try using lower
frequencies (around 22050), since in that case the 'Low Speed DMA' is
used... for higher frequencies the 'High Speed DMA' is used which
is not supported by all clones (and even some Creative products).
/info - This will show very extensive information about all the blocks
within the TZX file. Some blocks have not yet been tested (such as
Snapshot, Custom info, ...) but they *should* work OK anyway.
The starting byte (in HEX form) of each block is written in the
() brackets.
/one - Show information ONE line for each block (the same as playing it to
the soundblaster/VOC file, only without ANY output ...). Could also
be interpreted as Brief Information. Will also show the starting
byte of each block in the tape (right after the block number).
/p - Will make a pause after each page of information is displayed. Use
this in combination with /info or /one switches.
/x - Will eXpand the Groups. By default the groups are displayed in
collapsed mode (i.e. only the group name is displayed and not the
blocks in it) ... when you use this switch ALL blocks will be
displayed.
NOTE: For /info ALL blocks are always displayed ! So this switch
is not needed when using /info !
/128 - This will use 128k mode. Only relevant if the TZX file has the
'Stop the tape if in 48k mode' blocks. i.e. if this option is enabled
then all these blocks are ignored.
If you supply /voc setting and no output .VOC file is given then the program
will use the same filename as .TZX one and change the extension to .VOC.
If you are replaying the file through your SoundBlaster then you can stop
the replay at any time by pressing any key.
The Amstrad CPC, SAM Coupe, Jupiter ACE, Enterprise & Commodore 64 files are
identified with the 'Hardware Info' Block ... The data is taken from the first
record in this block. If this block is not present then the Filenames won't be
written for these machines! Only first 10 characters of the block names for
SAM Coupe will be shown! The Jupiter ACE tapes are ofcourse supported, but no
Filenames are shown because I have never even seen such file, if you have some
then please send them to me, so I can add direct support for their filenames :(
On Commodore 64 tapes only the Turbo Tape and ROM Loader blocks will be
displayed with the filename. Other non-standard loaders will just be
represented by the length of the block !
So far this was thoroughly tested on my Cyrix P166+ and SB AWE32, but I got
reports of it working on several other configurations ... I am using
direct connection SoundBlaster-->ZX Spectrum using the amplified output of
the SB. The volume setting must be set to the highest possible with the
Gain to 4x and BASS setting set to 0dB and Trebble setting to the highest.
I have found that ZX Spectrum +2 is MUCH more reliable when loading as the
48k version is. Have no idea why :)
There could be problems if you have the IRQ setting of the SoundBlaster set
to higher than 7 ... or DMA higher than 5.
!!! IMPORTANT !!!
-------------------
When first trying to load something to the spectrum use LOW settings and
built up to higher ones or else you might damage the equipment, SB or Spectrum.
I cannot be held responsible if anything like that happens...
HISTORY: 0.3 - * First Public release
0.4 - * Added /info switch
0.41 - * Minor Bug fix - Sequence of Pulses works OK now
0.5 - * Added /one switch which shows Brief Information about each
block ONE Line per block only.
* Added /e switch to define where the replay/conversion/info
should stop
* Removed ANSI stuff (bold text)
0.51 - * Bug Fix - When displaying Hardware Info the program crashed
0.52 - * Some Cosmetic Changes
* Added /x switch and set the Collapsed way of displaying the
groups by default.
* Bug Fix - Archive Info wasn't displayed properly
* The delay over 1s after the execution of PlayTZX.EXE removed
* Use <ESC> key to exit the display while "scroll?" is shown.
* Bug Fix - Function and Arrow keys jumped two pages in "scroll?"
0.53 - * Bug Fix - 'Jump Relative' Block did not work correctly
0.54 - * Support for 1.02 version of ZX Tape format added
* If the Tape has the Hardware Info with the Computer Name then
it is now shown in /one and other one line modes.
* If the Archive Info is present then the Title is displayed in
/one and other one line modes (title must be in first place).
* Added support to show block names for Amstrad CPC and SAM
Coupe computers. They are identified with 'Hardware Info'.
* Speed calculations not influenced by /freq setting anymore!
* Bug Fix - The Sound output sometimes didn't work on some
SoundBlaster clones... Now the 'High Speed DMA' will only be
used for frequencies higher than 22050 Hz... so use lower
frequencies if you get distorted sound !
0.55 - * Bug Fix - The 'Hardware Info' code still had some bugs :(
0.56 - * Support for 1.10 version of ZX Tape format added
* Multi Line Text in 'Archive Info' and 'Message' blocks
now works properly (Use it for authors of different stuff
in the game (i.e. Code, Gfx, Sound, ...) .
* Bug Fix - You can now press 'Escape' to exit when waiting
for the keypress while the 'Stop the Tape Command'.
* The Checksum in 'Custom Data' blocks is not shown for
Amstrad CPC tapes (there is no checksum in those blocks)
* Added the support for 5 new TZX blocks :
- Loop Start/End
- Call Sequence/Return
- Select block
* Added support for 'Language' filed in 'Archive info' block
* Changed the 'Snapshot' block to comply with 1.10 version
0.57 - * Support for 1.11 version of ZX Tape format added
* Added support for 'POKEs' Custom block
* Added support for 'Stop the tape if in 48k mode' block
* Added the '128' command line switch to tell if you are using
48k or 128k mode (for the new stop block)
* Added the 'Jupiter ACE' hardware ID
* Command line arguments can be entered with the first letter
only now ...
0.58 - * Some cosmetic changes to the output
(/info is written at the end, Hardware Info looks better)
* Frequency is handled properly for files with Special block
number 0x09 - the VOC files with frequency bigger than 20kHz
0.59 - * Support for 1.12 and 1.13 (Commodore 64) added
If you would like to port this (or any other ZXTape utils) utility to some
other computer or O/S then you can request the source code... since this is
freeware I will be happy to send it to you, but it is VERY MESSY... you have
been warned :)
If you are looking for TZX files then the best place is 'World of Spectrum',
which is mantained by Martijn v.d. Heide, the url is:
http://www.void.demon.nl/spectrum.html
The latest revision of the ZXTape format and of all these utilities together
with others that use this format can be found at that page too (look in the
'Documents' section).
My email is tomaz.kac@uni-mb.si ... mail me if you have any problems
with this program or would like to see some things added.
TC