114 lines
2.7 KiB
C
114 lines
2.7 KiB
C
/*
|
|
This file is part of Flycast.
|
|
|
|
Flycast 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.
|
|
|
|
Flycast 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 Flycast. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
#pragma once
|
|
#include "types.h"
|
|
|
|
enum vmu_screen_position_enum
|
|
{
|
|
UPPER_LEFT = 0,
|
|
UPPER_RIGHT,
|
|
LOWER_LEFT,
|
|
LOWER_RIGHT
|
|
};
|
|
|
|
#define VMU_SCREEN_WIDTH 48
|
|
#define VMU_SCREEN_HEIGHT 32
|
|
#define DEFAULT_VMU_PIXEL_ON_R 50
|
|
#define DEFAULT_VMU_PIXEL_ON_G 54
|
|
#define DEFAULT_VMU_PIXEL_ON_B 93
|
|
#define DEFAULT_VMU_PIXEL_OFF_R 135
|
|
#define DEFAULT_VMU_PIXEL_OFF_G 161
|
|
#define DEFAULT_VMU_PIXEL_OFF_B 134
|
|
#define VMU_NUM_COLORS 29
|
|
|
|
enum VMU_SCREEN_COLORS {
|
|
VMU_DEFAULT_ON,
|
|
VMU_DEFAULT_OFF,
|
|
VMU_BLACK,
|
|
VMU_BLUE,
|
|
VMU_LIGHT_BLUE,
|
|
VMU_GREEN,
|
|
VMU_GREEN_BLUE,
|
|
VMU_GREEN_LIGHT_BLUE,
|
|
VMU_LIGHT_GREEN,
|
|
VMU_LIGHT_GREEN_BLUE,
|
|
VMU_LIGHT_GREEN_LIGHT_BLUE,
|
|
VMU_RED,
|
|
VMU_RED_BLUE,
|
|
VMU_RED_LIGHT_BLUE,
|
|
VMU_RED_GREEN,
|
|
VMU_RED_GREEN_BLUE,
|
|
VMU_RED_GREEN_LIGHT_BLUE,
|
|
VMU_RED_LIGHT_GREEN,
|
|
VMU_RED_LIGHT_GREEN_BLUE,
|
|
VMU_RED_LIGHT_GREEN_LIGHT_BLUE,
|
|
VMU_LIGHT_RED,
|
|
VMU_LIGHT_RED_BLUE,
|
|
VMU_LIGHT_RED_LIGHT_BLUE,
|
|
VMU_LIGHT_RED_GREEN,
|
|
VMU_LIGHT_RED_GREEN_BLUE,
|
|
VMU_LIGHT_RED_GREEN_LIGHT_BLUE,
|
|
VMU_LIGHT_RED_LIGHT_GREEN,
|
|
VMU_LIGHT_RED_LIGHT_GREEN_BLUE,
|
|
VMU_WHITE
|
|
};
|
|
|
|
struct rgb_t {
|
|
u8 r ;
|
|
u8 g ;
|
|
u8 b ;
|
|
};
|
|
|
|
struct vmu_screen_params_t {
|
|
u8 vmu_pixel_on_R = 128 ;
|
|
u8 vmu_pixel_on_G = 0 ;
|
|
u8 vmu_pixel_on_B = 0 ;
|
|
u8 vmu_pixel_off_R = 0;
|
|
u8 vmu_pixel_off_G = 0;
|
|
u8 vmu_pixel_off_B = 0;
|
|
u8 vmu_screen_size_mult = 2 ;
|
|
u8 vmu_screen_opacity = 0xBF ;
|
|
vmu_screen_position_enum vmu_screen_position = LOWER_RIGHT ;
|
|
};
|
|
|
|
extern const rgb_t VMU_SCREEN_COLOR_MAP[VMU_NUM_COLORS] ;
|
|
extern const char* VMU_SCREEN_COLOR_NAMES[VMU_NUM_COLORS] ;
|
|
extern vmu_screen_params_t vmu_screen_params[4] ;
|
|
|
|
#define LIGHTGUN_CROSSHAIR_SIZE 16
|
|
|
|
enum LIGHTGUN_COLORS {
|
|
LIGHTGUN_COLOR_OFF,
|
|
LIGHTGUN_COLOR_WHITE,
|
|
LIGHTGUN_COLOR_RED,
|
|
LIGHTGUN_COLOR_GREEN,
|
|
LIGHTGUN_COLOR_BLUE,
|
|
LIGHTGUN_COLORS_COUNT
|
|
};
|
|
|
|
struct lightgun_params_t {
|
|
bool offscreen;
|
|
float x;
|
|
float y;
|
|
bool dirty;
|
|
int colour;
|
|
};
|
|
|
|
extern u8 lightgun_palette[LIGHTGUN_COLORS_COUNT*3];
|
|
extern u8 lightgun_img_crosshair[LIGHTGUN_CROSSHAIR_SIZE*LIGHTGUN_CROSSHAIR_SIZE];
|
|
extern lightgun_params_t lightgun_params[4] ;
|