New EZ-Flash Air firmware: testing game deletion and Mode B

EZ-Flash Air flash cartridge for Game Boy Advance

Today I finally got around to testing the new EZ-Flash Air firmware.

On paper, the devs promised a welcome improvement: you can now delete any game without having to remove everything after it one by one. I had high hopes, but in practice things turned out to be a little weird.

First, of course, I had to write some games to NOR — in this exact order: The Lost Vikings, Rayman 3, Metroid Fusion, and Apotris.

After checking that all four games worked, I tried deleting Rayman 3.

And, surprisingly enough, it worked exactly as it should. Rayman disappeared from the list, while the other three games still launched normally.

Then I opened the NOR memory map — a new feature available by pressing START.

There was now an 8 MB hole in NOR (see screenshot 1). In other words, the space where the game had been stored was simply freed; nothing else was shifted around.

EZ-Flash Air NOR memory map after deleting Rayman 3

I immediately wrote Rayman back, and it landed in exactly the same spot (see screenshot 2). Right down to the byte.

Rayman 3 written back to the freed NOR memory area

So the developers did deliver what they promised: you really can delete any game regardless of the order in which the games were written to NOR.

There is one catch they did not mention: NOR memory is still NOR memory. If you delete the second and fourth games and each is 8 MB, you will have 16 MB free in total, but not one contiguous 16 MB block. You will have two separate 8 MB slots.

Next it was time to test Mode B.

The Lost Vikings, which was stored at the very beginning of NOR, launched normally. I then deleted it (see screenshot 3).

Empty first NOR memory block after deleting The Lost Vikings

Rayman 3 became the first game in the flash cartridge menu, but Mode B stopped working.

The Game Boy Advance behaves as if no cartridge is inserted at all, while Analogue Pocket shows a No header error.

It turns out Mode B does not care about the order of games in the menu. It reads the ROM header directly from the beginning of NOR memory.

So I deleted Rayman 3 as well (see screenshot 4).

Two adjacent free NOR memory areas merged into a 12 MB block

The two adjacent holes merged into a single 12 MB block. I was pretty sure where Rayman 3 would be written, but checked anyway. After writing it again, Rayman occupied the first 8 MB of NOR (see screenshot 5) — and immediately worked in Mode B.

Rayman 3 written back to the beginning of NOR memory

It immediately reminded me of the old days of disk defragmentation :)

Overall, the new firmware is definitely an improvement. And if you understand how the memory works, managing it should not cause any major problems. Some owners later reported problems; the rollback procedure is covered in a separate post.

For more on the EZ-Flash Air, see my full review of the cartridge.