- Added Configuration GUI to include checkbox for "50Hz"
- Implicitly use PAL or NTSC base 6502 clocks depending on video refresh rate
- Added new -50hz and -60hz command line switches
- Updated save-state for video refresh rate
1.28.8.0: Updated version & history.txt
Updates for DHGR MIX (#633):
. Support new switch -rgb-card-invert-bit7 to invert bit7 for Dragon Wars.
- Reverted DHGR MIX mode and AN2 off to invert bit7
. Support DHGR MIX mode and AN2 off to invert bit7 (undocumented)
. Improve the video-mode precondition to check for 80COL access occurring before $C05F
. Relax the video-mode precondition to just checking VF_MIXED
. In DHGR B&W mode, then HGR screen is also B&W
. For '50% scan lines', don't blend in NTSC B&W mode (as this was inconsistent with the RGB colour rendering), and DHGR MIX mode would look odd!
Support the old AppleWin 1.25 vertical blending for hires:
- extended Config dialog to include 'Vertical Blend' checkbox
- Persist 'Video Styles' to Registry
- new cmd line options to select this style & also select 'RGB (Color Monitor)'
- code refactor to support enum VideoStyle_e (and replaced g_uHalfScanLines with a bit in g_eVideoStyles)
Bumped version to 1.28.2.0.
Supported modes selected via toggling AN3 and clocking in 80COL:
- 140 color mode (Apple calls this mode 2, Video7 calls this mode 0).
- mixed mode (Apple calls this mode 3, Video7 calls this mode 2).
- 560 mono mode (Apple calls this mode 1, Video7 calls this mode 3).
Save-state is also persists the extra state.
And there's a few corrections to APPLE2E.SYM for the 80STORE and 80COL I/O addresses.
Renamed this video mode to: "Color (RGB Monitor)"
Also renamed "Color (Monitor)" to "Color (NTSC Monitor)".
As for the colours: I've changed them from the original 1.25 colours. Instead I runtime-generate the colours from the NTSC code. See NTSC.cpp's GenerateBaseColors(). This shifts the same 4-bit pattern in, combining with NTSC color phase, until the colour stabilises. Then I average the next 4 RGB values to get the final colour. The reason for this is that we now have consistent colours between NTSC and this simplified rendering mode.
NB. The 2 greys (in GR,DGR,DHGR) are now the same RGB value.
Added new cmd-line switch: -videorom <file> to replace the video ROM for the Enhanced //e.
- Support video ROM sizes of 4K, 8K and 16K (top 8K only).
- NB. The rocker switch is set to European video ROM.
F10 (for //e or Enhanced //e models) emulates the PAL //e's rocker switch (under the keyboard) to toggle between European or US video ROM.
Other:
- Fixed debugger's view of the AltCharSet soft-switch (it was showing the opposite state).
. For the 14M video modes (DHGR,DGR,80COL), start rendering 1x 14M pixel early to account for these video modes being shifted right by 1 pixel
. Revert the display width back to 560 by disabling EXTEND_14M_VIDEO_BY_1_PIXEL
Changed HGR rendering, such that that last video byte (at hpos=64) clears g_nLastColumnPixelNTSC so that the end-of-line off-screen pixel is zero (see #555).
. Start video rendering from screen position -1 (ie. 1 DHGR pixel offscreen)
. Allows 559th DHGR vertical column to be visible
. But now an HGR HCOLOR=2 vertical line at column 0 is only 1 DHGR pixel wide
Also:
. Fix TEXT80 to be aligned with DHGR
. Fix FLASH in TEXT80 (inverse aux bits needed to be masked with 0x7f)
Changes to ease code compilation in GCC.
Disk_t and HDD contain a std::string and for this reason they need a proper constructor, ZeroMemory is not guaranteed to work.
. Removed NTSC_VideoVbl(), since it's not accurate during full-speed. (Nothing was using it)
. Renamed VideoGetVbl() to VideoGetVblBar()
. Correctly pass Vbl (not VblBar) to Mouse's SetVBlank()