Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
VRTP > Другие микроконтроллеры. > Игровая консоль на STM32H743


Автор: Gospodin_Riba Jul 9 2018, 12:42 PM
Открываю топик с обсуждением сего чуда smile.gif

Эмулятор NES. Порт FCE Ultra.

Поддержка:

1) Все стандартные мэпперы
2) Все звуковые каналы, включая DPCM
3) Сохранение/восстановление состояния

Цепочка портирования: Win32(Mingw) => DOS(Open Watcom 1.9) => ADSP BlackFin(Visual DSP 5.0) => STM32H743(Keil ARM MDK 5.16a)

Ресурсы памяти: Code=83592 RO-data=525136 RW-data=3064 ZI-data=799912





Автор: Gospodin_Riba Jul 9 2018, 12:45 PM






Исходный Референс-код эмулятора приаттачен ниже.

Свой порт под STM32H743 выложу позже, когда приведу свой код в порядок.

Автор: Gospodin_Riba Jul 9 2018, 12:46 PM
Схема подключения узлов к NUCLEO-H743.
Пока всё в драфтах.

Автор: Gospodin_Riba Jul 9 2018, 12:46 PM
Назначение выводов, которые используются в эмуляторе:

Автор: Gospodin_Riba Jul 9 2018, 12:47 PM
Пока всё в таком виде:

Автор: Gospodin_Riba Jul 9 2018, 12:48 PM
Планируется добавить SD карту для выбора эмуляторов/игр c дальнейшим прожигом их во Flash контроллера.

Автор: Gospodin_Riba Jul 9 2018, 12:48 PM
И ещё опционально YMU762 для MMF, MIDI.

Автор: ведущий специалист Jul 9 2018, 06:47 PM
ООО!!
Поздравляю с пересадкой на топовый H7. Сам на него давно облизываюсь, но увы, в Петербурге их пока нет.

Автор: Kitano8 Jul 9 2018, 06:50 PM
Заказал Nucleo на H7, надо будет потестить ваш эмулятор

Автор: Gospodin_Riba Jul 10 2018, 12:13 PM
Выкладываю исходники своего порта эмулятора NES FCE Ultra под STM32H743 (отладочная плата NUCLEO-H743).

Особенности:

1) Для сборки используется Keil ARM MDK 5.16a с установленным софт-паком STM32H7xx_DFP 2.1.0. Такая конфигурация работает даже под Win32 WinXP smile.gif

2) Периферия соединяется к GPIO как давал на картинках выше.

3) Используется Sony Ericsson K800i LCD (контроллер Toshiba) в портретном режиме. Можно использовать другой LCD, переписав функции LCD_Init(), LCD_Position() и заменить команду Display RAM Write. Времянки FMC изменить на свои (учесть клок FMC =200 MHz). GPIO Speed попробовать повысить (у меня капризный LCD - ему крышу срывает, когда ставишь больше, чем GPIO_SPEED_FREQ_LOW).

4) Кнопки управления при нажатии выдают логический "0" (на GPIO включены PULL-UP). Состояние кнопок опрашивается примерно 60 раз в секунду. Опрос висит в обработчике прерывания SysTick.

5) Для вывода звука используется внутренние DAC & Output Buffer. Можно подключить наушники 16..32 Ом + РЕЗИСТОР от 470 Ом (резистор обязателен, чтобы не угробить порт!). Я использую УНЧ на MC34119D.

6) В силу специфики фрагментированной памяти RAM STM32H743, использую своё распределение памяти. Секции описаны в файле для линковщика scatter.sct (Кейловский дефолтный сетап памяти не используется и выключен!).

7) ROM игры линкуется вместе с эмулятором. Использую ассемблерную директиву INCBIN. Это позволяет избежать лишней конвертации BIN to H (для инклуда) и снизить нагрузку на компилятор. В файле ROM.S исправить название игры на своё, а в папку ROMs закинуть игру.

8) Эмулятор не использует функции для работы с кучей (heap) и требует минимум памяти под стек (stack).

9) Синхронизация эмулятора по звуку. Длина аудио-буфера подобрана так, чтобы вызывать прерывание примерно 60 раз в секунду (NTSC). Возможность работы в режиме PAL: имеется и очень просто.

10) Стейт эмулятора (для сохранения/восстановления) расположен в UNINIT регионе. Это даёт возможность восстанавливаться даже после горячего сброса STM32H743 !

11) Floating Point Hardware выключен (Not Used). Связано это с типом "long double", который различается на разных платформах. Если его включить в режим "двойная точность", то APU DMC будет проигрываться мгновенно (из-за неверных рассчётов).

Готовая прошивка: obj\nes.hex + ИСХОДНИКИ:

Автор: Gospodin_Riba Jul 10 2018, 12:16 PM
QUOTE (ведущий специалист @ Jul 9 2018, 06:47 PM)
ООО!!
Поздравляю с пересадкой на топовый H7. Сам на него давно облизываюсь, но увы, в Петербурге их пока нет.

Заказывал в "Электронщике", ждал около месяца.

Автор: Gospodin_Riba Jul 10 2018, 12:17 PM
QUOTE (Kitano8 @ Jul 9 2018, 06:50 PM)
Заказал Nucleo на H7, надо будет потестить ваш эмулятор

Ещё будут эмуляторы! Работаю над этим smile.gif

Хочется ещё и нативных приложений!

Автор: ведущий специалист Jul 10 2018, 05:11 PM
QUOTE (Kitano8 @ Jul 9 2018, 06:50 PM)
Заказал Nucleo на H7, надо будет потестить ваш эмулятор

Хде такие продають?

Автор: ведущий специалист Jul 10 2018, 05:16 PM
QUOTE (Gospodin_Riba @ Jul 10 2018, 12:17 PM)

Ещё будут эмуляторы! Работаю над этим smile.gif

не задумывался над нинтендо?

Автор: vladlen Jul 10 2018, 05:36 PM
QUOTE (ведущий специалист @ Jul 10 2018, 05:11 PM)
QUOTE (Kitano8 @ Jul 9 2018, 06:50 PM)
Заказал Nucleo на H7, надо будет потестить ваш эмулятор

Хде такие продають?

2800р\шт. с доставкой(пара недель), если действительно надо.


По теме, интересная штука.

Автор: Gospodin_Riba Jul 10 2018, 06:51 PM
QUOTE (ведущий специалист @ Jul 10 2018, 05:16 PM)
QUOTE (Gospodin_Riba @ Jul 10 2018, 12:17 PM)

Ещё будут эмуляторы! Работаю над этим smile.gif

не задумывался над нинтендо?

Не понял вопроса.

Работать в "нинтендо"? Или эмуль Нинтендо Гейм-бой? Или нинтендо ДС?

Автор: Kitano8 Jul 10 2018, 09:00 PM
QUOTE (ведущий специалист @ Jul 10 2018, 05:11 PM)
QUOTE (Kitano8 @ Jul 9 2018, 06:50 PM)
Заказал Nucleo на H7, надо будет потестить ваш эмулятор

Хде такие продають?

Элитан

Автор: intel Jul 11 2018, 08:25 AM
QUOTE (Gospodin_Riba @ Jul 10 2018, 06:51 PM)
QUOTE (ведущий специалист @ Jul 10 2018, 05:16 PM)
QUOTE (Gospodin_Riba @ Jul 10 2018, 12:17 PM)

Ещё будут эмуляторы! Работаю над этим smile.gif

не задумывался над нинтендо?

Не понял вопроса.

Работать в "нинтендо"? Или эмуль Нинтендо Гейм-бой? Или нинтендо ДС?

Эмулировать нитдендо 😊 так сказать дадим нашь ответ ретро геймингу

Автор: ведущий специалист Jul 12 2018, 03:02 PM
QUOTE (Gospodin_Riba @ Jul 10 2018, 06:51 PM)

Не понял вопроса.


Эмуляция SNES (super nintendo).

Автор: Gospodin_Riba Jul 13 2018, 04:25 PM
Портировал эмулятор Atari Lynx.

Про консоль можно почитать тут: https://ru.wikipedia.org/wiki/Atari_Lynx

Под неё куча игр, включая homebrew. Много шлака, но по ссылкам ниже есть довольно интересные игры:

1) http://videogamecritic.com/lynxal.htm

2) http://videogamecritic.com/lynxmz.htm

Задолбался портировать, потому что на C++ написан с применением ООП. А это "привет, куча, сколько ты жрёшь памяти? ..." и всё в таком духе. Много пришлось оптимизировать. Обэтом позже когда до конца отшлифую.

За основу брал референс-код эмулятора Handy 0.95. Сорцы ниже:

Автор: Gospodin_Riba Jul 13 2018, 04:30 PM
Так как нативное разрешение Atari Lynx всего 160 x 102 пиксела, то на дисплее 320x240 это будет всего кадр-четвертушка.

Дисплей, который я использую, поддерживает аппаратное растяжение. Без фильтрации.

Поэтому было решено портировать фильтр, который был заточен на пиксель-арт графику.
Из всех кандидатов (SaI, Eagle, HQ2x) выбор пал на SaI. Потому что менее ресурсоёмкий и почти как HQ2x (который ресурсоемкий и требует много памяти для вспомогательных таблиц). И лучше, чем Eagle (потому что Орёл пропускает пикселы).

Что вышло, на фоте ниже. Слева - аппаратное растяжение без фильтрации. Справа- фильтрация 2xSAI. Пришлось рисовать с помощью DMA, иначе CPU не выдерживает 60 фреймов/с.

Картинку тыкнуть мышью для увеличения - будут лучше заметны пиксели слева .

Сорец под STM32H743 выложу, как закончу над ним работать.

Автор: Gospodin_Riba Jul 13 2018, 04:35 PM
QUOTE (ведущий специалист @ Jul 12 2018, 03:02 PM)
Эмуляция SNES (super nintendo).

У H743 памяти не хватит. Говорю, потому что портировал его 10 лет назад на BlackFin. И есть возможность посмотреть RW, ZI.

Если только SDRAM привешивать. Лучше 32-разрядную.

Автор: Gospodin_Riba Jul 16 2018, 12:47 PM
Доделал эмулятор для H743. Расходы памяти (вместе с ROM-ом игры 128КБ):

CODE
Program Size: Code=70084 RO-data=132824 RW-data=459236 ZI-data=436476


Сделал 4 варианта видео-режима (LCD_MODE.H):

CODE

#define MODE_X1         0 /* Режим 160x102 Четверть экрана       */
#define MODE_X2_NEAREST 1 /* Режим 320x204 Аппаратное растяжение */
#define MODE_X2_SAI     2 /* Режим 320x204 Фильтр 2xSaI          */
#define MODE_X2_LQ      3 /* Режим 320x204 Фильтр 2xLQ           */

#define LCD_MODE MODE_X2_SAI


Фильтры взял с других эмуляторов, развернул их на 90 градусов и адаптировал под свои нужды.

Поставил SaI2x, так как мне он больше всего нравится.

Сделал ещё HQ2x, но из сорцов решил его убрать, так как звук херится, когда на кадре много мелких деталей(этот фильтр ресурсоемкий).

Файлы игр (и загрузчик) лежат в папке ROMs. В файле CartROM.S в INCBIN добавить нужную игру и откомпилировать. Пример: ROMs\Zendocon.lnx

В компиляторе глобально задефайнены: NDEBUG,DINGUX,ANSI_GCC,SDL_PATCH

Собирается с ключом --force_new_nothrow , иначе C++ ООП не заработает.

В scatter.sct объявленырегионы-секции для объектов. Кейловский дефолтный сетап не используется.

Для сохранения и восстановления пришлось написать враппер для файловых функций, имитирующих открытие-закрытие-чтение-запись файлов: pseudoFile.cpp , pseudoFile.h

Кнопки упрвления:

1) U, D, L, R, B, A, Start, X, Y
2) Select - сохранить стейт
3) U+D - восстановить стейт

Стейт сохраняется даже после сброса CPU.

Сорцы + готовая прошивка(obj\atari.hex) + несколько игр: (Keil ARM MDK v5)

Автор: Gospodin_Riba Jul 16 2018, 12:48 PM
Несколько видео с играми:






и






На этом эмуляция не заканчивается! smile.gif Будут ещё эмуляторы! 1227689077.gif

Автор: Gospodin_Riba Jul 21 2018, 11:27 AM
Портировал эмулятор GameBoy Color на STM32H743. Поддерживает игры как от чёрно-белого, так и от цветного Геймбоя. leb.gif

За основу брал cingb. Сорцы его ниже:

Автор: Gospodin_Riba Jul 21 2018, 11:30 AM
Выкладываю исходники своего порта под STM32H743 (отладочная плата Nucleo-H743).

1) Управление:

U D L R Select Start A B (A и B поменял местами: удар- слева, прыжок- справа).

X - Сохранить стейт
Y - Восстановить стейт.

Стейт выживает даже после сброса CPU.

2) Две опции отображения видео:

Режим 160x144 - по центру экрана.
Режим 320x240 Фильтр 2xSaI - на весь экран.

Растянутый фильтром кадр в 2 раза имеет разрешение 320x288 и не влезает в 240 строк используемого LCD.
Поэтому было принято решение пропускать каждую 6-ю строку выходного буфера: итого из 288 строк получается ровно 240.
При этом качество картинки остаётся на должном уровне.

Конфигурация в файлк LCD_MODE.H:
CODE

#define LCD_CONTROLLER LCD_CONTROLLER_RENESAS

#define MODE_X1         0 /* Режим 160x144              */
#define MODE_X2_SAI     1 /* Режим 320x240 Фильтр 2xSaI */

#define LCD_MODE MODE_X2_SAI


3) Две опции выбора контроллера LCD. Дисплей от тел. SE K800i.
CODE

#define LCD_CONTROLLER_TOSHIBA 0 /* JBT6K71 */
#define LCD_CONTROLLER_RENESAS 1 /* R63400  */

#define LCD_CONTROLLER LCD_CONTROLLER_RENESAS

4) Поддержка ROM-ов от GameBoy B/W (*.gb) и GameBoy Color (*.gbc).

В папку ROMs - кидаем игры. В файле ROM.S пишим имя файла игры (пример: INCBIN ROMs\Tank.gb). Затем билдим и прошиваем.

5) Эмулятор не использует кучу(HEAP) и использует минимум стека(STACK).

6) Есть возможность адаптации рендерера на 8-битный режим (для экономии памяти).

7) Для отображения растянутого фильтром кадра используется MASTER DMA (MDMA) вместо "обычного" DMA. Это позволило отказаться от свопинга байтов на каждый пиксел. MDMA умеет передавать байты с разным порядком.

8) Есть ограничение на размер игр(ROM-ов). Игры размером 2 МБ, 4 МБ не смогут пойти физически из-за ограниченного объёма Flash-памяти у STM32H743.

9) За основу взят эмулятор - Cingb. Звук приделан от другого эмулятора - GNUBoy. Так уж исторически сложилось smile.gif (Cingb - это первый в моей жизни портированный эмулятор!)

Исходники + прошивка с игрой(obj\*.hex) + несколько игр:

Автор: Gospodin_Riba Jul 21 2018, 11:31 AM
На этот раз решил испытать пришедшие новые дисплеи от K800i с контроллером Renesas(Hitachi). Они оказались более помехзащищёнными, но качество картинки немного огорчило - на дисплее видны вертикальные полосы (особенно заметны, когда LCD залит одним цветом).

Автор: Gospodin_Riba Jul 21 2018, 11:32 AM
Пара видео. На этот раз снимал с треногой, что позволило здорово снять ролики и обойтись без чужой помощи.






4.gif






Автор: Gospodin_Riba Jul 21 2018, 11:53 AM
Работу фильтра в эмуляторе поясняет рисунок. Вкратце: исходный катр Геймбоя 160x144 увеличиваем в 2 раза : 320x288. Чтобы влезло на дисплей, надо пропускать каждую 6-ю строку(с выходного буфера фильтра! не с исходного!) Тогда из 288 строк выйдет ровно 240 и всё круто! biggrin.gif

Автор: Gospodin_Riba Jul 26 2018, 11:35 AM
Портировал эмулятор SEGA MAster System / Game Gear. Не путать с SEGA Mega Drive !!! smile.gif

Master System(SMS): https://ru.wikipedia.org/wiki/Sega_Master_System
Game Gear(GG): https://ru.wikipedia.org/wiki/Sega_Game_Gear

Почти похожи, но не совесем! Есть отличия! biggrin.gif

В качестве исходного брал эмулятор SMS Plus. Его сорцы ниже:

Автор: Gospodin_Riba Jul 26 2018, 11:37 AM
Сделал порт под STM32H743.

Работа в режиме Game Gear. Звук PSG. Фильтр: модифицированный SaI2x - растягивает 160x144 на всю площадь LCD 320x240:





Автор: Gospodin_Riba Jul 26 2018, 11:37 AM
Режим Master System. Разрешение 256x192. В игре звук PSG:





Автор: Gospodin_Riba Jul 26 2018, 11:38 AM
Тоже Master System. На этот раз в игре используется FM синтезатор для звука:





Автор: Gospodin_Riba Jul 26 2018, 11:41 AM
Выкладываю сорцы эмулятора SEGA Master System / Game Gear (2 эмулятора в одном) для STM32H743 (отладочная плата Nucleo-H743). 1_7.gif

1) Управление:

U D L R B A Select Start (в Master System: "B" - начать игру, "Start" - пауза/снятие с паузы)

X - сохранить стейт
Y - восстановить стейт

Стейт остаётся живым после ресета CPU.

2) Конфиг:

Файл Port.h:

a)
CODE

#define EMU_SMS 0 /* SEGA Master System */
#define EMU_GG  1 /* SEGA Game Gear     */

#define EMU_TYPE EMU_GG


Тип эмулируемой консоли: обязательно не забыть изменить его, если нужно.
Зависит от ROM'а: файлы *.gg - Game Gear, *.sms - Master System

Только в режиме Game Gear доступен фильтр SaI2x: исходный кадр 160x144 преобразуется в 320x240.
В режиме Master System изображение выводится без фильтра: кадр 256x192 по центру

cool.gif
CODE

#define LCD_CONTROLLER_TOSHIBA 0 /* JBT6K71 */
#define LCD_CONTROLLER_RENESAS 1 /* R63400  */

#define LCD_CONTROLLER LCD_CONTROLLER_TOSHIBA


Тип контроллера дисплея LCD от Sony Ericsson K790(i)/K800(i).
У меня есть оба варианта дисплеев - оба отлично работают (с контроллером Toshiba, чисто субъективно, качество картинки чуть-лучше).

3) Регион.

Japan. NTSC. Именно в такой конфигурации доступен FM синтезатор в играх, где он есть.
FM синтезатор звука есть только в Master System. В Game Gear всегда был только PSG.

Отличия звука PSG от FM. PSG звучит довольно примитивно, "школьный" звук. FM - звук более сложнее и богаче.

Микросхемы звуковых генераторов:

PSG: SN76489 (Texas Instruments) https://ru.wikipedia.org/wiki/Texas_Instruments_SN76489
FM: YM2413 (Yamaha) https://ru.wikipedia.org/wiki/Yamaha_YM2413

4) Оптимизация памяти SRAM.

a) Эмуляция FM синтезатора:

Массив констант dphaseTable был посчитан на ПК и статически линкуется во Flash контроллера. Размер 256 кБ.
Массив констант tllTable был посчитан на ПК и статически линкуется во Flash контроллера. Размер 128 кБ.

Это высвободило 384 кБ оперативной памяти SRAM контроллера.

cool.gif Эмуляция процесосра Z80:
CODE

BIG_FLAGS_ARRAY=0 /* DISABLED big flags array for ADD/ADC/SUB/SBC/CP results */


Это высвободило 256 кБ кучи (heap).

c) Загрузка ROM'ов:

ROM игры не дублируется в SRAM, а читается из Flash-памяти напрямую.

Все эти мероприятия позволили запустить эмулятор на STM32H743 со звуком,с возможностью сохраняться и с фильтром SaI2x (фильтр только в режиме Game Gear).

5) Кастомизация времянок для LCD.

Дисплей подключен к FMC в режиме NAND. Именно в этом режиме есть возможность выставить нужный холд после защёлкивания данных (tAH >= 15 ns) без понижения тактовой частоты FMC.
Это полностью устраняет костыли (как программные, так и аппаратные) в работе дисплея и делает его работу устойчивой. Это касается варианта LCD с контроллером Toshiba: JBT6K71.
Подробнее тут: https://electronix.ru/forum/index.php?showtopic=148029

6) Опции компиляции.

Обязательно глобально задефайнить ALIGN_DWORD, иначе может быть эксепшн из-за доступа к невыровненным данным (ARM всё-таки smile.gif ).
Floating Point Hardware - Use Double Precision - ускоряет расчёты инициализационных таблиц в эмуляторе YM2413.

7) Эмулятор использует стек (stack) и кучу (heap).

8) Регионы и секции расписаны в файле scatter.sct

9) ROM'ы игр класть в папку ROMs. Файл игры вписывать в файл Game.S (пример: INCBIN ROMs\FM\Shinobi.sms). И не забыть в Port.h поставить нужный тип эмулируемой приставки: EMU_TYPE !!! Ну и пересобрать не забыть smile.gif

10) Игры(ROM'ы) можно брать тут (там же и описание игр с картинками) :

SMS: https://www.emu-land.net/consoles/sms/roms/top

GG: https://www.emu-land.net/portable/gg/roms/top

leb.gif Исходники + готовая прошивка(obj\sms.hex) + несколько ROM'ов:

Автор: Gospodin_Riba Jul 28 2018, 10:40 AM
Портировал эмулятор TurboGrafx 16 (NEC PCEngine) на STM32H743. smile.gif
Приставка в своё время дала просраться понервничать Сеге и Нинтенде!

О приставке тут: https://ru.wikipedia.org/wiki/PC_Engine

Игры с описанием тут: https://www.emu-land.net/consoles/pce/roms/0-9

За основу брался код TG Emu (исходники) ниже.

Автор: Gospodin_Riba Jul 28 2018, 10:41 AM
Эмулятор в действии:

1)





2)





Автор: Gospodin_Riba Jul 28 2018, 10:46 AM
Выкладываю исходник своего порта под Nucleo-H743. 4.gif

1) Изменения:

a ) Переделана эмуляция звука. Звуковой модуль взят из эмулятора Ootake v2.90. До переделки звук был просто ужасен (там где он ещё был).

b ) Ввёл обработку прерывания таймера CPU H6280. Те игры, где звук пропадал, теперь идут со звуком.

c ) Переделал рендерер. Спрайты и фон выводятся с учётом приоритетов, что устраняет артефакты в виде чёрных спрайтов.

d ) Сделал сохранение/восстановление состояния.

2) Оптимизация по потреблению памяти SRAM:

a ) Массив констант bp_lut (render.c) просчитан на ПК и зашит во Flash контроллера (освободило 256 кБ)

b ) Массив констант _NoiseTable.bin (psg.c) просчитан на ПК и зашит во Flash контроллера (освободило 32 кБ)

c ) Укорочен буфер очереди звука: APUQUEUE_SIZE 8 кБ вместо 128 кБ. Не смертельно.

d ) Видеобуфер кадра 1024x256 заменён на буфер строки 1024x1. Отрисовка на дисплей построчно (render.c)

e ) В стейт не пишутся: буфер очереди звука (_Queue) и RAM привода CD (cdram). Не смертельно (ибо не нужно).

После этих мероприятий, удалось оставшиеся переменные распихать по всей SRAM контроллера STM32H743.

3) LCD работает в портретном режиме (отрисовка кадра перпендикулярна направлению луча развёртки). Бит скорости отключен (HWM=0). Пришлось сделать так, потому что в этом случае сохраняется возможность построчно отрисовывать кадр с буферизацией всего в одну линию без дополнительных команд LCD по смене координат.

4) Опции компиляции:

Глобально задефайнить FAST_MEM.
Включить Floating Point Hardware - Use Double Precision - для увеличения скорости эмуляции звуковой системы приставки.

5) Управление:

U D L R B A Select Start

X - сохранить стейт
Y - восстановить стейт

6) Эмулятор использует стек (stack) и НЕ использует кучу (heap).

7) ROM'ы игр нужно конвертировать из *.pce в *.bin. Могут быть 2 атрибута: Split и Mirror. Игры и их атрибуты можно посмотреть здесь: https://github.com/uli/huc/blob/master/tgemu/src/pcecrc.h

Конвертер используется свой (писал на Pascal в 2009 г.).

Полученный *.bin закидываем в папку ROMs. В файле rom.S правим название игры (пример: INCBIN ROMs\PowerGate.bin) и пересобираем проект. И прошиваем контроллер.

В папке ROMs оставил несколько сконверченных игр, готовых к использованию. Конвертилка - в следующем посте.

1000000Z.gif Исходники, прошивка, файлы игр тут:

Автор: Gospodin_Riba Jul 28 2018, 10:48 AM
Конвертилка *.pce в *.bin. Там же информация по атрибутам на некоторые игры.

Автор: Gospodin_Riba Jul 31 2018, 11:39 AM
Последние 2 эмулятора используют подключение дисплея к банку NAND FMC, поэтому схема соединения с отладкой Nucleo-H743 для них чуть-изменилась (LCD !CS):

Автор: ведущий специалист Aug 1 2018, 03:32 PM
Как я понял джойстик = тупо набор кнопок?

Автор: Gospodin_Riba Aug 2 2018, 01:45 PM
QUOTE (ведущий специалист @ Aug 1 2018, 03:32 PM)
Как я понял джойстик = тупо набор кнопок?

Пока да. Но надо думать, чем заменить. Сеговский джойстик не подойдёт, потому что хочу в формфактор кредитки уложиться. Поэтому управление должнобыть ON-BOARD.

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

Пришел к выводу, что 10 кнопок хватит + Reset.

Автор: Gospodin_Riba Aug 2 2018, 01:47 PM
Перенёс свой Lossless Video Decoder PackMan + FLAC : на H743.

Подробнее тут: http://vrtp.ru/index.php?showtopic=29688&view=findpost&p=784391





Автор: Gospodin_Riba Aug 2 2018, 01:50 PM
В очередной раз перенёс многострадальный чип-селект LCD на свободный пин, потому что появилась SD карта. smile.gif
И как-бы с отдельными блоками не особо разбежаться, но всё-же удалось!

Таблица подключения для плеера видео-аудио такая:

Автор: ведущий специалист Aug 7 2018, 08:36 AM
QUOTE (Gospodin_Riba @ Aug 2 2018, 01:45 PM)

надо думать, чем заменить. Сеговский джойстик не подойдёт, потому что хочу в формфактор кредитки уложиться. Поэтому управление должнобыть ON-BOARD.

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

Пришел к выводу, что 10 кнопок хватит + Reset.

Думал об этом. При таком раскладе получится малюсенький экран и консоль в минимум 15см в длину. А вообще, чтобы удобнее в руке держать - желательно выбрать длину между кнопками 15-20см. Тут ждет засада, маленький экран на фоне большого девайса. Тут уже целесообразнее взять экран 4,3 дюйма. Я бы наверное так и сделал.Раз уж применен процессор по цене более 2к рублей - можно тратиться по полной и взять подороже жк. Либо уже психовать и мельчить в ущерб удобства играния.

Автор: ведущий специалист Aug 7 2018, 01:23 PM
https://ru.aliexpress.com/item/4pcs-LED-OD-10mm-Switch-Cap-CIRCLE-12V-0-5A-Arrow-Symbol-Cap-for-6-6mm/32842933131.html?spm=a2g0v.search0104.3.36.5027b55cWELjXh&ws_ab_test=searchweb0_0,searchweb201602_4_10152_10151_10065_10344_10068_10342_10343_10340_10341_10696_10084_10083_10618_5723512_10307_10301_5011415_10059_5011315_100031_10103_10624_10623_10622_10621_10620,searchweb201603_0,ppcSwitch_2&algo_expid=20e462f3-1911-4a42-967b-9cf32569d9d5-5&algo_pvid=20e462f3-1911-4a42-967b-9cf32569d9d5&priceBeautifyAB=0
Думаю неплохие кнопки. Но увы - диаметр см.

Автор: Gospodin_Riba Aug 19 2018, 12:52 PM
Схема ниже (сильно напоминает nanoPlayer smile.gif ).

Некоторые моменты:

U1 - дисплей от телефона Sony Ericsson K800i с контроллером Toshiba. Также поддерживаются дисплеи от телефона K790i и контроллером Renesas.

U2 - CPU. Он тут самый главный. Положение выводов частично совпадает с STM32F407 QFP100. Различие в выводах слева и внизу. Тактируется от внутренних генераторов.

U3 - токовый УНЧ с дифференциальным выходом.

U4 - матрица суппрессоров. для защиты от статического электричества (актуально при подсоединении/отсоединении наушников).

U5 - питание на аналоговую часть схемы. Ultra LDO. Imax = 150 mA.

U6 - Step-Up для подсветки светодиодов дисплея. Из китайского модуля DC-DC MT3608.

U7 - контроллер заряда Li-ion аккумулятора. Из телефлна Samsung SGH X100.

U8 - питание на цифровую часть схемы. Ultra LDO. Imax = 0.5 A. Такой стоит в отладке Nucleo-H743. Компактный корпус DFN6 (3x3 mm. Для 2x2 mm распиновка микросхемы другая!)

J1 - разъём для наушников. При включении наушников динамик отключается.

J2 - слот Micro SD с пружинкой.

J3 - разъём для программирования МК.

J4 - зарядка аккумулятора через USB. Imax= 0.5 A

D1 - CRASH LAMP. Для отладки.

D3 - светодиод зарядки аккумулятора. Гаснет при полном завершении зарядки.

L7 - ферритовая бусина на SDIO CLK. Без неё на макете SD карта не пашет.

S1..S10 - кнопки управления. Планируются долговечные.

R14||C22 - ФНЧ с частотой среза 23 кГц.

LCD_VSYNC - сигнал для кадровой синхронизации. Возможен как программный опрос через порт ввода, так и внешнее прерывание(линия EXTI2).

Обновление:
R22 - задаёт ток подсветки дисплея. Выбран ток 10 мА, дисплей светит очень ярко. Можно уменьшить ток вообще до 5 мА без ущерба яркости.

Автор: Gospodin_Riba Aug 19 2018, 12:57 PM
QUOTE (ведущий специалист @ Aug 7 2018, 01:23 PM)
https://ru.aliexpress.com/item/4pcs-LED-OD-10mm-Switch-Cap-CIRCLE-12V-0-5A-Arrow-Symbol-Cap-for-6-6mm/32842933131.html?spm=a2g0v.search0104.3.36.5027b55cWELjXh&ws_ab_test=searchweb0_0,searchweb201602_4_10152_10151_10065_10344_10068_10342_10343_10340_10341_10696_10084_10083_10618_5723512_10307_10301_5011415_10059_5011315_100031_10103_10624_10623_10622_10621_10620,searchweb201603_0,ppcSwitch_2&algo_expid=20e462f3-1911-4a42-967b-9cf32569d9d5-5&algo_pvid=20e462f3-1911-4a42-967b-9cf32569d9d5&priceBeautifyAB=0
Думаю неплохие кнопки. Но увы - диаметр см.

Смотрю в сторону Omron и mec.

У них есть кнопки с ресурсом 3000000 - 10000000 нажатий-отжатий. Размер 12x12 мм. Есть проблема в их удобном размещении на плате с размером кредитки.

Также у них есть кнопки с ресурсом 1000000 нажатий-отжатий, размер меньше 6x6 мм. Эти уже удобно размещаются.

По-любому вышеназванные будут лучше обычных SWT-30, SWT-32 - у которых всего 50000 нажатий-отжатий. smile.gif

Автор: Kitano8 Aug 20 2018, 12:32 PM
stm32h743vi стоят как-то не гуманно angry.gif. stm32h743zi дешевле чуть ли не на треть.
кнопки it-1187 100000 нажатий

Автор: Gospodin_Riba Aug 21 2018, 01:26 PM
QUOTE (Kitano8 @ Aug 20 2018, 12:32 PM)
stm32h743vi стоят как-то не гуманно angry.gif. stm32h743zi дешевле чуть ли не на треть.
кнопки it-1187 100000 нажатий

144 пина против 100 ? 100-pin'овые у меня уже в руках,месяц назад заказывал, скидывал фото (тут тоже есть).

100 000 нажатий хватит на сутки непрерывной игры из расчёта 1 нажатие/секунду. Наиболее уязвимы кнопки влево/вправо, прыжок/стрельба.

Взял кнопки с циклом 3 000 000 нажатия, их хватит на месяц непрерывной игры.

Менять сдохшие кнопки очень неохота(лезть и перепаивать)

Автор: Ferrum-1827 Aug 21 2018, 05:26 PM
На дендике играли в детстве сутками напролёт, передавали приставки/джойстики по рукам - месяцами вся детвора резалась, резиновые они были в джойстиках...

Автор: Gospodin_Riba Aug 22 2018, 10:54 AM
QUOTE (Ferrum-1827 @ Aug 21 2018, 05:26 PM)
На дендике играли в детстве сутками напролёт, передавали приставки/джойстики по рукам - месяцами вся детвора резалась, резиновые они были в джойстиках...

Там силиконовые кнопки. Взял сеговский джойстик и прикинул, что не моё, так как :
1) сильно большие
2) требует крепления

Вот рассматриваю ещё один вариант - мембранные кнопки с телефона. В виде кругляшков. Просто кладутся на плату. Зафиксировать можно прозрачным скотчем. Легко меняются на уровне пользователя без перепайки - отодрал скотч и заменил кругляшок. Всё.

И проще и места меньше. Лучшие мембраны дают до 1 млн. нажатия!

Ещё немаловажно, есть всегда доступ к контакту, который может быть нарушен из-за влаги или окисления.

Ниже картинка имеющихся в наличии вариантов.

"Обычные" тактовые кнопки просто часто перестают работать на замыкание, хотя щёлкают. Интересно узнать бы причину.

Автор: Kitano8 Aug 22 2018, 01:05 PM
http://forum.easyelectronics.ru/viewtopic.php?f=17&t=16527 товарищ плеер сделал с мембранными кнопками
http://img.radiokot.ru/files/48383/medium/rzz4s7os0.jpg

Автор: Gospodin_Riba Aug 23 2018, 10:10 AM
Развёл тестовую плату под мембранные кнопки. Ширина платы = ширине кредитки. Фотки ниже. Кнопки закрепил широким прозрачным скотчем (все сразу).

Поиграл в игры. Вывод - очень неудобны! Хуже, чем обычные кнопки.

Что не устраивает:

1) Кнопки совсем не чувствуются пальцами, так как они почти плоские. Из-за этого часто промахи, особенно на крестовине - вниз и влево.

2) Слабая обратная связь с кнопкой. Не чувствется тактильности.

3) Требуется больше усилия на нажатие, так как из-за отсутствия толкателя, задействована бОльшая площадь пальца.

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

4) Маленькая дистанция между кнопками и общая малая ширина - тяжело держать в обеих руках и перебирать пальцами.

Вынужден пересмотреть форм-фактор в пользу удобства играбельности............

Как вариант - "сосиска": крестовина слева, в центре - экран, справа -остальные кнопки.

Можно даже с сеговского джойстика взять. Но тогда обязателен корпус с креплениями.
Зато будет чертовски удобно играть, при условии если выдержать дистанцию между кнопками и общую длину в двух руках.

Автор: ведущий специалист Aug 23 2018, 10:18 AM
QUOTE (Gospodin_Riba @ Aug 22 2018, 10:54 AM)


Вот рассматриваю ещё один вариант - мембранные кнопки с телефона. В виде кругляшков.


У таких тоже есть чудесные поломки в виде протирания пятачков на плате. Если плата на заводе с такими кнопками не будет покрыта особым покрытием - поработает месяц ))).

Автор: ведущий специалист Aug 23 2018, 03:40 PM
После долгих обдумываний - решил. h7 проц - необоснованно дорог. 2к рубля как то отдавать неохота. Да и ждать понижения цен на этот девайс как то ... не стоит. Автору респект за тему конечно, но ... опять же мое мнение - повторяемость устройств - не для обычных эмбеддеров со среднестатистическим доходом равна нулю.
Ввиду этого есть мысль перенести проект на тот же nuvoton n32926 https://ru.aliexpress.com/item/1pcslot-N32926-N32926U1DN-N32926U1DNS1-LQFP128-NEW/32905534003.html?spm=a2g0v.search0104.3.28.66ee4297JEk5DH&ws_ab_test=searchweb0_0,searchweb201602_4_10152_10151_10065_10344_10068_5724112_10342_10343_5724212_10340_10341_10696_5724012_10084_10083_10618_5723512_10307_5724312_10301_5724412_10059_100031_10103_5725012_5724812_10624_10623_10622_10621_10620_5724912,searchweb201603_56,ppcSwitch_2&algo_expid=ce5f2f7a-c62a-410d-a9fa-16e2e8918bd7-4&algo_pvid=ce5f2f7a-c62a-410d-a9fa-16e2e8918bd7&priceBeautifyAB=0
(раза в 3 дешевле) либо какой нибудь более доступный, к примеру V3S
https://ru.aliexpress.com/item/ALLWINNER-CPU-V3S-AXP203-V3S-CHIP-V3S-IC-V3S-POWER-IC-AXP203-New-original-2PCS-LOT/32717796689.html
На первый имеется полноценная абсолютно рабочая и опробыванная SDK как под кейлом так и под линукс (самолично качал с фтп выпрошенного у китайца). Второй проц - ну не знаю, вроде что то есть под него но пока все теория.
Короче, предлагаю продвигать тему на нувотоне. Желающим скину SDK.

Автор: Gospodin_Riba Aug 23 2018, 05:23 PM
QUOTE (ведущий специалист @ Aug 23 2018, 03:40 PM)
После долгих обдумываний - решил

Написал в личку

Автор: Gospodin_Riba Aug 24 2018, 03:28 AM
QUOTE (Ведущий специалист)
h7 проц - необоснованно дорог. 2к рубля как то отдавать неохота

Для меня - это хобби. Хобби - не место, где нужно экономить.

QUOTE (Ведущий специалист)
Да и ждать понижения цен на этот девайс как то ... не стоит

Ждать - это вообще непозволительная роскошь. Особенно, если учесть, что средняя продолжительность жизни человека 70-80 лет. Никогда не понимал "ждунов" (это обобщение, к Ведущему специалисту это НЕ относится!), которые чего-то там выжидают... Особенно снижения цен. Это капец. Для прояснения обстановки, рекомендую почитать вот эту тему:

https://electronix.ru/forum/index.php?showtopic=147392

В свете вышеуказанных событий, я уже перешёл на "подножный корм" - б/у мелочёвку с плат телефонов/ноутбуков. Потому что покупать резистор одного номинала от 1000 штук как-то совсем не катит. Ну и ряд 0402 в местных магазинах не продают. Не говоря уже о конденсаторах 0805 емкостью от 10 мкФ и выше. С телефонов выковыриваю.

QUOTE (Ведущий специалист)
перенести проект на тот же nuvoton n32926

240 МГц - частота маловата. Забудьте про SNES, СЕГу и другие приставки, в которых эмулируется два процессора в связке: M68000+Z80

QUOTE (Ведущий специалист)
либо какой нибудь более доступный, к примеру V3S

Помню, что здесь: http://vrtp.ru/index.php?showtopic=29688&view=findpost&p=768055 упоминание об Олвиннерах не очень хорошее:
QUOTE (Ведущий специалист)

По поводу аллвинеров - имею негативные результаты исследований в области данных процессоров. 1 - апельсин зиро. Убогая виснущая хрень, перегревающаяся уже при загрузке операционки. 2 - HI3516D. Долгое мучение с портированием драйверов и прочих работ. Здесь результаты получше - но скудная документация так и не позволила довести проект до конца (хотя линукс полноценно был собран и даже работал). 3 - апельсин 2джи иот - слов нет....груда железа. Сделав выводы - решил больше не касаться детищ аллвиннера (как бы завлекательно не выглядел v3s). Гораздо лучше в этом плане ведут себя малиновые процыки. Их и рекомендую.


Или лёд тронулся?

QUOTE (Ведущий специалист)
На первый имеется полноценная абсолютно рабочая и опробыванная SDK как под кейлом так и под линукс (самолично качал с фтп выпрошенного у китайца).
Второй проц - ну не знаю, вроде что то есть под него но пока все теория.

Ну всё-же они заточены под Linux. С таким подходом проще взять Робеспьери-Пи и Retro-Pie. И не надо вообще ничего делать.

QUOTE (Ведущий специалист)
Короче, предлагаю продвигать тему на нувотоне. Желающим скину SDK.

Я бы с удовольствием, тем более внутренней памяти там больше, но "дайте хотя бы 400 МГц"!

SEGA MD, SNES, NEO-GEO - 600 МГц
CPS1,2 - 800 МГц.

Буду доводить сабж до физического завершения с STM32H743 QFP100.
Слишком много времени потрачено, и денег тоже. К тому же, наработки имеются.
Лично мне, глупо бросать всё на середине пути!

Автор: Kitano8 Aug 24 2018, 08:15 AM
QUOTE (Gospodin_Riba @ Aug 24 2018, 03:28 AM)
Лично мне, глупо бросать всё на середине пути!

Я так и предполагал. Имею в наличии нуклео на h743.
Я так понимаю, на ней можно будет запустить ваш проект?
p/s у моего поставщика stm32h743vi выходит под 3к.
В теории, если шину увеличить до 16 бит fps вырастет?

Автор: Gospodin_Riba Aug 24 2018, 09:55 AM
QUOTE (Kitano8 @ Aug 24 2018, 08:15 AM)
Я так и предполагал. Имею в наличии нуклео на h743.
Я так понимаю, на ней можно будет запустить ваш проект?
p/s у моего поставщика stm32h743vi выходит под 3к.
В теории, если шину увеличить до 16 бит fps вырастет?

Все исходники, которые выложены в этой теме имеено под нуклео-h743. Таблица подключения выложена здесь же. В архивах также готовые к использованию прошивки.

Поддержка Нуклео-h743 100%.

А вот stm32h743vi - я ещё не запускал. Конечно, нужно будет адаптировать эмуляторы под него отдельно (как минимум переназначить другие GPIO на кнопки, и SDIO2 взять вместо SDIO1 )

Если шина будет 16 бит, то скорость отрисовки возрастёт примерно в 2 раза - через CPU или через DMA. Общий FPS эмулятора будет больше только в случае отрисовки CPU. В случае с DMA разницы в быстродействии с вариантом шины 16 бит по сравнению с 8 бит практически не будет (потому что отрисовка дисплея занимает меньше времени, чем всё остальное и в случае с DMA выполняется параллельно).

Пошёл делать второй вариант управления - на китайских щелкунчиках 12x12 мм.Такой же размер будет и у Omron-овских кнопок на 3 млн. нажатия. Вроде как уже должно быть более удобнее играть:

Автор: Gospodin_Riba Aug 24 2018, 03:55 PM
Сделал клавиши, потестил на играх.
Очень даже хорошо! smile.gif Удобно играть.

Из минусов - слышимый щелчок.

Кнопки - китайский нонейм. Omron'овские такие же, надеюсь с более тихим щелчком или без него.

Лучше только - джойстики.

Фотка ниже. Размер 145x40. В центре будет дисплей (в релизе). Размер можно чуть поджать с краёв.

Автор: Kitano8 Aug 24 2018, 04:19 PM
От Game Boy Advance корпус не рассматривали как вариант?
image

Автор: Gospodin_Riba Aug 24 2018, 04:46 PM
QUOTE (Kitano8 @ Aug 24 2018, 04:19 PM)
От Game Boy Advance корпус не рассматривали как вариант?
image

Рассматривал. Большеватый. И дырка под дисплей большая. Хочется габариты по-меньше.
В идеале - сосиска 140x38.

Я не спец по корпусам, поэтому Х.З. что с ним делать.

Автор: Gospodin_Riba Aug 27 2018, 11:26 AM
Пришли аккумуляторы. Общий ток потребления(отладочная плата+внешние устройства) от USB 5V - 0.21..0.25 А. Емкости 3 Ач должно хватить на 12 часов непрерывной работы.

Автор: Gospodin_Riba Aug 27 2018, 11:27 AM
А также кнопки Omron, B3F-4000 на ТРИ миллиона нажатий-отжатий. Нажимаются легче(усилие 100 грамм), чем китайский нонейм.

Скорее всего, буду ставить их - кучу игр переиграл, до сих пор живые.

Автор: Gospodin_Riba Aug 27 2018, 11:35 AM
Сейчас работаю над увеличением громкости звука в эмуляторах.

1) Вместо MC34119 будет стоять LM4871T - гораздо мощнее и выдаёт 1,2 Вт на 8 Ом динамик при питании 5V. При питании 3,3V мощность также больше, чем у MC34119.

2) Сделал 12-битным звук в NES эмуляторе (был 8 битным).

3) Внёс изменения в код NES эмулятора - согласно последней таблице подключения (с SD картой):
http://vrtp.ru/index.php?act=Attach&type=post&id=784399

4) Применил сжатие динамического диапазона звука. Программно. Софт-кривая. Вытягивает малые сигналы (усиление в 2 раза), с плавным линейным спадом усиления до 1 на максимальных отсчётах. Рисунок ниже. Субъективно, громкость звука повысилась в 1.5 .. 2 раза.

Прогнал аудио-тесты, искажений из-за перегруза нет (в отличие от логарифмической компрессии A-law, u-law).

В области малых сигналов, усиление =2, затем оно плавно спадает и становится =1 в области больших сигналов.

Автор: Gospodin_Riba Aug 27 2018, 11:40 AM
Исходники+прошивка модифицированного NES-эмулятора:

1) 12 bit звук (вместо 8 bit)
2) компрессия динамического диапазона звука (2x Gain)
3) совместим с последней таблицей подключения к Nucleo-H743 (см.пост выше)

Автор: Gospodin_Riba Aug 27 2018, 11:42 AM
Напоследок, - прикол: smile.gif






Автор: Gospodin_Riba Aug 29 2018, 02:58 PM
Ради эксперимента, подключил очень известный дисплей от шилда Arduino: 2.8" LCD Module.
Пришлось отодрать дисплей от платы модуля, чтобы перевести его из 16-битного режима в 8-битный. Вывод №11 должен быть подтянут к Vcc в этом случае.

Да, этот дисплей больше по размерам. Результат меня не порадовал. Все недостатки свёл в картинку ниже.

Автор: Gospodin_Riba Aug 29 2018, 02:59 PM
Ну и как водится в ардуино-шилдах, не все выводы дисплея задействованы.
Ниже полная распиновка.

Автор: Gospodin_Riba Aug 29 2018, 03:01 PM
Сниппет сорцов, адаптированных для этого дисплея:

Автор: Gospodin_Riba Aug 31 2018, 12:23 PM
QUOTE (Gospodin_Riba @ Aug 27 2018, 11:35 AM)
4) Применил сжатие динамического диапазона звука. Программно. Софт-кривая. Вытягивает малые сигналы (усиление в 2 раза), с плавным линейным спадом усиления до 1 на максимальных отсчётах. Рисунок ниже. Субъективно, громкость звука повысилась в 1.5 .. 2 раза.

Забавно, из некоторых тестируемых игр, только одна - TMNT2.nes дала эффект SideChain'а - в момент звучания ударных, мелодичные каналы плавно затихают.

Типа как здесь: http://wikisound.org/%D0%A1%D0%B0%D0%B9%D0%B4%D1%87%D0%B5%D0%B9%D0%BD

Автор: Gospodin_Riba Aug 31 2018, 12:25 PM
Схема консоли с изменённым УНЧ (более мощный). Подправлен номинал резистора на наушники (оптимально для сопротивления 24 Ом, для низкоомных наушников резистор нужно увеличить более 220 Ом). Поставил разделительный конденсатор после выхода ЦАП, чтобы постоянную составляющую зря не усиливать и не отбирать динамический диапазон УНЧ, которого очень дефицит.

Автор: Gospodin_Riba Aug 31 2018, 12:29 PM
Особое внимание следует уделить акустике. Просто динамики здесь не прокатят - будут слышны только мелодичные каналы (их верхние составляющие), ударных не будет. Звук будет плоским.

Применил микро-колонки: та, что вверху - от какого-то ноутбука. Ниже (белая) - от телефона Sony Ericsson. Первая естественно, громче и по-басистее, но вторая вписывается в габариты конечного устройства - буду использовать её. С такими микро-колонками звук объемный и с хорошо прослушиваемыми ударными. Хотя конечно, же, качественные наушники - самые лучшие по звучанию!

Сопротивление обоих колонок: 8 ом. Есть ещё микро-колонки на 4 ома, но они не дают выигрыша в громкости, а только перегружают УНЧ и увеличивают ток потребления (потому что LM4871T расчитана на работу с нагрузкой 8 Ом).

Ток потребления УНЧ обычно 40 - 60 мА. Иногда доходит до 80 мА.

Автор: Gospodin_Riba Aug 31 2018, 12:37 PM
И всё-таки я убил одну китайскую нонеймовскую кнопку - "удар/огонь"! Не прошло и 50 000 нажатий..... Просто не замыкает контакт, хотя щёлкается. Приходится продавливать чтоб сработала.

Поэтому принял решение провести эксперимент с резинками от сеговского джойстика.
Разобрал джойстик, плату приспособил под свои нужды и закрепил скотчем(дорожки к нашлёпке перерезал). Работает превосходно, легче и мягче жмется, без щелчков. И главное - вечно.

Как можно закрепить на релизной плате эти резинки, не прибегая к корпусу ?
Чтобы смотрелось более-менее, скотч - макетный вариант.

Автор: Kitano8 Aug 31 2018, 12:41 PM
ИМХО толкатели надо для резинок. Может джойстик (геймпад) на две части распилить?

Автор: Gospodin_Riba Aug 31 2018, 12:44 PM
QUOTE (Kitano8 @ Aug 31 2018, 12:41 PM)
ИМХО толкатели надо для резинок. Может джойстик (геймпад) на две части распилить?

Была такая идея! smile.gif
Только джойстик надо по-красивше найти, наподобие SNES-овского.
А то все современные джойстики уродливой формы (не прямоугольные)

Автор: Gospodin_Riba Sep 1 2018, 03:19 PM
Наконец-то отрисовал все недостающие посадочные места под элементы (футпринты).

Принял решение разработать корпус отдельно (3D печать). Но это уже после как будет спаяна хотябы 1 плата.

Начинаю разводить PCB................. p0128.gif

Автор: Ferrum-1827 Sep 2 2018, 12:13 AM
QUOTE (Kitano8 @ Aug 24 2018, 04:49 PM)
От Game Boy Advance корпус не рассматривали как вариант?
image

Чёта аж детство вспомнилось...ностальгия...
я бы по возможности 8-битку с десятком другим игр хотел бы иметь в таком формате...

только А В и их турбо вариации (4 кнопки-как в дендике) и экран конечно бы побольше, чем К750...что-то в районе 4-5"...не обязательно oled или ещё какие высокого разрешения...и 50Гц

Получится некий гейм-пад из 90 vo.gif

Автор: Gospodin_Riba Sep 2 2018, 12:37 PM
Надо развиваться дальше. Нельзя на одном месте стоять. Я про корпус. Не плата должна танцевать под корпус,а корпус под плату.

Делать плату под существующий корпус - тупиковый путь, особенно где надо много вещей учитывать. Одна из которых - удобный геймплей.

Корпус от GBA, который тут указан выше не подходит из-за применённой элементной базы.
Будет свой корпус, наподобие джойстика SNES с экраном в центре.

Автор: romanetz Sep 2 2018, 12:42 PM
Так, может, и резинку для джойстика напечатать с выступами под крепление в плате?

Автор: Gospodin_Riba Sep 2 2018, 12:48 PM
QUOTE (romanetz @ Sep 2 2018, 12:42 PM)
Так, может, и резинку для джойстика напечатать с выступами под крепление в плате?

Читаете мысли! smile.gif Нашёл джойстик с резиновыми кнопками - они же и толкатели и резинки с контактами! Если завтра удастся приобрести - сфотаю и выложу.

На счет печати 3D я не совсем осведомлён, какими материалами можно печатать.

Изначально планировал использовать контакты на силиконе (фото давал выше) + пластмассовые кнопки(толкатели) ABC XYZ - всё от сеговского джойстика. Но это только усложняет корпус, потому что ещё держатели нужно продумывать.

Автор: Gospodin_Riba Sep 3 2018, 10:06 AM
Приобрел джойстики с кнопками, которые и толкатели и резинки с проводящим напылением.
То, что нужно! smile.gif

Автор: Gospodin_Riba Sep 3 2018, 10:07 AM
Правда, и тут судьба дерьмо подложила - размер пятачков с проводящим покрытием в 2 раза меньше, что уменьшает вероятность контакта при нажатии.

Внизу - старые резинки без кнопок(толкателей).

Автор: Gospodin_Riba Sep 3 2018, 10:09 AM
Обошёл это уменьшением шага между контактами на ответной части (которая на плате).

Зазор 0.2 мм. Переделал контакты: слева - что было, справа - что стало.

Золотить контакты или нет? - вот в чём вопрос.....

Автор: Dima Sep 3 2018, 10:39 AM
Зазор 0.2мм - плохая идея, материал контактов имеет свойство налипать. Хард голд - дорогое удовольствие, для прототипа смысла в нем мало.

Автор: Gospodin_Riba Sep 3 2018, 02:22 PM
QUOTE (Dima @ Sep 3 2018, 10:39 AM)
Зазор 0.2мм - плохая идея, материал контактов имеет свойство налипать. Хард голд - дорогое удовольствие, для прототипа смысла в нем мало.

У китайских джойстиков зазор на крайних справа очень близок к 0.2 мм (фотка ниже).

Золотить не всё, а только контакты кнопок. Опасаюсь, что лужение ПОС-61 будет нарастать оксидной плёнкой. Интересно, чем покрыты контакты на плате джойстика (фота ниже) ?

Автор: rakov Sep 3 2018, 03:07 PM
Если плохо лудится, то возможно никель, а так, визуально похоже просто тонкий слой припоя.
Когда-то был советский калькулятор, там были позолочены контакты, но на надёжность это не повлияло, некоторые кнопки со временем начали сбоить. Может качество было такое, может эксплуатация. Но факт - позолота не помогла.

Фото из интернета

Автор: Ferrum-1827 Sep 3 2018, 09:06 PM
Часто разбираю подобные девайсы, замечаю угольное или как правильно назвать - напыление...

upd: что-то такого типа

Автор: Gospodin_Riba Sep 4 2018, 02:51 PM
Тоже нашёл плату с таким напылением - от пульта саткома какого-то...

Там где я заказываю ПЦБ, делают только никель или золото.

Автор: Gospodin_Riba Sep 4 2018, 02:52 PM
Развёл плату. Завтра ещё проверю на ошибки и отдам в производство.

Размер платы 135x50 мм^2

Автор: Gospodin_Riba Sep 11 2018, 08:41 AM
Сделают всё с лужением ПОС-63. Отдельные площадки золотом не лудят - или всё или ничего.

То покрытие, что на пультах - карбон сказали, ранее делали, но потом прекратили (оказалось не выгодным)

Автор: Gospodin_Riba Sep 17 2018, 11:11 AM
Наконец-то пришли платы. smile.gif
Делали 4 дня, зато ждал долго из-за выходных. Итого: 1,5 недели.

Автор: Gospodin_Riba Sep 17 2018, 11:11 AM
Пришло больше, чем заказал - 6 штук.

Автор: Gospodin_Riba Sep 17 2018, 11:12 AM
Ну и аналоговый полигон на просвет:

Автор: Gospodin_Riba Sep 20 2018, 09:51 AM
Запаял все детали, кроме двух светодиодов (их высота будет определена после изготовления корпуса).

Проверил узлы питания - дышат. Особый геморой поимел с пайкой LDO в DFN корпусе (который на 500 мА расчитан). Ну не любят они меня smile.gif

ST-LINK успешно определил контроллер, его ревизию. Система дышит - что очень радует! smile.gif

Автор: Gospodin_Riba Sep 20 2018, 09:53 AM
Сейчас надо адаптировать все сорцы под эту версию платы.

А это: переназначить все GPIO и заменить SDIO1 на SDIO2. В принципе, на этом различия в софте заканчиваются. Но гемор ещё тот.......

Вид сзади:

Автор: Gospodin_Riba Sep 20 2018, 02:00 PM
Переделал NES-эмулятор. Заработал. По крайней мере CPU и DAC.

Прошиваю старой платой STM32F4Discovery (так как старый макет на Nucleo-H743 разбирать не хочется - использую его для отладки).

Почищу плату от флюса и нахлобучу дисплей.

Автор: Gospodin_Riba Sep 21 2018, 07:27 AM
Все узлы и подсистемы стартанули успешно! smile.gif

MP4 + MP3:





Автор: Gospodin_Riba Sep 21 2018, 07:28 AM
Следующий этап - разработка корпуса и его печать на 3д-принтере...

NES emulator:




Автор: Kitano8 Sep 21 2018, 08:40 AM
Здравствуйте. На мк STM32H750VBT6 будет работать при условии загрузки игр с карточки?
Корпус типа такого? https://learn.adafruit.com/pigrrl-zero/overview
http://img.radiokot.ru/files/48383/medium/1ozrdp6tg5.jpg

Автор: Gospodin_Riba Sep 21 2018, 11:47 AM
QUOTE
На мк STM32H750VBT6 будет работать при условии загрузки игр с карточки?

Будет, но мало чего.
128 кБ флеша - очень мало. А грузить в SRAM не вариант -она итак вся занята.

И даже если рассмотреть вариант парсинга ROM'ов игр с SD карты во время эмуляции - будет чудовищно медленно.

Выход из ситуации - поставить внешнюю память ROM или RAM, но для меня это уже не интересно (привет приставкам на блекфине из 2008'x 1_7.gif )

Чудес не бывает.

У вас же вроде как нуклея на 743-м есть, зачем 750й?

QUOTE
Корпус типа такого?

Почти, но не совсем.

Это - поделие Леди Ады, которая наверное, ничерта не играла в эти консоли, потому что расположение кнопок справа - крайне неудобно. К примеру, сделать коронный удар в TMNT2,3 на ней будет ой как нелегко!

Корпус вообще будет свой, с нормальным расположением кнопок как в джойстике SEGA Megadrive.

Автор: ведущий специалист Sep 21 2018, 03:46 PM
Вопрос автору. Нельзя ли поместить в данную консольку эмулятор атари xe. Уж слишком ностальгия по некоторым играм имеется.
https://ru.wikipedia.org/wiki/Atari_400/800/XL/XE#/media/File:Atari_130XE_Reshot.jpg
Атирра вроде в свободных сорцах по инету гуляет. Самолично имею сорцы эмуляции звукового проца под данный комп (в свое время под стм32 играл звуки с него).

Автор: Gospodin_Riba Sep 22 2018, 10:02 AM
QUOTE (ведущий специалист @ Sep 21 2018, 03:46 PM)
Вопрос автору. Нельзя ли поместить в данную консольку эмулятор атари xe. Уж слишком ностальгия по некоторым играм имеется.
https://ru.wikipedia.org/wiki/Atari_400/800/XL/XE#/media/File:Atari_130XE_Reshot.jpg
Атирра вроде в свободных сорцах по инету гуляет. Самолично имею сорцы эмуляции звукового проца под данный комп (в свое время под стм32 играл звуки с него).

Атирра - высокоточный эмуль. Значит кушает очень много ресурсов. Надо будет более подробнее покопать.

Только никаких клавиатур, пистолетов, бейсиков и DOS'ов !!!
Только джойстик (крест + кнопа).

Равнение на XEGS.

А игры нормальные под неё есть? С наскоку в ютубе ничего путного не нашёл...

Автор: ведущий специалист Sep 24 2018, 11:06 AM
https://www.youtube.com/watch?v=WlqOlSfgN_A
Для игр конца 80х это было круть.
https://www.youtube.com/watch?v=iGHlx0ogFOs
Такая конечно и на NES есть. Ну и всякие Boulder Dash и тп...
https://www.youtube.com/watch?v=1qeQLrHGMgc
https://www.youtube.com/watch?v=TwfgP7OtQG4
Одни только игры с муз треками Adam Gilmore чего стоили. Но это так... воспоминания детства.

Автор: Gospodin_Riba Sep 25 2018, 08:40 AM
QUOTE (ведущий специалист @ Sep 24 2018, 11:06 AM)
https://www.youtube.com/watch?v=WlqOlSfgN_A
Для игр конца 80х это было круть.
https://www.youtube.com/watch?v=iGHlx0ogFOs
Такая конечно и на NES есть. Ну и всякие Boulder Dash и тп...
https://www.youtube.com/watch?v=1qeQLrHGMgc
https://www.youtube.com/watch?v=TwfgP7OtQG4
Одни только игры с муз треками Adam Gilmore чего стоили. Но это так... воспоминания детства.

Взял на заметку.

Сейчас в приоритете разработка корпуса. Составил Т.З., корпус в разработке. Как будет сделан, выложу на обозрение.

В скором будущем будет доступен заказ не только на печатную плату, но и на корпус. + к этому, могу помочь с комплектацией (частично). По вопросам приобретения платы, корпусов, комплектующих именно на эту приставку, пишите вличку.

Возвращаясь к ATARI.... Попахивает спектрумом... как-то сильно примитивно.
Вот картинка (похоже, дети были счастливы и с такими играми в то время):

Автор: Gospodin_Riba Sep 25 2018, 08:42 AM
Актуальная принципиальная схема игровой консоли EmuPocket. Резисторы возле кнопок исключены (кнопки карбоновые), перенумерованы элементы:

Автор: Gospodin_Riba Sep 25 2018, 08:42 AM
Перечень элементов:

Автор: Gospodin_Riba Sep 25 2018, 08:43 AM
Монтажная схема. Верхний слой:

Автор: Gospodin_Riba Sep 25 2018, 08:44 AM
Монтажная схема. Нижний слой. Все картинки кликабельны и большого разрешения.

Автор: Gospodin_Riba Sep 25 2018, 08:44 AM
Есть свободные печатные платы на устройство. В личку.

Автор: ведущий специалист Sep 25 2018, 11:40 AM
Да, все это хорошо... Но задам один хороший вопрос: где можно достать такой дисплей и .... ответный разъем к нему? Мне кажется это очень проблематично.

Автор: Gospodin_Riba Sep 25 2018, 12:59 PM
QUOTE (ведущий специалист @ Sep 25 2018, 11:40 AM)
Да, все это хорошо... Но задам один хороший вопрос: где можно достать такой дисплей и .... ответный разъем к нему? Мне кажется это очень проблематично.

Лично сам уже добыл 3 телефона (2 с рабочими дисплеями) с местной барахолки (типа авито ит.п.). Плюс заказывал в detalka.ru новые дисплеи (не оригинал).

Ответная часть сдувается феном с платы телефона (дуть не на разъём, а на плату с обратной стороны, чтоб не повредить разъём).

Даташит на разъем: http://www.old.atd-elektronik.cz/cd/panasonic/axk7_8l.pdf
Panasonic AXK7L26227G

Подойдут Sony Ericsson K790i или K800i на раздербан. Стоят 100-200 руб за телефон.

То говно что с али продают - сильно проигрывает в качестве. (дисплеи)

Автор: Gospodin_Riba Sep 26 2018, 04:53 PM
Спаял на заказ вторую консоль.

Автор: Gospodin_Riba Sep 26 2018, 04:54 PM
Верх:

Автор: Gospodin_Riba Sep 26 2018, 04:54 PM
Низ:

Автор: Gospodin_Riba Sep 26 2018, 04:56 PM
Если ферритовую бусину L7 заменить на перемычку или резистор 0 Ом, то SD карта разгоняется в High Speed Mode - тактовая 48 МГц.

Испытывал на трёх картах: 2 GB, 4 GB класс 4, 16 GB класс 10 - со всеми этими картами полёт норамальный! 1000000Z.gif

Автор: Gospodin_Riba Sep 27 2018, 10:32 AM
QUOTE (Gospodin_Riba @ Sep 25 2018, 12:59 PM)
Подойдут Sony Ericsson K790i или K800i на раздербан. Стоят 100-200 руб за телефон.

... и ещё W850, K810(i),W830.

так что выбора предостаточно.

+ У меня есть 1 свободный дисплей, могу переслать.

С комплектухой (разъемы) могу помочь. Куча плат от сотовых, ноутбуков - дёргаю разъемы с них.

Автор: Gospodin_Riba Oct 1 2018, 07:16 AM
Готова первая версия 3D-модели корпуса для игровой консоли EmuPocket.

Осталось распечатать и проверить.

Автор: Gospodin_Riba Oct 1 2018, 07:16 AM
4.gif

Автор: Gospodin_Riba Oct 1 2018, 07:17 AM
1000000Z.gif

Автор: OLEGA Oct 1 2018, 01:31 PM
Вам не кажется, что к теме мало интереса? Не задумывались почему всё так сложилось?

Автор: Gospodin_Riba Oct 2 2018, 05:15 AM
QUOTE (OLEGA @ Oct 1 2018, 01:31 PM)
Вам не кажется, что к теме мало интереса? Не задумывались почему всё так сложилось?

Вы не видите кухни изнутри. А она очень жаркая. support.gif t3901.gif

Автор: Gospodin_Riba Oct 2 2018, 05:15 AM
Вид сзади. Крышка (декоративные отверстия для акустической системы):

Автор: Gospodin_Riba Oct 2 2018, 05:16 AM
Внутри. Область разъёмов - открыта или вырезается отдельный пластик с отверстиями под разъёмы:

Автор: Gospodin_Riba Oct 2 2018, 05:17 AM
Сборка. Плата, аккумулятор и колонки фиксируются с помощью пазов и контуров:

Автор: Gospodin_Riba Oct 2 2018, 05:18 AM
Задняя крышка внутри игровой консоли EmuPocket:

Автор: Gospodin_Riba Oct 2 2018, 05:19 AM
Общий вид корпуса игровой приставки EmuPocket на микроконтроллере STM32H743 - на предыдущей странице:

http://vrtp.ru/index.php?showtopic=30174&st=90

Автор: Gospodin_Riba Oct 8 2018, 10:22 AM
Распечатанный корпус из-под FDM принтера:

Автор: Gospodin_Riba Oct 8 2018, 10:23 AM
В процессе обработки перед шпатлёвкой и покраской:

Автор: Andrew007 Oct 8 2018, 11:06 AM
Вот бы спектрум замутили былобы здорово!

Автор: Gospodin_Riba Oct 9 2018, 01:09 PM
QUOTE (Andrew007 @ Oct 8 2018, 11:06 AM)
Вот бы спектрум замутили былобы здорово!

Со временем всё будет! Взял на заметку.

ZX Spectrum emulator на STM32:





Автор: Gospodin_Riba Oct 12 2018, 04:33 PM
Сделали корпус для игровой консоли EmuPocket на STM32H743:

Автор: Gospodin_Riba Oct 12 2018, 04:34 PM
smile.gif

Автор: Gospodin_Riba Oct 12 2018, 04:34 PM
Пост-обработка включала в себя: шлифовку, шпатлёвку, грунтовку, покраску.

Автор: Gospodin_Riba Oct 12 2018, 04:35 PM
С задней крышкой:

Автор: Gospodin_Riba Oct 12 2018, 04:36 PM
В процессе инсталляции электроники. Продумываю как фиксировать и крепить :
- дисплей
- плату
- светодиоды
- кнопки
- аккумулятор
- динамик

Осталось последние два.

На дисплей специально наклеил бумагу - пометил пиксельную область, чтобы зафиксировать равные офф-скриновые области по вертикали и горизонтали.

Автор: Gospodin_Riba Oct 13 2018, 01:56 PM
Завершил тестовую инсталляцию. Всё входит плотно и как надо.

Автор: Gospodin_Riba Oct 13 2018, 01:57 PM
Вид изнутри. Аккумулятор 3000 мА*ч. Такого хватит на 12 часов непрерывной работы. Средний ток потребления игровой консоли EmuPocket : 250 мА.

Автор: Gospodin_Riba Oct 13 2018, 01:58 PM
Задняя сторона с динамиком.

Автор: Gospodin_Riba Oct 13 2018, 02:00 PM
Поиграл в игры. Управление СУПЕРСКОЕ! smile.gif Как на джойстике от СЕГи! Лучше, чем клавиатура ПК.

Автор: ведущий специалист Oct 15 2018, 10:37 AM
Поздравляю с очередным девайсом! Своеобразная штука, но думаю выхлоп с нее будет. Сам мечтаю о такой. Но наверное если возьмусь делать - то всетаки с жк побольше (2,8-3,5"). Ну что... когда ожидать передачи жатого видео по воздуху ?

Автор: Gospodin_Riba Oct 15 2018, 12:18 PM
QUOTE (ведущий специалист @ Oct 15 2018, 10:37 AM)
Поздравляю с очередным девайсом! Своеобразная штука, но думаю выхлоп с нее будет. Сам мечтаю о такой. Но наверное если возьмусь делать - то всетаки с жк побольше (2,8-3,5"). Ну что... когда ожидать передачи жатого видео по воздуху ?

ОК! 1_7.gif Спасибо, я старался! 1227689077.gif
На выхлоп не претендую, разве что в виде массы положительных эмоций! 1000000Z.gif

Сегодня закончил окончательную инсталляцию компонент в корпус. Массу хлопот доставил дисплей - его нужно было зафиксировать с большой точностью, чтобы оффскриновые области были примерно одинаковыми и не срезалась активная область кадра за стенкой корпуса.

Динамик заменил на другой - более громкий и мощный (8 Ом 1 Вт диаметр 50 мм) с бумажной мембраной вместо пластика - такой НЧ лучше воспроизводит.

Игровая приставка (консоль) EmuPocket на STM32. Вид спереди (окончательная установка):

Автор: Gospodin_Riba Oct 15 2018, 12:19 PM
Вид сзади. Того позора в виде белого динамика теперь нет, стоит динамик с мембраной черного цвета. Шурупы по бокам на момент съемки фоты не закрутил (без них корпус тоже держит - защёлкивается на пазы):

Автор: Gospodin_Riba Oct 15 2018, 12:20 PM
Презентация игровой приставки (консоли) EmuPocket: 4.gif





Автор: Gospodin_Riba Oct 15 2018, 12:21 PM
Демонстрация гейминга одной из игр: support.gif





Автор: Gospodin_Riba Oct 15 2018, 12:23 PM
Вторая игра (звук в видео приглушён из-за того, что рука оператора закрыла микрофон камеры): leb.gif





Автор: Gospodin_Riba Oct 15 2018, 12:24 PM
Демонстрация проигрывания MP4 + MP3 потоков: radio.gif





Автор: Gospodin_Riba Oct 15 2018, 05:04 PM
QUOTE (ведущий специалист @ Oct 15 2018, 10:37 AM)
Ну что... когда ожидать передачи жатого видео по воздуху ?

C EmuPocket ещё не всё выжал... Ещё будут программы! new.gif

Автор: Gospodin_Riba Oct 16 2018, 04:19 PM
Эмулятор GameBoy Color на игровой консоли EmuPocket. Здесь кадр растянут в 2 раза СМАРТ-фильтром. spiteful.gif





Автор: Gospodin_Riba Oct 17 2018, 12:55 PM
Наконец-то появилась первая нативная игра под игровую консоль EmuPocket !!! smile.gif

После двух с половиной недель обильного насилования сорцов игры и сопутствующих библиотек, удалось впихать "Алекса" в консоль! spiteful.gif

Речь идёт об игре под названием: "Alex the Allegator 4"

Сайт, посвящённый этой игре: http://allegator.sourceforge.net/

Там же исходники игры и готовый билд под Windows, чтобы поиграть. 1_7.gif

Эта игра - классический платформер в стиле "ретро", графика имитирует геймбоевскую: размер кадра всего 160x120 пикселей, монохромная палитра(оттенки зелёного).

Есть цветная версия(color edition) этой игры для игровой консоли PSP, подробнее здесь: http://pspfaqs.ru/soft/432-alex-4-color.html shades.gif

Я взял файлы данных из PSP-шного color edition и кинул их в виндовый билд - и "крокодил" засиял всеми цветами!!! leb.gif

В классической версии игы 12 уровней, после прохождения которых появляется возможность сыграть во вторую игру - Space Shooter ! support.gif

Короче, 2 игры в одной !!! Но для этого нужно собрать все ягоды и звёзды на всех уровнях!

Для компиляции игры, необходимо скомпилять ещё дополнительно 2 библиотеки:

1) Аллегра. Что это такое - читать здесь:
https://ru.wikipedia.org/wiki/Allegro_(%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BC%D0%B5%D0%B4%D0%B8%D0%B9%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0)

Исходники тут: https://liballeg.org/

Это мультимедийная библиотека для разработки игр (кроссплатформенная).

Жёсткий секс при сборке этой библиотеки гарантирован !!! Я собирал под старый добрый DOS с помощью DJGPP и довольно удачно! radio.gif

2) DUMB. О ней тут: http://dumb.sourceforge.net/ . Исходники там же.

Это кроссплатформенная библиотека для воспроизведения трекерной музыки. Поддерживает форматы: MOD, IT, S3M, XM,...

Библиотека собирается намного легче, чем первая (Allegro).

А вот теперь представьте... 4.gif
2.5 недели я трахал Аллегру, которая представляет собой избыточный и навороченный код, со всякими ПиСи-шными зависимостями, лишнее нужно было убрать, а нужные- заменить!
По сути, Allegro - это почти половина исходников самой игры !!!

Есть даже онлайн-версия игры, что добавило мне мотивацию не бросать портирование этой игры на EmuPocket на половине пути. 1000000Z.gif

Урезанная веб-версия игры (немного глючит и монохромная): http://obiot.github.io/Alex4-WE/

А теперь о моём порте игры "Alex the Allegator 4" на игровой консоли EmuPocket:

1) Применён графический смарт-фильтр, растягивающий исходный кадр 160x120 на весь экран 320x240. Выглядит просто ве-ли-ко-леп-но ! ! ! 1000000V.gif

2) Звук - моно, 12 бит (16 бит с нулевыми младшими 4 битами), 44100 Гц. Достаточно, чтобы радоваться музыке в игре!

3) Расход оперативной памяти: 460 кБ на кучу(heap) в пике: зарезервировал 512 кБ. Стек(stack): 32 кБ. Остальные не считал. Остаются ещё свободные регионы.

4) Расход Flash памяти - около 1 МБ. Все ресурсы игры имплементированы в бинарник.

5) Оптимизация оперативной памяти: в оригинальной игре файлы данных(спрайты, музыка, звуки, палитра, скрипты,...) распаковывались в кучу(heap) и влекли за собой расход оперативы OVER 1 MB, делая работу игры на EmuPocket невозможной. Всё распаковал, сдампил и зашил намертво во Flash, передав нужным структурам указатели на готовые данные, вместо malloc'ов, жрущих кучу.

6) Доступны все 12 уровней + спейс-шутер. Можно выбирать произвольный уровень.

7) Сохранены скрипты заставки: начало и конец. Всё идёт полноценно!

8) Выпилен редактор уровней. ИМХО он ни к чему, и увеличивает код приложения и тащит за собой кишки Аллегры.

9) Библиотека Allegro максимально укорочена - оставлено только то, что нужно для игры!

10) Библиотека DUMB в виду её более удачной реализации - сохранена полностью, но используется только то, что надо игре.

11) Порт сделан независимым от библиотек - всё встроено в проект, ничего внешнего при компиляции цеплять не нужно. Сбилден на максимальном уровне оптимизации по скорости!

12) Ну и наконец, игра оттестирована, найденные баги исправлены. Игра полностью проходится от- и до- на EmuPocket.

Что получилось, можно посмотреть на этом видео: 1227689077.gif






Автор: Gospodin_Riba Nov 21 2018, 04:26 AM
Впереди ещё одна нативная игра! 1_7.gif

Автор: Gospodin_Riba Dec 22 2018, 05:50 AM
Есть свободные печатные платы. Налетаем! smile.gif

Автор: ведущий специалист Dec 23 2018, 03:15 PM
Вопрос автору темы. Я тут заделал платку на h743, подключаю большой дисплей по FMC. Так вот, уже долблюсь пару дней, FMC молчит как партизан, осцилл ничего не показывает, дисплей при считывании ID выдает рандомную ахинею. Так как автор уже возился с данным процем, не мог бы подсказать в чем причина?Дисп подключен к банк1 NE1 адрес А16. Соответственно стучусь по адресам 0x60000000 данные и 0x60010000 команда.
CODE

static void MX_FMC_Init(void)
{
 FMC_NORSRAM_TimingTypeDef Timing;

 /** Perform the SRAM1 memory initialization sequence */

hsram1.Instance = FMC_NORSRAM_DEVICE;
 hsram1.Extended = FMC_NORSRAM_EXTENDED_DEVICE;
 /* hsram1.Init */
 hsram1.Init.NSBank = FMC_NORSRAM_BANK1;

 hsram1.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE;

 hsram1.Init.MemoryType = FMC_MEMORY_TYPE_SRAM;
 hsram1.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16;

 hsram1.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE;
 hsram1.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW;

 hsram1.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS;
 hsram1.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE;
 hsram1.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE;
 hsram1.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE;
 hsram1.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE;   //DISABLE
 hsram1.Init.WriteBurst = FMC_WRITE_BURST_DISABLE;
// hsram1.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ONLY;
// hsram1.Init.WriteFifo = FMC_WRITE_FIFO_ENABLE;
 //hsram1.Init.NBLSetupTime = 0;
 hsram1.Init.PageSize = FMC_PAGE_SIZE_NONE;
 /* Timing */
 Timing.AddressSetupTime = 0x09;
 Timing.AddressHoldTime = 15;
 Timing.DataSetupTime = 0x08;
 //Timing.DataHoldTime = 0;
 Timing.BusTurnAroundDuration = 1;
 Timing.CLKDivision = 16;
 Timing.DataLatency = 17;
 Timing.AccessMode = FMC_ACCESS_MODE_A;
 /* ExtTiming */

 if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
 {
   Error_Handler( );
 }

}


Данный инит и тайминги отлично работают на процессоре ф407 и проблем нет.

#define Bank1_LCD_C ((u32)0x60000000)
#define Bank1_LCD_D ((u32)0x60010000)

void LCD_WR_REG(u16 regval)
{
*(__IO u16 *) (Bank1_LCD_C) = regval;
}


void LCD_WR_DATA(u16 data)
{
*(__IO u16 *) (Bank1_LCD_D) = data;
}

Автор: ведущий специалист Dec 23 2018, 03:18 PM
инит систем клок

CODE

void SystemClock_Config(void)
{
 RCC_ClkInitTypeDef RCC_ClkInitStruct;
 RCC_OscInitTypeDef RCC_OscInitStruct;
 HAL_StatusTypeDef ret = HAL_OK;

 /*!< Supply configuration update enable */
 MODIFY_REG(PWR->CR3, PWR_CR3_SCUEN, 0);

 /* The voltage scaling allows optimizing the power consumption when the device is
    clocked below the maximum system frequency, to update the voltage scaling value
    regarding system frequency refer to product datasheet.  */
 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

 while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}

 /* Enable HSE Oscillator and activate PLL with HSE as source */
 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
 RCC_OscInitStruct.HSEState = RCC_HSE_ON;
 RCC_OscInitStruct.HSIState = RCC_HSI_OFF;
 RCC_OscInitStruct.CSIState = RCC_CSI_OFF;
 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;

 RCC_OscInitStruct.PLL.PLLM = 5;
 RCC_OscInitStruct.PLL.PLLN = 160;
 RCC_OscInitStruct.PLL.PLLP = 2;
 RCC_OscInitStruct.PLL.PLLR = 2;
 RCC_OscInitStruct.PLL.PLLQ = 4;

 RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
 RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
 ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);
 if(ret != HAL_OK)
 {
   Error_Handler();
 }

/* Select PLL as system clock source and configure  bus clocks dividers */
 RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_D1PCLK1 | RCC_CLOCKTYPE_PCLK1 | \
                                RCC_CLOCKTYPE_PCLK2  | RCC_CLOCKTYPE_D3PCLK1);

 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
 RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
 RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;
 RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
 RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
 RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
 RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
 ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4);
 if(ret != HAL_OK)
 {
   Error_Handler();
 }

 /*activate CSI clock mondatory for I/O Compensation Cell*/
 __HAL_RCC_CSI_ENABLE();

 /* Enable SYSCFG clock mondatory for I/O Compensation Cell */
 __HAL_RCC_SYSCFG_CLK_ENABLE();

 /* Enables the I/O Compensation Cell */
 HAL_EnableCompensationCell();
}

Подозреваю, что фмц нужно отдельно как то тактовать. Но в хал мсп вроде частота на фмц включается.

Автор: ведущий специалист Dec 24 2018, 01:43 PM
Разобрался вобщем. Нужен был ремап на 0xc0000000 и не правильно A16 высчитал. Оказывается А16 это 0хС0020000. Мало того - с частотами фмц нужно быть аккуратнее - осциллом не виделись то что частоты были запредельные.
короче 854х480 точек ооочень быстро обновляет. Причем программно, без всяких ускорителей и прочего. Как нибудь замерю тайминги - отпишусь.
Еще заметил в фмц есть прикольный битик, если его взводишь - проц обходя хардфаулт вываливается в небытие, и спасает его ТОЛЬКО бут на 3 вольта и утилита стшная чтобы стереть. Как то так.

Автор: Gospodin_Riba Dec 26 2018, 11:22 AM
Либо ramap, либо отключение кеширования

Автор: Gospodin_Riba Jan 7 2019, 03:56 PM
Заложил SDL для игры! smile.gif

Автор: Smile. Jan 7 2019, 09:00 PM

Gospodin_Riba, А вы случаем не кластер? с ютуба?

Автор: Ferrum-1827 Jan 12 2019, 07:56 PM
Может заинтересует, просто интересно...

https://sp.mycdn.me/image?id=882496399248&t=45&plc=WEB&tkn=*Pf9Wbb4yabPBn348hVxoOgpnS60&dpr=2

Автор: Gospodin_Riba Jan 16 2019, 08:41 AM
QUOTE (Smile. @ Jan 7 2019, 09:00 PM)
Gospodin_Riba, А вы случаем не кластер? с ютуба?

Нет

Автор: Gospodin_Riba Jan 16 2019, 08:41 AM
QUOTE (Ferrum-1827 @ Jan 12 2019, 07:56 PM)
Может заинтересует, просто интересно...

https://sp.mycdn.me/image?id=882496399248&t=45&plc=WEB&tkn=*Pf9Wbb4yabPBn348hVxoOgpnS60&dpr=2

"За рулём" напомнило smile.gif

Автор: Gospodin_Riba Feb 4 2019, 07:18 AM
QUOTE (Gospodin_Riba @ Nov 21 2018, 04:26 AM)
Впереди ещё одна нативная игра! 1_7.gif

Никто не забыт, ничто не забыто. Игра в разработке...

Новая веха в консоле-строительстве - DSP от TI: C6745. Уже не терпится посмотреть как он порвёт STM32H743 и BF532 smile.gif sport_boxing.gif

Из плюсов:
1) Две независимые параллельные шины: 8 и 16 бит: одна на память, другая на дисплей
2) Частота 456 МГц против 400 МГц
3) VLIW : до 6 операций за раз (что виртуализирует частоту до 6*456 = 2736 МГц )
4) Наличие плавающей точки (против BF532)

+внешняя память 32 МБ.

Олвиннеры сосут biggrin.gif

Автор: ведущий специалист Feb 6 2019, 11:01 AM
https://ru.aliexpress.com/item/MIMXRT1052-IO-600/32858757187.html?spm=a2g0v.10010108.1000014.4.287e2ed726fdal&pvid=fa707d11-25f0-448e-b04c-2a7960c1b956&gps-id=pcDetailBottomMoreOtherSeller&scm=1007.13338.80878.000000000000000&scm-url=1007.13338.80878.000000000000000&scm_id=1007.13338.80878.000000000000000

Недавно на такое наткнулся. 600 мегагерц заявлено. Я не щупал еще, но интересная штука по моему.

Автор: Gospodin_Riba Feb 7 2019, 08:12 AM
QUOTE (ведущий специалист @ Feb 6 2019, 11:01 AM)
https://ru.aliexpress.com/item/MIMXRT1052-IO-600/32858757187.html?spm=a2g0v.10010108.1000014.4.287e2ed726fdal&pvid=fa707d11-25f0-448e-b04c-2a7960c1b956&gps-id=pcDetailBottomMoreOtherSeller&scm=1007.13338.80878.000000000000000&scm-url=1007.13338.80878.000000000000000&scm_id=1007.13338.80878.000000000000000

Недавно на такое наткнулся. 600 мегагерц заявлено. Я не щупал еще, но интересная штука по моему.

Я тоже его там видел. Отталкивает BGA корпус , много тут умеют их паять? Хочется чтоб релиз был на своей плате и не таскать макеток в проекты.

Под этот чип SDK есть, правда формируется он на офсайте весьма дурацким способом. И дев-тулзы для них тоже свои - индивидуальные

Автор: Kitano8 Feb 7 2019, 08:41 AM
Модульную конструкцию не рассматриваете?
У вас можно было бы покупать модули с распаянными чипами и платы периферии к ним.
http://img.radiokot.ru/files/48383/medium/1s91fltbvm.png

Автор: Gospodin_Riba Feb 7 2019, 11:19 AM
QUOTE (Kitano8 @ Feb 7 2019, 08:41 AM)
Модульную конструкцию не рассматриваете?
У вас можно было бы покупать модули с распаянными чипами и платы периферии к ним

Для начала я сделаю отладочную плату самостоятельно. Потому что дешёвых увы я не нашёл (именно с этим чипом). Есть OMAP-L137, но он BGA да и ещё отладка с ним за бешеные деньги (из-за избыточности платы).

Есть такой вариант от индийских коллег, но магазин работает только в пределах Индии:
https://www.pantechsolutions.net/tms320c6745-dsp-starter-kit

Плата - ничего лишнего - DSP, SDRAM, узлы питания (не самые экономичные, но еслипитать от розетки, то пофиг для отладки), минимум периферии, остальное выведено на пины.

Обратите внимание на цену: 7000 индийских рупий - это почти 7000 рублей(чуть-меньше).

А теперь взгляните на вариант, предложенный Ведущим специалистом: цена 3000 р с хвостиком.

Это к вопросу покупки модулей именно с этим DSP. Сразу скажу, что не уложусь в 3000 р. Поэтому скорее всего, дальше печатных плат по символической цене я не пойду. Распаивать и покупать компоненты прийдётся самостоятельно.

На отладочной плате будут: DSP, SDRAM, SPI Flash (для загрузки, съемная - можно прошить Понипрогом или AVR-дудкой или ещё чем угодно), UART для загрузки с ком-порта, 2 стабилизатора питания, контроллер сброса. Кварцы 24 МГц и 32768 Гц. Остальное - на пины.

Конечный вариант конструкции не ясен: аудио, видео... Возможно можно будет несколько вариантов.

Автор: BlasterMaster Feb 18 2019, 07:31 PM
QUOTE (Gospodin_Riba @ Feb 4 2019, 07:18 AM)
Олвиннеры сосут  biggrin.gif
Угу, пока не посмотришь на цены у техаса, поставки не менее вагона, и как цена-фичи-производительность а также затраты сил к результату с китайцами соотносятся... icon_lol.gif. Китайцы могут и 4-ядерник на гигагерц по 5 долларов подогнать. И програмить его, по крайней мере, основные ядра - намного менее инопланетно чем какой-то техасский VLIW, с экзотичными проприетарными тулсами, которыми большинство общедоступных сорцов никто никогда не собирал и все такое.

И как по мне - даже если на это потом сорец вывалить, толку будет фиг. Потому что мало кто подорвется разбираться с специфичными техасскими тулзами для DSP. Это имеет смысл только если потом планируется полжизни кодить только в техасских тулсах, 1-2 семейства их сигнальников. Придется основательно загадить мозг интимными особенностями этой неведомой гравицапы, с риском что полученны опыт будет некуда приткнуть, если нет планов хардкорно кодить под пару семейств техасцев полжизни. А allwinner что, знания что такое ARM и GCC пригодны для работы с еще хреновой кучей систем. Не обязательно allwinner и даже не обязательно ARM. В этом половина смысла си и была, если кто-то еще не понял - не привязываться к 1 конкретному камню и его особенностям намертво.

Автор: Gospodin_Riba Feb 19 2019, 01:13 PM
QUOTE
Угу, пока не посмотришь на цены у техаса

DSP от TI - вариант для тех, чьё время стоит дорого и нет желания ковыряться в линуксах для понятия как работает железо.
Абсолютно прозрачный для освоения DSP - без линуксов и кало-кубов.
Я лучше переплачу за процессор, чем потрачу пол-жизни на расколупывание линукса с целью понять как работают базовые периферийные узлы.

QUOTE
поставки не менее вагона, и как цена-фичи-производительность а также затраты сил к результату с китайцами соотносятся...

Тут тоже неверно. Я взял их в количестве 2 штуки.

QUOTE
Китайцы могут и 4-ядерник на гигагерц по 5 долларов подогнать

А другие не могут? Какое мне до них дело?
Или вы думаете, что вышеупомянутый DSP не клонируется китайцами столь успешно как всё остальное?

QUOTE
И програмить его, по крайней мере, основные ядра - намного менее инопланетно чем какой-то техасский VLIW

Тоже неверно.
CCS от TI - это тот же самый C/C++ компилятор с уровнями оптимизации и по стилистике совпадающий с C99 (привет GNU smile.gif !!! )

QUOTE
, с экзотичными проприетарными тулсами

См. выше. CSS проприетарен не более чем Keil под ARM.
Многие тут пишут исключительно на GCC?

QUOTE
, которыми большинство общедоступных сорцов никто никогда не собирал и все такое.

Ой! Вот только не надо ля-ля. smile.gif
У этого DSP есть довольно определённая ниша, в которой он используется. Примеров с туториалами в интернете - валом просто!

QUOTE
И как по мне - даже если на это потом сорец вывалить, толку будет фиг. Потому что мало кто подорвется разбираться с специфичными техасскими тулзами для DSP.

Школьники и студенты осиливают... никто не жаловался.
Туториалов с примерами программирования под этот DSP - масса!

QUOTE
Придется основательно загадить мозг интимными особенностями этой неведомой гравицапы

Вот именно это я и хочу попытаться сделать, как это проделал с БлекФинами 10 лет назад )))
Тот же "инопланетный" чип с "проприетарными" как вы выразились, тулзами..

QUOTE
А allwinner что, знания что такое ARM и GCC пригодны для работы с еще хреновой кучей систем.

Олвиннер - это треш и лажа, заточенная исключительно под линукс/ведро , китайское и глючное поделие, которое пилится линуксоидами и всё никак допилиться не может.
Которое кроме как своей сверх-дешевизной более ничем не может взять.

И где нормальный SDK хоть под один олвиннер в стиле BareMetal ??? линукс и ведро SDK - не в счёт.
Скажете много регистров, которые вручную не проинициализировать без ведра? А вот врёте - почему тогда в DSP типа BF532 и C6745 это делается просто?

Удалось даже SDK раздобыть под C6745 - в нем примеры на C/Asm как инитить и работать с базовой периферией.

В завершении, хочу добавить. Да, DSP - это вам не в тапки гадить (ARM), линуксоидам там не место и нужен особый склад ума (железный).

А тем временем, в местном магазине уже 1.5 года валяется Raspberry Pi за копейки , которую никто не берёт! ))) И понятно почему.
Кстати, могу отладку Olinuxino на Allwinner A13 переслать за символическую стоимость, ибо мне она нафиг не нужна!

Да и вообще, сравнивать DSP и Cortex-A как-то нет смысла...

Автор: Gospodin_Riba Feb 19 2019, 01:32 PM
Здесь я перестаю писать про DSP, оставив эту тему для STM32 и EMUPocket.

Для устройства на DSP, открыл отдельную тему: http://vrtp.ru/index.php?showtopic=30775

Автор: BlasterMaster Feb 21 2019, 02:10 AM
QUOTE (Gospodin_Riba @ Feb 19 2019, 01:13 PM)
DSP от TI - вариант для тех, чьё время стоит дорого и нет желания ковыряться в линуксах для понятия как работает железо.
Это вариант для тех кому нужен сигнальный процессор. Чтобы сигналы обрабатывать. Это DSP делают лучше остальных "по умолчанию", что логично. Поскольку область специфичная и полна крутой математики - те кто в нее вхожи получают прилично денег. Их мало. В остальных случаях эти штуки нахрен не сдались, как по мне. Как процессор общего назначения ни о чем, как МК - переросточные. Своеобразная ниша. А большинство DSPшников нынче упаковывают в SoC. Сопроцессором. Для не сильно продвинутого но быстрого числодробления. У того же Ti для этого OMAPы отродясь были. А то что они ща полудохлые - ну как бы пытаться всех нагло доить конечно можно, но как бы не стоит обижаться что они к конкурентам уйдут. В том числе и узкоглазым.

QUOTE
Абсолютно прозрачный для освоения DSP - без линуксов и кало-кубов. Я лучше переплачу за процессор, чем потрачу пол-жизни на расколупывание линукса с целью понять как работают базовые периферийные узлы.
А цель какая? Научиться работать с вот этим процессором? Хорошо, а потом куда это знание девать? Для general purpose применений оно с такими соотношениями ни о чем. Остаются какие-то узкие DSPшные ниши. Гуй на DSP? Как раз просадить времени на переизобретение велосипедов. Туда же и написание работы с всей периферией, по большому счету. Если время стоит дорого - ок, в каком месте подобного проекта с такими соотношениями наступает профит? И как это происходит? Для меня выглядит как будто единственный аргумент за - захотелось поприкалываться, с именно этим процом. Нормальное желание, понимаемо smile.gif. Я не прав, ожидается жирный профит, чтобы на оплату времени напирать?

QUOTE
Тут тоже неверно. Я взял их в количестве 2 штуки.
А все-равно техас фирма так себе. Жадная, удобно делает себе, в общем влопаться в 100% зависимость от них - так себе идейка.

QUOTE
А другие не могут? Какое мне до них дело?
А техасцы - не могут, как показал слив рыночной доли на поле "апликушных" ARMов. Дошло до того что теперь даже промконтроллеры на китайских проциках. Потому что платить техасу в разы больше за то что они видите ли мажоры - нафиг надо. А какое дело - мне вот как раз любопытно что за этим стоит.

QUOTE
Или вы думаете, что вышеупомянутый DSP не клонируется китайцами столь успешно как всё остальное?
А черт бы его знает. Я STM32 то клонированный очкуюсь брать - я без кульных либ предпочитаю, в регистрики, сам, по STMским даташитам, сделав себе макросы. И даже самые очевидные клоны STM'а отличаются, например GD-какеготам перегружает какой-то левый флеш в большой SRAM. И я сомневаюсь что работа с флешом там похожа на ST. А китаезный CMSIS и перепилы STшных либ узкоглазые пусть сами юзают - поэтому меня отличия в железках таки волнуют. Да, мне иногда хочется примерно того же что и вам - предсказуемую штуку. Но в данном случае - относительно мелкую, супер-частоты и мегабайты памяти ни к чему. Вот периферия - да.

QUOTE
CCS от TI - это тот же самый C/C++ компилятор с уровнями оптимизации и по стилистике совпадающий с C99 (привет GNU smile.gif !!! )
Это НЕХ, про которую большинство прогеров не знает и не собирали ей код. Насколько оно реально C99, какие там особенности - а вот вы и расскажете. Реверанс в сторону GNU не понял, у них C99 есть черт знает сколько. Я под STM32 учусь корябать целясь в C99. Конечно же без VLA и прочих стандартных библиотек. Есть соблазн немного C11 заюзать, там полезности типа compile-time assert-ов есть. Не то чтобы в более ранних C так совсем нельзя, но выглядит очень уж криво. Конечно сишный препроцессор можно еще и не так изнасиловать, но все же.

QUOTE
Многие тут пишут исключительно на GCC?
Тут? Не знаю, мне кажется что тут ARMы вообще програмит несколько человек, а техасские сигнальники - наверное вы первый.

QUOTE
У этого DSP есть довольно определённая ниша, в которой он используется. Примеров с туториалами в интернете - валом просто!
Туториалы это круто, а вот трах с сборкой либы которая под менее экзотичные вещи просто компиляется - не очень. Если такого траха не случится - я пожалуй удивлюсь.

QUOTE
Вот именно это я и хочу попытаться сделать, как это проделал с БлекФинами 10 лет назад )))
Тот же "инопланетный" чип с "проприетарными" как вы выразились, тулзами..
Гггг вот кстати на блэкфины был порт линуха. И gcc - а удачи собрать линуха чем-то кроме gcc :D. Там как я понял историю, gcc был древний, свежее не сделали, ядерщики запарились воркэраундить баги античных GCC и в конце концов грохнули всех кто не умеет свежие GCC. В том числе и блэкфинов. Станет кому надо - ну может отреанимируют трупик. А не надо - так и нет проблем.

QUOTE
Олвиннер - это треш и лажа, заточенная исключительно под линукс/ведро , китайское и глючное поделие,  которое пилится линуксоидами и всё никак допилиться не может.
Которое кроме как своей сверх-дешевизной более ничем не может взять.
Да, он дешевый - и этим хорош. Это позволяет много новых применений которые ранее были недоступны. А насчет глючности, я просто оставлю это здась:
CODE

root@embd4:/# uptime
19:34:28 up 148 days,  4:03,  1 user,  load average: 0.00, 0.03, 0.04
Несколько таких птичек держат меня здесь, делая странную сетевую магию за пределами вашего понимания. Были бы они глючными - мы бы не разговаривали тут. Ну вот так вот. Конкретно этот делает CDC-Ether. Удобно, питание и сетка по 1 шнурку. Но вот самому кодить это мне бы не хотелось. И вообще, allwinner в промконтроллеры пхают. Реально распихано в производства, управление инфраструктурой и проч уже. Тысячами. Просто руки надо из правильного места и свою систему знать.

QUOTE
И где нормальный SDK хоть под один олвиннер в стиле BareMetal ???
GCC есть, даташит есть. А проприетарные IDE - по большому счету та же пихтонрастия, вид сбоку - большой черный ящик делающий внутрях неведомо что.

QUOTE
Скажете много регистров, которые вручную не проинициализировать без ведра? А вот врёте - почему тогда в DSP типа BF532 и C6745 это делается просто?
А как определяется что просто и что сложно? Ну а линух - потому что програмить систему такого масштаба в стиле bare metal не прикольно становится. Начинает хотеться многозадачность, сеть, гуй, сложную периферию (см про CDC-Ether)... изобретать все эти велики с нуля всем лениво. Так что можно, но спрос мизерный - вот направление и не развивается особо. Но в репках sunxi можно найти несколько тривиальных прог заливаемых через boot ROM по usb и напрямую ворочающих регистры. Ну и бутлоадеры это делают, куда ж без них. Сказ про линух это круто, но довольно много интересного случается ДО того как он запустится, в т.ч. и работа с периферией.

QUOTE
В завершении, хочу добавить.  Да, DSP - это вам не в тапки гадить (ARM), линуксоидам там не место и нужен особый склад ума (железный).
Да вообще-то линуксоиды в том же блэкфине и были. Насчет техасцев не знаю, официального порта вроде не было, а кто там в кулуарных форках у кого - черт его знает. А что до железного склада ума - я думаю что вон те толпы разработчиков открытых (!!!) SoC на RISC-V куда более железные ребята и через несколько годиков покажут и ARM и техасу как в тапки правильно гадить. Сделав с железом то же то уже случилось с софтом.

Например, забахав себе и железо и экосистему софта. Тот же линух и десятки тысяч программ, например. Пока вас с вашим складом ума Intel и Microsoft под килем протягивают своими секурбутами и management engine'ами, без возможности это оспорить. Театр начинается с вешалки, а контроль над железом - с своего рабочего окружения, наверное. А у вас с этим швах. Поэтому периодически забавные плачи случаются, когда MS или кто там еще в очередной раз за вас все решил. А я ехидно ухмыляюсь - обычно все же могу отспорить свое. Семейство технологий достаточно обширно и масштабируемо, поэтому удается нестандартно поприкалываться. Я говорил про сетевую магию? Ну вот кроме всего прочего я думаю что она устойчива и к роскомнадзорам, а пожалуй и к штукам покруче, типа великого китайского файрвола. А россияне урезанный вариант этого кажись могут запустить. А, ну да, вы такое заметите только когда факты вам по лицу предъявятся. Типа выноса vrtp, благо есть за что. Вон народ в "счетчиках" кипишует. По большому счету, к 90% статей вертепа можно прикопаться. А если их снести, что останется?! Прогресс и должен быть таким - дерзким и на грани фола. Но роскомкретинам это не докажешь. Они сначала замочат все живое, а потом разберутся.

QUOTE
А тем временем, в местном магазине уже 1.5 года валяется Raspberry Pi за копейки , которую никто не берёт! ))) И понятно почему.
Потому что магазин накрутил небось 300%, серьезный контроллер из этого делать нафиг надо (да и броадком не лучше техаса). А если просто пострадать - можно заказать за треть цены онлайн, а местный магазинчик идет лесом. Кстати DSP там тоже есть - VideoCore IV DSPшник вроде. Хоть и косит под GPU. Эта хреновина вообще первым стартует, а потом - ARM до кучи раскочегаривает.

И тем не менее, кроме кучи пихтонрастов - даже там бывают и весьма неординарные кадры. Кто-то этой гавниной например FM синтезировать сумел. GPIO. Из линуха. На FMовских частотах. Ну да, на апи забили - прямое дергание регистров контроллера GPIO, с такой частотой сисколы нереально гнать. А контроллер GPIO достаточно близко оказался к процессорному ядру и может такие вот частоты выдавать. Так что этот кусок стрема до кучи немного SDR-передатчик оказался. Хоть там и нет железа для этого.

QUOTE
Кстати, могу отладку Olinuxino на Allwinner A13 переслать за символическую стоимость, ибо мне она нафиг не нужна!
Ммм... интересно.

QUOTE
Да и вообще, сравнивать DSP и Cortex-A как-то нет смысла...

Да, они разные. И в разные ниши целят по большому счету.

Вообще предлагаю немного скостить накал дискуссии. Вы интересный тип, мне временами нравится ваш стиль мышления, и у вас наверняка можно научиться ряду трюков. А может и вы чему научитесь. Я на самом деле происхожу из типов с низкоуровневым мышлением, да и экзотичные железки мне по вкусу. Просто с неких пор меня задолбало когда мной пытаются вертеть проприетарщики, да и ломиться в закрытую дверь и бороться с искусственными трудностями - тоже. И велы я изобретать хочу только там где это имеет смысл, а не вообще везде smile.gif

p.s. ну ладно, что-то я расфлеймился, пардон за обсирание малины.

Автор: Gospodin_Riba Feb 24 2019, 12:51 PM
QUOTE
Это вариант для тех кому нужен сигнальный процессор. Чтобы сигналы обрабатывать. Это DSP делают лучше остальных "по умолчанию", что логично. Поскольку область специфичная и полна крутой математики - те кто в нее вхожи получают прилично денег. Их мало. В остальных случаях эти штуки нахрен не сдались, как по мне. Как процессор общего назначения ни о чем, как МК - переросточные. Своеобразная ниша

Вот я и ставлю цель проверить, насколько будет хорош управляющий код на этом DSP. Особенно с параллельным выполнением инструкций.

QUOTE
А большинство DSPшников нынче упаковывают в SoC. Сопроцессором. Для не сильно продвинутого но быстрого числодробления. У того же Ti для этого OMAPы отродясь были. А то что они ща полудохлые - ну как бы пытаться всех нагло доить конечно можно, но как бы не стоит обижаться что они к конкурентам уйдут. В том числе и узкоглазым.

Мне ненравятся современные тенденции в процессоро-строительстве. Была б моя воля, поубивал бы всех, кто достоен. За калокубы, линуксы,... в контроллерах.

QUOTE
А цель какая? Научиться работать с вот этим процессором? Хорошо, а потом куда это знание девать? Для general purpose применений оно с такими соотношениями ни о чем. Остаются какие-то узкие DSPшные ниши. Гуй на DSP?

Цель самая благая - подарить людям очередной велосипед, выражаясь вашими терминами. К тому же мне это интересно.

QUOTE
Если время стоит дорого - ок, в каком месте подобного проекта с такими соотношениями наступает профит? И как это происходит? Для меня выглядит как будто единственный аргумент за - захотелось поприкалываться, с именно этим процом. Нормальное желание, понимаемо smile.gif. Я не прав, ожидается жирный профит, чтобы на оплату времени напирать?

Здесь не то место, чтобы говорить о профитах. Не всё деньгами меряется. Здесь JUST FOR FUN. За профитом идите в другие места.

Остальное нет желания комментировать, просто уже надоело.

Автор: microxa Feb 25 2019, 10:10 AM
Gospodin_Riba, вопрос к Вам как к иллюминату в процессорах АРМ32,

наверное это единственный проект с попыткой реализации SDR для приема ам/чм радио.
http://www.radioradar.net/radiofan/radiofan_technology/demodulator_am_fm_microcontroller.html

больше похожий на фэйк нежели на конкретное решение задачи(всетаки 12бит АЦП на частоте ядра 216 МГц,)...

A H743 -покруче же будет?

В тему DSP и приемников на этом методе, есть Белка-DSP http://www.cqham.ru/forum/showthread.php?39208-%CF%F0%E8%B8%EC%ED%E8%EA-%C1%E5%EB%EA%E0-DSP-%F2%E5%F5%ED%E8%F7%E5%F1%EA%E8%E5-%E2%EE%EF%F0%EE%F1%FB

но он, на базе с 28-/56-разрядным 50MIPS кодека DSP ADAU1761, про которое полное хз что оно из себя представляет. хотя походу чтото древнее. Удивительно как смогли реализовать демодулятор на таком черном ящике...

p.s
просто непонятно почему ARM32 не совсем DSP...

p.p.s
сам то я х86-32битчик (64бит уже не моё, чисто религиозно ) и несмотря на обилие гитхабов все это DSP даже под х86 числодробилку представляет из себя сплошной отстой по реализациям...

p.p.p.s
Я кстати, тоже занимаюсь эмулятором, древне компа БК0010, и интересовался дендивским ускорителем что PPU6238 но толком не понял. Потом "прикручивал" синтез AY к БК0010 . Но всетаки есть хотелка отыметь виртуально и дендивский синтез. А Ваша консоль она эмулирует и его даже?

Автор: microxa Feb 25 2019, 10:07 PM
С нативными играми - отличная кстати идея.

Тоже делал такое чтоб, прогать под бк-эмуль (на чем привык), например игру на бейсике вот портовал, под х86-ую нативку, запускаеться как exe (грузится как либа)... Вот это был фаааан.. на так доставляющем, пещерном уровне...

А вот этот проц STM то этот можно рулить с USB писюка, чтоб синтез к примеру заюзать?

попиликать там.. музычки трекерской.. или в экранчик чего пописать..


Автор: microxa Feb 25 2019, 10:22 PM
До сих пор еще много интересного сэкаса.. например по сверхбыстрым выводам пикселей в картинку. со звуком были те еще грабли.. но вроде как отбил от тормозов (тестирую на скинутом до 570мгц нетбуке), и получил нормальный рилтайм.. прям как машинка времени..
оппа.. и нео ты на борту.. похудоноссера..

Автор: romanetz Feb 26 2019, 05:49 AM
microxa, про sdr вы не правы, я минимум 5 проектов могу назвать на stm32: пион-dsp, белка-dsp, аист, маламут, монка
Общая причина в том, что пользователи привыкли к сервису "взрослых" sdr, а стмка тупо не успевает.
Среди stm32 ещё семейства появились, stm32mpxxx и stm32l4r5/7/9. А вообще резво они их клепают (на самом деле, это мы застыли)

Автор: microxa Feb 27 2019, 11:37 AM
romanetz
QUOTE
microxa, про sdr вы не правы

да, извиняюсь.. это была пурга (не совсем на трезвую голову..)
QUOTE

я минимум 5 проектов могу назвать на stm32: пион-dsp, белка-dsp, аист, маламут, монка

про "маламут" хорошо, что напомнили, как раз туда пихнуть STM32H743 советовали (а то g407 тормозил и не осиливал 192кгц на приеме FM), но тогда он только анонсировался...

Автор: vladlen Feb 27 2019, 12:55 PM
QUOTE (Gospodin_Riba @ Feb 24 2019, 12:51 PM)
... Здесь JUST FOR FUN. За профитом идите в другие места...

Это классно, что просто удовольствия ради делаете такие прикольные и трудозатратные вещи wink.gif

Есть уже какие-нибудь промежуточные результаты?

Автор: Gospodin_Riba Mar 1 2019, 06:00 AM
QUOTE (microxa)
A H743 -покруче же будет?

Капитан Очевидность.

QUOTE (microxa)
и несмотря на обилие гитхабов все это DSP даже под х86 числодробилку представляет из себя сплошной отстой по реализациям...

Холивар? Мо мнение, что x86 - более отстойнее, чем ARM. Потому что регистры неполноценны и жёстко привязаны к определенным операциям.

QUOTE (microxa)
Но всетаки есть хотелка отыметь виртуально и дендивский синтез. А Ваша консоль она эмулирует и его даже?

Очевидно, что да.

QUOTE (microxa)
А вот этот проц STM то этот можно рулить с USB писюка, чтоб синтез к примеру заюзать?

Очевидно, что можно. Будет софт-эмулятор 2A03.

QUOTE (microxa)
попиликать там.. музычки трекерской.. или в экранчик чего пописать..

Да запросто. Ещё проще, чем игры воспроизводить.

QUOTE (microxa)
например по сверхбыстрым выводам пикселей в картинку. со звуком были те еще грабли.. но вроде как отбил от тормозов (тестирую на скинутом до 570мгц нетбуке), и получил нормальный рилтайм.. прям как машинка времени..

С использованием DMA сверхбыстрый вывод пикселей не особо нужен, ибо параллельность(при условии когда время переброса на экран меньше, чем время на всё остальное).
Особенно когда шина не одна, а несколько.

QUOTE (vladlen)
Есть уже какие-нибудь промежуточные результаты?

Смотря что понимать под результатами.
Работа идёт в нескольких направлениях:

1) Пишется игра (не в одиночку, а коллективом).
2) Делается новое ядро на C6745
3) Обдумывается универсальный интерфейсный софт для выбора и загрузки программ (который портировался сразу бы на STM32H743 EMU-Pocket и C6745).

Это список видимых задач. Есть ещё менее очевидные. Сроки называть не буду.
Но результаты есть и их масса. Но пока не доделаю, ничего выкладывать не буду.

Вот кстати, нашли более достойного кандидата на замену FATFS: https://os.mbed.com/blog/entry/littlefs-high-integrity-embedded-fs/
Из описания эта ФС хороша для сменных носителей: высокая износостойкость и быстродействие.

Автор: microxa Mar 1 2019, 11:30 AM
QUOTE
Да запросто. Ещё проще, чем игры воспроизводить.


А ведь, это... можно и нативные бинари в память коей там аж 1мегабайт всякоразной, засылать и выполнять, без всяких перепрошивок то...

Я такое на LPT какое время практиковал, на ворохе 8бит защелок и буферов 373/245 и SAB8088-ым гдето жрущим полампера на 8мгц, ну и ограничился пиканьем пинов (с LPT и то побыстрей пикало).. Короч бесперспективняк ввиду бессмыслености.. Надо былобы хотябы 8051-ый изучать, или дендивский 6527 заинтерфейсить (в нем хотябы синтез, смачный на бассовом треугольнике)...

А с ARM имел дело на WinMobile2003, Аппарат был смартфон самсунг какойто, на Intel Xscale, 400мгц, играбельно тащил эмулятор Gens и квэйк1 -ый..

Cобирал кросскомпилер Free Pascal запускал хеллоARM.ехе, и потом и аж сам компилятор (запускалось через костылек эмулирующий консольку). Правда он ворох линупсовых тулз тянул и вышел облом со сборкой хеллоу-win32 на 24метрах памяти оперативы... st.gif

Но в целом то, если алгос боле-менее универсально написан то разницы то и нет где и на чем ему стартануть.. Но естественно все решают нюансы..

Удивляюсь как "такие прикольные и трудозатратные вещи" как тотже FCEU вы смогли адаптировать к таким суровым условиям.. (лично я не осилил его на Borland C++ буилдере забуилдить, так как он во многом GCC oriented )..

QUOTE
Холивар? Мо мнение, что x86 - более отстойнее, чем ARM. Потому что регистры неполноценны и жёстко привязаны к определенным операциям.

Согласен (какой холивар).. x86 - та еще муть, болотная... Не удивительно, что, толковых МК не было на них... А вот персоналок (и настольных и наколенных) как грязи...


Автор: romanetz Mar 1 2019, 11:47 AM
QUOTE (microxa @ Feb 27 2019, 03:37 PM)
про "маламут" хорошо, что напомнили, как раз туда пихнуть STM32H743 советовали (а то g407 тормозил и не осиливал 192кгц на приеме FM), но тогда он только анонсировался...

H743 уже тоже не торт, есть и побыстрее в линейке stm32

Автор: Gospodin_Riba Mar 2 2019, 12:26 PM
QUOTE (romanetz @ Mar 1 2019, 11:47 AM)

H743 уже тоже не торт, есть и побыстрее в линейке stm32

Быстрее в плане тактовой частоты или мипсов?
На st.com нет новостей о новом флагмане.

Автор: Gospodin_Riba Mar 2 2019, 12:30 PM
QUOTE
Удивляюсь как  "такие прикольные и трудозатратные вещи" как тотже FCEU вы смогли адаптировать к таким суровым условиям.. (лично я не осилил его на Borland C++ буилдере забуилдить, так как он во многом GCC oriented )..

Вначале надо собирать в тех средах, в которых писался эмулятор.
Потом выкидывать всё ненужное.
Потом выделять вывод графики, звука, считывание кнопок.
Затем подменять их на нативные функции той платформы на которую портируем.
ФСЁ )))

А Borland C может C99 ? Если нет, то бида, пичаль...

Автор: microxa Mar 2 2019, 01:58 PM
QUOTE
А 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





Автор: Gospodin_Riba Mar 2 2019, 03:41 PM
QUOTE
Лично мне, хватило квеста со сборкой "нового" Quake1, заточеного на MS$ компилятор.. попредметней Си поизучал (в очередной раз поняв что "не моё".. слишком всё сложно)..

Раз уж Quake1 собрали, то и Chocolate Doom осилите smile.gif Он даже под STM32 есть. Я не стал с ним возиться по двум причинам: не поклонник 3D игр вообще, вторая причина: недостаточно оперативной памяти.

А вот Open Tyrian портировал на TF, у него 64 МБ одной микросхемой, но нет плавучки, что очень печально (SNES требует!) .
Что такое TF и с чем его едят написано более 10 лет назад тут:
http://zx-spectrum128k.narod.ru/Romanich/emu-apparatchik/TF.htm
Не удивляйтесь, что на narod.ru - владелец сайта куда-то подевался и связь с ним потеряна.
Но часть контента там - моя.

QUOTE
Глянул что нового у энтузазистов Free Pascal... походу машкодовый ARM компоновщик так и не запилили (вот почему и тащит gnu-binutils)... К слову сказать, у меня эмуль + "нативные прикладухи" собираються и на FPC (под х86-win32 он их не тащит)..

Я тоже много прогал под железо ПК, слышали про TMT Pascal? Это паскаль под ДОС, но под 32-битный защищенный режим. Идет под DOS, Win9x, WinXP(с ограничениями).


Автор: microxa Mar 3 2019, 05:20 AM
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..

Ну а про TMT как не знать-то.. (не юзал правда)..

Автор: Gospodin_Riba Mar 3 2019, 10:13 AM
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 МГц официально.

Автор: microxa Mar 3 2019, 12:15 PM


QUOTE
ОЗУ как кот наплакал и двумя фрагментированными кусками: 192 кб

Так и представляеться: жирный кот из м/ф про попугая кешу, с мемом "этоже бубль гум".
Однако вот, товарищи, и на 120mhz Cortex-M3 творили шедевральные вещи как например эмулятор советских ПЗУ (16бит, мултиплексированые Адрес/Данные)
http://forum.pk-fpga.ru/viewtopic.php?f=43&t=5450

Даже подумалось: блин, такому МК как делать нефиг "хардварно заэмулить" почти ВСЮ бэкашку.. вместе с муз. процессором...

Автор: romanetz Mar 3 2019, 12:58 PM
https://www.st.com/en/microcontrollers-microprocessors/stm32-arm-cortex-mpus.html?querycriteria=productId=SC2230

Автор: romanetz Mar 3 2019, 01:03 PM
QUOTE (Gospodin_Riba @ Mar 2 2019, 04:26 PM)
QUOTE (romanetz @ Mar 1 2019, 11:47 AM)

H743 уже тоже не торт, есть и побыстрее в линейке stm32

Быстрее в плане тактовой частоты или мипсов?
На st.com нет новостей о новом флагмане.

Всего и побольше
Но - только bga
В кубе не так давно появился

Автор: microxa Mar 3 2019, 01:24 PM
QUOTE
Всего и побольше

да былоб чего.. а то все опять же

QUOTE

2 × ADCs with 16-bit max. resolution (12 bits 5 Msps, 14 bits 4.4 Msps, 16 bits 250 ksps)
2 × 12-bit D/A converters (1 MHz)


Почти смартфонный проц с 3D GPU, а аудио никакое.. странно..
p.s
Поди не загорами и ARM64, все с такимже цап/ацп

Автор: romanetz Mar 3 2019, 01:47 PM
В смартах кодеки внешние ставят, только в самых дешёвых используют встроенные цапы
Подозреваю, что технологически невозможно обеспечить низкий уровень шума и помех от цифровой части, чтобы имело смысл больше 12 бит делать

Автор: Gospodin_Riba Mar 4 2019, 05:58 AM
QUOTE (microxa @ Mar 3 2019, 12:15 PM)
Так и представляеться: жирный кот из м/ф про попугая кешу, с мемом "этоже бубль гум".
Однако вот, товарищи, и на 120mhz Cortex-M3 творили шедевральные вещи как например эмулятор советских ПЗУ (16бит, мултиплексированые Адрес/Данные)

Я с полёта SEGA и SNES смотрю smile.gif

Автор: microxa Mar 4 2019, 06:19 AM
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 и то исключительно напару.. с кемто... кого уже нет..


Автор: Kitano8 Mar 4 2019, 08:28 AM
Для людей , не предъявляющих высоких требований к качеству звука, 12 бит звучит вполне сносно, имхо. Сам как-то делал плеер wave на stm32f072, звук шел с ЦАПа на аудиопроцессор и потом на усилитель для наушников.
Для эмулятора NES ЦАПа stm32 должно с избытком хватить. Автор видимо считает также, раз использовал встроенный ЦАП.

Автор: microxa Mar 4 2019, 06:01 PM
чтож.. ну хоть комуто было делать нефик как накатать how-to
"Пишем свою простейшую программу для ARM Cortex-M3"
https://habr.com/ru/company/embox/blog/421833/

И сей пример отработал аж в древнем qemu 0.13 (почти 10 летней давности), достал из винрара вместе с mingw32 (на gcc3.4.6). quemu х86 она на ура сгребала, со сборкой эмуля под арм вышел облом отсосович (влом разбирацо, и так после этой виндовой линупсятины чуствуеш себя чемто вымазаным)...

Походу f407, пока сильно круто..

У qemu Актуальная поддержка только stm32f205_soc.c
https://github.com/qemu/qemu/tree/master/hw/arm

а на f205-ых была какаято нет-дуйня 2
http://wiki.amperka.ru/netduino:установка-и-настройка
под решетчатый быдлокодинг в шизуал студии...

вопщем, мерзость на мерзости...





Автор: microxa Mar 5 2019, 09:34 AM
romanetz
погодите.. а вы ведь тот еще "иллюминат" в STM32...

в теме про http://vrtp.ru/index.php?showtopic=23730
QUOTE

Совместно с участниками форума вегалаб сделали прошивку под USB Audio Class 1 с
поддержкой нескольких частот дискретизации (44.1 48 88.2 96 176.4 192 в режиме
16 бит, 44.1 48 88.2 96 в режиме 24 бита)
По сути это - асинхронный транспорт USB-I2S


Да уж.. потрясно.. Конечно понятно, такие вещи не один год шлифуются...

И чего у буржуев нет подобных реализаций?

А вот смотрите как я понял там USB идет через костылек на М3-ем же?
судя по схеме например этой
http://robotosha.ru/stm32/stm32f407-discovery-board.html

STM32F103C8T6, и как оно в плане USB-2.0 по скоростям и надежности?

USB-VID-PID и устройства непосредственно в нем сидят, или чего..

В смысле.. реально этот дискавери переделать в одно-чиповку ???

Автор: microxa Mar 5 2019, 11:12 AM
мда.. "костылек"-то походу тормозной, раз его обойти пытаются припипириванием usb3300..
нифигасе жестяночка.. https://adelectronics.ru/2017/03/20/нескучная-пайка-usb3300-usb-hs-на-stm32f407/

короч... хрен со всем этим.. лампочками помигать и в COM шнурок на PL2303 хватает..
Тем более на уровне win32 системы "одно обращение" к USB (похрен какому) составляет 1000гц (в xp, в семерко-десятках и того меньше)... окулельно конечно..


Автор: romanetz Mar 5 2019, 01:31 PM
Собсно, чего добиться-то хотите? Я платку брал с waveshare, резисторами по 50 ом все пины ulpi соединял, кроме питания на неё - и вперёд.
Про частоту кадров не понял, да и в винде там поблочно запросы на usb делаются (пульнул блок из N передач и ждёшь, пока колбэк не дёрнется, мол, готово)
Я не стал особо извращаться, потому как разницу между 192/24 и 48/16 не слышу и даже mp3 320 от оригинала не отличаю.

Автор: Gospodin_Riba Mar 5 2019, 02:28 PM
microxa, просьба, не засоряйте тему отвлеченными абстракциями.
Тут обсуждение игровых консолей на базе STM32, а не "как скомпилять фиг знает че под STM".

Создайте свою тему и пишите в неё.

Автор: microxa Mar 5 2019, 02:55 PM
QUOTE

просьба, не засоряйте тему отвлеченными абстракциями.
Тут обсуждение игровых консолей на базе STM32

Gospodin_Riba приношу извинений, о, рыба-иллюминат. Создалось впечатление что на STM32 вы подзабили... Изучив (пусть даже немного) этот вопрос, я Вас теперь понимаю..
Просто показалось что ARM и х86 в чемто похожи.. Похожи пожалуй одним: Неизвестно на что расходуются эти MIPS-ы, что всегда маловато. килобайт, мегагерцев..

QUOTE
Собсно, чего добиться-то хотите?

Вот узнать хотел, понять, разобраться... Узнать мнение..
фенькс..Разобрался.. (уже ничего не хочу)

Автор: Faberge Mar 23 2019, 01:40 PM
Вот это тема! Очень интересно, сам недавно получил свою H743 Nucleo, до этого упражнялся с дисплеем на F746 Disco и думал о чем-то подобном. Видел в интернете ролики, но не думал, что всю информацию вместе с исходниками можно найти вот прям тут, на русском. Огромное спасибо!

У меня есть несколько вопросов, правильно ли я понимаю, что инициализация и работа с железом происходит с помощью LL HAL библиотек? Почему не CMSIS? И почему не хотите добавить внешнее ОЗУ или ПЗУ?

Удивительно, преступно мало внимания теме!

Автор: Gospodin_Riba Mar 25 2019, 01:49 PM
QUOTE
Вот это тема! Очень интересно, сам недавно получил свою H743 Nucleo, до этого упражнялся с дисплеем на F746 Disco и думал о чем-то подобном. Видел в интернете ролики, но не думал, что всю информацию вместе с исходниками можно найти вот прям тут, на русском. Огромное спасибо!

smile.gif
Лет 10 назад с этими эмуляторами было очень горячо: их портировали на телефоны с Symbian OS (прямо в Кейле для АРМ) и некоторые были даже под MIDP 2.0 написаны (JAVA). Сам лично юзал и проверял - очень даже играбельны. Даже на экранах 176x220. Ну а на 320x240 - идут великолепно. Есть СЕГА, СНЕС , НЕС и Open BOR даже!!!

Под Колибри ОС тоже несколько портировали (GB, NES).

Приход андроида испоганил всю малину.

QUOTE
У меня есть несколько вопросов, правильно ли я понимаю, что инициализация и работа с железом происходит с помощью LL HAL библиотек? Почему не CMSIS? И почему не хотите добавить внешнее ОЗУ или ПЗУ?


STM забила на CMSIS в H7343-м и агрессивно толкает кало-куб. Что касается LL, то в своей версии калокуба я такой опции не нашёл. А было бы здОрово! smile.gif В подобном духе (LL) я сейчас пишу для TMS320C6745.

Ну коль уж калокуб есть, так почему б не воспользоваться им ? smile.gif Тем более он на этапе инициализации используется и работе эмулятора он(куб) не мешает.

Внешнее ОЗУ я уже подключил, правда в другой платформе (которая намного эффективнее чем STM32) . Тут более подробно: http://vrtp.ru/index.php?showtopic=30775

QUOTE
Удивительно, преступно мало внимания теме!


Ну что поделаешь? smile.gif

Во-первых: трудно найти человека, который был бы электронщиком и программистом + любил древние игровые приставки + проявлял интерес к их архитектуре

Во-вторых: тематика форума не располагает. Большинству интересны больше жучки и приемники.

В-третьих: народ зажрался: андроид, планшеты. Никому в принципе это не нужно. Остается совсем узкая ниша фанатов.

Автор: Faberge Mar 25 2019, 03:35 PM
Что значит - забили на CMSIS? Там нужен-то всего один файл с именами регистров, <stm32h743xx.h> или как-то так...
А дальше шпаришь по мануалу, никаких проблем.
HAL я не понимаю, а к Калокубу тоже испытываю отвращение. Я как раз закончил сейчас предыдущий небольшой проект и самое время пощупать H7. Ваша тема для меня просто находка!
Первым делом постараюсь запустить QSPI, потом дисплей, а там и до игр недалеко. Вы не пробовали подключать дисплей по параллельному интерфейсу к этой Nucleo? Я же правильно понимаю, что все дисплеи выше работают по последовательному, минуя LTDC?

Автор: Gospodin_Riba Mar 26 2019, 01:38 PM
QUOTE
Что значит - забили на CMSIS? Там нужен-то всего один файл с именами регистров, <stm32h743xx.h> или как-то так...

Да ошибся я. SPL имел ввиду а не CMSIS.

QUOTE
Вы не пробовали подключать дисплей по параллельному интерфейсу к этой Nucleo? Я же правильно понимаю, что все дисплеи выше работают по последовательному, минуя LTDC?

Исходники читать умеете? smile.gif

Автор: romanetz Mar 26 2019, 02:25 PM
LTDC - это чтобы "стекляху" подключать, на которую надо непрерывно гнать пиксели RGB, без встроенного контроллера.
FSMC(FMC) - контроллер доступа к параллельной шине, через которую команды и данные уходят к дисплею со встроенным контроллером.
Вы что конкретно имели в виду?
Я пока что примеров работы с "голыми стёклами" на STM32 не встречал. Для этого нужна ещё внешняя (видео)память, в которую рендерится картинка, и LTDC из неё переносит в стекляху. А там и до VGA недалеко :-))

Автор: Faberge Mar 26 2019, 05:13 PM
А ну да, зачем нужен SPL если они двигают HAL и Калокуб. А CMSIS - это основа, как же без неё.

Исходники пока не смотрел, прошу извинить, надеялся что вы уточните. Просто как раз с Н7 появляется уникальная возможность иметь на одном кристалле буквально все: ЦПУ, буфер и драйвер для дисплея. Ну разве что внешний флеш по QSPI или SDIO. На F7 Disco для дисплея 480 на 272 пикселей я заводил LTDC и там буфер при 32 битах на пиксель весил порядка 0,5 Мбайта. Но конечно нужен второй, для двойной буферизации, чтобы было где рисовать. А дальше через ПДП копировать и дергать по прерываниям.

Но там была внешняя ОЗУ так как на F7 там же вроде до 512 Кбайт (могу ошибаться, но где-то так). А на Н7 целый мегабайт на борту! Система все в одном так сказать!! Очень вкусно.

Автор: Faberge Mar 26 2019, 09:44 PM
Сейчас глянул распределение банков памяти у Н7 по даташиту - нет, это я конечно ранее ерунду сказал. Упс. Чудес не бывает.

Автор: Gospodin_Riba Mar 27 2019, 08:17 AM
Чтение даташита на процессор Нуклеи открывает чудесный факт - LDTC там нет. Только в более ногастых версиях smile.gif

Автор: Gospodin_Riba Mar 27 2019, 08:21 AM
QUOTE (Faberge @ Mar 26 2019, 05:13 PM)
А на Н7 целый мегабайт на борту! Система все в одном так сказать!! Очень вкусно.

Вы б исходники все-же глянули.... Их чтение откроет ещё один "прекрасный" факт, что у H743 эти 1 МБ расфаршированы на фрагментированные куски. Причем только некоторые можно использовать для DMA, и некоторые для стека. Хотя есть участки памяти, в которых можно всё!

Но я растасовал данные так, чтобы всё работало и как можно со всеми возможностями (звук, сохранение-восстановление).

В некоторых эмуляторах с треском, но всё вошло. Благодаря тому, что статические вещи заранее просчитаны и записаны во флеш. В особо тяжелом случае как в TurboGrafx-16 - там видеобуфер - одна строка! biggrin.gif Благо, что такое рендерер эмулятора позволяет

Автор: Gospodin_Riba Mar 27 2019, 08:28 AM
QUOTE (romanetz @ Mar 26 2019, 02:25 PM)
LTDC - это чтобы "стекляху" подключать, на которую надо непрерывно гнать пиксели RGB, без встроенного контроллера.

Я пока что примеров работы с "голыми стёклами" на STM32 не встречал. Для этого нужна ещё внешняя (видео)память, в которую рендерится картинка, и LTDC из неё переносит в стекляху. А там и до VGA недалеко :-))

Вот тут запустили LTDC "на регистрах": https://habr.com/ru/post/412753/
Не проверял, но код внушает доверие.

Ну и LTDC потянет за собой обязательно двойную буферизацию, иначе будем лицезреть всю черновую работу рендерера - а это некрасиво в случае динамических сцен!

Ну и краем уха слышал что у H743 есть проблемы с подключением внешней динамической памяти. То-ли не идет как надо, или тормозит.... В любом случае не есть хорошо когда LCD и SDRAM на одной шине FMC висят. C6745 в этом плане лучше - две раздельные шины A и B. Так что работаю с ним о чем не жалею!

Ну и LTDC для эмуляторов особо не нужен, там рендереры свои и чисто софтовые. Достаточно простого DMA и двух разных шин - для памяти и дисплея.

Автор: Faberge Mar 27 2019, 10:43 AM
Да, это рабочий код, могу подтвердить.

Насчёт гранулированной памяти - ну я же уже написал, что ошибся. Но, опять же, там внутренний банк на 512K, для 24бит и среднего разрешения хватит. И я так подумал, можно рисовать второй буфер частям и потом выкидывать. Что то типо полуторной буферизации. Или даже 1.2 скорее. smile.gif

А по даташиту LTDC у H743 все таки есть, даже в lqfp100. Это вторая таблица. Или вы в другом месте смотрите?

Автор: Gospodin_Riba Mar 27 2019, 12:47 PM
QUOTE (Faberge @ Mar 27 2019, 10:43 AM)
А по даташиту LTDC у H743 все таки есть, даже в lqfp100. Это вторая таблица. Или вы в другом месте смотрите?

Да он там урезан всеравно.

Автор: BlasterMaster Apr 3 2019, 02:41 AM
QUOTE (Gospodin_Riba @ Feb 24 2019, 12:51 PM)
Вот я и ставлю цель проверить, насколько будет хорош управляющий код на этом DSP. Особенно с параллельным выполнением инструкций.
Да я даже не спорю что оно по своему прикольно.

QUOTE
Мне ненравятся современные тенденции в процессоро-строительстве. Была б моя воля, поубивал бы всех, кто достоен. За калокубы, линуксы,... в контроллерах.

Насчет калокуба и прочих ардуин - согласен. Насчет Linux - не совсем. Linux позволяет втереться в интересную нишу, когда надо что-то похожее на компьютер нежели микроконтроллер, но хочется что-то более предсказуемое чем писюк с виндой. И вот в этом закоулке Linux выглядит вполне осмысленно. Но конечно всегда найдется идиот с малиной, который их своего тормозного пихтонраста хочет "реалтайм, как у взрослых" сделать, вплоть до потуг синтеза в реальном времени синуса на силовой ключ программным PWM из питона. Да, вот такой фееричный кретинизм я видел. Попробовал в меру талантов объяснить человеку что он даже если его штука и будет делать вид что работает - закончит выпаленым ключом с вонью и бабахом, но тут уж если какой придурок хочет бабах устраивать - пусть устраивает. Если себе. А если не себе - будет по судам бегать, как тойота, куда и дорога.

QUOTE
Цель самая благая - подарить людям очередной велосипед, выражаясь вашими терминами. К тому же мне это интересно.
По своему прикольно наверное. Просто такие велы часто получаются с квадратными колесами, да и ездовые качества специфичные. Нет, по лестницам такой и правда круто гоняет, особенно после тренировки. Но большинсто людей почему-то предпочитает велы которые лучше ездят по плоской поверхности, и черт с ними, с лестницами - слишком нишевой случай.

QUOTE
Здесь не то место, чтобы говорить о профитах. Не всё деньгами меряется. Здесь JUST FOR FUN. За профитом идите в другие места.
Я то как раз это очень хорошо понимаю. Linux был написан по этой причине. Ну и просто потому что у его автора не оказалось операционки которую он мог бы менять под свои нужды без идиотских ограничений. Ну он взял да и написал. И основной костяк ядерщиков до сих пор вот эти ребята. И за калокод они довольно быстро и жестко заворачивают, в отличие от каких там манагеров в MS с горящим дедлайном и т.п.. На самом деле я вообще не понимаю как можно чем-то таким заниматься если это не приносит удовольствия. Ходить на работу с 9 до 5, с пофигом на результат? Я так не умею, например.

И таки пару моментов:
1) У многих дров Linux далеко не хучший код. Откровенное говно в линукс не берут, так что со своей стороны я считаю что изучение железки по драйверу линукса далеко не хучшая перспектива. Вот по дампу в IDA - это да, тухленько. Но если сильно хочется - народ и так делал, просто ща подавай тут документации, сдк, и чем это от калокуба так уж отличается...
2) Кстати калокубом можно и не пользоваться. Я например STM32 рулю в вообще совсем ручном режиме, когда в камне ничего кроме моего кода и нетути, а компилер - генерит из моего кода бинарь. Тоже вел, плюс шишки и наверное медленнее чем в калокубе пожамкаьт кнопочки. Но мне тоже нравится быть близко к железу и понимать что железки из себя представляют. А дернуть кульное апи в МК... так не нравится. В Linux это имеет некое оправдание на тему арбитража ресурсов в более крупных системах, где задачи достаточно велики для того чтобы хотелось их разнести на несколько независимых.
3) Я таки считаю что театр начинается с вешалки, а контроль - с рабочего окружения, чтоли. Иначе сапожник без сапог. Ну вот как-то не нравится мне когда мой комп живет своей жизнью. Намного интереснее если это он мне служит, а я понимаю что и зачем там происходит, а не наоборот. И таки в Linux я могу без обиняков например весьма крутой профайлинг сделать - который покажет мне что делает и ядро и программы. Да, это большой поток гов....эм, активности. Но его можно отфильтровать. А в винде например я такое сальто-мортале сделать просто не возьмусь. Там что-то такое как-то дико сложно делается.

QUOTE
Остальное нет желания комментировать, просто уже надоело.

Ух, сорь. Вы просто предложили когда-нибудь обсудить тенденции и прочие секурбуты и тому подобные пакости, любезно подваливаемые оптом по всем фронтам (да, меня это порой тоже задалбывает) - и вроде бы даже в этой ветке? Прошу пардона если это не получилось и если это напрягает - я закруглюсь: технически я как бы в офтопе.

p.s. а код с LTDC как по мне - куда как более в моем вкусе нежели калокубы и проч. Правда я CMSIS не пользуюсь, но по такому коду вполне понятно что и как делается. Особенно если даташит под рукой есть. Жаль что мне (пока?) столько счастья и такие камни не надо smile.gif

Автор: Gospodin_Riba Apr 5 2019, 06:17 AM
QUOTE
Linux позволяет втереться в интересную нишу, когда надо что-то похожее на компьютер нежели микроконтроллер, но хочется что-то более предсказуемое чем писюк с виндой. И вот в этом закоулке Linux выглядит вполне осмысленно

Мы ведь трём о микроконтроллерах, не так ли? С позиции применения в микроконтроллерах, считаю Linux - слишком громоздким решением. Сколько ОЗУ там надо чтоб стартануло ядро? И всё для чего? Чтоб пускать то, что написано на Линуксе? Слишком дрогая цена. А вот я взял да и перенес эмуляторы под 1 МБ гранулярного ОЗУ, о чем не жалею! smile.gif

Если нужна многозадачность(многопоточность), то есть же более изящные решения: uCos, RTOS, ChibiOS и тысячи их... Кушают мало и намного проще, чем Линукс.

Ковыряя BSP Линукса можно убить несколько дней, чтоб найти нужный сорец драйвера на раздербан под какую-нить железяку wacko.gif

QUOTE
Откровенное говно в линукс не берут

А кто расставляет критерии говно- не-говно? Я вот например считаю говном в Линуксе драйвера TCON для Allwinner, потому что в режиме обмена дисплея по параллельной шине (CPU IF) там вкостыляли задержки между циклами чтения-записи, что считается очень дурным тоном, так как более чем на вывод буковок это решение не годится: для быстрой отрисовки не пойдет.

QUOTE
Кстати калокубом можно и не пользоваться. Я например STM32 рулю в вообще совсем ручном режиме, когда в камне ничего кроме моего кода и нетути, а компилер - генерит из моего кода бинарь. Тоже вел, плюс шишки и наверное медленнее чем в калокубе пожамкаьт кнопочки. Но мне тоже нравится быть близко к железу и понимать что железки из себя представляют. А дернуть кульное апи в МК... так не нравится.

Прикол в том, что Калокуб есть и он ускорил написание эмуляторов под STM32. Под C6745 калокуба нет (вру, есть - CSL и TI-BIOS, но я о них узнал позже) - пишу свой LL, потрачено куча ресурсов: нервов, здоровья, времени... Но: это интересно ! biggrin.gif
Поэтому плюс Куба в том, что он охватывает массы.
Посмотрите, сколько раз скачаны исходники под STM32, а сколько под C6745.
Поэтому заинтересованных в Калокубе больше, чем в LL-программировании.

QUOTE
Я таки считаю что театр начинается с вешалки, а контроль - с рабочего окружения, чтоли. Иначе сапожник без сапог. Ну вот как-то не нравится мне когда мой комп живет своей жизнью.

Это хост-платформа: где ведутся разработки.
Главное, чтобы таргет-платформа(под которую пишите) не жила своей жизнью smile.gif

Меня не очень волнует, если тот же Кейл АРМ-овский будет стучать по сети создателям что с такого-то IP он хакнутый smile.gif shades.gif

И кстати, вполне может стучать и порт GCC под винду, потому что ссылается на DLL-ки ОС.

QUOTE
Ух, сорь. Вы просто предложили когда-нибудь обсудить тенденции и прочие секурбуты и тому подобные пакости, любезно подваливаемые оптом по всем фронтам (да, меня это порой тоже задалбывает) - и вроде бы даже в этой ветке?

Ну негоже это в этой теме обсуждать, есть целый раздел в этом форуме, по безопасности- воттуда надо про секурбуты писать.

Добавлю, вы можете использовать устаревшие компьютеры, которые без секурбутов и прочих анальныхзондов. smile.gif Стоят копейки - с рук и б-у. Правда тут как повезет - может сломаться через неделю, а может работать годами.

QUOTE
а код с LTDC как по мне - куда как более в моем вкусе нежели калокубы и проч. Правда я CMSIS не пользуюсь, но по такому коду вполне понятно что и как делается. Особенно если даташит под рукой есть. Жаль что мне (пока?) столько счастья и такие камни не надо


В C6745 я так и пишу smile.gif Правда ещё лучше - нет структур на регистры. Прямое обращение к регистру сразу! spiteful.gif

Автор: Gospodin_Riba Jul 24 2019, 01:24 PM
Портировал Gradius на EMU Pocket. smile.gif

Учитывая её скромные ресурсы:
Flash память 2 МБ, оперативная память 1 МБ (фрагментированная на куски).

Мне удалось вместить игру в такие объёмы!

Правда, музыка играет с SD карты. Без SD карты будут только звуки )))

Для сравнения:

1) Железо BlackPrism: 32-битный DSP TMS320C6745, частота ядра 456 МГц, два встроенных RISC-сопроцессора по 228 МГц каждый, кеш L1 по 32 кБ на код и данные, кеш L2 на 256 кБ. Внешняя память : 32 МБ. Планируется переход на 64 МБ. Статус: макет. Планируется релиз.

2) Железо EMU Pocket: 32-битный ARM STM32H743, частота ядра 400 МГц, только кеш L1 по 16 кБ для кода и данных. Память Flash (ROM) 2 МБ, RAM - суммарный объем 1 МБ (нарезана кусками - 512, 256,... кБ в разных адресах). Статус: завершён


Печатные платы для игровой приставки EMU Pocket также есть у меня в наличии. Отдам недорого. Пишите в личку.

Level1,2
https://www.youtube.com/watch?v=N5bmxP7dU98

Level3,4
https://www.youtube.com/watch?v=01S6V4yWO2A

Level4 Boss
https://www.youtube.com/watch?v=mmk-lSZE7-k

END:
https://www.youtube.com/watch?v=8lZBUQcklgk