Thomas Harte
3852e119aa
Adds test data for FM wave generation.
2020-04-20 19:33:03 -04:00
Thomas Harte
c54bbc5a04
Rename Table.h; LogSin -> LogSign and make it a bit more typer.
2020-04-19 13:33:17 -04:00
Thomas Harte
0aceddd088
Starts tidying up the OPL2.
...
This is as a precursor to switching to using the proper table lookups, which I hope will automatically fix my range issues.
2020-04-15 22:10:50 -04:00
Thomas Harte
a7e63b61eb
Just from printing numbers: corrects transition from attack to decay.
2020-04-15 00:26:01 -04:00
Thomas Harte
b0abc4f7bb
Implements enough wiring that the Master System will instantiate and talk to an OPLL.
2020-04-03 20:05:36 -04:00
Thomas Harte
dfc1c7d358
Separates 6502 State object to make it optional.
...
Also makes a few minor const improvements while I'm poking around.
2020-04-02 19:11:27 -04:00
Thomas Harte
f417fa82a4
Splits 'CRTMachine' into three parts: ScanProducer, AudioProducer, TimedMachine.
...
Simultaneously cleans up some of the naming conventions and tries to make things a bit more template-compatible.
2020-04-01 23:19:34 -04:00
Thomas Harte
5fd2be3c8e
Makes a genuine attempt at five and three decoding.
2020-03-25 20:50:26 -04:00
Thomas Harte
fcdc1bfbd0
Prints the CRC32(s) of any missing ROMs.
2020-03-23 20:00:13 -04:00
Thomas Harte
5edb0c0ee7
Adds animated fade-out to volume control. Bumps macOS version to 10.12.2.
2020-03-22 18:45:24 -04:00
Thomas Harte
442ce403f9
It's a bit jarring, but ensures volume control shows and hides according to mouse cursor.
2020-03-22 16:25:07 -04:00
Thomas Harte
7398cb44e2
Adds a functioning volume control for macOS, it just doesn't know how to hide yet.
2020-03-22 13:24:23 -04:00
Thomas Harte
15d54dfb4c
Adds 'volume' command-line parameter for kiosk mode.
2020-03-21 22:24:31 -04:00
Thomas Harte
0c689e85a5
Use screen number for spotting screen changes.
...
NSScreen implements Swift Equatable but doesn't seem officially to implement -isEqual:.
2020-03-21 17:01:57 -04:00
Thomas Harte
5a1bae8a9c
Ensures proper NSScreen comparison, and no never-ending setupDisplayLink loop on exit.
2020-03-20 23:00:16 -04:00
Thomas Harte
69277bbb27
Renames files to match project convention.
2020-03-19 23:24:06 -04:00
Thomas Harte
b8b335f67d
Exposes the Master System's region for SDL selection.
2020-03-19 21:46:42 -04:00
Thomas Harte
eef7868199
Ensures 'new' overrides default selection; doesn't try to propagate multiple files if machines won't take them.
2020-03-19 21:15:38 -04:00
Thomas Harte
c1b69fd091
Attempts to support multiple pieces of media on the SDL command line, ensures proper window titling.
2020-03-19 20:40:43 -04:00
Thomas Harte
b8ebdc012f
Ensure normative construction declaration ordering.
2020-03-19 18:58:36 -04:00
Thomas Harte
c6f35c9aac
Rejigs help output.
2020-03-18 23:11:25 -04:00
Thomas Harte
615ea2f573
Applies parsed arguments.
2020-03-18 22:31:32 -04:00
Thomas Harte
394ee61c78
Starts a switch to reflectable-style runtime options.
...
The Amstrad CPC and ZX80/81 have made the jump so far, subject to caveats. The macOS build is unlikely currently to work properly.
2020-03-16 23:25:05 -04:00
Thomas Harte
8e3bf0dbca
Starts moving towards a Deflectable-based system of runtime options.
2020-03-15 23:48:53 -04:00
Thomas Harte
2031a33edf
Technically SDL users can now start a new machine.
...
Missing though: all the old per-machine command-line options, and any control over the new one.
2020-03-15 21:50:43 -04:00
Thomas Harte
f9c8470b20
Ensure targets always nominate a machine.
2020-03-15 00:13:38 -04:00
Thomas Harte
cab4bead72
Promotes explicit specialisations to namespace scope.
2020-03-13 23:38:29 -04:00
Thomas Harte
52f644c4f1
Ensures that reflection is completely blind; starts adding SDL instantiation logic.
2020-03-12 20:56:02 -04:00
Thomas Harte
044a2b67e1
Beefs up documentation on this miniature sort-of reflection.
2020-03-11 23:03:05 -04:00
Thomas Harte
ce80825abb
Starts working towards a registration-based model of reflective enums.
2020-03-11 23:03:05 -04:00
Thomas Harte
5a8fcac4dc
Gives function overloading a try.
2020-03-11 23:03:05 -04:00
Thomas Harte
6a9b14f7d1
Adds a prototype reflective enum.
...
I need to make this scopeable before it is acceptable.
2020-03-11 23:03:05 -04:00
Thomas Harte
ead32fb6b2
Return to old behaviour if --logical-keyboard isn't specified.
...
This is at least until I'm more confident in the keypress/text input merging. Also, switches to a vector for intermediate keypresses, to ensure order is retained even if timestamps are absent.
2020-03-09 23:10:39 -04:00
Thomas Harte
58b8dfb929
Attempts to improve SDL key merging.
2020-03-05 21:56:26 -05:00
Thomas Harte
3758ec79ac
Adds potential test argument.
2020-03-03 23:09:22 -05:00
Thomas Harte
f08d500fd6
Attempts to factor out the latest keyboard logic and hook it in from SDL also.
2020-03-03 22:58:15 -05:00
Thomas Harte
2db30a91c6
'Corrects' but disables SDL logical keyboard entry.
...
I'm just not sure that SDL supports what I want.
2020-03-01 23:11:14 -05:00
Thomas Harte
a3569d7201
Corrects so as not to test header. Both Zexall and Zexdoc pass.
2020-02-27 22:09:56 -05:00
Thomas Harte
87474d5916
Corrects memptr behaviour of OUT (C), 0
.
2020-02-27 20:38:27 -05:00
Thomas Harte
cf7ab97451
Gets the first test to run (and terminate).
2020-02-22 18:42:23 -05:00
Thomas Harte
2370575eb5
Starts introducing the Patrik Rak tests.
2020-02-22 15:49:36 -05:00
Thomas Harte
01a883e669
Corrects fullscreen switch.
2020-02-16 19:07:13 -05:00
Thomas Harte
90856a0e7a
Adds mixdown/up capability to Speaker.
...
To deal with occasions when the host machine just always is either mono or stereo, and the emulated machine must cope.
2020-02-16 13:50:18 -05:00
Thomas Harte
e02d109864
Nudges the LowpassSpeaker towards supporting stereo generation.
2020-02-15 18:03:12 -05:00
Thomas Harte
49b8e771b5
Adds the messaging that would allow a Speaker to output stereo, semantically.
2020-02-15 13:40:19 -05:00
Thomas Harte
6147134423
Introduces frame locking for SDL.
2020-02-10 23:07:09 -05:00
Thomas Harte
0b0a7e241b
Factors out the stuff of time warping.
2020-02-09 22:11:06 -05:00
Thomas Harte
705d14259c
Experimentally switches to a 'high-resolution' clock for SDL.
2020-02-09 21:44:55 -05:00
Thomas Harte
c26c8992ae
Reintroduces joystick support; eliminates CSBestEffortUpdater.
2020-02-08 21:27:04 -05:00
Thomas Harte
b76a5870b3
Moves drawing into the next timer tick after retrace if sync locked.
...
... which should mean it occurs within 1/600th of a second of announced retrace, which I assume always will be less than the retrace period. So: does the frame buffer update during retrace.
This should completely eliminate tearing for machines that can be synced to the native output rate.
2020-02-08 18:07:13 -05:00