bugfix to windows debugger and mainloop, enhanced docs

This commit is contained in:
zeromus 2006-08-01 07:40:00 +00:00
parent 4025828176
commit e20b6b82d9
8 changed files with 91 additions and 44 deletions

78
AUTHORS
View File

@ -1,28 +1,68 @@
A list of people who have contributed code to FCE Ultra, or have had their code placed in A list of people who have contributed code to FCE Ultra, or have had their code
FCE Ultra by others. 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.
Name/Alias Contributions Contact Information -----------------------------------------
------------------------------------------------------------------------------ <2.0 - These authors contributed exclusively to pre-2.0 versions,
Aaron Oneal Many changes to compile http://www.morphgear.com but much of their code remains in 2.0 builds
with MSVC and first frame
skipping code.
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. Paul Kuliniewicz - kuliniew at purdue.edu
Okazaki Various code for the official SDL port.
Paul Various code for the official kuliniew at purdue.edu Quietust - quietust at ircN dot org
Kuliniewicz SDL port. 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

View File

@ -1,3 +1,3 @@
To compile and install FCE Ultra, follow these steps: 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" 2. Run "scons"

View File

@ -26,10 +26,10 @@ Configfile parsing - lukas
* verify in windows - zeromus * verify in windows - zeromus
Do we really need vc7 project? Cah4e3? - zeromus Do we really need vc7 project? Cah4e3? - zeromus
Source code docs cleaning - zeromus Source code docs cleaning - zeromus
Homepage docs - 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 Freenode registration - lukas
* homepage update * homepage update
@ -39,11 +39,15 @@ Default hotkey philosophy (there are different philosophies from XD and TAS) - A
Netplay - FUTURE STUFF Netplay - FUTURE STUFF
Move server code into tree - DONE Move server code into tree - DONE
Ensure netplay compiles Ensure netplay compiles
verify netplay
----done-----
Move to scons - DONE Move to scons - DONE
Merge garnet and sf repos - DONE Merge garnet and sf repos - DONE
* Ensure gnome frontend is in repo - DONE * Ensure gnome frontend is in repo - DONE
* Move to sourceforge SVN - DONE
--strategic-- --strategic--

View File

@ -272,9 +272,13 @@ void FCEUI_FDSSelect(void);
int FCEUI_DatachSet(const uint8 *rcode); 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); 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_ToggleEmulationPause(void);
void FCEUI_FrameAdvance(void); void FCEUI_FrameAdvance(void);
/* AVI Output */ /* AVI Output */

View File

@ -485,8 +485,12 @@ void UpdateRegs(HWND hwndDlg) {
X.PC = GetEditHex(hwndDlg,307); 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_Update(uint8 *XBuf, int32 *Buffer, int Count); //HACK
void FCEUD_DebugBreakpoint() { void FCEUD_DebugBreakpoint() {
inDebugger = true;
DoDebug(1); DoDebug(1);
UpdateLogWindow(); UpdateLogWindow();
if(hMemView)UpdateMemoryView(0); if(hMemView)UpdateMemoryView(0);
@ -494,6 +498,7 @@ void FCEUD_DebugBreakpoint() {
FCEUD_Update(0,0,0); FCEUD_Update(0,0,0);
//FCEUD_BlitScreen(XBuf+8); //this looks odd, I know. but the pause routine is in here!! //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 //if(logging)LogInstruction(); //logging might have been started while we were paused
inDebugger = false;
} }
void UpdateDebugger() { void UpdateDebugger() {
@ -1128,7 +1133,6 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
if (FCEUI_EmulationPaused()) { if (FCEUI_EmulationPaused()) {
UpdateRegs(hwndDlg); UpdateRegs(hwndDlg);
FCEUI_ToggleEmulationPause(); FCEUI_ToggleEmulationPause();
UpdateDebugger();
} }
break; break;
case 105: //Step Into case 105: //Step Into
@ -1151,7 +1155,7 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
else dbgstate.jsrcount = 0; else dbgstate.jsrcount = 0;
dbgstate.stepout = 1; dbgstate.stepout = 1;
FCEUI_SetEmulationPaused(0); FCEUI_SetEmulationPaused(0);
UpdateDebugger(); //UpdateDebugger();
} }
break; break;
case 107: //Step Over case 107: //Step Over

View File

@ -21,6 +21,8 @@ extern void AddBreakList();
void UpdateDebugger(); void UpdateDebugger();
void DoDebug(uint8 halt); void DoDebug(uint8 halt);
extern bool inDebugger;
#endif #endif

View File

@ -36,6 +36,7 @@
#include "../../types.h" #include "../../types.h"
#include "../../fceu.h" #include "../../fceu.h"
#include "../../state.h" #include "../../state.h"
#include "../../debug.h"
#include "ppuview.h" #include "ppuview.h"
#include "debugger.h" #include "debugger.h"
#include "input.h" #include "input.h"
@ -67,7 +68,6 @@ int SetMainWindowStuff(void);
int GetClientAbsRect(LPRECT lpRect); int GetClientAbsRect(LPRECT lpRect);
void UpdateFCEUWindow(void); void UpdateFCEUWindow(void);
HWND hAppWnd=0; HWND hAppWnd=0;
HINSTANCE fceu_hInstance; HINSTANCE fceu_hInstance;
@ -817,12 +817,21 @@ void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count)
FCEUD_BlitScreen(XBuf); FCEUD_BlitScreen(XBuf);
_updateWindow(); _updateWindow();
//delay until we unpause //delay until we unpause. we will only stick here if we're paused by a breakpoint or debug command
while(FCEUI_EmulationPaused()) while(FCEUI_EmulationPaused() && inDebugger)
{ {
Sleep(50); Sleep(50);
BlockingCheck(); 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 // if(soundo) //&& temp_fps_scale >= 64

View File

@ -1783,10 +1783,6 @@
RelativePath="..\src\conddebug.h" RelativePath="..\src\conddebug.h"
> >
</File> </File>
<File
RelativePath="..\src\crc32.h"
>
</File>
<File <File
RelativePath="..\src\debug.h" RelativePath="..\src\debug.h"
> >
@ -1799,10 +1795,6 @@
RelativePath="..\src\driver.h" RelativePath="..\src\driver.h"
> >
</File> </File>
<File
RelativePath="..\src\endian.h"
>
</File>
<File <File
RelativePath="..\src\fceu.h" RelativePath="..\src\fceu.h"
> >
@ -1823,10 +1815,6 @@
RelativePath="..\src\filter.h" RelativePath="..\src\filter.h"
> >
</File> </File>
<File
RelativePath="..\src\general.h"
>
</File>
<File <File
RelativePath="..\src\git.h" RelativePath="..\src\git.h"
> >
@ -1847,10 +1835,6 @@
RelativePath="..\src\input.h" RelativePath="..\src\input.h"
> >
</File> </File>
<File
RelativePath="..\src\md5.h"
>
</File>
<File <File
RelativePath="..\src\memory.h" RelativePath="..\src\memory.h"
> >