Кто пробывал делать отпишитесь пожалуйста!
(Качество изложенного, насколько понятно, оценка по 5-ти бальной шкале)Для начала наших творчеств нам понадобятся:
1. Редактор кода.
2. pspSDK (самая главная вещь для нас!).
3. Ну и программка для удобного редактирования Makefile'a.
4. Конвертер музыкальных файлов в формат AT3 и плагин для работы.
Ссылки:
pspSDK устанавливаем на диск C так будет удобнее в дальнейшем использовании.
Notepad++ устанавливаем в то место, в которое он предлагает.
А MakefileEditor кладём в удобное для Вас место на диске.
Сейчас мы перейдём к созданию нашей первой программы для PSP!
На диске C надо создать папку "projects", а вней папку "psp".
В папке "psp" создадим папку "HelloWorld".
Запустите программу MakefileEditor.exe и заполните поля, как показано на рисунке:
Перейдите на вкладку "make.bat" и заполните также, как на картинке:
В Notepad++ нажимаем на вкладку Language->C->C++(Выставляем подсветку синтаксиса C++).
Далее нажимаем на вкладку Settings->Preferences... И в поле Localization выбираем Русский.
Далее нам надо создать два файла "main.c" и "pspSetup.h". Создаём их с помощью Notepad++.
Код "main.c":
#include "pspSetup.h"// подключаем заголовочный файл pspSetup.h в нём хранятся наши определения
int main(int argc, char ** argv)//название нашей функции, она главная, значит её имя main
{
pspDebugScreenInit();//инициализация экрана PSP
SetupCallbacks();//инициализация колбеков
return 0;//ну это обязательно, потому, что функция должна возвращать значение
}
Это будет ваша основа, так что сохраните её в отдельном месте.
Код "pspInit.h":
#include <pspkernel.h>// это самый главный заголовочный файл без него ничего работать не будет
#include <pspdebug.h>// это заголовочный файл для вывода на экран
#include <pspdisplay.h>// это заголовочный файл для работы экрана нашеё PSP
#define printf pspDebugScreenPrintf// чтобы не тащить за собой много кода сделаем определение printf будет обладать всеми теми же свойствами как и pspDebugScreenPrintf просто имя мы укоротили...
PSP_MODULE_INFO("HelloWorld", 1, 2, 2);//эта строчка тоже обязательна! Вместо "HelloWorld" мы пишем название своей программы, название надо обязательно писать в кавычках
int ExitCallback(int Arg1, int Arg2, void *Common)
{
sceKernelExitGame();
return 0;
}
int CallbackThread(SceSize Args, void *Argp)
{
int CallbackId;
CallbackId = sceKernelCreateCallback("Exit Callback", ExitCallback, NULL);
sceKernelRegisterExitCallback(CallbackId);
sceKernelSleepThreadCB();
return 0;
}
int SetupCallbacks(void)
{
int ThreadId = 0;
ThreadId = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if (ThreadId >= 0)
{
sceKernelStartThread(ThreadId, 0, 0);
}
return ThreadId;
//весь выше перечисленный код до PSP_MODULE_INFO нужен для выхода из программы
}
Сохраняем эти два файла в папке, где находится наш проект HelloWorld.
Теперь откроем main.c и напишем после строчки "pspDebugScreenInit();" следующее:
printf("HelloWorld!");//Мы выведем на экран нашей PSP текст HelloWorld!
В итоге у нас получится следующий код ф файле "main.c":
#include "pspSetup.h"
int main(int argc, char ** argv)
{
pspDebugScreenInit();
printf("HelloWorld!");
sceKernelExitGame();// выход из программы
return 0;
}
Сохраняем наш файл и заходим в папку с нашим проектом.
Там мы запускаем файл "make.bat" и через некоторое время у нас появится файл "EBOOT.PBP" в этой же папке.
На карте памяти PSP в папке "PSP\GAME" создадим папку "HelloWorld" и скопируем в неё наш EBOOT.PBP
Теперь на PSP запустим программу HelloWorld.
И вуаля работает!
Ну вот и всё!
В следующем уроке я расскажу Вам об обработке нажатия кнопок.
Пока! Удачи Вам в Ваших начинаниях!
Если появятся вопросы пишите!
MALEXKIY
Сообщение отредактировано 10 ноября 2012 13:34. Редактировалось 9 раз(а)