motofan logo
16 страниц V « < 8 9 10 11 > »         
> 

Учимся писать эльфов вместе, Обсуждение процесса кодинга

Andy51
сообщение 29.10.2007, 20:13 Закрепленное сообщение!


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Вот и долгожданное обновление SDK до v0.2

Основные новшества с прошлой версии:
+ Добавлено множество функций в SDK
+ Добавлено два новых примера - на этот раз GUI

Что внутри:
Папка SDK - ну, и так ясно, заголовочные файлы. За описаниями функций заглядываем в эту папку.

helloworld_snd - первый пример эльфа. Несколько нестандартный HelloWorld, заменяет озвучку цифровой клавиатуры системными звуками. Предназначен в основном для изучения структуры приложения (Application), ну и как пример приложения, работающего в фоне.

helloworld_gui - классический HelloWorld эльф, на этот раз с использованием GUI. Выводит сообщение с помощью диалога Notice. Предназначен для изучения структуры простейшего GUI-приложения.

ListTest - пример использования диалога List. Значительно более сложный пример, предназначен для изучения возможностей и принципов управления диалогами.

make_*.bat - батники для сборки эльфов-примеров. Эльфы расчитаны на компиляцию с комплектом ADS. Из-за правил форума, я не могу включить его в SDK, однако оставляю ссылки
http://ifolder.ru/3937671
http://slil.ru/25060171
http://rapidshare.com/files/67580866/ads.7z.html

Lib.o - для функционирования эльфа под моим загрузчиком, необходимо подлинковать этот файл к проекту (в make.bat уже прописан).
Внимание! Этот файл не зависит от конкретной версии прошивки, под которую собирается эльф, но, тем не менее, зависит от версии библиотеки!
В этом SDK уже включен Lib.o для библиотеки v071218 (оч. старый - не забудьте обновить, если понадобятся новые функции)

Пара слов об т.н. Application.
В телефонах motorola есть система AFW, которая позволяет, не затрачивая лишних ресурсов процессора на обеспечение "полноценной" многозадачности, достаточно полноценно работать нескольким приложениям, ориентированным на диалог с пользователем. Как это работает: приложения представляют собой, фактически, набор обработчиков событий(ивентов, events) + структура данных приложения. Откликаясь на те или иные события, приложения поочерёдно обрабатывают списки накопившихся ивентов. Таким образом, мы фактически имеем невытесняющую многозадачность.
Есть теоретическая возможность писать и эльфы, выделенные в отдельный процесс(task), но эта часть всё ещё в разработке.

Книги по Си
  1. Руководство полного идиота по программированию (на языке Си) - Не смотря на такое название все азы разжёваны. Если вы вообще никогда не видели Си, начните с этой книги
  2. Герберт Шилдт, "Полный справочник по С (4-е издание)"
    Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1155
  3. "Язык программирования C"
    Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 899
Исходники эльфов
  1. SRC by om2804
  2. SRC by G-XaD
SDK
  1. SDK by om2804
  2. SDK by G-XaD
Эльфостроение на motoWiki

Компилятор + исходники от om2804 для EP1 скачать

Сообщение отредактировал om2804 - 3.5.2011, 13:59
Прикрепленный файл SDKv02.rar   ( 24.88 килобайт ) Кол-во скачиваний: 2173
Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 899
Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1155
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 30.6.2009, 13:43


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



lavmen спасибо, нашел

Цитата(Osta @ 30.6.2009, 20:26) *

0X20BD ?

перевел из hex в dec получилось 8381, но в AFW_CreateInternalQueuedEvAux не работает
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 30.6.2009, 13:52


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(rock88 @ Сегодня, 15:43)

не работает
*


работает AFW_CreateInternalQueuedEvAux( 0x20BD, 0x65, 0, 0 );
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 30.6.2009, 14:47


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



сделал эльф, написал в нем AFW_CreateInternalQueuedEvAux( 0x20BD, 0x65, 0, 0 ), но меню не появляется, просто хело ворлд и все, а если например написать
AFW_CreateInternalQueuedEvAux( 988, 0x65, 0, 0 ), то открываются картинки, нажимаю выход, появляется хэло ворлд, то есть имено 0x20BD у меня на L9 неработает
Прикрепленный файл helloworld_gui.zip   ( 7.87 килобайт ) Кол-во скачиваний: 84
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 30.6.2009, 15:45


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(rock88 @ Сегодня, 16:47)

написал в нем
*


попробуй напиши не между кодом вывода предупреждения

...может на Л9 другой ивент ....
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
R.U.S.H.A.N.
сообщение 30.6.2009, 19:10


Интересующийся
**

Группа: Разработчики
Сообщений: 95
Регистрация: 13.4.2009
Из: home://russia/ufa/
Пользователь №: 197 674
Модель телефона: Е398, Milestone, XT912
Прошивка: DaR_v2.15

Рейтинг: 231



Цитата(rock88 @ 30.6.2009, 18:09) *

у меня при компиляции пишет что не хватает Shell.c, не подскажеш откуда его можно взять, а то в SDK нету

Вот:
Прикрепленный файл shell.zip   ( 4.36 килобайт ) Кол-во скачиваний: 82
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 2.7.2009, 15:58


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



напишите пожалуйста, как картинку из файла на канвасе нарисовать и желательно код, чтоб уже все готово было, а то в сдк нашел, а как написать, не дошло, попробовал попиксельно рисовать, но получил тормоза на полминуты.
слышал еще об ati, где об этом можно почитать подробнее и посмотреть примеры/исходники?
и еще маленький вопрос, как написать or (или) ? всем спасибо!

baat , ну тупанул, бывает...

Umka85, спасибо

Сообщение отредактировал rock88 - 3.7.2009, 6:50
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 2.7.2009, 16:30


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



rock88, почитать эту тему не пробывал? прежде чем писать?...
пару страниц назад есть код как из файла выводить картинку...
плюс в исходниках тюнс есть этот же код...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Umka85
сообщение 3.7.2009, 4:43


Гуру
******

Группа: Пользователи
Сообщений: 712
Регистрация: 13.7.2005
Из: Кузнецк
Пользователь №: 46 099
Модель телефона: Е398, L9, Z6, V6
Прошивка: разные
Победитель конкурса 2008

Рейтинг: 283



Цитата(Osta @ 30.6.2009, 17:26) *

0X20BD ?

на L9 другой ивент, точнее 0X20BE smile.gif




_________________________________
+Osta
капец у вас , а не телефон
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 3.7.2009, 14:45


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



Osta, +1
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 7.7.2009, 4:32


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



чет я непойму, почему когда делаю так

Код
WCHAR* str;
UINT64 x=0;

...

x=1.9;
u_ltou(x, str);
draw_text(str, 100, 100, cl_silver, cl_black);


на экран выведется не 1.9 а 1, может для вещественных чисел другая функция, в util.h ничего по этому поводу не нашел
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 7.7.2009, 6:09


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



rock88,
а чего ты еще ожидал присваивая вещественное число переменной целого типа ? есстественно отбрасывается дробная часть.
UINT64 - это целый беззнаковый тип размером 64 бит (8 байт)

с вещественными типами не всё так просто. их поддержку в либу не добавили.
могу посоветовать простой выход.

допустип тебе надо вывести результат деления a и b с точностью до десятых
Код

char * div2str( int a, int b, char * str  )
{
    int cell, frac;

    cell = a/b;
    frac = 10*a/b - 10*cell;
    sprintf( str, "%i.%01d", cell, frac);
    return str;
}

char сstr[10];

div2str(19,10,сstr);
draw_text( u_atou(cstr,str), 100, 100, cl_silver, cl_black);


надеюсь идея понятна.
п.с. код не проверял =)

Сообщение отредактировал tim apple - 7.7.2009, 6:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 7.7.2009, 12:19


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



tim apple, спасиб за совет, идею понял

а в EP2 появятся вещественные типы?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 7.7.2009, 13:12


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



rock88,
нужно то всего добавить в либу функции для работы с вещественными числами. и в еп1 это даже легче сделать - т.к. для ADS эти функции в прошивке родные.
в еп2 посложнее будет - придется через врапперы делать...

Сообщение отредактировал tim apple - 7.7.2009, 13:13
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 10.7.2009, 13:42


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



заметил одну нехорошую весчь, когда рисуеш на канве в цикле, например

Код

int i;
...    
for (i=1;i==10;i++){
    FillRect(i*10,i*10,i*10,i*10);
    }


то ничего ненарисуется, как же быть если скажем надо нарисовать что-то типо

Код

int i;    
...
for (i=1;i==10;i++){
    Draw(dot,dot_size,(x+i)*10,(y+i)*10);
    }

dot - это картинка
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 10.7.2009, 14:05


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



rock88,

чего ж он будет тебе рисовать если цикл не правильно построен laugh.gif
вот так надо

Код
for (i=1;i<10;i++)


Сообщение отредактировал lavmen - 10.7.2009, 14:06
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 10.7.2009, 14:13


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



оу, и правда, сделал так как надо и стало рисовать, спасибо lavmen

Сообщение отредактировал rock88 - 10.7.2009, 14:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 10.7.2009, 18:53


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



всем,
вы бы сначало прочитали хоть какую-то книжку по Си.
а то ведь тема превращается в "Учимся писать на Си"...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 10.7.2009, 19:20


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



tim apple, неа... скорее "а что такое си?"))) скажи спасибо что тут не пишут при другие более простые языки программикования biggrin.gif

[om2804]
Проще Си только Асм smile.gif


Сообщение отредактировал om2804 - 10.7.2009, 20:38
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 11.7.2009, 3:27


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



честно прочитал книгу Руководство полного идиота
по программированию (на языке Си)
Богатырев Андрей

и там написано
Цитата
В простейшем случае

for(i=1; i <= N; i++)
printf("i=%d\n", i);

i означает "номер повторения".

Такой цикл служит для повторения СХОЖИХ действий НЕСКОЛЬКО раз
с разным значением параметра.


и с i>=10 ничего не рисовалось...

добавлено позже:
я думал что цикл будет выполнятся до тех пор, пока i не будет >= 10, ошибся

Сообщение отредактировал rock88 - 11.7.2009, 6:36
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 11.7.2009, 8:01


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(baat @ Сегодня, 10:56)

тут уже не си...просто подумать надо...
*


%) как то сложно...

проще сказать, что for подразумевает, что в качестве второго параметра записано условие выполнения (условие, при истинности которого, цикл выполняется). В Си помоему вообще не используется условие прерывания (как в Pascal конструкция repeat-until)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 11.7.2009, 9:27


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



вот и именно, что я до этого писал только на Pascal'е и Delphi

и что такое

repeat
i++;
until i = 10;

прекрасно знаю, поэтому и допускаю подобные ошибки (потомучто еще не совсем освоился с Си)

Цитата
не отличает < от >
все я различаю, просто не знал что условие нужно писать противоположным образом, в отличии от repeat...until, то есть писать не когда цикл должен закончится, а выражение при котором он будет выполнятся

Сообщение отредактировал rock88 - 11.7.2009, 9:30
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 11.7.2009, 9:38


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



rock88, я бы тебе советовал не метод тыка использовать, а исходники [om2804] полистать, там куча примеров использования различных функций найти сможешь.... синтаксис изучить самое то, я сам с Delphi переходил...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 12.7.2009, 15:03


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



repeat - until нет, вместо него do - while , только он работает пока условие истинно, что впринципе логично исходя из простого while. Это не паскаль, в Си всё просто и логично

Код

while (условие) {
тело цикла
}

do {
тело цикла
} while (условие);
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 13.7.2009, 7:36


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Кстати, раз уж зашла речь о циклах. Если условие неможет быть выраженно выражением в одном месте, то тогда, чем например мучится с тегами условий выполнения натыкаными в разных местах тела цикла(я так делал когда был маленький), будет проще использовать break;
while(1)
{
if(условие1) break;
код1...
if(условие2) break;
код2...
if(условие3) break;
код3...
}
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 13.7.2009, 16:33


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



приведите пример генератора случайных чисел
на выходе число от 0-9
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 13.7.2009, 18:40


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



...

UINT8 x,y;

...

/* Обработчик входа в main state */
UINT32 MainStateEnter( EVENT_STACK_T *ev_st, void *app, ENTER_STATE_TYPE_T type )
{
APPLICATION_T *papp = (APPLICATION_T*) app;
SU_PORT_T port = papp->port;

if(type!=ENTER_STATE_ENTER) return RESULT_OK;

randomize();

...

}

void my_function()
{

...

x = random(10);
у = random(10);

...

}

Сообщение отредактировал baat - 13.7.2009, 18:42
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 14.7.2009, 13:47


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



есть предложение, давайте совместными усилиями сделаем эмулятор Nes
я начал разбирать исходники от сименса и там много похожего с нашими моторами, только вот пока еще не понял куда там загружается ром, там же вроде в java heap эльфы могут данные загружать, ну даже если и в elf heap его загрузить, то на ромы по 40кб думаю памяти хватит.
переделал исходники под моторы, осталось сделать
void RefreshLine(byte Y1,byte Y2)
void RefreshSprite(byte Y1,byte Y2)
void RefreshScreen(void)
и еще пару тройку функций/процедур
на экран там странно выводится, как я понял формируется картинка
const IMGHDR img = {(unsigned)128,(unsigned)176,8,0,(char*)screen};
а затем рисуется через
void DrwImg(IMGHDR *img, int x, int y, int *pen, int *brush)
void DrawScreen(void)

вообщем как думаете реально ли в данный момент переделать или всетаки нужно делать в другое время(когда выйдет EP2) и с нуля

прикрепляю то что у меня вышло, посмотрите кто может пожалуйста и скажите своё мнение
в эльфе ни одна процедура, нужная для эмуляции не вызывается, ребутов нет

если я говорю глупости, то удалите этот пост
Прикрепленный файл Nes.rar   ( 170.75 килобайт ) Кол-во скачиваний: 77
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 14.7.2009, 14:59


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



Цитата
вообщем как думаете реально ли в данный момент переделать или всетаки нужно делать в другое время(когда выйдет EP2) и с нуля

а разница под какой эльфпак?

не глупости но не думаю, что так легко отделаешься...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 14.7.2009, 15:05


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



Жгеш чувак. laugh.gif
У тебя моск не сломался когда это смотрел? На данный момент это глупость. Для игр надо кучу враперов писать, для графики, для звуков и прочей фигни. А у тебя голый код. Причем непонятного содержания. crazy.gif

Сообщение отредактировал lavmen - 14.7.2009, 15:05
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 14.7.2009, 15:09


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



Цитата
#define JOY_A 1
#define JOY_B 2
#define JOY_SELECT 4
#define JOY_START 8
#define JOY_UP 0x10
#define JOY_DOWN 0x20
#define JOY_LEFT 0x40
#define JOY_RIGHT 0x80

а ты уверен, что у мотора твоего такие коды клавишь? smile.gif

lavmen, чего? в принципе реально, но мне лично не охото к перелову ноги добавить перелом мозга))))

rock88, всё хорошо, но... ты половину кода упустил и часть перепутал)))

Сообщение отредактировал baat - 14.7.2009, 15:23
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 14.7.2009, 17:10


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



Цитата(lavmen @ 14.7.2009, 22:05) *

у тебя голый код непонятного содержания

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

baat, я коды клавиш просто так копировал, всеравно придется по другому делать, а про код, там что было можно с минимальными изминениями перенести, я перенес, а остальное нужно переделывать.
я боюсь что если из main функцию из nes9~ вызвать , ребут будет
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 14.7.2009, 19:21


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



rock88, лучше всего, конечно, сделать эльф на отдельном таске. Но во-первых, это ещё не обкатано, а во-вторых, я полагаю, что с сименса переделать будет проще на моторольный application. И ты который из эмуляторов смотришь?
А ещё вот здесь http://www.pocketnes.org/ можно посмотреть на эмулятор для GBA. Полностью его портировать под мотор будет тяжело, но я уверен что что-нибудь полезное из его исходников извлечь можно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 14.7.2009, 19:27


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



Цитата(Andy51 @ 14.7.2009, 22:21) *
А ещё вот здесь http://www.pocketnes.org/ можно посмотреть на эмулятор для GBA.

я их смотрел когда-то...ужесть... уверяю, что исходники rock88 из-под семёна проще будет переделать...

Ужесть - это твои исходники biggrin.gif А так мы заимеем как минимум полностью ассемблерное ядро процессора под ARM. A51

Сообщение отредактировал Andy51 - 14.7.2009, 20:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 15.7.2009, 4:07


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



Цитата(Andy51 @ 15.7.2009, 2:21) *

И ты который из эмуляторов смотришь?

NES 9x: The Portable Nintendo Entertainment System Emulator
=================================================================
1.0 Beta 20-FEB-2000
=================

Home page: www.emuhq.com/nes9x

порт этого эмуля на сименсы -Nes- от cbn'a
как утверждает сам автор, он тормозит, но у него хорошая совместимость с играми.

возможно что это не самый лучший выбор, но найти чтонибуть другое с открытым кодом и написанном на Си я не смог
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 15.7.2009, 6:37


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



rock88, удачи тебе с несом, и + за старания...

Сообщение отредактировал baat - 15.7.2009, 6:37
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 15.7.2009, 9:48


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



rock88, просто cbn портировал два эмулятора - один vnes с явы (быстрее), а второй - nes9x, который ты смотришь (больше совместимость). Но я могу сказать с большой степенью уверенности, что если взять ядро от PocketNES, выйдет лучше. Впрочем, основная нагрузка скорее всего будет на эмуляции PPU.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 15.7.2009, 10:40


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



baat, спасиб за +, но в одного мне этот эмуль не осилить, надеюсь на помощь эльфописцев/программистов smile.gif
Цитата(Andy51 @ 15.7.2009, 16:48) *

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

он же написан на ассемблере, как его куда там девать, я не понимаю
//
Техничекие характеристики Game Boy Advance:
CPU: 16 MHz 32 -bit RISC-CPU + 8-bit CISC-CPU
Memory: 32 KB WRAM + 96 KB VRAM + 256KB WRAM
Screen Size: 40.8 mm x 61.2 mm
Resolution: 240 x 160 pixels
Display Ability: 32 000 colours
Sound: Mono speakers, stereo headphones

я это к тому, что если брать ядро от PocketNES, думаю, придется менять адресацию памяти, но это не самое страшное из того, что предстоит сделать

ну и так, к слову
Техничекие характеристики Dendy NES / Famicon:
CPU: Motorola 6502 на 1.79MHz
Memory: 16 Kbit WRAM, 16 Kbit VRAM
Resolution:256x240
Display Ability: 52/16
Sound Processor

Сообщение отредактировал rock88 - 15.7.2009, 11:56
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Dex9999
сообщение 15.7.2009, 12:03


Интересующийся
**

Группа: Пользователи
Сообщений: 67
Регистрация: 18.6.2005
Пользователь №: 44 478
Модель телефона: V500
Прошивка: V500->V620->E1 (R373_G_0E.30.45R)

Рейтинг: 14



Каким образом обрабатывать одновременное нажатие нескольких клавиш?

Желания поделиться навыками работы с экраном через ATIxxxx до выхода EP2 не появилось ни у кого? DAL_WriteDisplayRegion() не устраивает своей скоростью да и аппаратного ресайза хочется smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 15.7.2009, 13:49


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Dex9999, попробуй DL_KeyKjavaGetKeyState. У меня - желания нет...

rock88, что ты понимаешь под адресацией? И вообще, а знаешь ли ты, что в GBA использовано то же самое ядро процессора, что и в Нептуне? Это значит, что ассемблерный код на 100% совместим. Другое дело, что процессор GBA работает с памятью в Little Endian, что может вызвать проблемы с кодом, ориентированным на именно такую систему (работа со структураи, например).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rock88
сообщение 15.7.2009, 14:22


Мастер
****

Группа: Пользователи
Сообщений: 209
Регистрация: 26.6.2009
Из: г. Омск
Пользователь №: 201 900
Модель телефона: L9 & EM30
Прошивка: 05R & 04.06R

Рейтинг: 584



Цитата(Andy51 @ 15.7.2009, 20:49) *

что ты понимаешь под адресацией?

в исходниках PocketNES в memory.s есть функции такова вида:

Код

;----------------------------------------------------------------------------
ram_W;ram write ($0000-$1FFF)
;----------------------------------------------------------------------------
    bic addy,addy,#0x1f800    ;only 0x07FF is RAM
    strb r0,[cpu_zpage,addy]
    mov pc,lr
;----------------------------------------------------------------------------
sram_R;sram read ($6000-$7FFF)
;----------------------------------------------------------------------------
    sub r1,addy,#0x5800
    ldrb r0,[cpu_zpage,r1]
    mov pc,lr

то есть они считывают/записывают определенные данные из определенных блоков памяти и я сомневаюсь что адреса у этих блоков у GBA и у моторов одинаковы, хотя может быть я ошибаюсь и с этим не возникнет никаких проблем.

а каким образом "прикручивать" файлы *.s?
написал #include "6502.s" и получил море ошибок, или с ними нужно для начала что-то сделать?

там еще используются такие выражения
Код
IMPORT pcmctrl
EXPORT CPU_reset

компилятором тоже плохо воспринимаются
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Учимся писать эльфов вместе, Обсуждение процесса кодинга · Эльфы, их разработка и портирование · Forum
 

16 страниц V « < 8 9 10 11 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 4.8.2025, 14:15

Форум живёт: