From 6d4161e25170ab60ce2d3ff3797d0ef254442bc8 Mon Sep 17 00:00:00 2001 From: Alessandro Proto Date: Fri, 10 Mar 2023 15:44:37 +0100 Subject: [PATCH] Unlock full RGB in classic mode --- Capy64/Core/ColorPalette.cs | 321 ------------------------ Capy64/Runtime/Libraries/GPU.cs | 8 +- Capy64/Runtime/Libraries/Term.cs | 8 +- Capy64/Runtime/Objects/GPUBufferMeta.cs | 4 +- 4 files changed, 10 insertions(+), 331 deletions(-) delete mode 100644 Capy64/Core/ColorPalette.cs diff --git a/Capy64/Core/ColorPalette.cs b/Capy64/Core/ColorPalette.cs deleted file mode 100644 index 9f6ba09..0000000 --- a/Capy64/Core/ColorPalette.cs +++ /dev/null @@ -1,321 +0,0 @@ -// This file is part of Capy64 - https://github.com/Ale32bit/Capy64 -// Copyright 2023 Alessandro "AlexDevs" Proto -// -// Licensed under the Apache License, Version 2.0 (the "License"). -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -using Microsoft.Xna.Framework; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Capy64.Core; - -public class ColorPalette -{ - public static int GetIndex(int r, int g, int b) - { - r /= 51; - g /= 51; - b /= 51; - return 16 + (36 * r) + (6 * g) + b; - } - - public static int GetIndex(Color color) - { - return GetIndex(color.R, color.G, color.B); - } - - public static int GetIndex(uint packed) - { - var b = (byte)(packed & 0xff); - var g = (byte)((packed >> 8) & 0xff); - var r = (byte)((packed >> 16) & 0xff); - return GetIndex(r, g, b); - } - - public static uint GetColor(int r, int g, int b) - { - return Palette[GetIndex(r, g, b)]; - } - - public static uint GetColor(Color color) - { - return Palette[GetIndex(color)]; - } - - public static uint GetColor(uint packed) - { - return Palette[GetIndex(packed)]; - } - - public static readonly uint[] Palette = new uint[] { - 0x000000, - 0x800000, - 0x008000, - 0x808000, - 0x000080, - 0x800080, - 0x008080, - 0xC0C0C0, - 0x808080, - 0xFF0000, - 0x00FF00, - 0xFFFF00, - 0x0000FF, - 0xFF00FF, - 0x00FFFF, - 0xFFFFFF, - 0x000000, - 0x00005F, - 0x000087, - 0x0000AF, - 0x0000D7, - 0x0000FF, - 0x005F00, - 0x005F5F, - 0x005F87, - 0x005FAF, - 0x005FD7, - 0x005FFF, - 0x008700, - 0x00875F, - 0x008787, - 0x0087AF, - 0x0087D7, - 0x0087FF, - 0x00AF00, - 0x00AF5F, - 0x00AF87, - 0x00AFAF, - 0x00AFD7, - 0x00AFFF, - 0x00D700, - 0x00D75F, - 0x00D787, - 0x00D7AF, - 0x00D7D7, - 0x00D7FF, - 0x00FF00, - 0x00FF5F, - 0x00FF87, - 0x00FFAF, - 0x00FFD7, - 0x00FFFF, - 0x5F0000, - 0x5F005F, - 0x5F0087, - 0x5F00AF, - 0x5F00D7, - 0x5F00FF, - 0x5F5F00, - 0x5F5F5F, - 0x5F5F87, - 0x5F5FAF, - 0x5F5FD7, - 0x5F5FFF, - 0x5F8700, - 0x5F875F, - 0x5F8787, - 0x5F87AF, - 0x5F87D7, - 0x5F87FF, - 0x5FAF00, - 0x5FAF5F, - 0x5FAF87, - 0x5FAFAF, - 0x5FAFD7, - 0x5FAFFF, - 0x5FD700, - 0x5FD75F, - 0x5FD787, - 0x5FD7AF, - 0x5FD7D7, - 0x5FD7FF, - 0x5FFF00, - 0x5FFF5F, - 0x5FFF87, - 0x5FFFAF, - 0x5FFFD7, - 0x5FFFFF, - 0x870000, - 0x87005F, - 0x870087, - 0x8700AF, - 0x8700D7, - 0x8700FF, - 0x875F00, - 0x875F5F, - 0x875F87, - 0x875FAF, - 0x875FD7, - 0x875FFF, - 0x878700, - 0x87875F, - 0x878787, - 0x8787AF, - 0x8787D7, - 0x8787FF, - 0x87AF00, - 0x87AF5F, - 0x87AF87, - 0x87AFAF, - 0x87AFD7, - 0x87AFFF, - 0x87D700, - 0x87D75F, - 0x87D787, - 0x87D7AF, - 0x87D7D7, - 0x87D7FF, - 0x87FF00, - 0x87FF5F, - 0x87FF87, - 0x87FFAF, - 0x87FFD7, - 0x87FFFF, - 0xAF0000, - 0xAF005F, - 0xAF0087, - 0xAF00AF, - 0xAF00D7, - 0xAF00FF, - 0xAF5F00, - 0xAF5F5F, - 0xAF5F87, - 0xAF5FAF, - 0xAF5FD7, - 0xAF5FFF, - 0xAF8700, - 0xAF875F, - 0xAF8787, - 0xAF87AF, - 0xAF87D7, - 0xAF87FF, - 0xAFAF00, - 0xAFAF5F, - 0xAFAF87, - 0xAFAFAF, - 0xAFAFD7, - 0xAFAFFF, - 0xAFD700, - 0xAFD75F, - 0xAFD787, - 0xAFD7AF, - 0xAFD7D7, - 0xAFD7FF, - 0xAFFF00, - 0xAFFF5F, - 0xAFFF87, - 0xAFFFAF, - 0xAFFFD7, - 0xAFFFFF, - 0xD70000, - 0xD7005F, - 0xD70087, - 0xD700AF, - 0xD700D7, - 0xD700FF, - 0xD75F00, - 0xD75F5F, - 0xD75F87, - 0xD75FAF, - 0xD75FD7, - 0xD75FFF, - 0xD78700, - 0xD7875F, - 0xD78787, - 0xD787AF, - 0xD787D7, - 0xD787FF, - 0xD7AF00, - 0xD7AF5F, - 0xD7AF87, - 0xD7AFAF, - 0xD7AFD7, - 0xD7AFFF, - 0xD7D700, - 0xD7D75F, - 0xD7D787, - 0xD7D7AF, - 0xD7D7D7, - 0xD7D7FF, - 0xD7FF00, - 0xD7FF5F, - 0xD7FF87, - 0xD7FFAF, - 0xD7FFD7, - 0xD7FFFF, - 0xFF0000, - 0xFF005F, - 0xFF0087, - 0xFF00AF, - 0xFF00D7, - 0xFF00FF, - 0xFF5F00, - 0xFF5F5F, - 0xFF5F87, - 0xFF5FAF, - 0xFF5FD7, - 0xFF5FFF, - 0xFF8700, - 0xFF875F, - 0xFF8787, - 0xFF87AF, - 0xFF87D7, - 0xFF87FF, - 0xFFAF00, - 0xFFAF5F, - 0xFFAF87, - 0xFFAFAF, - 0xFFAFD7, - 0xFFAFFF, - 0xFFD700, - 0xFFD75F, - 0xFFD787, - 0xFFD7AF, - 0xFFD7D7, - 0xFFD7FF, - 0xFFFF00, - 0xFFFF5F, - 0xFFFF87, - 0xFFFFAF, - 0xFFFFD7, - 0xFFFFFF, - 0x080808, - 0x121212, - 0x1C1C1C, - 0x262626, - 0x303030, - 0x3A3A3A, - 0x444444, - 0x4E4E4E, - 0x585858, - 0x626262, - 0x6C6C6C, - 0x767676, - 0x808080, - 0x8A8A8A, - 0x949494, - 0x9E9E9E, - 0xA8A8A8, - 0xB2B2B2, - 0xBCBCBC, - 0xC6C6C6, - 0xD0D0D0, - 0xDADADA, - 0xE4E4E4, - 0xEEEEEE, - }; -} diff --git a/Capy64/Runtime/Libraries/GPU.cs b/Capy64/Runtime/Libraries/GPU.cs index 69198c4..924a246 100644 --- a/Capy64/Runtime/Libraries/GPU.cs +++ b/Capy64/Runtime/Libraries/GPU.cs @@ -150,8 +150,8 @@ public class GPU : IComponent public static void GetColor(uint c, out byte r, out byte g, out byte b) { - if (_game.EngineMode == EngineMode.Classic) - c = ColorPalette.GetColor(c); + /*if (_game.EngineMode == EngineMode.Classic) + c = ColorPalette.GetColor(c);*/ Utils.UnpackRGB(c, out r, out g, out b); } @@ -512,7 +512,7 @@ public class GPU : IComponent Task.Run(() => { - if (_game.EngineMode == EngineMode.Classic) + /*if (_game.EngineMode == EngineMode.Classic) { for (int i = 0; i < data.Length; i++) { @@ -535,7 +535,7 @@ public class GPU : IComponent data[i] = value; } - } + }*/ var buffer = new GPUBufferMeta.GPUBuffer { diff --git a/Capy64/Runtime/Libraries/Term.cs b/Capy64/Runtime/Libraries/Term.cs index fa2824e..66d4fc4 100644 --- a/Capy64/Runtime/Libraries/Term.cs +++ b/Capy64/Runtime/Libraries/Term.cs @@ -177,8 +177,8 @@ internal class Term : IComponent public static void GetColor(uint c, out byte r, out byte g, out byte b) { - if (_game.EngineMode == EngineMode.Classic) - c = ColorPalette.GetColor(c); + /*if (_game.EngineMode == EngineMode.Classic) + c = ColorPalette.GetColor(c);*/ UnpackRGB(c, out r, out g, out b); } @@ -442,7 +442,7 @@ internal class Term : IComponent r = (byte)L.CheckNumber(1); g = (byte)L.CheckNumber(2); b = (byte)L.CheckNumber(3); - UnpackRGB(ColorPalette.GetColor(r, g, b), out r, out g, out b); + //UnpackRGB(ColorPalette.GetColor(r, g, b), out r, out g, out b); } // packed RGB value @@ -484,7 +484,7 @@ internal class Term : IComponent r = (byte)L.CheckNumber(1); g = (byte)L.CheckNumber(2); b = (byte)L.CheckNumber(3); - UnpackRGB(ColorPalette.GetColor(r, g, b), out r, out g, out b); + //UnpackRGB(ColorPalette.GetColor(r, g, b), out r, out g, out b); } // packed RGB value else if (argsn == 1) diff --git a/Capy64/Runtime/Objects/GPUBufferMeta.cs b/Capy64/Runtime/Objects/GPUBufferMeta.cs index f4b0dd2..32a88d7 100644 --- a/Capy64/Runtime/Objects/GPUBufferMeta.cs +++ b/Capy64/Runtime/Objects/GPUBufferMeta.cs @@ -80,8 +80,8 @@ public class GPUBufferMeta : IComponent public static uint GetColor(uint color) { - if (_game.EngineMode == EngineMode.Classic) - return ColorPalette.GetColor(color); + /*if (_game.EngineMode == EngineMode.Classic) + return ColorPalette.GetColor(color);*/ return color; }