Apple II emulator for Windows https://github.com/AppleWin/AppleWin
Find a file
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
bin 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
ddraw_lib Add dxguid.lib so AppleWin can link without DirectX SDK installed. 2014-07-15 22:26:57 -07:00
Disks Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
docs 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
firmware/HDD Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
help 1.25.0.1: Rebuilt with VS2005 Express 2014-09-01 21:14:39 +01:00
resource 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
source Simplified and moved main-loop video update logic into Video.cpp. 2014-09-13 22:22:27 +01:00
web Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
zip_lib Add new VS2013 filter files 2014-08-20 22:28:35 +01:00
zlib Add new VS2013 filter files 2014-08-20 22:28:35 +01:00
.gitignore Upgraded VS 2012 solution to VS 2013. 2014-07-23 23:27:51 +12:00
ApplewinExpress9.00.sln Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
ApplewinExpress9.00.vcproj Created new DebugDefs.h for memory defs 2014-08-14 18:14:39 +01:00
ApplewinExpress10.00.sln Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
ApplewinExpress10.00.vcxproj Move Util_* files into Debugger subfolder & update all vcproj files 2014-08-13 22:25:22 +01:00
ApplewinExpress10.00.vcxproj.filters Move Util_* files into Debugger subfolder & update all vcproj files 2014-08-13 22:25:22 +01:00
ApplewinExpress2005.sln Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
ApplewinExpress2005.vcproj Move Util_* files into Debugger subfolder & update all vcproj files 2014-08-13 22:25:22 +01:00
AppleWinExpress2012.sln Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
AppleWinExpress2012.vcxproj Add Common Controls theme to Property Sheet Pages (for VS2012 & VS2013) 2014-08-20 23:04:55 +01:00
AppleWinExpress2012.vcxproj.filters Remove wchar.h & Update VS2012 proj with new headers 2014-08-14 22:27:41 +01:00
AppleWinExpress2013.sln Upgraded VS 2012 solution to VS 2013. 2014-07-23 23:27:51 +12:00
AppleWinExpress2013.vcxproj Add Common Controls theme to Property Sheet Pages (for VS2012 & VS2013) 2014-08-20 23:04:55 +01:00
AppleWinExpress2013.vcxproj.filters Add new VS2013 filter files 2014-08-20 22:28:35 +01:00
GNU General Public License.txt Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
LICENSE Initial commit 2014-03-02 09:15:54 -08:00
Make_Distribution.bat Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00
README.md Added note about 1.25 RC 2014-08-29 15:09:32 -07:00

AppleWin

Apple II emulator for Windows

Download latest release: AppleWin v1.24.0

Building

To compile from source see:

docs/compiling.txt