Win32 - Memwatch - ram change monitor beta version

This commit is contained in:
adelikat 2008-11-16 16:58:12 +00:00
parent e405aae7fc
commit 4119180195
5 changed files with 66 additions and 10 deletions

View File

@ -52,6 +52,16 @@ const unsigned int MEMW_MAX_NUMBER_OF_RECENT_FILES = sizeof(memw_recent_files)/s
static HMENU memwrecentmenu;
//Ram change globals------------------------
unsigned int ramChange = 0;
char editbox00current[5];
char editbox00last[5];
int edit00last = 0;
int edit00now = 0;
unsigned int edit00count = 0;
char edit00changem[5];
//------------------------------------------
void UpdateMemw_RMenu(HMENU menu, char **strs, unsigned int mitem, unsigned int baseid)
{
MENUITEMINFO moo;
@ -290,6 +300,7 @@ void UpdateMemWatch()
MoveToEx(hdc,xPositions[i],yPositions[i],NULL);
TextOut(hdc,0,0,text,strlen(text));
}
}
}
@ -735,19 +746,23 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA
break;
case MEMW_OPTIONS_LOADSTART: //Load on Start up
MemWatchLoadOnStart ^= 1;
CheckMenuItem(memwmenu, MEMW_OPTIONS_LOADSTART, MemWatchLoadOnStart ? MF_CHECKED : MF_UNCHECKED);
MemWatchLoadOnStart ^= 1;
CheckMenuItem(memwmenu, MEMW_OPTIONS_LOADSTART, MemWatchLoadOnStart ? MF_CHECKED : MF_UNCHECKED);
break;
case MEMW_OPTIONS_LOADLASTFILE: //Load last file when opening memwatch
MemWatchLoadFileOnStart ^= 1;
CheckMenuItem(memwmenu, MEMW_OPTIONS_LOADLASTFILE, MemWatchLoadFileOnStart ? MF_CHECKED : MF_UNCHECKED);
MemWatchLoadFileOnStart ^= 1;
CheckMenuItem(memwmenu, MEMW_OPTIONS_LOADLASTFILE, MemWatchLoadFileOnStart ? MF_CHECKED : MF_UNCHECKED);
break;
case MEMW_HELP_WCOMMANDS:
OpenHelpWindow(memwhelp);
break;
case MEMW_EDIT00RESET:
edit00last = 0;
edit00now = 0;
edit00count = 0;
break;
default:
if (LOWORD(wParam) >= MEMW_MENU_FIRST_RECENT_FILE && LOWORD(wParam) < MEMW_MENU_FIRST_RECENT_FILE+MEMW_MAX_NUMBER_OF_RECENT_FILES)
OpenMemwatchRecentFile(LOWORD(wParam) - MEMW_MENU_FIRST_RECENT_FILE);
@ -812,8 +827,6 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA
//Open the Memory Watch dialog
void CreateMemWatch()
//void CreateMemWatch(HWND parent) - adelikat: old code made use of this but parent was only used in a line commented out. Taking out for my own needs :P
{
if(NeedsInit) //Clear the strings
{
@ -873,3 +886,27 @@ void AddMemWatch(char memaddress[32])
}
}
void RamChange()
{
//Debug: Show frame counter---------------------------------
extern int currFrameCounter;
char counterbuf[32] = {0};
ramChange++;
sprintf(counterbuf,"%d/%d",currFrameCounter,ramChange);
SetDlgItemText(hwndMemWatch,MEMW_STATIC,counterbuf);
//----------------------------------------------------------
MWRec& mwrec = mwrecs[0];
if(mwrec.valid && GameInfo)
{
GetDlgItemText(hwndMemWatch, MW_ADDR00, editbox00current, 6);
edit00last = edit00now;
edit00now = GetMem(mwrec.addr);
if (edit00now > edit00last) //If current value is > then last value
edit00count++; //Increase counter
sprintf(edit00changem, "%d", edit00count); //Convert counter to text
SetDlgItemText(hwndMemWatch, MEMW_RESULTS, edit00changem); //Display text in results box
}
}

View File

@ -2,6 +2,7 @@ void UpdateMemWatch();
void CreateMemWatch();
void CloseMemoryWatch();
void AddMemWatch(char memaddress[32]);
void RamChange();
extern char * MemWatchDir;
extern bool MemWatchLoadOnStart;
extern bool MemWatchLoadFileOnStart;

View File

@ -778,7 +778,7 @@ BEGIN
LTEXT "Type a key, or press Escape to disable.",65429,53,14,125,8
END
MEMWATCH DIALOGEX 0, 0, 260, 203
MEMWATCH DIALOGEX 0, 0, 260, 269
STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Memory Watch"
MENU MEMWATCHMENU
@ -840,6 +840,15 @@ BEGIN
LTEXT "Name",65425,171,7,20,8
LTEXT "Address",65424,135,7,26,8
LTEXT "Value",MW_ValueLabel2,231,7,19,8
LTEXT "Frames",MEMW_STATIC,209,249,44,8
LTEXT "results",MEMW_RESULTS,100,228,36,8
GROUPBOX "Memory Change Monitoring",IDC_STATIC,0,202,256,59
LTEXT "Address",IDC_STATIC,6,213,26,8
LTEXT "Value",IDC_STATIC,101,213,19,8
LTEXT "Change formula",IDC_STATIC,44,213,50,8
LTEXT "01",IDC_STATIC,21,228,9,8
PUSHBUTTON " ",MEMW_EDIT00RESET,137,230,11,7
LTEXT "Reset",IDC_STATIC,133,213,20,8
END
DEBUGGER DIALOGEX 54, 74, 548, 305
@ -1403,6 +1412,11 @@ BEGIN
BOTTOMMARGIN, 268
END
"MEMWATCH", DIALOG
BEGIN
BOTTOMMARGIN, 261
END
"DEBUGGER", DIALOG
BEGIN
RIGHTMARGIN, 547

View File

@ -361,6 +361,9 @@
#define IDC_LIST2 1149
#define CHECK_SOUND_MUTETURBO 1179
#define IDC_EDIT_AUTHOR 1180
#define MEMW_STATIC 1181
#define MEMW_RESULTS 1184
#define MEMW_EDIT00RESET 1185
#define MENU_NETWORK 40040
#define MENU_PALETTE 40041
#define MENU_SOUND 40042
@ -548,7 +551,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 124
#define _APS_NEXT_COMMAND_VALUE 40257
#define _APS_NEXT_CONTROL_VALUE 1181
#define _APS_NEXT_CONTROL_VALUE 1186
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@ -59,7 +59,7 @@
#include "drivers/win/main.h"
#include "drivers/win/cheat.h"
#include "drivers/win/texthook.h"
#include "drivers/win/memwatch.h"
#else
#include "drivers/sdl/sdl.h"
#endif
@ -584,6 +584,7 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
#ifdef WIN32
UpdateCheatList();
UpdateTextHooker();
RamChange();
// FCEUI_AviVideoUpdate(XBuf);
#endif