mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2024-11-14 13:27:41 -07:00
apparently when you set an out-of-bounds address for EEPROM, it should wrap around
TODO: check if it also happens with Flash also fix shit that could have later turned into memory leaks
This commit is contained in:
parent
ff3b60bc93
commit
e88cf1b43d
2
NDS.cpp
2
NDS.cpp
@ -289,7 +289,7 @@ void Reset()
|
||||
// test
|
||||
//LoadROM();
|
||||
//LoadFirmware();
|
||||
NDSCart::LoadROM("rom/peach.nds");
|
||||
NDSCart::LoadROM("rom/sonic.nds");
|
||||
|
||||
Running = true; // hax
|
||||
}
|
||||
|
15
NDSCart.cpp
15
NDSCart.cpp
@ -56,6 +56,7 @@ void Write_Discover(u8 val, bool islast);
|
||||
void Init()
|
||||
{
|
||||
SRAM = NULL;
|
||||
Discover_Buffer = NULL;
|
||||
}
|
||||
|
||||
void Reset()
|
||||
@ -66,6 +67,7 @@ void Reset()
|
||||
void LoadSave(char* path)
|
||||
{
|
||||
if (SRAM) delete[] SRAM;
|
||||
if (Discover_Buffer) delete[] Discover_Buffer;
|
||||
|
||||
strncpy(SRAMPath, path, 255);
|
||||
SRAMPath[255] = '\0';
|
||||
@ -181,6 +183,8 @@ void SetMemoryType()
|
||||
}
|
||||
|
||||
CurCmd = prev_cmd;
|
||||
|
||||
delete[] Discover_Buffer;
|
||||
}
|
||||
|
||||
void Write_Discover(u8 val, bool islast)
|
||||
@ -272,9 +276,7 @@ void Write_EEPROM(u8 val, bool islast)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Addr < SRAMLength)
|
||||
SRAM[Addr] = val;
|
||||
|
||||
SRAM[Addr & (SRAMLength-1)] = val;
|
||||
Addr++;
|
||||
}
|
||||
break;
|
||||
@ -288,11 +290,7 @@ void Write_EEPROM(u8 val, bool islast)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Addr >= SRAMLength)
|
||||
Data = 0;
|
||||
else
|
||||
Data = SRAM[Addr];
|
||||
|
||||
Data = SRAM[Addr & (SRAMLength-1)];
|
||||
Addr++;
|
||||
}
|
||||
break;
|
||||
@ -321,6 +319,7 @@ void Write_Flash(u8 val, bool islast)
|
||||
}
|
||||
else
|
||||
{
|
||||
// CHECKME: does Flash also wraparound when the address is out of bounds?
|
||||
if (Addr >= SRAMLength)
|
||||
Data = 0;
|
||||
else
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
1481161027 c:\documents\sources\melonds\types.h
|
||||
|
||||
1486310027 source:c:\documents\sources\melonds\nds.cpp
|
||||
1486312246 source:c:\documents\sources\melonds\nds.cpp
|
||||
<stdio.h>
|
||||
<string.h>
|
||||
"NDS.h"
|
||||
@ -24,7 +24,7 @@
|
||||
"RTC.h"
|
||||
"Wifi.h"
|
||||
|
||||
1486310306 source:c:\documents\sources\melonds\arm.cpp
|
||||
1486310992 source:c:\documents\sources\melonds\arm.cpp
|
||||
<stdio.h>
|
||||
"NDS.h"
|
||||
"ARM.h"
|
||||
@ -137,7 +137,7 @@
|
||||
1485980863 c:\documents\sources\melonds\ndscart.h
|
||||
"types.h"
|
||||
|
||||
1486309588 source:c:\documents\sources\melonds\ndscart.cpp
|
||||
1486312231 source:c:\documents\sources\melonds\ndscart.cpp
|
||||
<stdio.h>
|
||||
<string.h>
|
||||
"NDS.h"
|
||||
|
Loading…
Reference in New Issue
Block a user