mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-06-28 01:49:42 -06:00
force-align all read/write accesses. fixes #1540 (unaligned DMA address)
This commit is contained in:
16
src/DSi.cpp
16
src/DSi.cpp
@ -1283,6 +1283,8 @@ u8 ARM9Read8(u32 addr)
|
||||
|
||||
u16 ARM9Read16(u32 addr)
|
||||
{
|
||||
addr &= ~0x1;
|
||||
|
||||
if ((addr >= 0xFFFF0000) && (!(SCFG_BIOS & (1<<1))))
|
||||
{
|
||||
if ((addr >= 0xFFFF8000) && (SCFG_BIOS & (1<<0)))
|
||||
@ -1331,6 +1333,8 @@ u16 ARM9Read16(u32 addr)
|
||||
|
||||
u32 ARM9Read32(u32 addr)
|
||||
{
|
||||
addr &= ~0x3;
|
||||
|
||||
if ((addr >= 0xFFFF0000) && (!(SCFG_BIOS & (1<<1))))
|
||||
{
|
||||
if ((addr >= 0xFFFF8000) && (SCFG_BIOS & (1<<0)))
|
||||
@ -1488,6 +1492,8 @@ void ARM9Write8(u32 addr, u8 val)
|
||||
|
||||
void ARM9Write16(u32 addr, u16 val)
|
||||
{
|
||||
addr &= ~0x1;
|
||||
|
||||
switch (addr & 0xFF000000)
|
||||
{
|
||||
case 0x03000000:
|
||||
@ -1578,6 +1584,8 @@ void ARM9Write16(u32 addr, u16 val)
|
||||
|
||||
void ARM9Write32(u32 addr, u32 val)
|
||||
{
|
||||
addr &= ~0x3;
|
||||
|
||||
switch (addr & 0xFF000000)
|
||||
{
|
||||
case 0x03000000:
|
||||
@ -1763,6 +1771,8 @@ u8 ARM7Read8(u32 addr)
|
||||
|
||||
u16 ARM7Read16(u32 addr)
|
||||
{
|
||||
addr &= ~0x1;
|
||||
|
||||
if ((addr < 0x00010000) && (!(SCFG_BIOS & (1<<9))))
|
||||
{
|
||||
if ((addr >= 0x00008000) && (SCFG_BIOS & (1<<8)))
|
||||
@ -1820,6 +1830,8 @@ u16 ARM7Read16(u32 addr)
|
||||
|
||||
u32 ARM7Read32(u32 addr)
|
||||
{
|
||||
addr &= ~0x3;
|
||||
|
||||
if ((addr < 0x00010000) && (!(SCFG_BIOS & (1<<9))))
|
||||
{
|
||||
if ((addr >= 0x00008000) && (SCFG_BIOS & (1<<8)))
|
||||
@ -1972,6 +1984,8 @@ void ARM7Write8(u32 addr, u8 val)
|
||||
|
||||
void ARM7Write16(u32 addr, u16 val)
|
||||
{
|
||||
addr &= ~0x1;
|
||||
|
||||
switch (addr & 0xFF800000)
|
||||
{
|
||||
case 0x03000000:
|
||||
@ -2067,6 +2081,8 @@ void ARM7Write16(u32 addr, u16 val)
|
||||
|
||||
void ARM7Write32(u32 addr, u32 val)
|
||||
{
|
||||
addr &= ~0x3;
|
||||
|
||||
switch (addr & 0xFF800000)
|
||||
{
|
||||
case 0x03000000:
|
||||
|
Reference in New Issue
Block a user