Commit Graph

158 Commits

Author SHA1 Message Date
tomcw
9adbb1e8e6 Added NTSC_Reinitialize() to re-init NTSC state after loading a save-state file 2016-04-05 22:17:29 +01:00
tomcw
7ccf722200 Fixed: AltCharSet flag was inverted 2016-04-04 22:38:01 +01:00
tomcw
346f45b3e9 Fixed: NTSC video mode vars not setup after loading save-state 2016-04-04 21:32:40 +01:00
tomcw
d23ae15774 Removed border from:
. final rendered window
. print-screen bmps (both sizes)
Fixed full-screen so that:
. all mode (RUNNING, DEBUG and LOGO) all occupy the same screen position
. there's no intermediate data drawn out of position when first switching to full-screen
Tested on Win7 and Win10
2016-04-04 21:05:58 +01:00
tomcw
e98de27039 Manual merge from master @ c798157 2016-03-21 23:48:02 +00:00
michaelangel007
4886b5daea version 18 Blurry 80-col text 2015-01-17 11:19:29 -08:00
michaelangel007
dfc4ef6d13 Version 17 BMP Palette 2015-01-10 23:12:22 -08:00
michaelangel007
fcd9d7377b Fixed screenshots (large), factored out Windows BMP Header Struct 2015-01-10 11:42:53 -08:00
michaelangel007
ec6f124140 WIP: fix 560x384 screenshots (600x420 for the time being) 2015-01-10 11:22:41 -08:00
michaelangel007
ae6f1c9f0f Debugger: Added: ntsc save [filename], ntsc load [filename] 2015-01-08 12:15:19 -08:00
michaelangel007
897d72b03f Cleanup up warning 2015-01-07 19:01:43 -08:00
michaelangel007
5dc5898069 Display the logo in for the first few initial frames so any full screen video captures can get it 2015-01-07 00:48:18 -08:00
michaelangel007
8809caefe2 Added new logo, fixed fullscreen y offset 2015-01-06 01:45:38 -08:00
michaelangel007
5b266a51fb 1.26alpha v14 FullScreen 2015-01-05 22:03:09 -08:00
michaelangel007
05eb35e418 Bug #241 Fixed ANSI STORY Video Scanner Vertical 2015-01-05 08:39:29 -08:00
michaelangel007
7fcb3763b7 WIP Fullscreen support 2015-01-03 14:13:55 -08:00
michaelangel007
3c70963d86 WIP: NTSC Full screen support 2015-01-03 13:03:47 -08:00
michaelangel007
2db3c6b318 PreAlpha: v12, revert VideoBenchmark() to call VideoRefreshScreen(0) 2015-01-03 11:44:06 -08:00
michaelangel007
ce94b59663 Bug #241 - AppleWin 1.26 NTSC -- Fix "ANSI STORY" so horz scroll works, fix vert scroll so it mostly works, verified "Rainbow" works 2015-01-03 03:31:19 -08:00
michaelangel007
b96b3fe1d4 Optimization: replace slow VideoGetVbl() with fast NTSC_VideoIsVbl() 2015-01-02 21:28:01 -08:00
michaelangel007
f36073beb5 Start cleanup Video 2015-01-02 21:01:01 -08:00
michaelangel007
e98a0f5f7e Optimize rendering so it doesn't hog the CPU 2015-01-02 17:56:16 -08:00
michaelangel007
a09c64e5f5 Add Alpha Watermark so we can track bugs 2015-01-02 12:23:28 -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
24ac8886c6 Cleanup: Global Func Pointer:
g_pNTSC_FuncVideoUpdate -> g_pFunc_NTSCVideoUpdateGraphics
 g_pNTSC_FuncVideoText -> g_pFunc_NTSCVideoUpdateText
2015-01-02 00:06:49 -08:00
michaelangel007
88b1b493e4 Set 40/80 Char Set if not Apple ][ 2015-01-01 22:03:34 -08:00
michaelangel007
e07d80898f Fix Ctrl-F6 2x zoom 2015-01-01 17:19:49 -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
1087f738d5 Fix monochrome RGB colors 2015-01-01 09:59:58 -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
d8a0bd4ae2 Merge branch 'master' of https://github.com/AppleWin/AppleWin into NTSC_PreMerge 2014-12-31 14:13:58 -08:00
michaelangel007
e116014742 First pass of NTSC integration 2014-12-31 14:13:36 -08:00
tomcw
0fc6d18139 Removed some unused video constants 2014-12-21 16:47:03 -05:00
tomcw
1966bcb9a1 Merge branch 'master' of https://github.com/AppleWin/AppleWin 2014-12-21 16:43:58 -05:00
tomcw
a85d33beb3 Switch VideoCheckVbl() to call VideoGetVbl() instead of VideoGetScannerAddress() 2014-12-21 16:43:49 -05:00
michaelangel007
7ba8128530 Remove unused: V_CreateLookup_HiresHalfShiftFull(), conditionaly compile V_CreateLookup_HiresHalfShiftDim(); 2014-12-15 18:02:54 -08:00
michaelangel007
e64932f181 Fixed HGR colors to be more accurate; cleanup dead code; merged COLORS_TWEAKED since it is always active 2014-12-14 19:05:21 -08:00
michaelangel007
ee67feaffb Removed old commented out color maps for Lores & DoubleHires 2014-12-14 18:05:56 -08:00
michaelangel007
ca26296970 Fix mis-labeled HGR_MAGENTA -> HGR_VIOLET 2014-12-14 18:03:45 -08:00
michaelangel007
b21da4dd95 DOC: Made note that IIGS color reference is NOT accurate 2014-12-14 14:59:01 -08:00
michaelangel007
3d80c45451 Fix mis-labled HGR_RED -> HGR_ORANGE 2014-12-14 14:55:19 -08:00
tomcw
a2260510f3 Better support for GH issues #129 and #204 (x86 CPU core is no longer max'ed out). 2014-09-21 21:42:19 +01:00
tomcw
8098b84a0e Fix GH issue #188 (GDI object leak). Also refactored V_CreateLookup_Text() and V_CreateLookup_MonoText() to use common code. 2014-09-21 16:12:05 +01:00
tomcw
efd2e4405a Fix: 80-column video mode wasn't being detected as needing an update, when FLASH chars only existed in AUX text pages. 2014-09-15 22:47:50 +01: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
0db62489f9 Refactor: g_bVideoMode -> g_uVideoMode 2014-09-14 16:15:14 +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
99bed3ed36 GH#212: Eliminate flicker when in fullscreen & 50% mode 2014-08-21 22:54:03 +01:00
tomcw
ea23def601 More header refactoring 2014-08-14 18:03:12 +01:00
tomcw
6a26a95487 PCH refactor: remove non-system headers from stdafx.h 2014-08-13 21:30:35 +01:00
tomcw
a75555d21c Simplified ContinueExecution(): video refresh part. 2014-07-20 10:24:50 +01:00
tomcw
8637dfa7af Removed the _DEBUG-only experimental video modes (eg. Emboss, Psychedelic, etc) 2014-07-10 22:52:26 +01:00
tomcw
ae233fe1fc Remove redundant 'BOOL behind' which was always zero.
- allowed some simplification to VideoSetMode()
Tidy up ContinueExecution(), removing unused 'BOOL pageflipping'.
Refactor VideoCheckPage() to make it more readable.
2014-07-08 20:58:48 +01:00
tomcw
b036b03062 Tweaks to fullscreen 32-bit mode 2014-06-27 22:43:25 +01:00
tomcw
c509349469 Fullscreen defaults to 32-bit. Use -fs8bit for 8-bit mode 2014-06-26 22:44:02 +01:00
tomcw
d591dd006b Remove the top-level AppleWin folder 2014-05-23 22:59:02 +01:00