summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2008-02-18 04:18:50 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2008-02-18 04:18:50 +0000
commit277daffe04e3b68ed5833d4b845523153a10deec (patch)
tree5d8f24c36488addf8432abfd17c6bbac4cc24ab0
parentedc2bfebf056b3510f06dfe9270a95f885d898f0 (diff)
[AICA] Fixed error introduced in last change.
-rw-r--r--src/emu/sound/aica.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/emu/sound/aica.c b/src/emu/sound/aica.c
index fc64c0fb8b5..ba57b288955 100644
--- a/src/emu/sound/aica.c
+++ b/src/emu/sound/aica.c
@@ -165,7 +165,7 @@ struct _AICA
signed short RINGBUF[64];
unsigned char BUFPTR;
unsigned char *AICARAM;
- UINT32 AICARAM_LENGTH, RAM_MASK;
+ UINT32 AICARAM_LENGTH, RAM_MASK, RAM_MASK16;
char Master;
void (*IntARMCB)(int irq);
sound_stream * stream;
@@ -505,6 +505,7 @@ static void AICA_Init(struct _AICA *AICA, const struct AICAinterface *intf, int
AICA->AICARAM += intf->roffset;
AICA->AICARAM_LENGTH = memory_region_length(intf->region);
AICA->RAM_MASK = AICA->AICARAM_LENGTH-1;
+ AICA->RAM_MASK16 = AICA->RAM_MASK & 0x7ffffe;
AICA->DSP.AICARAM = (UINT16 *)AICA->AICARAM;
AICA->DSP.AICARAM_LENGTH = memory_region_length(intf->region)/2;
}
@@ -1013,8 +1014,8 @@ INLINE INT32 AICA_UpdateSlot(struct _AICA *AICA, struct _SLOT *slot)
}
else if(PCMS(slot) == 0)
{
- addr1=(slot->cur_addr>>(SHIFT-1))&AICA->RAM_MASK;
- addr2=(slot->nxt_addr>>(SHIFT-1))&AICA->RAM_MASK;
+ addr1=(slot->cur_addr>>(SHIFT-1))&AICA->RAM_MASK16;
+ addr2=(slot->nxt_addr>>(SHIFT-1))&AICA->RAM_MASK16;
}
else
{
@@ -1262,6 +1263,7 @@ void AICA_set_ram_base(int which, void *base, int size)
AICA->AICARAM = base;
AICA->AICARAM_LENGTH = size;
AICA->RAM_MASK = AICA->AICARAM_LENGTH-1;
+ AICA->RAM_MASK16 = AICA->RAM_MASK & 0x7ffffe;
AICA->DSP.AICARAM = base;
AICA->DSP.AICARAM_LENGTH = size;
}