Page 1 of 1

B0/C0 Tables

Posted: June 2nd, 2020, 2:44 pm
by jaguar
I'm doing some reverse engineering, try to figure out how a game works and I've hit a feature that isn't very well documented (at least that I can see).

There are two system calls "GetB0Table" and "GetC0Table". However, I can't figure out what these tables actually relate to. The functions I see these used in seem to relate to memory cards, but I can't figure out their exact purpose.

The return value seems to be of type (u)int**.

Is anyone aware of what is stored in these tables?

Re: B0/C0 Tables

Posted: December 24th, 2020, 8:37 am
by solomonu
This is the relevant code in the PCSXR emulator, but I'm not really sure what it represents or where most the table is initialized: see lines 2240 and 2672 in https://github.com/iCatButler/pcsxr/blo ... /psxbios.c. Lines 2710 and 2713 are also suspicious, but I'm not completely sure what their role is. FWIW, they both encode the instruction "SWC3 0" (according to https://www.cs.cmu.edu/afs/cs/academic/ ... ps-isa.pdf).

If you figure anything else out about this, please let me know.

Re: B0/C0 Tables

Posted: December 24th, 2020, 8:43 am
by solomonu
FWIW, I also noticed that there's always a psxBios_FlushCache call soon after.