win32: add feature: dump all memory (new button in memory viewer; inspect debug.cpp for a map of the file)
This commit is contained in:
parent
2f01b6c2a0
commit
264dc80808
|
@ -208,6 +208,26 @@ void DEBUG_reset()
|
|||
printf("DEBUG_reset: %08X\n",&DebugStatistics::print); //force a reference to this function
|
||||
}
|
||||
|
||||
static void DEBUG_dumpMemory_fill(EMUFILE *fp, u32 size)
|
||||
{
|
||||
static std::vector<u8> buf;
|
||||
buf.resize(size);
|
||||
memset(&buf[0],0,size);
|
||||
fp->fwrite(&buf[0],size);
|
||||
}
|
||||
|
||||
void DEBUG_dumpMemory(EMUFILE* fp)
|
||||
{
|
||||
fp->fseek(0x000000,SEEK_SET); fp->fwrite(MMU.MAIN_MEM,0x800000); //arm9 main mem (8192K)
|
||||
fp->fseek(0x900000,SEEK_SET); fp->fwrite(MMU.ARM9_DTCM,0x4000); //arm9 DTCM (16K)
|
||||
fp->fseek(0xA00000,SEEK_SET); fp->fwrite(MMU.ARM9_ITCM,0x8000); //arm9 ITCM (32K)
|
||||
fp->fseek(0xB00000,SEEK_SET); fp->fwrite(MMU.ARM9_LCD,0xA4000); //LCD mem 656K
|
||||
fp->fseek(0xC00000,SEEK_SET); fp->fwrite(MMU.ARM9_VMEM,0x800); //OAM
|
||||
fp->fseek(0xD00000,SEEK_SET); fp->fwrite(MMU.ARM7_ERAM,0x10000); //arm7 WRAM (64K)
|
||||
fp->fseek(0xE00000,SEEK_SET); fp->fwrite(MMU.ARM7_WIRAM,0x10000); //arm7 wifi RAM ?
|
||||
fp->fseek(0xF00000,SEEK_SET); fp->fwrite(MMU.SWIRAM,0x8000); //arm9/arm7 shared WRAM (32KB)
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
|
||||
std::vector<Logger *> Logger::channels;
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include "types.h"
|
||||
#include "mem.h"
|
||||
#include "emufile.h"
|
||||
|
||||
struct DebugStatistics
|
||||
{
|
||||
|
@ -47,6 +48,7 @@ struct DebugStatistics
|
|||
extern DebugStatistics DEBUG_statistics;
|
||||
|
||||
void DEBUG_reset();
|
||||
void DEBUG_dumpMemory(EMUFILE* fp);
|
||||
|
||||
struct armcpu_t;
|
||||
|
||||
|
|
|
@ -279,6 +279,7 @@ INT_PTR CALLBACK MemView_DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||
}
|
||||
return 1;
|
||||
|
||||
case IDC_DUMPALL:
|
||||
case IDC_RAWDUMP:
|
||||
{
|
||||
char fileName[256] = "";
|
||||
|
@ -296,16 +297,19 @@ INT_PTR CALLBACK MemView_DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||
|
||||
if(GetSaveFileName(&ofn))
|
||||
{
|
||||
FILE *f;
|
||||
u8 memory[0x100];
|
||||
|
||||
MMU_DumpMemBlock(wnd->cpu, wnd->address, 0x100, memory);
|
||||
|
||||
f = fopen(fileName, "ab");
|
||||
|
||||
fwrite(memory, 0x100, 1, f);
|
||||
|
||||
fclose(f);
|
||||
if(LOWORD(wParam) == IDC_RAWDUMP)
|
||||
{
|
||||
EMUFILE_FILE f(fileName,"ab");
|
||||
u8 memory[0x100];
|
||||
MMU_DumpMemBlock(wnd->cpu, wnd->address, 0x100, memory);
|
||||
f.fwrite(memory, 0x100);
|
||||
}
|
||||
else
|
||||
{
|
||||
EMUFILE_FILE f(fileName,"wb");
|
||||
DEBUG_dumpMemory(&f);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
|
|
@ -336,6 +336,7 @@
|
|||
#define IDC_SYNCHMODE_SYNCH 1013
|
||||
#define IDC_FIRMWAREBROWSE 1014
|
||||
#define IDC_VOLUME 1014
|
||||
#define IDC_DUMPALL 1014
|
||||
#define IDC_SYNCHMETHOD_N 1015
|
||||
#define IDC_FIRMWAREBOOT 1016
|
||||
#define IDC_SYNCHMETHOD_Z 1016
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue