Просмотр полной версии : BIN файлы в WAV формат
Так как мне потребовалось грузить игры и приложения на реальный девайс, то возникла потребность в утилитке которая BIN файлы (файлы юзаемые эмуляторами БКшки) смогля бы переводить в WAV формат который затем я бы мог передавать по кабелю через магнитофонный вход. Покопавшись в сети, нашел проект http://bk-mg.narod.ru/ штука хорошая, но времена QBasic ушли в средневековье и если есть какой то шанс запустить это под виндой, то в линуксе надо слишком много лишней работы делать, посему я переписал ту утилиту на Python (который распространен гораздо шире чем QBasic) и она стала в какой то мере кросс-платформенной, так как интерпретатор питона есть почти на всем, заодно я расширил некоторый функционал
Итак, утилита BK BIN2WAV
командная строка
bkbin2wav -i <binfile> [-a] [-o <wavfile>] [-n <name>] [-s addr] [-t]
опции
Command line options:
-h Напечатать хелп
-a Расширить итоговый аудиосигнал на весь диапазон, по умолчанию громкость в полдиапазона
-i <file> Задать BIN файл который надо сконвертировать, единственная требуемая опция
-o <file> Задать WAV файл в который записать звук, если не задан то расширение wav будет добавлено к исходнику и положен будет в ту же директорию
-n <name> Задать имя которое будет сохранено в заголовке файла на ленте, помните что лучше не юзать левых символов и максимальная длина 16 символов, если не задать то имя BIN файла (без расширения) будет заюзано в верхнем регистре, повторяю что лучше и не пробовать русские буквы совать
-s <addr> Задать стартовый адрес (в десятичном режиме!) для загрузки файла с ленты, если не задать, то будет использован адрес из BIN файла
-t Использовать удвоенную скорость при чтении, типа Турбо
Утилиту в разных режимах опробовал на реальном устройстве, вроде не показало проблем с расшифровкой полученного звукового файла
Скачать утилиту можно по ссылке https://github.com/raydac/bkbin2wav
iceoflame
30.12.2013, 12:04
http://zx.pk.ru/showthread.php?t=22315
http://zx.pk.ru/showthread.php?t=22315
видел, но мне не подходит, я под linux а там утилиты под винду
perestoronin
30.12.2013, 13:10
видел, но мне не подходит, я под linux а там утилиты под винду
Эмуль БК имеет исходники, хотя они очень сильно завязаны на Вин, я всё равно начал их портировать на linux, т.к. эмуль хороший, а Вин я не пользуюсь. О истории успеха, я надеюсь она когда-нибудь да случится, и если никто меня не опередит, я напишу в новостях.
Эмуль БК имеет исходники, хотя они очень сильно завязаны на Вин
лучше тогда и переписать на какомнить интерпретируемом языке, яве там или питоне, так как производительности у них хватит что бы и многопроцессорную бкху эмулить, а переносимость страдать не будет
без меня :)
компилируемое до самого низлежашего машинного кода греет душу ровно до тех пор пока не находишь нужной проги написанной на низкоуровневом языке для уже несуществующей или недоступной в данной момент платформы и тогда говоришь много теплых слов в адрес автора
компилируемое до самого низлежашего машинного кода греет душу ровно до тех пор пока не находишь нужной проги написанной на низкоуровневом языке для уже несуществующей или недоступной в данной момент платформы и тогда говоришь много теплых слов в адрес автора
У нас 90% эмулей написаны на компилируемых в машинный код языках.
У нас 90% эмулей написаны на компилируемых в машинный код языках.
ну дак плохо, что можно сказать, берешь такой эмуль и гадаешь - "пойдет - не пойдет", даж не всегда есть уверенность что исходники нормально скомпилятся если платформа сильно обновилась, винды и те вон как теперь живут неподолгу, постоянно новые версии и нововведения от микрософта да еще не всегда уже совместимое между собой
ну дак плохо, что можно сказать, берешь такой эмуль и гадаешь - "пойдет - не пойдет", даж не всегда есть уверенность что исходники нормально скомпилятся если платформа сильно обновилась
Ну, мы ваще-та на ПЦ сидим, тут пц-шный софт идет)
ну дак плохо, что можно сказать, берешь такой эмуль и гадаешь - "пойдет - не пойдет", даж не всегда есть уверенность что исходники нормально скомпилятся если платформа сильно обновилась, винды и те вон как теперь живут неподолгу, постоянно новые версии и нововведения от микрософта да еще не всегда уже совместимое между собой
а че, на питоне не так? ;) примерно так же. разные версии например, 2 и 3, гадай, пойдет на твоей версии или нет. библиотеки тоже качай и гадай, пойдут или нет (они могут обновиться, а могут просто не существовать для твоей архитектуры). куча зависимостей может быть. тоже можно проблем хлебнуть.
ну и вдобавок, имхо, скорости питона не хватит на полноценный эмулятор. тут важнее не тип языка, а наличие исходников и минимум *****кода.
ну и вдобавок, имхо, скорости питона не хватит на полноценный эмулятор
питона не хватит, а явы вполне
кстати говоря, на питонах, явах и прочих дотнетах тоже реально заточить эмуль, например, только под вин. так шта..... дело не в языках.
кстати говоря, на питонах, явах и прочих дотнетах тоже реально заточить эмуль, например, только под вин. так шта..... дело не в языках.
я уже пробовал, вполне нормально без особых оптимизаций и платформу с 4xZ80 тянет и кроссплатформенно
---------- Post added at 17:34 ---------- Previous post was at 17:32 ----------
что точно надо на кроссплатформенных интерпретируемых языках писать дак это утилиты, а то груды конвертеров в сети лежат, груды всяких тулзов и прочего добра, но 80% наверное уже хрен запустишь и исходников нет
что точно надо на кроссплатформенных интерпретируемых языках писать дак это утилиты, а то груды конвертеров в сети лежат, груды всяких тулзов и прочего добра, но 80% наверное уже хрен запустишь и исходников нет
вот это сто пудов! есть такие планы, но блин слишком уж их много этих планов...
кстати рекомендую всем глянуть на оригинальные сырцы проекта на QBasic написанного, яркий показатель что семантический разрыв языка и проекта настолько велик, что просто какой то адъ, иногда труднее понять код чем если бы он в машинных кодах был ))
я уже пробовал, вполне нормально без особых оптимизаций и платформу с 4xZ80 тянет и кроссплатформенно
Эмуляция эмуляции рознь.
Просто сферический z80, и z80 эмулируемый на уровне растактовки конвейеров, шины и т.д, плюс такая же точная эмуляция чипсета - вовсе не одинаковые задачи.
Итак, утилита BK BIN2WAV
Продублировал сюда (http://www.forum.pk-fpga.ru/viewtopic.php?f=46&t=5508&p=5914#p5914) со ссылкой на первоисточник, если не возражаете.
сделал проект на GitHub с последней версией (https://github.com/raydac/bkbin2wav)
в новой версии пофикшена работа с автоматической именовкой wav файлов и добавлена возможность заюзать физический размер .BIN файла вместо показателя в заголовке
сделал нативную версию конвертера для виндов, мака и линукса, доступны на страничке проекта https://github.com/raydac/bkbin2wav/releases
питона не хватит, а явы вполне
Только JavaScript :) С ним никому не нужно ничего объяснять, не нужно ничего качать и ставить. Клик и поехали.
потенциально возможно и на JavaScript, если API для записи из открытой странички в броузере столь развито теперь что можно сохранять нагенереный контент размером в пару другую мегабайт
Должно быть без проблем. Хотя я скорее говорил про эмулятор, чем про конвертер.
ну эмуляторы то дла javascript этап доступный давно, то что может эмулировать x86 рилтаймово, может эмулировать и БК
Потестил вашу утилиту. Возникла пара вопросов:
1. Частота дискретизации файла на выходе 88 кбит/с. Экспериментировал на игре "Solomon". Это здорово в отношении размера файла - WAV игры вышел весом 1,7 Мб (программа "BK Emulator 3.1" выдала 4,9 Мб, при частоте 400 кбит/с), но не будет ли проблем на звуковоспроизводящей аппаратуре с малой громкостью или плохим звуковым трактом.
2. Продолжительность звукового файла указанной игры в вашей утилите - 2.49 мин, "BK Emulator" создала файл на 1.56 мин. Поскольку занимаемое файлами место в настоящее время непринципиально, может стоит ускорить загрузку, пусть и с увеличением дискретизации. Ждать то долго не охота :)
3. Можно ли для нубов :) сделать версию утилиты с минималистическим графическим интерфейсом, или создать ключ для командной строки конвертирующий, например, автоматически все файлы в текущем каталоге?
там есть флаг -t который сделает турбо версию + есть флаг -a который увеличит громкость в финальном файле до разумного предела, утилита была написана на базе найденного древнего qbasic кода и мне надо было просто получить звук что бы загрузить в мою бкшку, вроде как полученная утилита успешно справилась и обычный звук и турбо у меня на бкхе через магнитофонный вход по кабелю от выхода наушников на ноуте нормально загрузился
как в golang делать графический интерфейс я пока не знаю, для конвертирования всего что в каталоге мне кажется проще не утилиту менять, а просто BAT файл написать который будет перебирать файлы и передавать их имена в утилиту
Отлично! Благодарствую!
Сейчас проверил на игре время загрузки - 1.22 минуты - замечательный результат. Если без проблем грузиться будет, большего и не надо.
как будут результаты, так сигнализируй, а то у меня в бкшке всеж стоит модифицированная читалка на 1006м таймере, а стандартная менее чувствительная
ну как там? на реал нормально залился турбо файл?
Не было возможности попробовать. Попробую в выходные.
Все нормально грузится. Благодарю. Как bat-файл для пакетной конвертации сделать ещё напишите, пожалуйста.
получается что обработка файлов в одном каталоге будет
@ECHO OFF
setlocal enabledelayedexpansion
for %%f in (*.bin) do (
echo "converting %%f"
bkbin2wav-windows386.exe -a -t -i %%f
)
Отличную, однако, Raydac программулину написал!
сенькс
если что есть версия такой же утилиты и для TAP файлов от ZX эмуляторов (https://github.com/raydac/zxtap-to-wav)
Raydac, сделал ссылку на релиз и тему с главной мордочки архива ПО для УК-НЦ / ДВК и БК в правом фрейме внизу
http://archive.pdp-11.org.ru/
сделал WASM онлайн версию (https://www.igormaznitsa.com/bkbin2wav/index.html), добавил конверсию кириллицы в именах файлов
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot