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"
|
CAPTION "Link Options"
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||||
BEGIN
|
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 "OK",ID_OK,57,180,60,15
|
||||||
PUSHBUTTON "Cancel",ID_CANCEL,140,180,57,15
|
PUSHBUTTON "Cancel",ID_CANCEL,140,180,57,15
|
||||||
END
|
END
|
||||||
|
@ -1121,8 +1121,8 @@ GUIDELINES DESIGNINFO
|
||||||
BEGIN
|
BEGIN
|
||||||
IDD_LINKTAB, DIALOG
|
IDD_LINKTAB, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
RIGHTMARGIN, 225
|
RIGHTMARGIN, 249
|
||||||
BOTTOMMARGIN, 162
|
BOTTOMMARGIN, 195
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_OPENDLG, DIALOG
|
IDD_OPENDLG, DIALOG
|
||||||
|
|
39
src/Link.cpp
39
src/Link.cpp
|
@ -46,7 +46,7 @@ char linkevent[] = "VBA link event ";
|
||||||
static int i, j;
|
static int i, j;
|
||||||
int linktimeout = 1000;
|
int linktimeout = 1000;
|
||||||
int linklog = 0;
|
int linklog = 0;
|
||||||
FILE *jjj = NULL;
|
FILE *linklogfile = NULL;
|
||||||
LANLINKDATA lanlink;
|
LANLINKDATA lanlink;
|
||||||
u16 linkdata[4];
|
u16 linkdata[4];
|
||||||
int lspeed = 0;
|
int lspeed = 0;
|
||||||
|
@ -123,15 +123,15 @@ void StartLink(WORD value){
|
||||||
else UPDATE_REG(0x134, 3);
|
else UPDATE_REG(0x134, 3);
|
||||||
break;
|
break;
|
||||||
case NORMAL8:
|
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);
|
UPDATE_REG(0x128, value);
|
||||||
break;
|
break;
|
||||||
case NORMAL32:
|
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);
|
UPDATE_REG(0x128, value);
|
||||||
break;
|
break;
|
||||||
case UART:
|
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);
|
UPDATE_REG(0x128, value);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -156,8 +156,8 @@ void StartGPLink(u16 value){
|
||||||
break;
|
break;
|
||||||
case GP:
|
case GP:
|
||||||
if(linklog){
|
if(linklog){
|
||||||
if(value==0x8000) fprintf(jjj, "Circuit reset\n");
|
if(value==0x8000) fprintf(linklogfile, "Circuit reset\n");
|
||||||
else if(!adapter) fprintf(jjj, "Attempt to use General-purpose mode %04x\n", value);
|
else if(!adapter) fprintf(linklogfile, "Attempt to use General-purpose mode %04x\n", value);
|
||||||
}
|
}
|
||||||
if(adapter) rfu_state = RFU_INIT;
|
if(adapter) rfu_state = RFU_INIT;
|
||||||
break;
|
break;
|
||||||
|
@ -176,7 +176,7 @@ void StartJOYLink(u16 value){
|
||||||
UPDATE_REG(0x140, 0);
|
UPDATE_REG(0x140, 0);
|
||||||
return;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,7 +229,7 @@ void LinkUpdate(int ticks){
|
||||||
UPDATE_REG(0x122, linkdata[1]);
|
UPDATE_REG(0x122, linkdata[1]);
|
||||||
UPDATE_REG(0x124, linkdata[2]);
|
UPDATE_REG(0x124, linkdata[2]);
|
||||||
UPDATE_REG(0x126, linkdata[3]);
|
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;
|
oncewait = true;
|
||||||
} else {
|
} else {
|
||||||
after = true;
|
after = true;
|
||||||
|
@ -237,7 +237,7 @@ void LinkUpdate(int ticks){
|
||||||
UPDATE_REG(0x122, linkdata[1]);
|
UPDATE_REG(0x122, linkdata[1]);
|
||||||
UPDATE_REG(0x124, linkdata[2]);
|
UPDATE_REG(0x124, linkdata[2]);
|
||||||
UPDATE_REG(0x126, linkdata[3]);
|
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)
|
if(WaitForSingleObject(linksync[linkid], linktimeout)==WAIT_TIMEOUT)
|
||||||
linkmem->numtransfers=0;
|
linkmem->numtransfers=0;
|
||||||
ResetEvent(linksync[linkid]);
|
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);
|
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)
|
if(WaitForSingleObject(linksync[linkid], linktimeout)==WAIT_TIMEOUT)
|
||||||
linkmem->numtransfers=0;
|
linkmem->numtransfers=0;
|
||||||
ResetEvent(linksync[linkid]);
|
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);
|
linkmem->linkdata[0], linkmem->linkdata[1], linkmem->linkdata[2], linkmem->linkdata[3], linkmem->lastlinktime);
|
||||||
}
|
}
|
||||||
transfer = 0;
|
transfer = 0;
|
||||||
|
@ -659,14 +659,23 @@ int openLinkLog(void){
|
||||||
char filename[20];
|
char filename[20];
|
||||||
if(linklog){
|
if(linklog){
|
||||||
sprintf(filename, "vbalog%1d.txt", vbaid+1);
|
sprintf(filename, "vbalog%1d.txt", vbaid+1);
|
||||||
if((jjj=fopen(filename, "wt"))==NULL){
|
if((linklogfile=fopen(filename, "wt"))==NULL){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
fprintf(jjj, "GBA0 GBA1 GBA2 GBA3 clocks between transfers\n");
|
fprintf(linklogfile, "GBA0 GBA1 GBA2 GBA3 clocks between transfers\n");
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void closeLinkLog()
|
||||||
|
{
|
||||||
|
if(linklogfile)
|
||||||
|
{
|
||||||
|
fclose(linklogfile);
|
||||||
|
linklogfile=NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CloseLink(void){
|
void CloseLink(void){
|
||||||
if(lanlink.connected){
|
if(lanlink.connected){
|
||||||
if(linkid){
|
if(linkid){
|
||||||
|
@ -700,7 +709,7 @@ void CloseLink(void){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
regSetDwordValue("LAN", lanlink.active);
|
regSetDwordValue("LAN", lanlink.active);
|
||||||
if(linklog) fclose(jjj);
|
if(linklog) closeLinkLog();
|
||||||
closesocket(lanlink.tcpsocket);
|
closesocket(lanlink.tcpsocket);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
return;
|
return;
|
||||||
|
@ -1043,7 +1052,7 @@ void LinkSStop(void){
|
||||||
UPDATE_REG(0x122, linkdata[1]);
|
UPDATE_REG(0x122, linkdata[1]);
|
||||||
UPDATE_REG(0x124, linkdata[2]);
|
UPDATE_REG(0x124, linkdata[2]);
|
||||||
UPDATE_REG(0x126, linkdata[3]);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,10 +107,11 @@ extern void LinkUpdate(void);
|
||||||
extern void LinkChildStop(void);
|
extern void LinkChildStop(void);
|
||||||
extern void LinkChildSend(u16);
|
extern void LinkChildSend(u16);
|
||||||
extern int openLinkLog(void);
|
extern int openLinkLog(void);
|
||||||
|
extern void closeLinkLog();
|
||||||
extern void CloseLanLink(void);
|
extern void CloseLanLink(void);
|
||||||
|
|
||||||
extern LANLINKDATA lanlink;
|
extern LANLINKDATA lanlink;
|
||||||
extern FILE *jjj;
|
extern FILE *linklogfile;
|
||||||
extern int vbaid;
|
extern int vbaid;
|
||||||
extern int linklog;
|
extern int linklog;
|
||||||
extern bool adapter;
|
extern bool adapter;
|
||||||
|
|
|
@ -1741,14 +1741,12 @@ void MainWnd::OnLinkOptions()
|
||||||
void MainWnd::OnOptionsLinkLog()
|
void MainWnd::OnOptionsLinkLog()
|
||||||
{
|
{
|
||||||
if(linklog){
|
if(linklog){
|
||||||
if(jjj!=NULL) fclose(jjj);
|
if(linklogfile!=NULL) fclose(linklogfile);
|
||||||
linklog = 0;
|
linklog = 0;
|
||||||
jjj = NULL;
|
linklogfile = NULL;
|
||||||
} else {
|
} else {
|
||||||
char filename[20];
|
linklog=1;
|
||||||
sprintf(filename, "vbalog%1d.txt", vbaid+1);
|
openLinkLog();
|
||||||
jjj = fopen(filename, "wt");
|
|
||||||
linklog = 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -122,7 +122,7 @@ extern int InitLink(void);
|
||||||
extern void CloseLink(void);
|
extern void CloseLink(void);
|
||||||
//extern int linkid;
|
//extern int linkid;
|
||||||
extern char inifile[];
|
extern char inifile[];
|
||||||
extern FILE *jjj;
|
extern FILE *linklogfile;
|
||||||
/* ------------------- */
|
/* ------------------- */
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define new DEBUG_NEW
|
#define new DEBUG_NEW
|
||||||
|
@ -462,10 +462,16 @@ BOOL VBA::InitInstance()
|
||||||
if(p)
|
if(p)
|
||||||
*p = 0;
|
*p = 0;
|
||||||
|
|
||||||
|
if(!InitLink())
|
||||||
|
return FALSE;;
|
||||||
|
|
||||||
regInit(winBuffer);
|
regInit(winBuffer);
|
||||||
|
|
||||||
loadSettings();
|
loadSettings();
|
||||||
|
|
||||||
|
if(!openLinkLog())
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
if(!initInput())
|
if(!initInput())
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -1513,6 +1519,8 @@ void VBA::loadSettings()
|
||||||
linktimeout = regQueryDwordValue("LinkTimeout", 1000);
|
linktimeout = regQueryDwordValue("LinkTimeout", 1000);
|
||||||
|
|
||||||
linklog = regQueryDwordValue("Linklog", false) ? true : false;
|
linklog = regQueryDwordValue("Linklog", false) ? true : false;
|
||||||
|
if(linklog)
|
||||||
|
openLinkLog();
|
||||||
|
|
||||||
adapter = regQueryDwordValue("RFU", false) ? true : false;
|
adapter = regQueryDwordValue("RFU", false) ? true : false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue