|
Здравствуйте Гость ( Вход | Регистрация ) Доступ из РоссииДля сохранения достпа из России к сайту и форуму GBX
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| olegan |
Четверг, 30 октября 2003, 16:48
Отправлено
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
вот после пары дней вникания в структуру ГБА и его протца возникло несколько вопросов
на которые не смог найти ответ (мануалей мало 1) в каком режиме всетаки работает быстрее ARM или Thumb ? я так скромно предположил что в ARM, но в одном источнике увидел что в Thumb 2) из описалова ясно что при DMA трансфере проц замирает до окончания трансфера вопрос как посчитать скока тактов уходит на DMA трансфер? и не проще ли самому сделать переброску ? (вдруг оно быстрее получится 3)нашел я goldroad asm, возник вопрос делаю mov r0,0x08000000 все нормально компилится mov r0,0x087ffc00 пишет cannot form constant by rotation где собака порылась? нада исполнить танец с бубном? 4) как сделать длиииииный переход? типа jmp @textarea 0x08000000 b 0x0 пишет branch out of range как ему обьяснить что нада не short jmp ? --- теперь про железо вопрос есть там External Work RAM: Start: 0x02000000 End: 0x0203FFFF Size: 256kb Port Size: 16 bit Mirrors: Every 0x40000 bytes from 0x02000000 to 0x02FFFFFF что имеется ввиду под: Mirrors: Every 0x40000 bytes from 0x02000000 to 0x02FFFFFF --- а кстати у вас тут FAQ есть? может я уже глубоко в оффтопике? -------------------- |
![]() ![]() ![]() |
Ответов(1 - 19)
| PokePerevod |
Четверг, 30 октября 2003, 17:56
Отправлено
#2
|
|
Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 256 Регистрация: 05 мая. 2003 Пользователь №: 2 021 ![]() ![]() |
|
| KoCMoHaBT |
Четверг, 30 октября 2003, 19:06
Отправлено
#3
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 200 Регистрация: 29 дек. 2002 Пользователь №: 301 ![]() ![]() |
Архитектура ARM такова, что команда занимает РОВНО 32 бита. При этом туда входят все операнды. Соответственно:
1. Интеловские навыки не подходят 2. Для того, чтобы положить константу в регистр применяется такая штука как баррел шифт. Если это неприемлемо, то сформируй ее в памяти. 3. Переход есть просто загрузка в счетчик команд адреса перехода. Соответственно тот-же гемор, что и для константы. 4. Писать надо на С PS: Подробнее писать лень. |
| olegan |
Четверг, 30 октября 2003, 23:39
Отправлено
#4
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
ну все вроде со всем разобрался
кстати архитектура чемто на амижную похожа промапленные в память системные регистры и все такое KoCMoHaBT а на асме мне просто нравится вот интересно это ldr r0,[r0,#0x8] ldr r0,=3007ffc это так нада или неоптимизированный С не сам придумал в одном роме есть такое -------------------- |
| olegan |
Четверг, 30 октября 2003, 23:40
Отправлено
#5
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
-------------------- |
| olegan |
Четверг, 30 октября 2003, 23:41
Отправлено
#6
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
-------------------- |
| olegan |
Четверг, 30 октября 2003, 23:41
Отправлено
#7
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
-------------------- |
| olegan |
Четверг, 30 октября 2003, 23:42
Отправлено
#8
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
-------------------- |
| Carumba |
Четверг, 30 октября 2003, 23:43
Отправлено
#9
|
![]() Hagaren ![]() Группа: Профи Сообщений: 2 092 Регистрация: 22 фев. 2003 Из: Russia, Moscow Пользователь №: 1 224 ![]() ![]() |
-------------------- ![]() ![]() |
| olegan |
Пятница, 31 октября 2003, 01:55
Отправлено
#10
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
Carumba
не будем лохматить бабушку яж не виноват что конект такой (точнее сервант тормозит) вот и получилось несколько раз кнопочка запала -------------------- |
| MoonLight |
Пятница, 31 октября 2003, 09:15
Отправлено
#11
|
![]() Developer ![]() Группа: Профи Сообщений: 94 Регистрация: 02 дек. 2002 Из: Воронеж Пользователь №: 28 ![]() ![]() |
QUOTE (olegan @ Четверг, 30 Октября 2003, 23:39) ну все вроде со всем разобрался кстати архитектура чемто на амижную похожа промапленные в память системные регистры и все такое KoCMoHaBT а на асме мне просто нравится вот интересно это ldr r0,[r0,#0x8] ldr r0,=3007ffc это так нада или неоптимизированный С не сам придумал в одном роме есть такое Ну я тоже думал что на асме круче будет. Теперь си,си++ и только в редких моментах асм. зы. на чистом asm'е пишут только эмули. А ещё балуются на асме точки выводят. ззы. А ты уверен что полностью в архитектуре разобрался мне месяц понадобилось что-бы въехать во все фишки GBA и полностью разобраться с 2д процом. зззы. Если хочется просто побаловатся то GBA это неудачный выбор консоли. Советую для боловства GP32. На нём баловатся интереснее. |
| KoCMoHaBT |
Пятница, 31 октября 2003, 10:20
Отправлено
#12
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 200 Регистрация: 29 дек. 2002 Пользователь №: 301 ![]() ![]() |
QUOTE ну все вроде со всем разобрался кстати архитектура чемто на амижную похожа промапленные в память системные регистры и все такое Не похожа. Промапленные в память системные регистры везде, кроме x86, ибо это проще. Очень многое определяется процессором, например все команды arm условные, любая операция с регистрами массовая. Баррел шифт, айс и прочие навороты. Тамб, опять-же, возможность саппорта big и little endian. |
| olegan |
Пятница, 31 октября 2003, 16:06
Отправлено
#13
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
KoCMoHaBT
ну не прям все похоже на Амыгу, но местами есть REG_VCOUNT там тоже нечто подобное есть благодаря чему видеорежимы можно находу переключать пол экрана 320*240 и пол экрана 512*384 к примеру ну и еще пару штук всяких интересно а на амиге есть ГБА эмуль? вроде тока ГБ видел а то стоит без дела a4000 на столе и скучает -------------------- |
| MaXXik |
Пятница, 31 октября 2003, 16:14
Отправлено
#14
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
2Kosmonawt Если меня не подводит память, то комманды в процессоре GBA в режиме ARM действительно 32 бита, но в режиме THUMB 16 бит.
Доступ к IRAM ( внутренней ) осуществляется по 32 битной шине, а к EVRAM по 16 битной. Соответственно в ERAM 32 битный код работаеn медленней. |
| MaXXik |
Пятница, 31 октября 2003, 16:17
Отправлено
#15
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
2MoonLight Кстати насчёт асма ты не прав.
Дядька из Apex Disign который портирует на GBA Payback , явно 90 % движка писал на голом асме |
| MaXXik |
Пятница, 31 октября 2003, 16:18
Отправлено
#16
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
|
| MoonLight |
Пятница, 31 октября 2003, 17:41
Отправлено
#17
|
![]() Developer ![]() Группа: Профи Сообщений: 94 Регистрация: 02 дек. 2002 Из: Воронеж Пользователь №: 28 ![]() ![]() |
QUOTE (MaXXik @ Пятница, 31 Октября 2003, 16:17) 2MoonLight Кстати насчёт асма ты не прав. Дядька из Apex Disign который портирует на GBA Payback , явно 90 % движка писал на голом асме Про движок я не спорю. Но давай теперь прикинем какой процент кода состовляет код движка от самой игры. Там ведь ещё AI, интерфейс и кучу других веще писать надо. А они явно на асме не пишутся. |
| olegan |
Пятница, 31 октября 2003, 18:41
Отправлено
#18
|
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Регистрация: 27 окт. 2003 Пользователь №: 5 820 ![]() ![]() |
MoonLight
ну все равно в играх же интерфейсы у всех разные (если это можно назвать интерфейсом, типа счетчик очков времени или жизней ну или пару тройку экранов с надписями и показателями уровней героя а-ля RPG) я думаю что в любом случае важна оптимизация, гигагерцами не распологаем да и размер кода тоже играет некую роль -------------------- |
| MaXXik |
Пятница, 31 октября 2003, 22:16
Отправлено
#19
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
2olegan Вообще то, я на твоём месте не начинал программирование на GBA с чистого асма. Начинай с СИ, но компилятор воьзми не GCC, а Arm Developer Suit 1.1 , во второй версии защита - тормоз встроена.
Так вот код , который генерирует этот компилятор мало того, что быстрее чем GCC, так он ещё и быстрее того, что ты сможешь написать сразу на асме |
| MaXXik |
Пятница, 31 октября 2003, 22:20
Отправлено
#20
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
А вообще , уважаемые товарищи девелоперы, не могли бы вы поделиться инструментарием для редактирования графики, тайловых карт . Желательно коммерческие программы, поделки энтузиастов любителей мы можем и сами из сети вытащить.
Ну или хотя бы советом , что лучше, функциональнее и удобней. |
![]() ![]() |
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
| Упрощённая версия | Сейчас: Ср., 28 окт. 2026, 07:29 |

Четверг, 30 октября 2003, 16:48


















