Commit Graph

868 Commits

Author SHA1 Message Date
tomcw
1f892a27d4 Simplified main-loop a bit more, and removed more globals from AppleWin.cpp 2014-09-14 16:12:55 +01:00
tomcw
bc45812f4e Simplified and moved main-loop video update logic into Video.cpp.
Removed complex case below for:
. VideoHasRefreshed(), 'anyupdates'
. VideoCheckPage()

Detailed notes below.

---

Video updates in ContinueExecution() loop:

'anyupdates' gets set if there were any page-flip(s) in last ~17030 cycles:
	anyupdates |= VideoHasRefreshed();
ie. VideoRefreshScreen() was called outside of this loop.

If there's been a call to VideoRefreshScreen() outside of this loop,
  and then the video framebuffer gets written to, ie. VideoApparentlyDirty() returns TRUE,
then don't call VideoRefreshScreen() from this loop for 3 frames.
(If a VideoRefreshScreen() is called outside of this loop then restart the 3 frame count.)

So..
 if the game is flipping, the VideoApparentlyDirty() will return FALSE (since game writes to other framebuffer).
 if the game is not flipping, then VideoHasRefreshed() will return FALSE (since no flips occur).

Therefore this complex case above probably only arises at a boundary eg. when the game is transitioning between these 2 modes,
and so if the emulator does the very occasional screen update in this main loop, it is of no consequence.

(I guess this extra logic was to throttle video updates on very old slow machines)

---

VideoCheckPage(BOOL bForce) was called twice in main-loop:

UnexpectedPage if g_bVideoDisplayPage2 != SW_PAGE2

Once each time through the loop (ie. every 1ms), with bForce=0
	if UnexpectedPage && >500ms since last flip then VideoRefreshScreen()

Once each video frame (ie. ~17030 cycles) when not flipping, with bForce=1
	if UnexpectedPage then VideoRefreshScreen()

Basically this was all about supporting FullSpeed mode, and limiting the calls to VideoRefreshScreen().
2014-09-13 22:22:27 +01:00
tomcw
d1dddbe813 1.25.0.3: Restore MIP_FF_FF_00_00 as memory init default (see GH Bug#225) 2014-09-08 22:25:29 +01:00
michaelangel007
95a2c855f4 Cleanup: remove dead comments in debugger_parser.cpp 2014-09-08 12:15:37 -07:00
michaelangel007
4b7f8aab3e Debugger 2.8.0.1 Fix #227 (Debugger)[1.25] AppleSoft symbol: COPY.FAC.TO.ARG.ROUNDED overflows into registers 2014-09-08 09:19:12 -07:00
michaelangel007
a49904a5f7 1.25RC2 Added note about MIP_FF_00_FULL_PAGE breaking Castle Wolfenstein -- no work-around yet except to use MIP_FF_FF_00_00 instead. 2014-09-07 18:29:47 -07:00
tomcw
9526ec6052 Bumped version to 1.25.0.2 2014-09-07 10:02:34 +01:00
michaelangel007
ce2f0b75cb Fix: SetCurrentImageDir() to always make sure g_sCurrentDir has trailing backslash 2014-09-03 17:14:06 -07:00
michaelangel007
807fcce1ef 1.25.0.2 Fixed: F12 Snapshot_LoadState() -> Snapshot_SetFilename() not keeping trailing backslash on path 2014-09-02 08:48:46 -07:00
michaelangel007
1083f0e981 Merge branch 'master' of https://github.com/AppleWin/AppleWin 2014-09-02 08:46:30 -07:00
michaelangel007
0c06520dc5 Added note about g_sCurrentDir to use g_sDebugDir 2014-09-02 08:44:21 -07:00
tomcw
9194ea9b36 1.25.0.1: Rebuilt with VS2005 Express 2014-09-01 21:14:39 +01:00
michaelangel007
cf7de38720 2.7.0.36 Fixed: empty command was re-triggering previous command. Example: DW 6062, // test 2014-09-01 12:47:43 -07:00
michaelangel007
3a0d2697e4 Debugger 2.7.0.35
.35 Added: DW address -- round the length up to even number for convenience. Example: DW 6062 is equivalent to: DW 6062:6063
.34 Fixed: Unified auto-defined name: B_, W_, T_ for byte, word, or text respectively
2014-09-01 09:49:55 -07:00
michaelangel007
346a171310 1.25 RC1 fixed ASC ellipsis 2014-08-30 10:03:00 -07:00
michaelangel007
0d385a2656 Added note about default MIP 2014-08-30 08:32:16 -07:00
michaelangel007
3c689c49db Added DW and ASC auto-defines W_#### T_#### respectively 2014-08-30 08:22:03 -07:00
michaelangel007
f0622f0335 1.25 RC1 fixed History.txt default MIP 2014-08-30 08:16:55 -07:00
michaelangel007
8bb3413b2c Added note about 1.25 RC 2014-08-29 15:09:32 -07:00
michaelangel007
1b1009ee07 2.7.0.33 Fixed ASC range, DW range to auto-define T_#### and W_#### 2014-08-29 08:51:29 -07:00
michaelangel007
be1ae810fc Debugger 2.7.0.31 fix: DB range to auto-generate symbol name: B_#### 2014-08-28 22:27:24 -07:00
michaelangel007
65cfe89e00 Debugger 2.8.0.1 fix: DB range to auto-generate symbol name: B_#### 2014-08-28 22:23:47 -07:00
michaelangel007
d5cf2d1de2 Debugger 2.8.0.0 AppleWin 1.25 2014-08-28 16:55:16 -07:00
michaelangel007
e449da5b47 Debugger: Fix ASC overflowing _sOpCodes in FormatOpcodeBytes() 2014-08-28 16:52:41 -07:00
tomcw
56bb3c1b18 Added Oliver to AppleWin team html 2014-08-28 22:41:37 +01:00
tomcw
a05979a6d1 Bump version to 1.25 & added comment to History.txt stating dropping Win98/ME support 2014-08-28 22:34:25 +01:00
tomcw
c46694216d Update help html files for 1.25 release 2014-08-28 22:08:15 +01:00
michaelangel007
fc5818ee34 Debugger 2.7.0.29 -- Renamed DS to ASC, fixed disassembly for ASC 2014-08-28 11:13:02 -07:00
michaelangel007
ae762762e7 #206 Based on FaceBook poll, changed memory initialization pattern to: MIP_FF_00_FULL_PAGE 2014-08-28 10:43:32 -07:00
michaelangel007
ccebc48e5a Merge branch 'master' of https://github.com/AppleWin/AppleWin 2014-08-28 10:40:08 -07:00
michaelangel007
9b8151b12e #206 Based on FaceBook poll, changed memory initialization pattern to: MIP_FF_00_FULL_PAGE 2014-08-28 10:39:29 -07:00
tomcw
313e7bdcc8 TSAVE: Remap control chars to printable ones 2014-08-27 22:13:14 +01:00
michaelangel007
77aef24880 Cleanup code conventions 2014-08-25 17:12:16 -07:00
michaelangel007
1bcf5b29ee Fix TSAVE and Ctrl-PrintScreen -- convert inverse control characters to space 2014-08-25 15:35:09 -07:00
michaelangel007
936553ab7e Cleanup misc. whitespace 2014-08-25 15:33:53 -07:00
tomcw
712c726304 Moved a potentially confusing global to be function-local & fixed a few comments 2014-08-25 21:49:58 +01:00
tomcw
24493b4099 Fixed minor bug with track/sector not showing when switching: x1 -> Fullscreen -> x1 -> x2 2014-08-25 21:42:23 +01:00
tomcw
1dde281b57 Fixed a few typos 2014-08-25 21:22:47 +01:00
michaelangel007
10092fce9a Fix missed case of #198 Alt-Enter toggle full-screen -- WM_USER_FULLSCREEN 2014-08-25 09:40:52 -07:00
michaelangel007
94c90f6654 Fix #221 Reinstate F6's original behaviour of toggling window/fullscreen modes
Fix #198 broken with F6 and Ctrl-F6 revert to original behavior
2014-08-25 09:20:32 -07:00
michaelangel007
24e581ba2c Added: Ctrl-PrintScreen will copy the text screen (auto detect 40/80 columns) to the clipboard. 2014-08-25 08:35:43 -07:00
michaelangel007
7cef5d5031 *sigh* Fixed typo again. 2014-08-24 08:30:01 -07:00
michaelangel007
9d36d6d007 Added new Debugger command: TSAVE to save the text screen to a file 2014-08-23 23:08:22 -07:00
michaelangel007
92e0f14907 #222 Kludge for Copy ][ v5 on MIP_PAGE_ADDRESS_LOW 2014-08-23 23:07:02 -07:00
michaelangel007
0ef2f4ddf9 Fix typo 2014-08-23 22:24:17 -07:00
michaelangel007
eea9110649 Update History.txt with Debugger 2.7.0.23 2014-08-23 17:09:48 -07:00
michaelangel007
8119e22f08 BUGFIX: MemoryFill and MemoryMove: Fix infinite hang if target memory address ends with FFFF due to 16-bit address wrapping around to zero instead of using length.
i.e. F D000:FFFF 0
2014-08-23 12:52:14 -07:00
michaelangel007
0a80bb22b2 Kludge for #222 MIP_PAGE_ADDRESS_LOW due to bug in 'Beautiful Boot' 2014-08-22 23:20:58 -07:00
tomcw
99bed3ed36 GH#212: Eliminate flicker when in fullscreen & 50% mode 2014-08-21 22:54:03 +01:00
tomcw
4b0100a60d Add Common Controls theme to Property Sheet Pages (for VS2012 & VS2013) 2014-08-20 23:04:55 +01:00