Commit Graph

65 Commits

Author SHA1 Message Date
tomcw
9616df504e Full-screen: Added Config UI checkbox for the display of subunit status (ie. keyboard caps, disk activity, paused/stepping state) - #224 2017-10-02 22:22:26 +01:00
tomcw
c5bbf9a2c2 Cmd-line: Remove old -fs8bit switch 2017-09-30 09:47:48 +01:00
tomcw
3cf50d01ba Cmd-line: support new -fs-height=<best|nnn> (#488) 2017-09-29 20:33:30 +01:00
michaelangel007
2ec3255863 Add comment backlink to F.R. #469 2017-08-24 16:40:21 -07:00
michaelangel007
cb138c97d4 Bug #469 added command line switch to disable PrintScreen key capture 2017-08-24 16:33:03 -07:00
tomcw
dd510801fc Fix strange speaker clicks when changing configuration - DirectSound wasn't being uninitialised on a restart (fixes #456) 2017-08-10 22:10:59 +01:00
tomcw
1c145ff154 1.26.3.0: Apply bounds and error checking for the joystick configuration (fixes #434) 2017-07-03 21:48:21 +01:00
tomcw
eb21f34ace Fixed not being able to select Pravets82, improved code robustness & improved UX when loading an unsupported Apple2Type config (fixes #415) 2017-05-08 22:32:01 +01:00
tomcw
739afea01a Remove redundant code relating to SetCharseType() and g_nCharsetType 2017-04-30 18:50:27 +01:00
michaelangel007
7f88196d3e Cleanup formatting 2017-04-27 14:59:41 -07:00
michaelangel007
f8f881d41a Fix missing brace for SATURN 2017-04-27 14:51:34 -07:00
michaelangel007
d3e620fcd4 Add command line to init Saturn memory size 2017-04-27 14:50:15 -07:00
michaelangel007
cd88c40719 Save extended Language Card memory type if RAMWORKS 2017-04-27 14:03:17 -07:00
tomcw
124eca4546 Debugger: Allow MODE_DEBUG and MODE_STEPPING states to persist across an F2 ResetMachineState() call (#217) 2017-04-22 20:42:42 +01:00
tomcw
1bd85e123e SSC: Added -modem switch (for dcd,dsr,dtr) and removed invert switches (#386) 2017-03-23 21:36:26 +00:00
tomcw
abd99d109e SSC: Experimental support for 6551's status bits: DCD and DSR via -dcd[-invert] and -dsr[-invert] args (#386) 2017-03-19 21:44:20 +00:00
tomcw
6063d8e96f SSC: Experimental support for 6551's DTR via -dtr or -dtr-invert args (#386) 2017-03-18 13:56:18 +00:00
tomcw
743add80f0 Improve ContinueExecution() whilst MODE_STEPPING:
. GetKeyState(VK_SCROLL) is slow, so only call periodically
. Account for g_nCpuCyclesFeedback before calling SpkrUpdate()
2017-02-26 13:45:06 +00:00
tomcw
0b6c5bbb91 Support for #384:
. Debug 'G(o)' cmd now defaults to normal speed (and precise video updates)
. New debug 'GG' cmd enables full speed (and periodic video updates)
. Single-stepping (normal or full speed) now routed through ContinueExecution()
. Removed Cpu6502()/Cpu65C02() check for debug breakpoints
. Removed the (undocumented) SHIFT+F7 feature to exit debugger for 'normal speed breakpoints'
. Removed the g_bDebugNormalSpeedBreakpoints variable
2017-02-25 22:32:46 +00:00
Kelvin Lee
56570960ef Renamed g_restart to g_bRestart. 2016-12-29 12:10:25 -05:00
Kelvin Lee
e0cac15ede Renamed global variable restart to g_restart. Made it proper bool. 2016-12-29 12:10:03 -05:00
tomcw
421d9a77f6 VideoRefreshScreen(): Use default args instead of passing 0 for arg0 2016-11-06 14:33:14 +00:00
tomcw
d9246c0841 Save-state: support TK3000 clone 2016-10-23 10:35:18 +01:00
tomcw
86ba0b0407 Apply fixes and enhancements to PR #285 (Support for TK3000 //e) 2016-10-22 23:20:23 +01:00
tomcw
30160583cb For full-speed: update every 16ms of real-time (close #351) 2016-09-22 22:34:16 +01:00
tomcw
0a7a0e9e5c Fixed #348 (>800KiB HDD images not mountable) 2016-09-19 22:14:57 +01:00
tomcw
1d34497d2d Speed-up booting AZTEC.DSK (#347) 2016-09-18 15:56:22 +01:00
tomcw
efcf06c285 Removed unsupported PC speaker sound types 2016-09-07 22:20:15 +01:00
tomcw
31ba57b7c7 Debug logging: add log message for time from boot until first key read (for AZTEC.DSK).
+ Remove an unused var.
2016-09-06 21:38:00 +01:00
tomcw
3cf54e6fa3 Calculate full-screen scale using borderless dimensions & allow more than 2x scale 2016-07-25 21:19:00 +01:00
tomcw
02b0d7419a Fixed screen update when running at full-speed
. Specifically IBIZA.DSK demo which streams data from the disk throughout (ie. so runs at full-speed all the time)
. Update the screen every frame, but only if video memory has changed (check AZTEC.DSK loading time)
. NB. When running at full-speed, then 6502 emulation doesn't do cycle-accurate video updates
Fixed crash that could occur when switch video mode (F9) when running at full-speed
. Occured when g_nVideoClockVert was >= 192
2016-07-23 22:53:29 +01:00
tomcw
04c9d09e38 When FullSpeed: don't do cycle-accurate graphics update
. means that disk accesses (eg. loading) is much quicker
Correct naming of video modes (in UI and code)
Pixel adjust for NTSC B&W and Color video modes to align with other video modes
2016-05-17 22:07:27 +01:00
tomcw
c4dfbaf988 -load-state: set CWD to path of .aws.yaml file 2016-04-20 22:46:12 +01:00
tomcw
749e1514bd Use correct resource BMP for each model's character set (Apple ][, original //e and Pravets)
Also resized the Pravets BMPs to be either 256 or 512 pixels in height.
2016-04-12 23:21:05 +01:00
tomcw
e98de27039 Manual merge from master @ c798157 2016-03-21 23:48:02 +00:00
michaelangel007
82fc84ccd2 Change SetCurrentImageDir() to return true/false 2015-01-10 16:56:47 -08:00
michaelangel007
801fa4db03 don't call unused VideoEndOfVideoFrame, directly call VideoRefreshScreen(0) 2015-01-03 11:42:00 -08:00
michaelangel007
88a7ab7b0b Fix video configuration initialization order not being applied for 50% scan lines 2015-01-02 02:45:47 -08:00
michaelangel007
75c5cc8151 Fix broken MIXED mode, fix Debugger view output, change main loop to call VideoRefresh() 2015-01-01 11:48:59 -08:00
michaelangel007
28cd63fc84 Fix: 50% Half Scan Lines wasn't being applied on intial setup 2015-01-01 09:59:09 -08:00
michaelangel007
1fc2c0f2b2 Remove most of the old unused Video rendering functions 2014-12-31 17:57:57 -08:00
michaelangel007
2dedaf0158 NTSC: fix Debugger View Output commands: TEXT, HGR, etc 2014-12-31 17:15:36 -08:00
michaelangel007
e116014742 First pass of NTSC integration 2014-12-31 14:13:36 -08:00
tomcw
8c019bcd35 More main-loop reduction & removal of redundant globals.
Fixed JoyUpdateButtonLatch() to debounce in 5mecs instead of 5secs!

SpkrToggle() was using redundant global ('cyclenum') when using the PC speaker.
. I reworked the code (as it looked out-of-date),
    but probably better to just remove all the PC speaker support.
2014-09-14 21:23:54 +01:00
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
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
ae762762e7 #206 Based on FaceBook poll, changed memory initialization pattern to: MIP_FF_00_FULL_PAGE 2014-08-28 10:43:32 -07:00