Playstation 2: Hello World

в 18:18, , рубрики: linux, playstation 2, ps2, SDK, Песочница, разработка, метки: , , , , ,

Доброго дня суток Хабр!
Наверняка у многих из нас завалялась в закромах старушка плейстейшн. В этой статье я хочу Вас познакомить с увлекательным миром программирования. Мы подготовим дистрибутив altlinux для разработки, что включает настройку окружения и SDK, а так же скомпилируем первый Hello World. Интересно? Тогда поехали.

Playstation 2: Hello World

Дистрибутив

Раз у нас ps2 на линуксе, следовательно, разрабатывать удобнее тоже под линуксом. Для этого я выбрал себе altlinux. Вы можете попробовать другой, но я буду описывать именно этот. Итак.
Скачиваем себе образ altlinux. Я скачал i686, потому-что другой у меня не захотел заводиться в Virtual Box. И производим установку на целевую систему с инструментами разработчика.
После установки и настройки сети, проверяем, доступны ли пакеты

gcc, make, patch, subversion, wget

Так же устанавливаем Git, ведь ps2sdk лежит на github.

PS2SDK

Тут интереснее, оказывается, есть открытый SDK, который реализует почти все возможности Ps2. Единственное, там есть проблемы с драйвером USB, а так же с GS. Очень великих вещей сделать не получится, но нам ведь не это нужно? ;)

Исходники лежат на github.com/ps2dev. Собственно оттуда мы и будем их качать. Вернее не мы, а тулчейн который поможет нам легко войти в воду.

Для установки тулчейна нам необходимо выполнить следующие шаги:

Заходим в директорию пользователя, и под консолью выполняем

git clone https://github.com/ps2dev/ps2toolchain

И в итоге у нас скачивается тулчейн который нам легко поможет установить SDK.

Осталось прописать окружение для нашей консоли. Для этого нам надо создать скрипт в /etc/profile.d/ я назвал его ps2sdk.sh

Пишем в консоли:

mcedit /etc/profile.d/ps2sdk.sh 

И заносим туда следующие строки:

export PS2DEV=/usr/local/ps2dev
export PATH=$PATH:$PS2DEV/bin
export PATH=$PATH:$PS2DEV/ee/bin
export PATH=$PATH:$PS2DEV/iop/bin
export PATH=$PATH:$PS2DEV/dvp/bin
export PS2SDK=$PS2DEV/ps2sdk
export PATH=$PATH:$PS2SDK/bin

После этого выполняем:

chmod 0777 /etc/profile.d/ps2sdk.sh
cd /home/[youUser]/ps2toolchain/
./toolchain.sh 

Пойдёт долгий процесс скачивания и компиляции, в итоге всё должно получиться без ошибок. Теперь я могу Вас поздравить, Вы можете разрабатывать под PS2.

Playstation 2

Теперь окунёмся в мир плейстейшн. Я надеюсь Вам повезло так же как мне и у Вас стоит modchip. Если нет, разработка будет затруднительной, но в принципе реальной. Есть несколько способов запустить своё приложение на соньке, вот неколько из них:

  1. Boot cd с uLaunchELF
  2. MemoryCard uLaunchELF
  3. PS2Link

В первых двух способах, мы можем записать и свой софт вместо uLaunchELF. Примечательно, что если у нас есть uLaunchELF (iso образ я выложу в конце статьи), то мы можем запускать наши программы и с флешки. Для начала я думаю это замечательный путь, так что воспользуемся им. Единственное что после того как загрузитесь с диска, можете переместить BOOT.ELF в карту памяти(mc0:/BOOT/BOOT.ELF), теперь если вы обладатель мод чипа вам достаточно зажать R1 при загрузке приставки.

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

Playstation 2: Hello World

Hello World!

Теперь нам достаточно всего лишь скопировать примеры из папки ps2sdk в нашу домашнюю директорию. Для этого в консоли пишем

cp –r /usr/local/ps2dev/ps2sdk/samples  ./
cd ./draw/teapot
make

Если вы увидели это значит всё прошло успешно

Playstation 2: Hello World

Теперь если у вас есть ps2, то закиньте файл teapot.elf(/home/[youuser]/samples/draw/teapot/teapot.elf) в корень флешки. Если же нет, воспользуйтесь эмулятором. В итоге это будет выглядеть так:

Playstation 2: Hello World

Playstation 2: Hello World

В итоге

Разработка под PS2 довольно проста. У неё большой потенциал и я думаю мы с Вами его раскроем.
как и обещал:
Iso образ диска uLaunchELF — kupimoloka.ru/ulaunchelf.zip
PS2SDK — github.com/ps2dev

В следующих статьях

  • Структура SDK архитектура PS2
  • Протокол DLNA, или тот же самый uPnP
  • Меняем GUI. Разбираем SMS(Simple Media System) компиляция ffmpeg под ps2
  • Интеграция DLNA с ps2

Автор: jonic

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js