aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorToad King2012-12-04 19:26:09 -0500
committernotaz2012-12-10 23:20:59 +0200
commit7df396ea8c8eff6094e999f5c67b5f6b7e599199 (patch)
tree51b1865701db018fb99c921fa05fd178d44fee96 /frontend
parent2ee53c487bfaa112fec8f740ae05717a79994264 (diff)
downloadpcsx_rearmed-7df396ea8c8eff6094e999f5c67b5f6b7e599199.tar.gz
pcsx_rearmed-7df396ea8c8eff6094e999f5c67b5f6b7e599199.tar.bz2
pcsx_rearmed-7df396ea8c8eff6094e999f5c67b5f6b7e599199.zip
libretro: initialize blank memory card
Diffstat (limited to 'frontend')
-rw-r--r--frontend/libretro.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index 180c1d7..6212980 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -41,6 +41,39 @@ int in_a1[2] = { 127, 127 }, in_a2[2] = { 127, 127 };
int in_keystate;
int in_enable_vibration;
+static void init_memcard(char *mcd_data)
+{
+ unsigned off = 0;
+ unsigned i;
+
+ memset(mcd_data, 0, MCD_SIZE);
+
+ mcd_data[off++] = 'M';
+ mcd_data[off++] = 'C';
+ off += 0x7d;
+ mcd_data[off++] = 0x0e;
+
+ for (i = 0; i < 15; i++) {
+ mcd_data[off++] = 0xa0;
+ off += 0x07;
+ mcd_data[off++] = 0xff;
+ mcd_data[off++] = 0xff;
+ off += 0x75;
+ mcd_data[off++] = 0xa0;
+ }
+
+ for (i = 0; i < 20; i++) {
+ mcd_data[off++] = 0xff;
+ mcd_data[off++] = 0xff;
+ mcd_data[off++] = 0xff;
+ mcd_data[off++] = 0xff;
+ off += 0x04;
+ mcd_data[off++] = 0xff;
+ mcd_data[off++] = 0xff;
+ off += 0x76;
+ }
+}
+
static int vout_open(void)
{
return 0;
@@ -402,6 +435,7 @@ void retro_init(void)
McdDisable[0] = 0;
McdDisable[1] = 1;
+ init_memcard(Mcd1Data);
}
void retro_deinit(void)