diff --git a/AUTHORS b/AUTHORS
index 90bb4cf4..6af9b9fd 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,28 +1,68 @@
-A list of people who have contributed code to FCE Ultra, or have had their code placed in
-FCE Ultra by others.
-Please note that the "Contributions" field may not be all inclusive;
-the coder may have done more than what is listed.
+A list of people who have contributed code to FCE Ultra, or have had their code
+placed in FCE Ultra by others.
-Name/Alias Contributions Contact Information
-------------------------------------------------------------------------------
-Aaron Oneal Many changes to compile http://www.morphgear.com
- with MSVC and first frame
- skipping code.
+-----------------------------------------
+<2.0 - These authors contributed exclusively to pre-2.0 versions,
+ but much of their code remains in 2.0 builds
-Lukas Sabota build system punkrockguy318 at comcast.net
+BERO - bero at geocities.co.jp
+Base FCE code.
-BERO Base FCE code. bero at geocities.co.jp
+Xodnizel
+Most of the base FCE Ultra code
-CaH4e3 Some mapper code. CaH4e3 at mail dot ru
+Aaron Oneal - http://www.morphgear.com
+Many changes to compile with MSVC and first frame skipping code
-Joe Nahmias man pages.
+Joe Nahmias
+Man pages
-Mitsutaka YM2413 emulator.
- Okazaki
+Paul Kuliniewicz - kuliniew at purdue.edu
+Various code for the official SDL port.
-Paul Various code for the official kuliniew at purdue.edu
- Kuliniewicz SDL port.
+Quietust - quietust at ircN dot org
+VRC7 "translation" code.
-Quietust VRC7 "translation" code. quietust at ircN dot org
+Ben Parnell
+Windows debugging tools
-Xodnizel Most of the FCE Ultra code. http://xodnizel.net/
+Parasyte & bbitmaster
+Enhanced Windows debugging tools
+
+blip & nitsuja
+Rerecording support
+
+-----------------------------------------
+>= 2.0 - Incorporates new contributions from:
+
+CaH4e3 - CaH4e3 at mail dot ru
+Mappers
+
+Luke Gustafson - document thyself
+Windows TAS and movie recording enhancements
+
+SP - document thyself
+Enhanced Windows debugging tools
+
+zeromus - mgambrell at gmail dot com
+Core architecture refactoring
+Windows driver maintenance
+
+Lukas Sabota - punkrockguy318 at comcast.net
+Build system
+
+Soules - document thyself
+
+Radsaq - document thyself
+
+-----------------------------------------
+Included components:
+
+Mitsutaka Okazaki
+YM2413 emulator.
+
+Andrea Mazzoleni
+Scale2x/Scale3x scalers
+
+Gilles Vollant
+unzip.c PKZIP fileio
\ No newline at end of file
diff --git a/INSTALL b/INSTALL
index ddae4779..7502b9c2 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,3 +1,3 @@
To compile and install FCE Ultra, follow these steps:
- 1. Ensure that SCons is installed on your system.
+ 1. Ensure that SCons and SDL are installed on your system.
2. Run "scons"
diff --git a/TODO-PROJECT b/TODO-PROJECT
index 55a0f422..660fdc5c 100644
--- a/TODO-PROJECT
+++ b/TODO-PROJECT
@@ -26,10 +26,10 @@ Configfile parsing - lukas
* verify in windows - zeromus
Do we really need vc7 project? Cah4e3? - zeromus
-
Source code docs cleaning - zeromus
Homepage docs - zeromus
-Move to sourceforge SVN = zeromus
+
+What is the proper gnu way to do CREDITS from the homepage? e.g. Marat Fayzullin - General NES information
Freenode registration - lukas
* homepage update
@@ -39,11 +39,15 @@ Default hotkey philosophy (there are different philosophies from XD and TAS) - A
Netplay - FUTURE STUFF
Move server code into tree - DONE
Ensure netplay compiles
+ verify netplay
+
+----done-----
Move to scons - DONE
Merge garnet and sf repos - DONE
* Ensure gnome frontend is in repo - DONE
+ * Move to sourceforge SVN - DONE
--strategic--
diff --git a/src/driver.h b/src/driver.h
index b8d14efa..a6222d0f 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -272,9 +272,13 @@ void FCEUI_FDSSelect(void);
int FCEUI_DatachSet(const uint8 *rcode);
+///returns flags indicating whether emulation is paused (bit0) and whether it is single-stepping (bit1)
int FCEUI_EmulationPaused(void);
-void FCEUI_SetEmulationPaused(int val); //mbg merge 7/18/06 added
+///sets the EmulationPaused flags
+void FCEUI_SetEmulationPaused(int val);
+///toggles the paused bit (bit0) for EmulationPaused. caused FCEUD_DebugUpdate() to fire if the emulation pauses
void FCEUI_ToggleEmulationPause(void);
+
void FCEUI_FrameAdvance(void);
/* AVI Output */
diff --git a/src/drivers/win/debugger.cpp b/src/drivers/win/debugger.cpp
index 59bbaa1a..edc5fc70 100644
--- a/src/drivers/win/debugger.cpp
+++ b/src/drivers/win/debugger.cpp
@@ -485,8 +485,12 @@ void UpdateRegs(HWND hwndDlg) {
X.PC = GetEditHex(hwndDlg,307);
}
+///indicates whether we're under the control of the debugger
+bool inDebugger = false;
+
void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count); //HACK
void FCEUD_DebugBreakpoint() {
+ inDebugger = true;
DoDebug(1);
UpdateLogWindow();
if(hMemView)UpdateMemoryView(0);
@@ -494,6 +498,7 @@ void FCEUD_DebugBreakpoint() {
FCEUD_Update(0,0,0);
//FCEUD_BlitScreen(XBuf+8); //this looks odd, I know. but the pause routine is in here!!
//if(logging)LogInstruction(); //logging might have been started while we were paused
+ inDebugger = false;
}
void UpdateDebugger() {
@@ -1128,7 +1133,6 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
if (FCEUI_EmulationPaused()) {
UpdateRegs(hwndDlg);
FCEUI_ToggleEmulationPause();
- UpdateDebugger();
}
break;
case 105: //Step Into
@@ -1151,7 +1155,7 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
else dbgstate.jsrcount = 0;
dbgstate.stepout = 1;
FCEUI_SetEmulationPaused(0);
- UpdateDebugger();
+ //UpdateDebugger();
}
break;
case 107: //Step Over
diff --git a/src/drivers/win/debugger.h b/src/drivers/win/debugger.h
index 386930f1..08086945 100644
--- a/src/drivers/win/debugger.h
+++ b/src/drivers/win/debugger.h
@@ -21,6 +21,8 @@ extern void AddBreakList();
void UpdateDebugger();
void DoDebug(uint8 halt);
+extern bool inDebugger;
+
#endif
diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp
index d4287775..779e7bc8 100644
--- a/src/drivers/win/main.cpp
+++ b/src/drivers/win/main.cpp
@@ -36,6 +36,7 @@
#include "../../types.h"
#include "../../fceu.h"
#include "../../state.h"
+#include "../../debug.h"
#include "ppuview.h"
#include "debugger.h"
#include "input.h"
@@ -67,7 +68,6 @@ int SetMainWindowStuff(void);
int GetClientAbsRect(LPRECT lpRect);
void UpdateFCEUWindow(void);
-
HWND hAppWnd=0;
HINSTANCE fceu_hInstance;
@@ -817,12 +817,21 @@ void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count)
FCEUD_BlitScreen(XBuf);
_updateWindow();
- //delay until we unpause
- while(FCEUI_EmulationPaused())
+ //delay until we unpause. we will only stick here if we're paused by a breakpoint or debug command
+ while(FCEUI_EmulationPaused() && inDebugger)
{
Sleep(50);
BlockingCheck();
}
+
+ //something of a hack, but straightforward:
+ //if we were paused, but not in the debugger, then unpause ourselves and step.
+ //this is so that the cpu won't cut off execution due to being paused, but the debugger _will_
+ //cut off execution as soon as it makes it into the main cpu cycle loop
+ if(FCEUI_EmulationPaused() && !inDebugger) {
+ FCEUI_ToggleEmulationPause();
+ FCEUI_Debugger().step = 1;
+ }
// if(soundo) //&& temp_fps_scale >= 64
diff --git a/vc8/fceux.vcproj b/vc8/fceux.vcproj
index fefbd664..9f7e9525 100644
--- a/vc8/fceux.vcproj
+++ b/vc8/fceux.vcproj
@@ -1783,10 +1783,6 @@
RelativePath="..\src\conddebug.h"
>
-
-
@@ -1799,10 +1795,6 @@
RelativePath="..\src\driver.h"
>
-
-
@@ -1823,10 +1815,6 @@
RelativePath="..\src\filter.h"
>
-
-
@@ -1847,10 +1835,6 @@
RelativePath="..\src\input.h"
>
-
-