Поэтому я решил написать эмулятор SMS (Sega Master System) с нуля на javascript (аплодисменты).

Почему СМС?

  1. Потому что он красочный (64 цвета с прокруткой строк, графические режимы, много тайлов)
  2. Из-за телевизионных роликов 80-х с Уолтером Зенгой
  3. Из-за Соника и Outrun
  4. Потому что… о, да ладно, посмотрите на этот дизайн. Разве это не самая симпатичная консоль во вселенной?

Javascript должен быть весьма удобен для такого рода приложений (раньше я делал эмуляторы на javascript). Кроме того, на этот раз я попытаюсь создать довольно краткое ядро ​​Z80 (примечание: я написал это до того, как посмотрел коды операций Z80 с несколькими префиксами) (примечание 2: с 560 реализованными кодами операций исходный файл ядра Z80 составляет 7374 строки). длинный и подсчитываемый) (примечание 3: ядро ​​процессора x86, которое я написал на Rust, имело длину менее 5000 строк — я должен пересмотреть свое определение краткого) и попытаться протестировать отдельные инструкции по мере продвижения (у меня есть пару наборов тестов под рукой). Код конечно же будет опубликован на GitHub (как и другие эмуляторы).

Ядро Z80 не будет обеспечивать циклическую точность. Я думаю (я надеюсь), что 99% программного обеспечения может работать без такой степени точности.

Требуемые функции: у него должен быть хороший отладчик, с множеством функций, точками останова, запуском/паузой, просмотрщиком памяти. То есть сложнее, чем мои предыдущие отладчики. Посмотрим, как далеко мы продвинемся с этим.

Итак, приступим к основной структуре программы.