NSChip - Chip8 эмулятор для ZX Spectrum 48
NSChip
На данный момент поддерживается (пока только на уровне перекомпиляции сорцов)
Chip 8 + режимы совместимости с разными трактованиями его команд (включая идиотизм octo)
из поддержки super chip только RPL флаги и дополнительный набор крупных шрифтов
Режими масштабирования 1х, 2х, 4х
Чересстрочник для повышения скорости и снижения мерцания
Frame skip
Ограничение на число команд за фрейм
Смена частоты таймеров (правда, при частоте дискретизации в 50Гц)
Смена шрифтов (на них тоже нет стандарта)
Примитивное биперное жужжание
Есть возможность написания своих биперных движков (в отличие от PC-шных эмуляторов) так как спецификация не отрицает того, что можно быстро щелкать пищалкой
Несколько speedhack-ов которые не дают практически никакого прироста скорости
Видео память и стек лежат за пределами адресуемой памяти
но запись в них возможна так же как и убийство эмулятора...
Чего нет
Нормального sprite wrap-а
Стек на данный момент не эмулируется
в место него используется стек z80
так что можно легко убить эмулятор стеком
Так как работа с vf нормально нигде не задокументирована.
то возможны всякие грабли со всякими add vf,vf.
режимов совместимости как в Octo для vf пока нет.
Управление
клавиши мапятся на
Код:[1][2][3][C] > [1][2][3][4] [4][5][6][D] > [Q][W][E][R] [7][8][9][E] > [A][S][D][F] [A][0][B][F] > [Z][X][C][V]Что планируется в следующих версиях, которые выйдут очень не скоро
-поддержка super chip (с его 128х64)
-поддержка xo chip (с его 4 цвета на точку и звуком
(но будет ли поддержана его адресация всех 64К неизвестно))
-поддержка chip 8 hires 64х64 итд (если найду эмулятор который его поддерживает, или нормальное описание (предложение а давайте проверять а не лежит ли в памяти игра использующая hires и включать его если лежит... вызывает у меня...))
-возможно частичная поддержка mega chip
основная проблема отсутствие, какого либо эмулятора
жирный и цветной экран
и возможность адресовать 256T/70050Е памяти
любые другие расширения
[свернуть]
Как запускать свои программы на старой версии NSChip
для Windows XP
1. положить ch8\c8 файлы в папку nschip\fastchip
2. drag&drop-нуть их на chip2sna.bat (при большом количество кинутых файлов выдаст ошибку!!!!)
3 .....
4 .....
5 PROFIT!!!
если это не работает
находим в самом конце nschip.asm/fastchip.asm
строки
и подменяем chiptemp.bin на свой ****.ch8Код:org $8200 incbin chiptemp.bin
или переименовываем свой ****.ch8 в chiptemp.bin и ложим его в nschip_src/fastship_src
после чего сами компилируем nschip.asm/fastchip.asm
[свернуть]
SJ-ChipASM
Зачем он вообще нужен
для того чтобы получить все плюшки sjasm-а
такие как lua
и не нужно вылавливать новых глюков очередного левого компилятора
большая часть команд асм-а должна работать
[свернуть]
Компилирует следующие команды
[свернуть]
Примечания
Ахтунх!!!
sjasm чувствителен к регистру
по этому никаких заборчиков
команды cLs, ClS, Cls не будут скомпилированы!!!
только cls, CLS
желательно писать команды только мелким шрифтом!
не желательно использовать название меток содержащие ch8_
регистры именуются
v0-vF именование регистров не чувствительно к регистру! (можно и vf,vF,VF,Vf)
v0-v15
местами могут прокатить
$0-$F
0-F
но лучше использовать v0-vF
некоторые команды z80 style не поддерживается (помечены красным в таблице)
их нужно менять автозаменой
[i]\(i) следует менять на iIi
так же впилена проверка на простейшие ошибки\очепятки
правда толку от них не много
mov v0,453
выдаст "error mov vx,xx vx > FF"
и скомпилируется как 60С5
если размер кода превысит $E00
вылезет "error out of memory"
">$FFF !!!!!!"
будет когда полученный код уже физически нельзя запустить на chip 8
есть 2 варианта компиляции команд shr\shl
ch8_op8x06mode = 0 shr vx скомпилируется как 8x06
ch8_op8x06mode = 1 shr vx скомпилируется как 8xx6 (shr vx,vx)
ch8_op8x0Emode = 0 shl vx скомпилируется как 8x0E
ch8_op8x0Emode = 1 shl vx скомпилируется как 8xxE (shl vx,vx)
ни один из них не гарантирует правильную работу на всем
в первом случае команда может трактоваться как sh* vx,v0 и результат окажется не в том регистре
во втором случае команда вообще может не распознаться (будет ли она просто пропущена или повесит эмуль не известно)
при необходимости скомпилировать команды shr vx,vy shl vx,vy
используем
defb $8x ,$y6 ;shr vx,vy
defb $8x ,$yE ;shl vx,vy
привет криворуким писателям мануалов
и писателям sjasm-а с его фиксированным количеством параметров для макросов...
[свернуть]
Последние версии (на 2020.11.05)
NSChip r0173
http://www.mediafire.com/file/d9b77d..._r0173.7z/file
SJ-ChipASM_r0069
http://www.mediafire.com/file/flqite..._r0069.7z/file
старый пак всё в одном на 2017.03.13
http://www.mediafire.com/file/uyl23k...70313.zip/file
в него входят
NSChip - эмулятор для спека
FastChip - более быстрый эмулятор для спека но с меньшими возможностями
SJChipASM - набор макросов для sjasmplus для компиляции chip8 кода
Azunyan8_v3 - эмулятор для ПЦ с отладчиком
Fish 'N' Chips - еще один эмулятор для ПЦ
examples - набор софта для chip8 и готовые sna для запуска
OTLA - программа для ускоренной загрузки sna на реальном железе
Monobeep - простой биперный движок для chip8 + сорец
beep - примеры его звучания
chipenstein_den00bed_mod - немного допиленный движок вульфа + сорец
trip8_den00bed - демкААА поправленная для нормальной работы + сорец
[свернуть]