mirror of
https://github.com/Ale32bit/Capy64.git
synced 2025-01-18 10:36:44 +00:00
Unlock full RGB in classic mode
This commit is contained in:
parent
b7a956bfd6
commit
6d4161e251
4 changed files with 10 additions and 331 deletions
|
@ -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,
|
||||
};
|
||||
}
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue