PSPверсия |  Новое на сайте |  Обратная связь |  Команда сайта |  FAQ |  ПРАВИЛА |     
 
Обзор нового на PSPinfo.RU

Ближайшие Сходки:
ДатаГородНомерНазваниеЗаписаться
собери друзей и сообщи об этом всем! »»
Самые популярные FLASH игры:

Sonic
играли 89408 раз

Muay Thai
играли 44478 раз

Castle Defender
играли 42472 раз

Urabanslug
играли 36338 раз

Mud and Blood (vietnam)
играли 34379 раз

chicken
играли 33775 раз

sonicblox
играли 33654 раз

x227sm
играли 33570 раз

Crazy Scates
играли 28396 раз
Абсолютные лидеры:
НовостиТемыСейвыОбоиВидеороликиВикторина
1..:Dr.Who:.945
2.iliya23420
3.Константин414
4.(:389
5.Masserau377
1.Dankin333
2.Игорь330
3.kalash1322
4.DJAMrik271
5.Артем=)252
1..:Dr.Who:.347
2.legofan12130
3.-=Sephiroth=-117
4.Dan96106
5.Patric Star104
1.wushu12250
2.Metal Sonic7404
3.iliya237000
4.Теккен6652
5.LFY6309
1..:Dr.Who:.4548
2.Михаил3742
3..:Canon:.1920
4.Ivan1760
5.Гомер Симпсон1535
1.Chizuru Minamoto2610552500
2..:Dr.Who:.2609446950
3..:Buxou:.1724432140
4.snupi1637432090
5.vitas1551113420750
расширенная статистика »»

   Все форумы » PSP » Софт для PSP » программирование для psp Предыдущая тема :: Следующая тема  
Сейчас эту тему просматривают: [требуется регистрация] -> [требуется регистрация]
Гостей: [требуется регистрация]
 
Спасибо за пост: 4 Ссылка на пост #1 Добавлено: 4 мая 2008 14:56    

Забанен
LIon__
--

Возраст: 31 | | Рыбы
Сообщений: 377
Благодарности: 22 / 55
Репутация: 9
Предупреждений: 1
Друзья
Тут: 16 лет 3 месяцa
Забудьте про тупые проги!!
Зарание извеяюсь за ошибки:)
Сайт там где полно уроков и самодельные проги(англиский)тут

там всё по англиски так что читайте лучше мою статью:


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


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

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

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

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

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

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

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

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

E:devkitPSPinclude
E:devkitPSPpspinclude
E:devkitPSPpspsdkinclude


Linker:

E:devkitPSPlib
E:devkitPSPpsplib
E:devkitPSPpspsdklib


Вкладка 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" (почему они не стоят по умолчанию?).

В созданный фаил копируем код:


#include

#include


PSP_MODULE_INFO("Hello World", 0, 1, 1);

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;
}

int main(int argc, char ** argv)
{
pspDebugScreenInit();
SetupCallbacks();
while(1)
{
pspDebugScreenPrintf ("Hello World");
sceDisplayWaitVblankStart();
}
sceKernelSleepThread();
return 0;
}


Код писал не я, кстати: опыта пока-что маловато, хотя я вполне понимаю, что там происходит и как - в любом случае, в этом топике я останавливаться на этом не буду.

Теперь последние штрихи к настройке. Мы уже настроили то, с помощью чего будем компилировать, но не настроили, как и что у нас должно выходить. Поэтому жмем правой кнопкой на название проекта справа, выбираем 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:devkitPSPbinmksfo.exe" %1/bin/Debug/%1 %1/bin/Debug/%1.sfo
"E:devkitPSPbinpsp-fixup-imports.exe" %1/bin/Debug/%1.elf
"E:devkitPSPbinpsp-strip.exe" %1/bin/Debug/%1.elf -o %1/bin/Debug/stripped.elf
"E:devkitPSPbinpack-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. Вырезал весь "юмор", который сначала вписывал. Всегда самого раздражали тупые шутки в такого рода постах, а в том, что мои шутки не тупы, я быть уверен не могу :)


Остальные части щя выложу:) bully , ток ошибки исправлю:)
Наверх 
Ссылка на пост #31 Добавлено: 14 января 2011 11:45    

Посетители
BaHu3aTop
--

Возраст: 28 | | Лев
Сообщений: 65
Благодарности: 1 / 1
Репутация: 3
Предупреждений: 0
Друзья
Тут: 13 лет 5 месяцев
1
2
3

Добавлено спустя 1 минуту 57 секунд:

4
Наверх 
Ссылка на пост #32 Добавлено: 14 января 2011 11:58    

Посетители
Angelboy
--

Возраст: 32 | | Стрелец
Сообщений: 618
Благодарности: 34 / 27
Репутация: 72
Предупреждений: 1
Друзья
Тут: 13 лет 9 месяцев
BaHu3aTop
ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО! =) У меня брат на Game Maker'е игры штопает.=) Сейчас леталку про космос делает.=)
Наверх 
Ссылка на пост #33 Добавлено: 16 января 2011 20:00    

Посетители
indeec_evafan
--

Возраст: 32 | | Весы
Сообщений: 210
Благодарности: 5 / 16
Репутация: 3
Предупреждений: 0
Друзья
Тут: 13 лет 3 месяцa
А у когонибудь есть собранные либы или исходники для libpng и libsdl???
Хотел из свн скачать, но он отвалился походу:(
Наверх 
программирование для psp
  • 85

  
Добавить эту тему в

Похожие темы:
Название Темы [ответов]АвторДатаФорум
» 3D программирование [10]zharikov.vitalik17.06.12Клуб PSPinfo.RU »» Программирование
» Программирование с QT [5]vadik0530.05.11Клуб PSPinfo.RU »» Программирование
» программирование [3]zlost04.09.08PSP »» Софт для PSP
» Программирование для PSP Часть 2 [3]MALEXKIY10.11.12Клуб PSPinfo.RU »» Программирование
» Кто может? [16]
  программирование
nikita1996spb26.08.11Клуб PSPinfo.RU »» Болталка
» Программирование PSP Часть 5 [3]
  Графика
MALEXKIY31.12.12Клуб PSPinfo.RU »» Программирование
» Программирование для PSP Часть 3 [7]
  Теория
MALEXKIY12.11.12Клуб PSPinfo.RU »» Программирование
» Программирование для PSP Часть 4 [2]
  Переменные, цветной текст
MALEXKIY16.12.12Клуб PSPinfo.RU »» Программирование
» Программирование для PSP [3]
  Здесь я постараюсь научить Вас программировать для PSP на C++.
MALEXKIY09.11.12Клуб PSPinfo.RU »» Программирование
» Программирование для PSP ФОРУМ [21]
  Задавайте вопросы, делитесь наработками!
MALEXKIY12.11.12Клуб PSPinfo.RU »» Программирование

Информация
Посетители, находящиеся в группе Гости, не могут оставлять сообщения в данной теме.


Flash игры onLine |  Игры для PSP |  Обои для PSP |  Софт для PSP |  Темы для PSP |  Сейвы для PSP |  Комиксы для PSP |  Форум |  Карта сайта |   
"" and "PlayStation" are registered trademarks of Sony Computer Entertainment Inc. "", PSP and "UMD" are trademarks of Sony Computer Entertainment Inc. "", "XMB", "Memory Stick Duo" and the "Memory Stick Duo" logotype are trademarks of Sony Corp. All product titles, publisher names, trademarks, artwork and associated imagery are trademarks, registered trademarks and/or copyright material of the respective owners. All rights reserved.
Game's TOP-100 Counter