Fix missing initialization code for vba link

git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@15 a31d4220-a93d-0410-bf67-fe4944624d44
This commit is contained in:
DJRobX 2007-11-02 10:20:08 +00:00
parent bd77ca8061
commit ad8b4848f7
5 changed files with 42 additions and 26 deletions

View File

@ -76,7 +76,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMEN
CAPTION "Link Options"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
CONTROL "Tab1",IDC_TAB1,"SysTabControl32",0x0,9,6,240,162
CONTROL "Tab1",IDC_TAB1,"SysTabControl32",0x0,9,7,240,162
PUSHBUTTON "OK",ID_OK,57,180,60,15
PUSHBUTTON "Cancel",ID_CANCEL,140,180,57,15
END
@ -1121,8 +1121,8 @@ GUIDELINES DESIGNINFO
BEGIN
IDD_LINKTAB, DIALOG
BEGIN
RIGHTMARGIN, 225
BOTTOMMARGIN, 162
RIGHTMARGIN, 249
BOTTOMMARGIN, 195
END
IDD_OPENDLG, DIALOG

View File

@ -46,7 +46,7 @@ char linkevent[] = "VBA link event ";
static int i, j;
int linktimeout = 1000;
int linklog = 0;
FILE *jjj = NULL;
FILE *linklogfile = NULL;
LANLINKDATA lanlink;
u16 linkdata[4];
int lspeed = 0;
@ -123,15 +123,15 @@ void StartLink(WORD value){
else UPDATE_REG(0x134, 3);
break;
case NORMAL8:
if(linklog) fprintf(jjj, "Attempt to use 8-bit Normal mode %04x\n", value);
if(linklog) fprintf(linklogfile, "Attempt to use 8-bit Normal mode %04x\n", value);
UPDATE_REG(0x128, value);
break;
case NORMAL32:
if(linklog) fprintf(jjj, "Attempt to use 32-bit Normal mode %04x %x%x\n", value, READ16LE(&ioMem[0x122]), READ16LE(&ioMem[0x120]));
if(linklog) fprintf(linklogfile, "Attempt to use 32-bit Normal mode %04x %x%x\n", value, READ16LE(&ioMem[0x122]), READ16LE(&ioMem[0x120]));
UPDATE_REG(0x128, value);
break;
case UART:
if(linklog) fprintf(jjj, "Attempt to use UART mode %04x\n", value);
if(linklog) fprintf(linklogfile, "Attempt to use UART mode %04x\n", value);
UPDATE_REG(0x128, value);
break;
default:
@ -156,8 +156,8 @@ void StartGPLink(u16 value){
break;
case GP:
if(linklog){
if(value==0x8000) fprintf(jjj, "Circuit reset\n");
else if(!adapter) fprintf(jjj, "Attempt to use General-purpose mode %04x\n", value);
if(value==0x8000) fprintf(linklogfile, "Circuit reset\n");
else if(!adapter) fprintf(linklogfile, "Attempt to use General-purpose mode %04x\n", value);
}
if(adapter) rfu_state = RFU_INIT;
break;
@ -176,7 +176,7 @@ void StartJOYLink(u16 value){
UPDATE_REG(0x140, 0);
return;
}
if(GetSioMode(READ16LE(&ioMem[0x128]), READ16LE(&ioMem[0x134]))==JOYBUS&&linklog) fprintf(jjj, "Attempt to use JOY-BUS mode %04x\n", value);
if(GetSioMode(READ16LE(&ioMem[0x128]), READ16LE(&ioMem[0x134]))==JOYBUS&&linklog) fprintf(linklogfile, "Attempt to use JOY-BUS mode %04x\n", value);
return;
}
@ -229,7 +229,7 @@ void LinkUpdate(int ticks){
UPDATE_REG(0x122, linkdata[1]);
UPDATE_REG(0x124, linkdata[2]);
UPDATE_REG(0x126, linkdata[3]);
if(linklog) fprintf(jjj, "%04x %04x %04x %04x %10u\n", linkdata[0], linkdata[1], linkdata[2], linkdata[3], savedlinktime);
if(linklog) fprintf(linklogfile, "%04x %04x %04x %04x %10u\n", linkdata[0], linkdata[1], linkdata[2], linkdata[3], savedlinktime);
oncewait = true;
} else {
after = true;
@ -237,7 +237,7 @@ void LinkUpdate(int ticks){
UPDATE_REG(0x122, linkdata[1]);
UPDATE_REG(0x124, linkdata[2]);
UPDATE_REG(0x126, linkdata[3]);
if(linklog) fprintf(jjj, "%04x %04x %04x %04x %10u\n", linkdata[0], linkdata[1], linkdata[2], linkdata[3], savedlinktime);
if(linklog) fprintf(linklogfile, "%04x %04x %04x %04x %10u\n", linkdata[0], linkdata[1], linkdata[2], linkdata[3], savedlinktime);
}
}
@ -273,7 +273,7 @@ void LinkUpdate(int ticks){
if(WaitForSingleObject(linksync[linkid], linktimeout)==WAIT_TIMEOUT)
linkmem->numtransfers=0;
ResetEvent(linksync[linkid]);
if(linklog) fprintf(jjj, "%04x %04x %04x %04x %10u\n",
if(linklog) fprintf(linklogfile, "%04x %04x %04x %04x %10u\n",
linkmem->linkdata[0], linkmem->linkdata[1], linkmem->linkdata[2], linkmem->linkdata[3], linkmem->lastlinktime);
}
@ -288,7 +288,7 @@ void LinkUpdate(int ticks){
if(WaitForSingleObject(linksync[linkid], linktimeout)==WAIT_TIMEOUT)
linkmem->numtransfers=0;
ResetEvent(linksync[linkid]);
if(linklog) fprintf(jjj, "%04x %04x %04x %04x %10u\n",
if(linklog) fprintf(linklogfile, "%04x %04x %04x %04x %10u\n",
linkmem->linkdata[0], linkmem->linkdata[1], linkmem->linkdata[2], linkmem->linkdata[3], linkmem->lastlinktime);
}
transfer = 0;
@ -659,14 +659,23 @@ int openLinkLog(void){
char filename[20];
if(linklog){
sprintf(filename, "vbalog%1d.txt", vbaid+1);
if((jjj=fopen(filename, "wt"))==NULL){
if((linklogfile=fopen(filename, "wt"))==NULL){
return 0;
}
fprintf(jjj, "GBA0 GBA1 GBA2 GBA3 clocks between transfers\n");
fprintf(linklogfile, "GBA0 GBA1 GBA2 GBA3 clocks between transfers\n");
}
return 1;
}
void closeLinkLog()
{
if(linklogfile)
{
fclose(linklogfile);
linklogfile=NULL;
}
}
void CloseLink(void){
if(lanlink.connected){
if(linkid){
@ -700,7 +709,7 @@ void CloseLink(void){
}
}
regSetDwordValue("LAN", lanlink.active);
if(linklog) fclose(jjj);
if(linklog) closeLinkLog();
closesocket(lanlink.tcpsocket);
WSACleanup();
return;
@ -1043,7 +1052,7 @@ void LinkSStop(void){
UPDATE_REG(0x122, linkdata[1]);
UPDATE_REG(0x124, linkdata[2]);
UPDATE_REG(0x126, linkdata[3]);
if(linklog) fprintf(jjj, "%04x %04x %04x %04x %10u\n", linkdata[0], linkdata[1], linkdata[2], linkdata[3], savedlinktime);
if(linklog) fprintf(linklogfile, "%04x %04x %04x %04x %10u\n", linkdata[0], linkdata[1], linkdata[2], linkdata[3], savedlinktime);
}
return;
}

View File

@ -107,10 +107,11 @@ extern void LinkUpdate(void);
extern void LinkChildStop(void);
extern void LinkChildSend(u16);
extern int openLinkLog(void);
extern void closeLinkLog();
extern void CloseLanLink(void);
extern LANLINKDATA lanlink;
extern FILE *jjj;
extern FILE *linklogfile;
extern int vbaid;
extern int linklog;
extern bool adapter;

View File

@ -1741,14 +1741,12 @@ void MainWnd::OnLinkOptions()
void MainWnd::OnOptionsLinkLog()
{
if(linklog){
if(jjj!=NULL) fclose(jjj);
if(linklogfile!=NULL) fclose(linklogfile);
linklog = 0;
jjj = NULL;
linklogfile = NULL;
} else {
char filename[20];
sprintf(filename, "vbalog%1d.txt", vbaid+1);
jjj = fopen(filename, "wt");
linklog=1;
openLinkLog();
}
}

View File

@ -122,7 +122,7 @@ extern int InitLink(void);
extern void CloseLink(void);
//extern int linkid;
extern char inifile[];
extern FILE *jjj;
extern FILE *linklogfile;
/* ------------------- */
#ifdef _DEBUG
#define new DEBUG_NEW
@ -462,10 +462,16 @@ BOOL VBA::InitInstance()
if(p)
*p = 0;
if(!InitLink())
return FALSE;;
regInit(winBuffer);
loadSettings();
if(!openLinkLog())
return FALSE;
if(!initInput())
return FALSE;
@ -1513,6 +1519,8 @@ void VBA::loadSettings()
linktimeout = regQueryDwordValue("LinkTimeout", 1000);
linklog = regQueryDwordValue("Linklog", false) ? true : false;
if(linklog)
openLinkLog();
adapter = regQueryDwordValue("RFU", false) ? true : false;