Цитата:
Цитата:
|
Quick Start
Довольно много вопросов о том как и с чего начать программирование для 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". Сейчас мы не будем разбирать все строчки кода появившегося на экране. Эта программа написана полностью правильно, так что для проверки работы нам надо просто её откомпилировать. Идём в пункт "Проект->Компиляция". Если мы всё сделали правильно, то увидим в окошке вывода - Код:
****************************************** controller_basic controller_basic% Копируем их на мемори стик в папку psp/game150 и запускаем. Наслаждаемся нашим первым откомпиленным хоумбрю. Программа была откомпилена для ядра 1.50 с использованием kxploit. TO BE CONTINUE... |
Hello, World!
Первая программа =)
Ну прежде чем заняться непосредственно созданием прог, я советую завести папку pspdev\Projects\ где вы будете хранить всё своё хозяйство =) Писать мы будем конечно же, следуя традиции, программу "Hello, world!". Итак, создали папку с проектами (pspdev\Projects\), создаём там папку "HW", запускаем PSPxIDE. Для начала идём в пункт "Файл->Новый" и получаем чистый лист. Сохраним его (Файл->Сохранить как...). Выбираем нашу папку для программы (pspdev\Projects\HW) Имя файла вбиваем "main"(именно так и никак иначе) и давим кнопку сохранить. Далее идём в пункт "Проект->Мастер Makefile" и приводим появившуюся формочку к следующему виду - [IMG]http://img81.**************/img81/2580/21914180ti4.jpg[/IMG] Давайте пока не будем разбирать что там и как, просто сделайте как на картинке и всё. =) Сделали? Давите "ОК". Ну всё =) Начинаем писать собственно программу. Код:
#include <pspkernel.h> pspkernel.h - очень нужный хедер, без него вобще ничего работать не будет. pspdebug.h - хедер для вывода на экран отладочной инфы, именно его методы будем использовать для вывода на экран. Код:
PSP_MODULE_INFO("HW", 0, 1, 1); что прога грузится в юзермод. Вторая строчка по сути дублирует первую, но туда ещё можно вписать и другие параметры, но мы их не рассматриваем здесь. Код:
#define printf pspDebugScreenPrintf однако, название это слишком длинное, и для удобства набора, а также чтобы выглядело по привычней, переопределим её как printf. Вписываем в программу. Код:
int exit_callback(int arg1, int arg2, void *common) которые нужны для правильной отработки выхода по кнопочке "HOME", а также чтобы прога правильно прибила все свои хвосты, если вдруг пользователь вздумает выключать PSP с нашей работающей программой. Код:
int main(void) Переносим. Код:
printf ("Hello, World!\n"); //Собственно, строчка выводящая наше "Здравствуй, мир" =) её. и идём в "Проект->Компиляция". В "pspdev\Projects\HW" обнаруживаем две папки - Hello_world и Hello_world%, копируем из на мемори стик в psp/game150, запускаем и наслаждаемся =) Вот так. Даю несколько полезных ссылок для дальнейшиз изысканий. pspdev\psp\sdk\samples - Не забывайте что здесь находится ряд примеров. pspdev\psp\sdk\doc\html - Справочник. Онлайн версия справочника доступна зесь - http://psp.jim.sh/pspsdk-doc/modules.html В частности по pspdebug - http://psp.jim.sh/pspsdk-doc/group__Debug.html Если с Си/Си++ совсем плохо, сходите в лавку с компьютерной литературой и купите какой-нибудь худо бедно учебник(типа для начинающих), или погуглите на предмет подобной литературы. Вот что нашёл почти сразу - http://www.lib.ru/CTOTOR/ Удачи :) (C) pspowner for pspx.ru Возможно, TO BE CONTINUE... |
а можно также кратенько и доступно, но про кернел 3хх. просто писать под 1,50 уже смысла нет.
|
и новый сдк скомпиленый :)
|
Сразу хочу извиниться за оффтоп...
У меня возникла проблем, прошу помощи. Только не надо советовать читать мануал и давать прочие не относящиеся к делу советы. Проблема такова, при попытке скомпилировать любой проект у меня возникает ошибка следующего характера: http://nages.rxfly.net/files/pictures/er.jpg Перепробовал всё что мог. Помогите. Заранее спасибо. |
Так, есть подозрение что у тебя левый cygwin1.dll. Потому что качал девкит другой сборки? Или у тебя ещё 1 есть?
|
И ваще как и чего... по какому мануалу делалось то?
|
Цитата:
Сейчас, прочитав последние сообщения скачал Вашу подборку т.е. уже подготовленный PSPDev и PSPxIDE 2.1.6. Всё установил, всё раскидал. В папке Windows проверил файлик "гугвин". его там как и должно не оказалось. Но вот при попытке запука компилятора вылазит сообщение... Чего я только уже не перепробовал... Сечас вот на пареллельной ОСи запустить попробую. В общем в ходе опытов, выяснилось что проблема именно в компе. Попробовал запускать не на ноутбуке, а на домашней банке, выслушал пару матов, но проект скомпилировать тем не менее смог... Если вдруг кто-то узнает в чем состоит проблема, скажите плиз. |
Цитата:
Сам Cygwin я ни разу не ставил, возможно дело в этом... |
Lord_Maloy
у меня такая=же проблема была pspowner прав - дело 100% в версии Cygwin - найди все cygwin1.dll и удали их кроме того что в ...\pspdev\bin лежит (у меня например проблема была в том что использовалась cygwin1.dll от psp video converter) добавлено через 12 минут Lord_Maloy И еще ты точно переменные среды настроил? |
Нужна сборка под слим. Пожалуйста выложите. А то пользоваться Eboot loader'ом надоело))
|
[quote=ALgraFx;547383]Lord_Maloy
у меня такая=же проблема была pspowner прав - дело 100% в версии Cygwin - найди все cygwin1.dll и удали их кроме того что в ...\pspdev\bin лежит (у меня например проблема была в том что использовалась cygwin1.dll от psp video converter)[quote] Спасибо, в общем подумал тут. Где обычно Windows смотрит свои dll, и вот оно... C:\Windows\System32, удалил оттуда гугвин и всё стало ОК. Спасибо всем.:thank_you: |
Подскажите ка сделать сой загрузочный EBOOT.PBP со воей картинкой и названиием?
|
Что значит "загрузочный EBOOT.PBP"?
Если речь о PSPxIDE, то в пункте Проект->Мастер Makefile надо написать "Название в XMB". Далее, в пункте Проект->XMB Media включить картинки на заставку/фон и музыку. Ещё проще воспользоваться программой PSPBrew. |
Спасибо за поощь все получилось.
|
попробовал сделать, как описано - все нормально компилится, но возникла проблема на 8гигстике - не запускается хоумбрюшка, черный экран, после вкл-выкл идет перезагрузка, причем и с другими хоумками такая беда, единственное идет PSPWrite. А на 4 гиг все нормально. У меня 3.40ОЕ.
|
у хомок под 1,50 проблемы с запуском на 8Гб карте. обновись до 371М33 (хотя может и так сойдет) и пользуйся хомками для ядра 3хх.
надеюсь, кто Оунер таки объяснит как их делать :) |
Ну хорошо, спрашивали - отвечаем =)
Итак, прошивки 3.ХХ требуют чтобы ваше хомбрю было в формате .prx Что надо сделать - Во-первых редактируем Makefile - хотите блокнотом/ворпадом, хотите через PSPxIDE пункт Проект->Мастер Makefile->Закладка Advanced. Туда вписываем перед "include $(PSPSDK)/lib/build.mak" - Код:
BUILD_PRX = 1 Во-вторых - Ваше хоумбрю должно работать в user - режиме. Для этого в тексте программы, в самом её начале, приводим модульинфо к следующему виду(второй аргумент должен быть 0) - Цитата:
маловато будет =) 20 метров в самый раз думаю =) Цитата:
однако в данном случае kxploit компилятором будет проигнорирован. Компилим, копируем получившийся eboot.pbp на стик, запускаем и радуемся. Вот. К сожалению нет ща под рукой ПСП чтобы проверить, а до этого я не компилил по 3.ХХ. Проверю вечером, если что поправлю. Но в теории всё должно быть именно так. Если кому интересно, то вот тема на ps2dev.org *UPDATE по компиляции хомок для 3ХХ Идём в папку pspdev/psp/sdk/lib Находим там файлег build.mak, открываем его, смотрим в самом низу - $(PACK_PBP) EBOOT.PBP $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \ $(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \ $(PSP_EBOOT_SND0) strip_$(FINAL_TARGET) $(PSP_EBOOT_PSAR) Приставку strip_ перед $(FINAL_TARGET) удаляем и сохраняем файл. Вот теперь ебуты будут собираться правильно, если этого не сделать, то полученные хомки будут вываливаться в XMB с формулировкой Unsupported prx type. |
то есть кернел режим недоступен? только юзер? это получается что, например, во флэш0 не залезешь?
|
Только в ядре 1.50 можно грузить прогу напрямую в Кернел-мод.
На 3.ХХ, если надо чо из кернела - нада подгружать внешнюю либу. Т.е. не напрямую. |
Уважаемые! А подскажите как можно из программки проиграть flash-ролик? есть ли какие нибудь наработки на сях по этому делу?
А так же есть ли у кого исходники по воспроизведению MP3 на PSP Заранее спасибо! |
мр3 есть. флеша не видел. если мр3 надо то в приват давай.
|
Ну хорошо, дабы подвести черту. Рассказываю как юзать кернел-мод в 3.ХХ хомках. По крайней мере как я это понял читая ps2dev.org
Фактически, на нужно сделать 2 проги. 1) Kernel mode PRX - обычная библиотека, она будет вызываться из нашей главной программы. 2) EBOOT.PBP - по сути простой PRX лоадер, загружающийся в USER-режиме. Также, как это сделано на ps2dev разбираем на прмере Nand-дампера. Делаем библиотеку. main.c Код:
#include <pspsdk.h> Код:
PSP_MODULE_INFO("NandDumper", 0x1006, 1, 1); 1,1 - версия нашей библиотеке (пофиг какая) Также обратите внимание, что у нашей библиотеки есть функции module_start() и module_stop() - они обязательны для внешних библиотек. Также важно, что в нашей библиотеке нету точки входа main(). pspSdkSetK1() - устанавливаем в 0, чтобы не дать Кернелу упасть при обращении к областям памяти юзер-режима.. Makefile делаем следущим образом - Код:
TARGET = nanddumper а просто библиотека и все это нам не надо. Также обращаем внимание на подключаемые библиотеки. Да, и у нас появляется строчка "PRX_EXPORTS = nanddumper.exp" - в этом файлике указаны функции нашей библиотеки, функции которые будут видимы после её загрузки. nanddumper.exp - Код:
# Define the exports for the prx именно этими строчками вы указываете ваши функции экспортируемые из вашей библиотеки. Да, и не забываем что строчка "PSP_EXPORT_START(NandDumper, 0, 0x4001)" должна соответствовать тому, что вы написали в модульинфе в файле main.c. Значит этот файлег "nanddumper.exp" нам нужен для того, чтобы сгенерить .S файл, который в свою очередь юзается нашей прогой для доступа к экспортированным функциям. Чтобы сгенерить S файл идём в Пуск->выполнить вбиваем "cmd", заходим в папку с установленным PSPSDK и выполняем команду- Код:
psp-build-exports -s nanddumper.exp Т.е. вся процедура отображена здесь - [IMG]http://img521.**************/img521/8778/54330844wh4.jpg[/IMG] Получившийся .S - файл будет выглядеть примерно так - Код:
.set noreorder Ну а теперь делаем наш EBOOT.PBP - главную программу, которая грузит нашу библиотеку. Код:
#include <pspsdk.h> Код:
PSP_MODULE_INFO("NandDumperMain", 0, 1, 0); Внимание, необходимо задекларировать все функции которые будем юзать из внешней библиотеки Код:
int ReadBlock(u32 page, u8 *buffer); Код:
SceUID mod = pspSdkLoadStartModule("nanddumper.prx", PSP_MEMORY_PARTITION_KERNEL); и голова у нас об этом не болит. Ну и makefile Код:
TARGET = nanddumpermain Закидываете на стик и всё готово. (С)Перевод мой) Оригинал на ps2dev Писал, не проверяя на PSP, вечерком возможно проверю. Если есть каменты, пожелания/исправления - пишите. |
Уважаемые, у кого-нибудь пробовал скомпилить плагин Mp3prx?
есть исходники но непонятно под какую SDK? при компиляции арет что файл psputility_avmodules.h не найден какие есть идеи? |
Цитата:
|
*UPDATE по компиляции хомок для 3ХХ
Идём в папку pspdev/psp/sdk/lib Находим там файлег build.mak, открываем его, смотрим в самом низу - $(PACK_PBP) EBOOT.PBP $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \ $(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \ $(PSP_EBOOT_SND0) strip_$(FINAL_TARGET) $(PSP_EBOOT_PSAR) Приставку strip_ перед $(FINAL_TARGET) удаляем и сохраняем файл. Вот теперь ебуты будут собираться правильно, если этого не сделать, то полученные хомки будут вываливаться в XMB с формулировкой Unsupported prx type. |
Цитата:
Ладно, будем грызть кактус дальше. |
что у меня получилось:
1) всё поставил 2) успешно скомпилил готовый сэмпл под 1,50 3) успешно скомпилил Превед Мир! под 1,50 4) успешно скомпилил Превед Мир! под 3,71 5) безуспешно попытался скомпилить Нанд Дампер. ошибки при комплиляции PRX следующие: Код:
****************************************** |
Цитата:
Вобщем ну его к черту этот НАНДДампер. Это был лишь пример того как использовать внешние библиотеки, к тому же я скорее всего в инструкции чот не так написал(по мелочи)))). Но это не главное, главное что в ДевКите чевота нехватает, подозреваю что этого самого nand_driver2 Разбирацца было лень, такчто ща сделал простенькую пару prx/pbp - всё компилица и работает. Надеюсь там будет всё понятно ибо уж упростил до предела. Потом может и инструкцию под это перепишу. http://www.rapidshare.ru/448787 http://www.rapidshare.ru/448790 З.Ы. Кстати, нечто похожее лежит в сэмплах в папке prx. Не совсем то что нужно, правда, но для общего развития советую посмотреть. |
Люди, скажите ламеру, реально написать дебаггер под PSP (хотя бы просто окно дизасма, вьювер памяти/регистров, возможность бряков) так, чтобы на PSP скомпилить плагин, который будет обмениваться данными с софтиной на PC через USB? Или есть какие-нибудь другие рабочие дебаггеры, в которых можно дебажить UMD-шные игры?
|
psplink+usbhost+pcterm+psp-gdb. Это всё описано в мануале к псп линку.
|
Есть ещё CWCheats который имеет встроенную фанукцию дизасма. Однако отладки там нет.
Ваще RISC для меня китайская грамота, скока не пытался хоть чевота понять. |
Цитата:
И вообще реально ли мне это сделать?.. Цитата:
Цитата:
|
Цитата:
Я о RISC, упрощённом наборе инструкций для процессоров. RХХХХ в частности. CISC на х86 у меня вопросов не вызывает, я с ним работал. Если знаешь по риску полезное чтиво, буду рад ознакомиться. |
Цитата:
Цитата:
Смотрел инструкции R4000 - не сильно отличается от 3k, но вот дебаггера нет :( С удовольствием бы написал сам, да вот нет необходимых знаний и умений :( Насколько я понимаю, достаточно написать плагин, который будет дежурить во время игры и связываться с прогой на PC, при требовании отсылая ей данные о регистрах, памяти и т.п. А прога в свою очередь будет обладать юзверьским интерфейсом, дизасмом и т.п. Реально ли такое сделать?... Если всё получится - выйдет немало хороших переводов :) |
люди подскажите плиз, у меня сабж psplink - не работает!
все настроил, и никак... пишет что к псп никак не подключиться. делал всё шаг в шаг как писал камрад Pspowner. псп fat прошивка 3.71 m33 - 3 очень хотелось бы откомпилированный код запускать сразу на железяке! psplink ставил 2.0 из набора что выкладывал Pspowner у меня когда его запускаешь, на компе зыза определяется просто зыза, НЕ type B. пробовал и 3.0 с ней определяется как type B но все равно не работает. что пробовать сделать? |
Поставить драйвера PSP type b. найти пральный psplink.ini или выправить его самому.
Попробуй снять/установить галку на Запускать "USBHost в Daemon-режиме". Вобще ща уже не помню всех этих плясок с бубном... Но кароч работает он. А запускать на железяке - ну скомпили, перепиши да запускай. |
спасибо, ждал! сейчас попробую. я кстати раздобыл дрова для psp type B
и поставил но когда просто втыкаю её она определяется как PSP. напрочь грохнуть обычные дрова я не решаюсь ... или она как тип Б должна определяться только в psplink ? |
только после запуска псплинк на псп.
|
Текущее время: 20:25. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.