committing basicbot rip-outage so i can test it at work

This commit is contained in:
zeromus 2008-07-31 16:21:42 +00:00
parent 2777b935a8
commit d7524bcdba
16 changed files with 10 additions and 3882 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
#ifndef _BASICBOT_H_
#define _BASICBOT_H_
#define BOT_MAXFRAMES 10000 // qfox: max number of frames to be computed per attempt...
#define BOT_STATEFILE "botstate" // the filename to save the current state to
void UpdateBasicBot();
void CreateBasicBot();
extern char *BasicBotDir;
void UpdateExternalButton();
int BotFrameSkip();
int BotFramePause();
#endif // _BASICBOT_H_

View File

@ -1,210 +0,0 @@
#include "common.h"
#include "../../fceu.h" // BotInput
#include "basicbot2.h"
#include "../../input.h" // fceu_botmode() fceu_setbotmode() BOTMODES
#include <time.h> // random seed
// Static variables and functions are only used in this file
static HWND hwndBasicBot = 0; // GUI handle
// GUI values
static char * inputStrings[16]; // from gui
static int inputNumbers[16]; // temp: the values
static char * romString;
static char * commentString;
static char * scoreString[3][2]; // score[n][title/value]
// put all the inputs into an array for easy iterative access
// (indices are synced with the order of BotInput[1] inputs)
static int inputs[] = {
BOT_TF_A_1,
BOT_TF_B_1,
BOT_TF_SELECT_1,
BOT_TF_START_1,
BOT_TF_UP_1,
BOT_TF_DOWN_1,
BOT_TF_LEFT_1,
BOT_TF_RIGHT_1,
BOT_TF_A_2,
BOT_TF_B_2,
BOT_TF_SELECT_2,
BOT_TF_START_2,
BOT_TF_UP_2,
BOT_TF_DOWN_2,
BOT_TF_LEFT_2,
BOT_TF_RIGHT_2
};
void BotCreateBasicBot() {
if(hwndBasicBot) {
// If already open, give focus
SetFocus(hwndBasicBot);
}
else {
// create window
hwndBasicBot = CreateDialog(fceu_hInstance,"BASICBOT2",NULL,WindowCallback);
// set title
SetWindowText(hwndBasicBot,"anything?");
// create menu
HMENU hmenu = LoadMenu(fceu_hInstance,"BASICBOTMENU");
// add menu to window
SetMenu(hwndBasicBot, hmenu);
// initialize the random generator
srand( (unsigned)time( NULL ) );
// set all inputs to 0
GetAllInputs();
}
FCEU_SetBotMode(BOTMODE_NEWBOT);
}
static void BotCloseBasicBot() {
if (hwndBasicBot) {
DestroyWindow(hwndBasicBot);
hwndBasicBot = 0;
}
FCEU_SetBotMode(BOTMODE_OFF);
}
static BOOL CALLBACK WindowCallback(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_INITDIALOG:
{
// cant change gui controls in this event
// seems to be a inherited "feature", for backwards
// compatibility.
SetWindowPos(
hwndDlg, // window handle
0, // z-index (ignored)
0,0, // x,y
0,0, // width,height (ignored, uses default)
SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER // flags
);
break;
}
case WM_MOVE:
{
break;
};
case WM_CLOSE:
case WM_QUIT:
{
BotCloseBasicBot();
break;
}
case WM_COMMAND:
{
switch(HIWORD(wParam))
{
case BN_CLICKED: // mouse click on item in gui
{
switch(LOWORD(wParam))
{
case BOT_BUTTON_UPDATE:
{
GetAllInputs();
break;
}
case BOT_BUTTON_RUN:
{
break;
}
case BOT_BUTTON_TEST:
{
break;
}
case BOT_MENU_CLOSE:
{
BotCloseBasicBot();
break;
}
}
break;
}
default:
break;
break; // WM_COMMAND
}
}
default:
break;
}
return 0;
}
// Called from main emulator loop
void BasicBotGetInput() {
if (FCEU_BotMode() != BOTMODE_NEWBOT) {
return;
}
BotInput[0] = 1; // number of frames on the buffer (starts at BotInput[1])
BotInput[1] = 0; // reset first (and only) frame
for (int i=0;i<16;i++) {
if ((int)(((double)rand()/(double)RAND_MAX)*1000) < inputNumbers[i]) {
// Button flags:
// button - player 1 - player 2
// A 1 9
// B 2 10
// select 3 11
// start 4 12
// up 5 13
// down 6 14
// left 7 15
// right 8 16
// The input code will read the value of BotInput[1]
// If flag 17 is set, it will load a savestate, else
// it takes this input and puts the lower byte in 1
// and the upper byte in 2.
BotInput[1] |= 1 << i;
}
}
}
/**
* Get the length of a textfield ("edit control") or textarea
* It's more of a macro really.
* Returns 0 when an error occurs, the length of current
* contents in any other case (check LastError in case of 0)
*/
static unsigned int FieldLength(HWND winhandle,int controlid) {
HWND hwndItem = GetDlgItem(winhandle,controlid);
return SendMessage(hwndItem,WM_GETTEXTLENGTH,0,0);
}
/**
* wrapper functions
**/
static char * GetText(int controlid) {
unsigned int count = FieldLength(hwndBasicBot,controlid);
char *t = new char[count+1];
GetDlgItemTextA(hwndBasicBot,controlid,t,count+1);
return t;
}
static UINT GetInt(int controlid) {
BOOL * x = new BOOL();
return GetDlgItemInt(hwndBasicBot,controlid, x, true);
}
static void SetInt(int controlid, int value) {
SetDlgItemInt(hwndBasicBot, controlid, value, true);
}
static void SetText(int controlid, char * str) {
SetDlgItemTextA(hwndBasicBot, controlid, str);
}
// get data from all the inputs from the gui and store it
static void GetAllInputs() {
// for all 8 buttons, twice
for (int i=0; i<16; ++i) {
inputStrings[i] = GetText(inputs[i]);
inputNumbers[i] = GetInt(inputs[i]);
SetInt(inputs[i], inputNumbers[i]);
}
romString = GetText(BOT_TF_ROM);
commentString = GetText(BOT_TF_COMMENT);
scoreString[0][0] = GetText(BOT_TF_SCORE1_DESC);
scoreString[0][1] = GetText(BOT_TF_SCORE1_VALUE);
scoreString[1][0] = GetText(BOT_TF_SCORE2_DESC);
scoreString[1][1] = GetText(BOT_TF_SCORE2_VALUE);
scoreString[2][0] = GetText(BOT_TF_SCORE3_DESC);
scoreString[2][1] = GetText(BOT_TF_SCORE3_VALUE);
}

View File

@ -1,12 +0,0 @@
#ifndef _BASICBOT2_H_
#define _BASICBOT2_H_
// statics are only used in this file
void BotCreateBasicBot();
static BOOL CALLBACK WindowCallback(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
static void BotCloseWindow();
void BasicBotGetInput();
static unsigned int FieldLength(HWND winhandle,int controlid);
static char * GetText(int controlid);
static UINT GetInt(int controlid);
static void GetAllInputs();
#endif // _BASICBOT2_H_

View File

@ -36,7 +36,6 @@
extern CFGSTRUCT NetplayConfig[]; extern CFGSTRUCT NetplayConfig[];
extern CFGSTRUCT InputConfig[]; extern CFGSTRUCT InputConfig[];
extern CFGSTRUCT HotkeyConfig[]; extern CFGSTRUCT HotkeyConfig[];
extern char *BasicBotDir;
extern int autoHoldKey, autoHoldClearKey; extern int autoHoldKey, autoHoldClearKey;
extern uint8 gNoBGFillColor; extern uint8 gNoBGFillColor;
@ -49,7 +48,6 @@ extern int MemFind_wndx, MemFind_wndy;
extern int NTViewPosX,NTViewPosY; extern int NTViewPosX,NTViewPosY;
extern int PPUViewPosX,PPUViewPosY; extern int PPUViewPosX,PPUViewPosY;
extern int MainWindow_wndx, MainWindow_wndy; extern int MainWindow_wndx, MainWindow_wndy;
extern int BasicBot_wndx, BasicBot_wndy;
extern int MemWatch_wndx, MemWatch_wndy; extern int MemWatch_wndx, MemWatch_wndy;
extern int Monitor_wndx, Monitor_wndy; extern int Monitor_wndx, Monitor_wndy;
extern int Tracer_wndx, Tracer_wndy; extern int Tracer_wndx, Tracer_wndy;
@ -99,7 +97,6 @@ static CFGSTRUCT fceuconfig[] = {
NACS("odcheats",directory_names[5]), NACS("odcheats",directory_names[5]),
NACS("odmovies",directory_names[6]), NACS("odmovies",directory_names[6]),
NACS("odmemwatch",directory_names[7]), NACS("odmemwatch",directory_names[7]),
NACS("odbasicbot",directory_names[8]),
NACS("odmacro",directory_names[9]), NACS("odmacro",directory_names[9]),
NACS("odinput",directory_names[10]), NACS("odinput",directory_names[10]),
NACS("odlua",directory_names[11]), NACS("odlua",directory_names[11]),
@ -153,7 +150,6 @@ static CFGSTRUCT fceuconfig[] = {
AC(frame_display), AC(frame_display),
AC(input_display), AC(input_display),
ACS(MemWatchDir), ACS(MemWatchDir),
ACS(BasicBotDir),
AC(EnableBackgroundInput), AC(EnableBackgroundInput),
AC(MemWatchLoadOnStart), AC(MemWatchLoadOnStart),
AC(MemWatchLoadFileOnStart), AC(MemWatchLoadFileOnStart),
@ -176,8 +172,6 @@ static CFGSTRUCT fceuconfig[] = {
AC(PPUViewPosY), AC(PPUViewPosY),
AC(MainWindow_wndx), AC(MainWindow_wndx),
AC(MainWindow_wndy), AC(MainWindow_wndy),
AC(BasicBot_wndx),
AC(BasicBot_wndy),
AC(MemWatch_wndx), AC(MemWatch_wndx),
AC(MemWatch_wndy), AC(MemWatch_wndy),
AC(Monitor_wndx), AC(Monitor_wndx),

View File

@ -57,8 +57,6 @@
#include "tasedit.h" #include "tasedit.h"
#include "main.h" #include "main.h"
#include "basicbot.h"
#include "basicbot2.h" // qfox: new bot
#include "args.h" #include "args.h"
#include "config.h" #include "config.h"
#include "sound.h" #include "sound.h"
@ -127,8 +125,8 @@ std::string BaseDirectory;
int PauseAfterLoad; int PauseAfterLoad;
// Contains the names of the overridden standard directories // Contains the names of the overridden standard directories
// in the order roms, nonvol, states, fdsrom, snaps, cheats, movies, memwatch, basicbot, macro, input presets, lua scripts, base // in the order roms, nonvol, states, fdsrom, snaps, cheats, movies, memwatch, macro, input presets, lua scripts, base
char *directory_names[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; char *directory_names[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//Handle of the main window. //Handle of the main window.
HWND hAppWnd = 0; HWND hAppWnd = 0;
@ -454,20 +452,6 @@ static void DriverKill(void)
HANDLE mapGameMemBlock; HANDLE mapGameMemBlock;
HANDLE mapRAM; HANDLE mapRAM;
// qfox: about BotInput
// If in botmode, BasicBot will put the input in this variable.
// FCEU_UpdateBot() in input.cpp will then fill the controller
// inputs according to this variable. The layout is as follows:
// bit 0-7 = player 1 controller
// bits 8-15 = player 2 controller
// bit 17 = load savestate 1 if set
// Order of these buttons bitwise:
// A B SELECT START UP DOWN LEFT RIGHT
// TODO: fix a new variable to tell the function to load a save
// state to allow the bot to compute four players (since
// there's not enough space to do so now)
uint32 *BotInput;
void win_AllocBuffers(uint8 **GameMemBlock, uint8 **RAM) void win_AllocBuffers(uint8 **GameMemBlock, uint8 **RAM)
{ {
mapGameMemBlock = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE, 0, 131072,"fceu.GameMemBlock"); mapGameMemBlock = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE, 0, 131072,"fceu.GameMemBlock");
@ -491,13 +475,6 @@ void win_AllocBuffers(uint8 **GameMemBlock, uint8 **RAM)
*RAM = (uint8 *)MapViewOfFile(mapRAM, FILE_MAP_WRITE, 0, 0, 0); *RAM = (uint8 *)MapViewOfFile(mapRAM, FILE_MAP_WRITE, 0, 0, 0);
} }
//Bot input
// qfox: tossed mapping alltogether
//mapBotInput = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0, BOT_MAXFRAMES*sizeof(int), "fceu.BotInput");
//BotInput = (uint32 *) MapViewOfFile(mapBotInput, FILE_MAP_WRITE, 0, 0, 0);
// qfox: not working with a map anymore
BotInput = new uint32[BOT_MAXFRAMES];
BotInput[0] = 0;
} }
void win_FreeBuffers(uint8 *GameMemBlock, uint8 *RAM) void win_FreeBuffers(uint8 *GameMemBlock, uint8 *RAM)
@ -525,9 +502,6 @@ void win_FreeBuffers(uint8 *GameMemBlock, uint8 *RAM)
free(GameMemBlock); free(GameMemBlock);
GameMemBlock = NULL; GameMemBlock = NULL;
} }
// qfox: not working with map anymore
delete BotInput;
} }
#endif #endif
@ -695,14 +669,6 @@ doloopy:
int32 *sound=0; ///contains sound data buffer int32 *sound=0; ///contains sound data buffer
int32 ssize=0; ///contains sound samples count int32 ssize=0; ///contains sound samples count
#ifdef _USE_SHARED_MEMORY_
// press input like BasicBot tells you to
UpdateBasicBot(); // qfox: old bot
// same as above, for the new bot
BasicBotGetInput(); // qfox: new bot (uses same input variables and mechanism as old bot, for now)
FCEU_UpdateBot(); // qfox: shouldnt this be inside the sharedmemory ifdef?? (it is now, was below the endif)
#endif
FCEUI_Emulate(&gfx, &sound, &ssize, 0); //emulate a single frame FCEUI_Emulate(&gfx, &sound, &ssize, 0); //emulate a single frame
FCEUD_Update(gfx, sound, ssize); //update displays and debug tools FCEUD_Update(gfx, sound, ssize); //update displays and debug tools
@ -1002,26 +968,6 @@ void win_debuggerLoop()
// Update the game and gamewindow with a new frame // Update the game and gamewindow with a new frame
void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count) void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count)
{ {
//mbg merge 7/19/06 - leaving this untouched but untested
//its probably not optimal
if(FCEU_BotMode() != BOTMODE_OFF) {
//this counts the number of frames we've skipped blitting
// qfox 09/17/06: for bot evaluation purposes, the number
// of frames to be skipped is set from the
// bot gui.
if(XBuf && (BotFramesSkipped++ >= BotFrameSkip()))
{
BotFramesSkipped = 0;
FCEUD_BlitScreen(XBuf);
// qfox 17/09/06: it can be wishfull for a coder to evaluate his bot.
// slowing it down can help here :) defaults at 0
if (BotFramePause() > 0) Sleep(BotFramePause());
}
UpdateFCEUWindow();
FCEUD_UpdateInput();
return;
}
win_SoundSetScale(fps_scale); win_SoundSetScale(fps_scale);
//write all the sound we generated. //write all the sound we generated.

View File

@ -57,7 +57,6 @@ static const char *default_directory_names[12] = {
"cheats", // cheats "cheats", // cheats
"movies", // movies "movies", // movies
"tools", // memwatch "tools", // memwatch
"tools", // basicbot
"tools", // macro "tools", // macro
"tools", // input presets "tools", // input presets
"tools" // lua scripts "tools" // lua scripts

View File

@ -101,9 +101,7 @@ BEGIN
MENUITEM "&Cheats...", MENU_CHEATS MENUITEM "&Cheats...", MENU_CHEATS
MENUITEM "&Memory Watch...", MENU_MEMORY_WATCH MENUITEM "&Memory Watch...", MENU_MEMORY_WATCH
MENUITEM "&RAM Filter...", MENU_RAMFILTER MENUITEM "&RAM Filter...", MENU_RAMFILTER
MENUITEM "&Basic Bot...", MENU_BASIC_BOT MENUITEM "TAS Edit", MENU_TASEDIT, INACTIVE
MENUITEM "New Basic Bot...", MENU_BASIC_BOT2
MENUITEM "TAS Edit", MENU_TASEDIT
MENUITEM "Convert FCM...", MENU_CONVERT_MOVIE MENUITEM "Convert FCM...", MENU_CONVERT_MOVIE
MENUITEM SEPARATOR MENUITEM SEPARATOR
POPUP "Autofire &Pattern" POPUP "Autofire &Pattern"
@ -135,8 +133,6 @@ BEGIN
END END
MENUITEM "&Alternate A and B", MENU_ALTERNATE_AB MENUITEM "&Alternate A and B", MENU_ALTERNATE_AB
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Use &External Input", MENU_EXTERNAL_INPUT
MENUITEM SEPARATOR
MENUITEM "Text Hooker", ID_TOOLS_TEXTHOOKER MENUITEM "Text Hooker", ID_TOOLS_TEXTHOOKER
END END
POPUP "&Debug" POPUP "&Debug"
@ -836,181 +832,6 @@ BEGIN
LTEXT "Value",MW_ValueLabel2,231,7,19,8 LTEXT "Value",MW_ValueLabel2,231,7,19,8
END END
BASICBOT DIALOGEX 0, 0, 536, 378
STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Basic Bot by qFox"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
PUSHBUTTON "Close",GUI_BOT_CLOSE,12,14,48,12
LTEXT "A",65421,72,54,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "B",65420,72,66,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Select",65419,72,78,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Start",65418,72,90,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Up",65417,72,102,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Down",65416,72,114,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Left",65415,72,126,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Right",65414,72,138,24,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Best attempt:",65413,318,182,42,8
EDITTEXT GUI_BOT_A_1,96,54,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_B_1,96,66,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_SELECT_1,96,78,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_START_1,96,90,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_UP_1,96,102,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_DOWN_1,96,114,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_LEFT_1,96,126,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_RIGHT_1,96,138,102,12,ES_AUTOHSCROLL
LTEXT "Invalid when:",65412,12,211,42,12,SS_CENTERIMAGE
EDITTEXT GUI_BOT_INVALID,60,210,180,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_X,264,210,41,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_SCORE2,72,306,168,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_SCORE3,72,318,168,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_SCORE4,72,330,168,12,ES_AUTOHSCROLL
PUSHBUTTON "Save...",GUI_BOT_SAVE,12,36,48,12
PUSHBUTTON "Load...",GUI_BOT_LOAD,12,51,48,12
GROUPBOX "Results",65406,312,0,161,275
DEFPUSHBUTTON "Run!",GUI_BOT_RUN,169,10,42,12
PUSHBUTTON "Clear",GUI_BOT_CLEAR,12,66,48,12
EDITTEXT GUI_BOT_KEYS,318,192,150,80,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP
PUSHBUTTON "Play Best",GUI_BOT_BEST,12,123,48,12
EDITTEXT GUI_BOT_EXTRA,252,325,216,42,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Test",GUI_BOT_TEST,12,86,48,12
PUSHBUTTON "Update",GUI_BOT_UPDATE,12,100,48,12
GROUPBOX "Control",IDC_STATIC,6,0,60,156
GROUPBOX "Input",IDC_STATIC,66,0,54,36
LTEXT "Debug:",65435,126,22,24,10,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "Error:",65437,214,11,20,10,SS_CENTERIMAGE,WS_EX_TRANSPARENT
GROUPBOX "Debug",IDC_STATIC,120,0,192,36,0,WS_EX_TRANSPARENT
EDITTEXT GUI_BOT_SCORE1,72,294,168,12,ES_AUTOHSCROLL
LTEXT "X:",65423,252,210,8,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
EDITTEXT GUI_BOT_Y,264,222,41,12,ES_AUTOHSCROLL
LTEXT "Y:",65424,252,222,8,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
EDITTEXT GUI_BOT_Z,264,234,41,12,ES_AUTOHSCROLL
LTEXT "Z:",65425,252,234,8,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
EDITTEXT GUI_BOT_P,264,246,41,12,ES_AUTOHSCROLL
LTEXT "P:",65426,252,246,8,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
EDITTEXT GUI_BOT_Q,264,258,41,12,ES_AUTOHSCROLL
LTEXT "Q:",65427,252,258,8,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
PUSHBUTTON "Update",GUI_BOT_U,264,197,41,12
EDITTEXT GUI_BOT_COMMENTS,51,160,255,12,ES_AUTOHSCROLL
LTEXT "Rom:",65429,12,172,36,12,SS_CENTERIMAGE
PUSHBUTTON "Values",GUI_BOT_VALUES,125,10,42,12
PUSHBUTTON "Reset",GUI_BOT_RESET,12,138,48,12
EDITTEXT GUI_BOT_OK,60,198,180,12,ES_AUTOHSCROLL
LTEXT "OK when:",IDC_STATIC,12,199,48,12,SS_CENTERIMAGE
LTEXT "Rollback:",65430,12,224,42,12,SS_CENTERIMAGE | WS_DISABLED
EDITTEXT GUI_BOT_ROLLBACK,60,222,180,12,ES_AUTOHSCROLL | WS_DISABLED
LTEXT "Max frames:",65431,12,236,42,12,SS_CENTERIMAGE | WS_DISABLED
EDITTEXT GUI_BOT_MAXFRAMES,60,234,180,12,ES_AUTOHSCROLL | WS_DISABLED
GROUPBOX "Segment control",IDC_STATIC,6,186,240,90
LTEXT "Max attempts:",65432,12,247,48,12,SS_CENTERIMAGE
EDITTEXT GUI_BOT_MAXATTEMPTS,60,246,180,12,ES_AUTOHSCROLL
LTEXT "Max segments:",65433,12,258,48,12,SS_CENTERIMAGE
EDITTEXT GUI_BOT_MAXSEGMENTS,60,258,180,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_A_2,204,54,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_B_2,204,66,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_SELECT_2,204,78,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_START_2,204,90,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_UP_2,204,102,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_DOWN_2,204,114,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_LEFT_2,204,126,102,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_RIGHT_2,204,138,102,12,ES_AUTOHSCROLL
CTEXT "Player 1",IDC_STATIC,96,42,102,12,SS_CENTERIMAGE
CTEXT "Player 2",IDC_STATIC,204,42,102,12,SS_CENTERIMAGE
GROUPBOX "Input",IDC_STATIC,66,36,246,120
CONTROL "External",GUI_BOT_EXTERNAL,"Button",BS_AUTORADIOBUTTON,72,24,41,10
CONTROL "Normal",GUI_BOT_INTERNAL,"Button",BS_AUTORADIOBUTTON | WS_GROUP,72,12,38,10
GROUPBOX "Static variables",IDC_STATIC,246,186,66,90
GROUPBOX "Score",IDC_STATIC,6,276,240,96
EDITTEXT GUI_BOT_SCORE5,72,342,168,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_SCORE6,72,354,168,12,ES_AUTOHSCROLL
GROUPBOX "Init frame code",IDC_STATIC,246,313,228,59
LTEXT "Attempt:",IDC_STATIC,318,84,24,8,SS_CENTERIMAGE
CTEXT "Last:",IDC_STATIC,362,59,29,8,SS_CENTERIMAGE
CTEXT "Best:",IDC_STATIC,390,60,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_ATTEMPT_LAST,348,84,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_ATTEMPT_BEST,390,84,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_SCORE_LAST,348,110,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_SCORE_BEST,390,110,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE1_LAST,348,121,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE1_BEST,390,121,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE2_LAST,348,133,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE2_BEST,390,133,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE3_LAST,348,145,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE3_BEST,390,145,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE4_LAST,348,156,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE4_BEST,390,156,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE5_LAST,348,169,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE5_BEST,390,169,36,8,SS_CENTERIMAGE
LTEXT "",GUI_BOT_ERROR,238,12,70,10,SS_CENTERIMAGE
LTEXT "",GUI_BOT_DEBUG,156,22,152,10,SS_CENTERIMAGE
LTEXT "Attempts:",IDC_STATIC,362,6,30,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_ATTEMPTS,398,6,66,8,SS_CENTERIMAGE
LTEXT "Frames:",IDC_STATIC,362,18,30,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_FRAMES,398,18,66,8,SS_CENTERIMAGE
LTEXT "Frames:",IDC_STATIC,318,96,24,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_FRAMES_LAST,348,97,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_FRAMES_BEST,390,97,36,8,SS_CENTERIMAGE
LTEXT "OK:",IDC_STATIC,362,30,13,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_OKS,398,30,66,8,SS_CENTERIMAGE
LTEXT "Invalid:",IDC_STATIC,362,42,24,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_INVALIDS,398,42,66,8,SS_CENTERIMAGE
CTEXT "Prev seg:",IDC_STATIC,432,60,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_ATTEMPT_PREV,432,84,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_SCORE_PREV,432,110,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE1_PREV,432,121,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE2_PREV,432,133,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE3_PREV,432,145,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE4_PREV,432,156,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_TIE5_PREV,432,169,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_FRAMES_PREV,432,97,36,8,SS_CENTERIMAGE
LTEXT "Segment:",IDC_STATIC,318,73,32,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_SEGMENT_LAST,348,72,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_SEGMENT_BEST,390,72,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_SEGMENT_PREV,432,72,36,8,SS_CENTERIMAGE
RTEXT "0",GUI_BOT_LB_PREV,456,180,12,8,SS_CENTERIMAGE
RTEXT "Lastbutton:",GUI_BOT_TIE5_PREV3,411,180,42,8,SS_CENTERIMAGE
EDITTEXT GUI_BOT_SKIPS,318,20,36,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_SLOW,318,44,36,12,ES_AUTOHSCROLL
CTEXT "Frameskip:",IDC_STATIC,319,10,36,10,SS_CENTERIMAGE
CTEXT "Delay:",IDC_STATIC,318,33,36,10,SS_CENTERIMAGE
PUSHBUTTON "Set",GUI_BOT_FRAMESKIP,319,59,34,9
LTEXT "6:",65434,12,354,8,12,SS_CENTERIMAGE
LTEXT "5:",65428,12,342,8,12,SS_CENTERIMAGE
LTEXT "4:",65408,12,330,8,12,SS_CENTERIMAGE
LTEXT "3:",65409,12,318,8,12,SS_CENTERIMAGE
LTEXT "2:",65410,12,306,8,12,SS_CENTERIMAGE
LTEXT "1:",65411,12,294,8,12,SS_CENTERIMAGE
EDITTEXT GUI_BOT_TITLE1,24,294,42,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_TITLE2,24,306,42,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_TITLE3,24,318,42,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_TITLE4,24,330,42,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_TITLE5,24,342,42,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_TITLE6,24,354,42,12,ES_AUTOHSCROLL
CTEXT "Title",GUI_BOT_PART_LAST2,24,285,42,8,SS_CENTERIMAGE,WS_EX_TRANSPARENT
CTEXT "Condition",GUI_BOT_PART_LAST3,72,284,84,10,SS_CENTERIMAGE,WS_EX_TRANSPARENT
GROUPBOX "Results",IDC_STATIC,313,0,44,71
GROUPBOX "",IDC_STATIC,356,0,117,55
EDITTEXT GUI_BOT_ROMNAME,51,172,255,12,ES_AUTOHSCROLL
LTEXT "Comments:",65439,12,160,36,12,SS_CENTERIMAGE
GROUPBOX "Init code",IDC_STATIC,246,276,228,36
EDITTEXT GUI_BOT_INIT_SEGMENT,315,298,153,12,ES_AUTOHSCROLL
EDITTEXT GUI_BOT_INIT_ATTEMPT,315,286,153,12,ES_AUTOHSCROLL
LTEXT "Before Attempt:",GUI_BOT_ATTEMPT_LAST2,252,286,59,12,SS_CENTERIMAGE
LTEXT "Before Segment:",GUI_BOT_INIT_PART2,252,298,62,12,SS_CENTERIMAGE
LTEXT "1:",GUI_BOT_TITLEL1,318,110,24,8,SS_CENTERIMAGE
LTEXT "2:",GUI_BOT_TITLEL2,318,121,24,8,SS_CENTERIMAGE
LTEXT "3:",GUI_BOT_TITLEL3,318,133,24,8,SS_CENTERIMAGE
LTEXT "4:",GUI_BOT_TITLEL4,318,145,24,8,SS_CENTERIMAGE
LTEXT "5:",GUI_BOT_TITLEL5,318,156,24,8,SS_CENTERIMAGE
LTEXT "6:",GUI_BOT_TITLEL6,318,169,24,8,SS_CENTERIMAGE
PUSHBUTTON "",GUI_BOT_TITLES,12,288,6,6
LISTBOX GUI_BOT_COUNTERS,478,43,55,330,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
CONTROL "Counters",GUI_BOT_VARS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,482,19,44,10
PUSHBUTTON "Update",GUI_BOT_UPDATEVARS,481,30,52,9
CONTROL "",GUI_BOT_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,477,6,8,10
LTEXT "Create Logfile",IDC_STATIC,488,5,46,11,SS_CENTERIMAGE
END
DEBUGGER DIALOGEX 54, 74, 547, 306 DEBUGGER DIALOGEX 54, 74, 547, 306
STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "6502 Debugger" CAPTION "6502 Debugger"
@ -1484,58 +1305,6 @@ BEGIN
LTEXT "(Hex)",IDC_STATIC,226,34,19,8 LTEXT "(Hex)",IDC_STATIC,226,34,19,8
END END
BASICBOT2 DIALOGEX 0, 0, 335, 316
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
EDITTEXT BOT_TF_ROM,44,5,281,14,ES_AUTOHSCROLL | WS_DISABLED
EDITTEXT BOT_TF_COMMENT,44,19,281,12,ES_AUTOHSCROLL | WS_DISABLED
LTEXT "Rom",IDC_STATIC,5,5,39,14,SS_CENTERIMAGE
LTEXT "Comment",IDC_STATIC,5,19,39,13,SS_CENTERIMAGE
PUSHBUTTON "Run",BOT_BUTTON_RUN,251,158,74,14,WS_DISABLED
LTEXT "Score 1",IDC_STATIC,5,158,39,14,SS_CENTERIMAGE
EDITTEXT BOT_TF_SCORE1_DESC,44,158,50,14,ES_AUTOHSCROLL | WS_DISABLED
LTEXT "Score 2",IDC_STATIC,5,172,39,14,SS_CENTERIMAGE
EDITTEXT BOT_TF_SCORE2_DESC,44,172,50,14,ES_AUTOHSCROLL | WS_DISABLED
EDITTEXT BOT_TF_SCORE2_VALUE,94,172,136,14,ES_AUTOHSCROLL | WS_DISABLED
LTEXT "Score 3",IDC_STATIC,5,186,39,14,SS_CENTERIMAGE
EDITTEXT BOT_TF_SCORE3_DESC,44,186,50,14,ES_AUTOHSCROLL | WS_DISABLED
EDITTEXT BOT_TF_SCORE3_VALUE,94,186,136,14,ES_AUTOHSCROLL | WS_DISABLED
CTEXT "Description",IDC_STATIC,44,147,50,11,SS_CENTERIMAGE
EDITTEXT BOT_TF_SCORE1_VALUE,94,158,136,14,ES_AUTOHSCROLL | WS_DISABLED
CTEXT "Condition",IDC_STATIC,94,147,135,11,SS_CENTERIMAGE
CTEXT "Player 1 input",IDC_STATIC,45,33,136,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT
LTEXT "A",IDC_STATIC,5,44,40,13,SS_CENTERIMAGE
LTEXT "B",IDC_STATIC,5,57,40,12,SS_CENTERIMAGE
LTEXT "Select",IDC_STATIC,5,69,40,13,SS_CENTERIMAGE
LTEXT "Start",IDC_STATIC,5,82,40,13,SS_CENTERIMAGE
LTEXT "Up",IDC_STATIC,5,95,40,13,SS_CENTERIMAGE
LTEXT "Down",IDC_STATIC,5,108,40,13,SS_CENTERIMAGE
LTEXT "Left",IDC_STATIC,5,121,40,13,SS_CENTERIMAGE
LTEXT "Right",IDC_STATIC,5,134,40,13,SS_CENTERIMAGE
EDITTEXT BOT_TF_B_1,45,57,136,12,ES_AUTOHSCROLL
EDITTEXT BOT_TF_SELECT_1,45,69,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_START_1,45,82,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_UP_1,45,95,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_DOWN_1,45,108,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_LEFT_1,45,121,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_RIGHT_1,45,134,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_A_1,45,44,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_RIGHT_2,189,134,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_LEFT_2,189,121,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_DOWN_2,189,108,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_UP_2,189,95,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_START_2,189,82,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_SELECT_2,189,69,136,13,ES_AUTOHSCROLL
EDITTEXT BOT_TF_B_2,189,57,136,12,ES_AUTOHSCROLL
EDITTEXT BOT_TF_A_2,189,44,136,13,ES_AUTOHSCROLL
CTEXT "Player 2 input",IDC_STATIC,189,32,136,12,SS_CENTERIMAGE,WS_EX_TRANSPARENT
PUSHBUTTON "Update Inputs",BOT_BUTTON_UPDATE,251,186,74,14
PUSHBUTTON "TEST",BOT_BUTTON_TEST,251,172,74,14,WS_DISABLED
CTEXT "Use only numbers for now, chance 0-1000",IDC_STATIC,89,19,185,12,SS_CENTERIMAGE
END
IDD_LUA_ADD DIALOGEX 0, 0, 186, 66 IDD_LUA_ADD DIALOGEX 0, 0, 186, 66
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Load Lua Script..." CAPTION "Load Lua Script..."
@ -1689,37 +1458,6 @@ BEGIN
BOTTOMMARGIN, 171 BOTTOMMARGIN, 171
END END
"BASICBOT2", DIALOG
BEGIN
LEFTMARGIN, 5
RIGHTMARGIN, 325
VERTGUIDE, 44
VERTGUIDE, 94
VERTGUIDE, 181
VERTGUIDE, 189
VERTGUIDE, 229
VERTGUIDE, 251
VERTGUIDE, 325
VERTGUIDE, 331
TOPMARGIN, 5
BOTTOMMARGIN, 306
HORZGUIDE, 19
HORZGUIDE, 31
HORZGUIDE, 44
HORZGUIDE, 57
HORZGUIDE, 69
HORZGUIDE, 82
HORZGUIDE, 95
HORZGUIDE, 108
HORZGUIDE, 121
HORZGUIDE, 134
HORZGUIDE, 147
HORZGUIDE, 158
HORZGUIDE, 172
HORZGUIDE, 186
HORZGUIDE, 200
END
"IDD_LUA_ADD", DIALOG "IDD_LUA_ADD", DIALOG
BEGIN BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7
@ -1834,42 +1572,6 @@ IDB_TE_ARROW BITMAP "res/te_arrow.bmp"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Dutch (Netherlands) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NLD)
#ifdef _WIN32
LANGUAGE LANG_DUTCH, SUBLANG_DUTCH
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
BASICBOTMENU MENU
BEGIN
POPUP "File"
BEGIN
MENUITEM "Clear", ID_FILE_CLEAR, INACTIVE
MENUITEM "Load", ID_FILE_LOAD, INACTIVE
MENUITEM "Save", ID_FILE_SAVE40223, INACTIVE
MENUITEM "Close", BOT_MENU_CLOSE
END
MENUITEM "Play Best", ID_PLAYBEST, INACTIVE
MENUITEM "Reset", ID_RESET, INACTIVE
POPUP "Mode"
BEGIN
MENUITEM "Simple", ID_MODE_SIMPLE, CHECKED
MENUITEM "Advanced", ID_MODE_ADVANCED, INACTIVE
END
END
#endif // Dutch (Netherlands) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED #ifndef APSTUDIO_INVOKED
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

View File

@ -2,11 +2,9 @@
// Microsoft Visual C++ generated include file. // Microsoft Visual C++ generated include file.
// Used by res.rc // Used by res.rc
// //
#define GUI_BOT_CLOSE 1
#define CLOSE_BUTTON 1 #define CLOSE_BUTTON 1
#define BUTTON_CLOSE 1 #define BUTTON_CLOSE 1
#define BTN_CLOSE 1 #define BTN_CLOSE 1
#define GUI_BOT_VALUES 2
#define BTN_CANCEL 2 #define BTN_CANCEL 2
#define MENU_OPEN_FILE 100 #define MENU_OPEN_FILE 100
#define EDIT_ROMS 100 #define EDIT_ROMS 100
@ -276,165 +274,59 @@
#define IDC_VIDEOCONFIG_NO8LIM 600 #define IDC_VIDEOCONFIG_NO8LIM 600
#define IDC_DEBUGGER_ROM_PATCHER 602 #define IDC_DEBUGGER_ROM_PATCHER 602
#define LIST_DEBUGGER_BOOKMARKS 701 #define LIST_DEBUGGER_BOOKMARKS 701
#define GUI_BOT_A_1 1000
#define IDC_EDIT_OFFSET 1000 #define IDC_EDIT_OFFSET 1000
#define IDC_GAME_GENIE_CODE 1000 #define IDC_GAME_GENIE_CODE 1000
#define IDC_MEMVIEWFIND_WHAT 1000 #define IDC_MEMVIEWFIND_WHAT 1000
#define IDC_BOOKMARK_DESCRIPTION 1000 #define IDC_BOOKMARK_DESCRIPTION 1000
#define GUI_BOT_B_1 1001
#define MW_ADDR00 1001 #define MW_ADDR00 1001
#define IDC_EDIT_FROM 1001 #define IDC_EDIT_FROM 1001
#define IDC_GAME_GENIE_ADDR 1001 #define IDC_GAME_GENIE_ADDR 1001
#define IDC_MEMVIEWFIND_TYPE_HEX 1001 #define IDC_MEMVIEWFIND_TYPE_HEX 1001
#define IDC_NTVIEW_MIRROR_HORIZONTAL 1001 #define IDC_NTVIEW_MIRROR_HORIZONTAL 1001
#define GUI_BOT_SELECT_1 1002
#define IDC_CHECK_STOPMOVIE 1002 #define IDC_CHECK_STOPMOVIE 1002
#define IDC_GAME_GENIE_COMP 1002 #define IDC_GAME_GENIE_COMP 1002
#define IDC_TRACER_STATS 1002 #define IDC_TRACER_STATS 1002
#define IDC_MEMVIEWFIND_TYPE_TEXT 1002 #define IDC_MEMVIEWFIND_TYPE_TEXT 1002
#define IDC_NTVIEW_MIRROR_VERTICAL 1002 #define IDC_NTVIEW_MIRROR_VERTICAL 1002
#define GUI_BOT_START_1 1003
#define LV_MAPPING 1003 #define LV_MAPPING 1003
#define IDC_EDIT_STOPFRAME 1003 #define IDC_EDIT_STOPFRAME 1003
#define IDC_GAME_GENIE_VAL 1003 #define IDC_GAME_GENIE_VAL 1003
#define IDC_MEMVIEWFIND_DIR_UP 1003 #define IDC_MEMVIEWFIND_DIR_UP 1003
#define IDC_NTVIEW_MIRROR_FOUR_SCREEN 1003 #define IDC_NTVIEW_MIRROR_FOUR_SCREEN 1003
#define GUI_BOT_UP_1 1004
#define MW_ADDR01 1004 #define MW_ADDR01 1004
#define IDC_LIST_GGADDRESSES 1004 #define IDC_LIST_GGADDRESSES 1004
#define IDC_MEMVIEWFIND_DIR_DOWN 1004 #define IDC_MEMVIEWFIND_DIR_DOWN 1004
#define IDC_NTVIEW_MIRROR_SS_TABLE_0 1004 #define IDC_NTVIEW_MIRROR_SS_TABLE_0 1004
#define GUI_BOT_DOWN_1 1005
#define IDC_BTN_ADD_TO_CHEATS 1005 #define IDC_BTN_ADD_TO_CHEATS 1005
#define IDC_MEMVIEWFIND_NEXT 1005 #define IDC_MEMVIEWFIND_NEXT 1005
#define IDC_NTVIEW_MIRROR_SS_TABLE_1 1005 #define IDC_NTVIEW_MIRROR_SS_TABLE_1 1005
#define GUI_BOT_LEFT_1 1006
#define IDC_NTVIEW_MIRROR_SS_TABLE_2 1006 #define IDC_NTVIEW_MIRROR_SS_TABLE_2 1006
#define GUI_BOT_RIGHT_1 1007
#define MW_ADDR02 1007 #define MW_ADDR02 1007
#define IDC_NTVIEW_MIRROR_SS_TABLE_3 1007 #define IDC_NTVIEW_MIRROR_SS_TABLE_3 1007
#define GUI_BOT_A_2 1008
#define IDC_NTVIEW_SHOW_SCROLL_LINES 1008 #define IDC_NTVIEW_SHOW_SCROLL_LINES 1008
#define GUI_BOT_INVALID 1009
#define GUI_BOT_X 1010
#define MW_ADDR03 1010 #define MW_ADDR03 1010
#define GUI_BOT_SCORE2 1011
#define GUI_BOT_SCORE3 1012
#define GUI_BOT_SCORE4 1013
#define MW_ADDR04 1013 #define MW_ADDR04 1013
#define GUI_BOT_SAVE 1014
#define GUI_BOT_LOAD 1015
#define GUI_BOT_RUN 1016
#define MW_ADDR05 1016 #define MW_ADDR05 1016
#define GUI_BOT_SCORE1 1017
#define GUI_BOT_Y 1018
#define GUI_BOT_KEYS 1019
#define MW_ADDR06 1019 #define MW_ADDR06 1019
#define GUI_BOT_EXTRA 1020
#define GUI_BOT_BEST 1021
#define GUI_BOT_Z 1022
#define MW_ADDR07 1022 #define MW_ADDR07 1022
#define GUI_BOT_COMMENTS 1023
#define GUI_BOT_UPDATE 1024
#define GUI_BOT_BOTMODE 1025 #define GUI_BOT_BOTMODE 1025
#define GUI_BOT_ROMNAME 1025
#define MW_ADDR08 1025 #define MW_ADDR08 1025
#define GUI_BOT_P 1026
#define GUI_BOT_Q 1027
#define GUI_BOT_TEST 1028
#define MW_ADDR09 1028 #define MW_ADDR09 1028
#define GUI_BOT_RESET 1029
#define GUI_BOT_ROLLBACK 1030
#define GUI_BOT_MAXFRAMES 1031
#define MW_ADDR10 1031 #define MW_ADDR10 1031
#define GUI_BOT_MAXATTEMPTS 1032
#define GUI_BOT_MAXSEGMENTS 1033
#define GUI_BOT_B_2 1034
#define MW_ADDR11 1034 #define MW_ADDR11 1034
#define GUI_BOT_INTERNAL 1035
#define GUI_BOT_CLEAR 1036
#define GUI_BOT_ATTEMPTS 1037
#define MW_ADDR12 1037 #define MW_ADDR12 1037
#define GUI_BOT_SELECT_2 1038
#define GUI_BOT_START_2 1039
#define GUI_BOT_EXTERNAL 1040
#define MW_ADDR13 1040 #define MW_ADDR13 1040
#define GUI_BOT_UP_2 1041
#define GUI_BOT_DOWN_2 1042
#define GUI_BOT_LEFT_2 1043
#define MW_ADDR14 1043 #define MW_ADDR14 1043
#define GUI_BOT_RIGHT_2 1044
#define GUI_BOT_SCORE5 1045
#define GUI_BOT_SCORE6 1046
#define MW_ADDR15 1046 #define MW_ADDR15 1046
#define GUI_BOT_INIT_SEGMENT 1047
#define GUI_BOT_INIT_ATTEMPT 1048
#define GUI_BOT_FRAMES 1049
#define MW_ADDR16 1049 #define MW_ADDR16 1049
#define GUI_BOT_U 1052
#define MW_ADDR17 1052 #define MW_ADDR17 1052
#define MW_ADDR18 1055 #define MW_ADDR18 1055
#define MW_ADDR19 1058 #define MW_ADDR19 1058
#define GUI_BOT_OK 1061
#define MW_ADDR20 1061 #define MW_ADDR20 1061
#define GUI_BOT_ATTEMPT_LAST 1062
#define GUI_BOT_ATTEMPT_BEST 1063
#define GUI_BOT_SCORE_LAST 1064
#define MW_ADDR21 1064 #define MW_ADDR21 1064
#define GUI_BOT_SCORE_BEST 1065
#define GUI_BOT_TIE1_LAST 1066
#define GUI_BOT_TIE1_BEST 1067
#define MW_ADDR22 1067 #define MW_ADDR22 1067
#define GUI_BOT_TIE2_BEST 1068
#define GUI_BOT_TIE3_BEST 1069
#define GUI_BOT_TIE4_BEST 1070
#define MW_ADDR23 1070 #define MW_ADDR23 1070
#define GUI_BOT_TIE5_BEST 1071
#define GUI_BOT_TIE2_LAST 1072
#define GUI_BOT_TIE3_LAST 1073
#define GUI_BOT_TIE4_LAST 1074
#define GUI_BOT_TIE5_LAST 1075
#define GUI_BOT_ATTEMPT_LAST2 1076
#define GUI_BOT_SKIPS 1077
#define GUI_BOT_FRAMES_LAST 1078
#define GUI_BOT_FRAMES_BEST 1079
#define GUI_BOT_OKS 1080
#define GUI_BOT_ATTEMPT_PREV 1081
#define GUI_BOT_INVALIDS 1082
#define GUI_BOT_SCORE_PREV 1083
#define GUI_BOT_TIE1_PREV 1084
#define GUI_BOT_TIE2_PREV 1085
#define GUI_BOT_TIE3_PREV 1086
#define GUI_BOT_TIE4_PREV 1087
#define GUI_BOT_TIE5_PREV 1088
#define GUI_BOT_FRAMES_PREV 1089
#define GUI_BOT_PART_LAST 1090 #define GUI_BOT_PART_LAST 1090
#define GUI_BOT_SEGMENT_BEST 1091
#define GUI_BOT_SEGMENT_LAST 1090
#define GUI_BOT_SEGMENT_PREV 1092
#define GUI_BOT_LB_PREV 1093
#define GUI_BOT_TIE5_PREV3 1094
#define GUI_BOT_SLOW 1095
#define GUI_BOT_FRAMESKIP 1096
#define GUI_BOT_PART_LAST2 1097
#define GUI_BOT_TITLE1 1098
#define GUI_BOT_TITLE2 1099
#define GUI_BOT_TITLE3 1100
#define GUI_BOT_TITLE4 1101
#define GUI_BOT_TITLE5 1102
#define GUI_BOT_TITLE6 1103
#define GUI_BOT_PART_LAST3 1104
#define GUI_BOT_INIT_PART2 1105
#define GUI_BOT_TITLEL1 1106
#define GUI_BOT_TITLES 1107
#define GUI_BOT_TITLEL2 1108
#define GUI_BOT_LOG 1109
#define GUI_BOT_TITLEL3 1110
#define GUI_BOT_TITLEL4 1111
#define GUI_BOT_TITLEL5 1112
#define GUI_BOT_TITLEL6 1113
#define GUI_BOT_COUNTERS 1114
#define GUI_BOT_UPDATEVARS 1115
#define BTN_ALLOW_LRUD 1117 #define BTN_ALLOW_LRUD 1117
#define BTN_PRESET_SET1 1119 #define BTN_PRESET_SET1 1119
#define BTN_PRESET_SET2 1120 #define BTN_PRESET_SET2 1120
@ -464,35 +356,7 @@
#define IDC_BUTTON8 1146 #define IDC_BUTTON8 1146
#define IDC_EDIT1 1147 #define IDC_EDIT1 1147
#define IDC_BUTTON9 1148 #define IDC_BUTTON9 1148
#define BOT_TF_COMMENT 1148
#define IDC_LIST2 1149 #define IDC_LIST2 1149
#define BOT_TF_A_1 1149
#define BOT_TF_B_1 1150
#define BOT_TF_SELECT_1 1152
#define BOT_TF_START_1 1153
#define BOT_TF_UP_1 1154
#define BOT_TF_DOWN_1 1156
#define BOT_TF_LEFT_1 1157
#define BOT_TF_RIGHT_1 1158
#define BOT_TF_A_2 1160
#define BOT_TF_B_2 1161
#define BOT_TF_SELECT_2 1162
#define BOT_TF_START_2 1163
#define BOT_TF_UP_2 1164
#define BOT_TF_DOWN_2 1165
#define BOT_TF_LEFT_2 1166
#define BOT_TF_RIGHT_2 1167
#define BOT_TF_SCORE1_DESC 1169
#define BOT_BUTTON_UPDATE 1171
#define BOT_BUTTON_RUN 1172
#define BOT_BUTTON_TEST 1173
#define BOT_TF_ROM 1174
#define GUI_BOT_VARS 1175
#define BOT_TF_SCORE1_VALUE 1176
#define BOT_TF_SCORE2_DESC 1181
#define BOT_TF_SCORE2_VALUE 1182
#define BOT_TF_SCORE3_DESC 1183
#define BOT_TF_SCORE3_VALUE 1184
#define MENU_NETWORK 40040 #define MENU_NETWORK 40040
#define MENU_PALETTE 40041 #define MENU_PALETTE 40041
#define MENU_SOUND 40042 #define MENU_SOUND 40042
@ -641,22 +505,11 @@
#define ID_FILE_CLOSECTRL40216 40216 #define ID_FILE_CLOSECTRL40216 40216
#define ID_MEMWVIEW_FILE_CLOSE 40217 #define ID_MEMWVIEW_FILE_CLOSE 40217
#define ID_FILE_CLOSE40218 40218 #define ID_FILE_CLOSE40218 40218
#define ID_TOOLS_NEWBASICBOT 40219
#define MENU_BASIC_BOT2 40220 #define MENU_BASIC_BOT2 40220
#define ID_FILE_CLEAR 40221
#define ID_FILE_LOAD 40222
#define ID_FILE_SAVE40223 40223
#define ID_MODE_SIMPLE 40224
#define ID_MODE_ADVANCED 40225
#define ID_PLAYBEST 40226
#define ID_RESET 40227
#define BOT_MENU_CLOSE 40228
#define ID_FILE_RUNLUASCRIPT 40229 #define ID_FILE_RUNLUASCRIPT 40229
#define ID_FILE_STOPLUASCRIPT 40230 #define ID_FILE_STOPLUASCRIPT 40230
#define MW_ValueLabel2 65423 #define MW_ValueLabel2 65423
#define MW_ValueLabel1 65426 #define MW_ValueLabel1 65426
#define GUI_BOT_DEBUG 65436
#define GUI_BOT_ERROR 65438
// Next default values for new objects // Next default values for new objects
// //

View File

@ -41,8 +41,6 @@
#include "memview.h" #include "memview.h"
#include "tracer.h" #include "tracer.h"
#include "cdlogger.h" #include "cdlogger.h"
#include "basicbot.h"
#include "basicbot2.h" // qfox: new bot
#include "throttle.h" #include "throttle.h"
#include "monitor.h" #include "monitor.h"
#include "tasedit.h" #include "tasedit.h"
@ -93,7 +91,6 @@ const unsigned int MAX_NUMBER_OF_RECENT_FILES = sizeof(recent_files)/sizeof(*rec
// Exported variables // Exported variables
HWND pwindow; HWND pwindow;
int EnableBackgroundInput = 0; int EnableBackgroundInput = 0;
int EnableExternalInput = 0;
int ismaximized = 0; int ismaximized = 0;
//Menu handle of the main menu. //Menu handle of the main menu.
@ -312,7 +309,6 @@ void UpdateCheckedMenuItems()
CheckMenuItem(fceumenu, MENU_BACKGROUND_INPUT, EnableBackgroundInput ? MF_CHECKED : MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_BACKGROUND_INPUT, EnableBackgroundInput ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(fceumenu, MENU_ENABLE_AUTOSAVE, EnableAutosave ? MF_CHECKED : MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_ENABLE_AUTOSAVE, EnableAutosave ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(fceumenu, MENU_EXTERNAL_INPUT, EnableExternalInput ? MF_CHECKED : MF_UNCHECKED);
int AutoFirePatternIDs[] = { int AutoFirePatternIDs[] = {
MENU_AUTOFIRE_PATTERN_1, MENU_AUTOFIRE_PATTERN_1,
@ -923,21 +919,6 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
DoTasEdit(); DoTasEdit();
break; break;
case MENU_EXTERNAL_INPUT:
// qfox: TODO: this should be looked into. treat true external input as special versus the bot input
// right now it is compatible with the old mode, but pressing this menuoption will turn off
// the new bot if on...
FCEU_SetBotMode(
(
(1^(FCEU_BotMode() == BOTMODE_OFF?0:1))==1?
BOTMODE_OLDBOT:
BOTMODE_OFF
)
);
EnableExternalInput = EnableExternalInput?0:1;
UpdateCheckedMenuItems(); break;
break;
case MENU_HIDE_MENU: case MENU_HIDE_MENU:
// Hide menu menu was selected // Hide menu menu was selected
ToggleHideMenu(); ToggleHideMenu();
@ -1019,14 +1000,6 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
ConfigCheats(hWnd); ConfigCheats(hWnd);
break; break;
case MENU_BASIC_BOT:
CreateBasicBot();
break;
case MENU_BASIC_BOT2:
BotCreateBasicBot();
break;
case MENU_DIRECTORIES: case MENU_DIRECTORIES:
// Directories menu was selected // Directories menu was selected
ConfigDirectories(); ConfigDirectories();

View File

@ -543,7 +543,7 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
if(EmulationPaused&2) if(EmulationPaused&2)
EmulationPaused &= ~1; // clear paused flag temporarily (frame advance) EmulationPaused &= ~1; // clear paused flag temporarily (frame advance)
else if((EmulationPaused&1) || FCEU_BotMode() != BOTMODE_OFF) else if((EmulationPaused&1))
{ {
memcpy(XBuf, XBackBuf, 256*256); memcpy(XBuf, XBackBuf, 256*256);
FCEU_PutImage(); FCEU_PutImage();
@ -554,11 +554,8 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
return; return;
} }
if(FCEU_BotMode() == BOTMODE_OFF)
{
AutoFire(); AutoFire();
UpdateAutosave(); UpdateAutosave();
}
FCEU_LuaFrameBoundary(); FCEU_LuaFrameBoundary();
FCEU_UpdateInput(); FCEU_UpdateInput();

View File

@ -40,9 +40,6 @@ extern uint8 MMC5HackSPMode;
extern uint8 MMC5HackSPScroll; extern uint8 MMC5HackSPScroll;
extern uint8 MMC5HackSPPage; extern uint8 MMC5HackSPPage;
#ifdef _USE_SHARED_MEMORY_
extern uint32 *BotInput;
#endif
extern uint8 *RAM; //shared memory modifications extern uint8 *RAM; //shared memory modifications
extern uint8 *GameMemBlock; //shared memory modifications extern uint8 *GameMemBlock; //shared memory modifications

View File

@ -40,10 +40,6 @@
#ifdef WIN32 #ifdef WIN32
#include "drivers/win/main.h" #include "drivers/win/main.h"
// qfox: For UpdateExternalButton(), called when the
// botmode state changes, to update a label in gui.
#include "drivers/win/basicbot.h"
#include "drivers/win/basicbot2.h" // qfox: new bot
#include "drivers/win/memwatch.h" #include "drivers/win/memwatch.h"
#include "drivers/win/cheat.h" #include "drivers/win/cheat.h"
#include "drivers/win/debugger.h" #include "drivers/win/debugger.h"
@ -85,8 +81,6 @@ static uint8 joy_readbit[2];
uint8 joy[4]={0,0,0,0}; //HACK - should be static but movie needs it uint8 joy[4]={0,0,0,0}; //HACK - should be static but movie needs it
static uint8 LastStrobe; static uint8 LastStrobe;
BOTMODES BotMode = BOTMODE_OFF;
#ifdef _USE_SHARED_MEMORY_ #ifdef _USE_SHARED_MEMORY_
static uint32 BotPointer = 0; //mbg merge 7/18/06 changed to uint32 static uint32 BotPointer = 0; //mbg merge 7/18/06 changed to uint32
#endif #endif
@ -268,20 +262,6 @@ static void StrobeGP(int w)
static INPUTC GPC={ReadGP,0,StrobeGP,UpdateGP,0,0,LogGP,LoadGP}; static INPUTC GPC={ReadGP,0,StrobeGP,UpdateGP,0,0,LogGP,LoadGP};
static INPUTC GPCVS={ReadGPVS,0,StrobeGP,UpdateGP,0,0,LogGP,LoadGP}; static INPUTC GPCVS={ReadGPVS,0,StrobeGP,UpdateGP,0,0,LogGP,LoadGP};
BOTMODES FCEU_BotMode()
{
return BotMode;
}
void FCEU_SetBotMode(BOTMODES x)
{
BotMode = x;
#ifdef WIN32
// qfox: update gui in basicbot
UpdateExternalButton();
#endif // WIN32
}
void FCEU_DrawInput(uint8 *buf) void FCEU_DrawInput(uint8 *buf)
{ {
for(int pad=0;pad<2;pad++) for(int pad=0;pad<2;pad++)
@ -290,50 +270,11 @@ void FCEU_DrawInput(uint8 *buf)
portFC.driver->Draw(buf,portFC.attrib); portFC.driver->Draw(buf,portFC.attrib);
} }
void FCEU_UpdateBot()
{
#ifdef _USE_SHARED_MEMORY_
//This is the external input (aka bot) code
if(BotMode == BOTMODE_OFF)
return;
if(BotInput[0])
{
BotPointer++;
switch(BotInput[BotPointer] >> 16)
{
case 0:
joy[0] = BotInput[BotPointer] & 255;
joy[1] = BotInput[BotPointer] >> 8;
joy[2] = joy[3] = 0;
FCEUI_FrameAdvance();
break;
case 1:
FCEUI_LoadState(BOT_STATEFILE);
break;
default:
break;
}
//Bot input ends; let the world know we're done
if(BotPointer >= BotInput[0] || BotPointer >= BOT_MAXFRAMES-1)
{
BotInput[0] = 0;
BotPointer = 0;
}
}
else
{
BotPointer = 0;
joy[0] = joy[1] = joy[2] = joy[3] = 0;
}
#endif //_USE_SHARED_MEMORY_
}
void FCEU_UpdateInput(void) void FCEU_UpdateInput(void)
{ {
//tell all drivers to poll input and set up their logical states //tell all drivers to poll input and set up their logical states
if(!FCEUMOV_Mode(MOVIEMODE_PLAY) && BotMode == BOTMODE_OFF) if(!FCEUMOV_Mode(MOVIEMODE_PLAY))
{ {
for(int port=0;port<2;port++) for(int port=0;port<2;port++)
joyports[port].driver->Update(port,joyports[port].ptr,joyports[port].attrib); joyports[port].driver->Update(port,joyports[port].ptr,joyports[port].attrib);

View File

@ -89,13 +89,6 @@ extern struct FCPORT
} portFC; } portFC;
enum BOTMODES {
BOTMODE_OFF = 0,
BOTMODE_OLDBOT = 1,
BOTMODE_NEWBOT = 2
};
BOTMODES FCEU_BotMode(void);
void FCEU_SetBotMode(BOTMODES x);
void FCEU_DrawInput(uint8 *buf); void FCEU_DrawInput(uint8 *buf);
void FCEU_UpdateInput(void); void FCEU_UpdateInput(void);
void InitializeInput(void); void InitializeInput(void);

View File

@ -533,7 +533,7 @@ bool FCEUSS_Load(char *fname)
//If in bot mode, don't do a backup when loading. //If in bot mode, don't do a backup when loading.
//Otherwise you eat at the hard disk, since so many //Otherwise you eat at the hard disk, since so many
//states are being loaded. //states are being loaded.
if(FCEUSS_LoadFP(st,FCEU_BotMode() != BOTMODE_OFF?SSLOADPARAM_NOBACKUP:SSLOADPARAM_BACKUP)) if(FCEUSS_LoadFP(st,SSLOADPARAM_BACKUP))
{ {
if(fname) if(fname)
{ {

View File

@ -747,40 +747,6 @@
RelativePath="..\src\drivers\win\aviout.cpp" RelativePath="..\src\drivers\win\aviout.cpp"
> >
</File> </File>
<File
RelativePath="..\src\drivers\win\basicbot.cpp"
>
</File>
<File
RelativePath="..\src\drivers\win\basicbot.h"
>
</File>
<File
RelativePath="..\src\drivers\win\basicbot2.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\$(InputName)1.obj"
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\$(InputName)1.obj"
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\drivers\win\basicbot2.h"
>
</File>
<File <File
RelativePath="..\src\drivers\win\cdlogger.cpp" RelativePath="..\src\drivers\win\cdlogger.cpp"
> >
@ -2460,7 +2426,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="copy /y ..\src\auxlib.lua &quot;$(OutDir)&quot;" CommandLine="copy /y ..\src\auxlib.lua &quot;$(OutDir)&quot;&#x0D;&#x0A;"
Outputs="$(OutDir)\auxlib.lua" Outputs="$(OutDir)\auxlib.lua"
/> />
</FileConfiguration> </FileConfiguration>
@ -2469,7 +2435,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="copy /y ..\src\auxlib.lua &quot;$(OutDir)&quot;" CommandLine="copy /y ..\src\auxlib.lua &quot;$(OutDir)&quot;&#x0D;&#x0A;"
Outputs="$(OutDir)\auxlib.lua" Outputs="$(OutDir)\auxlib.lua"
/> />
</FileConfiguration> </FileConfiguration>