Ну я понимаю тебя, что ты хочешь, чтобы все делали правильно, по всем канонам опенсорса. Просто, есть разные причины, по которым это не всем подходит. Не нам судить.
Витамин, почему тебя так это волнует? Пусть делает как хочет, как считает нужным. Нет? Я думаю, если у Weiv возникнут какие-то потребности, он их реализует без лишних советов.
ei: halt: di
out (c),h ;chip1
out (c),L ;reg 0
ld b,e
out (c),c ;val #FD
ld b,d
out (c),b ;chip2
out (c),l ;reg 0
ld b,e
out (c),h ;val #FE
ld b,d
out (c),h ;chip1
out (c),L ;reg 0
in h,(c)
out (c),b ;chip2
out (c),L ;reg 0
in a,(c)
xor h
jr nz,gotcha
ld a,4
inc h
and h
gotcha
; 0 — no chip (FF FF)
; 4 — single AY (FE FE)
; 3 — double AY (FD FE)
; 1 — TS, no 1st (FF FE)
; 2 — TS, no 2nd (FD FF)
Формат такой записи может быть открытым (чтобы были сторонние инструменты просмотра/анализа). Движок такого проигрывателя — также может быть открытым, чтобы эти инструменты анализа создавать.
Тогда получим такую связанную умозрительную полуоткрытую систему: платный закрытый эмуль, который может записывать эти состояния и вообще всячески крут по разным направлениям. И открытый инструментарий (формат записи, движок проигрывания и скриптования записи), который «притягивает» и привязывает разработчиков к основе — к Spectramin'у.
Все эти репозитории и прочая — не серебряная пуля, их использование не даст никакой гарантии хорошего результата. А вот неиспользование может породить кучу проблем, забивание на которые в длительной перспективе может привести к умиранию проекта. Это как писать говнокод — быстро и просто, пользователи довольны (им же похрен на внутренности, главное чтоб работало и задачи выполняло). Но долго такой проект жить и развиваться не сможет.
С точностью до строки кода? А возможность откатить изменения протокол дает? А работать с разных машин и безболезненно сливать изменения?
Если что, на bitbucket.org есть приватные бесплатные репозитории. Бонусом там же можно выкладывать бинари для скачивания и делать несложные лендинги. На github приватные репозитории платные, $7/mo.
Что касается меня, то я бы очень сильно оценил что-то в этом направлении hype.retroscene.org/blog/dev/73.html
Как доведённая до абсурда идеала, это могло было бы быть так:
1) потактовая запись состояния всего эмулируемого оборудования (винчестеры и ОЗУ нынче огромны и запись состояния даже потактово, даже в прямом виде без сжатия на лету влезет без проблем).
2) проигрывание этого состояния (с любой дискретизацией, от фрейма до такта) с возможностью скриптинга (LUA или JS — что угодно) — позволит проанализировать весь путь выполнения программы.
2.1) скриптинг с возможностью отрисовки дополнительных окон — даст возможность визуализации участков памяти (графики, текста,
игровой карты)
2.2) потактовый просмотр луча отрисовки — тоже весёлая штука.
3) ну и поддержка отладчиком всяких метаинформации о метках и проч от sjasm (или других компиляторов).
Ориентировка на hardcore-аудиторию может, конечно сузить круг покупателей, но зато задачи интересные. Как-то так.
<зануда_mode>
С учетом того, что всего эмулей с открытым исходным кодом было даже меньше двух десятков, ЕМНИП, «десятки оставленных за скобками» эмуляторов как раз и будут всеми.
</зануда_mode>
Ладно, принято:)
Коварный вопрос от опенсорсного фанатика с подвохом: ты разработку ведешь в приватном репозитории или по-старинке, на рабочем компе и бекапы в архивах?
Можно добавлять 3-ий AY по стандарту.
Ну пусть будет «мне просто делать нехрен, вот решил тут умника из себя построить».
Пойдет?
ld bc,#fffd
ld hl,#fe00
ei: halt: di
out (c),h ;chip1
out (c),L ;reg 0
ld b,e
out (c),c ;val #FD
ld b,d
out (c),b ;chip2
out (c),l ;reg 0
ld b,e
out (c),h ;val #FE
ld b,d
out (c),h ;chip1
out (c),L ;reg 0
in h,(c)
out (c),b ;chip2
out (c),L ;reg 0
in a,(c)
xor h
jr nz,gotcha
ld a,4
inc h
and h
gotcha
; 0 — no chip (FF FF)
; 4 — single AY (FE FE)
; 3 — double AY (FD FE)
; 1 — TS, no 1st (FF FE)
; 2 — TS, no 2nd (FD FF)
Binary Love:
766 — 10
d87 — 9
eaf — 7
000 — 6
dbd — 6
877 — 4
25e — 3
da4 — 2
791 — 2
671 — 1
636 — 1
Speccy 2:
с21 — 10
500 — 10
1fe — 9
3c6 — 8
63c — 8
ceb — 7
1ff — 6
c25 — 6
d59 — 6
107 — 5
ad6 — 4
01 — 766a5b9539bcb8e520ab672550ce1041.wav
02 — eaf72a8c8d9c8a8255ec019e77f5d87d.wav
03 — d87a939d81bf14ec7371bf26211f17ff.wav
04 — dbddb06fdfc90730ae074fa8fd4eefbf.wav
05 — 25e42383f5519abb14853630f05e2faa.wav
06 — 877e06f092043f1e899dbe7a9274550b.wav
07 — 000f0d1f000fbcfa29a66f9b06f3b272.wav
08 — 79124877eaa7919087bb35f37f560211.wav
09 — da45b7e6382cb11b06ad6f9953f30b00.wav
10 — 636df7829943e84b43b87ac2166df856.wav
11 — 6715a48a71d09139da510e6ebd578e8b.wav
Speccy 2
01 — c21076281d6edfd50f9b21579add1baf.wav
02 — 5007b1992e40e0c1f52db9c4dc0ac4f2.wav
03 — 1fe1daf511b2986fd9279667d406d945.wav
04 — 1ff35d9e36d5e8993d49fe6b5ca9269e.wav
05 — 3c6658aa6187787fc45cb594d2621704.wav
06 — 63c30f2248592a57a1faeb623e71ec68.wav
07 — ceb1b8235330a6e1989168805db72f19.wav
08 — c25f5003f38bb5461e72275818229787.wav
09 — 10700a827360bbec25dc50c3e33b23c6.wav
10 — d59c8664b280c4a82b77dc50c0796e4d.wav
11 — ad6b127902e9f6e5fefb7369cc9f3532.wav
Результаты моих прослушиваний по убыванию качества на мой слух.
Сравнивал в наушниках AKG 271MK II если это поможет :D
Тогда получим такую связанную умозрительную полуоткрытую систему: платный закрытый эмуль, который может записывать эти состояния и вообще всячески крут по разным направлениям. И открытый инструментарий (формат записи, движок проигрывания и скриптования записи), который «притягивает» и привязывает разработчиков к основе — к Spectramin'у.
Все эти репозитории и прочая — не серебряная пуля, их использование не даст никакой гарантии хорошего результата. А вот неиспользование может породить кучу проблем, забивание на которые в длительной перспективе может привести к умиранию проекта. Это как писать говнокод — быстро и просто, пользователи довольны (им же похрен на внутренности, главное чтоб работало и задачи выполняло). Но долго такой проект жить и развиваться не сможет.
Если что, на bitbucket.org есть приватные бесплатные репозитории. Бонусом там же можно выкладывать бинари для скачивания и делать несложные лендинги. На github приватные репозитории платные, $7/mo.
Как доведённая до
абсурдаидеала, это могло было бы быть так:1) потактовая запись состояния всего эмулируемого оборудования (винчестеры и ОЗУ нынче огромны и запись состояния даже потактово, даже в прямом виде без сжатия на лету влезет без проблем).
2) проигрывание этого состояния (с любой дискретизацией, от фрейма до такта) с возможностью скриптинга (LUA или JS — что угодно) — позволит проанализировать весь путь выполнения программы.
2.1) скриптинг с возможностью отрисовки дополнительных окон — даст возможность визуализации участков памяти (графики, текста,
игровой карты)
2.2) потактовый просмотр луча отрисовки — тоже весёлая штука.
3) ну и поддержка отладчиком всяких метаинформации о метках и проч от sjasm (или других компиляторов).
Ориентировка на hardcore-аудиторию может, конечно сузить круг покупателей, но зато задачи интересные. Как-то так.
Внешний репозиторий на ура решает проблемы вида «сдох винт и все нажитое непосильным трудом» и «когда и зачем я писал этот код?»
С учетом того, что всего эмулей с открытым исходным кодом было даже меньше двух десятков, ЕМНИП, «десятки оставленных за скобками» эмуляторов как раз и будут всеми.
</зануда_mode>
Ладно, принято:)
Коварный вопрос от опенсорсного фанатика с подвохом: ты разработку ведешь в приватном репозитории или по-старинке, на рабочем компе и бекапы в архивах?