ZXMAK,прикрути п/ж сохранение в SCL
ZXMAK,прикрути п/ж сохранение в SCL
сохранение в SCL и hobeta специально и преднамеренно вырезано, т.к. это очень проблемный формат, сохранение в нем портит образы, т.к. в SCL не предусмотрено сохранение секторов которые могут содержать важные данные. Ну и кроме того поддержка сохранения проблематичная, т.к. код эмулятора не должен разбираться какие сектора к какому файлу относятся, тем более что записанная на диске информация часто не соответствует действительности.
SCL - это мертвый формат, сохранение в нем часто приводит к порче софта, причем определить испортился образ при сохранении или нет невозможно. А смысла в нем нету, TRD в ZIP архиве меньше места занимает и с ним меньше проблем.
---------- Post added at 23:47 ---------- Previous post was at 23:23 ----------
спасибо, при детальном исследовании BIN LOVE part 2, сразу обнаружилось что есть проблема с миксером AY. Вначале мелодии ничего не слышно, хотя в это время идут переливы. Сразу определить в чем проблема не удалось, чтото странное. Вот так у меня микшируются генераторы, шум и огибающая:
тут три бита m_stateGen содержат состояние выходов делителей A, B, C генератора.
А три бита m_stateNoise содержат состояние генератора шума (одинаковое).
Делаем ИЛИ с управляющими битами регистра миксера и получаем единицы для отключеных каналов.
Тут делаем И между выходами генератора и генератором шума (отключенные каналы в 1 и не влияют на результат)Код:var outGen = m_stateGen | (m_controlChannels & 7); var outNoise = m_stateNoise | ((m_controlChannels & 0x38) >> 3);
Тут мы берем вначале амплитуду 0, потом проверяем состояние outMix - если 1, то берем амплитуду из регистра амплитуды.Код:var outMix = outGen & outNoise;
Далее проверяем если в амплитуде включен старший бит, то берем амплитуду из из генератора огибающей.
mixA + 1 - это рудимент, предназначался чтобы использовалась большая амплитуда из 32 (на баг не влияет)
чтото тут неправильноКод:var mixA = 0; if ((outMix & 0x01) != 0) { mixA = (m_volumeA & 0x1F) << 1; mixA = (mixA & 0x20) == 0 ? mixA + 1 : m_bendVolumeIndex; }
Если инициализировать mixA=0x0F, то переливы в BIN LOVE появляются, но дальше по мелодии вместо нормальных эффектов возникает какие-то шумовые эффекты
Может ктото разбирается генераторах AY, подскажет в чем ошибка?
Последний раз редактировалось ZXMAK; 31.01.2015 в 00:52.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Все любят гипножабу
почему-же, вовсе не так, для обычных записей (без приколов с хитрой записью секторов, маркеров и т.п.) TRD - отличный формат, ну и заодно позволяет сразу записать на диск чтото, без танцев с бубном
---------- Post added at 00:13 ---------- Previous post was at 00:08 ----------
посмотрел свежим взглядом на код миксера, вот это я намудрил с битами
Поправил, чтобы соответствовало задуманному:
но всеравно переливов не слышно, судя по экспериментам, BIN LOVE на этом фрагменте как-то хитро генерирует звук переключением бита огибающей в регистре амплитуды. Причем так что после переключения громкость меняется на противоположную, а у меня почему-то остается той-жеКод:var mixA = 0; if ((outMix & 0x01) == 0) { mixA = (m_volumeA & 0x1F) << 1; mixA = (mixA & 0x20) == 0 ? mixA & 0x1F : m_bendVolumeIndex; }
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Для обычных файлов и SCL - отличный формат. 97% игр/софта не используют удалённые файлы или "якобы свободные" сектора, которые потом в SCL не сохранятся.
На рабочих TRD приходится иногда MOVE делать (не надо мне рассказывать, что нечасто, я на реале долго кодил), а в SCL сохранил - уже спрессовал место.
---
А ещё и с TRD бывают извращения - больше 160 дорожек, обрезанные по дорожке/сектору, всякие чешскопольские умельцы извращаться умеют...
Последний раз редактировалось SAM style; 31.01.2015 в 01:25.
Все любят гипножабу
Из за таких 97% мне не раз пришлось повозиться, чтобы понять почему программа глючит - с виду образ рабочий, все запускается, но глючит. Обычно этим буты страдают
Когдато по размеру трд определялось сколько сторон у диска, но в zxmak это пришлось отключить из за появления вот таких инвалидных трдшек
Последний раз редактировалось ZXMAK; 31.01.2015 в 01:36.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Всякие "скрытые" буты, которые сидят на 0 дорожке, конечно, не подходят для SCL, но почти все остальные годятся! Для образов без boot-ов надо сделать, как в Unreal - догружать туда пользовательский boot.$B
Да и не обязательно софт будет что-то на диск писать - куча игр, демки вполне могут храниться в SCL и не источать неприятных запахов.
Последний раз редактировалось SAM style; 31.01.2015 в 01:52.
Все любят гипножабу
тогда прикрути выбор из зипа с хобо файлами какие из них на диск пихать ... когда их в зипе штук сорок .. а то достало каждый раз кидать зип
---------- Post added at 01:57 ---------- Previous post was at 01:55 ----------
ну типо галочку поставить что монтировать.
хм, действительно дельное предложение
как разберусь с AY и синхронизацией (я ее опять хочу переделать, т.к. текущий вариант не позволяет железобетонную синхру сделать), займусь дискетами, нужно еще прикрутить поддержку образов с аппаратно считанными raw дорожками в mfm.
Еще думаю встроенный snippet compiller прикрутить, c подсветкой и т.п., чтобы компилить небольшие куски кода и отлаживаться по исходному коду. Компилятор думаю использовать сторонний, сделать настройку конфигураций для разных языков и дергать внешний компилятор через командную строку...
---------- Post added at 01:04 ---------- Previous post was at 01:01 ----------
так чтение SCL и хобет и так работает
Убрана только запись, т.к. с ней много проблем было, плюс опасность потерять сектора при записи.
Последний раз редактировалось ZXMAK; 31.01.2015 в 02:11.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
спс и прикрути поддеожку записи с мафона.
---------- Post added at 02:08 ---------- Previous post was at 02:06 ----------
в старых версиях вроде было не помню .. ща нема..
---------- Post added at 02:10 ---------- Previous post was at 02:08 ----------
в спекуляторе есть чтение с кассеты у тя нема. надо..
---------- Post added at 02:17 ---------- Previous post was at 02:10 ----------
раньше была такая шляпа как плавное затухание лампы на дисковде.. не в одном эмуле не видал.. а на реале есть)))
---------- Post added at 02:46 ---------- Previous post was at 02:17 ----------
ну чтоб визуально видно было.. помню ета хрень в ревю публиковалась
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)