« Архитектура Game Boy Advance (index)

Архитектура Game Boy Advance

Chapter 7: Игры


Содержание

  1. Доступ к данным картриджа
  2. Пространство оперативной памяти картриджа
  3. Аксессуары

Игры распространяются на новом проприетарном формате картриджей, он также называется Game Pak, но имеет меньший размер.

Image
Новый дизайн Game Pak для игр под GBA .

Программы для GBA чаще всего написаны на языке C с критичными по времени выполнения секциями на языке ассемблера (ARM и Thumb), чтобы сэкономить циклы. Nintendo предоставила SDK с библиотеками и компиляторами.

Программирование для GBA имело много общих методологий с Super Nintendo, но также унаследовало все преимущества разработки игр в начале 2000-х годов: стандартизированные языки высокого уровня, надёжные компиляторы, более быстрые RISC-процессоры, не проприетарные решения для разработки, сравнительно лучшая документация и... Доступ к Интернету!

Доступ к данным картриджа

Хотя ARM7 имеет 32-битную адресную шину, к картриджу подключено только 24 адресных линии.

Это значит, что в теории можно адресовать только 16 МБ данных с картриджа без использования маппера. Однако карта памяти гласит, что можно адресовать до 32 МБ ПЗУ картриджа. Как такое возможно? Дело в том, что Gamepak использует 25-битные адреса (что объясняет 32 мегабайтный блок), но младший бит адреса всегда равен нулю. Таким образом, только 24 бита имеют значение. Вот так работает адресация Game Pak.

Image
Представление модели адресации Game Pak. Обратите внимание, что последний бит 25-битного адреса (под названием "A0") всегда равен нулю. Должен также отметить, что на самом деле порты адреса и данных тоже объединены/мультиплексированы.

Означает ли это, что данные, расположенные по нечетным адресам (с 1 в наименьшем значащем бите), будут недоступны? Нет, потому что шина данных 16-битная: При каждой передаче CPU/DMA получает расположенный байт плюс следующий, что позволяет читать как четные, так и нечетные адреса. Как видите, это еще одно произведение инженерной мысли, в котором полностью используются возможности аппаратного обеспечения при одновременном снижении затрат.

Любопытно, что 26-битные процессоры ARM также пользовались такой техникой. Они имели 24-битный программный счётчик, так как биты должны были быть кратным 8 (т.е. "выравненными по слову"), чтобы последние два бита 26-битного адреса всегда равнялись нулю. Однако так как эти процессоры считывают по 32 бита (первый байт и три последующих), можно получить доступ ко всему 26-битному адресному пространству.

Пространство оперативной памяти картриджа

Для хранения сохранений Game Pak-и могут включать :

Аксессуары

Прежний разъём Game Boy Link обеспечивает возможность многопользовательской игры или получения дополнительного контента. Хотя, по какой-то причине они убрали ИК датчик (наверное, он был недостаточно надёжным для передачи больших объёмов).

Image
Кабель соединения GameCube с Game Boy Advance , который подключается к порту контроллера GameCube (обрабатывается последовательным интерфейсом) для передачи данных.

Кроме того, в BIOS GBA встроена специальная функция, известная как Multi-boot: другая консоль (GBA либо GameCube) может отправить работающую игру в EWRAM получателя, а затем последний может загрузиться с неё (вместо Game Pak).


Previous: 6. Операционная система

Next: 8. Борьба с пиратством и хоумбрю


Rodrigo Copetti © 2026 RSS Feed

Переключиться на современную версию

Домашняя страница · Статьи · Поддержка · Об авторе · О сайте