Emu80 — 2013
Moderator: Pyk
-
- Maniac
- Posts: 252
- Joined: 21 Jan 2003 04:08
Emu80 — 2013
Всем привет!
Я решил реанимировать, наконец, свой эмулятор. К сожалению, до добавления новых фич придется существенно переработать его внутреннюю структуру — там практически все ядро осталось еще с ДОС-версии ассемблерным. В общем, как всегда: задумок много, свободного времени мало, но потихоньку работаю. Сейчас очень нужно будет тестирование, поскольку переписывание ассемблерного кода чревато ошибками.
Собрана также linux-версия. В свое время я так и не отладил ее до конца, сейчас вроде бы версия практически рабочая, наблюдаются только некоторые проблемы со звуком. В общем, также требуется тестирование. С мультиплатформенностью будет чуть проще после планируемого перехода на SDL2 - там реализовали некоторые вещи, которых очень не хватало в SDL.
Исходники на github:
https://github.com/vpyk/emu80
Последние бинарные сборки для ознакомления и предварительного тестирования (linux-сборки требуют наличия библиотеки libsdl):
3.11 alpha:
Windows-версия: http://emu80.org/files/Emu80SDL313_win.zip
Linux-сборка (x86): http://emu80.org/files/Emu80SDL313_lnx.tgz
Что нового:
3.10 (08.04.2013):
- linux-версия
- немного исправлена цветовая палитра (не до конца)
- полностью переписана эмуляция звука (в т.ч. таймера ВИ53)
- разные внутренние изменения
3.11 (01.05.2013):
- улучшена эмуляция таймера ВИ53
- внутренние изменения
3.13 (14.06.2013):
- улучшена эмуляция процессора (переход на новое ядро эмуляции 8080 Александра Демина)
По мере переработки кода буду выкладывать новые сборки для тестирования. С удовольствием отвечу на вопросы, а также выслушаю замечания, пожелания на будущее и т. п.
Я решил реанимировать, наконец, свой эмулятор. К сожалению, до добавления новых фич придется существенно переработать его внутреннюю структуру — там практически все ядро осталось еще с ДОС-версии ассемблерным. В общем, как всегда: задумок много, свободного времени мало, но потихоньку работаю. Сейчас очень нужно будет тестирование, поскольку переписывание ассемблерного кода чревато ошибками.
Собрана также linux-версия. В свое время я так и не отладил ее до конца, сейчас вроде бы версия практически рабочая, наблюдаются только некоторые проблемы со звуком. В общем, также требуется тестирование. С мультиплатформенностью будет чуть проще после планируемого перехода на SDL2 - там реализовали некоторые вещи, которых очень не хватало в SDL.
Исходники на github:
https://github.com/vpyk/emu80
Последние бинарные сборки для ознакомления и предварительного тестирования (linux-сборки требуют наличия библиотеки libsdl):
3.11 alpha:
Windows-версия: http://emu80.org/files/Emu80SDL313_win.zip
Linux-сборка (x86): http://emu80.org/files/Emu80SDL313_lnx.tgz
Что нового:
3.10 (08.04.2013):
- linux-версия
- немного исправлена цветовая палитра (не до конца)
- полностью переписана эмуляция звука (в т.ч. таймера ВИ53)
- разные внутренние изменения
3.11 (01.05.2013):
- улучшена эмуляция таймера ВИ53
- внутренние изменения
3.13 (14.06.2013):
- улучшена эмуляция процессора (переход на новое ядро эмуляции 8080 Александра Демина)
По мере переработки кода буду выкладывать новые сборки для тестирования. С удовольствием отвечу на вопросы, а также выслушаю замечания, пожелания на будущее и т. п.
Last edited by Pyk on 14 Jun 2013 08:15, edited 7 times in total.
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Emu80 — 2013
Как ты таймер заэмулил? Подробности можно?Pyk wrote: - полностью переписана эмуляция звука (в т.ч. таймера ВИ53)
...
С удовольствием отвечу на вопросы, а также выслушаю замечания, пожелания на будущее и т. п.
iLavr
-
- Maniac
- Posts: 252
- Joined: 21 Jan 2003 04:08
Собственно, на данный момент все осталось практически в том же состоянии, как и было - эмулируются режимы 3 и 0 таймера (может быть, только чуть более полно), дискретность счета по прежнему 1/44100 с. Однако код полностью переписан, поэтому смогу без проблем улучшать при необходимости эмуляцию таймера.
Сейчас переписываю основной цикл эмулятора, после этого состояние счетчиков можно будет считывать в реальном времени.
Сейчас переписываю основной цикл эмулятора, после этого состояние счетчиков можно будет считывать в реальном времени.
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Maniac
- Posts: 252
- Joined: 21 Jan 2003 04:08
Да, эмулируются все 3 канала в режимах 0 и 3. При этом подразумевается, что на входы GATE всех счетчиков всегда подается разрешающий счет уровень. На всех входах CLK подразумевается тактовая частота компьютера, только для РК-86 эмулируется подача на CLK2 сигнала с выхода OUT1. Режим BCD пока не поддерживается, но несложно добавить при необходимости. Всеми счетчиками можно пользоваться для отсчета времени (если устраивает грубая пока дискретизация), независимо от того, используется ли конкретный счетчик для генерации звука.
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
А я себе немножко по другому написал таймер ВИ53.Pyk wrote:Всеми счетчиками можно пользоваться для отсчета времени (если устраивает грубая пока дискретизация),
независимо от того, используется ли конкретный счетчик для генерации звука.
Канал 0 - использует реальный канал 0 таймера IBM с пересчётом для часов.
Канал 1 - виртуальный, использует данные реального канал 0 таймера IBM.
Канал 2 - использует реальный канал 2 таймера IBM.
Ну и всякая обработка - чтобы было соответствие и учет соотношения 1,19318МГц -
в IBM и 2МГц - в "Специалисте_МХ".
В "Специалисте_МХ" на входы GATE всех счетчиков также всегда подается
разрешающий счет уровень.
Last edited by Lavr on 08 Apr 2013 14:08, edited 1 time in total.
iLavr
-
- Admin
- Posts: 24011
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Maniac
- Posts: 252
- Joined: 21 Jan 2003 04:08
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Maniac
- Posts: 252
- Joined: 21 Jan 2003 04:08
-
- Admin
- Posts: 24011
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 24011
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 24011
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley