mirror of
https://github.com/SourMesen/Mesen2.git
synced 2024-05-11 00:55:35 -04:00
Debugger: SNES - Fixed palette display for mode 0 layers in tilemap viewer
This commit is contained in:
parent
8cbaf3a6dc
commit
d9f1d486a3
|
@ -151,6 +151,7 @@ struct DebugTilemapTileInfo
|
|||
|
||||
int32_t PaletteIndex = -1;
|
||||
int32_t PaletteAddress = -1;
|
||||
int32_t BasePaletteIndex = -1;
|
||||
|
||||
int32_t AttributeAddress = -1;
|
||||
int16_t AttributeData = -1;
|
||||
|
|
|
@ -354,7 +354,7 @@ DebugTilemapTileInfo GbaPpuTools::GetTilemapTileInfo(uint32_t x, uint32_t y, uin
|
|||
result.TileAddress = tileStart;
|
||||
result.PixelData = pixelData;
|
||||
result.PaletteIndex = paletteIndex;
|
||||
result.PaletteAddress = paletteIndex << 4;
|
||||
result.PaletteAddress = paletteIndex << 5;
|
||||
result.HorizontalMirroring = hMirror;
|
||||
result.VerticalMirroring = vMirror;
|
||||
return result;
|
||||
|
@ -460,6 +460,7 @@ void GbaPpuTools::GetSpriteInfo(DebugSpriteInfo& sprite, uint32_t* spritePreview
|
|||
sprite.TileIndex = oam[addr + 4] | ((oam[addr + 5] & 0x03) << 8);
|
||||
sprite.Priority = (DebugSpritePriority)((oam[addr + 5] >> 2) & 0x03);
|
||||
sprite.Palette = bpp8Mode ? 0 : (oam[addr + 5] >> 4) & 0x0F;
|
||||
sprite.PaletteAddress = bpp8Mode ? -1 : (sprite.Palette << 5);
|
||||
|
||||
static constexpr uint8_t sprSize[4][4][2] = {
|
||||
{ { 8, 8 }, { 16, 8 }, { 8, 16 }, { 8, 8 } },
|
||||
|
|
|
@ -464,11 +464,6 @@ DebugTilemapTileInfo SnesPpuTools::GetTilemapTileInfo(uint32_t x, uint32_t y, ui
|
|||
return result;
|
||||
}
|
||||
|
||||
uint16_t basePaletteOffset = 0;
|
||||
if(state.BgMode == 0) {
|
||||
basePaletteOffset = options.Layer * 32;
|
||||
}
|
||||
|
||||
uint32_t row;
|
||||
uint32_t column;
|
||||
|
||||
|
@ -499,13 +494,18 @@ DebugTilemapTileInfo SnesPpuTools::GetTilemapTileInfo(uint32_t x, uint32_t y, ui
|
|||
result.HorizontalMirroring = (NullableBoolean)((vram[addr + 1] & 0x40) != 0);
|
||||
result.HighPriority = (NullableBoolean)((vram[addr + 1] & 0x20) != 0);
|
||||
result.PaletteIndex = bpp == 8 ? 0 : (vram[addr + 1] >> 2) & 0x07;
|
||||
if(state.BgMode == 0) {
|
||||
result.BasePaletteIndex = result.PaletteIndex;
|
||||
result.PaletteIndex += options.Layer * 8;
|
||||
}
|
||||
result.PaletteAddress = result.PaletteIndex * (1 << bpp);
|
||||
|
||||
result.TileIndex = ((vram[addr + 1] & 0x03) << 8) | vram[addr];
|
||||
result.TileMapAddress = addr;
|
||||
|
||||
uint16_t tileStart = (layer.ChrAddress << 1) + result.TileIndex * 8 * bpp;
|
||||
result.TileAddress = tileStart;
|
||||
|
||||
result.PaletteAddress = basePaletteOffset + (result.PaletteIndex * (1 << bpp));
|
||||
}
|
||||
|
||||
result.Row = row;
|
||||
|
|
|
@ -606,7 +606,11 @@ namespace Mesen.Debugger.ViewModels
|
|||
}
|
||||
}
|
||||
if(tileInfo.PaletteIndex >= 0) {
|
||||
entries.AddEntry("Palette index", tileInfo.PaletteIndex.ToString());
|
||||
if(tileInfo.BasePaletteIndex >= 0) {
|
||||
entries.AddEntry("Palette index", $"{tileInfo.BasePaletteIndex} ({tileInfo.PaletteIndex})");
|
||||
} else {
|
||||
entries.AddEntry("Palette index", tileInfo.PaletteIndex.ToString());
|
||||
}
|
||||
}
|
||||
if(tileInfo.PaletteAddress >= 0) {
|
||||
entries.AddEntry("Palette address", "$" + tileInfo.PaletteAddress.ToString("X2"));
|
||||
|
|
|
@ -1097,6 +1097,7 @@ namespace Mesen.Interop
|
|||
|
||||
public Int32 PaletteIndex;
|
||||
public Int32 PaletteAddress;
|
||||
public Int32 BasePaletteIndex;
|
||||
|
||||
public Int32 AttributeAddress;
|
||||
public Int16 AttributeData;
|
||||
|
|
Loading…
Reference in a new issue