diff options
author | Toad King | 2012-12-04 19:26:09 -0500 |
---|---|---|
committer | Toad King | 2012-12-04 19:26:09 -0500 |
commit | f5cea0386cabbfe8db679bea08975d3289f34032 (patch) | |
tree | 51b1865701db018fb99c921fa05fd178d44fee96 | |
parent | 6205c5ce1d4bc2de08559a1753995dbe187c87b6 (diff) | |
download | pcsx_rearmed-f5cea0386cabbfe8db679bea08975d3289f34032.tar.gz pcsx_rearmed-f5cea0386cabbfe8db679bea08975d3289f34032.tar.bz2 pcsx_rearmed-f5cea0386cabbfe8db679bea08975d3289f34032.zip |
initialize blank memory card in libretro
-rw-r--r-- | frontend/libretro.c | 34 |
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) |