where came the info to guide which name table mirroring will be used? on a cartrige without mappers..
(iNes Header... ?)
if the bit0 cames 0 I'll use the horizontal else I'll use the vertical... and when the four-screen cames with 1 I'll use the 4 mirroring... but when I'll use the single mirroring?
I'm creating just translaters....
For example for Horizontal...
(iNes Header... ?)
Quote:
00h File ID ('NES',1Ah)
04h Number of 16K PRG-ROM pages
05h Number of 8K CHR-ROM pages (00h=None / VRAM)
06h Cartridge Type LSB
Bit7-4 Mapper Number (lower 4bits)
Bit3 1=Four-screen VRAM layout
Bit2 1=512-byte trainer/patch at 7000h-71FFh
Bit1 1=Battery-backed
Bit0 0=Horizontal mirroring, 1=Vertical mirroring
04h Number of 16K PRG-ROM pages
05h Number of 8K CHR-ROM pages (00h=None / VRAM)
06h Cartridge Type LSB
Bit7-4 Mapper Number (lower 4bits)
Bit3 1=Four-screen VRAM layout
Bit2 1=512-byte trainer/patch at 7000h-71FFh
Bit1 1=Battery-backed
Bit0 0=Horizontal mirroring, 1=Vertical mirroring
if the bit0 cames 0 I'll use the horizontal else I'll use the vertical... and when the four-screen cames with 1 I'll use the 4 mirroring... but when I'll use the single mirroring?
I'm creating just translaters....
For example for Horizontal...
Code:
public final static int translateAddressHorizontal2400(final int address) {
return address & 0x23FF;
}
public final static int translateAddressHorizontal2C00(final int address) {
return address & 0x27FF;
}
public final static int translateAddressHorizontal2800(final int address) {
return address - 0x400;
}
return address & 0x23FF;
}
public final static int translateAddressHorizontal2C00(final int address) {
return address & 0x27FF;
}
public final static int translateAddressHorizontal2800(final int address) {
return address - 0x400;
}