summaryrefslogtreecommitdiff
path: root/Chip/DisplayDevice.cs
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-05 21:24:16 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-05 21:24:16 +1000
commit16f3cb74564cf7c19da6e13666c98aca36094716 (patch)
tree7346a7c12a82bc372ed82dad8e9a5d9ad6b098b7 /Chip/DisplayDevice.cs
parent72f297a479b6749674ec80e91be53b8c482123d2 (diff)
updates
Diffstat (limited to 'Chip/DisplayDevice.cs')
-rw-r--r--Chip/DisplayDevice.cs21
1 files changed, 5 insertions, 16 deletions
diff --git a/Chip/DisplayDevice.cs b/Chip/DisplayDevice.cs
index 28bf4e0..1bf4f14 100644
--- a/Chip/DisplayDevice.cs
+++ b/Chip/DisplayDevice.cs
@@ -31,12 +31,12 @@ public class DisplayDevice : RamDevice
public override void Clock()
{
Color[] palette = this.ReadPalette();
- ref8 pixelData = this.ReadSeq((u16) (this.AddressableStart + this._paletteSize * 3), (u16) (this._displayWidth * this._displayHeight));
-
+ ref8 pixelData = this.Memory.AsSpan((u16) (this._paletteSize * 3), (u16) (this._displayWidth * this._displayHeight));
+ // Console.WriteLine($"DisplayDevice.Clock: @{(this.AddressableStart + this._paletteSize * 3):X4} palette size={this._paletteSize} display size={this._displayWidth}x{this._displayHeight}");
for (u16 i = 0; i < textureData.Length; i++)
{
u8 pixelValue = pixelData[i];
- textureData[i] = palette[pixelValue];
+ textureData[i] = palette[pixelValue % this._paletteSize];
}
if (this.OutputTexture != null)
@@ -45,7 +45,7 @@ public class DisplayDevice : RamDevice
private Color[] ReadPalette()
{
- ref8 paletteData = this.ReadSeq(this.AddressableStart, (u16) (this._paletteSize * 3));
+ ref8 paletteData = this.Memory.AsSpan(0, (u16) (this._paletteSize * 3));
Color[] colors = new Color[this._paletteSize + 1];
colors[0] = Color.Transparent;
@@ -66,7 +66,7 @@ public class DisplayDevice : RamDevice
if (palette.Length != this._paletteSize)
throw new ArgumentException($"Palette must have {this._paletteSize} colors.");
- ref8 paletteData = this.ReadSeq(this.AddressableStart, (u16) (this._paletteSize * 3));
+ ref8 paletteData = this.Memory.AsSpan(0, (u16) (this._paletteSize * 3));
for (u16 i = 0; i < this._paletteSize; i++)
{
u16 offset = (u16) (i * 3);
@@ -75,15 +75,4 @@ public class DisplayDevice : RamDevice
paletteData[offset + 2] = palette[i].B;
}
}
-
- public override void Write(u16 address, u8 value)
- {
- Console.WriteLine($"DisplayDevice.Write: {address:X4} = {value:X2}");
- base.Write(address, value);
- }
- public override void WriteSeq(u16 address, u16 length, ref8 value)
- {
- Console.WriteLine($"DisplayDevice.WriteSeq: {address:X4} length={length} value={Make.u16(value)}");
- base.WriteSeq(address, length, value);
- }
} \ No newline at end of file