Эмулятор ZX Spectrum
-
вот решил попробовать написать свой эмуль спектрума. правда пока написал немного.
- Attachments
-
-
e80.zip (15.4 KiB)Downloaded 1071 times
-
В архиве sna файлы, 3д танк дуэль, наркопол и симсити
- Attachments
-
-
SNA.7z (52.41 KiB)Downloaded 706 times
-
Можешь в др. архив заталкать? (tgz, tbz2, zip, rar.)
..bw
..bw
Странно, архив почемуто поврежден, вечером перезалью.
Простите.
Простите.
Ко всему добавил еще дандар2
- Attachments
-
-
gamessna.rar (82.27 KiB)Downloaded 685 times
-
Ой, как хорошо то!
Спасибо за эмуль!
Albom, расскажи немного подробнее о проекте - что хочешь еще сделать, на чем делаешь и т.д. Мне интересно, т.к. сам я эмуляторщик
Спасибо за эмуль!
Albom, расскажи немного подробнее о проекте - что хочешь еще сделать, на чем делаешь и т.д. Мне интересно, т.к. сам я эмуляторщик
OMGWTF, зачем пустышки выкладывать?
в будущем за такое буду закрывать тему.
в будущем за такое буду закрывать тему.
ALLiGaToR
Почти всё это есть в архиве, в файле readme.txt, но всё же повторюсь, ведь не все этот файл скачивают. Я хочу сделать минимальный эмулятор ZX Spectrum 48. Эмуляция процессора Z80 (опкоды в файле z80sean.txt), без поддержки звукового процессора AY, загрузка только файлов SNA (состояние регистров и образ памяти). Пишу его на fasm (писал на C, потом на С--, но потом решил, что на ассемблере будет лучше). У меня есть много исходников эмулей спектрума на С, паскале (делфи), асме, java, но просто портировать их, а тем более сдирать чужой код я не хочу. С платформой спекки я уже разобрался, составил алгоритм эмуляции, осталось лишь набрать реализацию основных команд и начать отлаживать эмуль, доводя его до работоспособного состояния. В принципе, любой может мне помочь, реализовав какие-нибудь команды. Авторство будет сохранено.
Почти всё это есть в архиве, в файле readme.txt, но всё же повторюсь, ведь не все этот файл скачивают. Я хочу сделать минимальный эмулятор ZX Spectrum 48. Эмуляция процессора Z80 (опкоды в файле z80sean.txt), без поддержки звукового процессора AY, загрузка только файлов SNA (состояние регистров и образ памяти). Пишу его на fasm (писал на C, потом на С--, но потом решил, что на ассемблере будет лучше). У меня есть много исходников эмулей спектрума на С, паскале (делфи), асме, java, но просто портировать их, а тем более сдирать чужой код я не хочу. С платформой спекки я уже разобрался, составил алгоритм эмуляции, осталось лишь набрать реализацию основных команд и начать отлаживать эмуль, доводя его до работоспособного состояния. В принципе, любой может мне помочь, реализовав какие-нибудь команды. Авторство будет сохранено.
Тема интересная, есть и некоторый личный опыт (знаю у многих тут есть опыт отношений с Z80/i8080), если есть вопросы - спрашивай, чем сможем - поможем. Но не стоит выкладывать пустышки, с таким же успехом можно было выложить example.asm
Кроме того не думаю что стоит зацикливатся только на 48ом и SNA образах, если только на первых порах.
Кроме того не думаю что стоит зацикливатся только на 48ом и SNA образах, если только на первых порах.
Ghost
Извини, что так получилось с архивом. Просто я хотел, чтобы понимающие люди могли оценить то, как я начал писать код. Будет очень обидно, если алгоритм в самом начале окажется неправильным. Дело-то для меня новое. Но если здесь принято выклатывать только 100% работающий код, то буду это правило соблюдать.
У меня есть пока три вопроса:
1) как лучше организовать триггеры (по 1 биту каждый) IFF1 и IFF2?
2) как организовать задержки, чтобы запускать на процессорах с различной частотой?
3) что это за опкоды 0x10, 0x18, 0x20, 0x28?
Извини, что так получилось с архивом. Просто я хотел, чтобы понимающие люди могли оценить то, как я начал писать код. Будет очень обидно, если алгоритм в самом начале окажется неправильным. Дело-то для меня новое. Но если здесь принято выклатывать только 100% работающий код, то буду это правило соблюдать.
У меня есть пока три вопроса:
1) как лучше организовать триггеры (по 1 биту каждый) IFF1 и IFF2?
2) как организовать задержки, чтобы запускать на процессорах с различной частотой?
3) что это за опкоды 0x10, 0x18, 0x20, 0x28?
Ну не 100% но хотябы както работающий.
1) по твоему желанию, но ИМХО байтами и быстрее и кода меньше (хотя не всегда опятьже удобно...)
3) смотри опкоды здесь а описания здесь
0x10
DJNZ e
Dec., Jump Non-Zero
B=B-1 till B=0
0x18
JR e
безусловный переход (PC=PC+e)
0x20
JR NZ,e
условный переход, если ne (не равно)
0x28
JR Z,e
условный переход, если z (ноль)
1) по твоему желанию, но ИМХО байтами и быстрее и кода меньше (хотя не всегда опятьже удобно...)
3) смотри опкоды здесь а описания здесь
0x10
DJNZ e
Dec., Jump Non-Zero
B=B-1 till B=0
0x18
JR e
безусловный переход (PC=PC+e)
0x20
JR NZ,e
условный переход, если ne (не равно)
0x28
JR Z,e
условный переход, если z (ноль)
1) Наврное быстрее все же двойными словами (32 или 64 бита :-). Сделай макросами и для работы используй только их. Если что, то не придется вносить изменения по всему коду, ограничешься 2-3 макросами (процедурами).
2) Можно попробовать использовать rdtsc.
..bw
2) Можно попробовать использовать rdtsc.
..bw
rdtsc не зависит от частоты, поэтому это не самая лучшая идея
Ну так давайте наконец-то сделаем таймеры в ядре
in code we trust
Как-то ведь работают платформенно-независимые эмуляторы приставок. Значит есть способ решить проблему скорости эмуляции...
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!
Kolibri is best operation system in the world!
Who is online
Users browsing this forum: No registered users and 0 guests