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" > - -