Программируем для PSP: Часть I, настройка компилятора

5 февраля 2015 г., 19:28:05

Давайте условимся сразу: я следую паттерну «изучение обучением», т.е. учу, одновременно изучая, обгоняя читателей на 2-3 «шага» вперед. Однако это не значит, что я ничего не знаю и все, что говорю — обычные копипасты: я стараюсь разобраться в теме, прежде чем писать о ней. Поэтому смело задавайте вопросы, этим вы принесете пользу и себе, и мне: на вопросы, ответ на которые я не знаю, я буду его искать, осозновать и рассказывать вам.

Итак, в этом топике будет небольшой рассказ о том, как скомпилировать и запустить первую программу на своей приставке. Сразу предупреждение: статья мегатехнического плана, почти все содержание касается утомительной, но быстрой настройки компилятора, а в результате вы получите лишь банальный «Hello World». Однако без нее никак.

Будем предполагать как данность, что у вас есть приставка Sony PSP, перепрошитая до последней версии — 3.90 M33-3 (так называемая custom firmware, неофициальная прошивка). О том, как перепрошиваться, уже рассказывали многие, и останавливаться на этом я не буду. Так же будем считать, что в кирпич ваш вставлена флешка, на которой есть хотя бы 50кб свободного места, и вы имеете к ним доступ (например, через саму PSP).

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

Используемый язык программирования — Си, я буду использовать бесплатную IDE Code::Blocks под XP. Пользователи других компиляторов или ОС могут попробовать настроить IDE сами, благо, настройки у всех похожи; я же использовал то, для чего нашел мануал ;)

Для начала, скачаем набор компиляторов, линкеров и библиотек для PSP под названием DevKitPSP. Распакуйте его куда-нибудь, я его распаковал в корень диска E: (теперь у меня есть папка E:\devkitpsp\).

Теперь откройте Code::Blocks. В меню выберите Settings→Compiler and Debugger, как Selected Compiler в открывшемся окошке выберите GNU GCC (он должен стоять по умолчанию), скопируйте его, назвав, например, DevKitPSP, и настройте его:

Вкладка Search Directories→Compiler (удалите все, что там есть, и нажимайте Add для добавления каждого из путей):
E:\devkitPSP\include
E:\devkitPSP\psp\include
E:\devkitPSP\psp\sdk\include
Linker:
E:\devkitPSP\lib
E:\devkitPSP\psp\lib
E:\devkitPSP\psp\sdk\lib


Вкладка Toolchain Executables:
Compiler's installation directory: E:\devkitPSP. Там есть примечание, что в этой папке должна быть подпапка bin, проверьте.
C-compiler: psp-gcc.exe
C++-compiler: psp-g++.exe
Linker for dynamic libs: psp-g++.exe
Linker for static libs: psp-ar.exe
Еще три поля я оставил пустыми.


Теперь можно жать OK, и переходить к созданию нового проекта (File→New→Project..., слева в окошке жмем Projects и выбираем Empty). Заполняем Project Title (не играет роли, пусть будет PSPHelloWorld), не забываем поставить папку для сохранения проекта (я вон в первый раз забыл, и получил кучу глюков и ошибок); компилятор, разумеется, ставим свежесозданный нами.

Наш проект девственно пуст, создаем фаил (File→New→File..., на название наплевать, я выбрал main.c) — не забудьте в мастере создания фаила выбрать как язык Си и поставить галочки «Add to current project», «Debug» и «Release» (почему они не стоят по умолчанию?).

В созданный фаил копируем код (ключ доступа — хабрахабр). Я бы сюда закинул, если бы не хабрапарсер. Код писал не я, кстати: опыта пока-что маловато, хотя я вполне понимаю, что там происходит и как — в любом случае, в этом топике я останавливаться на этом не буду.

Теперь последние штрихи к настройке. Мы уже настроили то, с помощью чего будем компилировать, но не настроили, как и что у нас должно выходить. Поэтому жмем правой кнопкой на название проекта справа, выбираем Properties, а там — Build targets. Снимаем галочку «Auto-generate filename extension», и правим в Output filename расширение «exe» на «elf». Выполняем тоже самое для конфигурации Release, жмем Ok.

Жмем правой кнопкой на название проекта опять, выбираем Build Options и, на вкладке Linker Options, вписываем в Other linker options:
-lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lpsplibc -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel
. Повторяем для Release.

Вроде всё (надеюсь, это последняя статья скучного технического плана). Теперь собираем проект (Build→Build или знакомое всем Ctrl-F9) — если вдруг появились ошибки, то думаем, что же сделали не так, а потом спрашиваем в комментариях (может, я забыл чего).

Чтобы не настраивать потом заново, стоит сохранить проект как шаблон (File→Save Project as user-template...).

Итак, у нас есть elf-фаил нашей программы. Перед тем, как закидывать его на PSP, надо преобразовать его в EBOOT.PBP (название придумал не я, честно). Для этого у меня стоит такой bat-ник:

«E:\devkitPSP\bin\mksfo.exe» %1/bin/Debug/%1 %1/bin/Debug/%1.sfo
«E:\devkitPSP\bin\psp-fixup-imports.exe» %1/bin/Debug/%1.elf
«E:\devkitPSP\bin\psp-strip.exe» %1/bin/Debug/%1.elf -o %1/bin/Debug/stripped.elf
«E:\devkitPSP\bin\pack-pbp.exe» %1/bin/Debug/EBOOT.PBP %1/bin/Debug/%1.sfo NULL NULL NULL NULL NULL %1/bin/Debug/stripped.elf NULL


Он располагается у меня в директории pspprj, в которой я создаю по папке для каждого проекта. Используется он так: make_eboot.bat HelloWorld. Если у вас другая организация папок, или вы просто хотите его переписать или запускать каждую программу вручную — просто запускайте по строчке, не забывая заменять %1 на названия или пути к фаилам. В результате у вас получится фаил EBOOT.PBP, его надо будет закинуть в папку /PSP/GAME150/HelloWorld (или другое название)/, а все остальное можно спокойно удалить. Теперь проверяйте (выход — по кнопке Home).

Как «домашнее задание» — сделайте так, чтобы все «хелловорлды» были с новой строки. До встречи!

P.S. Вырезал весь «юмор», который сначала вписывал. Всегда самого раздражали тупые шутки в такого рода постах, а в том, что мои шутки не тупы, я быть уверен не могу :)



Похожие новости

16 февраля 2016 г., 0:23:57 samsung-ativ-se1

Компании Microsoft и Samsung молчат о выпуске обновления до Windows 10 Mobile для смартфонов серии ATIV, что породило слухи, будто эти устройства не будут обновлены и навсегда останутся с Windows Phone 8.1. Один пользователей форума Reddit поделился довольно интересной историей, связанной со смартфоном...

4 февраля 2016 г., 22:34:06 Российские сети откладывают рост цен на технику

Ранее в сети появилась информация, что российский ритейл планирует уже в январе поднять цены на всю технику. До Нового года этого не делали: компании не хотели терять покупателей в самый разгар сезона. Несмотря на это, достичь высоких показателей по продажам не удалось и теперь «время низких цен» немного...

29 января 2016 г., 13:14:17 4

Это устройство было признано самым популярным устройством на платформе Windows Phone не только три года назад, но и в настоящее время. Компания AdDuplex на днях опубликовала результаты исследования, согласно которым порядка 12,9% всех используемых сегодня смартфонов на этой мобильной платформе – это...

29 января 2016 г., 6:18:57 adduplex-jan2016-devices-global

Рекламно-аналитическая компания AdDuplex поделилась довольно интересной статистикой об устройствах на базе Windows Phone. Как выяснилось, большая часть используемых в настоящее время Windows-смартфонов, были представлены как минимум два года назад. Это можно воспринимать по-разному. Первый вариант:...

27 января 2016 г., 9:07:43 История компании Meizu

История компании начинается в 1998 года с человека по имени Хуан Сючжан, очень увлекающегося новыми гаджетами и электроникой. Он покупал в интернете новые девайсы и внедрял дома новые технологии. После чего делился в интернете, под псевдонимом Джек Вонг, впечатлениями и высказывал свои новые идеи и мнения....


Похожие обзоры

21 января 2016 г., 0:23:00 Обзор смартфона Meizu MX4 Ubuntu Edition

Слухи о том, что китайская компания Meizu планирует выпустить коммуникатор на базе Ubuntu Touch, появились еще в начале прошлого года. В течении 2014 г. компания периодически демонстрирует прототип устройства на выставках и осенью объявляет, что Meizu MX4 на Ubuntu Touch выйдет в декабре, сообщает некоторые...

20 января 2016 г., 18:56:58 Новинки осени: видеообзор Lumia 830 и Lumia 730 / 735

В сентябре этого года мы показали продолжение нашей новой линейки cмартфонов в лице вице-флагманской модели Lumia 830, а также двух более доступных моделей: Lumia 730 с двумя SIM-картами и Lumia 735 c поддержкой 4G. А уже в начале октября эти устройства вышли в продажу на российском рынке. После московской...

20 января 2016 г., 18:15:50 image

Добрый день, уважаемые хабровчане. Я хотел бы поделиться своими впечатлениями о новом смартфоне компании Blackberry — Blackberry Q10. На данный момент, это последнее устройство, выпущенное канадцами, а также первый QWERTY-смартфон на операционной системе Blackbery 10. Для меня это первый аппарат с клавиатурой,...

16 января 2016 г., 21:16:12 Планшет Amazon Fire 7 (2015)

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

11 декабря 2015 г., 23:42:23 Shadow_Complex_Remastered_1

Shadow Complex Remastered – переиздание замечательного metroid-подобного платформера с Xbox 360. Разработчик: Chair Entertainment, Epic Games Жанр: экшн–платформер Платформа: PC, Xbox One, PlayStation 4. Дата выхода: 3 декабря 2015 (PC-версия), 2016 год (Xbox One и PlayStation 4). На церемонии вручения...


Похожие отзывы

30 апреля 2015 г., 19:05:20 image

Здравствуйте, меня зовут Мурат и я смартфонозависим. *хором* «Здравствуй, Мурат». Везде и в любое время при мне находится смартфон. Не то, чтобы от его непосредственного нахождения вблизи зависит моя работа или личная жизнь, но этот аппарат значительно облегчает оба этих аспекта. На сегодняшний день...

6 апреля 2015 г., 21:47:53 Новые фотографии Sony Xperia E4 попали в Сеть

С того момента, как Apple интегрировала собственный картографический сервис с iOS 6 в 2012 году, компания Yelp оставалась единственным партнёром Apple, который обеспечивал наличие отзывов. Сейчас купертиновская компания начала включать в свои карты рецензии на отели и гостиницы с TripAdvisor и Booking....

16 марта 2015 г., 14:14:39 Windows Insider принесла Microsoft более миллиона отзывов

Управляющий программой Windows Insider Габриэль Аул с радостью сообщил через свой Твиттер-аккаунт, что Microsoft получила более миллиона отзывов о новой Windows 10 от участников тестирования через приложение Feedback. Официальное представление программы Windows Insider состоялось еще в сентябре 2014...

14 марта 2015 г., 23:28:21

Windows 10 несмотря на статус предварительной версии явно сумела завоевать симпатии пользователей. Многие несмотря на возможные проблемы поставили Windows 10 на свои компьютеры, и активно участвуют в жизни сообщества вокруг программы Windows Insider. Габриэль Аул сообщил, что недавно был получен миллионный...

12 марта 2015 г., 8:34:58 фото телефона

Достоинства: красивый, очень нравиться, стильный, удобныйВыбирала себе подарок к 8 марта. Телефон. У сони много моделей и старых и новых и в разную цену. Мне например, не нужно в кармане носить 30-40 тысяч рублей и бояться что потеряю или украдут. Хотя могу себе это позволить. Выбирала средненькую модель....


Похожие инструкции

16 декабря 2015 г., 17:10:49 Разработчик заявил об «официальном джейлбрейке» PS4

Если у вас есть игровая консоль PS4 и вы ждете ее взлома, то есть немного хороших новостей. На днях разработчик, известный под ником CTurt, объявил о выходе «официального джейлбрейка PS4». Для того, чтобы добиться поставленной цели, CTurt решил использовать эксплоит для ядра FreeBSD. Сам взломщик является...

28 октября 2015 г., 17:55:35 Команда Pangu обновила утилиту для джейлбрейка iOS 9-iOS 9.0.2, добавила ряд улучшений стабильности

Команда Pangu выпустила обновление для своей утилиты для джейлбрейка, способной взламывать совместимые iPhone, iPad и iPod touch. Всем тем, кто уже сделал джейл, не нужно повторять эту процедуру снова. Достаточно просто обновить "Pangu 9.0.x Untether" и "Patcyh" в Cydia. По словам разработчиков полезной...

21 октября 2015 г., 21:02:18 Sony выпустила тестовую прошивку Android 6.0 для Xperia Z3/Z3 Compact

Sony подготовила зефирный сюрприз и выпустила тестовую сборку Android 6.0 Marshamallow для смартфонов Xperia Z3 и Z3 Compact. Правда доступ к заветному обновлению получат пока лишь 10 000 владельцев данных устройств, отправивших заявку заранее. Чтобы загрузить тестовую сборку Android 6.0 Marshmallow...

15 июля 2015 г., 9:50:01

Добрый вечер GeekTimes. Гуляя по блогам MS наткнулся на замечательный пост с большой и «свежей» электронной библиотекой с последним обновлением от Eric Ligman, Microsoft Senior Sales Excellence Manager.Заголовок поста: Large collection of Free Microsoft eBooks for you, including: SharePoint, Visual...

14 июля 2015 г., 3:05:24 PP-1

Через две недели после выхода джейлбрейка iOS 8.4 от разработчиков из команды TaiG китайские хакеры, входящие в группировку 25PP, выпустили Mac-версию эксплоита PP Jailbreak для взлома операционки Apple. С помощью утилиты 25PP можно осуществить непривязанный джейлбрейк iOS 8.4 на iPhone, iPad и iPod...

Упомянутые аппараты
vk.com/analogindex_ru
"Analog Index" © 2014 - 2015