Commit Graph

102 Commits

Author SHA1 Message Date
tomcw
8c7d45bd8e Fixed occasional flicker when changing video mode with F9. (Fixes #611) 2019-03-16 14:27:40 +00:00
TomCh
082b22d753
Support vertical blending for 'RGB (Color Monitor)' for hires (#616) (PR #624)
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.
2019-02-24 15:59:35 +00:00
tomcw
0458741a85 RGB AppleColor card:
- support 160-color mode by squashing 640 pixels into 560 pixels (GH#621)
  . squash by losing every 8th pixel
2019-02-03 16:39:27 +00:00
TomCh
dd53812132
Support for AppleColor / Video7 DHGR mixed mode (#523) (PR #620)
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.
2019-02-02 15:51:27 +00:00
tomcw
53af2a51b4 Renamed Video_OriginalColorTVMode.cpp to RGBMonitor.cpp 2019-01-19 16:51:45 +00:00
tomcw
4d7a3323e9 Extended -videorom <file> to also support Original //e (#574) 2019-01-10 21:38:21 +00:00
TomCh
25c7c41b07
Reinstate support for old AppleWin 1.25 "Color (Standard)" video mode (#357) (PR #614)
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.
2019-01-09 21:29:36 +00:00
TomCh
aa59c71847
Add support for PAL/European or custom 8K video ROMs (#596)
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).
2018-11-17 16:29:17 +00:00
tomcw
a2d05ca386 mem(cache): provide more details about how the mem(cache) and associated variables work, eg. when reading/writing to the same or different memory banks 2018-09-16 22:02:35 +01:00
tomcw
39f91c552c NTSC (#555)
. 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
2018-09-09 15:41:04 +01:00
tomcw
7d100a349b NTSC: Merge-squash from 'GH555-1-pixel' branch for the 1 pixel shift for 14M video modes (#555) 2018-09-09 13:56:55 +01:00
tomcw
bd7a96ce6e Small refactor of VideoGetScannerAddress() 2018-08-06 19:06:28 +01:00
tomcw
d623533e06 Improve VideoGetScannerAddress() to generate NTSC tables; and check tables with all video cycles 2018-08-05 22:19:51 +01:00
tomcw
5e02eaee53 Use VideoGetScannerAddress() to generate the NTSC video lookup tables 2018-08-02 22:37:20 +01:00
tomcw
47ec7f4355 Reverted ad12a8e: video rendering from screen position -1: so now DHGR vertical column 559 is hidden again (see #555).
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).
2018-06-23 17:50:23 +01:00
tomcw
e0da17ed96 Removed all VS2012 proj/slns (#559) 2018-06-10 17:01:44 +01:00
tomcw
ad12a8e6d2 Fix for #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)
2018-05-24 21:34:26 +01:00
tomcw
3e7cc361ff #555: Fix for displaying colour dots & vertical lines in the far right hand column 2018-05-13 17:33:13 +01:00
Andrea
6051bc55d0 Changes to ease code compilation in gcc. (#541)
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.
2018-02-24 15:12:40 +00:00
tomcw
2c8f5ce864 Support floating-bus in full-speed mode (#508, #519, #532) 2018-02-02 20:19:48 +00:00
tomcw
018e338612 Frame.cpp: move header constants into Frame.cpp and expose with accessor functions 2017-10-11 17:38:36 +01:00
tomcw
d11f0a222d Fix the discontinuous whole screen redraw bug in full-speed mode (#405) 2017-04-23 21:37:01 +01:00
tomcw
a5cffc7441 NTSC: Removed the redundant per-line caching of video mode & video function. Tested with ANSI STORY (end credits) and Rainbow. 2017-04-14 20:59:43 +01:00
tomcw
345200972b NTSC: Removed g_aHorzClockMemAddress[] for caching the horz video scanner addr 2016-12-11 15:27:07 +00:00
tomcw
3e0d399665 Some video-related comment clean up & simplified VideoGetVblBar() 2016-12-11 15:02:12 +00:00
tomcw
b8b90a6bd9 NTSC_VideoGetScannerAddress(): remove redundant 'long cycle6502' parameter
MemReadFloatingBus(): Make consistent by making one call the other
2016-11-17 19:52:49 +00:00
tomcw
8447a22942 VBlank tweaks:
. 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()
2016-11-16 11:18:41 +00:00
tomcw
981b711fef Refactor: int bVideoMode -> uint32_t uVideoMode 2016-11-06 21:59:45 +00:00
tomcw
421d9a77f6 VideoRefreshScreen(): Use default args instead of passing 0 for arg0 2016-11-06 14:33:14 +00:00
tomcw
c146587b8e Save-state: Fix for loading state when TEXT40 changes to TEXT80 or v.v. 2016-10-31 21:05:10 +00:00
tomcw
d2efba4959 Fix for NTSC_VideoUpdateCycles() where Z80 updates in units of ~1000 cycles (#371) 2016-10-30 12:31:29 +00:00
TomCh
bcd4c7c7fa Merge pull request #362 from AppleWin/Release-1.26.0.1
Merge all the changes & fixes from the Release-1.26.0.1 branch back into master.
2016-10-16 21:15:03 +01:00
michaelangel007
75d56cad97 Fix GR colors gray1 gray2 #253 2016-10-14 22:28:39 -07:00
tomcw
a58f990ab8 Fix PrintScreen for Color TV and B&W TV (fix #356) 2016-10-11 21:52:11 +01:00
tomcw
3e51f2f02f Extend quick fix for #341 (ANSI STORY - end credits) 2016-10-02 22:22:10 +01:00
tomcw
9b8d5b94af Reworked NTSC_VideoRedrawWholeScreen(): now precisely call the update funcs for lines0-159 and line160-261, so that video V/H positions remain the same they were on entry (bug #352) 2016-09-25 21:50:07 +01:00
tomcw
700a9e9f3f Fix for previous commit's regression - random data being drawn on line 0 (#352) 2016-09-25 19:58:51 +01:00
tomcw
5f0ccfc75c Added new function NTSC_VideoRedrawWholeScreen() to fix #352 2016-09-25 10:42:14 +01:00
tomcw
09fa6ccef5 Fixed #342 2016-09-16 23:05:39 +01:00
tomcw
94b8e76e3b Small tidy-up for NTSC_CharSet.cpp, and fix-up the VS2008/2013/2015 projects 2016-07-26 19:14:06 +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
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
9adbb1e8e6 Added NTSC_Reinitialize() to re-init NTSC state after loading a save-state file 2016-04-05 22:17:29 +01:00
tomcw
7e56e93449 Always updateMonoTables() since previous video-mode could have had a non-white RGB value
. eg. when cycling backwards from Amber to TV
2016-04-04 22:18:29 +01:00
tomcw
80ad4df409 Fix scoping of variable 2016-03-28 18:02:08 +01:00
tomcw
ad55b0f136 Fix for when VideoMode = {Text_Optimized | TV} in 50% scanline mode:
. RGB arithmetic could underflow
. Now clamp to zero (ToDo: consider using SIMD)
2016-03-28 17:27:25 +01:00
tomcw
e98de27039 Manual merge from master @ c798157 2016-03-21 23:48:02 +00:00
michaelangel007
f3cb2e35bf Fixed DHGR blurry text introduced in commit e6deaee6ae 2015-01-17 11:15:00 -08:00
michaelangel007
e1c56ba386 Fixed HGR display for Archon's end of line green white fringe 2015-01-13 11:47:04 -08:00