Hacker News new | ask | show | jobs
by ungawatkt 1000 days ago
> includes an actual, physical, hardware Gameboy Advance CPU

That's an old trick (though no less cool). The GBA had a GBC cpu in it for backwards compatibility, and it used a physical switch to change modes, toggled by the cartridge itself. And iirc the PS2 reused the PS1 cpu as a component on the board for I/O, so it was available for backwards compatibility as well (though with emulation help for other components).

3 comments

GBA switching to GBC mode turns out to be combination of both hardware and software. There's a physical button that is read by the BIOS to see if it wants to perform a mode switch to GBC mode, then the BIOS triggers the mode change.

But that button is also responsible for making the cartridge bus actually function with GB/GBC cartridges. If you switch into GBC mode without the button being pressed, nothing can be read from the cartridge. (Normally the register bit that switches to GBC mode is locked out and only the BIOS can write it, but if you are executing code in the BIOS, a timed DMA transfer can perform that write.)

> And iirc the PS2 reused the PS1 cpu as a component on the board for I/O

Which has some interesting implications for softmodded systems. I play my PS2 games via Ethernet off a Raspberry Pi Samba server—it’s incredible to me that it’s possible and works so well, but because it’s using the PS1 CPU for I/O you can’t use it for PS1 games.

Ditto the Genesis, which used a Z80 for audio and Master System backwards compat