Merge pull request #7 from libretro/master

New updates to libretro port
This commit is contained in:
ekeeke 2012-10-27 07:28:01 -07:00
commit b02141b5e1
11 changed files with 572 additions and 118 deletions

View File

@ -1,6 +1,7 @@
NTSC = 0
DEBUG = 0
LOGSOUND = 0
FRONTEND_SUPPORTS_RGB565 = 1
GENPLUS_SRC_DIR := source
LIBRETRO_DIR := libretro
@ -128,7 +129,7 @@ LIBRETRO_SRC := $(GENPLUS_SRC_DIR)/genesis.c \
$(GENPLUS_SRC_DIR)/cart_hw/svp/svp.c \
$(GENPLUS_SRC_DIR)/ntsc/md_ntsc.c \
$(GENPLUS_SRC_DIR)/ntsc/sms_ntsc.c \
= $(GENPLUS_SRC_DIR)/sound/eq.c \
$(GENPLUS_SRC_DIR)/sound/eq.c \
$(GENPLUS_SRC_DIR)/sound/sound.c \
$(GENPLUS_SRC_DIR)/sound/ym2612.c \
$(GENPLUS_SRC_DIR)/sound/ym2413.c \
@ -154,6 +155,13 @@ endif
DEFINES :=
CFLAGS += $(fpic) $(DEFINES) $(CODE_DEFINES)
ifeq ($(FRONTEND_SUPPORTS_RGB565), 1)
# if you have a new frontend that supports RGB565
BPP_DEFINES = -DUSE_16BPP_RENDERING -DFRONTEND_SUPPORTS_RGB565
else
BPP_DEFINES = -DUSE_15BPP_RENDERING
endif
LIBRETRO_CFLAGS += -I$(GENPLUS_SRC_DIR) \
-I$(GENPLUS_SRC_DIR)/sound \
-I$(GENPLUS_SRC_DIR)/input_hw \
@ -164,7 +172,7 @@ LIBRETRO_CFLAGS += -I$(GENPLUS_SRC_DIR) \
-I$(GENPLUS_SRC_DIR)/z80 \
-I$(GENPLUS_SRC_DIR)/ntsc \
-I$(LIBRETRO_DIR) \
-DUSE_15BPP_RENDERING \
$(BPP_DEFINES) \
$(ENDIANNESS_DEFINES) \
$(PLATFORM_DEFINES) \
-DINLINE="static inline" \

View File

@ -35,21 +35,21 @@ LOCAL_SRC_FILES := $(GENPLUS_SRC_DIR)/genesis.c \
$(GENPLUS_SRC_DIR)/cart_hw/areplay.c \
$(GENPLUS_SRC_DIR)/cart_hw/md_cart.c \
$(GENPLUS_SRC_DIR)/cart_hw/sms_cart.c \
$(GENPLUS_SRC_DIR)/cart_hw/gg_eeprom.c \
$(GENPLUS_SRC_DIR)/cart_hw/md_eeprom.c \
$(GENPLUS_SRC_DIR)/cart_hw/eeprom_93c.c \
$(GENPLUS_SRC_DIR)/cart_hw/eeprom_i2c.c \
$(GENPLUS_SRC_DIR)/cart_hw/eeprom_spi.c \
$(GENPLUS_SRC_DIR)/cart_hw/ggenie.c \
$(GENPLUS_SRC_DIR)/cart_hw/sram.c \
$(GENPLUS_SRC_DIR)/cart_hw/svp/ssp16.c \
$(GENPLUS_SRC_DIR)/cart_hw/svp/svp.c \
$(GENPLUS_SRC_DIR)/ntsc/md_ntsc.c \
$(GENPLUS_SRC_DIR)/ntsc/sms_ntsc.c \
$(GENPLUS_SRC_DIR)/sound/Fir_Resampler.c \
$(GENPLUS_SRC_DIR)/sound/eq.c \
$(GENPLUS_SRC_DIR)/sound/sound.c \
$(GENPLUS_SRC_DIR)/sound/ym2612.c \
$(GENPLUS_SRC_DIR)/sound/ym2413.c \
$(GENPLUS_SRC_DIR)/sound/sn76489.c \
$(GENPLUS_SRC_DIR)/sound/blip.c \
$(GENPLUS_SRC_DIR)/sound/blip_buf.c \
$(GENPLUS_SRC_DIR)/z80/z80.c \
$(GENPLUS_SRC_DIR)/m68k/m68kcpu.c \
$(GENPLUS_SRC_DIR)/m68k/s68kcpu.c \
@ -67,6 +67,6 @@ LOCAL_C_INCLUDES = $(LOCAL_PATH)/$(GENPLUS_SRC_DIR) \
$(LOCAL_PATH)/$(GENPLUS_SRC_DIR)/ntsc \
$(LOCAL_PATH)/$(LIBRETRO_DIR)
LOCAL_CFLAGS = -DINLINE="static inline" -DUSE_15BPP_RENDERING -DLSB_FIRST -D__LIBRETRO__
LOCAL_CFLAGS = -ffast-math -O3 -funroll-loops -DINLINE="static inline" -DUSE_16BPP_RENDERING -DLSB_FIRST -D__LIBRETRO__ -DFRONTEND_SUPPORTS_RGB565
include $(BUILD_SHARED_LIBRARY)

View File

@ -0,0 +1 @@
APP_ABI := all

View File

@ -25,7 +25,8 @@ md_ntsc_t *md_ntsc;
static int vwidth;
static int vheight;
static bool failed_init;
char rom_filename[256];
unsigned retro_api_version(void) { return RETRO_API_VERSION; }
@ -128,7 +129,7 @@ int load_archive(char *filename, unsigned char *buffer, int maxsize, char *exten
/* Mega CD BIOS are required files */
if (!strcmp(filename,CD_BIOS_US) || !strcmp(filename,CD_BIOS_EU) || !strcmp(filename,CD_BIOS_JP))
{
sprintf(msg,"Unable to open CD BIOS: %s", filename);
snprintf(msg, sizeof(msg), "Unable to open CD BIOS: %s", filename);
}
if (!fd)
@ -270,6 +271,10 @@ static void config_default(void)
config.hot_swap &= 1;
}
/* these values are used for libretro reporting too */
static const double pal_fps = 53203424.0 / (3420.0 * 313.0);
static const double ntsc_fps = 53693175.0 / (3420.0 * 262.0);
static void init_audio(void)
{
audio_init(44100, 0);
@ -695,7 +700,7 @@ static struct retro_system_av_info g_av_info;
void retro_get_system_info(struct retro_system_info *info)
{
info->library_name = "Genesis Plus GX";
info->library_version = "v1.7.0";
info->library_version = "v1.7.1";
info->valid_extensions = "md|smd|bin|cue|gen|zip|MD|SMD|bin|iso|ISO|CUE|GEN|ZIP|sms|SMS|gg|GG|sg|SG";
info->block_extract = false;
info->need_fullpath = true;
@ -803,56 +808,83 @@ static void retro_set_viewport_dimensions(void)
g_av_info.timing = timing;
}
static bool LoadFile(char * filename)
{
int size = 0;
/* check if virtual CD tray was open */
if ((system_hw == SYSTEM_MCD) && (cdd.status == CD_OPEN))
{
/* swap CD image file */
size = cdd_load(filename, (char *)(cdc.ram));
/* update CD header information */
if (!scd.cartridge.boot)
getrominfo((char *)(cdc.ram));
}
/* no CD image file loaded */
if (!size)
{
/* close CD tray to force system reset */
cdd.status = CD_STOP;
/* load game file */
size = load_rom(filename);
}
return size > 0;
}
bool retro_load_game(const struct retro_game_info *info)
{
const char *full_path;
const char *dir;
char slash;
extract_directory(g_rom_dir, info->path, sizeof(g_rom_dir));
if (environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) && dir)
{
#if defined(_WIN32) && !defined(_XBOX360)
const char slash[] = "\\";
#elif defined(_WIN32) && defined(_XBOX360)
const char slash[] = "\0";
#else
const char slash[] = "/";
#endif
snprintf(CD_BRAM_EU, sizeof(CD_BRAM_EU), "%s%sscd_E.brm", dir, slash);
snprintf(CD_BRAM_US, sizeof(CD_BRAM_US), "%s%sscd_U.brm", dir, slash);
snprintf(CD_BRAM_JP, sizeof(CD_BRAM_JP), "%s%sscd_J.brm", dir, slash);
snprintf(CD_BIOS_EU, sizeof(CD_BIOS_EU), "%s%sbios_CD_E.bin", dir, slash);
snprintf(CD_BIOS_US, sizeof(CD_BIOS_US), "%s%sbios_CD_U.bin", dir, slash);
snprintf(CD_BIOS_JP, sizeof(CD_BIOS_JP), "%s%sbios_CD_J.bin", dir, slash);
snprintf(MS_BIOS_EU, sizeof(MS_BIOS_EU), "%s%sbios_E.sms", dir, slash);
snprintf(MS_BIOS_US, sizeof(MS_BIOS_US), "%s%sbios_U.sms", dir, slash);
snprintf(MS_BIOS_JP, sizeof(MS_BIOS_JP), "%s%sbios_J.sms", dir, slash);
snprintf(GG_BIOS, sizeof(GG_BIOS), "%s%sbios.gg", dir, slash);
snprintf(SK_ROM, sizeof(SK_ROM), "%s%ssk.bin", dir, slash);
snprintf(SK_UPMEM, sizeof(SK_UPMEM), "%s%ssk2chip.bin", dir, slash);
snprintf(GG_ROM, sizeof(GG_ROM), "%s%sggenie.bin", dir, slash);
snprintf(AR_ROM, sizeof(AR_ROM), "%s%sareplay.bin", dir, slash);
fprintf(stderr, "Sega CD EU BRAM should be located at: %s\n", CD_BRAM_EU);
fprintf(stderr, "Sega CD US BRAM should be located at: %s\n", CD_BRAM_US);
fprintf(stderr, "Sega CD JP BRAM should be located at: %s\n", CD_BRAM_JP);
fprintf(stderr, "Sega CD EU BIOS should be located at: %s\n", CD_BIOS_EU);
fprintf(stderr, "Sega CD US BIOS should be located at: %s\n", CD_BIOS_US);
fprintf(stderr, "Sega CD JP BIOS should be located at: %s\n", CD_BIOS_JP);
fprintf(stderr, "Master System EU BIOS should be located at: %s\n", MS_BIOS_EU);
fprintf(stderr, "Master System US BIOS should be located at: %s\n", MS_BIOS_US);
fprintf(stderr, "Master System JP BIOS should be located at: %s\n", MS_BIOS_JP);
fprintf(stderr, "Game Gear BIOS should be located at: %s\n", GG_BIOS);
fprintf(stderr, "S&K upmem ROM should be located at: %s\n", SK_UPMEM);
fprintf(stderr, "S&K ROM should be located at: %s\n", SK_ROM);
fprintf(stderr, "Game Genie ROM should be located at: %s\n", GG_ROM);
fprintf(stderr, "Action Replay ROM should be located at: %s\n", AR_ROM);
}
else
if (!environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) || !dir)
{
fprintf(stderr, "[genplus]: Defaulting system directory to %s.\n", g_rom_dir);
dir = g_rom_dir;
}
#if defined(_WIN32) && !defined(_XBOX360)
snprintf(slash, sizeof(slash), "\\");
#elif defined(_WIN32) && defined(_XBOX360)
snprintf(slash, sizeof(slash), "");
#else
snprintf(slash, sizeof(slash), "/");
#endif
snprintf(CD_BRAM_EU, sizeof(CD_BRAM_EU), "%s%sscd_E.brm", dir, slash);
snprintf(CD_BRAM_US, sizeof(CD_BRAM_US), "%s%sscd_U.brm", dir, slash);
snprintf(CD_BRAM_JP, sizeof(CD_BRAM_JP), "%s%sscd_J.brm", dir, slash);
snprintf(CD_BIOS_EU, sizeof(CD_BIOS_EU), "%s%sbios_CD_E.bin", dir, slash);
snprintf(CD_BIOS_US, sizeof(CD_BIOS_US), "%s%sbios_CD_U.bin", dir, slash);
snprintf(CD_BIOS_JP, sizeof(CD_BIOS_JP), "%s%sbios_CD_J.bin", dir, slash);
snprintf(MS_BIOS_EU, sizeof(MS_BIOS_EU), "%s%sbios_E.sms", dir, slash);
snprintf(MS_BIOS_US, sizeof(MS_BIOS_US), "%s%sbios_U.sms", dir, slash);
snprintf(MS_BIOS_JP, sizeof(MS_BIOS_JP), "%s%sbios_J.sms", dir, slash);
snprintf(GG_BIOS, sizeof(GG_BIOS), "%s%sbios.gg", dir, slash);
snprintf(SK_ROM, sizeof(SK_ROM), "%s%ssk.bin", dir, slash);
snprintf(SK_UPMEM, sizeof(SK_UPMEM), "%s%ssk2chip.bin", dir, slash);
snprintf(GG_ROM, sizeof(GG_ROM), "%s%sggenie.bin", dir, slash);
snprintf(AR_ROM, sizeof(AR_ROM), "%s%sareplay.bin", dir, slash);
fprintf(stderr, "Sega CD EU BRAM should be located at: %s\n", CD_BRAM_EU);
fprintf(stderr, "Sega CD US BRAM should be located at: %s\n", CD_BRAM_US);
fprintf(stderr, "Sega CD JP BRAM should be located at: %s\n", CD_BRAM_JP);
fprintf(stderr, "Sega CD EU BIOS should be located at: %s\n", CD_BIOS_EU);
fprintf(stderr, "Sega CD US BIOS should be located at: %s\n", CD_BIOS_US);
fprintf(stderr, "Sega CD JP BIOS should be located at: %s\n", CD_BIOS_JP);
fprintf(stderr, "Master System EU BIOS should be located at: %s\n", MS_BIOS_EU);
fprintf(stderr, "Master System US BIOS should be located at: %s\n", MS_BIOS_US);
fprintf(stderr, "Master System JP BIOS should be located at: %s\n", MS_BIOS_JP);
fprintf(stderr, "Game Gear BIOS should be located at: %s\n", GG_BIOS);
fprintf(stderr, "S&K upmem ROM should be located at: %s\n", SK_UPMEM);
fprintf(stderr, "S&K ROM should be located at: %s\n", SK_ROM);
fprintf(stderr, "Game Genie ROM should be located at: %s\n", GG_ROM);
fprintf(stderr, "Action Replay ROM should be located at: %s\n", AR_ROM);
snprintf(DEFAULT_PATH, sizeof(DEFAULT_PATH), g_rom_dir);
#ifdef _XBOX
@ -868,7 +900,7 @@ bool retro_load_game(const struct retro_game_info *info)
full_path = info->path;
if (!load_rom((char*)full_path))
if (!LoadFile((char *)full_path))
return false;
configure_controls();
@ -934,7 +966,7 @@ size_t retro_get_memory_size(unsigned id)
void retro_init(void)
{
unsigned level;
unsigned level, rgb565;
#if defined(USE_NTSC)
sms_ntsc = calloc(1, sizeof(sms_ntsc_t));
md_ntsc = calloc(1, sizeof(md_ntsc_t));
@ -944,6 +976,12 @@ void retro_init(void)
level = 1;
environ_cb(RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL, &level);
#ifdef FRONTEND_SUPPORTS_RGB565
rgb565 = RETRO_PIXEL_FORMAT_RGB565;
if(environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &rgb565))
fprintf(stderr, "Frontend supports RGB565 - will use that instead of XRGB1555.\n");
#endif
}
void retro_deinit(void)

View File

@ -3,11 +3,13 @@
#include <stdint.h>
#include <stddef.h>
#include <limits.h>
// Hack applied for MSVC when compiling in C89 mode as it isn't C99 compliant.
#ifdef __cplusplus
extern "C" {
#else
#if defined(_MSC_VER) && !defined(__cplusplus)
#if defined(_MSC_VER) && !defined(SN_TARGET_PS3) && !defined(__cplusplus)
#define bool unsigned char
#define true 1
#define false 0
@ -16,21 +18,51 @@ extern "C" {
#endif
#endif
// Used for checking API/ABI mismatches that can break libretro implementations.
// It is not incremented for compatible changes.
#define RETRO_API_VERSION 1
// Libretro's fundamental device abstractions.
#define RETRO_DEVICE_MASK 0xff
#define RETRO_DEVICE_NONE 0
// The JOYPAD is called RetroPad. It is essentially a Super Nintendo controller,
// but with additional L2/R2/L3/R3 buttons, similar to a PS1 DualShock.
#define RETRO_DEVICE_JOYPAD 1
// The mouse is a simple mouse, similar to Super Nintendo's mouse.
// X and Y coordinates are reported relatively to last poll (poll callback).
// It is up to the libretro implementation to keep track of where the mouse pointer is supposed to be on the screen.
// The frontend must make sure not to interfere with its own hardware mouse pointer.
#define RETRO_DEVICE_MOUSE 2
// KEYBOARD device lets one poll for raw key pressed.
// It is poll based, so input callback will return with the current pressed state.
#define RETRO_DEVICE_KEYBOARD 3
// Lightgun X/Y coordinates are reported relatively to last poll, similar to mouse.
#define RETRO_DEVICE_LIGHTGUN 4
// The ANALOG device is an extension to JOYPAD (RetroPad).
// Similar to DualShock it adds two analog sticks.
// This is treated as a separate device type as it returns values in the full analog range
// of [-0x8000, 0x7fff]. Positive X axis is right. Positive Y axis is down.
// Only use ANALOG type when polling for analog values of the axes.
#define RETRO_DEVICE_ANALOG 5
// These device types are specializations of the base types above.
// They should only be used in retro_set_controller_type() to inform libretro implementations
// about use of a very specific device type.
//
// In input state callback, however, only the base type should be used in the 'device' field.
#define RETRO_DEVICE_JOYPAD_MULTITAP ((1 << 8) | RETRO_DEVICE_JOYPAD)
#define RETRO_DEVICE_LIGHTGUN_SUPER_SCOPE ((1 << 8) | RETRO_DEVICE_LIGHTGUN)
#define RETRO_DEVICE_LIGHTGUN_JUSTIFIER ((2 << 8) | RETRO_DEVICE_LIGHTGUN)
#define RETRO_DEVICE_LIGHTGUN_JUSTIFIERS ((3 << 8) | RETRO_DEVICE_LIGHTGUN)
// Buttons for the RetroPad (JOYPAD).
// The placement of these is equivalent to placements on the Super Nintendo controller.
// L2/R2/L3/R3 buttons correspond to the PS1 DualShock.
#define RETRO_DEVICE_ID_JOYPAD_B 0
#define RETRO_DEVICE_ID_JOYPAD_Y 1
#define RETRO_DEVICE_ID_JOYPAD_SELECT 2
@ -48,16 +80,19 @@ extern "C" {
#define RETRO_DEVICE_ID_JOYPAD_L3 14
#define RETRO_DEVICE_ID_JOYPAD_R3 15
// Index / Id values for ANALOG device.
#define RETRO_DEVICE_INDEX_ANALOG_LEFT 0
#define RETRO_DEVICE_INDEX_ANALOG_RIGHT 1
#define RETRO_DEVICE_ID_ANALOG_X 0
#define RETRO_DEVICE_ID_ANALOG_Y 1
// Id values for MOUSE.
#define RETRO_DEVICE_ID_MOUSE_X 0
#define RETRO_DEVICE_ID_MOUSE_Y 1
#define RETRO_DEVICE_ID_MOUSE_LEFT 2
#define RETRO_DEVICE_ID_MOUSE_RIGHT 3
// Id values for LIGHTGUN types.
#define RETRO_DEVICE_ID_LIGHTGUN_X 0
#define RETRO_DEVICE_ID_LIGHTGUN_Y 1
#define RETRO_DEVICE_ID_LIGHTGUN_TRIGGER 2
@ -66,15 +101,30 @@ extern "C" {
#define RETRO_DEVICE_ID_LIGHTGUN_PAUSE 5
#define RETRO_DEVICE_ID_LIGHTGUN_START 6
// Returned from retro_get_region().
#define RETRO_REGION_NTSC 0
#define RETRO_REGION_PAL 1
// Passed to retro_get_memory_data/size().
// If the memory type doesn't apply to the implementation NULL/0 can be returned.
#define RETRO_MEMORY_MASK 0xff
// Regular save ram. This ram is usually found on a game cartridge, backed up by a battery.
// If save game data is too complex for a single memory buffer,
// the SYSTEM_DIRECTORY environment callback can be used.
#define RETRO_MEMORY_SAVE_RAM 0
// Some games have a built-in clock to keep track of time.
// This memory is usually just a couple of bytes to keep track of time.
#define RETRO_MEMORY_RTC 1
// System ram lets a frontend peek into a game systems main RAM.
#define RETRO_MEMORY_SYSTEM_RAM 2
// Video ram lets a frontend peek into a game systems video RAM (VRAM).
#define RETRO_MEMORY_VIDEO_RAM 3
// Special memory types.
#define RETRO_MEMORY_SNES_BSX_RAM ((1 << 8) | RETRO_MEMORY_SAVE_RAM)
#define RETRO_MEMORY_SNES_BSX_PRAM ((2 << 8) | RETRO_MEMORY_SAVE_RAM)
#define RETRO_MEMORY_SNES_SUFAMI_TURBO_A_RAM ((3 << 8) | RETRO_MEMORY_SAVE_RAM)
@ -82,11 +132,161 @@ extern "C" {
#define RETRO_MEMORY_SNES_GAME_BOY_RAM ((5 << 8) | RETRO_MEMORY_SAVE_RAM)
#define RETRO_MEMORY_SNES_GAME_BOY_RTC ((6 << 8) | RETRO_MEMORY_RTC)
// Special game types passed into retro_load_game_special().
// Only used when multiple ROMs are required.
#define RETRO_GAME_TYPE_BSX 0x101
#define RETRO_GAME_TYPE_BSX_SLOTTED 0x102
#define RETRO_GAME_TYPE_SUFAMI_TURBO 0x103
#define RETRO_GAME_TYPE_SUPER_GAME_BOY 0x104
// Keysyms used for ID in input state callback when polling RETRO_KEYBOARD.
enum retro_key
{
RETROK_UNKNOWN = 0,
RETROK_FIRST = 0,
RETROK_BACKSPACE = 8,
RETROK_TAB = 9,
RETROK_CLEAR = 12,
RETROK_RETURN = 13,
RETROK_PAUSE = 19,
RETROK_ESCAPE = 27,
RETROK_SPACE = 32,
RETROK_EXCLAIM = 33,
RETROK_QUOTEDBL = 34,
RETROK_HASH = 35,
RETROK_DOLLAR = 36,
RETROK_AMPERSAND = 38,
RETROK_QUOTE = 39,
RETROK_LEFTPAREN = 40,
RETROK_RIGHTPAREN = 41,
RETROK_ASTERISK = 42,
RETROK_PLUS = 43,
RETROK_COMMA = 44,
RETROK_MINUS = 45,
RETROK_PERIOD = 46,
RETROK_SLASH = 47,
RETROK_0 = 48,
RETROK_1 = 49,
RETROK_2 = 50,
RETROK_3 = 51,
RETROK_4 = 52,
RETROK_5 = 53,
RETROK_6 = 54,
RETROK_7 = 55,
RETROK_8 = 56,
RETROK_9 = 57,
RETROK_COLON = 58,
RETROK_SEMICOLON = 59,
RETROK_LESS = 60,
RETROK_EQUALS = 61,
RETROK_GREATER = 62,
RETROK_QUESTION = 63,
RETROK_AT = 64,
RETROK_LEFTBRACKET = 91,
RETROK_BACKSLASH = 92,
RETROK_RIGHTBRACKET = 93,
RETROK_CARET = 94,
RETROK_UNDERSCORE = 95,
RETROK_BACKQUOTE = 96,
RETROK_a = 97,
RETROK_b = 98,
RETROK_c = 99,
RETROK_d = 100,
RETROK_e = 101,
RETROK_f = 102,
RETROK_g = 103,
RETROK_h = 104,
RETROK_i = 105,
RETROK_j = 106,
RETROK_k = 107,
RETROK_l = 108,
RETROK_m = 109,
RETROK_n = 110,
RETROK_o = 111,
RETROK_p = 112,
RETROK_q = 113,
RETROK_r = 114,
RETROK_s = 115,
RETROK_t = 116,
RETROK_u = 117,
RETROK_v = 118,
RETROK_w = 119,
RETROK_x = 120,
RETROK_y = 121,
RETROK_z = 122,
RETROK_DELETE = 127,
RETROK_KP0 = 256,
RETROK_KP1 = 257,
RETROK_KP2 = 258,
RETROK_KP3 = 259,
RETROK_KP4 = 260,
RETROK_KP5 = 261,
RETROK_KP6 = 262,
RETROK_KP7 = 263,
RETROK_KP8 = 264,
RETROK_KP9 = 265,
RETROK_KP_PERIOD = 266,
RETROK_KP_DIVIDE = 267,
RETROK_KP_MULTIPLY = 268,
RETROK_KP_MINUS = 269,
RETROK_KP_PLUS = 270,
RETROK_KP_ENTER = 271,
RETROK_KP_EQUALS = 272,
RETROK_UP = 273,
RETROK_DOWN = 274,
RETROK_RIGHT = 275,
RETROK_LEFT = 276,
RETROK_INSERT = 277,
RETROK_HOME = 278,
RETROK_END = 279,
RETROK_PAGEUP = 280,
RETROK_PAGEDOWN = 281,
RETROK_F1 = 282,
RETROK_F2 = 283,
RETROK_F3 = 284,
RETROK_F4 = 285,
RETROK_F5 = 286,
RETROK_F6 = 287,
RETROK_F7 = 288,
RETROK_F8 = 289,
RETROK_F9 = 290,
RETROK_F10 = 291,
RETROK_F11 = 292,
RETROK_F12 = 293,
RETROK_F13 = 294,
RETROK_F14 = 295,
RETROK_F15 = 296,
RETROK_NUMLOCK = 300,
RETROK_CAPSLOCK = 301,
RETROK_SCROLLOCK = 302,
RETROK_RSHIFT = 303,
RETROK_LSHIFT = 304,
RETROK_RCTRL = 305,
RETROK_LCTRL = 306,
RETROK_RALT = 307,
RETROK_LALT = 308,
RETROK_RMETA = 309,
RETROK_LMETA = 310,
RETROK_LSUPER = 311,
RETROK_RSUPER = 312,
RETROK_MODE = 313,
RETROK_COMPOSE = 314,
RETROK_HELP = 315,
RETROK_PRINT = 316,
RETROK_SYSREQ = 317,
RETROK_BREAK = 318,
RETROK_MENU = 319,
RETROK_POWER = 320,
RETROK_EURO = 321,
RETROK_UNDO = 322,
RETROK_LAST
};
// Environment commands.
#define RETRO_ENVIRONMENT_SET_ROTATION 1 // const unsigned * --
@ -99,7 +299,7 @@ extern "C" {
// Boolean value whether or not the implementation should use overscan, or crop away overscan.
//
#define RETRO_ENVIRONMENT_GET_CAN_DUPE 3 // bool * --
// Boolean value whether or not RetroArch supports frame duping,
// Boolean value whether or not frontend supports frame duping,
// passing NULL to video frame callback.
//
#define RETRO_ENVIRONMENT_GET_VARIABLE 4 // struct retro_variable * --
@ -133,8 +333,9 @@ extern "C" {
// about too demanding implementations.
//
// The levels are "floating", but roughly defined as:
// 1: Low-powered devices such as Raspberry Pi, smart phones, tablets, etc.
// 2: Medium-spec consoles, such as PS3/360, with sub-par CPUs.
// 0: Low-powered embedded devices such as Raspberry Pi
// 1: 6th generation consoles, such as Wii/Xbox 1, and phones, tablets, etc.
// 2: 7th generation consoles, such as PS3/360, with sub-par CPUs.
// 3: Modern desktop/laptops with reasonably powerful CPUs.
// 4: High-end desktops with very powerful CPUs.
//
@ -154,14 +355,36 @@ extern "C" {
#define RETRO_ENVIRONMENT_SET_PIXEL_FORMAT 10
// const enum retro_pixel_format * --
// Sets the internal pixel format used by the implementation.
// The default pixel format is RETRO_PIXEL_FORMAT_XRGB1555.
// The default pixel format is RETRO_PIXEL_FORMAT_0RGB1555.
// This pixel format however, is deprecated (see enum retro_pixel_format).
// If the call returns false, the frontend does not support this pixel format.
// This function should be called inside retro_load_game() or retro_get_system_av_info().
//
#define RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS 11
// const struct retro_input_descriptor * --
// Sets an array of retro_input_descriptors.
// It is up to the frontend to present this in a usable way.
// The array is terminated by retro_input_descriptor::description being set to NULL.
// This function can be called at any time, but it is recommended to call it as early as possible.
enum retro_pixel_format
{
RETRO_PIXEL_FORMAT_0RGB1555 = 0, // 0RGB1555, native endian. 0 bit must be set to 0.
RETRO_PIXEL_FORMAT_XRGB8888 // XRGB8888, native endian. X bits are ignored.
// 0RGB1555, native endian. 0 bit must be set to 0.
// This pixel format is default for compatibility concerns only.
// If a 15/16-bit pixel format is desired, consider using RGB565.
RETRO_PIXEL_FORMAT_0RGB1555 = 0,
// XRGB8888, native endian. X bits are ignored.
RETRO_PIXEL_FORMAT_XRGB8888 = 1,
// RGB565, native endian. This pixel format is the recommended format to use if a 15/16-bit format is desired
// as it is the pixel format that is typically available on a wide range of low-power devices.
// It is also natively supported in APIs like OpenGL ES.
RETRO_PIXEL_FORMAT_RGB565 = 2,
// Ensure sizeof() == sizeof(int).
RETRO_PIXEL_FORMAT_UNKNOWN = INT_MAX
};
struct retro_message
@ -170,8 +393,25 @@ struct retro_message
unsigned frames; // Duration in frames of message.
};
// Describes how the libretro implementation maps a libretro input bind
// to its internal input system through a human readable string.
// This string can be used to better let a user configure input.
struct retro_input_descriptor
{
// Associates given parameters with a description.
unsigned port;
unsigned device;
unsigned index;
unsigned id;
const char *description; // Human readable description for parameters.
// The pointer must remain valid until retro_unload_game() is called.
};
struct retro_system_info
{
// All pointers are owned by libretro implementation, and pointers must remain valid until retro_deinit() is called.
const char *library_name; // Descriptive name of library. Should not contain any version numbers, etc.
const char *library_version; // Descriptive version of core.
@ -240,6 +480,8 @@ typedef bool (*retro_environment_t)(unsigned cmd, void *data);
// Render a frame. Pixel format is 15-bit 0RGB1555 native endian unless changed (see RETRO_ENVIRONMENT_SET_PIXEL_FORMAT).
// Width and height specify dimensions of buffer.
// Pitch specifices length in bytes between two lines in buffer.
// For performance reasons, it is highly recommended to have a frame that is packed in memory, i.e. pitch == width * byte_per_pixel.
// Certain graphic APIs, such as OpenGL ES, do not like textures that are not packed in memory.
typedef void (*retro_video_refresh_t)(const void *data, unsigned width, unsigned height, size_t pitch);
// Renders a single audio frame. Should only be used if implementation generates a single sample at a time.
@ -279,6 +521,8 @@ void retro_get_system_info(struct retro_system_info *info);
// Gets information about system audio/video timings and geometry.
// Can be called only after retro_load_game() has successfully completed.
// NOTE: The implementation of this function might not initialize every variable if needed.
// E.g. geom.aspect_ratio might not be initialized if core doesn't desire a particular aspect ratio.
void retro_get_system_av_info(struct retro_system_av_info *info);
// Sets device to be used for player 'port'.

View File

@ -22,7 +22,7 @@
Optimization="0"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\source&quot;;&quot;$(SolutionDir)\..\..\source\cd_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw&quot;;&quot;$(SolutionDir)\..\..\source\sound&quot;;&quot;$(SolutionDir)\..\..\source\z80&quot;;&quot;$(SolutionDir)\..\..\&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\..\..\source\m68k&quot;;&quot;$(SolutionDir)\..\..\source\input_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw\svp&quot;;&quot;$(SolutionDir)\..\..\source\ntsc&quot;;&quot;$(SolutionDir)\..\..\libretro&quot;;&quot;$(SolutionDir)\msvc-2003-xbox1&quot;"
PreprocessorDefinitions="_DEBUG;_XBOX;_XBOX1;_LIB;__LIBRETRO__;LSB_FIRST;USE_15BPP_RENDERING;INLINE=static _inline;__restrict="
PreprocessorDefinitions="_DEBUG;_XBOX;_XBOX1;_LIB;__LIBRETRO__;LSB_FIRST;USE_16BPP_RENDERING;INLINE=static _inline;__restrict=;FRONTEND_SUPPORTS_RGB565"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@ -56,7 +56,7 @@
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\source&quot;;&quot;$(SolutionDir)\..\..\source\cd_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw&quot;;&quot;$(SolutionDir)\..\..\source\sound&quot;;&quot;$(SolutionDir)\..\..\source\z80&quot;;&quot;$(SolutionDir)\..\..\&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\..\..\source\m68k&quot;;&quot;$(SolutionDir)\..\..\source\input_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw\svp&quot;;&quot;$(SolutionDir)\..\..\source\ntsc&quot;;&quot;$(SolutionDir)\..\..\libretro&quot;;&quot;$(SolutionDir)\msvc-2003-xbox1&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;PROFILE;_LIB;__LIBRETRO__;LSB_FIRST;USE_15BPP_RENDERING;INLINE=static _inline;__restrict="
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;PROFILE;_LIB;__LIBRETRO__;LSB_FIRST;USE_16BPP_RENDERING;INLINE=static _inline;__restrict=;FRONTEND_SUPPORTS_RGB565"
StringPooling="TRUE"
RuntimeLibrary="0"
BufferSecurityCheck="TRUE"
@ -91,7 +91,7 @@
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\source&quot;;&quot;$(SolutionDir)\..\..\source\cd_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw&quot;;&quot;$(SolutionDir)\..\..\source\sound&quot;;&quot;$(SolutionDir)\..\..\source\z80&quot;;&quot;$(SolutionDir)\..\..\&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\..\..\source\m68k&quot;;&quot;$(SolutionDir)\..\..\source\input_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw\svp&quot;;&quot;$(SolutionDir)\..\..\source\ntsc&quot;;&quot;$(SolutionDir)\..\..\libretro&quot;;&quot;$(SolutionDir)\msvc-2003-xbox1&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;PROFILE;FASTCAP;_LIB;__LIBRETRO__;LSB_FIRST;USE_15BPP_RENDERING;INLINE=static _inline;__restrict="
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;PROFILE;FASTCAP;_LIB;__LIBRETRO__;LSB_FIRST;USE_16BPP_RENDERING;INLINE=static _inline;__restrict=;FRONTEND_SUPPORTS_RGB565"
StringPooling="TRUE"
RuntimeLibrary="0"
BufferSecurityCheck="TRUE"
@ -127,7 +127,7 @@
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\source&quot;;&quot;$(SolutionDir)\..\..\source\cd_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw&quot;;&quot;$(SolutionDir)\..\..\source\sound&quot;;&quot;$(SolutionDir)\..\..\source\z80&quot;;&quot;$(SolutionDir)\..\..\&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\..\..\source\m68k&quot;;&quot;$(SolutionDir)\..\..\source\input_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw\svp&quot;;&quot;$(SolutionDir)\..\..\source\ntsc&quot;;&quot;$(SolutionDir)\..\..\libretro&quot;;&quot;$(SolutionDir)\msvc-2003-xbox1&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;_LIB;__LIBRETRO__;LSB_FIRST;USE_15BPP_RENDERING;INLINE=static _inline;__restrict="
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;_LIB;__LIBRETRO__;LSB_FIRST;USE_16BPP_RENDERING;INLINE=static _inline;__restrict=;FRONTEND_SUPPORTS_RGB565"
StringPooling="TRUE"
RuntimeLibrary="0"
BufferSecurityCheck="TRUE"
@ -163,7 +163,7 @@
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\..\source&quot;;&quot;$(SolutionDir)\..\..\source\cd_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw&quot;;&quot;$(SolutionDir)\..\..\source\sound&quot;;&quot;$(SolutionDir)\..\..\source\z80&quot;;&quot;$(SolutionDir)\..\..\&quot;;&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)\..\..\source\m68k&quot;;&quot;$(SolutionDir)\..\..\source\input_hw&quot;;&quot;$(SolutionDir)\..\..\source\cart_hw\svp&quot;;&quot;$(SolutionDir)\..\..\source\ntsc&quot;;&quot;$(SolutionDir)\..\..\libretro&quot;;&quot;$(SolutionDir)\msvc-2003-xbox1&quot;"
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;LTCG;_LIB;__LIBRETRO__;LSB_FIRST;USE_15BPP_RENDERING;INLINE=static _inline;__restrict="
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;LTCG;_LIB;__LIBRETRO__;LSB_FIRST;USE_16BPP_RENDERING;INLINE=static _inline;__restrict=;FRONTEND_SUPPORTS_RGB565"
StringPooling="TRUE"
RuntimeLibrary="0"
BufferSecurityCheck="TRUE"
@ -263,7 +263,103 @@
RelativePath="..\..\..\source\cart_hw\areplay.c">
</File>
<File
RelativePath="..\..\..\source\cart_hw\gg_eeprom.c">
RelativePath="..\..\..\source\cart_hw\eeprom_93c.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\source\cart_hw\eeprom_i2c.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\source\cart_hw\eeprom_spi.c">
<FileConfiguration
Name="Debug|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Profile|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Profile_FastCap|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release_LTCG|Xbox">
<Tool
Name="VCCLCompilerTool"
CompileAs="1"/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\source\cart_hw\ggenie.c">
@ -271,9 +367,6 @@
<File
RelativePath="..\..\..\source\cart_hw\md_cart.c">
</File>
<File
RelativePath="..\..\..\source\cart_hw\md_eeprom.c">
</File>
<File
RelativePath="..\..\..\source\cart_hw\sms_cart.c">
</File>
@ -295,14 +388,11 @@
Name="sound"
Filter="">
<File
RelativePath="..\..\..\source\sound\blip.c">
RelativePath="..\..\..\source\sound\blip_buf.c">
</File>
<File
RelativePath="..\..\..\source\sound\eq.c">
</File>
<File
RelativePath="..\..\..\source\sound\Fir_Resampler.c">
</File>
<File
RelativePath="..\..\..\source\sound\sn76489.c">
</File>

View File

@ -27,13 +27,70 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\source\cart_hw\areplay.c" />
<ClCompile Include="..\..\..\source\cart_hw\ggenie.c" />
<ClCompile Include="..\..\..\source\cart_hw\gg_eeprom.c" />
<ClCompile Include="..\..\..\source\cart_hw\md_cart.c" />
<ClCompile Include="..\..\..\source\cart_hw\md_eeprom.c" />
<ClCompile Include="..\..\..\source\cart_hw\sms_cart.c" />
<ClCompile Include="..\..\..\source\cart_hw\sram.c" />
<ClCompile Include="..\..\..\source\cart_hw\areplay.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_93c.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_i2c.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_spi.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\ggenie.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\md_cart.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\sms_cart.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\sram.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\svp\ssp16.c" />
<ClCompile Include="..\..\..\source\cart_hw\svp\svp.c" />
<ClCompile Include="..\..\..\source\cd_hw\cdc.c" />
@ -76,9 +133,15 @@
<ClCompile Include="..\..\..\source\memz80.c" />
<ClCompile Include="..\..\..\source\ntsc\md_ntsc.c" />
<ClCompile Include="..\..\..\source\ntsc\sms_ntsc.c" />
<ClCompile Include="..\..\..\source\sound\blip.c" />
<ClCompile Include="..\..\..\source\sound\blip_buf.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\eq.c" />
<ClCompile Include="..\..\..\source\sound\Fir_Resampler.c" />
<ClCompile Include="..\..\..\source\sound\sn76489.c" />
<ClCompile Include="..\..\..\source\sound\sound.c" />
<ClCompile Include="..\..\..\source\sound\ym2413.c" />
@ -179,7 +242,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck>
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;_XBOX;_XBOX360;_LIB;INLINE=static _inline;__attribute__=;__inline__=_inline;__extension__=;USE_15BPP_RENDERING;__LIBRETRO__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_DEBUG;_XBOX;_XBOX360;_LIB;INLINE=static _inline;__attribute__=;__inline__=_inline;__extension__=;USE_16BPP_RENDERING;__LIBRETRO__;FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
<AdditionalIncludeDirectories>$(SolutionDir)\..\..\libretro;$(SolutionDir)\..\..\source;$(SolutionDir)\..\..\source\m68k;$(SolutionDir)\..\..\source\sound;$(SolutionDir)\..\..\source\cart_hw;$(SolutionDir)\..\..\source\cart_hw\svp;$(SolutionDir)\..\..\source\input_hw;$(SolutionDir)\..\..\source\ntsc;$(SolutionDir)\..\..\source\z80;$(SolutionDir)\..\..\source\cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
@ -200,7 +263,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck>
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;_XBOX;_XBOX360;_LIB;%(PreprocessorDefinitions);INLINE=static _inline;__attribute__=;__inline__=_inline;__extension__=;USE_15BPP_RENDERING;__LIBRETRO__</PreprocessorDefinitions>
<PreprocessorDefinitions>_DEBUG;_XBOX;_XBOX360;_LIB;%(PreprocessorDefinitions);INLINE=static _inline;__attribute__=;__inline__=_inline;__extension__=;USE_16BPP_RENDERING;__LIBRETRO__;FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
<AdditionalIncludeDirectories>$(SolutionDir)\..\..\libretro;$(SolutionDir)\..\..\source;$(SolutionDir)\..\..\source\m68k;$(SolutionDir)\..\..\source\sound;$(SolutionDir)\..\..\source\cart_hw;$(SolutionDir)\..\..\source\cart_hw\svp;$(SolutionDir)\..\..\source\input_hw;$(SolutionDir)\..\..\source\ntsc;$(SolutionDir)\..\..\source\z80;$(SolutionDir)\..\..\source\cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
@ -222,7 +285,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck>
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;PROFILE;_LIB;__LIBRETRO__;USE_15BPP_RENDERING;INLINE=static _inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;PROFILE;_LIB;__LIBRETRO__;USE_16BPP_RENDERING;INLINE=static _inline;FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
<AdditionalIncludeDirectories>$(SolutionDir)\..\..\libretro;$(SolutionDir)\..\..\source;$(SolutionDir)\..\..\source\m68k;$(SolutionDir)\..\..\source\sound;$(SolutionDir)\..\..\source\cart_hw;$(SolutionDir)\..\..\source\cart_hw\svp;$(SolutionDir)\..\..\source\input_hw;$(SolutionDir)\..\..\source\ntsc;$(SolutionDir)\..\..\source\z80;$(SolutionDir)\..\..\source\cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
@ -248,7 +311,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck>
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;PROFILE;FASTCAP;_LIB;__LIBRETRO__;USE_15BPP_RENDERING;INLINE=static _inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;PROFILE;FASTCAP;_LIB;__LIBRETRO__;USE_16BPP_RENDERING;INLINE=static _inline;FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\..\libretro;$(SolutionDir)\..\..\source;$(SolutionDir)\..\..\source\m68k;$(SolutionDir)\..\..\source\sound;$(SolutionDir)\..\..\source\cart_hw;$(SolutionDir)\..\..\source\cart_hw\svp;$(SolutionDir)\..\..\source\input_hw;$(SolutionDir)\..\..\source\ntsc;$(SolutionDir)\..\..\source\z80;$(SolutionDir)\..\..\source\cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
@ -271,7 +334,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck>
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;_LIB;INLINE=static _inline;__inline__=_inline;__extension__=;USE_15BPP_RENDERING;__LIBRETRO__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;_LIB;INLINE=static _inline;__inline__=_inline;__extension__=;USE_16BPP_RENDERING;__LIBRETRO__;FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\..\libretro;$(SolutionDir)\..\..\source;$(SolutionDir)\..\..\source\m68k;$(SolutionDir)\..\..\source\sound;$(SolutionDir)\..\..\source\cart_hw;$(SolutionDir)\..\..\source\cart_hw\svp;$(SolutionDir)\..\..\source\input_hw;$(SolutionDir)\..\..\source\ntsc;$(SolutionDir)\..\..\source\z80;$(SolutionDir)\..\..\source\cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
@ -294,7 +357,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck>
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;LTCG;_LIB;INLINE=static _inline;__inline__=_inline;__extension__=;USE_15BPP_RENDERING;__LIBRETRO__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;_XBOX;_XBOX360;LTCG;_LIB;INLINE=static _inline;__inline__=_inline;__extension__=;USE_16BPP_RENDERING;__LIBRETRO__;FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\..\libretro;$(SolutionDir)\..\..\source;$(SolutionDir)\..\..\source\m68k;$(SolutionDir)\..\..\source\sound;$(SolutionDir)\..\..\source\cart_hw;$(SolutionDir)\..\..\source\cart_hw\svp;$(SolutionDir)\..\..\source\input_hw;$(SolutionDir)\..\..\source\ntsc;$(SolutionDir)\..\..\source\z80;$(SolutionDir)\..\..\source\cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>

View File

@ -74,15 +74,9 @@
<ClCompile Include="..\..\..\source\sound\ym2612.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\blip.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\eq.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\Fir_Resampler.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\sn76489.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
@ -143,18 +137,12 @@
<ClCompile Include="..\..\..\source\cart_hw\areplay.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\gg_eeprom.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\ggenie.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\md_cart.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\md_eeprom.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\sms_cart.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
@ -182,5 +170,17 @@
<ClCompile Include="..\..\..\source\cd_hw\scd.c">
<Filter>Source Files\cd_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\blip_buf.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_spi.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_93c.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_i2c.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -12,10 +12,20 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\source\cart_hw\areplay.c" />
<ClCompile Include="..\..\..\source\cart_hw\eeprom_93c.c">
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_i2c.c">
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_spi.c">
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">FRONTEND_SUPPORTS_RGB565;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\ggenie.c" />
<ClCompile Include="..\..\..\source\cart_hw\gg_eeprom.c" />
<ClCompile Include="..\..\..\source\cart_hw\md_cart.c" />
<ClCompile Include="..\..\..\source\cart_hw\md_eeprom.c" />
<ClCompile Include="..\..\..\source\cart_hw\sms_cart.c" />
<ClCompile Include="..\..\..\source\cart_hw\sram.c" />
<ClCompile Include="..\..\..\source\cart_hw\svp\ssp16.c" />
@ -46,9 +56,8 @@
<ClCompile Include="..\..\..\source\memz80.c" />
<ClCompile Include="..\..\..\source\ntsc\md_ntsc.c" />
<ClCompile Include="..\..\..\source\ntsc\sms_ntsc.c" />
<ClCompile Include="..\..\..\source\sound\blip.c" />
<ClCompile Include="..\..\..\source\sound\blip_buf.c" />
<ClCompile Include="..\..\..\source\sound\eq.c" />
<ClCompile Include="..\..\..\source\sound\Fir_Resampler.c" />
<ClCompile Include="..\..\..\source\sound\sn76489.c" />
<ClCompile Include="..\..\..\source\sound\sound.c" />
<ClCompile Include="..\..\..\source\sound\ym2413.c" />
@ -103,7 +112,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MSVC2010_EXPORTS;_CRT_SECURE_NO_WARNINGS;INLINE=static _inline;__inline__=_inline;__extension__=;LSB_FIRST;__LIBRETRO__;USE_15BPP_RENDERING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MSVC2010_EXPORTS;_CRT_SECURE_NO_WARNINGS;INLINE=static _inline;__inline__=_inline;__extension__=;LSB_FIRST;__LIBRETRO__;USE_16BPP_RENDERING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)/../../source;$(SolutionDir)/../../utils/zlib;$(SolutionDir)/../../source/cart_hw/svp;$(SolutionDir)/../../libretro;$(SolutionDir)/../../source/m68k;$(SolutionDir)/../../source/z80;$(SolutionDir)/../../source/input_hw;$(SolutionDir)/../../source/cart_hw;$(SolutionDir)/../../source/sound;$(SolutionDir)/../../source/ntsc;$(SolutionDir)/../../source/cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
@ -120,7 +129,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MSVC2010_EXPORTS;_CRT_SECURE_NO_WARNINGS;INLINE=static _inline;__inline__=_inline;__extension__=;LSB_FIRST;__LIBRETRO__;USE_15BPP_RENDERING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MSVC2010_EXPORTS;_CRT_SECURE_NO_WARNINGS;INLINE=static _inline;__inline__=_inline;__extension__=;LSB_FIRST;__LIBRETRO__;USE_16BPP_RENDERING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)/../../source;$(SolutionDir)/../../utils/zlib;$(SolutionDir)/../../source/cart_hw/svp;$(SolutionDir)/../../libretro;$(SolutionDir)/../../source/m68k;$(SolutionDir)/../../source/z80;$(SolutionDir)/../../source/input_hw;$(SolutionDir)/../../source/cart_hw;$(SolutionDir)/../../source/sound;$(SolutionDir)/../../source/ntsc;$(SolutionDir)/../../source/cd_hw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>

View File

@ -54,18 +54,12 @@
<ClCompile Include="..\..\..\source\cart_hw\areplay.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\gg_eeprom.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\ggenie.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\md_cart.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\md_eeprom.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\sms_cart.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
@ -117,15 +111,9 @@
<ClCompile Include="..\..\..\source\sound\ym2612.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\blip.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\eq.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\Fir_Resampler.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\sn76489.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
@ -189,5 +177,17 @@
<ClCompile Include="..\..\scrc32.c">
<Filter>Source Files\libretro</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_spi.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_93c.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\cart_hw\eeprom_i2c.c">
<Filter>Source Files\cart_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\sound\blip_buf.c">
<Filter>Source Files\sound</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -87,6 +87,7 @@ typedef struct
float bgm_volume;
float sfx_volume;
char lastdir[4][2][MAXPATHLEN];
uint8 gg_extra;
} t_config;
/* Global data */
@ -106,7 +107,7 @@ extern char MS_BIOS_JP[256];
extern int16 soundbuffer[3068];
#define VERSION "Genesis Plus GX 1.7.0 (libretro)"
#define VERSION "Genesis Plus GX 1.7.1 (libretro)"
void osd_input_update(void);
int load_archive(char *filename, unsigned char *buffer, int maxsize, char *extension);