Forums Logo

Здравствуйте Гость ( Вход | Регистрация )

Страниц: 4 < 1 2 3 4 > 
Reply to this topicStart new topicStart Poll

Каскадный · [ Стандартный ] · Линейный

> Реактивное введение в программирование под GBA

УльтраБлокС
post Суббота, 27 мая 2017, 22:16
Отправлено #21


Очень скорая помощь
******

Группа: Пользователи
Сообщений: 1 663
Регистрация: 17 июня 2009
Из: Москва
Пользователь №: 32 448





Я бы сказал так - игры пишутся в основном на "C с классами" всё-таки. Ибо современный C++ с его умными указателями уже практически позволяет писать код в стиле Java и ко, можно даже сборку мусора организовать. И тормозить это дело тоже будет хорошо.


--------------------
user posted imageuser posted imageuser posted imageuser posted imageuser posted image
User is online!Profile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Воскресенье, 28 мая 2017, 03:40
Отправлено #22


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (MichaelForExample @ Вчера, 20:05)

Просто интересно смотреть именно на эволюцию
*


Да ну, имхо тут это совершенно не нужно. Просто объёмистая статья с несколькими исходниками-уроками, зачем тут видеть эволюцию и эволюцию чего даже? Эволюция это каждая следующая глава в настоящий момент, они и так пишутся отдельно в виде статей в жж. В самом конце же еще перепишу скорее всего начало под новый SDK на который перешел с 8-ой главы и в общем то всё.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Вторник, 06 июня 2017, 11:19
Отправлено #23


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Вновь прошу проверить на настоящем GBA тест воспроизведения звука: http://www.gamedev.ru/files/?id=126261

Ожидаемое поведение:
По нажатию на кнопку "START" должен включится небольшой зацикленный фрагмент музыки, "SELECT" музыку отключает.
Нажатия кнопок ВВЕРХ/ВПРАВО/ВНИЗ каждая по отдельности запускает свой отсчёт 1-2-3-4-5 голосом, они должны накладываться. Нажатие ВЛЕВО запускает однократное воспроизведение того же фрагмента выше.

При воспроизведении этих звуков как по отдельности так и вместе не должно быть слышно щелчков и подобных "помарок".

Но очень интересно подолбить подряд раз 40 быстро на кнопку "A" и оценить не появятся ли шелчки уже при обычном воспроизведении, а так же нажать (однократно) в разных местах кнопку "B" - она устраивает "стресс-тест" и после неё я ожидал, что воспроизведение испортится (всё) до перезагрузки рома. Но на эмуляторе почему то всё нормально.

Сообщение отредактировал aa-dav - Вторник, 06 июня 2017, 18:16
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Среда, 07 июня 2017, 16:06
Отправлено #24


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





Все работает. Стресс-тест не вешает ром, срабатывает только по нажатии, но потом все ок.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Среда, 07 июня 2017, 16:29
Отправлено #25


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (hqqddy @ Среда, 07 июня 2017, 16:06)

Все работает. Стресс-тест не вешает ром, срабатывает только по нажатии, но потом все ок.
*


Большое спасибо! Это радует, значит осталось совсем чуть-чуть.
В связи с этим оставшимся "чуть-чуть" возник заранее просто вопрос - flash-картридж он же поддерживает сохранения игр (перезаписываемый ROM в оригинальных картриджах) как то совсем бесшовно - или при прошивке образа на него надо что-то указывать или дополнительно делать? Просто следующий и наверное последний тест будет как раз про сохранение игр, но это попозже, интересно как это выглядит с точки зрения аппаратуры.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Gashik
post Среда, 07 июня 2017, 17:00
Отправлено #26


Unregistered









провалится smile.gif многие флешки как-раз патчат ром в части сейв-файла. У меня на SuperCard SD не запускался с сейвом.
Go to the top of the page
+Quote Post
aa-dav
post Четверг, 15 июня 2017, 04:12
Отправлено #27


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Ну всё, дописал цикл эти уроков, обрамил оглавлением и дал все нужные ссылки http://antistupd.livejournal.com/842.html

Большая опять просьба - проверить на реальном GBA последний пример - из архива https://yadi.sk/d/hTiV6uUB3K8Adq взять последний скомпилированный образ - 11_sram.gba.

Описание что должно происходить и как реагировать на нажатия кнопок:

Это экран из черных и белых квадратиков над которым мы можем (DPad-ом) водить курсором. Нажатие кнопки ( A ) окрашивает клетку под курсором в белый, а ( B ) - в чёрный цвет. Нажатие START окрашивает все клетки чёрным, нажатие же ( R ) сохраняет карту клеток в SRAM, а ( L ) - загружает из неё.

Собственно "порисовать" что-нибудь, сохранить ®, выключить GBA, вытащить флеш-картридж, потом всё включить обратно и нажать ( L ) - должно восстановится сохранённое состояние клеток.

Сообщение отредактировал aa-dav - Четверг, 15 июня 2017, 04:13
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Пятница, 16 июня 2017, 15:40
Отправлено #28


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





Не работает сейв/восстановление. По крайней мере, на EDGBA. На нем удобно сейвы контроллировать мигание диода. Так вот нет.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Пятница, 16 июня 2017, 16:06
Отправлено #29


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Хмм... Жалко что не всё так просто, но там этого стоило ожидать. Т.к. в образах картриджей просто нет по нормальному информации о дополнительных чипах на картридже, а видов ППЗУ для сохранения с разным интерфейсом общения не менее трёх, то те же софтовые эмуляторы либо поддерживают БД игр откуда берут информацию о том как ожидать от игры сохранения, либо сканируют образ игры на предмет встречи специфичных маркеров - что мною и было использовано. Логично ожидать, что у flash-картриджа возможности в этом смысле будут ограничены. Это на самом деле даже интересно, как удовлетворить железку и выйти на 100%-ую аппаратную совместимость...
Я реализовал (причём не совсем на 100% удовлетворяя спецификациям от no$gba) механизм сохранения в SRAM на батарейке. Есть еще EEPROM, но это дичь, и 2 варианта Flash-памяти. Подозреваю, что с последним у аппараток наверное будет меньше проблем - ведь они сами и есть Flash-ки, но 2 варианта несовместимы, поэтому гхм...
Хотелось бы ради продолжения исследований уточнить:
1) EDGBA - не гуглится совсем никак - что это за девайс в полном наименовании?
2) перечень из нескольких (чем больше тем лучше) игр с которыми сохранения у него точно работают.
3) если есть противоположный опыт - он тоже крайне интересен - перечень игр с которыми сохранения у него не работают.
Если у кого то есть другие Flash-картриджи - всё так же интересна работоспособность уже имеющейся демки выше и если она не работает - ответы на эти же вопросы. Заранее благодарен.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Пятница, 16 июня 2017, 22:04
Отправлено #30


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





Ну это я сократил. EverDrive GBA
http://krikzz.com/store/home/42-everdrive-gba-x5.html
Игры совместимы если не все, то почти все. Полного списка нет. Т.ч. берите любую с типом сейвера, который вам интересен.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Суббота, 17 июня 2017, 00:28
Отправлено #31


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (hqqddy @ Вчера, 22:04)

Т.ч. берите любую с типом сейвера, который вам интересен.
*


Читаю вот здесь https://gbatemp.net/review/everdrive-gba-x5.489/ и вижу, что написано, что в меню выбора игр можно как раз выбирать тип сохранения используемой в игре. Вы пробовали играться этим параметром? (тип памяти используемой демкой - SRAM, 32Кб)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Суббота, 17 июня 2017, 00:44
Отправлено #32


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





Я совсем на это не посмотрел. Как-то поигрался в свое вермя и забыл. Никогда не было необходимости. Да, все работает, SRAM.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Суббота, 17 июня 2017, 01:10
Отправлено #33


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (hqqddy @ Суббота, 17 июня 2017, 00:44)

Я совсем на это не посмотрел. Как-то поигрался в свое вермя и забыл. Никогда не было необходимости. Да, все работает, SRAM.
*


Отличные новости!!! smile.gif Спасибо за тестирование! Dreams come true как говорится. smile.gif
По меньшей мере на одном flash-Картридже всё работает, значит верным путём идём, товарищи. lol.gif
Если у кого-то есть другие типы картриджей - всегда любопытно и их проверить на совместимость.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Понедельник, 19 июня 2017, 06:39
Отправлено #34


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





aa-dav как руки до SuperCard дотянутся, я проверю. но думаю, что все и так ок.
подскажите, как пропатчить ром на тип сейвера? PDшный ром, использует стандартный sram. При запуске в эмуле или при выборе типа сейвера в EverDrive все ок. Но при открытии рома тулзой типа GBATA тип сейвера не определяется. Вручную в хексе что на что заменить?

Сообщение отредактировал hqqddy - Понедельник, 19 июня 2017, 06:49
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Понедельник, 19 июня 2017, 11:15
Отправлено #35


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (hqqddy @ Понедельник, 19 июня 2017, 06:39)

aa-dav как руки до SuperCard дотянутся, я проверю. но думаю, что все и так ок.
подскажите, как пропатчить ром на тип сейвера? PDшный ром, использует стандартный sram. При запуске в эмуле или при выборе типа сейвера в EverDrive все ок. Но при открытии рома тулзой типа GBATA тип сейвера не определяется. Вручную в хексе что на что заменить?
*


Мне остаётся только процитировать сабжевый туториал, часть про сохранения: http://antistupd.livejournal.com/3580.html

QUOTE

...
Однако просто начать писать и читать байты в адреса 0xE000000-0xE007FFF недостаточно. Дело в том что все остальные виды перезаписываемой памяти в GBA мапятся тоже на эти же адреса, но с другим интерфейсом, а заголовок картриджа не содержит никаких отметок о том какой тип перезаписываемой памяти используется. Игра просто знает сама какой чип находится в картридже и записывает в него данные нужным способом. С настоящим картриджем естественно никаких проблем это не вызывает, а вот нам придётся предпринять еще один шаг.
Дело в том, что эта проблема актуальна и для эмуляторов GBA и их разработчики подметили, что картриджи созданные с использованием официального SDK от Nintendo как правило содержат небольшие строчки помогающие идентифицировать чип сохранений:
EEPROM_Vnnn для EEPROM 512 байт или 8 Кб
SRAM_Vnnn для SRAM 32 Кб
FLASH_Vnnn для FLASH 64 Кб
FLASH512_Vnnn для FLASH 64 Кб (в новых картриджах)
FLASH1M_Vnnn для FLASH 128 Кб
Эти строчки должны располагаться по адресам кратным 4, а их длина тоже должна быть кратна 4 байтам (с заливкой нулями остатка). Официальные утилиты Nintendo как правило вставляют вместо 'nnn' цифры версий, но нам лучше так и оставлять их как 'nnn'.
Поэтому всё что нам остаётся сделать - это вставить в программу static массив из char с текстом "SRAM_Vnnn" и убедиться, что оптимизатор не выкинет его из финального образа.
...


Больше никакой информации о сохранениях в ROM-е быть не может, но даже эти строчки не дают 100%-ой гарантии, потому что в некоторых образах они не присутствуют или присутствуют сразу несколько. Поэтому большинство эмуляторов кроме анализа файла на маркеры всё-таки содержат базу данных игр (код игры прописывается обязательно в заголовке - в первой сотне байт картриджа) и ориентируются на неё. Последним можно тоже попытаться сманипулировать - прошить код известной игры с нужным типом сохранения, вот и все возможные варианты.
Формат заголовка можно посмотреть тут http://problemkaputt.de/gbatek.htm#gbacartridges
0A0h 12 Game Title (uppercase ascii, max 12 characters)
0ACh 4 Game Code (uppercase ascii, 4 characters)

Сообщение отредактировал aa-dav - Понедельник, 19 июня 2017, 11:20
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Понедельник, 19 июня 2017, 15:44
Отправлено #36


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





Спасибо. Помогло не очень, но интерес был спортивный. При указании сейвера вручную все работет нормально. Но просветили малость.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Суббота, 24 июня 2017, 08:49
Отправлено #37


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Как нынче говорят - тизер. Кто вспомнит с какой платформы и что? smile.gif
» Нажмите, для открытия спойлера «
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Суббота, 24 июня 2017, 19:01
Отправлено #38


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





Четно, не имею понятия. Что мутите? Игру?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Суббота, 24 июня 2017, 19:51
Отправлено #39


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





Да на денди была такая Contra Force, сегодня повыдирал из первого уровня тайлов, можно уже карту делать.

Добавлено спустя 1 час 5 минут:
Назову Contra Force Advance, понатырил уже прилично тайлов из первого уровня Contra Force с NES:

user posted image

Это получается задел под скроллящийся задник - "параллакс", чего в денди не было.
Какой то неимоверной крутизны не обещаю - постараюсь максимально сохранить геймплей и оформление, но сделать новые уровни. Скорее всего будет долгострой, так как много времени нет.

Сообщение отредактировал aa-dav - Суббота, 24 июня 2017, 20:56
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hqqddy
post Воскресенье, 25 июня 2017, 00:51
Отправлено #40


Продвинутый
**

Группа: Пользователи
Сообщений: 90
Регистрация: 06 июля 2016
Пользователь №: 55 920





А, щас вспомнил. Но в нее не часто играли, она из Контр как-то особняком стоит.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
 

Упрощённая версия Сейчас: Вт., 16 апр. 2024, 19:51
Skin Designed (c) by Rooq.net, All Rights Reserved.