diff options
author | Toad King | 2012-12-04 19:26:09 -0500 |
---|---|---|
committer | notaz | 2012-12-10 23:20:59 +0200 |
commit | 7df396ea8c8eff6094e999f5c67b5f6b7e599199 (patch) | |
tree | 51b1865701db018fb99c921fa05fd178d44fee96 /frontend/libretro.c | |
parent | 2ee53c487bfaa112fec8f740ae05717a79994264 (diff) | |
download | pcsx_rearmed-7df396ea8c8eff6094e999f5c67b5f6b7e599199.tar.gz pcsx_rearmed-7df396ea8c8eff6094e999f5c67b5f6b7e599199.tar.bz2 pcsx_rearmed-7df396ea8c8eff6094e999f5c67b5f6b7e599199.zip |
libretro: initialize blank memory card
Diffstat (limited to 'frontend/libretro.c')
-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) |