Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE
Удивляюсь как "такие прикольные и трудозатратные вещи" как тотже FCEU вы смогли адаптировать к таким суровым условиям.. (лично я не осилил его на Borland C++ буилдере забуилдить, так как он во многом GCC oriented )..
Вначале надо собирать в тех средах, в которых писался эмулятор. Потом выкидывать всё ненужное. Потом выделять вывод графики, звука, считывание кнопок. Затем подменять их на нативные функции той платформы на которую портируем. ФСЁ )))
А Borland C может C99 ? Если нет, то бида, пичаль...
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
А Borland C может C99 ? Если нет, то бида, пичаль...
Какой С99, старье-же... Но какието там проекты в своем формате" он может.. Лично мне, хватило квеста со сборкой "нового" Quake1, заточеного на MS$ компилятор.. попредметней Си поизучал (в очередной раз поняв что "не моё".. слишком всё сложно)..
И как его портировали в лохматом 2005 (или каком) на выньмобайл.. (конечно смотрел в дизасемблер, как он эмулировал плавающую запятую, с очень неприглядной картиной что творилась внутри).. Ну и забил.. плотно и надолго.. ток недавно для меня оказалось новостью что армы нативно уже плавающую запятую рубают..
Глянул что нового у энтузазистов Free Pascal... походу машкодовый ARM компоновщик так и не запилили (вот почему и тащит gnu-binutils)... К слову сказать, у меня эмуль + "нативные прикладухи" собираються и на FPC (под х86-win32 он их не тащит)..
Хы.. а там аж hal портирован под 7ое поколение.. и rt-os под STM32 серии... Одна-а-ако... http://wiki.freepascal.org/ARM
Присоединённое изображение (Нажмите для увеличения)
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE
Лично мне, хватило квеста со сборкой "нового" Quake1, заточеного на MS$ компилятор.. попредметней Си поизучал (в очередной раз поняв что "не моё".. слишком всё сложно)..
Раз уж Quake1 собрали, то и Chocolate Doom осилите Он даже под STM32 есть. Я не стал с ним возиться по двум причинам: не поклонник 3D игр вообще, вторая причина: недостаточно оперативной памяти.
А вот Open Tyrian портировал на TF, у него 64 МБ одной микросхемой, но нет плавучки, что очень печально (SNES требует!) . Что такое TF и с чем его едят написано более 10 лет назад тут: http://zx-spectrum128k.narod.ru/Romanich/e...aratchik/TF.htm Не удивляйтесь, что на narod.ru - владелец сайта куда-то подевался и связь с ним потеряна. Но часть контента там - моя.
QUOTE
Глянул что нового у энтузазистов Free Pascal... походу машкодовый ARM компоновщик так и не запилили (вот почему и тащит gnu-binutils)... К слову сказать, у меня эмуль + "нативные прикладухи" собираються и на FPC (под х86-win32 он их не тащит)..
Я тоже много прогал под железо ПК, слышали про TMT Pascal? Это паскаль под ДОС, но под 32-битный защищенный режим. Идет под DOS, Win9x, WinXP(с ограничениями).
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
Gospodin_Riba, да Doom (люблю версию ultimate), за секунду собираеться в варианте delphidoom. Исходнее оч. помогло в анализе и изучении DX специфики win32), что даже на iddqd запилил, нескончаемое ammo, (а то выйдешь так в Contaiment Area, ммм, подивиться этому чудо-уровню).
А вот про "Tyrian", не знал (я не очень жаловал DOS-овские 2D, которые муть на мути, или глюк на глюке), очень напомнил сеговский "Fire Shark". Ох, недорубал я в него на Sega, но зато в Gens прошел, сохраняясь через каждые полсекунды). Недурственно..
QUOTE
Что такое TF и с чем его едят написано более 10 лет назад тут:
Да уж.. (куда-уж, нам уж)...
Чето прям уже чешется, завладеть "артефактом на STM32".. но в F407-ом варианте.. (всё попроще)...
Я к сожалению пропустил презентации nanoPlayer (у меня на тот период, нетбук-времени погорел)... И маялся с перепайкой LVDS и восстановлением мертвецов на базе "правильных" x86 Atom (что еще тащут dos/winXp)..
Кстати а что F407, критично небогат памятью, или ресурсами? p.s Я както однажды, случайно узнал, что на БК0010 мог устанавливатся синтез AY-3-8910/YM2149+таймер 50гц прерываний.. Так это... не мог успокоиться (оболванены-ж были, тем, что AU ставился только в БК0011-ую, а к ней была "рассовая неприязнь")..
Благо хоть Андрей Грабовец, зарелизил самый простой эмуль на pascal (аж в вариантах DX и SDL).. Так что Epic1 (первая похаченая игра), вернулся.. с MUSDEMO на AY..
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE
А вот про "Tyrian", не знал (я не очень жаловал DOS-овские 2D, которые муть на мути, или глюк на глюке), очень напомнил сеговский "Fire Shark"
Очень качественная и красочная 2D-стрелялка под DOS. С авто-сохранением после каждого пройденного уровня. В течение дня проходил все эпизоды. Есть ещё Tyrian 2000, но он отличается от первого только наличием ещё одного эпизода. И его пока недопортировали. Потому что парсеры уровней сволочи поменяли и всё крашится при воспроизведении уровней последнего эпизода! Предыдущие играют нормально. На битбукете обсасывали в issues.
QUOTE
Ох, недорубал я в него на Sega, но зато в Gens прошел, сохраняясь через каждые полсекунды). Недурственно..
Ну ещё Raptor под DOS. Тоже неплохо. На микрософтовские DemonStar 1,2 похоже! (тоже рекомендую посмотреть их).
Еще Tubular Worlds под DOS, но она сложная.
QUOTE
Кстати а что F407, критично небогат памятью, или ресурсами?
ОЗУ как кот наплакал и двумя фрагментированными кусками: 192 кб Частота: 168 МГц официально.
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
ОЗУ как кот наплакал и двумя фрагментированными кусками: 192 кб
Так и представляеться: жирный кот из м/ф про попугая кешу, с мемом "этоже бубль гум". Однако вот, товарищи, и на 120mhz Cortex-M3 творили шедевральные вещи как например эмулятор советских ПЗУ (16бит, мултиплексированые Адрес/Данные) http://forum.pk-fpga.ru/viewtopic.php?f=43&t=5450
Даже подумалось: блин, такому МК как делать нефиг "хардварно заэмулить" почти ВСЮ бэкашку.. вместе с муз. процессором...
В смартах кодеки внешние ставят, только в самых дешёвых используют встроенные цапы Подозреваю, что технологически невозможно обеспечить низкий уровень шума и помех от цифровой части, чтобы имело смысл больше 12 бит делать
Это сообщение отредактировал romanetz - Mar 3 2019, 01:48 PM
--------------------
То. что нельзя запрограммировать на ассемблере и vhdl - приходится паять.
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE (microxa @ Mar 3 2019, 12:15 PM)
Так и представляеться: жирный кот из м/ф про попугая кешу, с мемом "этоже бубль гум". Однако вот, товарищи, и на 120mhz Cortex-M3 творили шедевральные вещи как например эмулятор советских ПЗУ (16бит, мултиплексированые Адрес/Данные)
Я с полёта SEGA и SNES смотрю
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
Gospodin_Riba а как Вы считаете, по поводу бортовых adc/dac в STM32, 12бит это разве годно?
p.s и да, прохожу квест по сборке hello_fake_STM32.elf на FreePascal чтоб стартануть это в QEMU.. и что-то... уже порядком запарил весь этот линупс-вэй, полный вил, граблей и какихто обломов.. p.p.s наверно придеться забить... а то все слишком сложно и дорого (в плане кодинга)
Gospodin_Riba , но вы это, подумайте и о таких возможностях как... загруз в озу нативных скриптов.. в виде нативных elf, в том числе и на альтернативных языках. таких как например FreePascal (дело то всетаки в ARM инлайн-ассемблере)
а то эмули... эмули: на сеге, кроме как fire shark, второго соника, и мк2 играть было и не в чего... а на.. денди.. доставлял ОДИН Battle Tank и то исключительно напару.. с кемто... кого уже нет..
Это сообщение отредактировал microxa - Mar 4 2019, 06:49 AM
Для людей , не предъявляющих высоких требований к качеству звука, 12 бит звучит вполне сносно, имхо. Сам как-то делал плеер wave на stm32f072, звук шел с ЦАПа на аудиопроцессор и потом на усилитель для наушников. Для эмулятора NES ЦАПа stm32 должно с избытком хватить. Автор видимо считает также, раз использовал встроенный ЦАП.
И сей пример отработал аж в древнем qemu 0.13 (почти 10 летней давности), достал из винрара вместе с mingw32 (на gcc3.4.6). quemu х86 она на ура сгребала, со сборкой эмуля под арм вышел облом отсосович (влом разбирацо, и так после этой виндовой линупсятины чуствуеш себя чемто вымазаным)...
Совместно с участниками форума вегалаб сделали прошивку под USB Audio Class 1 с поддержкой нескольких частот дискретизации (44.1 48 88.2 96 176.4 192 в режиме 16 бит, 44.1 48 88.2 96 в режиме 24 бита) По сути это - асинхронный транспорт USB-I2S
Да уж.. потрясно.. Конечно понятно, такие вещи не один год шлифуются...
короч... хрен со всем этим.. лампочками помигать и в COM шнурок на PL2303 хватает.. Тем более на уровне win32 системы "одно обращение" к USB (похрен какому) составляет 1000гц (в xp, в семерко-десятках и того меньше)... окулельно конечно..
Собсно, чего добиться-то хотите? Я платку брал с waveshare, резисторами по 50 ом все пины ulpi соединял, кроме питания на неё - и вперёд. Про частоту кадров не понял, да и в винде там поблочно запросы на usb делаются (пульнул блок из N передач и ждёшь, пока колбэк не дёрнется, мол, готово) Я не стал особо извращаться, потому как разницу между 192/24 и 48/16 не слышу и даже mp3 320 от оригинала не отличаю.
Это сообщение отредактировал romanetz - Mar 5 2019, 01:33 PM
--------------------
То. что нельзя запрограммировать на ассемблере и vhdl - приходится паять.
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
microxa, просьба, не засоряйте тему отвлеченными абстракциями. Тут обсуждение игровых консолей на базе STM32, а не "как скомпилять фиг знает че под STM".
Создайте свою тему и пишите в неё.
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
просьба, не засоряйте тему отвлеченными абстракциями. Тут обсуждение игровых консолей на базе STM32
Gospodin_Riba приношу извинений, о, рыба-иллюминат. Создалось впечатление что на STM32 вы подзабили... Изучив (пусть даже немного) этот вопрос, я Вас теперь понимаю.. Просто показалось что ARM и х86 в чемто похожи.. Похожи пожалуй одним: Неизвестно на что расходуются эти MIPS-ы, что всегда маловато. килобайт, мегагерцев..
QUOTE
Собсно, чего добиться-то хотите?
Вот узнать хотел, понять, разобраться... Узнать мнение.. фенькс..Разобрался.. (уже ничего не хочу)
Вот это тема! Очень интересно, сам недавно получил свою H743 Nucleo, до этого упражнялся с дисплеем на F746 Disco и думал о чем-то подобном. Видел в интернете ролики, но не думал, что всю информацию вместе с исходниками можно найти вот прям тут, на русском. Огромное спасибо!
У меня есть несколько вопросов, правильно ли я понимаю, что инициализация и работа с железом происходит с помощью LL HAL библиотек? Почему не CMSIS? И почему не хотите добавить внешнее ОЗУ или ПЗУ?
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE
Вот это тема! Очень интересно, сам недавно получил свою H743 Nucleo, до этого упражнялся с дисплеем на F746 Disco и думал о чем-то подобном. Видел в интернете ролики, но не думал, что всю информацию вместе с исходниками можно найти вот прям тут, на русском. Огромное спасибо!
Лет 10 назад с этими эмуляторами было очень горячо: их портировали на телефоны с Symbian OS (прямо в Кейле для АРМ) и некоторые были даже под MIDP 2.0 написаны (JAVA). Сам лично юзал и проверял - очень даже играбельны. Даже на экранах 176x220. Ну а на 320x240 - идут великолепно. Есть СЕГА, СНЕС , НЕС и Open BOR даже!!!
Под Колибри ОС тоже несколько портировали (GB, NES).
Приход андроида испоганил всю малину.
QUOTE
У меня есть несколько вопросов, правильно ли я понимаю, что инициализация и работа с железом происходит с помощью LL HAL библиотек? Почему не CMSIS? И почему не хотите добавить внешнее ОЗУ или ПЗУ?
STM забила на CMSIS в H7343-м и агрессивно толкает кало-куб. Что касается LL, то в своей версии калокуба я такой опции не нашёл. А было бы здОрово! В подобном духе (LL) я сейчас пишу для TMS320C6745.
Ну коль уж калокуб есть, так почему б не воспользоваться им ? Тем более он на этапе инициализации используется и работе эмулятора он(куб) не мешает.
Что значит - забили на CMSIS? Там нужен-то всего один файл с именами регистров, <stm32h743xx.h> или как-то так... А дальше шпаришь по мануалу, никаких проблем. HAL я не понимаю, а к Калокубу тоже испытываю отвращение. Я как раз закончил сейчас предыдущий небольшой проект и самое время пощупать H7. Ваша тема для меня просто находка! Первым делом постараюсь запустить QSPI, потом дисплей, а там и до игр недалеко. Вы не пробовали подключать дисплей по параллельному интерфейсу к этой Nucleo? Я же правильно понимаю, что все дисплеи выше работают по последовательному, минуя LTDC?
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE
Что значит - забили на CMSIS? Там нужен-то всего один файл с именами регистров, <stm32h743xx.h> или как-то так...
Да ошибся я. SPL имел ввиду а не CMSIS.
QUOTE
Вы не пробовали подключать дисплей по параллельному интерфейсу к этой Nucleo? Я же правильно понимаю, что все дисплеи выше работают по последовательному, минуя LTDC?
Исходники читать умеете?
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
LTDC - это чтобы "стекляху" подключать, на которую надо непрерывно гнать пиксели RGB, без встроенного контроллера. FSMC(FMC) - контроллер доступа к параллельной шине, через которую команды и данные уходят к дисплею со встроенным контроллером. Вы что конкретно имели в виду? Я пока что примеров работы с "голыми стёклами" на STM32 не встречал. Для этого нужна ещё внешняя (видео)память, в которую рендерится картинка, и LTDC из неё переносит в стекляху. А там и до VGA недалеко :-))
--------------------
То. что нельзя запрограммировать на ассемблере и vhdl - приходится паять.
А ну да, зачем нужен SPL если они двигают HAL и Калокуб. А CMSIS - это основа, как же без неё.
Исходники пока не смотрел, прошу извинить, надеялся что вы уточните. Просто как раз с Н7 появляется уникальная возможность иметь на одном кристалле буквально все: ЦПУ, буфер и драйвер для дисплея. Ну разве что внешний флеш по QSPI или SDIO. На F7 Disco для дисплея 480 на 272 пикселей я заводил LTDC и там буфер при 32 битах на пиксель весил порядка 0,5 Мбайта. Но конечно нужен второй, для двойной буферизации, чтобы было где рисовать. А дальше через ПДП копировать и дергать по прерываниям.
Но там была внешняя ОЗУ так как на F7 там же вроде до 512 Кбайт (могу ошибаться, но где-то так). А на Н7 целый мегабайт на борту! Система все в одном так сказать!! Очень вкусно.
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE (Faberge @ Mar 26 2019, 05:13 PM)
А на Н7 целый мегабайт на борту! Система все в одном так сказать!! Очень вкусно.
Вы б исходники все-же глянули.... Их чтение откроет ещё один "прекрасный" факт, что у H743 эти 1 МБ расфаршированы на фрагментированные куски. Причем только некоторые можно использовать для DMA, и некоторые для стека. Хотя есть участки памяти, в которых можно всё!
Но я растасовал данные так, чтобы всё работало и как можно со всеми возможностями (звук, сохранение-восстановление).
В некоторых эмуляторах с треском, но всё вошло. Благодаря тому, что статические вещи заранее просчитаны и записаны во флеш. В особо тяжелом случае как в TurboGrafx-16 - там видеобуфер - одна строка! Благо, что такое рендерер эмулятора позволяет
Это сообщение отредактировал Gospodin_Riba - Mar 27 2019, 08:21 AM
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16
QUOTE (romanetz @ Mar 26 2019, 02:25 PM)
LTDC - это чтобы "стекляху" подключать, на которую надо непрерывно гнать пиксели RGB, без встроенного контроллера.
Я пока что примеров работы с "голыми стёклами" на STM32 не встречал. Для этого нужна ещё внешняя (видео)память, в которую рендерится картинка, и LTDC из неё переносит в стекляху. А там и до VGA недалеко :-))
Ну и LTDC потянет за собой обязательно двойную буферизацию, иначе будем лицезреть всю черновую работу рендерера - а это некрасиво в случае динамических сцен!
Ну и краем уха слышал что у H743 есть проблемы с подключением внешней динамической памяти. То-ли не идет как надо, или тормозит.... В любом случае не есть хорошо когда LCD и SDRAM на одной шине FMC висят. C6745 в этом плане лучше - две раздельные шины A и B. Так что работаю с ним о чем не жалею!
Ну и LTDC для эмуляторов особо не нужен, там рендереры свои и чисто софтовые. Достаточно простого DMA и двух разных шин - для памяти и дисплея.
Это сообщение отредактировал Gospodin_Riba - Mar 27 2019, 08:29 AM
--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)