commit
71e4b7b375
|
@ -1,6 +1,11 @@
|
||||||
#ifndef GB_H
|
#ifndef GB_H
|
||||||
#define GB_H
|
#define GB_H
|
||||||
|
|
||||||
|
#define gbWidth 160
|
||||||
|
#define gbHeight 144
|
||||||
|
#define sgbWidth 256
|
||||||
|
#define sgbHeight 224
|
||||||
|
|
||||||
const int GB_C_FLAG = 0x10;
|
const int GB_C_FLAG = 0x10;
|
||||||
const int GB_H_FLAG = 0x20;
|
const int GB_H_FLAG = 0x20;
|
||||||
const int GB_N_FLAG = 0x40;
|
const int GB_N_FLAG = 0x40;
|
||||||
|
@ -55,6 +60,8 @@ void setColorizerHack(bool value);
|
||||||
bool allowColorizerHack(void);
|
bool allowColorizerHack(void);
|
||||||
|
|
||||||
extern int gbHardware;
|
extern int gbHardware;
|
||||||
|
extern int gbRomType; // gets type from header 0x147
|
||||||
|
extern int gbBattery; // enabled when gbRamSize != 0
|
||||||
|
|
||||||
extern struct EmulatedSystem GBSystem;
|
extern struct EmulatedSystem GBSystem;
|
||||||
|
|
||||||
|
|
|
@ -246,6 +246,7 @@ static char dummy_state[735 * 2];
|
||||||
&name, sizeof(type) \
|
&name, sizeof(type) \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __LIBRETRO__
|
||||||
// Old save state support
|
// Old save state support
|
||||||
|
|
||||||
static variable_desc gbsound_format[] = {
|
static variable_desc gbsound_format[] = {
|
||||||
|
@ -355,7 +356,6 @@ enum {
|
||||||
nr52
|
nr52
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef __LIBRETRO__
|
|
||||||
static void gbSoundReadGameOld(int version, gzFile gzFile)
|
static void gbSoundReadGameOld(int version, gzFile gzFile)
|
||||||
{
|
{
|
||||||
if (version == 11) {
|
if (version == 11) {
|
||||||
|
|
|
@ -27,30 +27,6 @@ int flashDeviceID = 0x1b;
|
||||||
int flashManufacturerID = 0x32;
|
int flashManufacturerID = 0x32;
|
||||||
int flashBank = 0;
|
int flashBank = 0;
|
||||||
|
|
||||||
static variable_desc flashSaveData[] = {
|
|
||||||
{ &flashState, sizeof(int) },
|
|
||||||
{ &flashReadState, sizeof(int) },
|
|
||||||
{ &flashSaveMemory[0], SIZE_FLASH512 },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
static variable_desc flashSaveData2[] = {
|
|
||||||
{ &flashState, sizeof(int) },
|
|
||||||
{ &flashReadState, sizeof(int) },
|
|
||||||
{ &flashSize, sizeof(int) },
|
|
||||||
{ &flashSaveMemory[0], SIZE_FLASH1M },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
static variable_desc flashSaveData3[] = {
|
|
||||||
{ &flashState, sizeof(int) },
|
|
||||||
{ &flashReadState, sizeof(int) },
|
|
||||||
{ &flashSize, sizeof(int) },
|
|
||||||
{ &flashBank, sizeof(int) },
|
|
||||||
{ &flashSaveMemory[0], SIZE_FLASH1M },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
void flashInit()
|
void flashInit()
|
||||||
{
|
{
|
||||||
memset(flashSaveMemory, 0xff, sizeof(flashSaveMemory));
|
memset(flashSaveMemory, 0xff, sizeof(flashSaveMemory));
|
||||||
|
@ -63,49 +39,6 @@ void flashReset()
|
||||||
flashBank = 0;
|
flashBank = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __LIBRETRO__
|
|
||||||
void flashSaveGame(uint8_t*& data)
|
|
||||||
{
|
|
||||||
utilWriteDataMem(data, flashSaveData3);
|
|
||||||
}
|
|
||||||
|
|
||||||
void flashReadGame(const uint8_t*& data, int)
|
|
||||||
{
|
|
||||||
utilReadDataMem(data, flashSaveData3);
|
|
||||||
}
|
|
||||||
|
|
||||||
#else // !__LIBRETRO__
|
|
||||||
void flashSaveGame(gzFile gzFile)
|
|
||||||
{
|
|
||||||
utilWriteData(gzFile, flashSaveData3);
|
|
||||||
}
|
|
||||||
|
|
||||||
void flashReadGame(gzFile gzFile, int version)
|
|
||||||
{
|
|
||||||
if (version < SAVE_GAME_VERSION_5)
|
|
||||||
utilReadData(gzFile, flashSaveData);
|
|
||||||
else if (version < SAVE_GAME_VERSION_7) {
|
|
||||||
utilReadData(gzFile, flashSaveData2);
|
|
||||||
flashBank = 0;
|
|
||||||
flashSetSize(flashSize);
|
|
||||||
} else {
|
|
||||||
utilReadData(gzFile, flashSaveData3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void flashReadGameSkip(gzFile gzFile, int version)
|
|
||||||
{
|
|
||||||
// skip the flash data in a save game
|
|
||||||
if (version < SAVE_GAME_VERSION_5)
|
|
||||||
utilReadDataSkip(gzFile, flashSaveData);
|
|
||||||
else if (version < SAVE_GAME_VERSION_7) {
|
|
||||||
utilReadDataSkip(gzFile, flashSaveData2);
|
|
||||||
} else {
|
|
||||||
utilReadDataSkip(gzFile, flashSaveData3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void flashSetSize(int size)
|
void flashSetSize(int size)
|
||||||
{
|
{
|
||||||
// log("Setting flash size to %d\n", size);
|
// log("Setting flash size to %d\n", size);
|
||||||
|
@ -279,3 +212,70 @@ void flashWrite(uint32_t address, uint8_t byte)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static variable_desc flashSaveData3[] = {
|
||||||
|
{ &flashState, sizeof(int) },
|
||||||
|
{ &flashReadState, sizeof(int) },
|
||||||
|
{ &flashSize, sizeof(int) },
|
||||||
|
{ &flashBank, sizeof(int) },
|
||||||
|
{ &flashSaveMemory[0], SIZE_FLASH1M },
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __LIBRETRO__
|
||||||
|
void flashSaveGame(uint8_t*& data)
|
||||||
|
{
|
||||||
|
utilWriteDataMem(data, flashSaveData3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void flashReadGame(const uint8_t*& data, int)
|
||||||
|
{
|
||||||
|
utilReadDataMem(data, flashSaveData3);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else // !__LIBRETRO__
|
||||||
|
static variable_desc flashSaveData[] = {
|
||||||
|
{ &flashState, sizeof(int) },
|
||||||
|
{ &flashReadState, sizeof(int) },
|
||||||
|
{ &flashSaveMemory[0], SIZE_FLASH512 },
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static variable_desc flashSaveData2[] = {
|
||||||
|
{ &flashState, sizeof(int) },
|
||||||
|
{ &flashReadState, sizeof(int) },
|
||||||
|
{ &flashSize, sizeof(int) },
|
||||||
|
{ &flashSaveMemory[0], SIZE_FLASH1M },
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
void flashSaveGame(gzFile gzFile)
|
||||||
|
{
|
||||||
|
utilWriteData(gzFile, flashSaveData3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void flashReadGame(gzFile gzFile, int version)
|
||||||
|
{
|
||||||
|
if (version < SAVE_GAME_VERSION_5)
|
||||||
|
utilReadData(gzFile, flashSaveData);
|
||||||
|
else if (version < SAVE_GAME_VERSION_7) {
|
||||||
|
utilReadData(gzFile, flashSaveData2);
|
||||||
|
flashBank = 0;
|
||||||
|
flashSetSize(flashSize);
|
||||||
|
} else {
|
||||||
|
utilReadData(gzFile, flashSaveData3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void flashReadGameSkip(gzFile gzFile, int version)
|
||||||
|
{
|
||||||
|
// skip the flash data in a save game
|
||||||
|
if (version < SAVE_GAME_VERSION_5)
|
||||||
|
utilReadDataSkip(gzFile, flashSaveData);
|
||||||
|
else if (version < SAVE_GAME_VERSION_7) {
|
||||||
|
utilReadDataSkip(gzFile, flashSaveData2);
|
||||||
|
} else {
|
||||||
|
utilReadDataSkip(gzFile, flashSaveData3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -1235,6 +1235,7 @@ DEFINE_ALU_INSN_C(1F, 3F, MVNS, YES)
|
||||||
int mult = (opcode & 0x0F); \
|
int mult = (opcode & 0x0F); \
|
||||||
uint32_t rs = reg[(opcode >> 8) & 0x0F].I; \
|
uint32_t rs = reg[(opcode >> 8) & 0x0F].I; \
|
||||||
int acc = (opcode >> 12) & 0x0F; /* or destLo */ \
|
int acc = (opcode >> 12) & 0x0F; /* or destLo */ \
|
||||||
|
maybe_unused(acc); \
|
||||||
int dest = (opcode >> 16) & 0x0F; /* or destHi */ \
|
int dest = (opcode >> 16) & 0x0F; /* or destHi */ \
|
||||||
OP; \
|
OP; \
|
||||||
SETCOND; \
|
SETCOND; \
|
||||||
|
|
|
@ -19,6 +19,9 @@ const uint64_t TICKS_PER_SECOND = 16777216;
|
||||||
#define SAVE_GAME_VERSION_10 10
|
#define SAVE_GAME_VERSION_10 10
|
||||||
#define SAVE_GAME_VERSION SAVE_GAME_VERSION_10
|
#define SAVE_GAME_VERSION SAVE_GAME_VERSION_10
|
||||||
|
|
||||||
|
#define gbaWidth 240
|
||||||
|
#define gbaHeight 160
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
GBA_SAVE_AUTO = 0,
|
GBA_SAVE_AUTO = 0,
|
||||||
GBA_SAVE_EEPROM,
|
GBA_SAVE_EEPROM,
|
||||||
|
|
|
@ -588,6 +588,7 @@ static struct {
|
||||||
int soundDSBValue;
|
int soundDSBValue;
|
||||||
} state;
|
} state;
|
||||||
|
|
||||||
|
#ifndef __LIBRETRO__
|
||||||
// Old GBA sound state format
|
// Old GBA sound state format
|
||||||
static variable_desc old_gba_state[] = {
|
static variable_desc old_gba_state[] = {
|
||||||
SKIP(int, soundPaused),
|
SKIP(int, soundPaused),
|
||||||
|
@ -673,6 +674,7 @@ variable_desc old_gba_state2[] = {
|
||||||
SKIP(int, sound3ForcedOutput),
|
SKIP(int, sound3ForcedOutput),
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
// New state format
|
// New state format
|
||||||
static variable_desc gba_state[] = {
|
static variable_desc gba_state[] = {
|
||||||
|
|
|
@ -6,8 +6,7 @@ SOURCES_CXX :=
|
||||||
SOURCES_CXX += \
|
SOURCES_CXX += \
|
||||||
$(CORE_DIR)/libretro/libretro.cpp \
|
$(CORE_DIR)/libretro/libretro.cpp \
|
||||||
$(CORE_DIR)/libretro/UtilRetro.cpp \
|
$(CORE_DIR)/libretro/UtilRetro.cpp \
|
||||||
$(CORE_DIR)/libretro/SoundRetro.cpp \
|
$(CORE_DIR)/libretro/SoundRetro.cpp
|
||||||
$(CORE_DIR)/libretro/scrc32.cpp
|
|
||||||
|
|
||||||
SOURCES_CXX += \
|
SOURCES_CXX += \
|
||||||
$(CORE_DIR)/apu/Gb_Oscs.cpp \
|
$(CORE_DIR)/apu/Gb_Oscs.cpp \
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "SoundRetro.h"
|
#include "SoundRetro.h"
|
||||||
#include "libretro.h"
|
#include "libretro.h"
|
||||||
#include "libretro_core_options.h"
|
#include "libretro_core_options.h"
|
||||||
|
#include "scrc32.h"
|
||||||
|
|
||||||
#include "../System.h"
|
#include "../System.h"
|
||||||
#include "../Util.h"
|
#include "../Util.h"
|
||||||
|
@ -40,27 +41,20 @@ static retro_environment_t environ_cb;
|
||||||
retro_audio_sample_batch_t audio_batch_cb;
|
retro_audio_sample_batch_t audio_batch_cb;
|
||||||
static retro_set_rumble_state_t rumble_cb;
|
static retro_set_rumble_state_t rumble_cb;
|
||||||
|
|
||||||
static char retro_system_directory[4096];
|
static char retro_system_directory[2048];
|
||||||
static char biosfile[4096];
|
static char biosfile[4096];
|
||||||
static float sndFiltering = 0.5f;
|
static float sndFiltering = 0.5f;
|
||||||
static bool sndInterpolation = true;
|
static bool sndInterpolation = true;
|
||||||
static bool can_dupe = false;
|
static bool can_dupe = false;
|
||||||
static bool usebios = false;
|
static bool usebios = false;
|
||||||
static unsigned retropad_device[4] = {0};
|
static unsigned retropad_device[4] = {0};
|
||||||
|
|
||||||
static const double FramesPerSecond = (16777216.0 / 280896.0); // 59.73
|
static const double FramesPerSecond = (16777216.0 / 280896.0); // 59.73
|
||||||
static const long SampleRate = 32768;
|
static const long SampleRate = 32768;
|
||||||
static const int GBWidth = 160;
|
static unsigned width = gbaWidth;
|
||||||
static const int GBHeight = 144;
|
static unsigned height = gbaHeight;
|
||||||
static const int SGBWidth = 256;
|
|
||||||
static const int SGBHeight = 224;
|
|
||||||
static const int GBAWidth = 240;
|
|
||||||
static const int GBAHeight = 160;
|
|
||||||
static unsigned width = 240;
|
|
||||||
static unsigned height = 160;
|
|
||||||
static EmulatedSystem* core = NULL;
|
static EmulatedSystem* core = NULL;
|
||||||
static IMAGE_TYPE type = IMAGE_UNKNOWN;
|
static IMAGE_TYPE type = IMAGE_UNKNOWN;
|
||||||
static unsigned current_gbPalette;
|
static unsigned current_gbPalette = 0;
|
||||||
static bool opt_colorizer_hack = false;
|
static bool opt_colorizer_hack = false;
|
||||||
|
|
||||||
uint16_t systemColorMap16[0x10000];
|
uint16_t systemColorMap16[0x10000];
|
||||||
|
@ -220,9 +214,6 @@ static void set_gbColorCorrection(int value)
|
||||||
gbColorOption = value;
|
gbColorOption = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int gbRomType; // gets type from header 0x147
|
|
||||||
extern int gbBattery; // enabled when gbRamSize != 0
|
|
||||||
|
|
||||||
static bool gb_hasrtc(void)
|
static bool gb_hasrtc(void)
|
||||||
{
|
{
|
||||||
switch (gbRomType) {
|
switch (gbRomType) {
|
||||||
|
@ -745,13 +736,11 @@ static void load_image_preferences(void)
|
||||||
"NONE"
|
"NONE"
|
||||||
};
|
};
|
||||||
|
|
||||||
char buffer[5];
|
bool found = false;
|
||||||
|
bool hasRumble = false;
|
||||||
buffer[0] = rom[0xac];
|
char buffer[12];
|
||||||
buffer[1] = rom[0xad];
|
unsigned i = 0, found_no = 0;
|
||||||
buffer[2] = rom[0xae];
|
unsigned long romCrc32 = crc32(0, rom, romSize);
|
||||||
buffer[3] = rom[0xaf];
|
|
||||||
buffer[4] = 0;
|
|
||||||
|
|
||||||
cpuSaveType = GBA_SAVE_AUTO;
|
cpuSaveType = GBA_SAVE_AUTO;
|
||||||
flashSize = SIZE_FLASH512;
|
flashSize = SIZE_FLASH512;
|
||||||
|
@ -759,12 +748,26 @@ static void load_image_preferences(void)
|
||||||
rtcEnabled = false;
|
rtcEnabled = false;
|
||||||
mirroringEnable = false;
|
mirroringEnable = false;
|
||||||
|
|
||||||
log("GameID in ROM is: %s\n", buffer);
|
log("File CRC32 : 0x%08X\n", romCrc32);
|
||||||
|
|
||||||
bool found = false;
|
buffer[0] = 0;
|
||||||
int found_no = 0;
|
for (i = 0; i < 12; i++) {
|
||||||
|
if (rom[0xa0 + i] == 0)
|
||||||
|
break;
|
||||||
|
buffer[i] = rom[0xa0 + i];
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 512; i++) {
|
buffer[i] = 0;
|
||||||
|
log("Game Title : %s\n", buffer);
|
||||||
|
|
||||||
|
buffer[0] = rom[0xac];
|
||||||
|
buffer[1] = rom[0xad];
|
||||||
|
buffer[2] = rom[0xae];
|
||||||
|
buffer[3] = rom[0xaf];
|
||||||
|
buffer[4] = 0;
|
||||||
|
log("Game Code : %s\n", buffer);
|
||||||
|
|
||||||
|
for (i = 0; i < 512; i++) {
|
||||||
if (!strcmp(gbaover[i].romid, buffer)) {
|
if (!strcmp(gbaover[i].romid, buffer)) {
|
||||||
found = true;
|
found = true;
|
||||||
found_no = i;
|
found_no = i;
|
||||||
|
@ -773,7 +776,6 @@ static void load_image_preferences(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found) {
|
if (found) {
|
||||||
log("Found ROM in vba-over list.\n");
|
|
||||||
log("Name : %s\n", gbaover[found_no].romtitle);
|
log("Name : %s\n", gbaover[found_no].romtitle);
|
||||||
|
|
||||||
rtcEnabled = gbaover[found_no].rtcEnabled;
|
rtcEnabled = gbaover[found_no].rtcEnabled;
|
||||||
|
@ -789,12 +791,10 @@ static void load_image_preferences(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// gameID that starts with 'F' are classic/famicom games
|
// gameID that starts with 'F' are classic/famicom games
|
||||||
mirroringEnable = (buffer[0] == 0x46) ? true : false;
|
mirroringEnable = (buffer[0] == 'F') ? true : false;
|
||||||
|
|
||||||
if (!cpuSaveType) {
|
if (!cpuSaveType)
|
||||||
log("Scrapping ROM for save type.\n");
|
|
||||||
utilGBAFindSave(romSize);
|
utilGBAFindSave(romSize);
|
||||||
}
|
|
||||||
|
|
||||||
saveType = cpuSaveType;
|
saveType = cpuSaveType;
|
||||||
|
|
||||||
|
@ -802,7 +802,12 @@ static void load_image_preferences(void)
|
||||||
flashSetSize(flashSize);
|
flashSetSize(flashSize);
|
||||||
|
|
||||||
rtcEnable(rtcEnabled);
|
rtcEnable(rtcEnabled);
|
||||||
rtcEnableRumble(!rtcEnabled);
|
|
||||||
|
// game code starting with 'R' or 'V' has rumble support
|
||||||
|
if ((buffer[0] == 'R') || (buffer[0] == 'V'))
|
||||||
|
hasRumble = true;
|
||||||
|
|
||||||
|
rtcEnableRumble(!rtcEnabled && hasRumble);
|
||||||
|
|
||||||
doMirroring(mirroringEnable);
|
doMirroring(mirroringEnable);
|
||||||
|
|
||||||
|
@ -811,7 +816,7 @@ static void load_image_preferences(void)
|
||||||
log("cpuSaveType : %s.\n", savetype[cpuSaveType]);
|
log("cpuSaveType : %s.\n", savetype[cpuSaveType]);
|
||||||
if (cpuSaveType == 3)
|
if (cpuSaveType == 3)
|
||||||
log("flashSize : %d.\n", flashSize);
|
log("flashSize : %d.\n", flashSize);
|
||||||
if (cpuSaveType == 1)
|
else if (cpuSaveType == 1)
|
||||||
log("eepromSize : %d.\n", eepromSize);
|
log("eepromSize : %d.\n", eepromSize);
|
||||||
log("mirroringEnable : %s.\n", mirroringEnable ? "Yes" : "No");
|
log("mirroringEnable : %s.\n", mirroringEnable ? "Yes" : "No");
|
||||||
}
|
}
|
||||||
|
@ -854,8 +859,8 @@ static void gba_init(void)
|
||||||
}
|
}
|
||||||
CPUInit(biosfile, usebios);
|
CPUInit(biosfile, usebios);
|
||||||
|
|
||||||
width = GBAWidth;
|
width = gbaWidth;
|
||||||
height = GBAHeight;
|
height = gbaHeight;
|
||||||
|
|
||||||
CPUReset();
|
CPUReset();
|
||||||
}
|
}
|
||||||
|
@ -883,13 +888,13 @@ static void gb_init(void)
|
||||||
gbCPUInit(biosfile, usebios);
|
gbCPUInit(biosfile, usebios);
|
||||||
|
|
||||||
if (gbBorderOn) {
|
if (gbBorderOn) {
|
||||||
width = gbBorderLineSkip = SGBWidth;
|
width = gbBorderLineSkip = sgbWidth;
|
||||||
height = SGBHeight;
|
height = sgbHeight;
|
||||||
gbBorderColumnSkip = (SGBWidth - GBWidth) >> 1;
|
gbBorderColumnSkip = (sgbWidth - gbWidth) >> 1;
|
||||||
gbBorderRowSkip = (SGBHeight - GBHeight) >> 1;
|
gbBorderRowSkip = (sgbHeight - gbHeight) >> 1;
|
||||||
} else {
|
} else {
|
||||||
width = gbBorderLineSkip = GBWidth;
|
width = gbBorderLineSkip = gbWidth;
|
||||||
height = GBHeight;
|
height = gbHeight;
|
||||||
gbBorderColumnSkip = gbBorderRowSkip = 0;
|
gbBorderColumnSkip = gbBorderRowSkip = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1171,7 +1176,7 @@ static void update_variables(bool startup)
|
||||||
|
|
||||||
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
|
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
|
||||||
{
|
{
|
||||||
int lastpal = current_gbPalette;
|
unsigned lastpal = current_gbPalette;
|
||||||
|
|
||||||
if (!strcmp(var.value, "black and white"))
|
if (!strcmp(var.value, "black and white"))
|
||||||
current_gbPalette = 0;
|
current_gbPalette = 0;
|
||||||
|
@ -1443,6 +1448,7 @@ void retro_cheat_set(unsigned index, bool enabled, const char* code)
|
||||||
memset(codeLine, 0, codeLineSize);
|
memset(codeLine, 0, codeLineSize);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default: break;
|
||||||
}
|
}
|
||||||
if (!code[cursor])
|
if (!code[cursor])
|
||||||
break;
|
break;
|
||||||
|
@ -1646,11 +1652,11 @@ void systemFrame(void)
|
||||||
|
|
||||||
void systemGbBorderOn(void)
|
void systemGbBorderOn(void)
|
||||||
{
|
{
|
||||||
bool changed = ((width != SGBWidth) || (height != SGBHeight));
|
bool changed = ((width != sgbWidth) || (height != sgbHeight));
|
||||||
width = gbBorderLineSkip = SGBWidth;
|
width = gbBorderLineSkip = sgbWidth;
|
||||||
height = SGBHeight;
|
height = sgbHeight;
|
||||||
gbBorderColumnSkip = (SGBWidth - GBWidth) >> 1;
|
gbBorderColumnSkip = (sgbWidth - gbWidth) >> 1;
|
||||||
gbBorderRowSkip = (SGBHeight - GBHeight) >> 1;
|
gbBorderRowSkip = (sgbHeight - gbHeight) >> 1;
|
||||||
|
|
||||||
struct retro_system_av_info avinfo;
|
struct retro_system_av_info avinfo;
|
||||||
retro_get_system_av_info(&avinfo);
|
retro_get_system_av_info(&avinfo);
|
||||||
|
@ -1663,9 +1669,9 @@ void systemGbBorderOn(void)
|
||||||
|
|
||||||
static void systemGbBorderOff(void)
|
static void systemGbBorderOff(void)
|
||||||
{
|
{
|
||||||
bool changed = ((width != GBWidth) || (height != GBHeight));
|
bool changed = ((width != gbWidth) || (height != gbHeight));
|
||||||
width = gbBorderLineSkip = GBWidth;
|
width = gbBorderLineSkip = gbWidth;
|
||||||
height = GBHeight;
|
height = gbHeight;
|
||||||
gbBorderColumnSkip = gbBorderRowSkip = 0;
|
gbBorderColumnSkip = gbBorderRowSkip = 0;
|
||||||
|
|
||||||
struct retro_system_av_info avinfo;
|
struct retro_system_av_info avinfo;
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
#ifndef _S_CRC32_H
|
#ifndef _S_CRC32_H
|
||||||
#define _S_CRC32_H
|
#define _S_CRC32_H
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const unsigned long crc_table[256] = {
|
static const unsigned long crc_table[256] = {
|
||||||
0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
|
0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
|
||||||
0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
|
0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
|
||||||
|
@ -87,8 +83,4 @@ unsigned long crc32(unsigned long crc, const unsigned char* buf, unsigned int le
|
||||||
return crc ^ 0xffffffffL;
|
return crc ^ 0xffffffffL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue