Всем привет, вот решил между конверторами вставить свою тему
Дело в том, что с начала этого года я веду разработку девелоперского софта, облегчающего создание хомбрю приложений для PSP. Проект ведется на этом форуме в разделе разработчиков. На данный момент в независимом от Сони в PSP девелопменте есть набор технологий,
объединяемый PSPDev SDK. Он включает базовый набор инструментов для программиста. Чтобы ими пользоваться, нужно иметь достаточный опыт программирования, да и опытным программистам (учитывая все
современные удобные инструменты для других технологий) все это муторно, отнимает много сил и времени. С этим столкнулся и я в начале программирования под PSP, потратил много времени на поиски чего-то более удобного, но как оказалось, даже на главном форуме PSP разработчиков ps2dev.org у людей те же проблемы и все пишут свой софт где придется. Имея определенный опыт создания инструментов для программистов, я начал проект, идеей которого стало написание на основе базовых инструментов PSPDev среды разработки,напоминающей Delphi, и существенно облегчающей процесс написания хомбрю, возможно даже для начинающих программистов, у которых есть навык программирования в средах, подобных Delphi.
Сейчас проект уже в некоторой степени готовности, поэтому выставляю на всеобщее обозрение. Так же одна из идей проекта - это продвижение российского PSP сообщества. Сейчас я готовлю английскую версию и выложу на ps2dev.org, а там будет видно что из этого выйдет. В написании проекта отмечу серьезную помощь со стороны pspowner а так же The ALKASH , .//Hack и Mortem
Скрины:
Опишу основные возможности PSPxIDE: - Многоязычный интерфейс с возможностью расширения на любые языки (в текущей версии поддержка русского и английского языков) - Полнофункциональный редактор c/cpp исходных текстов с синтаксической расцветкой
- Code Folding – группировка/сворачивание блоков исходных текстов при редактировании
- Возможность объединения набора исходных файлов в проекты.
- Контекстный поиск подстроки под курсором (Ctrl-F1) в файлах справки SDK
- Возможность создания и редактирования Makefile
- Поддержка упрощенной и произвольной формы работы с Makefile
- Возможность импорта файлов фона, иконки и музыки, выводимых в меню PSP (XMB), конвертация файлов изображений из нескольких форматов в формат PSP
- Компиляция исходных текстов и построение (Build) исполняемых файлов посредством cygwin, поддержка компиляции в формате PBP и PRX
- Вывод результатов компиляции (STDOUT и STDERR)
- Позиционирование текстов модулей на ошибках при выборе (двойной щелчок мышкой) в окне вывода строки, содержащей описание ошибки
- Поиск необходимых подключаемых библиотек для указания в Makefile по результатам неудачной компиляции с ошибками ‘undefined reference to …’
- Запуск результатов компиляции, находящихся на компьютере, на PSP посредством технологии PSPLINK
- Снятие скриншотов с PSP из приложений, запущенных на PSP
- Поддержка отладки на компьютере приложения, запущенного на PSP.:
а) Отладка исходного текста в стиле Delphi для приложений, написанных для
пользовательского режима (User Mode). Осуществляется с помощью технологии GDB.
Поддерживается как автоматическая отладка с использованием пользовательских точек останова, так и низкоуровневый доступ к консоли GDB для расширенной отладки.
б) Отладка приложений режима ядра (Kernel Mode) посредством вывода сообщений в STDERR
Архив содержит каталог с программой, для установки нужно просто извлечь папку PSPxIDE на компьютер и запускать PSPXIDE.exe. Подробней установка описана в файле help_ru.html (в каталоге программы). Помощь по использованию PSPxIDE можно открыть из программы (нажать F1 или выбрать из меню ?).
P.S. Особого стремления "грузить" этой темой у меня нет. Просто знайте, что такое могут на pspx Буду рад, если кто либо из программистов воспользуется PSPxIDE, поможет в тестировании и развитии.
Последний раз редактировалось ErikPshat; 26.06.2020 в 06:10.
Довольно много вопросов о том как и с чего начать программирование для PSP, вот решил написать
некое подобие Quick Start.
Итак, что нам понадобится
1) PSPSDK в сборке wSlava - http://elmortem.mirgames.ru/?link=18
(из архива всё распаковать, желательно в корень диска, если вы не знаете что такое "корень диска",
то советую дальше не читать, а записаться на какие-нибудь компьютерные курсы).
2) PSPxIDE от wSlava - http://pspx.ru/ide/PSPXIDEv_2_1_5.zip http://ifolder.ru/1601332
(Качаем версию 2.1.5. и также распаковываем в корень диска, затем качаем по второй ссылке
обновление 2.1.6 и распаковываем в папку PSPxIDE, это заменит ехешник на более свежий)
Вот, собственно и всё. =) Запускаем IDE.
Идём в пункт меню Проект->Опции. Внимание, здесь вы должны в поле "Директория PSPDev" указать
куда вы распаковали PSPSDK, т.е. если как я и советывал вы распаковали его в корень диска, то путь будет
выглядеть примерно так - C:\pspdev
Поставьте галку у пункта "Параметры по умолчанию" и давите ОК.
Ну вот и всё готово. Просто, не правда ли? Однако, для того чтобы проверить всё ли мы сделали правильно,
мы попробуем откомпилировать один из примеров входящих в PSPSDK. Итак, идём в пункт меню Файл->Открыть
Идём в папку "c:\pspdev\psp\sdk\samples" (Именно там вы найдёте некоторые примеры программ для ПСП).
Входим в папку "controller\basic" и открываем файлик "main.c".
Сейчас мы не будем разбирать все строчки кода появившегося на экране. Эта программа написана
полностью правильно, так что для проверки работы нам надо просто её откомпилировать.
Идём в пункт "Проект->Компиляция". Если мы всё сделали правильно, то увидим в окошке вывода -
Ну прежде чем заняться непосредственно созданием прог, я советую завести папку pspdev\Projects\
где вы будете хранить всё своё хозяйство =)
Писать мы будем конечно же, следуя традиции, программу "Hello, world!".
Итак, создали папку с проектами (pspdev\Projects\), создаём там папку "HW",
запускаем PSPxIDE.
Для начала идём в пункт "Файл->Новый" и получаем чистый лист. Сохраним его (Файл->Сохранить как...).
Выбираем нашу папку для программы (pspdev\Projects\HW) Имя файла вбиваем "main"(именно так и никак иначе)
и давим кнопку сохранить.
Далее идём в пункт "Проект->Мастер Makefile" и приводим появившуюся формочку к следующему виду -
Давайте пока не будем разбирать что там и как, просто сделайте как на картинке и всё. =)
Сделали? Давите "ОК".
Ну всё =) Начинаем писать собственно программу.
#include <pspkernel.h>
#include <pspdebug.h>
Это два необходимых нам хедера, копипастим этот код в свою программу.
pspkernel.h - очень нужный хедер, без него вобще ничего работать не будет.
pspdebug.h - хедер для вывода на экран отладочной инфы, именно его методы будем использовать для
вывода на экран.
Это тоже вписываем в программу и не задумываемся =) Последние две цифры модульинфы - версия вашей проги, второй аргумент указывает
что прога грузится в юзермод. Вторая строчка по сути дублирует первую, но туда ещё можно вписать и другие параметры, но мы их не рассматриваем здесь.
#define printf pspDebugScreenPrintf
Для вывода текста на экран PSP мы будем использовать функцию pspDebugScreenPrintf из хедера pspdebug.h,
однако, название это слишком длинное, и для удобства набора, а также чтобы выглядело по привычней,
переопределим её как printf. Вписываем в программу.
int exit_callback(int arg1, int arg2, void *common)
{
sceKernelExitGame();
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);
}
return thid;
}
Данный кусок кода мы тоже незадумываясь копипастим в нашу программу. Это обработчик колбеков,
которые нужны для правильной отработки выхода по кнопочке "HOME", а также чтобы прога правильно
прибила все свои хвосты, если вдруг пользователь вздумает выключать PSP с нашей работающей программой.
int main(void)
{
SetupCallbacks(); //Установить колбеки
pspDebugScreenInit(); //Проинициализировать экран для вывода текста
А вот собственно наш код. Функция main получит управление сразу после старта программы.
Переносим.
printf ("Hello, World!\n"); //Собственно, строчка выводящая наше "Здравствуй, мир" =)
sceKernelDelayThread (1000*1000); //Делаем 10 паузу чтобы можно было насладиться плодами наших трудов =)
sceKernelExitGame(); //Завершаем работу программы.
return 0; //Ну это так, для порядку =)
}
Тоже переносим в текст программы. Ну вот и всё, наша программа "Здравствуй, Мир!" готова. Сохраняем
её. и идём в "Проект->Компиляция".
В "pspdev\Projects\HW" обнаруживаем две папки - Hello_world и Hello_world%, копируем из на
мемори стик в psp/game150, запускаем и наслаждаемся =)
Вот так. Даю несколько полезных ссылок для дальнейшиз изысканий.
Если с Си/Си++ совсем плохо, сходите в лавку с компьютерной литературой и купите какой-нибудь
худо бедно учебник(типа для начинающих), или погуглите на предмет подобной литературы.
Вот что нашёл почти сразу - http://www.lib.ru/CTOTOR/
Удачи
(C) pspowner for pspx.ru
Возможно, TO BE CONTINUE...
Последний раз редактировалось pspowner; 26.10.2007 в 13:22.
Сразу хочу извиниться за оффтоп...
У меня возникла проблем, прошу помощи. Только не надо советовать читать мануал и давать прочие не относящиеся к делу советы.
Проблема такова, при попытке скомпилировать любой проект у меня возникает ошибка следующего характера:
Перепробовал всё что мог. Помогите. Заранее спасибо.
Так, есть подозрение что у тебя левый cygwin1.dll. Потому что качал девкит другой сборки? Или у тебя ещё 1 есть?
В общем с самого начала я делал сборку сам. То есть скачал отдельно PSPDev который идёт с инсталятором, установил его. Затем распаковал архив с PSPxIDE и сделал всё по инструкции. Тогда у меня ничего не запустилось, да и как то не было времени разьираться.
Сейчас, прочитав последние сообщения скачал Вашу подборку т.е. уже подготовленный PSPDev и PSPxIDE 2.1.6. Всё установил, всё раскидал. В папке Windows проверил файлик "гугвин". его там как и должно не оказалось. Но вот при попытке запука компилятора вылазит сообщение... Чего я только уже не перепробовал...
Сечас вот на пареллельной ОСи запустить попробую.
В общем в ходе опытов, выяснилось что проблема именно в компе. Попробовал запускать не на ноутбуке, а на домашней банке, выслушал пару матов, но проект скомпилировать тем не менее смог...
Если вдруг кто-то узнает в чем состоит проблема, скажите плиз.
Последний раз редактировалось Lord_Maloy; 23.10.2007 в 20:48.
В общем с самого начала я делал сборку сам. То есть скачал отдельно PSPDev который идёт с инсталятором, установил его. Затем распаковал архив с PSPxIDE и сделал всё по инструкции. Тогда у меня ничего не запустилось, да и как то не было времени разьираться.
Сейчас, прочитав последние сообщения скачал Вашу подборку т.е. уже подготовленный PSPDev и PSPxIDE 2.1.6. Всё установил, всё раскидал. В папке Windows проверил файлик "гугвин". его там как и должно не оказалось. Но вот при попытке запука компилятора вылазит сообщение... Чего я только уже не перепробовал...
Сечас вот на пареллельной ОСи запустить попробую.
В общем в ходе опытов, выяснилось что проблема именно в компе. Попробовал запускать не на ноутбуке, а на домашней банке, выслушал пару матов, но проект скомпилировать тем не менее смог...
Если вдруг кто-то узнает в чем состоит проблема, скажите плиз.
Очень странно, вот по тем сборкам которые указал, я устанавливал 3 раза - два раза дома и один раз на работе. Всё пашет на ура... матов не наблюдаю.
Сам Cygwin я ни разу не ставил, возможно дело в этом...
Последний раз редактировалось pspowner; 23.10.2007 в 21:06.
Lord_Maloy
у меня такая=же проблема была pspowner прав - дело 100% в версии Cygwin - найди все cygwin1.dll и удали их кроме того что в ...\pspdev\bin лежит (у меня например проблема была в том что использовалась cygwin1.dll от psp video converter)
добавлено через 12 минут Lord_Maloy
И еще ты точно переменные среды настроил?
Последний раз редактировалось ALgraFx; 23.10.2007 в 22:09.
Причина: добавил, подумав
[quote=ALgraFx;547383]Lord_Maloy
у меня такая=же проблема была pspowner прав - дело 100% в версии Cygwin - найди все cygwin1.dll и удали их кроме того что в ...\pspdev\bin лежит (у меня например проблема была в том что использовалась cygwin1.dll от psp video converter)[quote]
Спасибо, в общем подумал тут. Где обычно Windows смотрит свои dll, и вот оно... C:\Windows\System32, удалил оттуда гугвин и всё стало ОК.
Спасибо всем.
Если речь о PSPxIDE, то в пункте Проект->Мастер Makefile надо написать "Название в XMB". Далее, в пункте Проект->XMB Media включить картинки на заставку/фон и музыку.
попробовал сделать, как описано - все нормально компилится, но возникла проблема на 8гигстике - не запускается хоумбрюшка, черный экран, после вкл-выкл идет перезагрузка, причем и с другими хоумками такая беда, единственное идет PSPWrite. А на 4 гиг все нормально. У меня 3.40ОЕ.
Итак, прошивки 3.ХХ требуют чтобы ваше хомбрю было в формате .prx
Что надо сделать -
Во-первых редактируем Makefile - хотите блокнотом/ворпадом, хотите через PSPxIDE пункт Проект->Мастер Makefile->Закладка
Advanced. Туда вписываем перед "include $(PSPSDK)/lib/build.mak" -
BUILD_PRX = 1
PSP_FW_VERSION = 371
Если у вас в Makefile уже есть строчка "BUILD_PRX = 0" - можете использовать её, заменив 0 на 1 =)
Во-вторых - Ваше хоумбрю должно работать в user - режиме. Для этого в тексте программы, в самом её начале,
приводим модульинфо к следующему виду(второй аргумент должен быть 0) -
PSP_MODULE_INFO("Homko", 0, 1, 0);
Также, сразу после модульинфо прописываем доступный размер памяти(будет доступен через malloc), а то по умолчанию нам памяти
маловато будет =) 20 метров в самый раз думаю =)
PSP_HEAP_SIZE_KB(20480);
Ну вот собстна и всё. Компилим мейком или через PSPxIDE, кстати PSPxIDE компилит всё с использованием параметра kxploit,
однако в данном случае kxploit компилятором будет проигнорирован. Компилим, копируем получившийся eboot.pbp на стик,
запускаем и радуемся.
Вот. К сожалению нет ща под рукой ПСП чтобы проверить, а до этого я не компилил по 3.ХХ.
Проверю вечером, если что поправлю. Но в теории всё должно быть именно так.