Здесь я постараюсь рассказать о компиляции готовых программ для PS Vita из исходного кода. Исходный код или Source code - это набор текстовых файлов сырого кода и набор ресурсов, из которых потом с помощью компиляторов SDK компилируются программы. Некоторые разработчики прикладывают свои исходные коды в папке src вместе с готовой рабочей программой, а так же, заливают на репозитории, например, на популярный GitHub. Многие недалёкие в программировании юзеры даже не имеют представления, как оттуда скачать выложенный там исходный код. Поэтому, пожалуй, лучше именно с этого и начать.
Часть 1. Как скачивать исходный код с GitHub?Top-button.gif
Для скачивания с репозиториев существует множество различных программ. Я же расскажу про программу-черепашку TortoiseSVN.
Нажмите на картинку ниже, чтобы скачать программу под свою битность ОС и установите её:
Ниже, на той же странице, вы можете скачать языковой файл перевода, так же, под битность своей ОС, и установить его.
Сменить язык можно в меню настроек, нажав правой кнопкой на любой папке и, выбрав TortoiseSVN -> Settings.
Создаём пустую папку в любом месте жёсткого диска под таким же названием, т.е просто вставляем в название создаваемой папки ранее скопированное название (CTRL+V). Конечно же, вы можете придумать любое своё название для папки.
Теперь сверху справа видим зелёную кнопочку Clone or download и нажимаем её, где раскрывается вот такое окошко:
Да, вы можете просто скачать архив с исходниками по ссылке "Download ZIP", но это не наш случай, поэтому, скопируйте ссылку из этого окошка, просто нажав на иконку справа.
Теперь, нажмите правой кнопкой на вашу созданную папку и выберите в контекстном меню "Checkout.pngSVN Checkout..."
Теперь, ваша папка с исходниками пометится такой зелёной галочкой:Checkmark.png. Это означает, что на данный момент исходники находятся в нетронутом состоянии. Как только вы внесёте изменения в какой-нибудь файл, как вы сразу увидите, что значёк папки и изменённого файла приобретут иконку с красным восклицательным знакомExclamation.png:
Теперь вы можете редактировать, удалять файлы исходников и в любой момент можете всё вернуть в исходное состояние, т.е. в любой момент обновить исходники до последней ревизии или до любой предыдущей ревизии, просто нажав на папку правой кнопкой и выбрав в контекстном меню пункт "SVN Update":
Да, стоит заметить, что изменённые файлы не будут обновляться. Если вы захотите их тоже обновить, просто удалите их, тогда, при обновлении, автоматически скачаются оригиналы.
Ну вот и разобрались. Про остальные функции вы можете сами узнать, просмотрев из раскрывающегося списка в пункте "TortoiseSVN" всевозможные плюшечки, которые нам на данный момент пока не нужны.
Для компиляции программ требуется SDK (Software Development Kit) — комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для компьютерной системы, игровых консолей, операционных систем и прочих платформ. Поэтому, в первую очередь, произведём установку SDK.
Идём в репозиторий zecoxao, где уже есть минимально подготовленная сборка VitaSDK с сопутствующими компонентами, под названием PSDK3v3:
PSDK3v3 MinGW - инструкция написана на основе данной сборки под 32-битную Windows.
PSDK3v3 msys64 - изменённая новая версия под 64-битную Windows
Состав PSDK3v3
Сборка основана на MinGW, MSIS и следующих инструментах и библиотеках:
Нажимаем справа зелёную кнопочку Clone or download и скачиваем ZIP-архив по ссылке "Download ZIP" куда-нибудь, например, на рабочий стол.
Открываем архив PSDK3v3-master.zip и видим внутри папочку с таким же названием "PSDK3v3-master". Извлекаем эту папочку в корень диска C:\ и никуда иначе!!! Примечание: дело в том, что этот комплект так же компилировался автором и все пути к вложенным файлам и папкам автоматически прописывались в файлы, создаваемые при компиляции. Поэтому, ничего трогать и изменять месторасположение категорически воспрещается.
Теперь, в корне диска C:\ переименовываем название извлечённой папки PSDK3v3-master на PSDK3v3. То есть, удаляем из названия лишний суффикс -master, который GitHub автоматически присваивает к вложениям.
Далее, проходим по пути C:\PSDK3v3\MinGW\msys\1.0 и запускаем файл msys.bat
Вы увидите, что в папке "home" создалась ещё одна "домашняя папка" под названием вашего имени пользователя компьютера, а в открывшемся чёрном консольном окне вы увидите зелёными буквами данное имя. Это означает, что вы уже находитесь в своей "домашней папке" под вашим именем.
Введите в консольном окне cmd свою первую команду "exit", чтобы закрыть его. Нажмите правой кнопкой по msys.bat и сделайте Отправить -> Рабочий стол (создать ярлык), для быстрого доступа к консольному окну MinGW.
И в заключении, вам необходимо установить путь к компилятору в "Переменные среды" PATH, чтобы система могла распознавать команды к исполняемым файлам компилятора из любого окна консоли, например, из стандартного окна CMD Windows. Для этого:
Пройдите в папку C:\PSDK3v3\MinGW\msys\1.0\postinstall и запустите батник pi.bat.
На вопрос Do you wish to continue with the post install? [yn ] ответьте y и нажмите Enter.
На вопрос Do you have MinGW installed? [yn ] ответьте y и нажмите Enter.
На вопрос Where is your MinGW installation? введите путь C:/PSDK3v3/MinGW
На последний вопрос ответьте y и нажмите Enter, затем ещё раз Enter для закрытия окна.
После подобных внесений изменения в систему, компьютер следует перезагрузить.
Дополнительная проверка:
Вам необходимо проверить, прописались ли пути к папкам исполняемых файлов нового компилятора в переменную PATH.
Нажмите сочетание клавиш Win + Pause/Break
В открывшемся окне "Система" нажмите слева "Дополнительные параметры системы"
В открывшемся окне "Свойства системы" нажмите в самом низу кнопку "Переменные среды..."
Выделите строку PATH и нажмите кнопку "Изменить"
Проверьте, прописаны ли там следующие пути, если нет, то впишите и поместите их на первое место, разделяя пути символом ; (точка с запятой):
В Windows 10 каждый путь вписывается отдельно, без ; и с помощью кнопки "Вверх" переместите эти строчки на первое место в том же порядке.
Это нужно для того, чтобы система находила и использовала именно эти компиляторы PSDK3v3 для PS Vita в первую очередь, т.к. у юзера могут быть установлены отдельно и другие компиляторы, например MinGW, Msys, Perl, PSPSDK, Python, QT и т.д, которые так же имеют в чистом виде или в своём составе MinGW и Msys, которые сконфигурированы по другому и ничего не знают о существовании PSDK3v3, от чего могут случаться ошибки при компиляции приложений для PS Vita.
C:\PSDK3v3\MinGW\msys\1.0\local\vitasdk\bin
C:\PSDK3v3\MinGW\msys\1.0\bin
C:\PSDK3v3\MinGW\bin
Теперь, вам нет необходимости каждый раз пробираться к папке C:\PSDK3v3\MinGW\msys\1.0, чтобы запустить консоль через msys.bat или искать ярлык на рабочем столе, а затем продвигаться по папкам, вручную прописывая пути. Вы можете, находясь прямо в папке с исходниками, удерживая клавишу SHIFT, нажать правой кнопкой в пустом месте папки и Открыть окно команд в контекстном меню, и тут же ввести команду на компиляцию make. Система сама найдёт нужный компилятор и выполнит команду.
Далее, в инструкции я не буду придерживаться данного метода (это между нами), а буду использовать классический способ через msys.bat, как указывал автор PSDK3v3.
На этом установку PSDK3v3 будем считать законченной.
Давайте попробуем скомпилировать свою первую программу с Makefile - Hello World для PS Vita ...
Создаём в своей "домашней папке" под вашим именем - папку "vitahelloworld".
Должен получиться следующий путь: C:\PSDK3v3\MinGW\msys\1.0\home\Ваше_Имя\vitahelloworld
Нажимаем правой кнопкой по вновь созданной папке и выбираем "Checkout.pngSVN Checkout...". Скачиваем исходники.
Примечание: этот момент мы рассматривали в Часть 1 данной инструкции. Вспомнили?
Запускаем консольное окно батником msys.bat из папки C:\PSDK3v3\MinGW\msys\1.0 или ярлыком с рабочего стола.
В консоли зелёными буквами вы видите свою домашнюю папку (в которой находитесь в данный момент) - это папка C:\PSDK3v3\MinGW\msys\1.0\home\Ваше_Имя. Имейте это в виду.
Чтобы пройти в папку с исходниками, введите команду: cd vitahelloworld/trunk
Теперь, когда мы находимся в папке с исходниками, содержащей файл Makefile, введите команду make и следите за ходом компиляции:
Поздравляем! Вы скомпилировали свою первую программу! Забирайте из папки с исходниками готовый vitahelloworld.vpk, устанавливайте на PS Vita и проверяйте.
Чтобы удалить результаты компиляции, введите команду make clean.
Точно так же, как вы уже ознакомлены ранее, создаём пустую папку в домашнем каталоге и затягиваем туда исходники программы "HENkaku Offline Installer".
Заходим в папку C:\PSDK3v3\MinGW\msys\1.0\home\Ваше_Имя\offline-installer\trunk и видим там файл CMakeLists.txt. Это значит, что исходный код подготовлен таким образом, чтобы компилироваться с помощью скрипта из этого файла, а в качестве компилятора используется кросс-платформенный компилятор CMake.
На пока что, отложим CMake в сторону, потому что на данном этапе мы пока скомпилировать сразу ничего не сможем, т.к. получим ошибку по поводу sqlite. Как можно заметить, проверив вложенные папки, там прилагается папка sqlite-3.6.23.1, в которой лежат файлы Makefile.am и Makefile.in, но нет нужного нам файла просто Makefile. Но, как полагается, там лежит файл INSTALL, о котором упоминается в README. Поэтому, двигаемся дальше по следующему сценарию...
Запускаем консольное окно батником msys.bat из папки C:\PSDK3v3\MinGW\msys\1.0 или ярлыком с рабочего стола.
В консоли зелёными буквами вы видите свою домашнюю папку (в которой находитесь в данный момент) - это папка C:\PSDK3v3\MinGW\msys\1.0\home\Ваше_Имя
Чтобы пройти в папку с sqlite-3.6.23.1, введите команду: cd offline-installer/trunk/sqlite-3.6.23.1
Теперь, когда мы находимся в нужной папке, необходимо сконфигурировать исходники, для этого введите команду ./configure
Таким образом, программа проверит наличие необходимых компиляторов и библиотек в системе и в случае удачи, сгенерирует файл Makefile, необходимый нам для компиляции.
Далее, когда Makefile появился в папке, выполняем команду make.
У нас скомпилировались необходимые важные библиотеки *.a и *.dll в папке .libs, а так же, консольный экзешник sqlite3.exe, которые можно установить в системе, следом выполнив команду: make install.
Настало время CMake. Запускаем ярлык на рабочем столе: CMake (cmake-gui)
В первой строке "Where is the source code" указываем путь к папке, где лежит скрипт CMakeLists.txt
Это папка: C:/PSDK3v3/MinGW/msys/1.0/home/Ваше_Имя/offline-installer/trunk
Во второй строке "Where to build the binares" указываем путь к папке, где будет происходить компиляция.
Это папка: C:/PSDK3v3/MinGW/msys/1.0/home/Ваше_Имя/offline-installer/trunk/src
Нажмите кнопку "Configure" и в появившемся окне выберите из раскрывающегося списка "MSYS Makefiles"
Yoti
1) Давно помню, что были раздельные программы: TortoiseSVN для простейших SVN и Mercurial для Git. Потом, в чейнжлоге как-то заметил, что эти оба проекта объединяются в одной программе TortoiseSVN. Там, давно это было, так и было в описании проекта TortoiseSVN + Mercurial, типа скачать одним инсталлятором. Поэтому, я удалил Меркуриал и дальше никогда не парился насчёт Git, потому что TortoiseSVN прекрасно справлялся со всеми этими функциями. П.С. Добавил в шапку ссылку на TortoiseGit, как альтернативу (у меня почему-то он отказался выкачивать репо, выдаёт красную ошибку насчёт текущего времени). Или ты считаешь TortoiseGit, как нативный GitHub SubVersioN?
2) Ага, исправил описание. В папке home появляется папка под ником юзера.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 16.09.2016 в 07:17.
Yoti прав. Черепаха слишком тяжелая и неповоротливая. Консольный клиент для GIT наше все.
У меня вообще даже не ноутбук, а нетбук. Никаких как-либо ощутимых изменений после установки не заметил, работает, как пушинка.
Инсталлятор TortoiseSVN весит так же, как отдельный TortoiseGit, зато он более универсальный, потому что умеет скачивать не только с репозиториев Git, но и с различных SVN, и даже с репо Google, который правда уже закрыли.
Единственное, я никак не смог скачать исходники с Bitbucket (вроде так называется). Там предлагают установить целую огромную программу какой-то Atlas. Так она действительно еле шевелится, куча настроек, предлагает создать аккаунт, логин и пароль, указать свой репо. Я помучился с ней, пытался логиниться, забил пути к репо, но в результате снёс её нафиг после того, как она полчаса крутила кружок и мои мозги, пытаясь приконнектится к моему репо.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,733
Вы сказали Спасибо: 819
Поблагодарили 3,835 раз(а) в 2,013 сообщениях
Сила репутации: 1
Репутация: 3835 
(репутация неоспорима)
Сообщение от ErikPshat
Единственное, я никак не смог скачать исходники с Bitbucket (вроде так называется).
Ссылку на репозиторий бы хоть кинул...
А так, куда интереснее выглядит вот этот проект. Но там нет make исполняшки, видимо нужно прикручивать сторонний. Думаю, из моего любимого GnuWIN32 подойдёт.
А так, куда интереснее выглядит вот этот проект. Но там нет make исполняшки, видимо нужно прикручивать сторонний. Думаю, из моего любимого GnuWIN32 подойдёт.
Я тоже долго думал, как обновлять VitaSDK: https://github.com/vitasdk. Там пакеты отсортированы по дате обновления (sort=fileLastModified). Я думаю это выкладываются уже скомпилированные ночные сборки и нужно просто распаковать последний архив vitasdk-gcc-5.4-experimental-win32[...].zip в папку:
Например, я открыл папку с установленной официальной софтиной от GitHub (C:\Users\Yoti\AppData\Local\GitHub), перешёл в подпапку Git клиента в ней (PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9), запустил там командную строку (git-cmd.exe) и вбил туда ту строчку, что предлагает BitBucket по нажатию Clone (git clone https://bitbucket.org/TheOfficialFloW/vitamin.git). В итоге рядом появилась папка "vitamin" со всеми исходниками.
Сообщение от ErikPshat
Я думаю это выкладываются уже скомпилированные ночные сборки и нужно просто распаковать последний архив vitasdk-gcc-5.4-experimental-win32[...].zip в папку:
Друзья, а на сколько, вообще, код homebrew для psp переносим на vita? Есть отличная читалка и её моды BookR и ни одного подобного приложения для виты.
Интерес, чисто академический, сам всё равно не справлюсь.
Количество сообщений на форуме далеко не всегда пропорционально умственным способностям человека. >>>Silent Hill: Genesis<<<
Друзья, а на сколько, вообще, код homebrew для psp переносим на vita?
ИМХО, код свободно переносится. Там же нет ничего сверхестесственного. Любые программы пишутся на любом языке программирования, на C++, C#, Python, LUA, ASM и т.д. Для разных девайсов языки программирования могут быть разными и конечно же, универсальными.
Это потом SDK сама знает, как превратить человеческий язык программирования в машинный код для определённого процессора.
Всё зависит от SDK под платформу. Разница между PSP и Vita не ощутимая, т.к. создавались на едином движке от SCE.
Там только названия функций между ними могут отличаться, например:
sceAtracGetDecoderStatus
sceAtracSetOutputSamples
sceAtracGetDecoderGroupInfo
sceAtracGetInternalError
sceAtracResetNextOutputPosition
sceAtracGetOutputSamples
sceAtracGetRemainSamples
sceAtracGetLoopInfo
sceAtracGetNextOutputPosition
sceAtracGetOutputableSamples
Это я скопипастил пример от Виты. У PSP может немного по другому называться. Как-то так.
Поэтому, чтобы портировать проги от PSP, весь код переписывать не надо. Нужно только найти аналог функций у Виты и заменить.
Ну и разрешение экрана подогнать.
Yoti может поправит, если как-то думаю не так.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Тогда, для меня остаётся загадкой, почему нет массового переноса хомок под HENkaku с psp. Например, те же эмуляторы, для psv до сих пор нормально оптимизарованного эмуля GBA нет.
Количество сообщений на форуме далеко не всегда пропорционально умственным способностям человека. >>>Silent Hill: Genesis<<<
lupus, ну это муторное дело. Это надо сутками сидеть и всё проверять, перелопачивать SDK.
Вот ещё пример... В заголовке всех исходников указываются заголовочные файлы, необходимые для используемых функций:
#include <pspkernel.h>
#include <pspdisplay.h>
#include <pspdebug.h>
Вот на Вита нету таких файлов в SDK - pspkernel.h, pspdisplay.h, pspdebug.h и т.д.
Там они так идут по аналогии
#include <psp2/kernel/threadmgr.h>
#include <psp2/display.h>
#include <debug.h>
Ну и дальше функции править, как выше приводил пример.
Просто разработчики пока особо не подсели под Виту, HENkaku ведь недавно появилась. А не разработчики вообще стороной проходят
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Вот и сиди, ломай голову, куда они переехали и как они теперь называются в VitaSDK.
Скорее всего эти функции с графикой пока ещё даже не описывались и они отсутствуют в VitaSDK.
Нужно проверить в игровых декриптованных eboot.bin на наличие подобных функций.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
На винде ставишь msys2, выполняешь 5 команд по ссылке и всё, можно компилировать проекты. Можно без гита, можно с гитом. Обновлять той же vdpm. В самой vitasdk полно сэмплов, по работе с кнопками и т.п.
Что-то не ставится, говорит невозможно запустить данное приложение на вашем ПК.
Видимо инсталлятор заточен под Windows x64, хотя название непонятно на что намекает "msys2-x86_64-latest.exe"
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Что-то не ставится, говорит невозможно запустить данное приложение на вашем ПК.
Видимо инсталлятор заточен под Windows x64, хотя название непонятно на что намекает "msys2-x86_64-latest.exe"
Ерик как обычно. Линк по дефолту на 64битную (32битной винды уже нету ни у кого). Скачай 32битную (i686) https://msys2.github.io/
Не получится - поставь виртуалку с убунтой и там те же команды запусти.
Scorpeg добавил 24.12.2016 в 12:12
Вообще, если девелопить хоумбрю на виту - лучше пользоваться вот этим: https://github.com/Cpasjuste/PSP2SHELL
Там и логгер есть, и заливать можно сразу на этапе компиляции, без перекидываний по ftp.
Последний раз редактировалось Scorpeg; 24.12.2016 в 12:12.
Причина: добавил, подумав
Несколько лет назад я пользовался PSDK3v3. Сейчас решил снова вспомнить как это - но увы, время ушло, инструкции устарели, файлов многих уже не скачать, как когда-то это было ранее и более актуально. Надеюсь, всё это возродится или создадут может альтернативный способ или программу, которая даст поиграть снова в игры моей юности