Support these new cards in slots 3, 4 or 5; based on code from Lukazi.
- extend Configuration's Input prop sheet page.
- add save/load snapshot for both cards.
- add command line switch for alt controller type (for SNES MAX card).
Change to using Registry's 'Configuration\Slot 3' for slot 3 cards (Uthernet, 4Play & SNES MAX).
Update help doc.
Change to using Registry's 'Configuration\Slot n' for disk ii image pathnames (was 'Preferences').
Delete Registry's 'Configuration\Slot n' section each time there's a change of card.
Add same functionality to conf.ini.
LoadConfiguration(): load from the new Slot-n section (or otherwise the old legacy key).
Only update Registry's 'Starting Directory' for s6,d1.
Update help doc.
. NB. whenever switching back to non-full-screen, then it will restore the default desktop resolution.
. Allow -no-full-screen to be placed before -fs-height=<best|nnnn> (previously it only worked when placed afterwards)
* Make Uthernet settings behave like all other cards.
Fix as well the fact that the Uthernet interface would not be reapplied after a restart.
* Uthernet: use consistent types to reduce code complexity.
Use std::string everywhere.
. cmd-line (-swap-buttons) or GUI "Swap 0/1" now swaps buttons 0/1 for all devices
. ie. Open/Solid Apple keys, real joystick, mouse or Num Pad keys
+ update the docs
Improve WOZ support for WL and LOA (#930)
- After T$00,S$00 (for certain 4&4 encodings) randomly skip 1 bit-cell
- Remove the previous fix for WL/LOA which was affecting other titles
New class for SSI263 (2 instances per MB/Phasor card)
- support 2nd SSI263 at $Cn20 connected to 6522-A (at $Cn00)
Switch from one-shot phoneme playback to ring-buffer
Use a new dedicated ring-buffer (distinct from the AY8910 ring buffer)
Gets rid of: SSI263Thread, the 2 events, and the 64 voices
Support the 2-bit Duration b7:6 of phoneme register for both SC01 & SSI263 (to fix#929)
Updated save-state
Updated IRQ logging (output cycle & 6522 source)
This reduces the chances of incompatibility between gcc and vs.
99% is "const char *" literals.
1 case of a goto jumping over a variable declaration (but it is not needed).
. simplify the interface FrameBase to make it easier to implement it for different cases (remove HDC and make parameters more explicit)
. remove functions which are only called on a Win32Frame (in which case a cast is guaranteed to succeed)
. otherwise there is the risk that every FrameBase implementation wants to add its own variants.
. FrameBase::FrameRefreshStatus() simplify implementation: pass all flags explicitly
* Video / FrameBase: move arch specific code to FrameBase.
* Video::Initialize & SetFrameBuffer.
Ensure initialization and SetBuffer can only happen in the right order.
* Video: move virtual functions to FrameBase.
With these changes all the virtual functions are in FrameBase and Video gets closer to be (only) the Apple ][ Video device.
* Move a few more functions from Video to FrameBase (snapshot related)
Now, the inclusion is one way with Video *not* including FrameBase.
* FrameBase::VideoRefreshScreen move Video related code to Video.
And only leave management to FrameBase.
Here are a few changes to make 64-bit build possible.
The changes are mainly to use windows api in the correct way that works for both 32-bit and 64-bit builds.
* WinVideo: move some generic functions back to Video.
Introduce a new virtual function (VideoPresentScreen) to draw the video buffer to video memory.
* Move Win32Frame::VideoRedrawScreen() to FrameBase as it is generic.
* Fix GCC build.
1) do not fwd declare enums
2) include only base class header file IPropertySheet.
* DSInit(): make sure sound devices are cleaned before the 2nd call.
And use std::string to avoid need of memory management.
. class hierarchy: WinVideo IS_A Video (ie. WinVideo is a subclass of Video)
. GetVideo() singleton instance of WinVideo in AppleWin.cpp, exposed via Interface.h
. NB, the Microsoft SDK 7.1A doesn't contain dxguid.lib & ddraw.lib, so they are linked against these two dx libs that are already part of the AppleWin repo.
* Interface.h: ensure that functions in the interface are not exported by other header files.
This is generally harmless, except for the presence of default arguments, in which case the version with default arguments must come first.
To avoid the issue, these functions are only ever exported in the Interface.h header file.
This is not complete as header files from Windows/.. are still included in:
Keyboard.cpp
SerialComms.cpp
Joystick.cpp
But probably these are arch specific and will have to be completely reimplemented elsewhere.
. Do not include alarm.h as it is not needed.
The code in alarm.h is not complete: all the extern functions are missing and different linkers might complain about this.
. Do not redefine some windows.h types in VICE/types.h as it becomes harder to keep them consistent.
Biggest problem is DWORD_IS_LONG as the best way to define it in linux 64 bit is as an int. Prefer to use StdAfx.h.
1. Newer VC runtime stat(), when using 32-bit file size, returns error
if file size is >2G. For file existence check, using 64-bit file
size is more accurate as files bigger than 2G would be reported as
non-existing otherwise.
2. <sys/stat.h> is required for VS2013 or before.
. Split AppleWin -> Core with the functionality really needed by the emulator.
. Split AppleWin -> Utilities for generic code not called by other emulator components.
. Split AppleWin -> CmdLine for the command line option parsing.
Split MouseInterface to isolate DirectInput code.
Avoid overflow in platforms where RAND_MAX is a big integer constant.
Fix include files for gcc (where enums cannot be forward declared).
Fixed debugger main "data" window behaviour:
. When activating the main data display ("data" command) the cursor keys wouldn't work until the minidump ("md1") was also enabled. NB. The cursor keys should work in the main data window, independently of whether the minidump is active.
Whenever harddisks/disks are inserted (or removed) and *if path has changed* then:
. Then the internal save-state's path & filename will be updated to reflect the new defaults.
. LoadConfiguration(): Read the save-state pathname from Registry before harddisks/disks.
Also:
. CiderPress: only save pathname on OK.
. Refactored CPropertySheetHelper::BrowseToFile().
. Extended support for -d1,-d2,-h1, etc such that if the param is "", then it will eject/unplug the disk/harddisk.
And fix two general issues:
- confusing behavior when entering the builtin (mini) assembler mode,
- and also fixes the "cl" (clear flag) command - which was documented, but did not work at all (due to an "interesting" command/syntax conflict...).
Switched Mockingboard/6522 Timer interrupts & Mousecard's VBlank interrupt to use synchronous events.
This is a linked-list of ordered timer-based event, where only the head of the list needs updating after every opcode.