A Super Nintendo Sprite Palette I Made With The 16 Color Limit Of The SNES Palette, And Uses The 15 Bit RGB Of The SNES, "Each SNES sprite can have 16 colors and a palette slot out of 8 total palette slots." (https://megacatstudios.com/blogs/retro-development/snes-sprite-engine-design-guidelines)
#![no_std]
#![no_main]
use firefly_rust::*;
#[unsafe(no_mangle)]
extern "C" fn boot() {
set_colors();
}
fn set_colors() {
// https://lospec.com/palette-list/super16
set_color(Color::from(1), RGB::new(0x90, 0x20, 0x68));
set_color(Color::from(2), RGB::new(0xf8, 0x18, 0x68));
set_color(Color::from(3), RGB::new(0xff, 0xa8, 0x80));
set_color(Color::from(4), RGB::new(0xff, 0x70, 0x00));
set_color(Color::from(5), RGB::new(0xa8, 0x00, 0x10));
set_color(Color::from(6), RGB::new(0xff, 0xa8, 0x00));
set_color(Color::from(7), RGB::new(0xff, 0xff, 0xa8));
set_color(Color::from(8), RGB::new(0xa8, 0xe0, 0x38));
set_color(Color::from(9), RGB::new(0x58, 0x00, 0xa8));
set_color(Color::from(10), RGB::new(0x68, 0x28, 0xff));
set_color(Color::from(11), RGB::new(0xff, 0xff, 0xff));
set_color(Color::from(12), RGB::new(0xe0, 0xd0, 0xff));
set_color(Color::from(13), RGB::new(0xa0, 0x70, 0xc8));
set_color(Color::from(14), RGB::new(0x68, 0x30, 0x90));
set_color(Color::from(15), RGB::new(0x48, 0x18, 0x68));
set_color(Color::from(16), RGB::new(0x00, 0x00, 0x00));
}
package main
import "github.com/firefly-zero/firefly-go/firefly"
func init() {
firefly.Boot = boot
}
func boot() {
setColors()
}
func setColors() {
// https://lospec.com/palette-list/super16
firefly.SetColor(1, firefly.RGB{R: 0x90, G: 0x20, B: 0x68})
firefly.SetColor(2, firefly.RGB{R: 0xf8, G: 0x18, B: 0x68})
firefly.SetColor(3, firefly.RGB{R: 0xff, G: 0xa8, B: 0x80})
firefly.SetColor(4, firefly.RGB{R: 0xff, G: 0x70, B: 0x00})
firefly.SetColor(5, firefly.RGB{R: 0xa8, G: 0x00, B: 0x10})
firefly.SetColor(6, firefly.RGB{R: 0xff, G: 0xa8, B: 0x00})
firefly.SetColor(7, firefly.RGB{R: 0xff, G: 0xff, B: 0xa8})
firefly.SetColor(8, firefly.RGB{R: 0xa8, G: 0xe0, B: 0x38})
firefly.SetColor(9, firefly.RGB{R: 0x58, G: 0x00, B: 0xa8})
firefly.SetColor(10, firefly.RGB{R: 0x68, G: 0x28, B: 0xff})
firefly.SetColor(11, firefly.RGB{R: 0xff, G: 0xff, B: 0xff})
firefly.SetColor(12, firefly.RGB{R: 0xe0, G: 0xd0, B: 0xff})
firefly.SetColor(13, firefly.RGB{R: 0xa0, G: 0x70, B: 0xc8})
firefly.SetColor(14, firefly.RGB{R: 0x68, G: 0x30, B: 0x90})
firefly.SetColor(15, firefly.RGB{R: 0x48, G: 0x18, B: 0x68})
firefly.SetColor(16, firefly.RGB{R: 0x00, G: 0x00, B: 0x00})
}
const ff = @import("firefly");
pub export fn update() void {
setColors()
}
fn setColors() void {
// https://lospec.com/palette-list/super16
ff.setColor(@enumFromInt(1), ff.RGB{.r = 0x90, .g = 0x20, .b = 0x68});
ff.setColor(@enumFromInt(2), ff.RGB{.r = 0xf8, .g = 0x18, .b = 0x68});
ff.setColor(@enumFromInt(3), ff.RGB{.r = 0xff, .g = 0xa8, .b = 0x80});
ff.setColor(@enumFromInt(4), ff.RGB{.r = 0xff, .g = 0x70, .b = 0x00});
ff.setColor(@enumFromInt(5), ff.RGB{.r = 0xa8, .g = 0x00, .b = 0x10});
ff.setColor(@enumFromInt(6), ff.RGB{.r = 0xff, .g = 0xa8, .b = 0x00});
ff.setColor(@enumFromInt(7), ff.RGB{.r = 0xff, .g = 0xff, .b = 0xa8});
ff.setColor(@enumFromInt(8), ff.RGB{.r = 0xa8, .g = 0xe0, .b = 0x38});
ff.setColor(@enumFromInt(9), ff.RGB{.r = 0x58, .g = 0x00, .b = 0xa8});
ff.setColor(@enumFromInt(10), ff.RGB{.r = 0x68, .g = 0x28, .b = 0xff});
ff.setColor(@enumFromInt(11), ff.RGB{.r = 0xff, .g = 0xff, .b = 0xff});
ff.setColor(@enumFromInt(12), ff.RGB{.r = 0xe0, .g = 0xd0, .b = 0xff});
ff.setColor(@enumFromInt(13), ff.RGB{.r = 0xa0, .g = 0x70, .b = 0xc8});
ff.setColor(@enumFromInt(14), ff.RGB{.r = 0x68, .g = 0x30, .b = 0x90});
ff.setColor(@enumFromInt(15), ff.RGB{.r = 0x48, .g = 0x18, .b = 0x68});
ff.setColor(@enumFromInt(16), ff.RGB{.r = 0x00, .g = 0x00, .b = 0x00});
}
#include "./vendor/firefly/firefly.c"
BOOT void boot()
{
set_colors();
}
void set_colors()
{
// https://lospec.com/palette-list/super16
RGB color1 = {0x90, 0x20, 0x68};
set_color(1, color1);
RGB color2 = {0xf8, 0x18, 0x68};
set_color(2, color2);
RGB color3 = {0xff, 0xa8, 0x80};
set_color(3, color3);
RGB color4 = {0xff, 0x70, 0x00};
set_color(4, color4);
RGB color5 = {0xa8, 0x00, 0x10};
set_color(5, color5);
RGB color6 = {0xff, 0xa8, 0x00};
set_color(6, color6);
RGB color7 = {0xff, 0xff, 0xa8};
set_color(7, color7);
RGB color8 = {0xa8, 0xe0, 0x38};
set_color(8, color8);
RGB color9 = {0x58, 0x00, 0xa8};
set_color(9, color9);
RGB color10 = {0x68, 0x28, 0xff};
set_color(10, color10);
RGB color11 = {0xff, 0xff, 0xff};
set_color(11, color11);
RGB color12 = {0xe0, 0xd0, 0xff};
set_color(12, color12);
RGB color13 = {0xa0, 0x70, 0xc8};
set_color(13, color13);
RGB color14 = {0x68, 0x30, 0x90};
set_color(14, color14);
RGB color15 = {0x48, 0x18, 0x68};
set_color(15, color15);
RGB color16 = {0x00, 0x00, 0x00};
set_color(16, color16);
}
#include "./vendor/firefly/firefly.c"
BOOT void boot()
{
set_colors();
}
void set_colors()
{
// https://lospec.com/palette-list/super16
set_color(1, {0x90, 0x20, 0x68});
set_color(2, {0xf8, 0x18, 0x68});
set_color(3, {0xff, 0xa8, 0x80});
set_color(4, {0xff, 0x70, 0x00});
set_color(5, {0xa8, 0x00, 0x10});
set_color(6, {0xff, 0xa8, 0x00});
set_color(7, {0xff, 0xff, 0xa8});
set_color(8, {0xa8, 0xe0, 0x38});
set_color(9, {0x58, 0x00, 0xa8});
set_color(10, {0x68, 0x28, 0xff});
set_color(11, {0xff, 0xff, 0xff});
set_color(12, {0xe0, 0xd0, 0xff});
set_color(13, {0xa0, 0x70, 0xc8});
set_color(14, {0x68, 0x30, 0x90});
set_color(15, {0x48, 0x18, 0x68});
set_color(16, {0x00, 0x00, 0x00});
}
///|
using @firefly {type Color, type RGB}
///|
pub fn boot() -> Unit {
set_colors()
}
///|
fn set_colors() -> Unit {
// https://lospec.com/palette-list/super16
@firefly.set_color(Color::from_int(1), RGB::new(0x90, 0x20, 0x68));
@firefly.set_color(Color::from_int(2), RGB::new(0xf8, 0x18, 0x68));
@firefly.set_color(Color::from_int(3), RGB::new(0xff, 0xa8, 0x80));
@firefly.set_color(Color::from_int(4), RGB::new(0xff, 0x70, 0x00));
@firefly.set_color(Color::from_int(5), RGB::new(0xa8, 0x00, 0x10));
@firefly.set_color(Color::from_int(6), RGB::new(0xff, 0xa8, 0x00));
@firefly.set_color(Color::from_int(7), RGB::new(0xff, 0xff, 0xa8));
@firefly.set_color(Color::from_int(8), RGB::new(0xa8, 0xe0, 0x38));
@firefly.set_color(Color::from_int(9), RGB::new(0x58, 0x00, 0xa8));
@firefly.set_color(Color::from_int(10), RGB::new(0x68, 0x28, 0xff));
@firefly.set_color(Color::from_int(11), RGB::new(0xff, 0xff, 0xff));
@firefly.set_color(Color::from_int(12), RGB::new(0xe0, 0xd0, 0xff));
@firefly.set_color(Color::from_int(13), RGB::new(0xa0, 0x70, 0xc8));
@firefly.set_color(Color::from_int(14), RGB::new(0x68, 0x30, 0x90));
@firefly.set_color(Color::from_int(15), RGB::new(0x48, 0x18, 0x68));
@firefly.set_color(Color::from_int(16), RGB::new(0x00, 0x00, 0x00));
}
function boot()
set_colors()
end
function set_colors()
-- https://lospec.com/palette-list/super16
firefly.set_color(1, {r=0x90, g=0x20, b=0x68});
firefly.set_color(2, {r=0xf8, g=0x18, b=0x68});
firefly.set_color(3, {r=0xff, g=0xa8, b=0x80});
firefly.set_color(4, {r=0xff, g=0x70, b=0x00});
firefly.set_color(5, {r=0xa8, g=0x00, b=0x10});
firefly.set_color(6, {r=0xff, g=0xa8, b=0x00});
firefly.set_color(7, {r=0xff, g=0xff, b=0xa8});
firefly.set_color(8, {r=0xa8, g=0xe0, b=0x38});
firefly.set_color(9, {r=0x58, g=0x00, b=0xa8});
firefly.set_color(10, {r=0x68, g=0x28, b=0xff});
firefly.set_color(11, {r=0xff, g=0xff, b=0xff});
firefly.set_color(12, {r=0xe0, g=0xd0, b=0xff});
firefly.set_color(13, {r=0xa0, g=0x70, b=0xc8});
firefly.set_color(14, {r=0x68, g=0x30, b=0x90});
firefly.set_color(15, {r=0x48, g=0x18, b=0x68});
firefly.set_color(16, {r=0x00, g=0x00, b=0x00});
end