Просмотр полной версии : tap разбить на составляющие
Viktor2004
18.05.2021, 23:41
Здравствуйте.
Подскажите пожалуйста, есть ли утилита, которая файл tap разрежет на части,
достанет из него все файлы из которых он состоит, включая заголовки.
Что бы потом можно было из всех отдельных кусков сделать много tapочек,
запустить их последовательно и что бы программа загрузилась
Viktor2004
19.05.2021, 09:45
Вот я попробовал разобрать tap файл игры BATTY Билла Гилберта.
https://ibb.co/KXzXPNT
Так файл BATTY (BILL GILBERT).TAP выглядит в виртуальном магнитофоне эмулятора Fuse
Установил в Total Comander плагин для TAP. С помощью него вытащил из игры отдельные блоки
Теперь рассматриваю блоки. На скрине слева исходный файл, справа первый и второй блоки
https://ibb.co/KNLyv97
Ну, в первом блоке потерян заголовок B-файла
Размер первого блока 13 00 то есть 19 байт 00 00 16 01 00 20 42 41 54 54 59 06 58 02 00 00 02 A4 97 Этот блок после разархивирования потерян
Далее идет блок размером 5A 02 (602) Однако сам блок начинается не сразу после двухбайтового значения размера, а после размера 5A 02 стоит байт FF. Что это? Просто разделитель?
Потом идет сам блок размером 5A 02. Однако посделние 4 байта этого блока после разархивирования отличаются от 4 байт исходного блока. На скане я это показал.
Далее идет непонятный байт B2, скорее всего контрольная сумма блока, а затем уже идет размер третьего блока 11 03 (785) потом опять какой-то байт - разделитель FF и потом пошел третий блок
Рассматривая это я вообще запутался в структуре tap-файла. Откуда байты-разделители? Входят они в длину блока или не входят? Почему 4 последние байта в разархивированном блоке не такие как в исходном файле?
попробуй https://vtrd.in/pcutilz/TAPIR10.zip
Viktor2004
19.05.2021, 10:58
попробуй https://vtrd.in/pcutilz/TAPIR10.zip
Спасибо. Программа открывает структуру tap файла. А как из нее достать отдельные блоки?
Достал оттуда заголовок размером 19 байт, но он уже оказался переделанным. Его новый размер 34 байта ZXTape!è BATTYX¤—
А нужно что бы после разархивирования блоки оставались такими же какими они и были
https://zx-modules.de/?page_id=2
Размер первого блока 13 00 то есть 19 байт. Этот блок после разархивирования потерян
Он не потерян. Эти 19 (точнее, 17 + контрольная сумма формата TAP) байт - это заголовок блока. По сути это метаинформация, при распаковке она превращается в имя файла.
Например, "#16#01#00 BATTY.0 0258 0000 A402 0000 FF 00". В этом хексе в конце закодировано всё, что было в 17 байтах - размер блока, стартовый адрес и т.д. Подробней о структуре заголовка см. брошюру "Тайники ZX и как установить вечную жизнь в играх" (есть на вирте)
Вот ещё программка, где можно сразу блоки в виде дампов смотреть не извлекая - https://zx-pk.ru/threads/32258-taper-3-0.html
- - - Добавлено - - -
Возможно, у нас разные плагины для тотала - вижу на скринах, что имя файла отличается.
Viktor2004
19.05.2021, 11:21
Он не потерян. Эти 19 (точнее, 17 + контрольная сумма формата TAP) байт - это заголовок блока. По сути это метаинформация, при распаковке она превращается в имя файла.
Например, "#16#01#00 BATTY.0 0258 0000 A402 0000 FF 00". В этом хексе в конце закодировано всё, что было в 17 байтах - размер блока, стартовый адрес и т.д. Подробней о структуре заголовка см. брошюру "Тайники ZX и как установить вечную жизнь в играх" (есть на вирте)
Я знаю структуру заголовка. Просто есть большое желание распаковать tap без потерь. Что бы получить их такими, какими они в звуковом виде в файле wav.
Я знаю структуру заголовка. Просто есть большое желание распаковать tap без потерь. Что бы получить их такими, какими они в звуковом виде в файле wav.
Тогда надо почитать про формат TAP - https://sinclair.wiki.zxnet.co.uk/wiki/TAP_format
Два байта размера блока, один байт аттрибута, сырые данные (например, 17 байт ZX-заголовка для первого блока), один байт контрольной суммы.
Если от каждого блока отрезать три байта в начале и один в конце, останется как раз то, что лежит в wav.
Точнее, в wav-то как раз лежит ещё и аттрибут, и контрольная сумма. Но если грузить блок через LD-BYTES из ПЗУ (LOAD ""), то их не видно.
Viktor2004
19.05.2021, 11:46
https://zx-modules.de/?page_id=2
Спасибо. Но эта программа у меня на Windows XP не ставится. Наверное ей надо более мощное железо и операционка
- - - Добавлено - - -
Тогда надо почитать про формат TAP - https://sinclair.wiki.zxnet.co.uk/wiki/TAP_format
К сожалению, от того что я прочитаю, файл на составляющие не раскладывается. Вручную я знаю как это сделать. А вот программер из меня никакой и утилиту я сам не напишу. Вот и думаю, может в природе уже существует такая утилита
так в TAPIR`e можно удалять/добавлять/конвертить в wav
и изучать структуру блоков при этом совершенно не нужно
Viktor2004
19.05.2021, 12:02
так в TAPIR`e можно удалять/добавлять/конвертить в wav
и изучать структуру блоков при этом совершенно не нужно
Я пробовал удалять все кроме одного. Оставил только заголовок 17 байт (с учетом двух байт длины 19
И пробовал его отдельно сохранить. Получил блок 34 байта вместо 17
- - - Добавлено - - -
Тогда надо почитать про формат TAP
Два байта размера блока, один байт аттрибута, сырые данные
Там что, байт атрибута есть?
На самом деле, формат файла .TAP очень простой. Формат предназначен для хранения данных, записанных на кассете магнитофона на стандартной скорости записи, без информации о паузах и т.п.
Каждый блок данных предваряется двумя байтами его длины, и дальше идут собственно данные. Это всё.
2 байта длины (младший вначале), затем данные блока последовательно, начиная с первого флагового байта, заканчивая последним байтом контрольной суммы.
https://zx-pk.ru/threads/28112-format-fajla-tap-zx-spectrum.html
Тут про байт атрибута ничего не пишут
Тут про байт атрибута ничего не пишут
ну как же:
начиная с первого флагового байта
Я пробовал удалять все кроме одного. Оставил только заголовок 17 байт (с учетом двух байт длины 19
И пробовал его отдельно сохранить. Получил блок 34 байта вместо 17
так он сохраняет только в tzx !!! (это более продвинутый формат при работе с образом ленты)
Вот и думаю, может в природе уже существует такая утилита
Я дал ссылку выше на Taper. Там всё крайне просто на уровне "скопировать блок в буфер бомена, создать новый tap-файл, вставить в него блок, сохранить"
А, на XP не пойдет же...
- - - Добавлено - - -
Однако скомпилировалась под .NET 3.5
Вот, должна работать на XP - https://drive.google.com/file/d/1bW47bVc6NAAWuawkrl1A7tnpuRZxuYc8/view?usp=sharing
Viktor2004
19.05.2021, 12:29
так он сохраняет только в tzx !!! (это более продвинутый формат при работе с образом ленты)
Если я через реальный магнитофон выдам эти 34 байта вместо 17-ти, спектрум у меня воспримет это как более продвинутый заголовок?
начиная с первого флагового байта
Ясно спасибо. А в wav файле этот байт аттрибута передается?
- - - Добавлено - - -
Вот, должна работать на XP - https://drive.google.com/file/d/1bW4...ew?usp=sharing
Приложение вызвало исключение которое не может быть обработано
Ясно спасибо. А в wav файле этот байт аттрибута передается?
Да, конечно
https://c.radikal.ru/c24/2105/99/2a2c88489469t.jpg (https://c.radikal.ru/c24/2105/99/2a2c88489469.png)
Приложение вызвало исключение которое не может быть обработано
Жаль. Даже не знаю, где XP достать для отладки, разве что в виртуалке поставить.
Если я через реальный магнитофон выдам эти 34 байта вместо 17-ти, спектрум у меня воспримет это как более продвинутый заголовок?
ты сначала сгенерируй в tapir`e wav из нужных тебе файлов, а потом рассуждай
Viktor2004
19.05.2021, 13:36
ты сначала сгенерируй в tapir`e wav из нужных тебе файлов, а потом рассуждай
Сгенерировал. Получил звуковой файл в 308кБ. Это только заголовок. И что теперь? Из него какой-то программой можно преобразовать в реальный файл 17-байт?
резалка TAPок на REXX (https://zx-pk.ru/threads/302-realnaya-kasseta-gt-tap-tzx.html?p=867140&viewfull=1#post867140)
c:\Temp\0>dir
Том в устройстве C не имеет метки.
Серийный номер тома: 0CEC-F6FB
Содержимое папки c:\Temp\0
21.05.2021 04:25 <DIR> .
21.05.2021 04:25 <DIR> ..
11.05.2012 15:54 31 508 BATTY (BILL GILBERT).TAP
1 файлов 31 508 байт
2 папок 99 193 368 576 байт свободно
c:\Temp\0>D:\util\regina\regina.exe D:\util\regina\TAPview3.rex "BATTY (BILL GILBERT).TAP"
TAPView (R) View Utility Version 3.0 26-Jun-2015
(c) 2015 Alex Kovrigin, 2:5000/111.47
Type Name Length Start Size Crc Crc
--------------- ---------- ------ ----- ----- --- ---
Program ??? BATTY? 41986 0 600 151 151
-----Headerless--block----- 255 600 178 178
-----Headerless--block----- 255 783 216 216
-----Headerless--block----- 128 6912 220 220
-----Headerless--block----- 129 4096 71 71
-----Headerless--block----- 130 4096 228 228
-----Headerless--block----- 131 4096 232 232
-----Headerless--block----- 132 4096 152 152
-----Headerless--block----- 133 4096 251 251
-----Headerless--block----- 134 2676 242 242
c:\Temp\0>D:\util\regina\regina.exe D:\util\regina\TAPSplit.rex "BATTY (BILL GILBERT).TAP"
c:\Temp\0>dir
Том в устройстве C не имеет метки.
Серийный номер тома: 0CEC-F6FB
Содержимое папки c:\Temp\0
21.05.2021 04:26 <DIR> .
21.05.2021 04:26 <DIR> ..
21.05.2021 04:26 21 BATTY (BILL GILBERT)-001.tap
21.05.2021 04:26 604 BATTY (BILL GILBERT)-002.tap
21.05.2021 04:26 787 BATTY (BILL GILBERT)-003.tap
21.05.2021 04:26 6 916 BATTY (BILL GILBERT)-004.tap
21.05.2021 04:26 4 100 BATTY (BILL GILBERT)-005.tap
21.05.2021 04:26 4 100 BATTY (BILL GILBERT)-006.tap
21.05.2021 04:26 4 100 BATTY (BILL GILBERT)-007.tap
21.05.2021 04:26 4 100 BATTY (BILL GILBERT)-008.tap
21.05.2021 04:26 4 100 BATTY (BILL GILBERT)-009.tap
21.05.2021 04:26 2 680 BATTY (BILL GILBERT)-010.tap
11.05.2012 15:54 31 508 BATTY (BILL GILBERT).TAP
11 файлов 63 016 байт
2 папок 99 192 979 456 байт свободно
Сгенерировал. Получил звуковой файл в 308кБ. Это только заголовок. И что теперь?
грузи этот звук в спек или тебе ещё что-то надо для счастья ?
Viktor2004
20.05.2021, 21:36
грузи этот звук в спек или тебе ещё что-то надо для счастья ?
Я ищу идеальный вариант хранения магнитофонных версий со стандартным загрузчиком, и что бы с этими файлами можно было работать и средствами РС, а не только Spectrum
ну значит ты плохо понял возможности Tapir`a.
содержимое любого блока можно посмотреть и сохранить.
причём например так любимый тобой заголовок сохранится именно длиной в 17байт (два служебных: первый и последний не учитываются)
Chewbacca
29.05.2021, 00:18
Я ищу идеальный вариант хранения магнитофонных версий со стандартным загрузчиком, и что бы с этими файлами можно было работать и средствами РС, а не только Spectrum
все уже придумано до нас
http://k1.spdns.de/Develop/Projects/zasm/Info/TZX%20format.html
Lethargeek
29.05.2021, 07:27
ищу идеальный вариант хранения магнитофонных версий со стандартным загрузчиком
... TZX ...
ищу идеальный вариант хранения магнитофонных версий со стандартным загрузчиком
.
Я ищу идеальный вариант хранения магнитофонных версий со стандартным загрузчиком, и что бы с этими файлами можно было работать и средствами РС, а не только Spectrum
для такого TAP самое то, компактный и простой по структуре
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot