[Lapetus-cvs] lapetus pal.c,NONE,1.1
Status: Inactive
Brought to you by:
cyberwarriorx
From: Theo B. <cyb...@us...> - 2007-03-01 00:48:41
|
Update of /cvsroot/lapetus/lapetus In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv724 Added Files: pal.c Log Message: -Initial add --- NEW FILE: pal.c --- /* Copyright 2007 Theo Berkau This file is part of Lapetus. Lapetus is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Lapetus is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Lapetus; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Copy a VGA palette to Color Ram #include "lapetus.h" //#define RGB16(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) u16 defaultpalette[256] = { RGB16(0, 0, 0), RGB16(0, 0, 21), RGB16(0, 21, 0), RGB16(0, 21, 21), RGB16(21, 0, 0), RGB16(21, 0, 21), RGB16(21, 10, 0), RGB16(21, 21, 21), RGB16(10, 10, 10), RGB16(10, 10, 31), RGB16(10, 31, 10), RGB16(10, 31, 31), RGB16(31, 10, 10), RGB16(31, 10, 31), RGB16(31, 31, 10), RGB16(31, 31, 31), RGB16(0, 0, 0), RGB16(2, 2, 2), RGB16(4, 4, 4), RGB16(5, 5, 5), RGB16(7, 7, 7), RGB16(8, 8, 8), RGB16(10, 10, 10), RGB16(12, 12, 12), RGB16(14, 14, 14), RGB16(16, 16, 16), RGB16(18, 18, 18), RGB16(20, 20, 20), RGB16(22, 22, 22), RGB16(25, 25, 25), RGB16(28, 28, 28), RGB16(31, 31, 31), RGB16(0, 0, 31), RGB16(8, 0, 31), RGB16(15, 0, 31), RGB16(23, 0, 31), RGB16(31, 0, 31), RGB16(31, 0, 23), RGB16(31, 0, 15), RGB16(31, 0, 8), RGB16(31, 0, 0), RGB16(31, 8, 0), RGB16(31, 15, 0), RGB16(31, 23, 0), RGB16(31, 31, 0), RGB16(23, 31, 0), RGB16(15, 31, 0), RGB16(8, 31, 0), RGB16(0, 31, 0), RGB16(0, 31, 8), RGB16(0, 31, 15), RGB16(0, 31, 23), RGB16(0, 31, 31), RGB16(0, 23, 31), RGB16(0, 15, 31), RGB16(0, 8, 31), RGB16(15, 15, 31), RGB16(19, 15, 31), RGB16(23, 15, 31), RGB16(27, 15, 31), RGB16(31, 15, 31), RGB16(31, 15, 27), RGB16(31, 15, 23), RGB16(31, 15, 19), RGB16(31, 15, 15), RGB16(31, 19, 15), RGB16(31, 23, 15), RGB16(31, 27, 15), RGB16(31, 31, 15), RGB16(27, 31, 15), RGB16(23, 31, 15), RGB16(19, 31, 15), RGB16(15, 31, 15), RGB16(15, 31, 19), RGB16(15, 31, 23), RGB16(15, 31, 27), RGB16(15, 31, 31), RGB16(15, 27, 31), RGB16(15, 23, 31), RGB16(15, 19, 31), RGB16(22, 22, 31), RGB16(24, 22, 31), RGB16(27, 22, 31), RGB16(29, 22, 31), RGB16(31, 22, 31), RGB16(31, 22, 29), RGB16(31, 22, 27), RGB16(31, 22, 24), RGB16(31, 22, 22), RGB16(31, 24, 22), RGB16(31, 27, 22), RGB16(31, 29, 22), RGB16(31, 31, 22), RGB16(29, 31, 22), RGB16(27, 31, 22), RGB16(24, 31, 22), RGB16(22, 31, 22), RGB16(22, 31, 24), RGB16(22, 31, 27), RGB16(22, 31, 29), RGB16(22, 31, 31), RGB16(22, 29, 31), RGB16(22, 27, 31), RGB16(22, 24, 31), RGB16(0, 0, 14), RGB16(3, 0, 14), RGB16(7, 0, 14), RGB16(10, 0, 14), RGB16(14, 0, 14), RGB16(14, 0, 10), RGB16(14, 0, 7), RGB16(14, 0, 3), RGB16(14, 0, 0), RGB16(14, 3, 0), RGB16(14, 7, 0), RGB16(14, 10, 0), RGB16(14, 14, 0), RGB16(10, 14, 0), RGB16(7, 14, 0), RGB16(3, 14, 0), RGB16(0, 14, 0), RGB16(0, 14, 3), RGB16(0, 14, 7), RGB16(0, 14, 10), RGB16(0, 14, 14), RGB16(0, 10, 14), RGB16(0, 7, 14), RGB16(0, 3, 14), RGB16(7, 7, 14), RGB16(8, 7, 14), RGB16(10, 7, 14), RGB16(12, 7, 14), RGB16(14, 7, 14), RGB16(14, 7, 12), RGB16(14, 7, 10), RGB16(14, 7, 8), RGB16(14, 7, 7), RGB16(14, 8, 7), RGB16(14, 10, 7), RGB16(14, 12, 7), RGB16(14, 14, 7), RGB16(12, 14, 7), RGB16(10, 14, 7), RGB16(8, 14, 7), RGB16(7, 14, 7), RGB16(7, 14, 8), RGB16(7, 14, 10), RGB16(7, 14, 12), RGB16(7, 14, 14), RGB16(7, 12, 14), RGB16(7, 10, 14), RGB16(7, 8, 14), RGB16(10, 10, 14), RGB16(11, 10, 14), RGB16(12, 10, 14), RGB16(13, 10, 14), RGB16(14, 10, 14), RGB16(14, 10, 13), RGB16(14, 10, 12), RGB16(14, 10, 11), RGB16(14, 10, 10), RGB16(14, 11, 10), RGB16(14, 12, 10), RGB16(14, 13, 10), RGB16(14, 14, 10), RGB16(13, 14, 10), RGB16(12, 14, 10), RGB16(11, 14, 10), RGB16(10, 14, 10), RGB16(10, 14, 11), RGB16(10, 14, 12), RGB16(10, 14, 13), RGB16(10, 14, 14), RGB16(10, 13, 14), RGB16(10, 12, 14), RGB16(10, 11, 14), RGB16(0, 0, 8), RGB16(2, 0, 8), RGB16(4, 0, 8), RGB16(6, 0, 8), RGB16(8, 0, 8), RGB16(8, 0, 6), RGB16(8, 0, 4), RGB16(8, 0, 2), RGB16(8, 0, 0), RGB16(8, 2, 0), RGB16(8, 4, 0), RGB16(8, 6, 0), RGB16(8, 8, 0), RGB16(6, 8, 0), RGB16(4, 8, 0), RGB16(2, 8, 0), RGB16(0, 8, 0), RGB16(0, 8, 2), RGB16(0, 8, 4), RGB16(0, 8, 6), RGB16(0, 8, 8), RGB16(0, 6, 8), RGB16(0, 4, 8), RGB16(0, 2, 8), RGB16(4, 4, 8), RGB16(5, 4, 8), RGB16(6, 4, 8), RGB16(7, 4, 8), RGB16(8, 4, 8), RGB16(8, 4, 7), RGB16(8, 4, 6), RGB16(8, 4, 5), RGB16(8, 4, 4), RGB16(8, 5, 4), RGB16(8, 6, 4), RGB16(8, 7, 4), RGB16(8, 8, 4), RGB16(7, 8, 4), RGB16(6, 8, 4), RGB16(5, 8, 4), RGB16(4, 8, 4), RGB16(4, 8, 5), RGB16(4, 8, 6), RGB16(4, 8, 7), RGB16(4, 8, 8), RGB16(4, 7, 8), RGB16(4, 6, 8), RGB16(4, 5, 8), RGB16(5, 5, 8), RGB16(6, 5, 8), RGB16(6, 5, 8), RGB16(7, 5, 8), RGB16(8, 5, 8), RGB16(8, 5, 7), RGB16(8, 5, 6), RGB16(8, 5, 6), RGB16(8, 5, 5), RGB16(8, 6, 5), RGB16(8, 6, 5), RGB16(8, 7, 5), RGB16(8, 8, 5), RGB16(7, 8, 5), RGB16(6, 8, 5), RGB16(6, 8, 5), RGB16(5, 8, 5), RGB16(5, 8, 6), RGB16(5, 8, 6), RGB16(5, 8, 7), RGB16(5, 8, 8), RGB16(5, 7, 8), RGB16(5, 6, 8), RGB16(5, 6, 8), RGB16(0, 0, 0), RGB16(0, 0, 0), RGB16(0, 0, 0), RGB16(0, 0, 0), RGB16(0, 0, 0), RGB16(0, 0, 0), RGB16(0, 0, 0), RGB16(0, 0, 0) }; ////////////////////////////////////////////////////////////////////////////// int VdpSetPalette(int type, void *palette, int size) { int i; switch (type) { case CRM5_1024: case CRM5_2048: // Set color ram mode VDP2_REG_RAMCTL = (VDP2_REG_RAMCTL & 0xCFFF) | (type << 12); // Copy over palette to color ram for (i = 0; i < (size * 2); i+=2) *((volatile u16 *)(VDP2_CRAM+i)) = *((u16 *)(palette+i)); break; case CRM8_1024: // Set color ram mode VDP2_REG_RAMCTL = (VDP2_REG_RAMCTL & 0xCFFF) | 0x3000; // Copy over palette to color ram for (i = 0; i < (size * 4); i+=4) *((volatile u32 *)(VDP2_CRAM+i)) = *((u32 *)(palette+i)); break; default: return LAPETUS_ERR_INVALIDARG; } return LAPETUS_ERR_OK; } ////////////////////////////////////////////////////////////////////////////// int VdpSetDefaultPalette(void) { return VdpSetPalette(CRM5_2048, defaultpalette, 256); } ////////////////////////////////////////////////////////////////////////////// |