Psp программы что это

Больше полугода назад у меня появилась игровая консоль Sony Playstation Portable (или просто PSP). Надо сказать, что игры на ней отменные, консоль можно взять в любую поездку и приятно скоротать время в дороге. Как разработчику мне всегда было интересно, как же писать приложения для PSP, я видел множество свободнораспространяющихся приложений, таких как PSP WiFile Transfer, Bookr и даже порты OpenSource игр, например OpenTTD, а недавно у меня появилось немного свободного времени, чтобы заняться вопросом разработки для PSP более подробно, поэтому я поискал информацию по данному вопросу и, как оказалось, программировать для PSP не так уж и сложно.

Итак, в данной статье мы рассмотрим настройку среды разработки для PSP на языках программирования Си и Си++ и написание простейшей классической программы Hello world.

Что же мы имеем изначально:

1. дистрибутив Ubuntu 9.04
2. доступ в интернет (придется скачивать исходные коды библиотек, необходимых для разработки PSP программ)

13 ИНТЕРЕСНЫХ ФАКТОВ О PSP


3. свободное время порядка 3 — 4 часов (библиотеки собираются из исходных кодов, поэтому компиляция занимает несколько часов)

Первое что нам потребуется — установить subversion:

sudo aptitude install subversion

Теперь можно получить последние исходные коды psptoolchain (кросскомпилятора для PSP)

svn co svn://svn.ps2dev.org/psp/trunk/psptoolchain

В полученной папке есть readme файл для всех и специально для дистрибутива Ubuntu (замечу, что psptoolchain можно собрать в любом linux дистрибутиве, а так же cygwin-е). В readme файле для дистрибутива Ubuntu написано что для сборки psptoolchain необходимо удовлетворить зависимости с помощью следующей команды:

sudo apt-get install build-essential autoconf automake bison flex
libncurses5-dev libreadline-dev libusb-dev texinfo libgmp3-dev
libmpfr-dev subversion gcc-4.2

что мы и сделаем. После этого нам нужно определить несколько переменных окружения. Добавим следующие строки в файл ~/.bashrc:

Читайте также:
Что за программа дзен на андроиде

export PSPDEV=»/usr/local/pspdev»
export PSPSDK=»$PSPDEV/psp/sdk»
export PATH=»$PATH:$PSPDEV/bin:$PSPSDK/bin»

и выполним команду:

source ~/.bashrc

Теперь можно приступить непосредственно к сборке среды разработки:

cd psptoolchain
sudo ./toolchain-sudo.sh

После этого необходимо получить дополнительные библиотеки для разработки (zlib, SDL и т.п.). Для этого сначала получим набор скриптов из SVN с помощью следующей команды:

svn co svn://svn.ps2dev.org/psp/trunk/psplibraries psplibraries

К сожалению в скриптах установки дополнительных библиотек есть ошибка, для того чтобы ее исправить необходимо сделать следующее: открваем файл psplibraries/scripts/003-freetype.sh и заменяем его содержимое на следующий текст:

После этого установим одну зависимость:

sudo aptitude install libtool

и запускаем компиляцию библиотек:

sudo ./libraries-sudo.sh

Программы и утилиты для PSP

После данных махинаций мы имеем кросскомпилятор и набор библиотек для разработки программ для PSP на Си и Си++. Давайте напишем нашу первую программу.

#include #include PSP_MODULE_INFO(«Hello World», 0, 1, 1); #define printf pspDebugScreenPrintf /* Exit callback */ int exit_callback(int arg1, int arg2, void *common) < sceKernelExitGame(); return 0; >/* Callback thread */ int CallbackThread(SceSize args, void *argp) < int cbid; cbid = sceKernelCreateCallback(«Exit Callback», exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; >/* Sets up the callback thread and returns its thread id */ int SetupCallbacks(void) < int thid = 0; thid = sceKernelCreateThread(«update_thread», CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) < sceKernelStartThread(thid, 0, 0); >return thid; > int main()

Итак, с помощью макроса PSP_MODULE_INFO мы определяем задаем информацию о нашей программе и ее версии, далее опредяем несколько стандартных callback-ов и соотвественно главную функцию нашей программы main — которая устанавливает заданные нами callback-и и печатает на экране заветную строку «Hello world».

Теперь напишем Makefile для того чтобы собрать наш код.

Читайте также:
Any reader что это за программа

TARGET = hello
OBJS = main.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hello world
PSPSDK=$(shell psp-config —pspsdk-path)
include $(PSPSDK)/lib/build.mak

Скомпилируем нашу программу командой make. Полученный файл EBOOT.PBP поместим на консоль в папку psp/game/hello. Вот и все. В следующей статье мы рассмотрим, как контролировать нажатия клавиш.

Источник: habr.com

ТОП-5 лучших плагинов для PSP-консоли

ТОП-5 лучших плагинов для PSP-консоли

Топ планшетов 2023 года: выбираем лучшее

С плагинами вы можете сделать с PSP многое из того, что невозможно по умолчанию. Предложение, соответственно, велико. Мы расскажем, какие пять плагинов следует установить в обязательном порядке.

sceKernelSleepThread();
// поток засыпает
// если уснули все потоки, то единственное,
// что может случиться — это каллбек
// в этой программе эта строчка никогда не выполнится 😉

Все остальные функции лучше оставить такими, какие есть. Полную версию этой программы с комментарием к каждой строчке можно найти в архиве.

Итак, мы можем теперь выводить что угодно и узнавать, как на это реагирует пользователь. Самое время портировать Moria или какую-нибудь змейку Для полного текстового счастья не хватает, конечно же, цвета и возможности писать где угодно. Ради цвета я бы посоветовал использовать макрос, который я благополучно стырил откуда-то из хедеров к IDE:

typedef unsigned char byte;
// определяем, потому что DevKitPSP понятия не имеет,
// что есть такой тип
#define RGB(r,g,b) ((u32)((byte)(r)|((byte)(g)

Этот макрос выдает цвет, подходящий к любым функциям, связанным с цветом среди API PSP. Например, к функции установки фона для текста:

pspDebugScreenSetBackColor(RGB(0, 0, 255));
// ставим синий

или цвета самого текста:

pspDebugScreenSetTextColor(RGB(0, 255, 0));
// зеленый!

или даже установки символа в любую позицию:

pspDebugScreenPutChar(100, 100, RGB(255, 0, 0), ‘A’);
// ставим красный символ ‘A’ в точку с координатами (100, 100)

Читайте также:
Openshot что это за программа

Кстати, координаты задаются в пикселях, а не в строках и столбцах символов.

Ну что ж, теперь ты можешь написать на экране PSP что угодно. Например, проклятие черными буквами на черном фоне своему врагу, или другу-готу. Или розовым по черному нарисовать ASCII-спанч боба. Или красным по розовому признаться в любви своей девушке (парню?). Или. а, о чем я. Решать тебе.

Наслаждайся! А в следующей статье я постараюсь рассказать про картинки. Хотя бы немножко

Источник: xakep.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru