Как взломать игры на psp

Обновлено: 03.07.2024

Существуют три метода установки игр: NoNpDrm, Установка vkp-файлов, MaiDump. Однако лишь первый рекомендуется к использованию. Только этот метод гарантирует работоспособность игры, а так же позволит скачивать патчи для неё прямо с LiveArea.

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

Подразумевается, что к этому моменту ваша приставка уже взломана, на ней установлен VitaShell

NoNpDrm

К всеобщему счастью, игры можно качать прямо с серверов Sony. Это работает благодаря плагину NoNpDrm и открытой базе данных, содержащей ссылки на pkg игр на серверах Sony и фейковые ключи для их распаковки - NoPayStation.

Скачиванием и распаковкой игр занимаются специальные программы: NPS Browser для ПК и PKGj для самой PSVita. Игры на ПК скачиваются и распаковываются заметно быстрее, чем на консоли, поэтому рекомендуется всё-таки использовать NPS Browser и перекидывать распакованные игры на консоль вручную.

Настройку нужно провести всего раз

Скачайте файл конфигурации NPS Browser и поместите его в папку, содержащую NPS Browser


  1. Запустите NPS_Browser_X.XX.exe
  2. Обратите внимание на три поля вверху программы:
    1. Строка поиска. Сюда можно ввести часть названия игры и отфильтровать по нему список в главном окне программы
    2. Выпадающий список с фильтром платформ. Снимите галочки с ненужных платформ, чтобы убрать их из главного окна программы и исключить из поиска
    3. Выпадающий список с фильтром регионов. Снимите галочки с ненужных регионов, чтобы убрать их из главного окна программы и исключить из поиска
    • Вы можете выделить несколько игр с помощью клавиш Shift и Ctrl
    • К сожалению, это нужно проделывать для каждой игры
    • Патч модно скачать прямо на самой приставке через LiveArea после установки игры, поэтому сейчас этот пункт можно пропустить
    1. Перейдите в папку, в которую NPS Browser скачивает и распаковывает игры
      • Можете нажать на любую скачанную игру, а затем на иконку с папкой в нижней части экрана, чтобы открыть папку с игрой автоматически
    2. Вы увидите три папки:
      • В каждой из этих папок есть подпапки, названные в соответствии с “TitleID” скачанных игр
      • Любая из папок может отсутствовать, если вы не скачивали контент, соответствующий её названию
      1. addcont - содержит DLC со скачанными играми
      2. app - содержит сами скачанные игры
      3. patch - содержит патчи к скачанным играм
      4. pspemu - содержит в себе игры для PSP и PSX, запускаемые через Adrenaline
        • pspemu\ISO - содержит в себе игры для PSP в формате ISO
        • pspemu\PSP\GAME - содержит в себе игры для PSX и PSP-minis
        • Обратите особое внимание на эту папку! Так как Adrenaline умеет запускать игры не только из ux0 (что требует отдельной умышленной настройки), то и папку эту нужно переместить в будущем на тот диск, который настроен в Adrenaline!
      5. psm - содержит PlayStation Mobile-контент
      • Не забывайте, что папку pspemu нужно положить на тот диск, с которым настроен работать Adrenaline!

      На PS Vita в VitaShell перейдите в самый верх иерархии списка дисков и нажмите


      • В главном меню приставки должны появиться все скачанные вами игры
      • Игры для PSP, PSP-minis и PSX ищите в Adrenaline
      • Не нужно делать этого, если вы скачали обновление через NPS Browser
      • Следить за ходом загрузки обновления можно нажав в верхний правый угол
      • Да, это безопасно и за это не забанят
      1. Запустите PKGj на вашей приставке
      2. Если это ваш первый запуск, или вы хотите обновить базу с играми, нажмите и выберите “Refresh”
        • Приставка должна быть подключена к интернету
      3. Нажмите и выберите что вы хотите, чтобы было отображено на экране программы
        • Названия пунктов говорят сами за себя, поэтому нет смысла на них останавливаться
        • Здесь так же можно выбрать метод сортировки игр на экране
      4. Нажмите выбранную игру и выберите “Install game and patch” или “Install game”
      5. После того, как выберите все игры, которые хотите установить, закройте программу
        • Обратите внимание, что игры от PS Vita устанавливаются прямо в Live Area, когда как игры от PSP, PSX и другие подобные, скачиваются прямо в программе!
        • Следить за ходом установки игр от PS Vita можно нажав в верхний правый угол на главном экране
        • Да, это безопасно и за это не забанят

      Другие, устаревшие методы установки

      MaiDump - это расшифрованные файлы игры, которые хранятся в виде структуры папок и файлов. Устанавливаются исключительно через программу MaiDumpTool. Как правило, игры идут с инструкцией по установке, потому что она может различаться от игре к игре, поэтому мы не будем здесь заострять на нём внимание.

      Признак того, что дамп игры был сформирован с помощью MaiDumpTool: в структуре папок игры (TitleID) содержится папка mai_moe

      Для установки игры в формате MaiDump необходимо сначала перенести структурно папки на консоль.

      • Папку с игрой (TitileID) перенести в ux0:mai/
      • Папку с патчем (TitleID_patch) перенести в ux0:mai/
      • Папку с DLC (TitileID_addc) перенести в ux0:mai/ Игра может не иметь папок Patch и AddC

      TitileID - это региональный код игры. Например, у игры Borderlands 2 американского региона TitleID - PCSE00383

      Способ I - Установка VPK через Vitashell

      1. Перенесите игру на PS Vita
        • Если не знаете как, воспользуйтесь инструкцией
      2. Установите как обычный VPK-файл
        • Если не знаете как, воспользуйтесь инструкцией

      Способ II - Установка распакованной игры через Vitashell

      1. Файл *.vpk распаковать на компьютере любым архиватором, например WinRAR.
      2. Перенести получившуюся папку на консоль, по USB либо FTP – через VitaShell.
        • Если не знаете как, воспользуйтесь инструкцией
      3. Выделить папку с файлами игры на консоли (не открывать!), нажать
      4. Перейти в диалоговом меню в More
      5. Выбрать пункт Install Folder
      6. Дождаться завершения процедуры. Иконка игры должна появится на экране LiveArea.

      Установка игр PSM

      Установка игр PSP и PSX

      Установка переводов и модификаций

      Современные русификаторы и модификации нужно класть в папку rePatch/TitleID , где TitleID - региональный код вашей игры. Как правило, с русификатором или модификацией идёт Readme-файл. Обязательно прочтите его и следуйте инструкции в нём написанной.

      Вы можете удалить дубликаты файлов, которые добавляют модификации, с момощью приложения OneMenu, наведя курсор на игру, нажав и выбрав “Shrink Game”

      Порты других игр и эмуляторы

      На PS Vita существует огромное количество портов классических игр с ПК и эмуляторов других систем. Мы не будем рассматривать здесь ни их установку, ни использование.

      • База данных приложений VitaDB, где имеется большое количество различных портов и эмуляторов для консоли

      Разгон на PS Vita

      Разгон осуществляется путём использования плагина PSVshell

      Нажимайте + или + для переключением между тремя видами плагина

      • Используйте / для навигации по меню
      • Нажмите на устройстве, чью частоту хотите изменить:
      • Кнопками / вы можете указать минимальную частоту для выбранного устройства (частота применится незамедлительно)
      • Нажмите на save profile, чтобы сохранить профиль. Таким образом текущие настройки будут сохранены для запущенной игр и применены к ней автоматически при следующем её запуске. Нажав на delete profile, вы удалите сохранённый профиль.
      • Значения указанные белым цветом - значения по-умолчанию. Синим - те, что выставили вы.
      • Зажав вы сможете сохранить профиль глобально для всех запущенных приложений. Строка save profile изменится на save global
      • Глобальный профиль будет использован для запущенных игр только в том случае, если для них нет индивидуального профиля.

      Разгон редко влияет на стабильную работу системы. Если после разгона ваша приставка стала работать хуже, отключите его, или используйте частоты ниже выставленных. Повышение частот быстрее расходует батарею консоли!

      Спортивная игра где вы примите участие в уличном футболе.

      Mortal Kombat: Unchained

      Файтинг со знакомыми вам персонажами и новыми режимами.

      Spider-Man 3

      Увлекательная игра где вы будете помогать Человеку-Пауку выполнять опасные миссии.

      Midnight Club: LA Remix

      Отличная гоночная игра где вы будете гонять по улицам Лос-Анджелеса.

      Dead to Rights: Reckoning

      Управляйте отважным полицейским Джеком Слэйтаном и положите конец преступности в городе.

      Harry Potter and the Order of the Phoenix

      Управляйте Гарри Поттером и его друзьями и победите пожирателя смерти.

      Burnout Dominator

      Гоночная игра с большим автопарком машин и жестокими столкновениями.

      Zero Escape: Zero Time Dilemma

      Увлекательная игра где вы будете помогать главным героям покинуть бункер.

      Yomawari: Night Alone

      Увлекательная игра где вы будете помогать девочке найти свою старшую сестру и собаку.

      Wipeout 2048

      Управляйте летающим самолетом и примите участие в гонках будущего.

      Unit 13

      Управляйте бойцами элитного подразделения и ведите бой с террористами.

      Toukiden: The Age of Demons

      Управляйте бесстрашный воином из ордена Мононофу и спасайте мир от монстров.

      Touch My Katamari

      Управляйте мячом и собирайте как можно больше объектов.

      The Amazing Spider-Man

      Отличная игра где вы будете управлять Человеком-пауком.

      Terraria

      Отличная песочница с многогранным миром.

      Tearaway

      Управляйте отважным героем и путешествуйте по бумажному миру.

      Street Fighter x Tekken

      Примите участие в командной битве и выберите за какую команду вы будете сражаться.

      Прикрепленное изображение

      !!Важно! Не используйте "Molecule's boot logo disabler"! Оно вызывает необратимый брик консоли!!
      • Даунгрейд возможен!
      • Взлом для прошивок 3.69-3.73 – здесь
      • HENkaku работает на прошивках 3.55 - 3.73
      • Актуальная версия ОФИЦИАЛЬНОЙ прошивки – 3.73
        Диаграмма взлома PSVITA(Новичкам рекомендуется!)
      • Если не знаете, куда задавать вопрос – задайте в теме Помощь новичкам
      • Обязательно к прочтению: Краткий гайд по взлому PS Vita и PSTV (от RealYoti)
        официальная инструкция (на английском)

        (перевод) автор nikolay2002

        (перевод) nikolay2002

      • Что такое «Плагин»?
        • Модуль/процесс который загружается в оперативную память и вносит изменения в работу прошивки или приложений
        • Для добавления нового функционала в прошивку
        • Для вноса изменений в работу приложения/приложений или прошивки
        • И т.д.
        • Рекомендуется хранить плагины в ur0:tai/
        • Также, для более опытных, плагины могут хранится в любом месте, главное чтобы путь к плагину был верно указан в файле конфигурации (config.txt)
          В этом файле описаны пути к плагинам, taiHEN при запуске читает этот файл и запускает плагины в порядке в котором они написаны
        • Скопировать плагин в директорию ur0:tai/ (рекомендуется)
        • Указать путь к нему в файле config.txt
          Тип плагина можно понять по расширению файла указанном после точки
        • *.skprx - плагин который вносит изменения на уровне ядра
        • *.suprx - плагин который вносит изменения на уровне пользователя (соответственно не имея доступа к уровню ядра)

        Работающая строчка (влияет на работу консоли)

        (НЕ АКТУАЛЬНО!)

        (НЕ АКТУАЛЬНО!)

        (НЕ РЕКОМЕНДУЕТСЯ!)

        1. Распаковать файл vpk в любую директорию (например через 7-Zip)
        2. Передать директорию на PlayStation Vita (см. Как передать файлы на PlayStation Vita)
        3. Установка из папки через VitaShell:
          • Выделить директорию
          • Нажать треугольник
          • Выбрать пункт «Install from folder» (Установить из папки»)






            Приложение для PlayStation Vita которое представляет из себя оболочку для базы VitaDB
            Позволяет устанавливать нужное приложение в 2 нажатия
            Приложение позволяющие делать из игр PlayStation Portable/PlayStation 1 «Пузыри» для запуска игр с Начального экрана пропуская меню Adrenaline
          • Что такое SD2VITA:
              Переходник позволяющий подключить microSD в слот игрового картриджа PlayStation Vita
              ( Только на 3G версии ) Модуль-переходник, устанавливающийся вместо 3G модуля PlayStation Vita Fat
              Разница в основном в конструкции (любая версия будет работать):
              • v1 - Самая первая версия, имеет форму которая не задевает механизм извлечения картриджа, полностью прячется в разъеме
              • v2 - Стоит чуть дороже, более похожа на оригинальный картридж, позволяет извлекать переходник нажатием на него, может выпирать из разъема в 1000 версии консоли, тем самым не давать закрыть заглушку, рекомендуется для PSTV
              • v3-v5 - Последние версии, полностью повторяющие формы и размеры оригинального картриджа
                Да, на всех взламываемых прошивках начиная с 3.60
              • Что такое Рекавери:
                  Рекавери (он же Безопасный режим, Safe Mode) это режим консоли в котором можно произвести манипуляции для восстановления работоспособности в случае сбоя в работе прошивки или карты памяти.
                • На выключенной PlayStation Vita зажимать Power + R + PS до появления заставки, после можно отпускать
                • В Рекавери выбрать при помощи D-Pad пункт «2. Реконструировать базу данных» (на англ. «Rebuild Database»)
                • Подтвердить выбор клавишей X(или O для азиатских версий консоли)
                • При помощи D-Pad выбрать «Да» (на англ. «Yes»)
                • Подтвердить форматирование клавишей X(или O для азиатских версий консоли)
                • Консоль сама перезапустится после реконструкции базы
                • В Рекавери выбрать при помощи D-Pad пункт «3. Форматирование карты памяти» (на англ. «Format Memory Card»)
                • Подтвердить выбор клавишей X(или O для азиатских версий консоли)
                • При помощи D-Pad выбрать «Да» (на англ. «Yes»)
                • Подтвердить форматирование клавишей X(или O для азиатских версий консоли)
                • Консоль сама перезапустится после форматирования
                • В рекавери выбрать при помощи D-Pad пункт «4. Восстановить эту систему» (на англ. «Restore the PS Vita system»)
                • Подтвердить выбор клавишей X(или O для азиатских версий консоли)
                • При помощи D-Pad выбрать «Да» (на англ. «Yes»)
                • Подтвердить восстановление клавишей X(или O для азиатских версий консоли)
                • Консоль сама перезапустится после восстановления
                • В рекавери выбрать при помощи D-Pad пункт «5. Обновить системное программное обеспечение» (на англ. «Update system software»)
                • Подтвердить выбор клавишей X(или O для азиатских версий консоли)
                • Выбрать при помощи D-Pad один из трех пунктов
                  • Обновить путем подключения к системе PS3
                    • ТРЕБУЕТСЯ ИНСТРУКЦИЯ
                    • ТРЕБУЕТСЯ ИНСТРУКЦИЯ
                    • В рекавери выбрать при помощи D-Pad пункт «1. Перезапустить эту систему» (на англ. «Restart the PS Vita System»).
                    • Подтвердить выбор клавишей X(или O для азиатских версий консоли)
                    • Консоль сама перезапустится
                      VHBL (3.69+)
                        Vita Half Byte Loader – это загрузчик Homebrew для PlayStation Vita
                        Запускается внутри встроенного в PlayStation Vita эмулятораPlayStation Portable, позволяет запускать на PlayStation Vita Homebrew игры и эмуляторы для PlayStation Portable ( Пиратские игры для PlayStation Portable не поддерживает! ).


                        • Используя RegistryEditor или MOD версию установить параметр в config/tel/use_debug_settings на 1
                        • vd0:registry/system.dreg (также это первая половина реестра)
                        • vd0:registry/system.ireg (также это вторая половина реестра)
                        • tm0:npdrm/act.dat
                        • ur0:user/00/np/myprofile.dat
                          Подробности на английском, на русском
                        • Недокачанные файлы хранятся в директории ux0:pkgj, все можно удалять (в том числе config.txt если не собираетесь вносить своих правок)
                        • Установить molecularShell
                        • Удалить VitaShell
                        • Удалить файлы оставшиеся от VitaShell:
                          • ux0:data/vitashell
                          • ux0:patch/vitashell
                          • ux0:vitashell
                            Используя RegistryEditor или RegistryEditorMOD.
                            Перейдите в ветку CONFIG/SECURITY/PARENTAL
                            Используя RegistryEditor или RegistryEditorMOD.
                            • Перейти в ветку CONFIG/SOUND
                            • Установить нужное значение параметра main_volume, возможные значения 0-30
                            • Перезагрузить консоль (до перезагрузки новые значения не применяются)
                              Да, достаточно подготовить новую карту согласно инструкции и скопировать на нее все содержимое текущей карты (включая скрытые и системные файлы)
                              К сожалению ничего сделать пока нельзя, данный баг в плагине StorageMgr пока не исправлен.
                                Багрепорт
                                Принципиальной разницы между PlayStation Vita и PSTV нет, большинство инструкций актуальны для обоих
                                Нет, Adrenaline запускает большинство игр, но совместимость НЕ 100%
                                Ошибка скорее всего вызвана наличием в пути к файлу pkg2zip.exe, кириллицы (русских символов)
                                Для исправления нужно перенести NPSBrowser.exe и pkg2zip.exe в директорию без кириллицы в пути (и если возможно, пробелов), к примеру в D:\NPSBrowser\
                                Батарейка разряжена полностью, нужно подключить консоль к З арядном У стройству 5V 1.5A и оставить на зарядке на 4-6 часов.
                                Если после продолжительной зарядки консоль по прежнему не включается то нужно проверить напряжение на батарее (требуется соответствующий инструмент и прямые руки)
                                Установить modoru и посмотреть в нём на второй строке (где будет написано жёлтым текстом)
                              Шапка обновлена (18.02.2020), хочу выразить огромное спасибо пользователю play007. (По вопросам добавления материала в шапку - обращаться к куратору) Человек имеет право вместо денег вложить свои мозговые усилия, но эти усилия он все-таки обязан вложить - прочитать шапку, сколько-нибудь вдумчиво погуглить. Если он откровенно ленится, или вовсе неспособен понять смысл своих действий - его нужно как-то ограничивать, а не потакать ему.

                              Софт , HomeBrew Игры , Плагины , Эмуляторы ..

                              Прикрепленное изображение

                              Передача файлов:
                              1. На PSP выберите файл или папку / пометьте группу файлов или папок Аналогом вправо, которые хотите передать и нажмите "Х" для передачи.
                              2. Ждите, пока принимающая сторона подтвердит приём.
                              3. Когда принимающая сторона будет готова, вы увидите подтверждение о готовности, нажмите "Х" для отправки выбранной папки или файла.

                              Приём файлов:
                              1. На второй принимающей PSP зайдите в папку, в которую хотите сохранить файл.
                              2. Нажмите "Квадрат" для инициализации приёма и поиска отправляющей стороны.
                              3. Внизу появится надпись зелёного цвета с именем передаваемого файла. Нажмите "Х" для приёма.
                              4. Ждите пока прогресс не дойдёт до 100% и не появится надпись Готово!

                              Примечание:
                              - Например, если вы принимаете образ игры и затем хотите поиграть, то необходимо зайти в папку ms0:/ISO и туда загружать образ игры *.iso/*.cso.
                              - Если хотите загрузить программу, то необходимо зайти в папку ms0:/PSP/GAME/ и туда загружать ПАПКУ с программой.
                              - Иначе вы не сможете ни поиграть, ни запустить программу, если они будут находиться не в тех папках. Тоже касается файлов музыки, картинок или видео.
                              - Если вы всё-же допустили ошибку и закачали файлы не туда, куда нужно, то это не беда. В программе присутствует Файл-менеджер (по нажатию "/\"), с помощью которого без проблем можно переместить файлы или папки в нужное место.

                              Как самому добавлять читы:
                              Делать читы самому достаточно просто, но нужна кропотливая работа. Это осуществляется путем поиска значения и последующего его изменения. Попытаюсь объяснить это на примере количества голов в игре FIFA 2012:

                              1. Запускаем игру. Доходим до игрового процесса и забиваем хотя бы один гол. Затем переходим в меню TempAR, открываем вкладку Searcher и выбираете пункт Find Exact Value.
                              2. Затем вспоминаете количество забитых вам голов, в нашем случае это 1. У вас есть строчка


                              потому что мы забили 1 гол. Забили больше голов, больше значение!
                              3. Выбираем пункт Search и нажимаем "Х". Ждем окончания процесса.
                              4. Возвращаемся в игру и меняем значение, то есть забиваем еще 1 гол.
                              5. Затем вспоминаете количество забитых вам голов, теперь это уже 2. И меняем уже известную нам строчку на

                              и выбираем пункт Search. Вы увидите, что с каждым разом найденных значений будет все меньше и меньше. Поэтому повторяйте этот процесс пока их не останется 2-3.
                              6. Когда их останется мало, то выбираете каждое из значений нажатием кнопки "Х". И вы увидите что они запишутся у вас как новые читы! (Потерпите! Еще чуть-чуть! )
                              7. Наводим на чит курсор, нажимаем "/\" и выбираем пункт Edit Cheat. Там меняем уже известное нам значение HEX на то, какое количество голов мы хотим сделать забитыми. Эту операцию проделываем с каждым найденным читом! Активируем их и вуаля) Вы забили столько голов, сколько хотели) Затем можно методом исключения выяснить именно тот чит, который "засандаливает" нам нужное количество голов. И удалить ненужные читы!

                              Примечание:
                              - После того, как вы выйдите из игры, все найденные вами читы исчезнут. Чтобы этого не произошло мы переходим во вкладку PRX и выбираем пункт Save cheat file (имя файла с читами) и нажимаем "Х".
                              - Для того, чтобы игровой процесс не шел, пока вы работаете с читами, переходим во вкладку PRX и меняем там значение графы Pause Game? на True и сохраняем настройки путем выбора пункта Save Settings и последующего нажатия "Х".

                              Как самому добавлять читы:

                              Здесь мы будем учиться делать читы самому. Читы делаются путем поиска значений, которые мы хотим поменять. Как правило таких значений на одно число очень много. Например у нас сейчас 201 пуля. Если мы введем 201 в поиск, то он нам выведет несколько тысяч результатов. Далее расскажу как нам найти то, что нам надо. Все показываю на примере игры Resistance Retribution:

                              1. Вот я запустил игру. Стою и у меня очень мало пуль, чтобы пройти уровень. Хочу побольше. Зажимаю на 3 секунды кнопку "SELECT" - попадаю в главное меню плагина CWCheat. Но перед этим запоминаю сколько у меня было пуль (у меня было 201).
                              2. Далее захожу в пункт Cheat searcher и выбираю пункт Start a new search for a fixed value. Там по умолчанию будет выбран пункт DEC. Вот он то нам и нужен. В нем стрелкой вверх набираем 201. У нас получится вот такая строка: 0000000201.
                              3. Далее нажимаем "X" - идет поиcк. В итоге мне CWCheat вывел, что нашел около 10000 результатов. Далее выходим из CWCheat в игру и начинаем стрелять. Когда я пострелял в стену у меня стало 168 пуль. Снова делаю поиск 168, но уже не в пункте Start a new search for a fixed value, а в пункте Continue a search for a fixed value там снова набираем 168 и нажимаем крест. CWCheat вывел 10 результатов. Уже лучше, но все равно не то.
                              4. Снова стреляем и тратим пули. И повторяем пункт 3 уже с новым количеством пуль. Вот у меня и осталось 2 пункта. Далее не выходя из последнего поиска нажимаем "Треугольник" и нажимаем "Х" на одном из значений. Потом меняем его, например на 500. Нажмите "Х" и выходите из меню в игру. Вот у вас и стало 500 пуль. У меня они даже перестали уменьшаться и всегда оставались в значении 500)

                              Меню плагина имеет широкие настройки:
                              LANGUAGE – язык меню плагина
                              SHOW HUD* – переключение режимов и выключение HUD
                              SHOW FPS* – счетчик обновления экрана (измеряется в fp/s)
                              SHOW CPU* – информация о частоте процессора
                              SHOW CPU NOTIFICATION* – предупреждения об изменении частоты процессора
                              SHOW BATTERY* – информация о батарее
                              SHOW TIME* - время
                              ORDER** – порядок размещения пунктов
                              CPU SPEED XMB – частота процессора в меню
                              CPU SPEED GAME – частота процессора в игре
                              CPU SPEED POPS – частота процессора в PS1 игре
                              COMBO BUTTON – кнопка комбо (кнопка вместе с которой будет вызываться меню(13), отключаться и менять режимы HUD(14) и делаться скриншот(15))
                              MENU BUTTON – кнопка меню
                              HUD BUTTON – кнопка переключения режимов отображения и отключение HUD
                              SCREENSHOT BUTTON – кнопка скриншота

                              * Размещение данных пунтов в меню HUD пожно менять клавишей "Квадрат"(по одному), "Треугольник"(все вместе) или можно также разместить пункт аналогом в любое место экрана
                              ** Упорядочивание пунктов HUD происходит клавишей "Х + <-" или "->"

                              Установка игр:
                              ScummVM - это лишь игровой движок, то есть, грубо говоря, замена EXE`шника для запуска игры на PSP. Чтобы поиграть во что-либо, нужно скопировать все содержимое диска с игрой в отдельную папку на карте памяти. В качестве примера я приведу установку игры Full Throttle.

                              Эту игру, как и большинство других квестов для ScummVM, можно скачать на old-games.ru. В данном случае я взял образ русифицированной игры от "Акеллы". Открыть ISO`шку можно чем угодно. Например, с помощью WinRAR. Внутри образа имеется папка RESOURCE, содержимое которой я скопировал на карту памяти в отдельную папку Full_Trottle (находиться она может где угодно). Все EXE-файлы я, конечно, удалил. От них на PSP толку, разумеется, никакого.

                              Теперь можно запускать сам "эмулятор". При желании можете зайти в настройки (Options) и изменить их по своему усмотрению, но на самом деле по умолчанию все настроено вполне адекватно.

                              Пришло время добавить игру. Нажимаем кнопку Add Game и выбираем созданный ранее каталог с ресурсами игры. Затем нажимаем на Choose и убеждаемся, что игра подхватилась правильно.
                              Все уже готово для запуска. Нужно лишь кликнуть по названию игры в основном списке.

                              В самих играх управление следующее:

                              Left trigger - ESC
                              Right trigger - Enter
                              Analog - курсор мышки
                              Стрелки - курсор мышки
                              Analog + triangle - аккуратное перемещение курсора
                              Cross - левая кнопка мыши
                              Circle - правая кнопка мыши
                              Square - '.' (пропуск диалогов в некоторых играх)
                              Select - показать/скрыть виртуальную клавиатуру
                              Start - меню ScummVM (сохрание, загрузка, опции и т. д.)

                              Внимание! Совместимость с играми не стопроцентная, так что сохраняйтесь почаще. Пропуск роликов и диалогов тоже порой помогает избежать зависания образа.

                              Список поддерживаемых Игр -ТУТ-

                              Прикрепленное изображение
                              Прикрепленное изображение

                              v4.1
                              * Пара исправлений

                              v4
                              * Код был переструктурирован;
                              * Добавлена опция "search for updates" (обновление будет выпущено в среду, чтобы включить больше контента);
                              * Добавлены новые Homebrew игры в соответствующий раздел:
                              - Heretic;
                              - Metal blob Solid.

                              v3
                              * Теперь мы можем загрузить некоторые homebrew-игры и приложения, а также эмуляторы;
                              * Добавлена DosBox для меню эмуляторов.

                              Многие из счастливых обладателей PSP, читающих ][, наверняка не раз задумывались: вот прогаю я для компа, или взламываю всякие сайты - а вот клево было бы написать что-нибудь для своей приставки. Например, ММОРПГ - при наличии Wi-Fi, неплохих графических возможностей и удобного управления, созданного специально для игр, в этой нише у карманной игровой станции странная пустота. Или тулзу для взлома Wi-Fi сетей. Или брутер, который можно спокойно оставить на ночь - потому что он не шумит, не жрет много электричества и не кишит вирусами (кстати, тоже ведь идея!). Тем более, к PSP теперь можно подсоединить всяческие фотоаппараты и микрофоны - в общем, гуляй - не хочу.



                              Фото: uncle_lag

                              Также тебе понадобится карточка MemoryStick Duo. Идущая в комплекте должна вполне подойти, хотя я бы посоветовал купить хотя бы на 2 гигабайта - для программирования это очень много, но образы некоторых игр весят больше 1 Гб. Понадобится и шнур для соединения компа с приставкой (тоже есть в комплекте, а если уже потерял - что, ты не найдешь Usb-2-MiniUsb?). Еще из хардваре пригодится холодный, незамутненный разум хирурга, а то вскрытие (программное, корпус открывать не будем) может завершиться смертью или сумасшествием пациента.

                              Кстати, предупреждаю сразу: ни я, ни редакция, ни - тем более - Sony не дает никаких гарантий, что с приставкой все будет хорошо в результате наших анатомических исследований. Она вполне может брикнуться (так бывалые псп-геймеры называют таинственное превращение клевой приставки в черный, белый, розовый - нужное подчеркнуть кирпич), заглючить, убить твою карточку MemoryStick или, превратившись в НЛО, улететь на Луну оставлять там будоражащие кровь в жилах надписи.

                              Но ни у меня, ни у тех на ком я ставил свои противоестественные опыты, ничего такого не случилось. Самое страшное, что было - это зависание намертво, которое лечится обычным аварийным выключением: задержи рычажок выключения в позиции Power секунд на 6-7, пока зеленая лампочка не перестанет мигать. Теперь можешь включать.

                              В блокноте получается писать только на JavaScript'е, что для наших целей не особо подходит, поэтому придется скачать IDE и набор компиляторов. IDE я рекомендую Code::Blocks - именно для этой IDE я опишу процесс настройки, а набор компиляторов, под названием DevKitPSP. Я распаковал DevKitPSP в корень диска E:, так, что у меня теперь есть папка E:\devkitpsp\, а в ней папки bin, include и другие, и настройки буду указывать для этого пути - соответственно, если у тебя путь окажется другой, его придется везде
                              заменять. IDE можно установить куда угодно, после чего запусти его и настрой (буду давать сведения по настройке максимально сжато потому, что их много. Утешает то, что придется сделать это один раз):

                              1. Settings - Compiler and Debugger, Selected Compiler: GNU GCC, жмем Copy, называем копию DevKitPSP, выбираем ее в списке компиляторов.

                              2. В том же окне - вкладка Search Directories - Compiler должна содержать только:

                              E:\devkitPSP\include
                              E:\devkitPSP\psp\include
                              E:\devkitPSP\psp\sdk\include
                              Search Directories - Linker:
                              E:\devkitPSP\lib
                              E:\devkitPSP\psp\lib
                              E:\devkitPSP\psp\sdk\lib

                              3. Вкладка Toolchain Executables:

                              Compiler's installation directory: E:\devkitPSP
                              C-compiler: psp-gcc.exe
                              C++-compiler: psp-g++.exe
                              Linker for dynamic libs: psp-g++.exe
                              Linker for static libs: psp-ar.exe

                              Еще три поля там же оставляем пустыми, и жмем ОК.

                              4. Создаем проект: File-New-Project. Projects, Empty. Project Title пусть будет PSPHelloWorld, указываем папку для сохранения проекта где-нибудь на компьютере; компилятор ставим DevKitPSP.

                              5. Cоздаем фаил File>New>File. main.c — в мастере создания фаила выбираем язык Си и ставим галочки "Add to current project", "Debug" и "Release".

                              6. В созданный фаил копируем код из архива. Попозже разберемся, что он делает, а пока - донастроим проект и запустим его.

                              7. Project-Properties, Build targets. Снимаем галочку "Auto-generate filename extension", и правим в Output filename расширение "exe" на "elf". Выполняем тоже самое для конфигурации Release, жмем Ok.

                              8. Project-Build Options, Linker Options, Other linker options:

                              -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lpsplibc -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel

                              Повторяем для Release.

                              Ура! Можно жать на Build-Build и собирать проект, надеюсь - без ошибок. Так мы получим elf-файл с программой. Но эльфы "грабят корованы" в юниксах, а у нас странная ОС от PSP, готовая исполнять лишь файлы с милым русскому человеку названием EBOOT.PBP. Для выполнения сложной операции преобразования у меня есть волшебный bat-ник:

                              "E:\devkitPSP\bin\mksfo.exe" %1 %1.sfo
                              "E:\devkitPSP\bin\psp-fixup-imports.exe" %1.elf
                              "E:\devkitPSP\bin\psp-strip.exe" %1.elf -o stripped.elf
                              "E:\devkitPSP\bin\pack-pbp.exe" EBOOT.PBP %1.sfo NULL NULL NULL NULL NULL stripped.elf NULL

                              Разумеется, запускать его надо с аргументом-именем твоего elf-фаила (без расширения). Т.е., если у тебя получился HelloWorld.elf, то запускай батник как my_batnik.bat HelloWorld. Ну а если ты противник таких вещей - можешь вводить содержимое по строчке в консоль, заменяя %1 на имя того файла.

                              Теперь у нас есть долгожданный EBOOT, и его мы пихаем в папку /PSP/GAME150/HelloWorld/ нашей PSP-шки. После чего запускаем его, громогласно приветствуя мир. Поздравляю! Вы написали свою первую программу на PSP. Прежде чем закрывать IDE, советую сохранить проект как шаблон (File-Save Project as user-template. ) - чтобы потом, при создании нового, не начинать все заново.

                              Как ты уже наверное понял, функция pspDebugScreenPrintf() выводит текст на экран. Она - полный аналог функции printf() и поддерживает ее форматную строку. Я начал описывать код с нее, так как это - первая функция, которой учат несчастных, изучающих Си. Вторая же изучаемая функция - обычно scanf(), но ее для PSP нет - потому что нет клавиатуры. Поэтому я просто расскажу, как получать состояние кнопок и джойстика.

                              За кнопки отвечает функция sceCtrlReadBufferPositive, описанная в фаиле pspctrl.h, так что добавляем в начало main.c строку:

                              В качестве параметров функция принимает указатель на структуру SceCtrlData, в которую она возвратит данные о кнопках, и количество буферов для чтения, так что вызывать мы ее будем так:

                              SceCtrlData pad;
                              sceCtrlReadBufferPositive(&pad, 1);

                              Вот описание возвращаемой структуры:

                              typedef struct SceCtrlData unsigned int TimeStamp; // читаемый фрейм
                              unsigned int Buttons; // битовая маска, задающая кнопки
                              unsigned char Lx;
                              unsigned char Ly; // положение джойстика
                              unsigned char Rsrv[6]; // зарезервировано
                              > SceCtrlData;

                              А вот - список кнопок, состояние которых появляется в битовой маске SceCtrlData::Buttons:

                              enum PspCtrlButtons
                              PSP_CTRL_SELECT = 0x000001,
                              PSP_CTRL_START = 0x000008,
                              PSP_CTRL_UP = 0x000010,
                              PSP_CTRL_RIGHT = 0x000020,
                              PSP_CTRL_DOWN = 0x000040,
                              PSP_CTRL_LEFT = 0x000080,
                              PSP_CTRL_LTRIGGER = 0x000100,
                              PSP_CTRL_RTRIGGER = 0x000200,
                              PSP_CTRL_TRIANGLE = 0x001000,
                              PSP_CTRL_CIRCLE = 0x002000,
                              PSP_CTRL_CROSS = 0x004000,
                              PSP_CTRL_SQUARE = 0x008000,
                              PSP_CTRL_HOME = 0x010000,
                              PSP_CTRL_HOLD = 0x020000,
                              PSP_CTRL_NOTE = 0x800000,
                              // читается только в режиме ядра, т.е.
                              // не судьба нам узнать о нажатии на нее
                              PSP_CTRL_SCREEN = 0x400000, // только в режиме ядра
                              PSP_CTRL_VOLUP = 0x100000, // только в режиме ядра
                              PSP_CTRL_VOLDOWN = 0x200000, // только в режиме ядра
                              PSP_CTRL_WLAN_UP = 0x040000, // только в режиме ядра
                              PSP_CTRL_REMOTE = 0x080000, // только в режиме ядра
                              PSP_CTRL_DISC = 0x1000000, // только в режиме ядра
                              PSP_CTRL_MS = 0x2000000, // только в режиме ядра
                              >;

                              Как использовать эти странные числа? А очень просто. Чтобы узнать, нажата ли, скажем, кнопка с кружочком, нам надо проверить (pad.Buttons & PSP_CTRL_CIRCLE). Т.е., например:

                              А как использовать джойстик, можно догадаться и самому. Надо только знать, что координаты его положения меняются от 0 до 255 (значит, середина - в точке (128,128)), и не забывать, что он редко стоит прямо по центру (на отклонение в несколько единиц лучше не обращать внимания, позже ты увидишь, почему). Кстати, чтобы информация о положении джойстика приходила, необходимо добавить вот такие строки:

                              Все. Теперь мы знаем о кнопках все, что можем. И для примера можно написать несложную программу, которая будет показывать, что в данный момент нажато. Вот что получилось у меня (я, кстати, поленился и стал мониторить только кнопки с рисунками, т.е. крестик, кружок, треугольник и квадрат. Но не думаю, что у тебя возникнут какие-то проблемы с этим):

                              int main(int argc, char ** argv)
                              pspDebugScreenInit();

                              // устанавливаем каллбеки
                              SetupCallbacks();

                              sceCtrlSetSamplingCycle(0);
                              sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
                              // настраиваем на прием информации о положении стика

                              while(1) // главный цикл программы
                              pspDebugScreenClear(); // чистим экран
                              sceCtrlReadBufferPositive(&pad, 1);
                              // читаем содержимое буфера э-э клавиатуры
                              pspDebugScreenPrintf("TimeStamp %i | Pressed: ", pad.TimeStamp);
                              // выводим TimeStamp
                              if (pad.Buttons == 0) // ничего не нажато
                              pspDebugScreenPrintf("NONE ");
                              > else if (pad.Buttons & PSP_CTRL_TRIANGLE) pspDebugScreenPrintf("TRIANGLE ");
                              if (pad.Buttons & PSP_CTRL_CIRCLE) pspDebugScreenPrintf("CIRCLE ");
                              if (pad.Buttons & PSP_CTRL_CROSS) pspDebugScreenPrintf("CROSS ");
                              if (pad.Buttons & PSP_CTRL_SQUARE) pspDebugScreenPrintf("SQUARE ");
                              // какие кнопки нажаты?
                              >
                              pspDebugScreenPrintf("(%i) | Stick: %i:%i\n", pad.Buttons, pad.Lx, pad.Ly);
                              // выводим координаты стика
                              >

                              sceKernelSleepThread();
                              // поток засыпает
                              // если уснули все потоки, то единственное,
                              // что может случиться - это каллбек
                              // в этой программе эта строчка никогда не выполнится ;)

                              Все остальные функции лучше оставить такими, какие есть. Полную версию этой программы с комментарием к каждой строчке можно найти в архиве.

                              Итак, мы можем теперь выводить что угодно и узнавать, как на это реагирует пользователь. Самое время портировать Moria или какую-нибудь змейку 🙂 Для полного текстового счастья не хватает, конечно же, цвета и возможности писать где угодно. Ради цвета я бы посоветовал использовать макрос, который я благополучно стырил откуда-то из хедеров к IDE:

                              Этот макрос выдает цвет, подходящий к любым функциям, связанным с цветом среди API PSP. Например, к функции установки фона для текста:

                              pspDebugScreenSetBackColor(RGB(0, 0, 255));
                              // ставим синий

                              или цвета самого текста:

                              pspDebugScreenSetTextColor(RGB(0, 255, 0));
                              // зеленый!

                              или даже установки символа в любую позицию:

                              pspDebugScreenPutChar(100, 100, RGB(255, 0, 0), 'A');
                              // ставим красный символ 'A' в точку с координатами (100, 100)

                              Кстати, координаты задаются в пикселях, а не в строках и столбцах символов.

                              Ну что ж, теперь ты можешь написать на экране PSP что угодно. Например, проклятие черными буквами на черном фоне своему врагу, или другу-готу. Или розовым по черному нарисовать ASCII-спанч боба. Или красным по розовому признаться в любви своей девушке (парню?). Или. а, о чем я. Решать тебе. Наслаждайся! А в следующей статье я постараюсь рассказать про картинки. Хотя бы немножко 😉

                              Читайте также: