Previous 199869 Revisions Next

r18391 Tuesday 9th October, 2012 at 19:30:26 UTC by Fabio Priuli
(MESS) snes.c: fixed Dezaemon SRAM mappings. [Fabio Priuli]
[src/mame/machine]snes.c

trunk/src/mame/machine/snes.c
r18390r18391
10441044   }
10451045   else if ((state->m_cart[0].mode & 5) && (address < 0x8000))      /* Mode 20 & 22 */
10461046   {
1047      if (state->m_cart[0].sram > 0)
1047      if (state->m_cart[0].sram > 0x8000)
10481048      {
1049         // In this case, SRAM is mapped in 0x8000 chunks at diff offsets: 0x700000-0x707fff, 0x710000-0x717fff, etc.
1050         int mask = (state->m_cart[0].sram << 1) - 1;
1051         mask &= ~0x8000;
1052         value = snes_ram[0x700000 + (offset & mask)];
1053      }
1054      else if (state->m_cart[0].sram > 0)
1055      {
10491056         int mask = state->m_cart[0].sram - 1;   /* Limit SRAM size to what's actually present */
10501057         value = snes_ram[0x700000 + (offset & mask)];
10511058      }
r18390r18391
13201327      snes_ram[0xf00000 + offset] = data;
13211328   else if ((state->m_cart[0].mode & 5) && (address < 0x8000))         /* Mode 20 & 22 */
13221329   {
1323      if (state->m_cart[0].sram > 0)
1330      if (state->m_cart[0].sram > 0x8000)
13241331      {
1332         // In this case, SRAM is mapped in 0x8000 chunks at diff offsets: 0x700000-0x707fff, 0x710000-0x717fff, etc.
1333         int mask = (state->m_cart[0].sram << 1) - 1;
1334         mask &= ~0x8000;
1335         snes_ram[0x700000 + (offset & mask)] = data;
1336      }
1337      else if (state->m_cart[0].sram > 0)
1338      {
13251339         int mask = state->m_cart[0].sram - 1;   /* Limit SRAM size to what's actually present */
13261340         snes_ram[0x700000 + (offset & mask)] = data;
13271341      }

Previous 199869 Revisions Next


© 1997-2024 The MAME Team