mirror of https://github.com/bsnes-emu/bsnes.git
Okay maybe not all of them, but close to all of them ...
This commit is contained in:
parent
fe81130f54
commit
0e56b27228
|
@ -28,7 +28,7 @@ auto PPU::readVRAM() -> uint16 {
|
|||
}
|
||||
|
||||
template<bool Byte>
|
||||
auto PPU::writeVRAM(uint8_t data) -> void {
|
||||
auto PPU::writeVRAM(uint8 data) -> void {
|
||||
if(!io.displayDisable && cpu.vcounter() < vdisp()) return;
|
||||
Line::flush();
|
||||
auto address = vramAddress();
|
||||
|
@ -60,7 +60,7 @@ auto PPU::readOAM(uint10 address) -> uint8 {
|
|||
return readObject(address);
|
||||
}
|
||||
|
||||
auto PPU::writeOAM(uint10 address, uint8_t data) -> void {
|
||||
auto PPU::writeOAM(uint10 address, uint8 data) -> void {
|
||||
Line::flush();
|
||||
//0x0218: Uniracers (2-player mode) hack; requires cycle timing for latch.oamAddress to be correct
|
||||
if(!io.displayDisable && cpu.vcounter() < vdisp()) address = 0x0218; //latch.oamAddress;
|
||||
|
@ -68,7 +68,7 @@ auto PPU::writeOAM(uint10 address, uint8_t data) -> void {
|
|||
}
|
||||
|
||||
template<bool Byte>
|
||||
auto PPU::readCGRAM(uint8_t address) -> uint8 {
|
||||
auto PPU::readCGRAM(uint8 address) -> uint8 {
|
||||
if(!io.displayDisable
|
||||
&& cpu.vcounter() > 0 && cpu.vcounter() < vdisp()
|
||||
&& cpu.hcounter() >= 88 && cpu.hcounter() < 1096
|
||||
|
@ -81,7 +81,7 @@ auto PPU::readCGRAM(uint8_t address) -> uint8 {
|
|||
}
|
||||
}
|
||||
|
||||
auto PPU::writeCGRAM(uint8_t address, uint15 data) -> void {
|
||||
auto PPU::writeCGRAM(uint8 address, uint15 data) -> void {
|
||||
if(!io.displayDisable
|
||||
&& cpu.vcounter() > 0 && cpu.vcounter() < vdisp()
|
||||
&& cpu.hcounter() >= 88 && cpu.hcounter() < 1096
|
||||
|
@ -103,17 +103,17 @@ auto PPU::readIO(uint address, uint8 data) -> uint8 {
|
|||
}
|
||||
|
||||
case 0x2134: { //MPYL
|
||||
uint result = (int16_t)io.mode7.a * (int8_t)(io.mode7.b >> 8);
|
||||
uint result = (int16)io.mode7.a * (int8)(io.mode7.b >> 8);
|
||||
return latch.ppu1.mdr = result >> 0;
|
||||
}
|
||||
|
||||
case 0x2135: { //MPYM
|
||||
uint result = (int16_t)io.mode7.a * (int8_t)(io.mode7.b >> 8);
|
||||
uint result = (int16)io.mode7.a * (int8)(io.mode7.b >> 8);
|
||||
return latch.ppu1.mdr = result >> 8;
|
||||
}
|
||||
|
||||
case 0x2136: { //MPYH
|
||||
uint result = (int16_t)io.mode7.a * (int8_t)(io.mode7.b >> 8);
|
||||
uint result = (int16)io.mode7.a * (int8)(io.mode7.b >> 8);
|
||||
return latch.ppu1.mdr = result >> 16;
|
||||
}
|
||||
|
||||
|
|
|
@ -244,12 +244,12 @@ public:
|
|||
auto latchCounters() -> void;
|
||||
alwaysinline auto vramAddress() const -> uint;
|
||||
alwaysinline auto readVRAM() -> uint16;
|
||||
template<bool Byte> alwaysinline auto writeVRAM(uint8_t data) -> void;
|
||||
template<bool Byte> alwaysinline auto writeVRAM(uint8 data) -> void;
|
||||
alwaysinline auto updateTiledata(uint address) -> void;
|
||||
alwaysinline auto readOAM(uint10 address) -> uint8;
|
||||
alwaysinline auto writeOAM(uint10 address, uint8_t data) -> void;
|
||||
template<bool Byte> alwaysinline auto readCGRAM(uint8_t address) -> uint8;
|
||||
alwaysinline auto writeCGRAM(uint8_t address, uint15 data) -> void;
|
||||
alwaysinline auto writeOAM(uint10 address, uint8 data) -> void;
|
||||
template<bool Byte> alwaysinline auto readCGRAM(uint8 address) -> uint8;
|
||||
alwaysinline auto writeCGRAM(uint8 address, uint15 data) -> void;
|
||||
auto readIO(uint address, uint8 data) -> uint8;
|
||||
auto writeIO(uint address, uint8 data) -> void;
|
||||
auto updateVideoMode() -> void;
|
||||
|
@ -264,14 +264,14 @@ public:
|
|||
Latch latch;
|
||||
IO io;
|
||||
|
||||
uint16_t vram[32 * 1024] = {};
|
||||
uint16_t cgram[256] = {};
|
||||
uint16 vram[32 * 1024] = {};
|
||||
uint16 cgram[256] = {};
|
||||
Object objects[128] = {};
|
||||
|
||||
//[unserialized]
|
||||
uint16_t* output = {};
|
||||
uint16_t* lightTable[16] = {};
|
||||
uint8_t* tilecache[3] = {}; //bitplane -> bitmap tiledata
|
||||
uint16* output = {};
|
||||
uint16* lightTable[16] = {};
|
||||
uint8* tilecache[3] = {}; //bitplane -> bitmap tiledata
|
||||
|
||||
uint ItemLimit = 0;
|
||||
uint TileLimit = 0;
|
||||
|
@ -280,9 +280,9 @@ public:
|
|||
//line.cpp
|
||||
static auto flush() -> void;
|
||||
auto render() -> void;
|
||||
auto pixel(uint x, Pixel above, Pixel below) const -> uint16_t;
|
||||
auto blend(uint x, uint y, bool halve) const -> uint16_t;
|
||||
alwaysinline auto directColor(uint paletteIndex, uint paletteColor) const -> uint16_t;
|
||||
auto pixel(uint x, Pixel above, Pixel below) const -> uint16;
|
||||
auto blend(uint x, uint y, bool halve) const -> uint16;
|
||||
alwaysinline auto directColor(uint paletteIndex, uint paletteColor) const -> uint16;
|
||||
alwaysinline auto plotAbove(uint x, uint source, uint priority, uint color) -> void;
|
||||
alwaysinline auto plotBelow(uint x, uint source, uint priority, uint color) -> void;
|
||||
alwaysinline auto plotHD(Pixel*, uint x, uint source, uint priority, uint color, bool hires, bool subpixel) -> void;
|
||||
|
|
Loading…
Reference in New Issue