zaero
Супермодератор
Сообщений: 1228
Зарегистрирован: 05.01.2005
Рейтинг: 0
Сказал спасибо: 4
Поблагодарили 2 раз(а) в 2 сообщ.
|
Программирование под PSP
да будем начинать. Что писать? хм.... Ну давай начнем с архиватора на псп. А еще луче сразу под ось выше 3.60м33) (просто у мну слим уже... )
вот нашел на prozzak.ru:
Цитата:Верисия за 29.06.2007
Ссылки по теме
http://ps2dev.org
http://www.psp-programming.com/
Итак, мои друзья, вы решили попробовать себя в роли девелопвера прог для ПСП. Поэтому специально для вас и предназначен этот мануал.
На начальном этапе нам понадобятся компьютер с выходом в интернет (желательно не через прокси, через прокси возникают некоторые проблемы) и установленной на него операционной системой. Из ОС это могут быть Windows или Linux.
1.Итак, на первом этапе, если Вы пользователь Windows, нам понадобится Cygwin. Заходим на страничку http://www.cygwin.com и качаем setup.exe
При установке Cygwin будет диалог, в котором он предложит выбрать компоненты, которые нужно будет доставить.
Нужно поставить:
autoconf
automake
bison
doxygen
flex
gcc
make
mc
ncurses
patch
readline
subversion
texinfo
wget
В Cygwin будет дерево этих всех компонентов, для удобства можно нажать на кнопку View, тогда они будут расположены в списке в алфавитном порядке. Чтобы выбрать компонент - щелкните на Skip напротив компонента пару раз, пока не появится номер версии. Советую папку в которую setup сохранил архивы сохранить на будущее: можно будет чуть что локально переставить Cygwin или перенести на другой компьютер.
2.Итак, вы скачали и установили Cygwin.
Не отключаясь из Интернета, запускаете cygwin из ярлыка или при помощи c:\cygwin\cygwin.bat. И в появившейся консоли набираете:
svn export svn://svn.ps2dev.org/psp/trunk/psptoolchain psptoolchain
и ждете пока svn скачает psptoolchain.
Есть проблема если у вас прокси. Теоретически svn поддерживает прокси. Настроить прокси можно путем прописывания его в файле c:\cygwin\home\”ваш логин”\.subversion\servers. Если такого файла не нашли, то в консоли Cygwin выполните команду svn --version и он появится. В этом файле настройки прокси нужно будет раскоментить и заполнить в группе [global]. Но есть вероятность, что прокси будет не поддерживать методы, используемые svn, и прокси работать не будет. В общем, у меня настроить прокси не получилось . Тогда могу предложить попробовать какую-нибудь соксирующую программу, типа socscup или proxycup.
3. Ок, с svn вы разобрались и скачали psptoolchain. Он теперь у вас находится в папке c:\cygwin\home\”ваш логин”\psptoolchain
Нужно изменить содержимое файла c:\cygwin\cygwin.bat на
Код:
@echo off
C:
chdir C:\cygwin\bin
set WGETRC=c:/cygwin/wgetrc
set PSPDEV=/usr/local/pspdev
set PATH= %PATH%;%PSPDEV%/bin
bash --login -i
строчка set WGETRC=c:\cygwin\wgetrc нужна, если у вас интернет через прокси, если нет, то можете её не прописывать.
Если же интернет у вас всётаки через прокси, то создаете файл
c:\cygwin\wgetrc и прописываем в него строчку
ftp_proxy = ваш прокси:его порт
если у прокси требует авторизации, то добавляйте в файл еще строчки:
proxy_user = ваш логин
proxy_password = ваш пароль
4. Разобравшись с прокси можно приступать к следующему этапу.
Запускаем cygwin. Командой ls убеждаемся в наличии папки psptoolchain, убеждаемся что мы подключены к интернет. Командой cd psptoolchain заходим в эту папку и там выполняем команду ./toolchain.sh.
Процесс собирания toolchain долгий и нудный, поэтому можете пока пойти погулять куда-нибудь на ПСП, например. В принципе, можно пока поставить на закачку следующий компонент путем запуска еще одного окна cygwin и выполнением команды
svn export svn://svn.ps2dev.org/psp/branches/psplinkusb psplinkusb
и так же следующий компонент: Eclipse SDK с стайта http://www.eclipse.org/downloads
(весит примерно 120 Мбайт) и компонент к нему CDT c http://www.eclipse.org/cdt/downloads.php
5. Жалко авторы psptoolchain не догадались в конце его установки выводить строчку типа "Поздравляем, psptoolchain установился успешно", так что я сам поначалу не понял, успешно ли он установился или вылетел.
Чтобы удостовериться что он установился, соберите следующий пример.
----------------------------
Можно попробовать написать первую программу для ПСП.
Создаете папку Projects и Projects\HelloWorld в папке c:\cygwin\home\”ваш логин”.
В папке HelloWorld создаете файл HelloWorld.cpp с содержанием:
Код:
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
PSP_MODULE_INFO("Hello World", PSP_MODULE_USER, 1, 1);
#define printf pspDebugScreenPrintf
bool gNeedExit = true;
int exit_callback(int arg1, int arg2, void *common)
{
gNeedExit = true;
return 0;
}
int CallbackThread(SceSize args, void *argp)
{
int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}
int SetupCallbacks(void)
{
int thid = 0;
thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if (thid >= 0)
{
sceKernelStartThread(thid, 0, 0);
gNeedExit = false;
}
return thid;
}
int main()
{
SceCtrlData pad_data;
pspDebugScreenInit();
SetupCallbacks();
sceCtrlSetSamplingCycle(0);
sceCtrlSetSamplingMode(PSP_CTRL_MODE_DIGITAL);
printf("Hello PSP World!\nPress X to exit.\n");
while (!gNeedExit)
{
sceCtrlReadBufferPositive(&pad_data, 1);
if (pad_data.Buttons & PSP_CTRL_CROSS)
gNeedExit = true;
}
sceKernelExitGame();
return 0;
}
И
Файл makefile c содержанием:
Код:
TARGET = HelloWorld
OBJS = HelloWorld.o
CFLAGS = -G0 -Wall -O2
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)b/build.mak
В cygwin заходите в папку HelloWorld, для удобства навигации можете использовать команду mc.
Далее выполняете команду make и если установка toolchain прошла удачно, то на выходе вы получите свеженький eboot.pbp который можете попробовать запустить на своей псп.
Вместе с psptoolchain поставился pspsdk с документацией к ней. Индекс файл к документации: c:\cygwin\usr\local\pspdev\psp\sdk\doc\html\index.html.
По ней можете попробовать разобраться и поэкспериментировать в коде, скажу только, что благодаря вызову функции SetupCallbacks() наша программа получает возможность выходить по нажатию клавиши home.
Dreamshell fAn
|
|