Новая прошивка EZ-Flash Air: свободное удаление игр и Mode B

Флеш-картридж EZ-Flash Air для Game Boy Advance

Итак, сегодня как раз наступило время проверить новую прошивку EZ-Flash Air.

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

Сначала, конечно, нужно было записать игры — именно в таком порядке: Lost Vikings, Rayman 3, Metroid Fusion и Apotris.

После проверки, что все игры работают, я попробовал удалить Rayman 3.

И, к удивлению, всё сработало как надо. Rayman исчез из списка, а остальные три игры продолжили запускаться.

Потом открыл карту NOR-памяти — это новая функция, доступная при нажатии кнопки START.

Оказалось, что в NOR-памяти появилась дыра ровно на 8 МБ (см. скрин 1). То есть место, куда была записана игра, просто освободилось, но никаких «смещений» не произошло.

Карта NOR-памяти EZ-Flash Air после удаления Rayman 3

Я сразу попробовал записать Rayman обратно, и он лёг в то же самое место (см. скрин 2). Прям тютелька в тютельку.

Rayman 3 повторно записан в освободившуюся область NOR-памяти

В целом разработчики не обманули — теперь действительно можно удалять любые игры независимо от порядка их записи в память.

Правда, они умолчали о другом: NOR-память всё равно остаётся NOR-памятью. Скажем, если удалить вторую и четвёртую игры по 8 МБ каждая, суммарно освободится 16 МБ, но одного участка такого размера не появится. Вместо него останутся два отдельных слота по 8 МБ.

Дальше пришло время проверить Mode B.

Lost Vikings, находившаяся в самом начале NOR, нормально запустилась. После этого я удалил игру (см. скрин 3).

Пустой первый блок NOR-памяти после удаления Lost Vikings

В меню флеш-картриджа Rayman 3 стал первой игрой, а вот в Mode B всё сломалось.

Game Boy Advance ведёт себя так, будто картридж вообще не вставлен, а Analogue Pocket показывает ошибку No header.

Оказалось, что Mode B плевать на порядок игр в меню. Он читает заголовок ROM непосредственно из начала NOR-памяти.

Тогда я удалил и Rayman 3 (см. скрин 4).

Две соседние свободные области NOR-памяти объединились в 12 МБ

Две соседние дыры объединились в один участок на 12 МБ. Я в целом не сомневался, куда именно запишется Rayman 3, но решил перепроверить. После повторной записи Rayman занял первые 8 МБ NOR (см. скрин 5) — и сразу запустился в Mode B.

Rayman 3 повторно записан в начало NOR-памяти

Я сразу вспомнил старые времена и процедуру дефрагментации диска :)

По итогу могу сказать, что новая прошивка — это однозначное улучшение. А если вы понимаете, как работает память, то особых проблем с её «менеджментом» у вас не возникнет. Позже у части владельцев появились проблемы; способ отката разобран в отдельной заметке.

Подробности об EZ-Flash Air — в большом обзоре картриджа.