Commit Graph

227 Commits

Author SHA1 Message Date
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
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
2db3c6b318 PreAlpha: v12, revert VideoBenchmark() to call VideoRefreshScreen(0) 2015-01-03 11:44:06 -08:00
michaelangel007
801fa4db03 don't call unused VideoEndOfVideoFrame, directly call VideoRefreshScreen(0) 2015-01-03 11:42:00 -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
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
a09c64e5f5 Add Alpha Watermark so we can track bugs 2015-01-02 12:23:28 -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
de00db9cf8 Debugger: Fixed view output Double Lo-Res and Double Hi-Res 2015-01-01 22:47:55 -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
88b1b493e4 Set 40/80 Char Set if not Apple ][ 2015-01-01 22:03:34 -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
e07d80898f Fix Ctrl-F6 2x zoom 2015-01-01 17:19:49 -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
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
28cd63fc84 Fix: 50% Half Scan Lines wasn't being applied on intial setup 2015-01-01 09:59:09 -08:00
michaelangel007
581bb332fe Debugger 2.8.0.9b: BLOAD now recognizes the extensions .hgr or .hgr2 to load to $2000, or $4000 respectfully 2014-12-31 19:38:36 -08:00
michaelangel007
1fc2c0f2b2 Remove most of the old unused Video rendering functions 2014-12-31 17:57:57 -08:00
michaelangel007
784fb5c62b Fix F9 video mode cycling works for monochrome modes 2014-12-31 17:57:02 -08:00
michaelangel007
2dedaf0158 NTSC: fix Debugger View Output commands: TEXT, HGR, etc 2014-12-31 17:15:36 -08:00
michaelangel007
e681c97c3b Added NTSC files to Solution 2014-12-31 14:53:55 -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
michaelangel007
3d80c45451 Fix mis-labled HGR_RED -> HGR_ORANGE 2014-12-14 14:55:19 -08:00
michaelangel007
a509cc511a Add: proper OPCODE_NOP enum 2014-12-11 10:00:51 -08:00
michaelangel007
03b43bf388 Bug #227 2.8.0.8 Fixed: Showing/hiding the address and/or opcodes will show long symbolic targets without overflowing into the register info pane
File: Debugger_Display.cpp
Func: DrawDisassemblyLine()
2014-12-11 10:00:02 -08:00
michaelangel007
d6002721e5 Fix Bug #251: ASC #:# with null byte doesn't mark up properly 2014-12-11 09:41:42 -08:00
michaelangel007
c2d6f5b026 Bug #239 : Debugger 2.8.0.6: Ctrl-Print Screen while the debugger is active will copy the debugger text to the clipboard 2014-12-01 22:01:08 -08:00
michaelangel007
4102fd91f9 DEBUG: 2.8.0.5: FIX: Bug #244 -- print warning about duplicate symbol's address(es) aliasing existing ones 2014-11-30 18:58:15 -08:00
michaelangel007
4e582b2431 Add: CHC_INFO, CHC_PATH 2014-11-30 18:39:04 -08:00
michaelangel007
ac56455f61 Cleanup: remove commented out broken long symbol table header description
FIX: Prevent buffer overflow in CmdSymbolsInfo()
2014-11-30 17:51:11 -08:00
michaelangel007
d5a58ef206 ADD: ConsoleColor_StringLength() to get the normal string length that doesn't count the escape/markup 2014-11-30 17:47:26 -08:00
michaelangel007
7345b017aa FIX: Bug #246 (Debugger) Memory (Changing Memory) command in CHM help files
- fixed EXITBENCH from being matched with 'E'
- fixed out of date documentation with MEB, MEW
2014-11-29 17:42:12 -08:00
michaelangel007
763b8172f0 DEBUGGER: Cleanup error message for invalid symbol table for: syminfo
(cherry picked from commit ca5002dfa3807f6b5fea33c14bd6ee5c9c879456)
2014-11-28 23:33:54 -08:00
michaelangel007
0910f05817 Cleanup - added note about CmdSymbolsLoad() zero args
(cherry picked from commit 9de7a1ca922046542cc998a04993012569e9fb54)
2014-11-28 23:33:36 -08:00
michaelangel007
6e5ff918c4 Cleanup: ParseSymbolTable() renamed arg to be more descriptive: pPathFileName
(cherry picked from commit 99a675b3b4b930071498b3ee1437f4d7d14594f4)
2014-11-28 23:33:25 -08:00
michaelangel007
d5c646a2bc Cleanup whitespace
(cherry picked from commit b5af168257f3f1fee19a314ed7d88c31bf345750)
2014-11-28 23:33:04 -08:00
TomCh
c04e934a27 Merge pull request #238 from AppleWin/memory_refactor
Mainly a tidy-up to remove old, unused code from memory.cpp.

Also:
* Disk][ now returning floating bus for I/O register reads (still a few todo's to check).
* Fixed #232 (mouse VBl IRQs were still occurring after card removed!)
2014-10-12 20:58:25 +01:00
tomcw
0e31e91e61 Disk configuration: Minor coding style tweaks & clean-up 2014-10-10 21:24:50 +01:00
pedgarcia
43b31c28db New disk selection interface
The Configuration Dialog -> Disks tab now has combos to show
insert/eject disks, as well as it now the images are automatically
swapped if you try to insert on one drive the image connected to the
other
The Apple logo was redone following the same-ish colour pattern but with
a more modern look.

(*) Updated based on first review:
- Removed bmp from this pull request (coming later)
- Corrected resource's constants values and deleted unused one
- Initializing variables in CPageDisk constructot
2014-10-01 19:18:46 -04:00
tomcw
970dd0044a Fix #232: Mouse was still generating VBl IRQs after being removed. 2014-09-29 22:43:15 +01:00
tomcw
8fac75322a Refactor: Removed unused vars from Memory.cpp. Also change Disk][ I/O regs to return floating bus. 2014-09-28 22:04:12 +01:00
tomcw
a2260510f3 Better support for GH issues #129 and #204 (x86 CPU core is no longer max'ed out). 2014-09-21 21:42:19 +01:00
tomcw
8098b84a0e Fix GH issue #188 (GDI object leak). Also refactored V_CreateLookup_Text() and V_CreateLookup_MonoText() to use common code. 2014-09-21 16:12:05 +01:00
tomcw
efd2e4405a Fix: 80-column video mode wasn't being detected as needing an update, when FLASH chars only existed in AUX text pages. 2014-09-15 22:47:50 +01:00
tomcw
8c019bcd35 More main-loop reduction & removal of redundant globals.
Fixed JoyUpdateButtonLatch() to debounce in 5mecs instead of 5secs!

SpkrToggle() was using redundant global ('cyclenum') when using the PC speaker.
. I reworked the code (as it looked out-of-date),
    but probably better to just remove all the PC speaker support.
2014-09-14 21:23:54 +01:00
tomcw
0db62489f9 Refactor: g_bVideoMode -> g_uVideoMode 2014-09-14 16:15:14 +01:00
tomcw
1f892a27d4 Simplified main-loop a bit more, and removed more globals from AppleWin.cpp 2014-09-14 16:12:55 +01:00
tomcw
bc45812f4e Simplified and moved main-loop video update logic into Video.cpp.
Removed complex case below for:
. VideoHasRefreshed(), 'anyupdates'
. VideoCheckPage()

Detailed notes below.

---

Video updates in ContinueExecution() loop:

'anyupdates' gets set if there were any page-flip(s) in last ~17030 cycles:
	anyupdates |= VideoHasRefreshed();
ie. VideoRefreshScreen() was called outside of this loop.

If there's been a call to VideoRefreshScreen() outside of this loop,
  and then the video framebuffer gets written to, ie. VideoApparentlyDirty() returns TRUE,
then don't call VideoRefreshScreen() from this loop for 3 frames.
(If a VideoRefreshScreen() is called outside of this loop then restart the 3 frame count.)

So..
 if the game is flipping, the VideoApparentlyDirty() will return FALSE (since game writes to other framebuffer).
 if the game is not flipping, then VideoHasRefreshed() will return FALSE (since no flips occur).

Therefore this complex case above probably only arises at a boundary eg. when the game is transitioning between these 2 modes,
and so if the emulator does the very occasional screen update in this main loop, it is of no consequence.

(I guess this extra logic was to throttle video updates on very old slow machines)

---

VideoCheckPage(BOOL bForce) was called twice in main-loop:

UnexpectedPage if g_bVideoDisplayPage2 != SW_PAGE2

Once each time through the loop (ie. every 1ms), with bForce=0
	if UnexpectedPage && >500ms since last flip then VideoRefreshScreen()

Once each video frame (ie. ~17030 cycles) when not flipping, with bForce=1
	if UnexpectedPage then VideoRefreshScreen()

Basically this was all about supporting FullSpeed mode, and limiting the calls to VideoRefreshScreen().
2014-09-13 22:22:27 +01:00
tomcw
d1dddbe813 1.25.0.3: Restore MIP_FF_FF_00_00 as memory init default (see GH Bug#225) 2014-09-08 22:25:29 +01:00
michaelangel007
95a2c855f4 Cleanup: remove dead comments in debugger_parser.cpp 2014-09-08 12:15:37 -07:00
michaelangel007
4b7f8aab3e Debugger 2.8.0.1 Fix #227 (Debugger)[1.25] AppleSoft symbol: COPY.FAC.TO.ARG.ROUNDED overflows into registers 2014-09-08 09:19:12 -07:00
michaelangel007
a49904a5f7 1.25RC2 Added note about MIP_FF_00_FULL_PAGE breaking Castle Wolfenstein -- no work-around yet except to use MIP_FF_FF_00_00 instead. 2014-09-07 18:29:47 -07:00
michaelangel007
ce2f0b75cb Fix: SetCurrentImageDir() to always make sure g_sCurrentDir has trailing backslash 2014-09-03 17:14:06 -07:00
michaelangel007
807fcce1ef 1.25.0.2 Fixed: F12 Snapshot_LoadState() -> Snapshot_SetFilename() not keeping trailing backslash on path 2014-09-02 08:48:46 -07:00
michaelangel007
0c06520dc5 Added note about g_sCurrentDir to use g_sDebugDir 2014-09-02 08:44:21 -07:00
michaelangel007
cf7de38720 2.7.0.36 Fixed: empty command was re-triggering previous command. Example: DW 6062, // test 2014-09-01 12:47:43 -07:00
michaelangel007
3a0d2697e4 Debugger 2.7.0.35
.35 Added: DW address -- round the length up to even number for convenience. Example: DW 6062 is equivalent to: DW 6062:6063
.34 Fixed: Unified auto-defined name: B_, W_, T_ for byte, word, or text respectively
2014-09-01 09:49:55 -07:00
michaelangel007
346a171310 1.25 RC1 fixed ASC ellipsis 2014-08-30 10:03:00 -07:00
michaelangel007
1b1009ee07 2.7.0.33 Fixed ASC range, DW range to auto-define T_#### and W_#### 2014-08-29 08:51:29 -07:00