Skip to main content
Share Your Experience: Take the 2024 Developer Survey
31 votes
Accepted

What MIDI sound font does mGBA use?

It doesn’t. The sound hardware on the Game Boy Advance is relatively primitive. Inherited from the original Game Boy, there is a pair of square-wave generators, a white noise generator, and a 4-bit ...
user3840170's user avatar
  • 23.1k
24 votes
Accepted

How did the Game Boy Advance stretch Game Boy games to widescreen?

Firstly, the stretching isn't done in the vertical direction: Game Boy (and Color) games only used 144 rows of the 160 available on Advance screen, so there'd be black "letterbox" bars at the top and ...
Kaz's user avatar
  • 8,146
23 votes
Accepted

What causes the glitchy sound when a GBA cartridge is removed?

One does not simply make a hot-swappable cartridge connector. For an electrical connector to handle hot-swapping well, it has to be specifically designed with that in mind. In particular, the ...
user3840170's user avatar
  • 23.1k
22 votes
Accepted

How did Legend of Zelda: Oracle of Seasons/Ages know it was running on a Game Boy Advance?

Probably the easiest way to discover whether a cartridge was started on a GameBoy Advance is to look at the initial register state. According to nitro2k01 at gbdev.gg8.se: cgb_agb_boot.bin - ...
user3840170's user avatar
  • 23.1k
21 votes

Role of the Z80 co-processor in GBA games

None of the GameBoy series machine has a Z80, but instead a Sharp LR35902, which runs a "GBZ80" instruction set, which is if I'm not mistaking similar but incompatible with the genuine Z80, as it ...
Bregalad's user avatar
  • 1,856
20 votes
Accepted

What did the Supercard "patch" program actually do to GBA and NDS ROMs to make them playable?

The GBA's memory controller can be configured using WAITCNT, an MMIO port at 0x04000204, to use slow or fast timing when accessing the Game Pak slot. The BIOS sets slow timing at startup, in case ...
Damian Yerrick's user avatar
19 votes

What causes the glitchy sound when a GBA cartridge is removed?

This game seems to be playing PCM audio from memory buffer with DMA. Normally the CPU handles playback of DMA buffers and renders new audio into buffers for playback. When you unplug the game ...
Justme's user avatar
  • 32.8k
18 votes

How did the Rush 3D engine in Crazy Taxi: Catch a Ride work?

I don't have knowledge of the Rush 3D engine itself, but I used to work for a company that made software graphics engines, so I can speak in general terms about how they're likely to work. The GBA has ...
Chromatix's user avatar
  • 16.8k
16 votes
Accepted

Role of the Z80 co-processor in GBA games

The Wikipedia comment is misleading. The Game Boy CPU has several components in one chip, including the Z80-alike CPU core and a sound generator among others. These components may all be in the same ...
raisin-wrangler's user avatar
15 votes
Accepted

Is it possible to run Linux on a GBA SP?

Not Linux, but I know you can run UNIX 5 with a tool called gbaunix. You can read about the process in Amit Singh's paper on kernelthread and you can browse through the source on my unofficial fork ...
JAL's user avatar
  • 9,520
14 votes
Accepted

Can I use a volume wheel with different specs for the GBA?

The VOL pin in the schematic is surely a voltage signal. Based on the schematic, the original volume wheel delivers (30K+4.7K)/(30K+4.7K+470) = 98.7% of Vcc at its maximum setting (not sure whether ...
Quitting Due To Antisemitism's user avatar
11 votes

What is the protocol for bootstrapping a Game Boy Advance over a link cable?

According to the documentation for the no$ emulators (https://www.problemkaputt.de/gbatek.htm), the core of the GBA's multiboot functionality revolves a BIOS syscall, SWI 0x25. The GBA's boot firmware ...
TheHans255's user avatar
11 votes
Accepted

Did GBA execute code directly from ROM, or load it into memory?

It depends on how the game (or the program, if not running a game) is programmed. It does not depend on the system, but on where the memory where program is executed is physically located. If a ...
Bregalad's user avatar
  • 1,856
11 votes

Is it possible to run Linux on a GBA SP?

Linux itself will not run on the GBA SP. The reason for this is that the CPUs (one ARM7TDMI and one Z80) do not have a way to protect and manage memory. The component to do that is the MMU, which ...
Omar and Lorraine's user avatar
11 votes
Accepted

Is there an obstruction to emulating Gameboy link cable over Wi-Fi?

Cariad Keigher's Adventures with an 11,000 kilometre-long Game Boy Advance link goes into detail on how timing-sensitive the protocol is to establish context for a story about emulating both sides of ...
ssokolow's user avatar
  • 7,065
9 votes
Accepted

Is it possible to alter the Game Boy Advance system ROM?

Writing to ROMs of shipping hardware (as opposed to dev boards/and cartridges) is not possible. Mask ROMs are ROM chips that are one-time (factory) programmable and that are not Flash storage. If any ...
Chris Warrick's user avatar
7 votes

Role of the Z80 co-processor in GBA games

I developed few game on the GBA back in the days and I remember that I looked into using the Z80 but found nothing in the official documentation. Even if possible, it is an unsupported feature and ...
Valentino Miazzo's user avatar
6 votes

Is it possible to run Linux on a GBA SP?

Thanks to this Slashdot article, I also found a guide from 2004 with instructions on how to port Microcontroller Linux (uClinux) to the GBA. The main site is long dead, but I found a mirror via the ...
JAL's user avatar
  • 9,520
5 votes

What causes the glitchy sound when a GBA cartridge is removed?

The reason that particular sound is generated has already been explained well by other answers, so I'll try to expand on the specific reasons for the second part of your question. How come Nintendo ...
forest's user avatar
  • 2,029
5 votes

Is there way to save the save state?

I would say no. I've never heard of anything like that ever. That would require dumping all of the memory of the actual Gameboy and the state of CPU, and then reading that information on startup. ...
Thraka's user avatar
  • 2,913
3 votes

What did the Supercard "patch" program actually do to GBA and NDS ROMs to make them playable?

I don't know if this applies to this card in particular, but in all likelihood, one of the things the patch program does is to patch in custom save game functionality so that the ROMs can write to the ...
Muzer's user avatar
  • 1,782
3 votes
Accepted

Is the volume wheel value wrong on the GBA schematics?

I opened up one of my Game Boy Advances (AGB-001) and took some measurements. When measuring the potentiometer between pins 1 and 3 in-circuit, the initial resistance I measured was circa 7k Ohm, ...
Kaz's user avatar
  • 8,146
2 votes

Is the volume wheel value wrong on the GBA schematics?

It is unlikely that the schematics can be said simply to be wrong. You may have the schematics for a different version or revision of the product which may or not match the product you have or someone ...
Justme's user avatar
  • 32.8k
2 votes

Is there an obstruction to emulating Gameboy link cable over Wi-Fi?

I have carefully read Retroarch NES/SNES/etc netplay spec. Unfortunately, it is not what you thinking about. To be exact, they not exchange state between two NES/SNES machines, they emulate ONE ...
Serge Sergeev's user avatar
2 votes
Accepted

GBA reading 16-bit values (or instructions) from 32-bit bus

The GBA has various memory sections (e.g. IWRAM, EWRAM, ROM, etc), each with a bus width of either 16 bits or 32 bits. Of these only IWRAM (Internal Work RAM) is 32 bit wide. It's located on-chip, ...
Raffzahn's user avatar
  • 224k
1 vote

Did the RTC in certain cartridges get power over the GBA bus?

To answer this with absolute certainty, you'd have to examine each cartridge on its own, particularly those that weren't made by Nintendo. I'm not sure anyone has ever done that, but people have ...
Michael Graf's user avatar
  • 10.1k

Only top scored, non community-wiki answers of a minimum length are eligible