Windows port:

- added debug console for BETA versions;
This commit is contained in:
mtabachenko 2008-05-02 06:07:29 +00:00
parent 2f0921ecd1
commit 611477e9e7
3 changed files with 79 additions and 3 deletions

View File

@ -23,6 +23,11 @@
#include <stdlib.h>
#include <string.h>
/////// Console vars
#define BUFFER_SIZE 100
HANDLE hConsole;
///////
//////////////////////////////////////////////////////////////////////////////
Debug * DebugInit(const char * n, DebugOutType t, char * s) {
@ -158,3 +163,53 @@ void LogStop(void) {
//////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////// Console
#ifdef WIN32
void OpenConsole()
{
COORD csize;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
SMALL_RECT srect;
char buf[256];
if (hConsole) return;
AllocConsole();
memset(buf,0,256);
sprintf(buf,"DeSmuME v%s OUTPUT", VERSION);
SetConsoleTitle(TEXT(buf));
csize.X = 60;
csize.Y = 800;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), csize);
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbiInfo);
srect = csbiInfo.srWindow;
srect.Right = srect.Left + 99;
srect.Bottom = srect.Top + 64;
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &srect);
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
}
void CloseConsole() {
if (hConsole == NULL) return;
FreeConsole();
hConsole = NULL;
}
void printlog(char *fmt, ...) {
va_list list;
char msg[512],msg2[522];
wchar_t msg3[522];
char *ptr;
DWORD tmp;
int len, s;
int i, j;
LPWSTR ret;
va_start(list,fmt);
_vsnprintf(msg,511,fmt,list);
msg[511] = '\0';
va_end(list);
ptr=msg; len=strlen(msg);
WriteConsole(hConsole,ptr, (DWORD)len, &tmp, 0);
}
#endif

View File

@ -20,6 +20,7 @@
#ifndef DEBUG_H
#define DEBUG_H
#include <windows.h>
#include "types.h"
#include <stdio.h>
@ -50,6 +51,18 @@ extern Debug * MainLog;
void LogStart(void);
void LogStop(void);
#ifdef WIN32
#ifdef BETA_VERSION
extern void OpenConsole();
extern void CloseConsole();
extern void printlog(LPCTSTR *fmt, ...);
#else
#define OpenConsole()
#define CloseConsole()
#define printlog(...)
#endif
#endif
#ifdef DEBUG
#define LOG(...) DebugPrintf(MainLog, __FILE__, __LINE__, __VA_ARGS__)
#else

View File

@ -532,6 +532,7 @@ void NDS_Pause()
execute = FALSE;
SPU_Pause(1);
while (!paused) {}
printlog("Paused\n");
}
void NDS_UnPause()
@ -539,6 +540,7 @@ void NDS_UnPause()
paused = FALSE;
execute = TRUE;
SPU_Pause(0);
printlog("Unpaused\n");
}
void StateSaveSlot(int num)
@ -546,6 +548,7 @@ void StateSaveSlot(int num)
NDS_Pause();
savestate_slot(num);
NDS_UnPause();
printlog("Saved %i state\n",num);
}
void StateLoadSlot(int num)
@ -553,11 +556,13 @@ void StateLoadSlot(int num)
NDS_Pause();
loadstate_slot(num);
NDS_UnPause();
printlog("Loaded %i state\n",num);
}
BOOL LoadROM(char * filename, const char *cflash_disk_image)
{
NDS_Pause();
if (strcmp(filename,"")!=0) printlog("Loading ROM: %s\n",filename);
if (NDS_LoadROM(filename, backupmemorytype, backupmemorysize, cflash_disk_image) > 0)
return TRUE;
@ -654,7 +659,6 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
struct armcpu_ctrl_iface *arm9_ctrl_iface;
struct armcpu_ctrl_iface *arm7_ctrl_iface;
#endif
struct configured_features my_config;
@ -666,6 +670,9 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
InitCustomControls();
OpenConsole(); // Init debug console
printlog("DeSmuME v%s starting...\n\n",VERSION);
/* default the firmware settings, they may get changed later */
NDS_FillDefaultFirmwareConfigData( &win_fw_config);
@ -711,7 +718,7 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
InitDesViewBox();
InitTileViewBox();
InitOAMViewBox();
printlog("Init NDS\n");
#ifdef GDB_STUB
if ( my_config.arm9_gdb_port != 0) {
arm9_gdb_stub = createStub_gdb( my_config.arm9_gdb_port,
@ -773,7 +780,7 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
#ifdef BETA_VERSION
EnableMenuItem (menu, IDM_SUBMITBUGREPORT, MF_GRAYED);
#endif
printlog("Init sound core\n");
sndcoretype = GetPrivateProfileInt("Sound","SoundCore", SNDCORE_DIRECTX, IniName);
sndbuffersize = GetPrivateProfileInt("Sound","SoundBufferSize", 735 * 4, IniName);
@ -875,6 +882,7 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
#ifdef DEBUG
LogStop();
#endif
CloseConsole();
/* The program return-value is 0 - The value that PostQuitMessage() gave */
return messages.wParam;
}