1 (11.03.2011 00:05:31 отредактировано divan)

Тема: Менеджер Игр WebOS

WebOS Games Manager - программа для автоматической установки WebOS игр из .ipk файлов. Также позволяет удалять игры, сохранять/восстанавливать сэйвы. При установке игры автоматически выполняются все необходимые хаки, поэтому всё, что вам нужно, это переписать .ipk файл с игрой на телефон в каталог MyDocs/Downloads (для пользователей виндовс - просто Downloads, при подключении к компьютеру. Если такого каталога нет - создайте) - программа сама найдет игры там.

Особенности:
* Максимально простая инсталляция - в один клик.
* Игры ставятся в 32Гб раздел, не занимая места ни в rootfs, ни в home
* Поддержка русского языка (и любого другого, для которого напишут перевод)
* Сохранение сейвов в отдельную папку, с возможностью восстановления.
* Программа не создает лишних файлов и директорий в системных каталогах (вроде /etc/powerv.d или /media/internal) - все подобных хаки реализуются с помощью подмены fopen() вызова, перехватывающего подобные пути.

Домашняя страница: http://wgames.garage.maemo.org/
Поставщик: Ivan 'divan' Daniluk
Язык:
английский/русский

Скачать: Maemo 5.

http://s011.radikal.ru/i317/1103/6a/2ad481655df0t.jpghttp://s44.radikal.ru/i106/1103/18/26b43c116efet.jpghttp://s43.radikal.ru/i102/1103/57/17c5fad5bbfct.jpg

http://s44.radikal.ru/i106/1103/10/37195f5a2540t.jpghttp://s015.radikal.ru/i331/1103/dc/b35d3094dff6t.jpghttp://s42.radikal.ru/i096/1103/43/ec579c8d06eat.jpg

http://s60.radikal.ru/i168/1103/fd/82bca084da7et.jpghttp://s010.radikal.ru/i314/1103/e0/7a73b8b0e7c9t.jpghttp://i066.radikal.ru/1103/95/901309f6a7e3t.jpg

http://s009.radikal.ru/i308/1103/62/6d24b2f8ad26t.jpghttp://s39.radikal.ru/i085/1103/f7/4e6ea6a31000t.jpghttp://s09.radikal.ru/i182/1103/83/3fda6e9a2e94t.jpg

Страница на maemo.org: http://maemo.org/packages/view/wgames/

Несколько моментов:
- в тех играх, которые сейчас поддерживаются, использованы скрипты ремаппинга мультитача на клавиатуру, выложенные Kirik'ом и описания, которые постил ZrX, за что им большое спасибо.
- при установке игры происходит много операций записи на флеш-память, поэтому телефон в этот момент будет тормозить - и еще несколько секунд после того, как появится надписать "Игра установлена". Это нормально, хотя возможно я в будущем найду способ ограничить скорость записи на диск при распаковке архивов.
- на данный момент поддерживаются 23 игры - это те, которые я опробовал у себя на телефоне. Я буду очень признателен, если остальные участники сообщества помогут этот список увеличить. Для добавления игры нужно написать .ini файл и подготовить картинку для меню. Формат файла и (если нужно) формат послеустановочного скрипта можно посмотреть в каталоге /usr/share/wgames/gamesinfo, хотя я чуть позже распишу это подробнее.

Как добавить поддержку новой игры: смотрите пост про добавление поддержки

- вопросы "а когда будет поддержка такой-то игры" не принимаются - как только кто-то (я или вы, или еще кто-то) добавит, сразу будет. )
- ну и любые советы, замечания, пожелания приветствуются

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

62

Re: Менеджер Игр WebOS

divan пишет:

В последнем обновлении добавлено:

А как обновлять? Подскажите плиз)

Краш-тест Nokia N900 или Nokia N9 на TechnoCrash!

Nokia N900 Black 32 Gb + Nokia N9 White 64 Gb = вынос мозга big_smile

Поделиться

63

Re: Менеджер Игр WebOS

abdrahman пишет:
divan пишет:

В последнем обновлении добавлено:

А как обновлять? Подскажите плиз)

как и любое приложение. Через диспетчер, когда есть обновление там выдает обновить

???????????? - сотри монеткой, чтобы получить пароль от этого аккаунта

Поделиться

64

Re: Менеджер Игр WebOS

Badn088 пишет:

как и любое приложение. Через диспетчер, когда есть обновление там выдает обновить

Так не обновляет, пишет - нет доступных обновлений
Мне бы способ через командную строку, но я забыл что там для этого нужно вписывать(

Краш-тест Nokia N900 или Nokia N9 на TechnoCrash!

Nokia N900 Black 32 Gb + Nokia N9 White 64 Gb = вынос мозга big_smile

Поделиться

65

Re: Менеджер Игр WebOS

abdrahman пишет:

Так не обновляет, пишет - нет доступных обновлений
Мне бы способ через командную строку, но я забыл что там для этого нужно вписывать(

root
apt-get update
apt-get upgrade

В сто раз быстрее и удобней, чем через Диспетчер Приложений smile

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться

66

Re: Менеджер Игр WebOS

дайте ссылку где можно этот пакет скачать libgles1-sgx-img

Поделиться

67

Re: Менеджер Игр WebOS

divan
Что-то скачалось и обновилось, но Менеджер Игр WebOS не обновился  hmm

Краш-тест Nokia N900 или Nokia N9 на TechnoCrash!

Nokia N900 Black 32 Gb + Nokia N9 White 64 Gb = вынос мозга big_smile

Поделиться

68

Re: Менеджер Игр WebOS

а есть бесплатные или крякнутые игры xplane или все платно?

Поделиться

69

Re: Менеджер Игр WebOS

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

6300->e70->n95->5800->n900->Е52->С5-03->N8->5530->C7

Поделиться

70

Re: Менеджер Игр WebOS

такой вопрос: если я до этого устанавливал игры pre из deb-файла, то они появятся в этой проге? или для этого их нужно будет снести и установить уже через прогу?

Communications: 3210 > 3310 > 6310 > 6310i > 6610 > 3230 > 7610 > N95-1 > Nokia N900, +Toshiba G900; Audio: iRiver PMP-120 > Cowon Q5W 60gb; Photo: Sony H9 > Nikon D7000?; Video: Sony DCR-SR42E > Sony NEX-VG10E?.

Поделиться

71

Re: Менеджер Игр WebOS

Они друг с другом вообще не связаны.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться

72

Re: Менеджер Игр WebOS

Не появятся....

живее всех живых

Сайт ZrX

Поделиться

73 (10.03.2011 23:32:40 отредактировано The IV)

Re: Менеджер Игр WebOS

не появится, хотя например старые сейвы из асфальт5 у меня заработали после установки через нее, так что не проблема)

По поводу catorise: в подменю "Все" ярлыки появлятся должны, но переместить их куда-либо низзя.

Divan, реквестирую инструкцию по добавлению поддержки новых игр)

Поделиться

74

Re: Менеджер Игр WebOS

Добавление поддержки новых игр.

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

Теперь, подробнее, по шагам.
Допустим, у вас есть .ipk файл с игрой mygame, и называется он наверняка com.vendor.app.mygame_1.0.0_all.ipk - это стандартный формат имени для .ipk файлов.

1) Копируем .ipk файл на телефон в папку /home/user/MyDocs/Downloads/
2) Создаем картинку иллюстрирующую игру, размером 450х150 в формате png, называем mygame.png и сохраняем на телефоне в /usr/share/wgames/gamesinfo/images/
3) В папке /usr/share/wgames/gamesinfo/ini создаем файл mygame.ini (или копируем из любого другого в этом каталоге).
Тут я остановлюсь подробнее. Содержимое нашего файла будет примерно таким:
===================================
Title=MyGame
Description="Long game description in English"
Description_ru_RU="Длинное описание игры на русском"
Genre=Action
PreviewImage=mygame.png
IPK_Name=com.vendor.app.mygame*_all.ipk
Space_Required=218
ID=com.gameloft.app.mygame
URL=http://www.vendor.com/mygame
Notes="Postinstall notes"
Notes_ru_RU="Заметки по игре, которые будут показываться после утсановки"
Preload="PowerVR:BIN_DIR"
Postinstall=mygame.sh
SaveFiles="savesettings,savegame"
Env="LD_LIBRARY_PATH=\".;$LD_LIBRARY_PATH\""
===================================
То, что выделено - это обязательные поля.
Title - название игры, как она будет отображаться в списке игр Менеджера.
Description и Description_ru_RU - описание игры на английском и русском. Добавление поддержки любого другого языка(например китайского) заключается в создании дополнительного поля вида Description_zn_CN, где zn_CN - стандартизированное название китайской локали. Чем полнее и интересней описание, тем лучше.
Genre - жанр игры, показывается в списке сразу под название игры.
PreviewImage - имя файла картинки, которую мы создали на шаге 2. Показывается в правой части Менеджера.
IPK_Name - маска файлов .ipk для данной игры. Хотя формат имени и достаточно строг, но мы должны узнавать все версии и возможные модификации игры, поэтому там где могут символы отличаться, ставим звездочку (*)
Space_Required - сколько требует места в Мегабайтах. Можно узнать, распаковав игру на компьютере командой:

ar x com.vendor.app.mygame_1.0.0_all.ipk data.tar.gz | tar xz -C .

и посмотрев сколько занимает места появившаяся папка. А можно написать любое близкое к размеру .ipk файла значение, и потом на телефоне проверить и исправить.
ID - уникальный идентификатор игры. Как правило совпадает с названием в имени файла. Но, бывает так (как, например, с игрой Monopoly), что разные игры содержат разные IDы - отличаются концовкой, к примеру. Поэтому это поле на самом деле обычный RegExp - чтобы подставить все возможные варианты с разной концовкой, дописывает в конце ".*". Вобщем, регексп он и в Африке регексп.
URL - собственно официальный адрес игры в интернете. Надеюсь, когда-нибудь тут будут ссылки на странички, на которых можно официально приобрести файл с игрой.

Дальше идут необязательные поля:
Notes и Notes_ru_RU - заметки, которые показываются после установки игры. Могут содержать предупреждение, советы по использовнию и всякое такое. По аналогии с полем Description, можно использовать локализованные тексты, добавляя _имя_локали к названию поля.
SaveFiles - файлы сейвов. Если указаны, то в окне управления сейвами появится возможность сохранять/восстанавливать сейвы. Формат - относительные пути файлов касательно каталога с бинарными данными(обычно /home/user/Games/MyGame/, можно несколько, через запятую. Например, если у нас в каталоге с игрой есть папка MyGameData и в ней два файла game.save и game.settings, то поле Saves должно иметь вид "MyGameData/game.save,MyGameData/game.settings".

Теперь интересные поля.
Postinstall - имя скрипта, который будет выполняться в конце инсталляции. Скрипты лежат в каталоге /usr/share/wgames/gamesinfo/hacks/. Для основы своего скрипта нужно взять скрипт /usr/share/wgames/gamesinfo/hacks/example.sh - там весь необходимый минимум есть. Первый параметр скрипта - install или uninstall, второй и третий - путь к каталогу с бинарными данными и путь к каталогу с данными игры.
Env - если игре нужно передать какие-то дополнительные переменные окружения, вписываем в это поле.
Preload - параметры LD_PRELOAD хака. Суть его в том, что если игра обращается по какому-то пути, которого нет или мы не имеем туда доступа (и не хотим иметь), мы можем ее обмануть и редиректить эти обращения на лету. Это делается путем перехвата вызова fopen(). Формат поля такой:
Preload="FROM_DIR:TO_DIR" - например "/media/internal/:BIN_DIR" - все обращения к файлам в каталоге /media/internal будут на самом деле обращениями к файлам с теми же именами в каталоге /home/user/Games/MyGame (BIN_DIR автоматически заменится на наш бинарный каталог, обычно это /home/user/Games/MyGame, а DATA_DIR заменится на каталог с данными - /home/user/MyDocs/Games/MyGame)
Есть еще специальный вариант этого хака для файлов в /etc/powervr.d/:
Preload="FROM_DIR:TO_DIR;PowerVR:BIN_DIR". - здесь PowerVR заменяет путь /etc/powervr.d/. Можно эти два пути комбинировать через точку с запятой, но пока только два. Если появится игра, где нужно больше путей заменять на лету - я допишу.

Собственно вот так.

4) Заходим в Менеджер (или выбираем "Обновить список" в меню) и пробуем установить игру. Если все ок - проверяем что она работает. Если не ок или не работает - идем в консоль, запускаем preenv, вооружаемся ldd, strace'ом, gdb и всем таким, находим проблему, и пишем все необходимые хаки в Postinstall и Preenv поля. Пробуем снова пока не получится.

5) Если все удачно и вы уверены, что можно этот .ini/.sh/.png использовать - выкладывайте тут на форуме, я проверю и добавлю к следующему обновлению.



Теперь несколько нюансов по тому, как прописывать хаки для игр. Рассмотрим разные случаи:
1) Игре нужен файл вида /etc/powervr.d/MyGame.ini с текстом
"[Default]
ForceExternalZBuffer=0"
Что делаем в таком случае:
В поле Preload добавляем значение "PowerVR:BIN_DIR", а в наш mygame.sh скрипт, в секцию install добавляем команду вроде
"echo -e "[default]\nForceExternalZBuffer=0\n" > ${BIN_DIR}/MyGame.ini"

2) Игра пытается открыть файл в несуществующем каталоге вроде /media/cryptofs или /media/internal или еще где-то.
В поле Preload добавляем значение "/media/internal/:BIN_DIR". Тут важно понимать, что часть пути, которая содержала /media/internal будет просто заменяться на BIN_DIR=/home/user/Games/MyGame/ - остальная часть пути будет оставаться такой же. Поддиректории по этому каталогу не создаются автоматически, если что.

3) Игре нужна дополнительная конфигурация через gconf.
Опять же, засовываем все такие команды (gconftool-2 --set .... /apps/preenv/MyGame ....) в наш mygame.sh в секцию install. Смотрите примеры в /usr/share/wgames/gamesinfo/hacks/

4) Всякие разные случаи. Например, как с Avatar'ом - он слинкован с библиотекой libavcodec.so, и не использует ни одной функции оттуда, но при этом падает если использовать родной maemo-вский libavcodec. Решение - слинковать его с пустой библиотекой с таким же именем - libavcodec.so.52. У preenv есть такая библиотека-пустышка - libstub.so, лежит в /opt/preenv/lib, но чтобы там создавать симлинк, нам тоже нужны права root, а их у нас нет. Поэтому выход следующий:
в mygame.sh создаем симлинк на libstub.so в каталоге BIN_DIR, а в поле Env прописываем путь "." в список путей поиска библиотеки: LD_LIBRARY_PATH=".;$LD_LIBRARY_PATH"
Теперь avatar ищет эту библиотеку в каталоге с бинарником, а там симлинк на libstub и все работает.

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

Вот как-то так.

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

75

Re: Менеджер Игр WebOS

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

Поделиться

76

Re: Менеджер Игр WebOS

Theprofessor, посмотрите вот этот топик: http://maemoworld.ru/forum/viewtopic.ph … 605#p36605

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться