Forums Logo

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

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

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

aa-dav
post Четверг, 20 апреля 2017, 10:47
Отправлено #1


Фанат
***

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





Столкнувшись сам несколько дней назад с отсутствием русских вменяемых введений в предмет на днях решил создать некую очень короткую и сжатую, но по возможности достаточно полную для начала программирования реальной игры вводную в программирование под GBA.
Начал делать это тут: http://antistupd.livejournal.com/842.html
Исправленный и обновлённый текст потом перевыложил сюда: http://hype.retroscene.org/blog/872.html

При этом цель не состоит в обучении программированию - напротив, целевая аудитория уже должно хорошо знать C/C++ и представлять себе архитектуру компьютера, что такое память, указатели в неё, зачем нужен volatile и т.п.

Два вопроса:
- нужно ли? есть ли еще интересующиеся темой?
- (потому что возможно, что) есть ли уже проделанная такая же работа? (сам не нашёл)

Сообщение отредактировал aa-dav - Среда, 03 октября 2018, 10:11
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topicStart Poll
Ответов
aa-dav
post Среда, 12 июля 2017, 16:00
Отправлено #2


Фанат
***

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





QUOTE (hqqddy @ Среда, 12 июля 2017, 14:53)

А уровни будут новые или сохраненные от НЕС?
*


Новые. Зачем мне старые? Я в них давно уже наигрался. smile.gif

Ах да... Я же это всё выложу в открытый доступ и любой кто захочет сможет сделать свои уровни.
Используются бесплатные редактор:
- Tile Ed (itor) для редактирования уровня
- Paint.NET для обработки картинок и карт тайлов (24bit BMP)
- Audiacity для записи и сохранения звуков в нужном формате (16bit mono PCM WAV).

Периодически обновляемый архив с последним состоянием проекта - уже готовым образом, а так же всеми ресурсами и исходниками буду выкладывать сюда: https://yadi.sk/d/Mb15dr353KsijT
Корневая папка это папка от реактивного введения в программирование под Game Boy Advance, собственно Contra Force Advance так и станет просто комплексным примером в материалах к этому курсу.
Инструкции о том что скачать и как запустить можно прочитать там же.

В папке CFA находится собственно проект с CFA.
Система сборки так же заделана через адские *.bat-ники для простоты и независимости от внешних утилсов (make из состава DevKitARM отказывается работать без msys, из-за чего я его и не использую, сборка чисто под виндой).
В файле devkitpro.bat надо так же поправить путь к DevKitPro.
При подключении заголовка gba_defs.h он ссылается просто на папку вверх, так что если будут перемещения, то надо будет поправить это в исходниках CFA.
Ресурсы всегда зашиваются сперва в исходники с расширением .inc с просто дефиницией массивов байт или слов и подключаются к проекту на правах обычного исходника таким образом.
Для конвертации в исходники звуков создана утилита wav2incl, а для битмапов и карт из открытого редактора Tile Editor - tiles2incl. Они там скомпилированы на банальном mingw32, но есть и в исходниках.
Звуки зашиваются в модуль res_sounds запуском make_sounds.bat, а битмапы и карты - res_graphics через make_graphics.bat. Опять таки пути к wav2incl и tiles2incl смотрят наверх в папку уроков.
Файл make.bat компилирует уже исходный код самой игры и сшивает со всеми объектниками в готовый образ. Знаю, что рожа просит мейка, но повторюсь, от внешних зависимостей для простоты избавляюсь, а встроенный в DevKitARM тоже не нравится своим подходом.

То есть, для подготовки надо скачать и установить DevKitPro (см. курс введения) и настроить путь к нему в файле devkitpro.bat
А дальше:
а) если менялись звуки - запустить make_sounds.bat
б) если менялись тайлы или уровень - запустить make_graphics.bat
в) запустить make.bat
Если всё пройдёт без ошибок, то получится образ с игрой. Если окна с выполняющимися командами выше мелькают быстро и исчезают, то можно в конце эти трёх батников прописать команду pause в отдельной строчке, чтобы иметь возможность подробно рассматривать не возникало ли ошибок.

В общем пока еще время не наступило - когда доведу всё до ума напишу большое обстоятельное введение как и что для потенциальных желающих добавить или развить в своё. Конечно же смысл в новых уровнях - благо TileEd позволяет их клепать с удивительной лёгкостью.
Если возникнут вопросы по содержимому архива - спрашивайте. Потому что делать свои уровни можно уже сейчас - человечек уже сможет даже по ним пробежать. Единственное пока уровень будет статичен, но заготовку на будущее уже можно делать. Посмотреть можно на map01 в комплекте (файл с расширением tmx) - это в Tile Editor надо открывать. Если будет непонятно что и как там делать - могу пояснить.

Сообщение отредактировал aa-dav - Среда, 12 июля 2017, 16:16
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Posts in this topic
aa-dav   Реактивное введение в программирование под GBA   Четверг, 20 апреля 2017, 10:47
MoonTurtle   может и не прав, но мне кажется что это нафиг не н...   Четверг, 20 апреля 2017, 11:12
aa-dav   Я там во введении сразу же и написал, что GBA об...   Четверг, 20 апреля 2017, 11:39
DUX   Ну, если наклепаете контр, кастельваний и марио ...   Четверг, 20 апреля 2017, 11:59
MoonTurtle   RE: Реактивное введение в программирование под GBA   Четверг, 20 апреля 2017, 12:01
aa-dav   А у кого-нибудь тут есть возможность заливать на к...   Вторник, 23 мая 2017, 08:54
Boris   Тема интересная, спасибо! Надо срочно купить ф...   Вторник, 23 мая 2017, 11:09
dimm0505   А что из высокоуровневых языков может быть более ...   Вторник, 23 мая 2017, 12:59
aa-dav   Сейчас запаковал текущее состояние проекта так ска...   Вторник, 23 мая 2017, 14:38
dimm0505   Качнул, попробую в ближайшие 2-3 дня "на риал...   Вторник, 23 мая 2017, 14:46
dimm0505   Запускается все, но вот только что там должно быть...   Среда, 24 мая 2017, 12:42
aa-dav   Спасибо большое! Да, похоже что всё верно рабо...   Среда, 24 мая 2017, 13:31
dimm0505   Ну тогда поздравляю, все запустилось, правда я за...   Среда, 24 мая 2017, 13:36
aa-dav   Ну отлично. Большое спасибо! Просьба еще, если...   Среда, 24 мая 2017, 13:44
Gashik   С сохранением ничего сложного. Была библиотека, ко...   Среда, 24 мая 2017, 20:58
hqqddy   aa-dav тебе бы железку купить за недорого с флешко...   Пятница, 26 мая 2017, 18:20
aa-dav   Я не железячник, я софтовик. Мне возится с желез...   Пятница, 26 мая 2017, 18:51
MichaelForExample   А почему на гитхабе репо не создать? Хоть следить ...   Пятница, 26 мая 2017, 22:31
aa-dav   Когда будет законченная версия и каждая строчка бу...   Суббота, 27 мая 2017, 18:38
MichaelForExample   Ну неужели лишний пуш сделать в ремут ветку трудн...   Суббота, 27 мая 2017, 20:05
УльтраБлокС   Я бы сказал так - игры пишутся в основном на ...   Суббота, 27 мая 2017, 22:16
aa-dav   Да ну, имхо тут это совершенно не нужно. Просто ...   Воскресенье, 28 мая 2017, 03:40
aa-dav   Вновь прошу проверить на настоящем GBA тест воспро...   Вторник, 06 июня 2017, 11:19
hqqddy   Все работает. Стресс-тест не вешает ром, срабатыва...   Среда, 07 июня 2017, 16:06
aa-dav   Большое спасибо! Это радует, значит осталось...   Среда, 07 июня 2017, 16:29
Gashik   провалится :) многие флешки как-раз патчат ром в ч...   Среда, 07 июня 2017, 17:00
aa-dav   Ну всё, дописал цикл эти уроков, обрамил оглавлени...   Четверг, 15 июня 2017, 04:12
hqqddy   Не работает сейв/восстановление. По крайней мере, ...   Пятница, 16 июня 2017, 15:40
aa-dav   Хмм... Жалко что не всё так просто, но там этого с...   Пятница, 16 июня 2017, 16:06
hqqddy   Ну это я сократил. EverDrive GBA http://krikzz.com...   Пятница, 16 июня 2017, 22:04
aa-dav   Читаю вот здесь https://gbatemp.net/review/everd...   Суббота, 17 июня 2017, 00:28
hqqddy   Я совсем на это не посмотрел. Как-то поигрался в с...   Суббота, 17 июня 2017, 00:44
aa-dav   Отличные новости!!! :) Спасибо за те...   Суббота, 17 июня 2017, 01:10
hqqddy   aa-dav как руки до SuperCard дотянутся, я проверю....   Понедельник, 19 июня 2017, 06:39
aa-dav   Мне остаётся только процитировать сабжевый тутор...   Понедельник, 19 июня 2017, 11:15
hqqddy   Спасибо. Помогло не очень, но интерес был спортивн...   Понедельник, 19 июня 2017, 15:44
aa-dav   Как нынче говорят - тизер. Кто вспомнит с какой пл...   Суббота, 24 июня 2017, 08:49
hqqddy   Четно, не имею понятия. Что мутите? Игру?   Суббота, 24 июня 2017, 19:01
aa-dav   Да на денди была такая Contra Force, сегодня повыд...   Суббота, 24 июня 2017, 19:51
hqqddy   А, щас вспомнил. Но в нее не часто играли, она из ...   Воскресенье, 25 июня 2017, 00:51


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

Упрощённая версия Сейчас: Сб., 06 июня 2026, 01:37
Skin Designed (c) by Rooq.net, All Rights Reserved.