Commit Graph

167 Commits

Author SHA1 Message Date
tomcw
d6f8d4edd8 Rename sg_DiskIICard to sg_Disk2Card 2019-04-14 17:01:49 +01:00
tomcw
4235f08f7a Remove the 'Disk' prefix from method names 2019-04-08 10:41:47 +01:00
tomcw
e7d6eac04d Class-ify disk.cpp into DiskIIInterfaceCard 2019-04-07 14:22:05 +01:00
tomcw
ffa41e35cc Added test cmd-line switch: -screenshot-and-exit <file.bmp> 2019-03-17 15:01:51 +00: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
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
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
tomcw
eea8cb3cdf Deprecated and removed support for v1 save-state. (Fixes #603) 2019-01-05 22:20:51 +00:00
tomcw
af899fa90a Added support for Apple II/II+ 2K video ROMs (fixes #205) 2018-11-19 22:15:04 +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
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
9cacf8d90d Small refactor for reading $C01x soft switch status flags
Prevent Apple II from reading $C01x/$C07F soft switch status flags
2018-06-30 14:30:30 +01:00
tomcw
2d2304b4c6 AppleWin's Config>Benchmark, reported a "Pure CPU MHz" which was not a good indicator of unthrottled speed for v1.26+, as it was still getting the emulator to do full NTSC/cycle-accurate video update. The reality (when in full-speed/unthrottled mode) is that the video is only refreshed at 16.6ms (wall-clock).
So added a 2nd "Pure CPU MHz" for full-speed (ie. no video update), eg:

---------------------------
Benchmarks
---------------------------
Pure Video FPS:	2860 hires, 2868 text
Pure CPU MHz:	10.3 (video update)
Pure CPU MHz:	241.3 (full-speed)

EXPECTED AVERAGE VIDEO GAME
PERFORMANCE: 476 FPS

(ref: #424, #540)
2018-03-03 22:01:03 +00:00
tomcw
552d8fcc7b Remove old debug timing code (#540) 2018-02-26 21:34:01 +00:00
tomcw
6c031e7930 Disk II: changing 'enhancedisk' doesn't cause a restart + added accessors (fixes #546) 2018-02-25 15:09:25 +00: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
4a69ba8a97 git merge --squash GH125-ProDOS-Format. Fix for disk formatting #125, #196, #338:
. .dsk / .nib images
. ProDOS format / DOS 3.3 init
. authentic / enhanced disk access speed

For zero-length files, resize to the complete file size when first opened (#506)
. Support both .dsk and .nib

Created a new class FormatTrack to encapsulate the new track formatting logic

Improved precision of 'authentic' drive mode's spin emulation (#125)

Save-state: (save-state DiskII unit v2)
. support Format Track state
. save DiskLastCycle

DenibblizeTrack(): added some debug asserts and comments

Updated for VS2008/VS2013/2015/2017 projs & remove dependency on ddraw.lib for VS2013/2015

Updated disk logging:
. Moved all LOG_DISK_xx macros to new DiskLog.h (since shared by Disk.cpp and DiskFormatTrack.cpp)
. For write nibble: option to log cycle count & sync byte count
. For written track: option to log gap1/2/3 and track size
. For disk latch r/w: option to log when D5AA96 detected

Other:
. Debugger: Fix CD cmd to support absolute paths (#505)
2018-01-14 18:01:22 +00:00
tomcw
d46491c5d0 VideoMode: 80STORE should only mask, not clear PAGE2 - and this is handled by underlying NTSC video code (#516) 2017-12-04 20:43:42 +00:00
tomcw
670ca20057 Frame.cpp: Remove redundant, commented out and if 0 code, mostly relating to the old full-screen implementation 2017-10-11 19:18:53 +01: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
b1dfd57502 Tidy-up in Frame.cpp: unused prototypes, dead code; consolidate some full-screen constants 2017-10-10 22:06:24 +01:00
tomcw
9616df504e Full-screen: Added Config UI checkbox for the display of subunit status (ie. keyboard caps, disk activity, paused/stepping state) - #224 2017-10-02 22:22:26 +01:00
tomcw
0a60a0a8aa Video.cpp: remove redundant code 2017-07-06 21:36:56 +01:00
Andrea Odetti
64e924bcae Delete unused code from Video.cpp
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2017-05-01 20:20:02 +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
d9669fa45b Printscreen: Fix for missing half-top line for B&W TV and Color TV (#403) 2017-04-22 22:22:29 +01:00
tomcw
29b7fa15b8 Merge branch 'master' of https://github.com/AppleWin/AppleWin 2017-02-25 22:48:07 +00:00
tomcw
0b6c5bbb91 Support for #384:
. Debug 'G(o)' cmd now defaults to normal speed (and precise video updates)
. New debug 'GG' cmd enables full speed (and periodic video updates)
. Single-stepping (normal or full speed) now routed through ContinueExecution()
. Removed Cpu6502()/Cpu65C02() check for debug breakpoints
. Removed the (undocumented) SHIFT+F7 feature to exit debugger for 'normal speed breakpoints'
. Removed the g_bDebugNormalSpeedBreakpoints variable
2017-02-25 22:32:46 +00:00
tomcw
8c4f451557 Remove old, unused _Video_SetupBanks() 2017-02-17 16:00:22 +00:00
tomcw
fc781cdd47 Remove old, unused Video.cpp var/code:
. g_VideoForceFullRedraw
. VideoApparentlyDirty()
2017-02-17 15:37:37 +00:00
tomcw
a6bfe4cfe9 1.26.1.1: Fix #382 - CTRL+RESET not re-init'ing correct 40/80 text rendering routine when in mixed mode 2017-02-17 14:55:04 +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
1bb60026a5 Debugger - Fix #345: wrap and protect debugger's video mode 2016-11-06 14:23:23 +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
a58f990ab8 Fix PrintScreen for Color TV and B&W TV (fix #356) 2016-10-11 21:52:11 +01:00
tomcw
ef9bb822fa Bump to 1.26.0.5: Restore the y-shift for TV Color + TV B&W 2016-10-06 22:23:06 +01:00
tomcw
3e51f2f02f Extend quick fix for #341 (ANSI STORY - end credits) 2016-10-02 22:22:10 +01:00
tomcw
63789e525a Quick fix for #341 (alignment of NTSC Monitor/TV video modes) 2016-10-01 15:24:20 +01:00
tomcw
5f0ccfc75c Added new function NTSC_VideoRedrawWholeScreen() to fix #352 2016-09-25 10:42:14 +01:00
tomcw
30160583cb For full-speed: update every 16ms of real-time (close #351) 2016-09-22 22:34:16 +01:00
tomcw
f559deddc3 Fix for flickery/bad video updates when MODE_RUNNING and full-speed (broken in previous 09fa6cc) 2016-09-17 21:26:45 +01:00
tomcw
09fa6ccef5 Fixed #342 2016-09-16 23:05:39 +01:00
tomcw
31ba57b7c7 Debug logging: add log message for time from boot until first key read (for AZTEC.DSK).
+ Remove an unused var.
2016-09-06 21:38:00 +01:00
tomcw
20ed6607e5 Prepare for RC:
. Removed title screen's "NTSC alpha v18" text
. Updated History.txt
. Updated Help html files
2016-09-05 22:36:24 +01:00
tomcw
af196ac8ae Tidy-up for full-screen vars 2016-07-26 22:33:45 +01:00
tomcw
3cf54e6fa3 Calculate full-screen scale using borderless dimensions & allow more than 2x scale 2016-07-25 21:19:00 +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
66e468db65 Merged in Nick's new native resolution full-screen
- old 640x480 full-screen deprecated

Fixes for:
. Logo & Debug window scaled/positioned correctly
. Buttons & disk activity (on RHS) drawn in correct position
. Crosshairs for mouse (and when using mouse as joystick)drawn in correct position
2016-07-12 22:43:31 +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
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