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

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

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

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

    Публикаций: 0
    Комментариев: 64
    Спасибо: 0/194
    Репутация: 0
    Тут: 16 лет 2 месяцa
    жду второго урока

    #2 [08.09.08] opS

    Посетители
    opS
    ...)))

    Публикаций: 4
    Комментариев: 48
    Спасибо: 93/189
    Репутация: 26
    Тут: 16 лет
    МОЛОДЕЦ :r respect rulez : bravo

    #3 [08.09.08] anti_sobaka

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

    Публикаций: 0
    Комментариев: 11
    Спасибо: 0/0
    Репутация: 0
    Тут: 16 лет 3 месяцa
    молодец rulez respect жду второго

    #4 [08.09.08] зызынько

    Посетители
    зызынько
    --

    Публикаций: 0
    Комментариев: 10
    Спасибо: 0/5
    Репутация: 0
    Тут: 15 лет 8 месяцев
    и что из этого получилось не понял я?

    #5 [08.09.08] Seva23

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

    Публикаций: 1
    Комментариев: 7
    Спасибо: 48/21
    Репутация: 1
    Тут: 15 лет 10 месяцев
    а мне кто нить объяснить зачем это нуно?

    #6 [08.09.08] NCrit

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

    Публикаций: 0
    Комментариев: 80
    Спасибо: 0/12
    Репутация: 1
    Тут: 16 лет 6 месяцев
    ЖЖЁшь , но я лучше на компе писать буду, а здесь дам тебе и всем остальным простор для действия))) - я просто очень ленивый)
    Вообще лучше бы сделать отдельную рубрику

    #7 [08.09.08] TWERQEN

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

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

    #8 [08.09.08] Platin

    Посетители
    Platin
    мертв.

    Публикаций: 51
    Комментариев: 230
    Спасибо: 1269/377
    Репутация: 57
    Тут: 16 лет 3 месяцa
    неплохой учитель laughing

    #9 [08.09.08] Restitce

    Посетители
    Restitce
    Печаль

    Публикаций: 35
    Комментариев: 923
    Спасибо: 2251/321
    Репутация: 36
    Тут: 16 лет 9 месяцев
    TWERQEN
    да.... ты большой ей богу
    А так из этого материала нереально научиться это равносильно тому что научиться читать и говорить что ты знаешь русский язык.
    С++ нужно изучать полностью а не эти выдерные куски из общей части языка

    #10 [08.09.08] TWERQEN

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

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

    Restitce сорри чё т не очень понял твоей фразы
    если ты имеешь ввиду школьников то я имел ввиду только нубов которые ещё ни копейки не зароботали
    а я вот системный администратор в родной школе
    нужны не такие уроки а нужна комнда от сайта которая будет заниматься разроботкой софта под заказ (идея запатентована)

    а ну и ещё эти статьи (если они будудт продолжаться) будут пладить нубов аля :"я типо знаю с++"(ну наверно все знают что впринципе стандартная фраза для ламера)

    просил не писать плохих коментов а как тут не высказаться если ты плодишь проблемы нам на голову

    #11 [08.09.08] ultragl

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

    Публикаций: 0
    Комментариев: 2
    Спасибо: 0/2
    Репутация: 0
    Тут: 16 лет 5 месяцев
    КрасавчеГ!!Когда нибудиь и нормальную винду напишем

    #12 [08.09.08] psp-men

    Посетители
    psp-men


    Публикаций: 2
    Комментариев: 29
    Спасибо: 109/75
    Репутация: 2
    Тут: 16 лет 2 месяцa
    спасибо большое

    #13 [08.09.08] TWERQEN

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

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

    #14 [08.09.08] .:Witcher:.

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

    Публикаций: 13
    Комментариев: 55
    Спасибо: 744/6
    Репутация: 15
    Тут: 15 лет 8 месяцев
    а кусков больше таких и не будет, 1 урок это чтобы заинтересовать:)
    А второй я буду обьяснять азы,но TWERQEN прав, про алгоритмы не подумал:) 2 урок будет о них, да и 3,4,5, тоже:) а потом пойдёт изучение цыклов, функций и т.д.

    #15 [08.09.08] тимур вагапов

    Посетители
    тимур вагапов
    --

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

    #16 [08.09.08] TWERQEN

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

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

    #17 [08.09.08] 9987

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

    Публикаций: 0
    Комментариев: 13
    Спасибо: 0/0
    Репутация: 2
    Тут: 15 лет 9 месяцев
    Спасибаньки flowers

    #18 [08.09.08] зызынько

    Посетители
    зызынько
    --

    Публикаций: 0
    Комментариев: 10
    Спасибо: 0/5
    Репутация: 0
    Тут: 15 лет 8 месяцев
    витчер плиз создай тему на форуме и туда выкладывай свои уроки а то ты выпустишь 5,6 уроков а потом по сайту их всех искать

    #19 [08.09.08] .:Witcher:.

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

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

    Зато так увидят больше народу:) да и посмотри слева от
    Просмотров: 238 Автор: .:Witcher:. Вчера, 21:3

    есть зелёный плюсик нажми и новость добавится в закладки:)[/b]

    #20 [08.09.08] Restitce

    Посетители
    Restitce
    Печаль

    Публикаций: 35
    Комментариев: 923
    Спасибо: 2251/321
    Репутация: 36
    Тут: 16 лет 9 месяцев
    .:Witcher:.
    Ты бы лучше создал тему на форуме удлбней былоб

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

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


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

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

    E-Mail:

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



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

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

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

    Обои для PSP

    Нежить
    Альбом: Фэнтези
    Разместил: RESIDENT

    Голосование

    Сколько времени в день Вы проводите за PSP?




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

    Купить/починить 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