Commit Graph

162 Commits

Author SHA1 Message Date
tomcw
7495d0d9cc NTSC: Minor refactor of getScanlineXXX() func names 2019-08-30 16:43:28 +01:00
tomcw
bae7208852 Removed the old EXTEND_14M_VIDEO_BY_1_PIXEL rejected solution for #555 2019-08-29 21:38:00 +01:00
tomcw
521a09e75a Reverted 8a11feb7 (#650) 2019-08-25 19:41:30 +01:00
tomcw
8a11feb739 NTSC TV video modes: adjust y-position by 1 pixel (#650) 2019-08-09 22:58:12 +01:00
tomcw
816dc77cb0 Only delay certain video modes when not Full-Speed. (Fixes #670) 2019-07-27 19:59:45 +01:00
TomCh
bd86088c59
Support 50Hz(PAL) (#648) (PR #658)
- 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
2019-06-28 21:34:34 +01:00
tomcw
e6e52ffcf4 Delay any video mode change by 1 cycle (#654) 2019-06-15 18:15:00 +01:00
tomcw
dad590b8c1 Bumped to 1.28.5.0 and updated 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
2019-04-06 17:31:26 +01:00
tomcw
2463aae545 Updates for DHGR MIX and detection (#633):
. Support DHGR MIX mode and AN2 off to invert bit7 (undocumented)
. Improve the video-mode precondition to check for 80COL access occurring before $C05F
2019-04-06 15:17:18 +01:00
tomcw
ec36eae817 Updates for DHGR MIX and B&W modes (#631):
. 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!
2019-04-06 13:49:56 +01:00
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
michaelangel007
e6deaee6ae Remove alt CHROMA_BLUR, added NTSC_REMOVE_WHITE_RINGING, NTSC_REMOVE_BLACK_GHOSTING 2015-01-13 11:02:42 -08:00
michaelangel007
4078afe82c Reset chroma cycle back to 45 2015-01-10 22:47:07 -08:00
michaelangel007
c286f7fc99 Removed bgra_t struct since now in Video.h 2015-01-10 11:43:51 -08:00
michaelangel007
0103d43f3a Added debug option for alt NTSC 512x4 table 2015-01-10 11:24:27 -08:00
michaelangel007
c13fb849a5 Added NTSC_VideoGetChromaTable(), _NTSC_VideoInitChroma() 2015-01-08 12:05:23 -08:00
michaelangel007
00f9d8f1b9 Cleanup dead code 2015-01-05 23:14:44 -08:00
michaelangel007
d56751773e Cleanup NTSC_VideoGetScannerAddress() 2015-01-05 22:55:36 -08:00
michaelangel007
c9741ae133 optimize removal white ringing, touch up HGR test pattern 2015-01-05 22:03:49 -08:00
michaelangel007
05eb35e418 Bug #241 Fixed ANSI STORY Video Scanner Vertical 2015-01-05 08:39:29 -08:00
michaelangel007
1d06cd0a3f Tweak colors to be 12 degrees offset 2015-01-04 02:03:54 -08:00
michaelangel007
7c468af8d1 Massive cleanup for filters 2015-01-04 01:10:30 -08:00
michaelangel007
201515771c Added missing prototype 2015-01-03 18:36:16 -08:00
michaelangel007
b74aa9ed87 Cleanup: macros UpdateVideoAddressTXT() -> updateVideoScannerAddressTXT, UpdateVideoAddressHGR() -> updateVideoScannerAddressHGR() 2015-01-03 18:32:34 -08:00
michaelangel007
898a82cded Replace NTSC_VideoGetByte() with NTSC_VideoGetScannerAddress() 2015-01-03 18:28:47 -08:00
michaelangel007
989522a43d Optimization: Add MSVC forced inlining 2015-01-03 12:47:51 -08:00
michaelangel007
db79b4584b Cleanup: Factor updateFlashRate 2015-01-03 11:45:44 -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
d5abdcc97c Massive alphabetize cleanup 2015-01-02 20:58:27 -08:00
michaelangel007
83e5de9e74 Massive cleanup: consisten updatePixel*() updateScreen*() func names 2015-01-02 20:20:30 -08:00
michaelangel007
bf815f1b6c Cleanup: updatePixels() argument: bt -> bits 2015-01-02 20:05:49 -08:00
michaelangel007
2845ec65ee Cleanup: VIDEO_DRAW_BITS -> updatePixels 2015-01-02 20:03:57 -08:00
michaelangel007
fb19d883eb cleanup updateScreen*() 2015-01-02 20:00:24 -08:00
michaelangel007
851985e846 Cleanup: add func pointer types 2015-01-02 19:46:40 -08:00
michaelangel007
e14b004795 Cleanup: Add getScanlineThis0Address() for out-of-bounds array checking 2015-01-02 19:18:39 -08:00
michaelangel007
0786f759a8 Cleanup: g_aNTSC_Lines -> g_pScanlines, factor out updateVideoScannerAddress() 2015-01-02 19:14:18 -08:00
michaelangel007
bddf3df22e Fix minor Horz timing bug in updateVideoHorzEOL 2015-01-02 19:08:30 -08:00
michaelangel007
b6b384bc10 Now displays Rainbow from Bug #254 correctly! 2015-01-02 18:51:52 -08:00
michaelangel007
1c28000801 Clean up clock offsets and add note about potential bug 2015-01-02 18:38:45 -08:00
michaelangel007
8f2a3a217c Cleanup: updateVideoScannerAddress 2015-01-02 18:03:44 -08:00
michaelangel007
95b6fde639 Cleanup & Optimize: g_nTextFlashCounter 2015-01-02 18:00:31 -08:00
michaelangel007
e98a0f5f7e Optimize rendering so it doesn't hog the CPU 2015-01-02 17:56:16 -08:00
michaelangel007
c3470c6e6f Cleanup: move PAL and RGB table 2015-01-02 17:40:30 -08:00
michaelangel007
d67f084bf3 Remove flicker from NTSC_VideoUpdateCycles() -- draw each scanline 2015-01-02 17:38:48 -08:00
michaelangel007
d8fe5a4700 Cleanup: cycles name 2015-01-02 17:24:55 -08:00
michaelangel007
421db69b9e Cleanup brga table tnames 2015-01-02 12:12:22 -08:00
michaelangel007
5288623f6e misc. cleanup alignment 2015-01-02 11:59:49 -08:00
michaelangel007
ccb5b50f6d Cleanup: convert macros that update the framebuffer to inline funcs and make them more readable, convert NTSC lookup tables to bgra 2015-01-02 11:46:57 -08:00
michaelangel007
9f32d59ae7 Add WIP palette PAL and RGB values 2015-01-02 09:40:36 -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