wifi: fix bugs in winpcap init; gdb: don't emulate hardware while stalled
This commit is contained in:
parent
0d47349db8
commit
823030cbaf
|
@ -1807,6 +1807,16 @@ void NDS_exec(s32 nb)
|
||||||
{
|
{
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#ifdef GDB_STUB
|
||||||
|
//at worst, this will happen once per scanline.
|
||||||
|
//does it need to be more accurate than that? we think now
|
||||||
|
while((NDS_ARM9.stalled || NDS_ARM7.stalled) && execute)
|
||||||
|
{
|
||||||
|
driver->EMU_DebugIdleUpdate();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
nds.cpuloopIterationCount++;
|
nds.cpuloopIterationCount++;
|
||||||
sequencer.execHardware();
|
sequencer.execHardware();
|
||||||
|
|
||||||
|
|
|
@ -111,14 +111,14 @@ armcpu_t NDS_ARM9;
|
||||||
static void
|
static void
|
||||||
stall_cpu( void *instance) {
|
stall_cpu( void *instance) {
|
||||||
armcpu_t *armcpu = (armcpu_t *)instance;
|
armcpu_t *armcpu = (armcpu_t *)instance;
|
||||||
|
printf("UNSTALL\n");
|
||||||
armcpu->stalled = 1;
|
armcpu->stalled = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
unstall_cpu( void *instance) {
|
unstall_cpu( void *instance) {
|
||||||
armcpu_t *armcpu = (armcpu_t *)instance;
|
armcpu_t *armcpu = (armcpu_t *)instance;
|
||||||
|
printf("UNSTALL\n");
|
||||||
armcpu->stalled = 0;
|
armcpu->stalled = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@ public:
|
||||||
virtual bool EMU_IsFastForwarding() { return false; }
|
virtual bool EMU_IsFastForwarding() { return false; }
|
||||||
virtual bool EMU_HasEmulationStarted() { return true; }
|
virtual bool EMU_HasEmulationStarted() { return true; }
|
||||||
virtual bool EMU_IsAtFrameBoundary() { return true; }
|
virtual bool EMU_IsAtFrameBoundary() { return true; }
|
||||||
|
virtual void EMU_DebugIdleUpdate() {}
|
||||||
|
|
||||||
enum eDebug_IOReg
|
enum eDebug_IOReg
|
||||||
{
|
{
|
||||||
|
|
|
@ -119,6 +119,7 @@ enum {
|
||||||
|
|
||||||
gboolean EmuLoop(gpointer data);
|
gboolean EmuLoop(gpointer data);
|
||||||
|
|
||||||
|
static void DoQuit();
|
||||||
static void RecordMovieDialog();
|
static void RecordMovieDialog();
|
||||||
static void PlayMovieDialog();
|
static void PlayMovieDialog();
|
||||||
static void StopMovie();
|
static void StopMovie();
|
||||||
|
@ -288,7 +289,7 @@ static const GtkActionEntry action_entries[] = {
|
||||||
{ "loadfirmware","gtk-open", "Load Firm_ware file", "<Ctrl>l", NULL, SelectFirmwareFile },
|
{ "loadfirmware","gtk-open", "Load Firm_ware file", "<Ctrl>l", NULL, SelectFirmwareFile },
|
||||||
#endif
|
#endif
|
||||||
{ "printscreen","gtk-media-record", "Take a _screenshot", "<Ctrl>s", NULL, Printscreen },
|
{ "printscreen","gtk-media-record", "Take a _screenshot", "<Ctrl>s", NULL, Printscreen },
|
||||||
{ "quit", "gtk-quit", "_Quit", "<Ctrl>q", NULL, gtk_main_quit },
|
{ "quit", "gtk-quit", "_Quit", "<Ctrl>q", NULL, DoQuit },
|
||||||
|
|
||||||
{ "EmulationMenu", NULL, "_Emulation" },
|
{ "EmulationMenu", NULL, "_Emulation" },
|
||||||
{ "run", "gtk-media-play", "_Run", "<Ctrl>r", NULL, Launch },
|
{ "run", "gtk-media-play", "_Run", "<Ctrl>r", NULL, Launch },
|
||||||
|
@ -397,9 +398,6 @@ public:
|
||||||
int disable_limiter;
|
int disable_limiter;
|
||||||
int savetype;
|
int savetype;
|
||||||
|
|
||||||
int arm9_gdb_port;
|
|
||||||
int arm7_gdb_port;
|
|
||||||
|
|
||||||
int firmware_language;
|
int firmware_language;
|
||||||
|
|
||||||
const char *cflash_disk_image_file;
|
const char *cflash_disk_image_file;
|
||||||
|
@ -411,9 +409,6 @@ public:
|
||||||
static void
|
static void
|
||||||
init_configured_features( struct configured_features *config)
|
init_configured_features( struct configured_features *config)
|
||||||
{
|
{
|
||||||
config->arm9_gdb_port = 0;
|
|
||||||
config->arm7_gdb_port = 0;
|
|
||||||
|
|
||||||
config->disable_sound = 0;
|
config->disable_sound = 0;
|
||||||
|
|
||||||
config->engine_3d = 1;
|
config->engine_3d = 1;
|
||||||
|
@ -1608,6 +1603,25 @@ static inline void _updateDTools()
|
||||||
|
|
||||||
/////////////////////////////// MAIN EMULATOR LOOP ///////////////////////////////
|
/////////////////////////////// MAIN EMULATOR LOOP ///////////////////////////////
|
||||||
|
|
||||||
|
class GtkDriver : public BaseDriver
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void EMU_DebugIdleUpdate()
|
||||||
|
{
|
||||||
|
usleep(1000);
|
||||||
|
_updateDTools();
|
||||||
|
while (gtk_events_pending())
|
||||||
|
gtk_main_iteration();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static void DoQuit()
|
||||||
|
{
|
||||||
|
emu_halt();
|
||||||
|
gtk_main_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
gboolean EmuLoop(gpointer data)
|
gboolean EmuLoop(gpointer data)
|
||||||
{
|
{
|
||||||
static Uint32 fps_SecStart, next_fps_SecStart, fps_FrameCount, skipped_frames;
|
static Uint32 fps_SecStart, next_fps_SecStart, fps_FrameCount, skipped_frames;
|
||||||
|
@ -1811,6 +1825,8 @@ static gboolean timeout_exit_cb(gpointer data)
|
||||||
static int
|
static int
|
||||||
common_gtk_main( struct configured_features *my_config)
|
common_gtk_main( struct configured_features *my_config)
|
||||||
{
|
{
|
||||||
|
driver = new GtkDriver();
|
||||||
|
|
||||||
SDL_TimerID limiter_timer = NULL;
|
SDL_TimerID limiter_timer = NULL;
|
||||||
|
|
||||||
GtkAccelGroup * accel_group;
|
GtkAccelGroup * accel_group;
|
||||||
|
|
|
@ -62,6 +62,11 @@ const u8 BroadcastMAC[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||||
pcap_t *wifi_bridge = NULL;
|
pcap_t *wifi_bridge = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//sometimes this isnt defined
|
||||||
|
#ifndef PCAP_OPENFLAG_PROMISCUOUS
|
||||||
|
#define PCAP_OPENFLAG_PROMISCUOUS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
wifimac_t wifiMac;
|
wifimac_t wifiMac;
|
||||||
Adhoc_t Adhoc;
|
Adhoc_t Adhoc;
|
||||||
SoftAP_t SoftAP;
|
SoftAP_t SoftAP;
|
||||||
|
|
|
@ -2228,6 +2228,12 @@ class WinDriver : public BaseDriver
|
||||||
if(anyLiveIORegViews)
|
if(anyLiveIORegViews)
|
||||||
RefreshAllIORegViews();
|
RefreshAllIORegViews();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void EMU_DebugIdleUpdate()
|
||||||
|
{
|
||||||
|
CheckMessages();
|
||||||
|
Sleep(1);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
@ -65,7 +65,6 @@ static void LoadWinPCap()
|
||||||
LOADSYMBOL(pcap_sendpacket);
|
LOADSYMBOL(pcap_sendpacket);
|
||||||
LOADSYMBOL(pcap_dispatch);
|
LOADSYMBOL(pcap_dispatch);
|
||||||
|
|
||||||
CloseHandle(wpcap);
|
|
||||||
bWinPCapAvailable = true;
|
bWinPCapAvailable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue