Обновил до версии 2725, добавлен клон "Байт". Тайминги и ROM маппинг вроде работают, но церикопик пока не проходит.
http://savepic.org/3374103.png
Вид для печати
Обновил до версии 2725, добавлен клон "Байт". Тайминги и ROM маппинг вроде работают, но церикопик пока не проходит.
http://savepic.org/3374103.png
Обновил эмулятор до версии 2727.
- fix ULA Byte - now cerikopik protection works
- fix ULA Byte - port #FE selection
Теперь эмулятор проходит защиту церикопик, правда для этого нужно отключить Tape Traps и Tape Autoplay. Т.к. небольшие задержки влияют на загрузку.
http://savepic.org/3405798.png
Обновил эмулятор до версии 2728:
- refactoring sound classes
- refactoring disk emulation classes
- remove flaw version of CreateContentionTable
- fix ULA Delta and ULA Byte (WriteMemory4000 double call)
- fix ULA ATM and ULA PROFI compatibility with non-native memory
- fix ULA Byte contentions (collect contention info with circuit ula simulation)
Еще одно обновление - 2729, добавил упущенные детали:
- Добавлен бипер Байта (у него особая дешифрация порта)
- Добавлен модуль памяти BYTE 128
- Исправлена совместимость модулей памяти с TRDOS (маппинг BYTE теперь работает только для ROM48)
- Добавлена готовая модель байта 128К с TRDOS'ом (не все умеют вручную добавлять BDI :) )
http://savepic.org/3346156.png
Выбирается BYTE 128K + TRDOS, но в TRDOS не перезагружается :-(
Hi. I have problem to run ZXMAK2 in Windows XP SP2:
Gelip, To work ZXMAK2 need to install DirectX 9.0...
WinXP SP2 have DirectX 9.0c default. ZXMAK2 need other update to fix the problem:
directx_Jun2010_redist
Is VI53 sound emulation working in "Byte"?
I have suggestion. Please increase BORDER top and bottom in windowed 100%. Border size is not the same and it looks ugly.
P.S. Sound emulation VI53 working in other emulator b2m but playing is too fast
http://zx-pk.ru/showthread.php?t=20158&page=3
Сброс всегда идет обычный, т.е. эмулируется контроллер дисковода с перемычкой обычного сброса
This is because some components of the DirectX 9 is missing from your system. Just run the DirectX 9 Redistributable web installer and it will check, download and install all required components. The web installer is available on microsoft web site: http://www.microsoft.com/en-us/downl...ils.aspx?id=35
---------- Post added at 23:48 ---------- Previous post was at 23:38 ----------
no, VI53 is not implemented yet.
But memory emulation (with ROM remap feature) and ULA emulation (with multicolor and slow memory) is done.
Also you need to disable tape traps and autoplay on the tape window to pass Tserikopik protection :)
Yes it's working but I found one problem:
1. Open Tape window
2. Click anywhere in main window program e.g. menu File
3. Now if you click icon Use Trap or Use Auto Play in Tape window this not switch on button
4. Only when you click second time the same icon - button is switched
For this reason, I had trouble loading the game with Cerikopik :-)
Александр, не могли бы Вы осветить еще один вопрос? Посмотрел в эмуляторе список подключенного оборудования и нашел там "Tape recorder". Это что за зверь такой? Попробовал сделать SAVE "dfdfd" - полоски бегут, нравится, а откуда потом грузить это "dfdfd"? Идея была в том, чтобы выгрузить на реальны спек загруженное в эмулятор :) В исходниках не рылся, на удачу спрошу: насколько трудоемко будет прикрутить в качестве магнитофонного порта, скажем, парочку линий LPT или COM1? Или еще какого аппаратного порта на Ваш выбор? :) Спасибо :)
П.С. Или такая функция уже имеется, просто я, как обычно, изобретаю очередной велосипед? :)
Звуковуха, не?
Alexander Makeev, хочется еще одно пожелание: заимпрувить FormMachineSettings.initConfig() и BusManager.LoadConfig() так, чтобы при смене конфига через Wizard либо существующие и в старом, и в новом конфиге девайсы не пересоздавались, либо при пересоздании переносились сеттинги. Что конкретно хочется - чтобы из BDI не высовывались дискеты при смене одной машины с дисководом на другую. Надо при отладке мультиколоров под разные клоны.
P.S. ZXMAK - лучший эмуль с точки зрения точности эмуляции ULA (да и еще много в чем). Спасибо тебе огромное за него!
не "Tape recorder",а "Tape player", он только проигрывать умеет :)
а зачем? Записываешь касету в WAV файл и открываешь потом WAV файл эмулятором... :v2_wink2:
---------- Post added at 01:16 ---------- Previous post was at 01:10 ----------
девайсы и так не пересоздаются - если тип девайса такой-же, то используется экземпляр девайса от предыдущей конфигурации. За счет этого можно поменять ULA, но память при этом не очистится :)
В BDI дискеты высовываются чтобы если на них была запись, не потерять записанное. При высовывании дискеты происходит выгрузка изменений из памяти на диск.
---------- Post added at 01:23 ---------- Previous post was at 01:16 ----------
спасибо :v2_rolley но в некоторых ULA еще есть небольшие баги с отображением (например бордер на spectrum +2A/+3), ими я и планирую заняться в ближайшее время :)
Запись tap файлов - это конечно очень полезная фича, но требует наработки соответствующих алгоритмов для детекции начала/конца записи и т.п.
Сейчас у меня более приоритетные задачи - доработать расчет таблиц для рендеринга, отрефакторить движок, добавить новые отладочные фичи (останов по доступу к ячейке памяти/порту и т.п.), переписать отладчик (код которого написан еще в 2001 году и рефакторингу с того времени не подвергался)
Посмотри, как у меня в Xpeccy:
Конец блока определяется по паузе дольше 1 фрейма. После окончания записи блока определяется возможность перевести сигналы в байты (наличие пилот, sync1, sync2, [1], [0], sync3).
Например:
1. запустить эмулятор
2. сохранить блок ПЗУ-шной процедурой
3. через F2 сохранить ленту как tap
делается перехват ПЗУшной процедуры по адресу 1218. ix,de,a
после этого выскакивает окошко с выбором имени файла и пути для его сохранения.
если выбран существующий файл то данные пишутся в его конец.
а вот что удобней для последующих сохранений ?
1. пока эмулятор работает все дальнейшие сохранения вести в этот файл.
например мы загрузили программу из нескольких блоков в копировщик и потом сохраняем их в один TAPфайл.
2. выдавать запрос при каждом новом сохранении ?
для отгрузки состояния в игре возможно удобней несколько разных TAPфайлов вместо одного
Чуть переделать Tape Player, чтоб получился тот самый Tape Recorder.
При записи эмулятор отлавливает записанный блок, и вставляет его в конец списка блоков. Теперь
а) Вводя LOAD "" и шелкнув два раза по сохраненному блоку, мы можем его загрузить - этот функционал уже есть.
б) Выделив нужные блоки можем нажать новую кнопку Save и сохранить TAP-файл, состоящий из этих блоков.
Обновил эмулятор до версии 2730, из ключевых изменений:
- исправлена ошибка в мультиколоре (фиксился пентагон, но теоретически затронуло все модели);
- добавлен новый режим масштабирования, в котором пикселы всегда имеют фиксированный размер. Поможет тем у кого в полноэкранном режиме раньше пикселы были разного размера;
- размеры всех ULA установлены в 320x256, чтобы не дергать постоянно View->Size;
- доработано сохранение SZX файлов, теперь сохраняется модель, которая определяется по типу модуля памяти;
- переработан код построения таблиц рендеринга
http://savepic.org/3419271.png
Alexander Makeev, объясните пожалуйста, почему нельзя выбрать эмуляцию "Delta C" в эмуляторе ?
только ula от дельты выбирается, а пзу нет, в результате на начальном экране я вижу что угодно но только не "С 1989 Delta C".
как это можно исправить ?
память у дельты обычная, поэтому можно взять 48к модуль и подложить свое пзу. Для этого нужно создать папку ROMS рядом с эмулятором, положить туда пзу от дельты и скопировать файл ~mapping.xml из ROMS.PAK. После этого открыть ~mapping.xml в текстовом редакторе, найти настройки для модуля памяти ZX48, они выглядят так:
в данном случае используется образ пзу 48.rom, заменяешь 48.rom на имя файла с образом пзу от дельты и готово. :smile:Код:<Model name="ZX48">
<Page name="SOS" image="48.rom" offset="0x0000" length="0x4000"/>
</Model>
не помогает.
пзу дельты всёравно не появляется в списке, а если поставить какое-либо другое пзу с ula от дельты то наблюдаем вот такую картину:
http://img600.imageshack_.us/img600/3310/94819651.jpg
также прилагаю созданый "roms.pack"
картинка такая потому что у ula дельты ширина бордюра по бокам больше чем у остальных, при этом включено масштабирование Fixed Pixel Size и двойная ширина не умещается в области окна, поэтому масштаб переключается на одинарную ширину. Не доглядел когда прописывал одинаковые размеры всем улам, в след. версии исправлю :)
если сдеалать size 200% все станет на свои места.
По поводу ромов, в след. версии постараюсь сделать возможность задавать имя набора ромов в ромпаке в конфигурации машин.
обновил до версии 2731:
- fix ULA Delta border size
- ROM loader refactoring (note that ~mapping.xml schema was changed!);
- add configurable romset for memory modules;
- add configurable shadow rom for Pentagon 512/1024 (manual vmz edit only)
- fix default state for View->Display Icon setting
- fix Cannot create vmz file issue
- add prompt "Please install DirectX End-User Runtime and try again"
- fix PROFI ULA renderer (added top&bottom border, fix multicolor)
- Alt key without menu activation (works when input captured by double click)
- pentagon power on chess board emulation :)
теперь ромсеты можно задавать через VMZ файл, нужно просто указать имя нужного ромсета в аттрибуте romSet. Список ромсетов задается в ~mapping.xml внутри ROMS.PAK (это ZIP архив).
Там-же можно отключить сброс в shadow пзу для pentagon 512/1024 (прописать enableShadow="False").
При захвате ввода (двойным кликом по окну эмулятора), нажатие кнопки Alt уже не приводит к активации меню.
http://savepic.org/3445538.png
Есть небольшое предложение - вообще все писать на английском, а не только обновления. В конце концов, мы же английские люди, и русский язык нам совершенно ни к чему.
технарям наверно проще на английском. меня больше пугают сокращения типа НГМД
Попробовал использовать SMUC hdd , которым я в Unreal пользуюсь. Прописал геометрию и файл в ZXMAK2.vmide. Вроде всё подключилось, но в мониторе получил такое:
http://img19.imageshack_.us/img19/54...pboard02uw.png
в логе ошибка:
Цитата:
Error 18:45:07.080 *** unknown ATA cmd #62 ***
в ZXMAK2.LogAgent.Error(String fmt, Object[] args)
в ZXMAK2.Hardware.General.AtaDevice.exec_ata_cmd(Byt e cmd)
в ZXMAK2.Hardware.General.AtaDevice.write(Int32 n_reg, Byte data)
в ZXMAK2.Hardware.General.AtaPort.write(Int32 n_reg, Byte data)
в ZXMAK2.Hardware.General.SmucDevice.writeIde(UInt16 addr, Byte value, Boolean& iorqge)
в ZXMAK2.Interfaces.BusWriteIoProc.Invoke(UInt16 addr, Byte value, Boolean& iorqge)
в ZXMAK2.Engine.BusManager.WRPORT(UInt16 addr, Byte value)
в ZXMAK2.Engine.Z80.Z80CPU.ED_OUTCR(Byte cmd)
в ZXMAK2.Engine.Z80.Z80CPU.ExecED(Byte cmd)
в ZXMAK2.Engine.Z80.Z80CPU.ExecCycle()
в ZXMAK2.Engine.BusManager.ExecCycle()
в ZXMAK2.Engine.SpectrumConcrete.ExecuteFrame()
в ZXMAK2.Engine.VirtualMachine.runThreadProc()
в System.Threading.ThreadHelper.ThreadStart_Context( Object state)
в System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()
покажи конфигурацию машины
Возможно смук конфликтует с каким-то другим девайсом? Я помню такое наблюдал когда какой-то порт смука кем-то был занят. В итоге часть данных не доезжает до смука и он воспринимает данные как команды
У меня смук на скорпионе работает:
http://savepic.org/3447610.png
как оказалось, достаточно заменить isReadOnly= с "True" на "False" и всё нормально работает.Цитата:
Сообщение от Alexander Makeev
а, да, есть такое - если включен readOnly, то при попытке записи эмулятор просто отменяет команду и выставляет ошибку, а монитор скорпиона не видит ошибку и продолжает писать данные для записи, в итоге они как новая команда обрабатываются...
В данном случае не совсем ясно как корректнее обрабатывать readOnly, чтобы прошивка увидела ошибку при неудачной попытке записи. У настоящих винтов readOnly нету :)
еще раз обновил до 2732, небольшой баг фикс :)
- исправлен баг менюшки View (в предыдущей версии сбивалась настройка Scale при любом изменении других настроек)
- добавлена возможность выбора ромсета из окна настройки машины
- отладчики теперь в отдельной категории устройств
http://savepic.org/3468108.png
это и то, что isReadOnly идёт после isCdrom="False" реально сбивает с толку.Цитата:
Сообщение от Alexander Makeev
еще обновление 2733
Добавлены устройства PROFI COVOX и PENTAGON COVOX
http://savepic.org/3461954.png