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:
parent
bd77ca8061
commit
ad8b4848f7
|
@ -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
|
||||
|
|
39
src/Link.cpp
39
src/Link.cpp
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue