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

Популярные статьи

Обзор нового на PSPinfo.RU

ДатаГородНомерНазваниеЗаписаться
собери друзей и сообщи об этом всем! »»
НовостиТемыСейвыОбоиВидеоролики
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

Уроки программирования. Урок первый!
[07.09.08] Автор: .:Witcher:. HomeBrew » Программы
Всем привет!!!

Вот я начинаю выкладывать уроки программирования на psp.

Естественно это не так легко если вы не знаете C++.

Но думаю что всего вы научитесь :)

Я постараюсь выкладывать как намного больше уроков :)
Сразу хочу извинится за ошибки. :)
Ну что, начнём?

Уверен что 99,9% пользователей не знают C++, но уж больно сильно хотят программировать на psp:)) Уверен что читать книжки они тоже не хотят:). Именно для таких пользователей я и буду писать уроки:)

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

И так, начнём:)
Качаем нашу программу в которой мы будем работать: скачать. (пароль pspinfo.ru)
Программы не совсем стабильная, зато хорошая для начинающих:-)


Так же нам надо будет sdk, мне нравится pspdev, не знаю даже чем, наверно потому что я с неё начинал, и продолжаю в ней работать:) Скачать её можно сдесь. (пароль pspinfo.ru)

Также качаем библиотеку что бы отображалась русская кодировка тут
Распокованый фал кидаем в C:Pspsdkpspsdklib

Думаю можно начинать:)
Распаковываем архив с нашей программой, установки она не требует, так что кидаем её куда вам удобней:). Лично у меня она стоит в c:/программы/pspinfoide/

Далее распаковываем архив с sdk, давайте договоримся что он будет хранится в c:/pspsdk, так нам будет удобней:)
Терь надо поправить некоторые файлы что бы далее прога компилировала уж в prx, одним словом что бы пахало на 3.xx или 4.xx:)

Идём в папку pspsdk/psp/sdk/lib
Находим там файлег build.mak, открываем его, смотрим в самом низу -

<br />
$(PACK_PBP) EBOOT.PBP $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) <br />
$(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) <br />
$(PSP_EBOOT_SND0) [color=#FF0000]strip_$(FINAL_TARGET)[/color] $(PSP_EBOOT_PSAR)

Приставку strip_ перед $(FINAL_TARGET) удаляем и сохраняем файл.

Потом нужно в папке pspsdkbin переименовать mkdir.exe на mkdir2.exe, затем открыть файл pspsdkpspsdklibbuild.mak в любом текстовом редакторе и заменить все mkdir на mkdir2. Это связано с тем, что mkdir есть в Windows и перекрывает mkdir, входящую в SDK.

Ну вот уже и пол дела сделано:) Теперь запускаем нашу программу c:/программы/pspinfoide/pspinfoIDE.exe, так же советую сделать ярлык на рабочем столе:
Уроки программирования. Урок первый!


Теперь можно приступить и к настройке программы:
жмём проект > опции, и выставляем как на скрине:
Уроки программирования. Урок первый!


Вроде прога настроена:)

Приступаем к программирование, давайте сразу договоримся, я вам показую строчку и обьясняю её, а вы в свою очередь вставляете все строчки по порядку:). Делать будем мы как всегда привет мир lol
Создаём в програмке файл main.cpp



[quote]#include &lt;pspkernel.h><br />
#include &lt;pspdebug.h>[/quote]

Это два главных хедера.
pspkernel.h - самый главный хедер, без него ничего работать не будет.
pspdebug.h - хедер для вывода на экран отладочной инфы, именно его методы будем использовать для
вывода на экран.

<br />
PSP_MODULE_INFO("HW", 0, 1, 0);<br />
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);<br />

Последние две цифры модульинфы - версия вашей проги, второй аргумент указывает
что прога грузится в юзер режиме. Вторая строчка по повторяет первую, но туда ещё можно вписать и другие параметры, нам эта строчка не такуж и нада, просто копипастим:).

#define printf    pspDebugScreenPrintf

Эта строчка показывает что если мы будем использывать printf, будет выполнятся pspDebugScreenPrintf, которая отображает то что вы хотите. Очень удобная команда, так что пользоватся буде ей:)

int exit_callback(int arg1, int arg2, void *common)<br />
{<br />
    sceKernelExitGame();<br />
<br />
    return 0;<br />
}<br />
<br />
int CallbackThread(SceSize args, void *argp)<br />
{<br />
    int cbid;<br />
<br />
    cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);<br />
    sceKernelRegisterExitCallback(cbid);<br />
<br />
    sceKernelSleepThreadCB();<br />
<br />
    return 0;<br />
}<br />
<br />
int SetupCallbacks(void)<br />
{<br />
    int thid = 0;<br />
<br />
    thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);<br />
    if(thid >= 0)<br />
    {<br />
        sceKernelStartThread(thid, 0, 0);<br />
    }<br />
<br />
    return thid;<br />

Этот кусок кода я не буду подробно обьяснять, просто скажу что это обработчик колбеков, которые нужны для правильной отработки выхода по кнопочке "HOME", а также чтобы прога правильно прибила все свои хвосты, если вдруг пользователь вздумает выключать PSP с нашей работающей программой. Думаю вы меня поняли:)

<br />
int main(void)<br />
{<br />
    SetupCallbacks(); //Устанавливаем колбеки<br />
    pspDebugScreenInit(); //Инициализируем экран для вывода текста<br />
    printf ("Привет мир!!!n");      //вот эта та команда printf, если бы мы выше не написали #define..., то нам бы пришлось писать pspDebugScreenPrintf<br />
    sceKernelDelayThread (1000*1000); //устонавливаем время работы программы (10сек)<br />
        sceKernelExitGame();        //Завершаем работу программы.<br />
    return 0;              //Ну эт уже обезатильно:)<br />
}<br />



Далее тыкаем проект > мастер makefile
Далее выбираем произвольный
И вписуем:
TARGET=Hello_World<br />
OBJS=main.o<br />
INCDIR =<br />
CFLAGS=-G0  -O2<br />
CXXFLAGS=$(CFLAGS) -fno-exceptions -fno-rtti<br />
ASFLAGS=$(CFLAGS)<br />
BUILD_PRX=1<br />
LIBDIR=<br />
LDFLAGS=<br />
LIBS=<br />
EXTRA_TARGETS=EBOOT.PBP<br />
PSP_EBOOT_TITLE=HW<br />
PSPSDK=$(shell psp-config --pspsdk-path)<br />
include $(PSPSDK)/lib/build.mak


Вот терь жмём компиляция. ИИИИИИИИИИИИ готово, кидаем на psp в папку psp/game/




Что такое makefile??
Правило, а так же инфа программе как надо компилировать файл


Все вопросы спрашуёте в коментах:). Если вам не понравилась моя статья, то прошу не писать плохие коменты:)
Кнопка спасибо чуть ниже smile
Спасибо за внимание laughing

  • 68

Просмотров: 23802 Благодарностей: 202
Напечатать Комментарии (80)
»» Сообщить об ошибке «« [?]

Сказать "Спасибо" могут только зарегистрированные пользователи.
Похожее по теме "Уроки программирования. Урок первый!":
  • Уроки программирования. Дополнение к первому уроку.
  • Уроки программирования. Урок четвёртый!
  • Уроки программирования.Урок 2
  • GoTube [ОБНОВЛЕН И РАБОТАЕТ]
  • iR Shell v4.7
    • PSPinfo
    • ВКонтакте
    • Facebook
    • Twitter
    • Справка
    #41 [10.09.08] Katashi sesnsey

    Посетители
    Katashi sesnsey
    --

    Публикаций: 0
    Комментариев: 14
    Спасибо: 0/18
    Репутация: 1
    Тут: 15 лет 8 месяцев
    НЕПРАВИЛНЫЙ КОД! Помогите! prav Не скачиваются програмы!

    #42 [10.09.08] TWERQEN

    Посетители
    TWERQEN
    7:0 господа хороши!

    Публикаций: 4
    Комментариев: 266
    Спасибо: 129/156
    Репутация: 73
    Тут: 16 лет 3 месяцa
    RS в третьем я был классе
    просто вот этот урок вообше ничему не научит поскольку он преждевременный

    #43 [10.09.08] ripart

    Посетители
    ripart
    i
    am
    god
    )
    )
    )

    Публикаций: 0
    Комментариев: 60
    Спасибо: 0/70
    Репутация: 6
    Тут: 15 лет 10 месяцев
    kлacc pулe3

    #44 [10.09.08] SUPERDOG

    Посетители
    SUPERDOG
    У вас все еще есть пиво? Тогда мы идем к вам!

    Публикаций: 0
    Комментариев: 250
    Спасибо: 0/18
    Репутация: 21
    Тут: 16 лет 5 месяцев
    Молодец что постарался но я бы на твоём месте делал бы опрос "нужен ли вам следующий урок" и варианты ответа типа:
    да,
    нет,
    пиши посмотрим,
    конечно нужен,
    мне всё ровно!

    #45 [10.09.08] spider456

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

    Публикаций: 0
    Комментариев: 21
    Спасибо: 0/73
    Репутация: 1
    Тут: 16 лет 3 месяцa
    ха ваще РЕСПЕКТ тебе братуха прикольно)) respect
    спасибо за пищу для ума)) жду 2 урока)) fellow

    #46 [10.09.08] SHEMA

    Посетители
    SHEMA
    Suck my balls

    Публикаций: 30
    Комментариев: 317
    Спасибо: 2474/464
    Репутация: 22
    Тут: 16 лет 11 месяцев
    Просто супер!

    #47 [11.09.08] BABART FRID

    Посетители
    BABART FRID
    --

    Публикаций: 0
    Комментариев: 7
    Спасибо: 0/0
    Репутация: 0
    Тут: 15 лет 8 месяцев
    расскоажи как psp сомому чипировать точнее как акамулятор пеепоять

    раскожи как psp самому чипировать вернее как акомулятор перепоять

    #48 [11.09.08] Дален

    Посетители
    Дален
    --

    Публикаций: 0
    Комментариев: 78
    Спасибо: 0/118
    Репутация: 0
    Тут: 16 лет 1 месяц
    прикольно) respect

    #49 [12.09.08] Yrecik

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

    Публикаций: 0
    Комментариев: 53
    Спасибо: 0/54
    Репутация: 6
    Тут: 15 лет 8 месяцев
    а я ни че не понял!

    #50 [12.09.08] Squall2001

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

    Публикаций: 0
    Комментариев: 107
    Спасибо: 0/75
    Репутация: 3
    Тут: 16 лет 6 месяцев
    Спасибо огромное. Очень полезная информация, хотябы для общего развития. Так держать и не сходи с выбранного курса.

    #51 [12.09.08] McRave

    Посетители
    McRave
    Поживём Увидим, Выживим Учтём!

    Публикаций: 90
    Комментариев: 695
    Спасибо: 2865/1027
    Репутация: 109
    Тут: 15 лет 8 месяцев
    даа и что будет если так зделать непонЯЛ

    #52 [12.09.08] TWERQEN

    Посетители
    TWERQEN
    7:0 господа хороши!

    Публикаций: 4
    Комментариев: 266
    Спасибо: 129/156
    Репутация: 73
    Тут: 16 лет 3 месяцa
    .:chester.:
    Yrecik
    Squall2001
    jeckh47

    все четверо - нубы уже за 30 кулл!

    #53 [13.09.08] Joih

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

    Публикаций: 0
    Комментариев: 27
    Спасибо: 0/34
    Репутация: 1
    Тут: 15 лет 11 месяцев
    я непонял что это всё даёт?!!??!?!?!?!?17???!?!?!?!!?!?

    #54 [13.09.08] TWERQEN

    Посетители
    TWERQEN
    7:0 господа хороши!

    Публикаций: 4
    Комментариев: 266
    Спасибо: 129/156
    Репутация: 73
    Тут: 16 лет 3 месяцa
    Joih +1 нуб что то они стали быстрее плодится

    #55 [13.09.08] OBI-WAN KENOBI

    Посетители
    OBI-WAN KENOBI
    --

    Публикаций: 0
    Комментариев: 18
    Спасибо: 0/18
    Репутация: 0
    Тут: 15 лет 8 месяцев
    АВТОР СПАСИБО КОНЕЧНО НО МНЕ НЕ НУЖНЫ ВСЕ ТВОИ ЗНАНИЯ Я ИТАК ВСЕ ЗНАЮ! СПАСИБО ЗА СТАРАНИЯ НЕ УСТАЛ ПИСАТЬ ВСЕ ЭТО?

    #56 [14.09.08] Shadow.egor

    Посетители
    Shadow.egor
    --

    Публикаций: 0
    Комментариев: 44
    Спасибо: 0/290
    Репутация: 0
    Тут: 16 лет 4 месяцa
    насчёт "Уверен что 99,9% пользователей не знают C++, но уж больно сильно хотят программировать на psp" сказал правильно но ни черта не получается делаю всё как описано а получается какаето хрень и тем более не понял чё на зызу закинуть надо recourse recourse recourse recourse recourse recourse recourse и ещё чё это даст???

    #57 [16.09.08] Хлюпикс

    Посетители
    Хлюпикс
    --

    Публикаций: 0
    Комментариев: 22
    Спасибо: 0/2
    Репутация: 4
    Тут: 16 лет
    потратил 2 часа и не хрена ни работает

    #58 [16.09.08] .:Witcher:.

    Посетители
    .:Witcher:.
    много заказов.. Работаю

    Публикаций: 13
    Комментариев: 55
    Спасибо: 744/6
    Репутация: 15
    Тут: 15 лет 8 месяцев
    если я начну писать уроки, то делать никто не будет, потому что все хотят сделать быстро и сразу, па когда оказывается что надо прочитать иного, и делать долго, то все сразу отказуются

    #59 [19.09.08] Shadow.egor

    Посетители
    Shadow.egor
    --

    Публикаций: 0
    Комментариев: 44
    Спасибо: 0/290
    Репутация: 0
    Тут: 16 лет 4 месяцa
    я не отказываюсь просто невтыкаю!!! help help help

    #60 [20.09.08] BXUtka

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

    Публикаций: 0
    Комментариев: 13
    Спасибо: 0/78
    Репутация: -1
    Тут: 15 лет 9 месяцев
    а мне помагло rulez respect

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

    Сообщить о нарушениях в этих комментариях
    Для чтения материалов на нашем сайте не нужна регистрация.
    Но для написания комментариев она нужна.
    Но теперь, Вы можете оставить свой комментарии к материалам сайта без регистрации на PSPinfo.RU, а просто авторизовавшись в популярных сетях:
    - ВКонтакте
    - Facebook
    - Twitter
    Комментарии модерируются!
    В случае нарушения правил сайта Вы будете заБАНены.


    Обсуждение соцсетей тут.

    Личный кабинет

    E-Mail:

    Пароль (Забыли?):



    [Регистрация]

    МиниСтатистика

    На нашем сайте имеется:
    Обоев для PSP: 153001
    Сейвов для PSP: 7253
    Тем для PSP: 5095
    Роликов о PSP: 26507

    Обои для PSP

    Taxi
    Альбом: Автомобили
    Разместил: XacaH

    Голосование

    Ваш самый любимый игровой жанр?




    Показать все опросы

    Купить/починить PSP

    » Место сдается...

    А тут ты был???

    » Покажи где ты уже был!
    » 
    » 


    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