Fix broken windows debugging tools (Disassembler Still not working correctly).

Added Flash 4Mbit save type
Fixed 2Mbit save type incorrectly set as FRAM.
This commit is contained in:
normmatt234 2008-11-19 06:50:00 +00:00
parent 5ba5bff4d2
commit d8c104af01
13 changed files with 90 additions and 19 deletions

View File

@ -39,13 +39,14 @@
#include "zero_private.h" #include "zero_private.h"
#include "mc.h" #include "mc.h"
static const int save_types[6][2] = { static const int save_types[7][2] = {
{MC_TYPE_AUTODETECT,1}, {MC_TYPE_AUTODETECT,1},
{MC_TYPE_EEPROM1,MC_SIZE_4KBITS}, {MC_TYPE_EEPROM1,MC_SIZE_4KBITS},
{MC_TYPE_EEPROM2,MC_SIZE_64KBITS}, {MC_TYPE_EEPROM2,MC_SIZE_64KBITS},
{MC_TYPE_EEPROM2,MC_SIZE_512KBITS}, {MC_TYPE_EEPROM2,MC_SIZE_512KBITS},
{MC_TYPE_FLASH,MC_SIZE_256KBITS}, {MC_TYPE_FRAM,MC_SIZE_256KBITS},
{MC_TYPE_FRAM,MC_SIZE_2MBITS} {MC_TYPE_FLASH,MC_SIZE_2MBITS},
{MC_TYPE_FLASH,MC_SIZE_4MBITS}
}; };

View File

@ -108,10 +108,19 @@ void mc_reset_com(memory_chip_t *mc)
addr = (mc->autodetectbuf[0] << 8) | mc->autodetectbuf[1]; addr = (mc->autodetectbuf[0] << 8) | mc->autodetectbuf[1];
mc->type = MC_TYPE_FRAM; mc->type = MC_TYPE_FRAM;
mc->size = MC_SIZE_256KBITS; mc->size = MC_SIZE_256KBITS;
}
else if (mc->autodetectsize == (512+3))
{
// Flash 4Mbit
addr = (mc->autodetectbuf[0] << 16) |
(mc->autodetectbuf[1] << 8) |
mc->autodetectbuf[2];
mc->type = MC_TYPE_FLASH;
mc->size = MC_SIZE_4MBITS;
} }
else if (mc->autodetectsize == (256+3)) else if (mc->autodetectsize == (256+3))
{ {
// Flash // Flash 2Mbit
addr = (mc->autodetectbuf[0] << 16) | addr = (mc->autodetectbuf[0] << 16) |
(mc->autodetectbuf[1] << 8) | (mc->autodetectbuf[1] << 8) |
mc->autodetectbuf[2]; mc->autodetectbuf[2];
@ -213,6 +222,8 @@ void mc_load_file(memory_chip_t *mc, const char* filename)
type = MC_TYPE_EEPROM2; type = MC_TYPE_EEPROM2;
else if (size >= MC_SIZE_2MBITS) else if (size >= MC_SIZE_2MBITS)
type = MC_TYPE_FLASH; type = MC_TYPE_FLASH;
else if (size >= MC_SIZE_4MBITS)
type = MC_TYPE_FLASH;
if (type != -1) if (type != -1)
mc_realloc(mc, type, size); mc_realloc(mc, type, size);
@ -259,6 +270,8 @@ int mc_load_duc(memory_chip_t *mc, const char* filename)
type = MC_TYPE_EEPROM2; type = MC_TYPE_EEPROM2;
else if (size >= MC_SIZE_2MBITS) else if (size >= MC_SIZE_2MBITS)
type = MC_TYPE_FLASH; type = MC_TYPE_FLASH;
else if (size >= MC_SIZE_4MBITS)
type = MC_TYPE_FLASH;
if (type != -1) if (type != -1)
mc_realloc(mc, type, size); mc_realloc(mc, type, size);

View File

@ -429,6 +429,10 @@ BOOL CALLBACK ViewDisasm_ARM7Proc (HWND hwnd, UINT message, WPARAM wParam, LPARA
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
u16 t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); u16 t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!DisView7)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != DisView7->autoup_secs) if (t != DisView7->autoup_secs)
{ {
DisView7->autoup_secs = t; DisView7->autoup_secs = t;
@ -665,6 +669,10 @@ BOOL CALLBACK ViewDisasm_ARM9Proc (HWND hwnd, UINT message, WPARAM wParam, LPARA
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
u16 t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); u16 t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!DisView9)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != DisView9->autoup_secs) if (t != DisView9->autoup_secs)
{ {
DisView9->autoup_secs = t; DisView9->autoup_secs = t;

View File

@ -161,6 +161,10 @@ BOOL CALLBACK ViewLightsProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!LightsView)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != LightsView->autoup_secs) if (t != LightsView->autoup_secs)
{ {
LightsView->autoup_secs = t; LightsView->autoup_secs = t;

View File

@ -2219,38 +2219,53 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
osd->clear(); osd->clear();
return 0; return 0;
#define saver(one,two,three,four,five, six) \ #define clearsaver() \
MainWindow->checkMenu(IDC_SAVETYPE1, MF_BYCOMMAND | one); \ MainWindow->checkMenu(IDC_SAVETYPE1, MF_BYCOMMAND | MF_UNCHECKED); \
MainWindow->checkMenu(IDC_SAVETYPE2, MF_BYCOMMAND | two); \ MainWindow->checkMenu(IDC_SAVETYPE2, MF_BYCOMMAND | MF_UNCHECKED); \
MainWindow->checkMenu(IDC_SAVETYPE3, MF_BYCOMMAND | three); \ MainWindow->checkMenu(IDC_SAVETYPE3, MF_BYCOMMAND | MF_UNCHECKED); \
MainWindow->checkMenu(IDC_SAVETYPE4, MF_BYCOMMAND | four); \ MainWindow->checkMenu(IDC_SAVETYPE4, MF_BYCOMMAND | MF_UNCHECKED); \
MainWindow->checkMenu(IDC_SAVETYPE5, MF_BYCOMMAND | five); \ MainWindow->checkMenu(IDC_SAVETYPE5, MF_BYCOMMAND | MF_UNCHECKED); \
MainWindow->checkMenu(IDC_SAVETYPE6, MF_BYCOMMAND | six); MainWindow->checkMenu(IDC_SAVETYPE6, MF_BYCOMMAND | MF_UNCHECKED); \
MainWindow->checkMenu(IDC_SAVETYPE7, MF_BYCOMMAND | MF_UNCHECKED);
#define saver(one) \
MainWindow->checkMenu(one, MF_BYCOMMAND | MF_CHECKED);
case IDC_SAVETYPE1: case IDC_SAVETYPE1:
saver(MF_CHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED); clearsaver();
saver(IDC_SAVETYPE1);
mmu_select_savetype(0,&backupmemorytype,&backupmemorysize); mmu_select_savetype(0,&backupmemorytype,&backupmemorysize);
return 0; return 0;
case IDC_SAVETYPE2: case IDC_SAVETYPE2:
saver(MF_UNCHECKED,MF_CHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED); clearsaver();
saver(IDC_SAVETYPE2);
mmu_select_savetype(1,&backupmemorytype,&backupmemorysize); mmu_select_savetype(1,&backupmemorytype,&backupmemorysize);
return 0; return 0;
case IDC_SAVETYPE3: case IDC_SAVETYPE3:
saver(MF_UNCHECKED,MF_UNCHECKED,MF_CHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED); clearsaver();
saver(IDC_SAVETYPE2);
mmu_select_savetype(2,&backupmemorytype,&backupmemorysize); mmu_select_savetype(2,&backupmemorytype,&backupmemorysize);
return 0; return 0;
case IDC_SAVETYPE4: case IDC_SAVETYPE4:
saver(MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_CHECKED,MF_UNCHECKED,MF_UNCHECKED); clearsaver();
saver(IDC_SAVETYPE4);
mmu_select_savetype(3,&backupmemorytype,&backupmemorysize); mmu_select_savetype(3,&backupmemorytype,&backupmemorysize);
return 0; return 0;
case IDC_SAVETYPE5: case IDC_SAVETYPE5:
saver(MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_CHECKED,MF_UNCHECKED); clearsaver();
saver(IDC_SAVETYPE5);
mmu_select_savetype(4,&backupmemorytype,&backupmemorysize); mmu_select_savetype(4,&backupmemorytype,&backupmemorysize);
return 0; return 0;
case IDC_SAVETYPE6: case IDC_SAVETYPE6:
saver(MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_UNCHECKED,MF_CHECKED); clearsaver();
saver(IDC_SAVETYPE6);
mmu_select_savetype(5,&backupmemorytype,&backupmemorysize); mmu_select_savetype(5,&backupmemorytype,&backupmemorysize);
return 0; return 0;
case IDC_SAVETYPE7:
clearsaver();
saver(IDC_SAVETYPE7);
mmu_select_savetype(6,&backupmemorytype,&backupmemorysize);
return 0;
case IDM_RESET: case IDM_RESET:
NDS_Reset(); NDS_Reset();

View File

@ -285,6 +285,10 @@ BOOL CALLBACK ViewMapsProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPara
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!MapView)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != MapView->autoup_secs) if (t != MapView->autoup_secs)
{ {
MapView->autoup_secs = t; MapView->autoup_secs = t;

View File

@ -227,6 +227,10 @@ BOOL CALLBACK ViewMatricesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM l
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!MatrixView)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != MatrixView->autoup_secs) if (t != MatrixView->autoup_secs)
{ {
MatrixView->autoup_secs = t; MatrixView->autoup_secs = t;

View File

@ -279,6 +279,10 @@ bool CALLBACK ViewMem_ARM7Proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM l
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!MemView7)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != MemView7->autoup_secs) if (t != MemView7->autoup_secs)
{ {
MemView7->autoup_secs = t; MemView7->autoup_secs = t;
@ -460,6 +464,10 @@ bool CALLBACK ViewMem_ARM9Proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM l
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!MemView9)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != MemView9->autoup_secs) if (t != MemView9->autoup_secs)
{ {
MemView9->autoup_secs = t; MemView9->autoup_secs = t;

View File

@ -289,6 +289,10 @@ BOOL CALLBACK ViewOAMProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!OAMView)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != OAMView->autoup_secs) if (t != OAMView->autoup_secs)
{ {
OAMView->autoup_secs = t; OAMView->autoup_secs = t;

View File

@ -186,6 +186,10 @@ BOOL CALLBACK ViewPalProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!PalView)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != PalView->autoup_secs) if (t != PalView->autoup_secs)
{ {
PalView->autoup_secs = t; PalView->autoup_secs = t;

View File

@ -349,13 +349,14 @@
#define ID_FILE_RECENTROM 40034 #define ID_FILE_RECENTROM 40034
#define ID_FIL_RECENTROM 40035 #define ID_FIL_RECENTROM 40035
#define ID_FICHIER_RECENTROM 40036 #define ID_FICHIER_RECENTROM 40036
#define IDC_SAVETYPE7 40037
// Next default values for new objects // Next default values for new objects
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 107 #define _APS_NEXT_RESOURCE_VALUE 107
#define _APS_NEXT_COMMAND_VALUE 40037 #define _APS_NEXT_COMMAND_VALUE 40038
#define _APS_NEXT_CONTROL_VALUE 1019 #define _APS_NEXT_CONTROL_VALUE 1019
#define _APS_NEXT_SYMED_VALUE 112 #define _APS_NEXT_SYMED_VALUE 112
#endif #endif

View File

@ -17,7 +17,7 @@
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
#ifdef _WIN32 #ifdef _WIN32
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(1251) #pragma code_page(1252)
#endif //_WIN32 #endif //_WIN32
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
@ -764,6 +764,7 @@ BEGIN
MENUITEM "EEPROM 512kbit", IDC_SAVETYPE4 MENUITEM "EEPROM 512kbit", IDC_SAVETYPE4
MENUITEM "FRAM 256kbit", IDC_SAVETYPE5 MENUITEM "FRAM 256kbit", IDC_SAVETYPE5
MENUITEM "FLASH 2mbit", IDC_SAVETYPE6 MENUITEM "FLASH 2mbit", IDC_SAVETYPE6
MENUITEM "FLASH 4mbit", IDC_SAVETYPE7
END END
MENUITEM "Control Config", IDM_CONFIG MENUITEM "Control Config", IDM_CONFIG
MENUITEM "Sound Settings", IDM_SOUNDSETTINGS MENUITEM "Sound Settings", IDM_SOUNDSETTINGS

View File

@ -443,6 +443,10 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
case IDC_AUTO_UPDATE_SECS: case IDC_AUTO_UPDATE_SECS:
{ {
int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE); int t = GetDlgItemInt(hwnd, IDC_AUTO_UPDATE_SECS, FALSE, TRUE);
if (!TileView)
{
SendMessage(hwnd, WM_INITDIALOG, 0, 0);
}
if (t != TileView->autoup_secs) if (t != TileView->autoup_secs)
{ {
TileView->autoup_secs = t; TileView->autoup_secs = t;