Commit Graph

149 Commits

Author SHA1 Message Date
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
michaelangel007
8651da0903 Remove white ringing in Standard Color Monitor 2015-01-01 23:54:05 -08:00
michaelangel007
c74cafdadd Cleanup function prototypes 2015-01-01 23:50:04 -08:00
michaelangel007
ce633237e0 Fixed Double Lo-Res and Double Hi-Res 2015-01-01 22:45:40 -08:00
michaelangel007
581e1467bc Remove debug text80 watermark 2015-01-01 22:11:17 -08:00
michaelangel007
a29444eb6c Fix 80-col using out-of-bounds Char Set 2015-01-01 22:05:40 -08:00
michaelangel007
6c9032d67e Cleanup: Alphabetize functions 2015-01-01 22:04:38 -08:00
michaelangel007
c68c50c8db Fix mode Color Text Optimized -> Monochrome TV 2015-01-01 17:32:09 -08:00
michaelangel007
29fbe9515c Fix all GR modes -- need 16-bits for pixel color 2015-01-01 17:20:36 -08:00
michaelangel007
d75cc2b330 Cleanup and factor common code, macro VIDEO_DRAW_BITS() to inline function 2015-01-01 11:59:54 -08:00
michaelangel007
1087f738d5 Fix monochrome RGB colors 2015-01-01 09:59:58 -08:00
michaelangel007
784fb5c62b Fix F9 video mode cycling works for monochrome modes 2014-12-31 17:57:02 -08:00
michaelangel007
e681c97c3b Added NTSC files to Solution 2014-12-31 14:53:55 -08:00