PDA

Просмотр полной версии : UKNCBTL / BKBTL: нужна ли SDL-версия?



nzeemin
16.09.2010, 15:10
Вопрос такой: нужны ли людям SDL-версии эмуляторов UKNCBTL и BKBTL?

Опрос создан в связи с тем что я накопил некоторый опыт написания под SDL и в принципе готов сделать SDL фронтэнд для своих эмуляторов.

svofski
17.09.2010, 14:57
SDL версия может быть интересна тем, что ее можно будет собирать под разные экзотические девайсы на ARM-ах с маленькими экранчиками типа Zipit'a и Dingoo.

PheeL
17.09.2010, 15:47
Проголосовал за. Поскольку теперь сам являюсь обладателем Caanoo и настроил под неё тулчейн, был бы рад чистым SDL версиям проектов.

unbeliever
17.09.2010, 17:10
БК оченема нужне насяльника! Оченема!!!!

Doronetty
18.09.2010, 06:58
Считаю, что самое главное - довести эмулятор до ума, тем более самое главное, связанное с БК-0011М, ещё впереди - это и корректная реализация AY (очень непростой девайс, даже в известных эмуляторах Спектрума далеко не всегда корркетно реализованный), и мультиколор, и палитры (у меня например в качестве монитора ЖК HD телевизор с рабочей частотой 50Гц (а ведь это идеальная частота экрана для отображения всякоразных эффектов), но ни один из имеющихся эмуляторов не отображает корректно эффекты той же известной мегадемки Insult, цвета не "смешиваются, а "расслаиваются"!). На всяких Zipit'a и Dingoo эти проблемы нерешаемы в принципе, там главное, чтобы "игры бегали". И "ловле блох" типа попиксельной отрисовки экрана никто внимания уделять не станет. А ведь для БКшников (Спектрумистов, Вектористов, Орионщиков и т.д.) старой закалки важны именно вышеперечисленные "мелочи", без реализации которых эмулятор никогда не станет "Эмулятором" с Большой Буквы!
Посему мой ответ однозначный - "Не нужно портировать, нужно расширять и улучшать Windows-версию"

Q-Master
18.09.2010, 08:17
А у кого нет Видновоза?

Doronetty
18.09.2010, 08:22
Как это "нет"? Может ещё "а у кого нет PC"? :v2_scare:

P.S: Ни одного чела (притом, что кучу друзей имею программистов и даже эмуляторщиков) в жизни не встречал, у кого бы не было Виндов...

nzeemin
18.09.2010, 09:29
Отчётливо видно, что голосование разделило людей на две группы. Одни за создание SDL-версий, другие за то чтобы потратить это время (моё время 8-) на улучшение качества эмуляции. Кстати, забавно что никто не отметил ответ про то что достаточно Qt-версии -- видимо, недостаточно.

Я прекрасно понимаю, что мой эмулятор БК пока ещё весьма и весьма далёк от идеала -- это верно, и здесь мне предстоит ещё масса работы. В эмуляторе УКНЦ также ещё можно и нужно многое реализовать.

Думаю, что я всё же буду развивать оба пути -- и SDL-версию делать, и над ядром эмуляции работать. Людям нужно и то и другое :)

svofski
18.09.2010, 11:04
А что, под виндой нету Qt, или под виндой нету SDL-я? Если я могу понять, что на голом SDL-е сделать полноценный интерфейс — это задача одному человеку на 5 лет, то с Qt вроде бы нету таких проблем. И то, что я уже видел на кьюти, вполне функционально и при этом имеет свойство радовать людей, которых Doronetty не имеет чести знать.

[bETA]mEN
18.09.2010, 13:03
А что, под виндой нету Qt, или под виндой нету SDL-я?
есть. но лучше бы не было. мультиплатформенная убогость :v2_sick:
[hollywar:ON]

Slesar
18.09.2010, 13:56
Мне, в принципе, хватает Qt-шной UKNCBTL. Но я считаю, попробовать стоит.

Думаю, что я всё же буду развивать оба пути -- и SDL-версию делать, и над ядром эмуляции работать. Людям нужно и то и другое
Именно.

ZEman
18.09.2010, 14:17
пусть будет и SDL версия для разнообразия.
главное чтобы работу над эмулятором не забрасывали, посмотрите каких успехов b2m добился в эмуляции БК, хочу и здесь такого-же.

PheeL
18.09.2010, 16:42
Вот взять для примера Z80Stealth. MrKirill, автор, сделал SDL порт, но в самом "движке" эмулятора настолько много х86 ассемблерных вставок(тогда это было оправдано), что о переносе его на хендхэлды или другую процессорную архитектуру речи даже нет. И переписывать всё это уже нереально - другой эмулятор получится )

nzeemin
18.09.2010, 17:15
Вот взять для примера Z80Stealth. MrKirill, автор, сделал SDL порт, но в самом "движке" эмулятора настолько много х86 ассемблерных вставок(тогда это было оправдано), что о переносе его на хендхэлды или другую процессорную архитектуру речи даже нет. И переписывать всё это уже нереально - другой эмулятор получится )

Могу сказать что такой проблемы в моих эмуляторах нет -- и Qt-версии под Linux и Mac это показали. Есть другая проблема -- поддержка только little endian систем. Но и это в принципе решаемо.

svofski
18.09.2010, 17:17
Вот взять для примера Z80Stealth. MrKirill, автор, сделал SDL порт, но в самом "движке" эмулятора настолько много х86 ассемблерных вставок(тогда это было оправдано), что о переносе его на хендхэлды или другую процессорную архитектуру речи даже нет. И переписывать всё это уже нереально - другой эмулятор получится )
Но у nzeemin-a, к счастью, такой проблемы нет и эмулятор прекрасно переносим. Это сильная сторона, ее и надо развивать. Все, что привязано к одноплатформенным API и, еще хуже, к машинным кодам, скоро можно будет запускать только в эмуляторах. Упс.

Q-Master
19.09.2010, 18:59
Как это "нет"? Может ещё "а у кого нет PC"? :v2_scare:

P.S: Ни одного чела (притом, что кучу друзей имею программистов и даже эмуляторщиков) в жизни не встречал, у кого бы не было Виндов...

Охренеть. Ты наверно не знаешь людей и не-х86 процами в компах... Думаю что программисты у тебя все еще и только под винду, в дельфях вижуалпрограммируют... 8))

nzeemin
08.11.2010, 11:46
Между прочим, вчера удалось откомпилировать ядро BKBTL под mipsel-linux-g++ -- это из toolchain для сборки под Dingoo A320.
Ядро UKNCBTL пока упирается на стадии линковки, но думаю и это сдюжим.
Осталась самая малость -- написать интерфейс на SDL.

PheeL
08.11.2010, 14:11
Между прочим, вчера удалось откомпилировать ядро BKBTL под mipsel-linux-g++ -- это из toolchain для сборки под Dingoo A320.
Ядро UKNCBTL пока упирается на стадии линковки, но думаю и это сдюжим.
Осталась самая малость -- написать интерфейс на SDL.
Отлично! За мной тогда порт на Wiz/Caanoo. У меня просто настроенные и испытанные тулчейны под это имеются уже. Главное - это поддержка SDL, а дальше разберёмся.

nzeemin
08.11.2010, 22:51
Прув ов консепт... Наклепал минимальный скелет за сегодняшний вечер.

http://img-fotki.yandex.ru/get/5801/nzeemin.5/0_49c47_77841b2f_L.jpg

Это уже SDL и работающий на Dingoo A320 native OS эмулятор.
Вывел угол картинки 512x256, то что вошло в 320x240.
Больше ничего нет -- ни клавы, ни джойстика -- всё это ещё надо делать.

nzeemin
10.11.2010, 02:40
Сделал для пробы преобразование экрана в 256x256 -- просто каждые два бита объединяются в один ч/б пиксел. На мой взгляд, шрифт Фокала вполне читаем.
http://img-fotki.yandex.ru/get/4906/nzeemin.5/0_4a078_89a8a8f2_orig

Ну а уж с Бейсиком и вовсе проблем нет:
http://img-fotki.yandex.ru/get/5802/nzeemin.5/0_4a079_75989ffd_orig

nzeemin
11.11.2010, 17:02
Думаю сейчас каким должен быть минимальный / первый результат по BKBTL SDL.
Понятно что экранная клавиатура и экранное меню нужны, но это не первоочередное.
В первую очередь нужно обеспечить возможность запуска игрушек из BIN-файлов. Причём чтобы для каждого BIN можно было описать маппинг кнопок Dingoo на клавиши БК и джойстик БК.

Мне видится это так, что рядом с эмулятором кладём файл в формате INI. Название секций -- это имена BIN-файлов, в ключах секции описываем маппинг. Причём для джойстика нужно указывать какой битик -- джойстиков было много разных. В общем, типа такого:


[BRHOUSE.BIN]
Left=JOY4 // т.е. 4-й бит
Right=JOY6
Up=JOY10
Down=JOY5
A=SPACE
B=ENTER

Плечевые кнопки и POWER UP оставляем для эмулятора -- экранная клавиатура и меню, сброс и прочее. Остальные можно мапить -- это 10 кнопок.

nzeemin
11.11.2010, 21:59
Так сказать первое превью. В аттаче -- архив для Dingoo native OS.

Распаковать в отдельную папку, например, /GAME/3D/BkBtl
Запустить BkBtl.app -- эмулятор загружается в конфигурации БК-0010.01 + флоппи, т.е. сразу оказываемся в Мониторе.
Нажимаем на Left Shoulder -- эта кнопка загружает BIN-файл GAME.BIN и печатает команду "S1000".
Нажимаем Start -- это ВВОД -- открывается игрушка Break House.

Маппинг кнопок:
DPad -- джойстик приспособленный под Break House, A -- джойстик огонь,
Start -- ВВОД,
X -- ПРОБЕЛ.

Экран по-умолчанию цветной 256x256, переключение режима через Right Shoulder.
http://img-fotki.yandex.ru/get/5700/nzeemin.5/0_4a1c4_404d989c_orig

Сильно не бейте, парень играет как умеет.
Код в репозитории -- кому надо тот найдёт.

b2m
11.11.2010, 22:18
Можешь ещё в INI добавить параметр, сколько линий сверху отрезать, чтобы можно было выровнять изображение.

nzeemin
14.11.2010, 23:33
За выходные успел немного.
Сделал проекцию экрана БК в 320x240: по горизонтали просто дублирую каждый 4-й пиксель ещё раз, а по вертикали для каждой 16-й строки усредняю её с предыдущей. Текст в таком режиме конечно несколько искажается, зато весь экран виден и в правильной пропорции.

Вот например как выглядит игрушка BALLY:
http://img-fotki.yandex.ru/get/5404/nzeemin.5/0_4a4a5_96c267be_orig

---------- Post added at 23:33 ---------- Previous post was at 22:08 ----------


Можешь ещё в INI добавить параметр, сколько линий сверху отрезать, чтобы можно было выровнять изображение.

Обдумываю вот какую идею. Чтобы вместить 256 строк в 240 нужно отрезать 16 -- например, 8 сверху и 8 снизу. А что если не отрезать, а "завернуть" край -- например, верхние и нижние 12 строк проецируем в 4 строки, объединяя их так: 4 строки в одну, потом 3 в одну, ещё 3 в одну и 2 в одну. Будет эффект того что на краях экран "заворачивается", при этом в основной части экрана не будет искажений. Вопрос конечно можно ли будет что-то разобрать на таком завёрнутом краю -- в частности, отличить РУС от ЛАт.

nzeemin
17.11.2010, 23:26
Сделал экранное меню, вызывается и закрывается левым плечом.
В меню возможно переключение видеорежима (стрелками влево-вправо), выбор BIN для загрузки и сброс машинки. Список пока без прокрутки, так что больше 20-ти BIN класть смысла нет. В остальном инструкции те же, маппинг кнопок тот же.

http://img-fotki.yandex.ru/get/5801/nzeemin.5/0_4a65e_f661a18f_orig

http://bkbtl.googlecode.com/files/SdlBkBtl_11.zip

Ближайшие задачи:
- Избавиться от мелькания меню
- Браузер файлов - произвольное количество файлов
- On-Screen Keyboard (OSK)
- Парсер INI-файла

nzeemin
08.12.2010, 22:54
http://img-fotki.yandex.ru/get/5001/nzeemin.5/0_4b5ea_3656cbf1_L.jpg

ZEman
11.12.2010, 06:43
nzeemin, а как запустить 11 бету на виндовсе, там тока один файл app с которым непонятно что делать и два бинарника.
или виндовс не поддерживается ?

Doronetty
11.12.2010, 07:28
Похоже Винда была предана забвению - теперь Dingoo в фаворе!
P.S: Жуть какая-то...

ZEman
11.12.2010, 12:11
да кому этот Dingoo нужен то ?
на нём единицы сидят а на виндовсе все поголовно (ну или по крайней мере ~90%).

nzeemin
11.12.2010, 13:03
nzeemin, а как запустить 11 бету на виндовсе, там тока один файл app с которым непонятно что делать и два бинарника.
или виндовс не поддерживается ?

SDL-версии BKBTL я пока выкладываю только для Dingoo -- есть ряд людей которые её там очень ждут. Ну и вообще Dingoo это хороший способ проверки для эмулятора -- там совсем другой процессор (MIPS) и совсем другая операционная система. Не думаю что SDL-версия для Windows вас сильно впечатлит -- ядро эмуляции там то же самое, а интерфейс заточен под устройства с малым экраном.

---------- Post added at 13:03 ---------- Previous post was at 13:00 ----------


да кому этот Dingoo нужен то ?
на нём единицы сидят а на виндовсе все поголовно (ну или по крайней мере ~90%).

Да, аудитория у Dingoo конечно не такая широкая. Но наличие SDL-версии для одного портативного устройства позволяет очень легко портировать на другие устройства -- например, Caanoo, NDS, PSP...

ZEman
11.12.2010, 14:57
nzeemin, если честно я вас не понимаю, мне кажется лучше было бы доделать эмулятор чтоб он работал как следует а уж потом портировать куда угодно.
а так ни то ни сё получается.
хотя конечно это ваше право как автора.

nzeemin
11.12.2010, 16:31
nzeemin, если честно я вас не понимаю, мне кажется лучше было бы доделать эмулятор чтоб он работал как следует а уж потом портировать куда угодно.
а так ни то ни сё получается.
хотя конечно это ваше право как автора.

Эмуляция это хобби, то есть по определению -- деятельность обладающая само-мотивацией. Доведение эмулятора до уровня высокого качества -- это неоплачиваемая работа на несколько человеко-месяцев, а с учётом загрузки по работе -- это несколько календарных лет.
От других эмуляторщиков меня отличает то, что я не настолько хорошо знаю эмулируемую платформу -- так уж получилось, да и электронщик из меня в общем-то тоже никакой. Поэтому прогресс по улучшению ядра идёт очень медленно, многие вещи кажущиеся другим очевидными мне приходится изучать с нуля.
Поэтому, естественно мне более интересны чисто программерские вещи. Написание интерфейса под Qt и SDL стало для меня хорошей возможностью освоиться с этими фреймворками.
В общем, "don't shoot the pianist, he's doing his best".

nzeemin
12.12.2010, 12:15
Успел добавить только экранную клавиатуру, вызывается через меню или правым плечом, им же закрывается.

http://img-fotki.yandex.ru/get/4606/nzeemin.5/0_4b740_c180530f_L.jpg

Doronetty
12.12.2010, 15:52
Эмуляция это хобби, то есть по определению -- деятельность обладающая само-мотивацией. Доведение эмулятора до уровня высокого качества -- это неоплачиваемая работа на несколько человеко-месяцев, а с учётом загрузки по работе -- это несколько календарных лет.
От других эмуляторщиков меня отличает то, что я не настолько хорошо знаю эмулируемую платформу -- так уж получилось, да и электронщик из меня в общем-то тоже никакой. Поэтому прогресс по улучшению ядра идёт очень медленно, многие вещи кажущиеся другим очевидными мне приходится изучать с нуля.
Поэтому, естественно мне более интересны чисто программерские вещи. Написание интерфейса под Qt и SDL стало для меня хорошей возможностью освоиться с этими фреймворками.
В общем, "don't shoot the pianist, he's doing his best".

А мы и не стреляем - наоборот, пытаемся приободрить ;)
Просто вот в чём дело и в чем я согласен с ZEman: мультиплатформенная эмуляция - вещь хорошая, но только если глубоко не копать (ну допустим ограничиться игрушками для БК-0010). А если пытаться добиться 100% корректной работы тех же демок для БК-0011М, тут нужна привязка к конкретной платформе, развёртке экрана и т.д. Без этого тот же мультиколор правильно отображаться не будет. А уж про AY с его огибающими-недокументированными коммандами-цифровым звуком и вообще говорить не приходится...

nzeemin
12.12.2010, 16:24
мультиплатформенная эмуляция - вещь хорошая, но только если глубоко не копать (ну допустим ограничиться игрушками для БК-0010). А если пытаться добиться 100% корректной работы тех же демок для БК-0011М, тут нужна привязка к конкретной платформе, развёртке экрана и т.д. Без этого тот же мультиколор правильно отображаться не будет. А уж про AY с его огибающими-недокументированными коммандами-цифровым звуком и вообще говорить не приходится...

Тут вы несколько не понимаете. Качество эмуляции -- это свойство ядра эмуляции. Т.е. например если сделать мультиколор в BKBTL, то сделать его в SdlBkBtl и QtBkBtl не будет стоить практически ничего -- скопировать ядро, вызовы поправить. То же самое с AY. И если демка работает (не работает) на Win32-версии, то она точно так же будет вести себя и под Mac OS и под Linux и на Dingoo.

Портируемость -- это как бы перпендикулярно развитию самого эмулятора. Но зато если о портируемости изначально не думать -- потом это качество получить довольно сложно.

ZEman
12.12.2010, 17:50
nzeemin, а мне интересно, как ты сам можешь оценить работу своего эмулятора, на сколько процентов он примеро готов (на сколько точно эмулируются компоненты БК) ?

nzeemin
12.12.2010, 20:15
nzeemin, а мне интересно, как ты сам можешь оценить работу своего эмулятора, на сколько процентов он примеро готов (на сколько точно эмулируются компоненты БК) ?

Сложно сказать. По объёму работы -- думаю что около 20-30%.
По точности эмуляции -- меня всегда смущали эти проценты "точность эмуляции 95%" -- никогда не понимал что это в точности значит.
По объёму ПО -- учитывая то что загрузка с диска работает пока крайне плохо -- то наверное только 10-15% всего объёма программ БК идёт на BKBTL.