motofan logo
181 страниц V  1 2 3 > »         
> 

Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта

EXL
сообщение 26.8.2011, 12:34 Закрепленное сообщение!


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 862
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652

Рейтинг: 4598.5



Мануал: Компиляция приложений для MotoMAGX OS, создание пакетов

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

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

1. Компьютер с Linux OS. Или Windows OS с установленным Virtual BOX/VMware Player, в крайнем случае под виндой можно воспользоваться AndLinux'ом или Cygwin'ом.
2. SDK & Toolchains для MotoMagX + Исходники программ/приложений.
3. Программист/Разработчик или начинающий программист (1 шт.).

Я рассмотрю наиболее приемлемый многим начинающим разработчикам способ, с использованием популярного дистрибутива Ubuntu 11 (Linux OS) в виртуальной машине VMware Player в Windows OS. Те пользователи, у которых стоит Linux OS на компе, могут скачать SDK & Toolchains | Зеркало | Зеркало | Зеркало и сразу перескочить на пункт #4.

Итак, начнём:

1. Загрузка необходимых для разработки инструментов и файлов:

1.1. Скачиваем ISO-образ диска Ubuntu 11. Я качал себе в городской сетке, пошарьтесь в своих тоже, может найдёте. На всякий случай, ссылка: [Download | Скачать] на скачивание с официального сайта: http://www.ubuntu.com Там вы можете выбрать любую конфигурацию под свой компьютер (amd/i386) и т.д.

1.2. Скачиваем VMware Player - Скачать можно с официального сайта: [Download | Скачать] или тут: [Mirror | Зеркало]

1.3. Скачиваем SDK & Toolchains для MotoMagX. [Download | Скачать] - полная версия, включающая в себя 2 тулчейна SDL (От испанцев) + QT (От Ant-On'a) а также python, bennugd, boost и множество различных библиотек. Инструкция по установке есть внутри или ниже можно прочитать подробно.
Тем, кто хочет разрабатывать приложения на SDL, можно скачать небольшой тулчейн для сборки приложений: [Download | Скачать] [Mirror | Зеркало]

2. Мануалы по установке VMware, Ubuntu и SDK & Toolchains в картинках:*
* - картинки открывать лучше всего в новом окне, нажав колёсико мышки. После открытия воспользуйтесь масштабированием, например, в стандартном просмоторщике картинок.

2.1. Установка программы VMware для самых маленьких.
2.2. Установка Linux OS в программу VMware, на примере Ubuntu 11.
2.3. Установка дополнительных инструментов (VMware-tools) в Ubuntu 11. Необходимо для перемещения файлов между Ubuntu в виртуальной машине и виндой.

2.1.:    2.2.:    2.3.:

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

3. Мануалы по установке, текстом.

3.1. Установка VMware-tools для Ubuntu 11.
3.1.1. Стартуем Ubuntu 11, вверху нажимаем "Virtual Machine", затем "Install VMware Tools...
3.1.2. Ждём загрузки инструментов (нужно подключение к интернету!), затем снова вверху нажимаем "Virtual Machine" -> "Install VMware Tools...
3.1.3. С открывшегося диска копируем архив в формате *.tar.gz например в /home/user (user - ваше имя при установке Ubuntu), распаковываем его.
3.1.4. Запускаем терминал и выполняем в нём следующее:
Код

cd /home/user/vmware-tools-distrib
sudo ./vmware-install.pl

После команды sudo надо ввести пароль, который мы указывали при установке Ubuntu.
3.1.5. Умный скрипт сам предложит вам вводить нужные значения (в квадратных скобках), вводите их.
3.1.6. После успешной установки инструментов, перезагрузите компьютер.
3.1.7. Данные инструменты помогут с лёгкостью переносить файлы из Windows в Linux Ubuntu, просто копируя их или перенося из окна в окно, как вы это делали в Windows. Кроме того, появится множество разрешений для экрана системы.

3.2. Общие папки между системами для обмена файлами.
3.2.1. Стартуем Ubuntu 11, вверху нажимаем "Virtual Machine", затем "Virtual Machine Settings"
3.2.2. Переходим на вкладку "Options", выбираем "Shared Folders"
3.2.3. Переключатель "Folder sharing" ставим в положение "Always enabled", нажимаем кнопку "Add".
3.2.4. На компьютере выбираем любую папку, добавляем её, жмём ОК.
3.2.5. Теперь в Ubunte, в папке /mnt/hgfs видим добавленную нами папку из Windows.

4. Установка SDK & Toolchains.

4.1. Скачиваем архив тулчейна (*.tar.gz), перемещаем его в папку /home/user (user - ник при установке Ubuntu).
4.2. Выполняем команды, новая строка - Enter, вместо user естественно пишем своё имя, после команды sudo потребуется ввести пароль, который мы указывали при установке Ubuntu.
Код

sudo mkdir /mmc
sudo chown user -R /opt
sudo chown user -R /home
sudo chown user -R /mmc
sudo ln -s -d /opt/toolchains/motomagx/arm-eabi -t /
mkdir /opt/toolchains
mkdir /home/z6
mkdir /mmc/mmca1
tar -C /opt/toolchains -xzvf /home/user/motomagx-toolchains_12_08_2011.tar.gz
cp /opt/toolchains/motomagx/setenv-z6.sh /home/z6
cp /opt/toolchains/motomagx/setenv-z6-2.sh /home/z6

4.3. Обратите внимание на имя скаченного вами архива с тулчейном! Именно его нужно вводить в восьмой строке кода, приведённого выше!
4.4. Установленный тулчейн:
Прикрепленное изображение

5. Запуск окружения, компиляция программ и helloworld'a.

5.1. Чтобы запустить окружение для компиляции под MotoMagx, достаточно выполнить в терминале следующее:
Код

cd /home/z6
. setenv-z6.sh

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

5.2. HelloWorld.
5.2.1. Создаём пустой файл с именем hello.c в папке /home/z6 (Правой клавишей по пустому месту, "Create Document" -> "Empty File")
5.2.2. Редактируем его содержимое следующим образом, сохраняем:
Код

// Hello World for Motorola Magx!

#include <stdio.h>

int main(void)
{
    printf ("Hello Moto!!!\n");
    return 0;
}

5.2.3. Компилируем:
Код

cd /home/z6
arm-linux-gnueabi-gcc hello.c -o hello

5.2.4. Полученный исполнительный файл "hello" кидаем на телефон и запускаем через телнет!
Код

Mobilinux(TM) 4.1
Welcome 2 Motorola ZN5!
[root@Symbiosis ~]
#> /mmc/mmca1/hello
Hello Moto!!!


5.3. Работа с утилитой Make* и SDL библиотекой.
* - Утилита Make позволяет компилировать достаточно сложные проекты. Подробнее тут: http://ru.wikipedia.org/wiki/Make
5.3.1. Скачиваем следующие исходники, распаковываем в папку /home/z6:
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 21034

5.3.2. Запускаем терминал и окружение для компиляции, переходим в папку с проектом, выполняем команду make:
Код

cd /home/z6/ballgame_src
make

После выполнения команды будет выполнена компиляция проекта и создан mgx пакет. Для очистки проекта от объектного кода и бинарников, следует выполнить make clean. Для создание mgx пакета - команду make mgx.
5.3.3. Теперь можно кинуть пакет на карту памяти и попробовать запустить. (Для SDL приложений вам потребуется установленные SDL-библиотеки!)
5.3.4. Структура простейшего Makefile для компиляции HelloWorld'a:
Код

# MakeFile for HelloWorld
# Motorola MotoMAGX

CC = arm-linux-gnueabi-gcc  
STRIP = arm-linux-gnueabi-strip
  
CFLAGS = # Необходимые флаги
LDFLAGS = # Необходимые флаги
OPTIMIZATION = -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -O2 # Оптимизация под процессор

INCLUDE = $(CFLAGS) $(OPTIMIZATION) -I/dir # Путь к нужным хэдэрам.
LIBS = $(LDFLAGS) -L/dir # Путь к нужным либам

BIN = hello # Бинарник

all:
    $(CC) -c hello.c -o hello.o $(INCLUDE)
    $(CC) -o $(BIN) hello.o $(LIBS)
    $(STRIP) $(BIN)
clean:
    rm -f ./*.o $(BIN)

Если положить данный Makefile рядом с hello.c, и выполнить make, получим исполнительный файл.
5.3.5. Замена строк, для портирования SDL проектов:
Код

CC:=gcc ---> CC:=arm-linux-gnueabi-gcc
cc=gcc ---> CC=arm-linux-gnueabi-gcc
cxx=g++ ---> CXX=arm-linux-gnueabi-g++
ld=ld ---> LD=arm-linux-gnueabi-ld
ar=ar ---> AR=arm-linux-gnueabi-ar
as=as---> AS=arm-linux-gnueabi-as
oc=oc ---> OC=arm-linux-gnueabi-objcopy
ranlib=ranlib ---> RANLIB=arm-linux-gnueabi-ranlib
strip=strip ---> STRIP=arm-linux-gnueabi-strip
В INCLUDE или CFLAGS добавляем `sdl-config --cflags`
В LIBS или LDFLAGS добавляем `sdl-config --libs` -lнеобходимая_библиотека


5.4. Работа с утилитой configure* и SDL библиотекой.
* - Скрипт configure создаёт Makefile и позволяет компилировать сложные проекты, состоящие из множества файлов. Подробнее тут: http://en.wikipedia.org/wiki/Configure_script
5.4.1. Пример работы. Скачиваем исходники, распаковываем в папку /home/z6:
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21101

5.4.2. Выполняем следующее:
Код

cd /home/z6/PTC-demos
./configure --host=arm-linux-gnueabi
make

После этих команд у нас появятся исполнительные файлы Fire и Tunnel. Копируем их в корень карточки телефона.
5.4.3. Запускаем через телнет следующим образом:
Код

export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
chmod +x /mmc/mmca1/Fire
/mmc/mmca1/Fire

5.4.4. Для установки файлов в нужную директорию используется prefix и команда make install:
Код

mkdir /home/z6/test
cd /home/z6/PTC-demos
./configure --host=arm-linux-gnueabi --prefix=/home/z6/test
make
make install

После этого нужные нам файлы будут в папке /home/z6/test.
5.4.5. Для чистки объектного кода и бинарников используется команда make clean, для удаления сконфигурированных Makefile'ов используется команда make distclean (полная очистка).

5.5. Деббагер "Segmentation fault"
5.5.1. Качаем gdb и распаковываем архив на карту памяти, в папку /mmc/mmca1/games
Исполнительные файлы должны быть собраны с префиксом '-g' и не должны быть пострипаные
5.5.2. Выполняем (gdb):
Код

ulimit -c unlimited
./<bin_app>
Segmentation fault (core dumped)
файл <core> будет создан
../bin/gdb ./<bin_app> <core>

5.5.3 Выполняем (strace):
Код

../bin/strace ./<bin_app>


5.6. Скрипт запуска для SDL приложений:
Код

#!/bin/sh
mypath=${0%/*}
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
export HOME=$mypath
export SDL_QT_INVERT_ROTATION=1
cd $mypath
sleep 1

exec $mypath/<bin_app>

5.6.1. Если нужен вывод лога в файл, заменяем последнюю строку в скрипте на
Код
exec $mypath/bin_app >$mypath/stdout.txt 2>$mypath/stderr.txt


5.7. HelloWorld с использованием GUI и функций телефона.
5.7.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21322

5.7.2. Выполняем:
Код

cd /home/z6/папка с нужным проектом
make PLATFORM=EZX-ZN5

или просто make
5.7.3. Кидаем исполнительные файлы на телефон и пробуем запустить, должно получиться что-то типа этого:
Прикрепленное изображение

5.8. Собираем MgxBox.
5.8.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 22586

5.8.2. Выполняем:
Код

cd /home/z6/MgxBox/MgxBox_GUI_ru
make PLATFORM=EZX-ZN5
cd /home/z6/MgxBox/p7zip_9.20.1
make all2
make install
cp -r /mmc/mmca1/p7zip/lib/p7zip /home/z6/MgxBox/Release/app/p7zip

5.8.3. Кидаем папку /home/z6/MgxBox/Release на телефон и пробуем запустить бинарник в папке Release/app, если всё нормально, должно получиться что-то типа этого:
Прикрепленное изображение

6. Создание пакетов вручную.

6.1. Создание MGX пакета:
6.1.1. Создаём папку, помещаем в нее необходимые файлы (дата файлы приложения, исполнительные файлы, скрипт запуска, иконку).
6.1.2. Создаём в папке файл "Имя папки".cfg, редактируем его содержимое следующим образом:
Код

Name = Test
Exec = run.sh
Icon = icon.png
Author = Ant-ON
Version = 1.0
Comment = Port for ZN5 by EXL

Где, Name - имя программы, Exec - запускаемый файл, Icon - иконка, Author - Автор программы, Version - Версия программы, Comment - Комментарий.
6.1.3. Запаковываем папку в любой удобный вам архив (RAR, TAR, GZ, 7Z, ZIP), и переименовываем в "имя программы".mgx

6.2. Создание PEP пакета:
6.2.1. Создаём папку с именем "app", помещаем в нее необходимые файлы (дата файлы приложения, исполнительные файлы, скрипт запуска).
6.2.2. Создаём рядом с папкой файл "description.ini", редактируем его содержимое следующим образом:
Код

[Actions]
Silent=0
InstallApp = 1  
AddAppToMenu = 1

[InstallApp]
Name = Jump n Blob
Exec = run.sh
InstallPath = ../../mmc/mmca1/.Programs/jump_n_blob/
AppLockable = 1
Author = http://www.2d-retroperspectives.org | Philipp. Port by -=Strelok=-, EXL (c) MotoFan.Ru 08.01.2010
Version = 0.1
Daemon = 1
BigIcon= icon.png
AniIcon= icon.png
Icon= icon.png

[AddAppToMenu]
ParentFolder= root

Где, Name - имя программы, Exec - запускаемый файл, Icon | AniIcon | BigIcon - иконка, Author - Автор программы, Version - Версия программы, InstallPath - Путь установки.
6.2.3. Создаём иконку, рядом с папкой "app" и "description.ini".
6.2.4. Запаковываем иконку, папку "app" и "description.ini" в архив формата TAR, затем сжимаем его в GZ переименовываем в "имя программы".pep

7. Полезные ссылки, документация, наши проекты.

7.1. Исходники, сайты с исходниками. Множество интересных проектов есть на code.google.com и sf.net
7.1.1. Исходники проектов, базирующихся на SDL:
libsdl.org/games
libsdl.org/demos
http://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,46
http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,46
7.1.2. Исходники проектов, базирующихся на QT:
http://www.elsix.org/index.php?w=browse - В основном там под Sharp Zaurus, но идеи создания приложений и сорцы найти можно.

7.2. Документация, темы для прочтения:
Пробуем портировать игры и проги сами
Разработка софта под MOTOMAGX, начну небольшой HOWTO
Компиляция нативных приложений под E6/A1200, Создание окружения для компиляции
SDL библиотека
http://plg.lrn.ru/wiki/Заглавная_Страница
http://plg.lrn.ru/doc/sdl/index.html
http://doc.qt.nokia.com

7.3. Проекты:
http://code.google.com/p/open-mgx/ - исходники программ от Ant-On'a
http://code.google.com/p/sdl-magx/ - библиотека SDL HW для MotoMAgx от Ant-On'a
http://code.google.com/p/zmessanger/ - нативная аська, автор Ant-On
http://sourceforge.net/projects/qte2console/ - qte2console от DoomChisel
http://code.google.com/p/motocakerteam/ - исходники программ от испанцев MotoCakerTeam
http://code.google.com/p/zsoft/

8. Мануалы данной темы:

Если кто не может запустить ZN5Encoder в Magic box - пост #290
Нативные заставки на основе портированных мной и Neomoto демок! - пост #291
Мануал по установке Tmake в тулчейн, и правки созданного им MakeFile - пост #484
Изучение разделяемых библиотек (so) - пост #1440
Эмуляция нажатия клавиш на Motorola ZN5 - пост #1684


© EXL for MotoFan.Ru 27.08.2011
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 21034
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21101
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21322
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 22586
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AstaRoth
сообщение 8.6.2009, 14:37


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206
Модель телефона: E2=>Zn5=>Defy+=>Nubia
Прошивка: Ъбфбймус Edition
Победитель конкурса 2008


Настроение:
reBOOT



Рейтинг: 4098



Умные буржуйские друзья начали разработку поддержки нативных приложений на Зн5
http://www.mmus.us/forum/showthread.php?t=8943
На данный момент готовится к выходы PinkMod 2.0 в котором будет реализована поддержка mpkg
Исходный код во вложении.
Спасибо камраду kidscracker
Все дальнейшие обсуждения -связанные с нативным софтом предлагаю вести в ЭТОЙ теме.
За флуд в теме БАН!
Мануал по портированию игр и программ (с) EXL

В соседних ветках много тем по портированию софта/игр. Я не знаток в этом деле, но кое-что могу рассказать)
Для портирования приложений на нашу платформу нужны:
1. AndLinux или Cygwin (Запускаются под виндой). Или любой Linux
2. SDK
3. Прямые руки
Я расcмотрю наиболее приемлемый способ с использованием Винды и AndLinux'a
Под Cygwin говорят плохо собираются программы, ну а настоящий Linux я пока не освоил.
Итак:
1. Скачиваем сам AndLinux Я использовал версию (beta2 final KDE version, 537 MB), качал себе в городской сетке, пошарьтесь в своих тоже, может найдёте.
2. Устанавливаем его.
Мануал по установке AndLinux'a в картинках для начинающих) Подписи к скринам внизу
Spoiler:

Запускаем установку
Изображение
Кликаем next
Изображение
Соглашаемся, кликаем next
Изображение
Выбираем путь установки, next
Изображение
Выбираем версию. Лучше верхнюю, next
Изображение
Выбираем память. Я оставил 256 mb, next
Изображение
Настройки. Оставьте всё как есть, next
Изображение
Звук в AndLinux ставте да, next
Изображение
Настройки запуска AndLinux ставьте первое, next
Изображение
Введите имя, пароль, next
Изображение
Выберите третье, пользователи Windows XP лучше выбирайте COFS, next
Изображение
Создаем папку AndLinux в корне вашего жесткого диска, даём ей общий доступ!
Изображение
Нажимаем Refresh, выбираем расшаренную нами папку, вводим имя пользователя и пароль, next
Дальше - установка ярлыков, групп меню, ассоциации к файлам, ставим что нужно, ждём пока установиться и перезагружаем компьютер!
[close]

3. Скачиваем SDK (Зеркало 1, Зеркало 2). Копируем данный архив в расшаренную папку AndLinux.
4. Установка окружения для портирования:
Стартуем AndLinux, запускаем под ним Konsole
Spoiler:

Изображение
[close]

Выполняем команды: (Новая строка - ENTER, вместо user естественно пишем своё имя, после первой команды потребуется ввести пароль)
Spoiler:

Код

sudo mkdir /mmc
sudo chown user -R /opt
sudo chown user -R /home
sudo chown user -R /mmc
mkdir /opt/toolchains
mkdir /home/z6
mkdir /home/z6/build
mkdir /mmc/mmca1
tar -C /opt/toolchains -xzvf /mnt/win/motomagx-toolchains.tar.gz
cp /opt/toolchains/motomagx/setenv-z6.sh /home/z6
cp /opt/toolchains/motomagx/setenv-z6-2.sh /home/z6

[close]

5. Теперь запускаем окружение
Spoiler:

Код

cd /home/z6
. setenv-z6.sh

[close]

Spoiler:

Изображение
[close]

6. Качаем исходники и кидаем их в папку AndLinux, распаковываем и пробуем собрать
Spoiler:

Код

cd /home/z6
tar -xzvf /mnt/win/Ваши_исходники.tar.gz
cd Ваши_исходники
./configure --host=arm-linux-gnueabi
make (или make install)

[close]

Если не конфигурируется, пробуем
Spoiler:

Код

./configure --host=arm-linux-gnueabi --enable-sdlui --without-x

[close]

Если приложению нужны data файлы - нужен параметр --prefix=./ - например
Spoiler:

Код

./configure --host=arm-linux-gnueabi --enable-sdlui --without-x --prefix=/mmc/mmca1/..Ваш путь
[close]

Или так
Spoiler:

Код

./configure --host=arm-linux-gnueabi --enable-sdlui --with-sdlsound --without-x --prefix=./
[close]

Не забываем выполнять команду make distclean - она удаляет существующие неправильные бинарники
Spoiler:

Изображение
[close]

7. Если в исходниках отсутствует файл configure
вручную редактируем Makefile
ищем и заменяем строчки
Spoiler:

Код

CC:=gcc ---> CC:=arm-linux-gnueabi-gcc
cc=gcc ---> CC=arm-linux-gnueabi-gcc
cxx=g++ ---> CXX=arm-linux-gnueabi-g++
ld=ld ---> LD=arm-linux-gnueabi-ld
ar=ar ---> AR=arm-linux-gnueabi-ar
as=as---> AS=arm-linux-gnueabi-as
oc=oc ---> OC=arm-linux-gnueabi-objcopy
ranlib=ranlib ---> RANLIB=arm-linux-gnueabi-ranlib
strip=strip ---> STRIP=arm-linux-gnueabi-strip
[close]

8. Если конфигурирование и компиляция прошла без ошибок, вытаскиваем полученный файл из AndLinux'a с помощью Dolphin,
Не забываем кстати стрипать полученный экзешник, по такому коду (Где екзешник "x64" лежит в папке src, выполнять после make):
Spoiler:
Код

arm-linux-gnueabi-strip src/x64
[close]

Spoiler:

Изображение
[close]

Он лежит по пути (Вкладка Root) \home\Z6\Ваши_Исходники\Исполняемый файл, для этого его нужно вырезать, перейти на вкладку home и кинуть в папку windows, после этого он появиться в C:\\AndLinux
Spoiler:

Изображение Изображение
[close]

9. Копируем данный файл в корень карты памяти
и выполняем в телнете
Spoiler:

Код

cd /mmc/mmca1
export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
chmod +x Имя исполняемого файла
./Имя исполняемого файла

[close]

Если запустилось - отлично! Делайте пакет и выкладывайте!
------------------------------------------------------------------------------------
1. Правка управления (Ищите в исходниках по SDLK или клавишам):
Spoiler:

Код

layer[0].keys[0]=SDLK_LEFT;
        player[0].keys[1]=SDLK_RIGHT;
        player[0].keys[2]=SDLK_UP;
        player[0].keys[3]=SDLK_DOWN;
#ifndef ALT_FIRE
        player[0].keys[4]=SDLK_RCTRL

[close]

2. Правка разрешения (Ищите в исходниках по VIDEO или само разрешение)
3. Решение для добавления сворачивания приложения при входящем вызове (sms, флипе, других телефонных событиях) с остановкой звука делаем через замену процедуры SDL_PollEvent на собственную mySDL_PollEvent
Spoiler:

Код

-------------example.h-----------------------
int mySDL_PollEvent(SDL_Event *event);

// audio use sdl-lib
SDL_AudioSpec obtained;
boolean _audioSuspended;
void suspendAudio();
int resumeAudio();

// audio use sdl-mixer lib
void suspendAudio();
int resumeAudio();
void closeAudio(void);
--------------example.cpp--------------------
int mySDL_PollEvent(SDL_Event *event)  {
    int _r= SDL_PollEvent(event);
    if (!_r)
        return 0;
    if (event->type == SDL_ACTIVEEVENT) {
        if (event->active.state == SDL_APPINPUTFOCUS && !event->active.gain) {
            suspendAudio();
            for (;;) {
                _r = SDL_WaitEvent(event);
                if (!_r)
                    continue;
                if (event->type == SDL_QUIT)
                    return 1;
                if (event->type != SDL_ACTIVEEVENT)
                    continue;
                if (event->active.state == SDL_APPINPUTFOCUS && event->active.gain) {
                    resumeAudio();
                        return 1;
                }
            }
        }
    }
  return _r;
}

// if audio use sdl-lib
void suspendAudio() {
    SDL_CloseAudio();
    _audioSuspended = true;
}

int resumeAudio() {
    if (SDL_OpenAudio(&obtained, NULL) < 0){
        return -1;
    }
    SDL_PauseAudio(0);
    _audioSuspended = false;
    return 0;
}

// if audio use sdl-mixer-lib
void suspendAudio()
{
  Mix_SuspendAudio();
}

int resumeAudio() {
  int r = Mix_ResumeAudio();
  if(r == -1){
    closeAudio();
    return -1;
  }
}

void closeAudio(void) {
      Mix_CloseAudio();
}

[close]

4. Мониторинг проблем "Segmentation fault"
Качаем gdb и распаковываем в телефон /mmc/mmca1/games
приложения должны быть собраны с префиксом '-g' и не должны быть пострипаные
Spoiler:

Код

ulimit -c unlimited
./<app>
Segmentation fault (core dumped)
файл <core> будет создан
../bin/gdb ./<app> <core>
[close]

5. утилита strace
Код

../bin/strace ./app

6. Скачивание исходников и их обновление
Spoiler:

Код

svn co http://сайт - скачивание
svn up - обновление

[close]

7. Скрипт запуска утверждённый минздравом:
Spoiler:

Код

#!/bin/sh

mypath=${0%/*}
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
export HOME=$mypath
cd $mypath
exec $mypath/Ваш екзешник > $mypath/Ваш экзешник.log

[close]

8. Для портирования игр, в которых разрешение экрана 640х480 или 800х600, требуется правка координат в исходниках. Для первого случая нужно делить координаты на 2, для второго на 2.5, графику можно обработать программой VSO Image Resizer
-----------------------------------------------------------------------------------
Spoiler:

Мануал будет дополняться и разрабатываться, все что вы прочитали в мануале - это попытка систематизировать информацию.
Источники с которых бралась информация:
Motofan и Motorola Gaming Site
Огромное спасибо таким людям как: Lubomyr, Neomoto, Abram, AstaRoth,
[close]

Здесь можно скачать исходники:
Spoiler:

Сайт
Сайт
Сайт
Ну и на многих других
[close]

Полезные ссылки, обязательные к прочтению начинающим разработчикам:

--------------------------------------------------------------------
Мануалы данной темы:
Spoiler:

Если кто не может запустить ZN5Encoder в Magic box - пост #290
Нативные заставки на основе портированных мной и Neomoto демок! - пост #291
Мануал по установке Tmake в тулчейн, и правки созданного им MakeFile - пост #484
[close]
Прикрепленный файл ZN5Mpkgbox_Ported_By_Kidscracker.zip   ( 44.33 килобайт ) Кол-во скачиваний: 39522
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 41806
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chacha_Ivanov
сообщение 8.6.2009, 16:37


Куртуазный Маньерист
******

Группа: Разработчики
Сообщений: 1 277
Регистрация: 30.10.2005
Из: Истра
Пользователь №: 56 473
Модель телефона: LG Sol, Moto EM35
Прошивка: Уникальная


Настроение:
помоги себе сам..



Рейтинг: 805



Странно, исходники есть, а проги нет) Выложите кто-нибудь бибы с ZN5 (желательно с проши типа 0ER) попробую скомпилить, мож чо получится..

Нужны вот эти:

Код

libaplog.so.1.0.0
libezxflex.so  
libihal.so        
liblm.so    
libqte-mt.so
libconfigmanager.so  
libezxtapi.so  
libjpeg.so.62    
libmedl.so  
libz.so.1
libezxappbase.so    
liblighting.so.1  
libnapi.so


Сообщение отредактировал Chacha_Ivanov - 8.6.2009, 16:38
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
r.o.m.a.N
сообщение 8.6.2009, 20:12


Motoroma
********

Группа: Пользователи
Сообщений: 3 574
Регистрация: 16.8.2006
Из: Москва
Пользователь №: 95 283
Модель телефона: Е1, Moto G LTE
Прошивка: 49R 4.4.4

Рейтинг: 1026



Цитата(Chacha_Ivanov @ Вчера, 20:37)

libezxtapi.so
*


Такого нет. Но если идти по сылкам (чем эта либа и является) попадаем на libezxtapi-xscale
Прикрепленный файл lib_0er.tar.gz   ( 2.89 мегабайт ) Кол-во скачиваний: 21512


Сообщение отредактировал r.o.m.a.N - 8.6.2009, 20:16
Прикрепленный файл lib_0er.tar.gz   ( 2.89 мегабайт ) Кол-во скачиваний: 21512
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
OCM770
сообщение 9.6.2009, 8:21


Новичок
*

Группа: Пользователи
Сообщений: 27
Регистрация: 22.3.2009
Пользователь №: 196 171
Модель телефона: L7 V6 V9 ZN5
Прошивка: Many

Рейтинг: 48



Im finished with my MP it includes Mpkgbox wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chacha_Ivanov
сообщение 9.6.2009, 8:43


Куртуазный Маньерист
******

Группа: Разработчики
Сообщений: 1 277
Регистрация: 30.10.2005
Из: Истра
Пользователь №: 56 473
Модель телефона: LG Sol, Moto EM35
Прошивка: Уникальная


Настроение:
помоги себе сам..



Рейтинг: 805



Чо-то не захотел он с вашими либами компилится до конца, вывалил десяток ошибок на последнем этапе сборки. Пришлось своих либ подпихнуть чуть-чуть) Так что если не запустится (что скорее всего), придется подгрузить либы от ем30...

------
Все, понятно, там еще и сдк изменили, потому и не скомпилилось

Сообщение отредактировал Chacha_Ivanov - 9.6.2009, 11:29
Прикрепленный файл Mpkgbox.rar   ( 30 килобайт ) Кол-во скачиваний: 20313
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
kidscracker
сообщение 9.6.2009, 9:03


Новичок
*

Группа: Пользователи
Сообщений: 9
Регистрация: 25.12.2008
Пользователь №: 189 546
Модель телефона: MotoZine ZN5
Прошивка: Symbiosis III 1.1

Рейтинг: 25.5



Атароф спасибо за публикацию, я надеюсь, что вы будете использовать этот источник для будущего развития. это мой маленький вклад в ZN5 Моддинг: D.

PS Извините за плохой русский (Google Translation)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
mallexxx
сообщение 9.6.2009, 9:44


Новичок
*

Группа: Пользователи
Сообщений: 21
Регистрация: 31.12.2005
Пользователь №: 64 006
Модель телефона: MotoZINE ZN5

Рейтинг: 9



Тут новости от буржуев:

Вышла новая прошивка [MP]Freedom 7FR [Mpkgbox + QVGA recording]

Включает:
-MPKGBOX
-Видео 320х240
-Telnet&FTP (Modem&Tools)
-Запуск скриптов из файл менеджера
-Unrar и Unzip из файл менеджера
-Show* Modules
-Некоторые модули удалены
http://www.mmus.us/forum/showthread.php?t=8958

Сообщение отредактировал mallexxx - 9.6.2009, 10:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
mallexxx
сообщение 9.6.2009, 10:10


Новичок
*

Группа: Пользователи
Сообщений: 21
Регистрация: 31.12.2005
Пользователь №: 64 006
Модель телефона: MotoZINE ZN5

Рейтинг: 9



Дык это оно и есть, пол часа назад запостили!
там и прога и либы и видео!

..На очереди СДК )

Кто рискнет протестировать? )

Сообщение отредактировал mallexxx - 9.6.2009, 10:10
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
1nTeRacT
сообщение 9.6.2009, 10:41


Ветеран
*****

Группа: Пользователи
Сообщений: 429
Регистрация: 30.6.2007
Пользователь №: 139 825
Модель телефона: MOTOZINE ZN5
Прошивка: G_81.03.0ER

Рейтинг: 24



Цитата(Hitch @ 9.6.2009, 14:34) *

а что за прошивка такая... 81.00_7FR ?
это точно для нашей зинки? О_о

p.s: судя по буту да, но хз. стрёмно как-то)

уже давно потестили... всё подходит ...

ковыряем ZN5
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Hitch
сообщение 9.6.2009, 10:45


Вечномолодой
*****

Группа: Пользователи
Сообщений: 551
Регистрация: 15.7.2005
Из: Рая
Пользователь №: 46 265
Модель телефона: Samsung S8500 Wave
Прошивка: Bada 1.2

Рейтинг: 256



давно на форум не заходил, пардон = ) спасибо за наводку)

p.s: прошивка тянется, с убогой скоростью... 33 кб/с. Лучше б на рапиду залили...

Добавлено позже (9.6.2009, 14:20):
прошивка поставилась, турболенг на неё тоже поставился без проблем.
первые впечатления - довольно шустрая даже сразу со включения телефона. Сразу расторможенная = )
Mpkgbox
qvga видео

щас пойду тестить камеру, видео, мп3-плеер на тормознутость, и т.д.

всем качать, адназначна sport_boxing.gif

Сообщение отредактировал Hitch - 9.6.2009, 11:20
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

181 страниц V  1 2 3 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.3.2024, 10:28

Форум живёт: