Здравствуйте, товарищи. После бурной работы над эмулем Dendy на J2ME (Nescube v1.2) я решил паралельно с написанием новой версии этого эмуля потихоньку уделять время своей другой мечте - сделать достойный эмуль ZX для телефонов с J2ME.
К новому эмулю у меня есть несколько ключевых требований:
- эмуляция памяти 48/128 Кб;
- поддержка TR-DOS (работа с файлами trd и scl);
- эмуляция AY в виде простенькой пищалки через MIDI-устройство телефона;
- эмуляция двух экранов конфигурации 128 без поддержки бордерных/мультиколорных эффектов (так будет быстрее работать);
- различные джойстики спековского стандарта + клава (пока еще не знаю, как реализовать наилучшим образом).
Что есть на данный момент:
1.Когда-то была написана мной альфа spectrum 48 (грузит sna). Время было протрачено на нее уйма, однако быстродействие невероятно низкое. Сейчас я взялся второй раз за эту работу, имея за плечами ценнейший опыт по написанию самого быстрого эмуля денди на J2ME.
2.Найден эффективный (по предварительным оценкам) алгоритм работы с памятью, который при минимальном количестве операций по доступу к памяти обеспечивает возможность реализовать работу ПЗУ TR-DOS (именно с этим самая большая заморочка при желании организовать максимально быстрый доступ к памяти). Так же этот алгоритм без проблем позволяет организовать страничную память.
3.Сейчас взялся за написание основы эмулятора - высокоэффективной эмуляции процессора Z80 + управления памятью (это 90% всего кода эмулятора).
Опыт подсказывает, что все таки реально получить эмулятор ZX-Spectrum с достаточно неплохой производительностью (не мение 25 FPS). Но насколько я прав - покажет только время.
Всвязи со всем вышеупомянутым прошу у вас помощи. Я давно отошел от спектрума и неплохо подзабыл его железо. Не хочется тратить время в пустую и искать какие-то материалы по железу, поэтому прошу вас - если у кого на примете есть приличная дока по железу спека (в формате html, doc, txt) или ссылки на ресурсы по теме - поделитесь, поможете поекту. Я когда-то здесь видел такую доку, но не могу вспомнить, что это было и где.
Если у вас есть предложения или соображения по теме, высказывайте их здесь, я готов вести диалог.