Thomas Harte
b514756272
Adds the option to run machines at a multiple of their real speeds.
...
Exposed to SDL users only, for now.
2020-01-26 13:25:23 -05:00
Thomas Harte
428d141bc9
Factors out the logic behind the Atari 2600's frequency switching.
2020-01-23 20:12:44 -05:00
Thomas Harte
beefb70f75
Adds vertical sync as something that can be run_until.
2020-01-22 22:20:56 -05:00
Thomas Harte
a71c5946f0
Ensures proper manipulation of scan_statuses, leading to the correct result out of a CRTMachine.
...
Possibly with the exception of the TMS, as I appear to have uncovered an unrelated issue there.
2020-01-21 22:28:25 -05:00
Thomas Harte
d97a073d1b
Adds the necessary routine for all machines to be able to respond to get_scan_status.
...
They all just as the CRT, as all are currently based on the CRT. Which doesn't currently know the total clock rate it would need to in order properly to scale the answer to the question. Further thought coming.
2020-01-20 21:45:10 -05:00
Thomas Harte
3c760e585a
Switches to accepting a bit mask of events to run_until.
2020-01-20 16:08:21 -05:00
Thomas Harte
cb61e84868
Starts building out higher-level run_until
functionality.
...
Specifically: you can now run until the next set of speaker samples has been delivered.
2020-01-20 12:12:23 -05:00
Thomas Harte
8349005c4b
Adds CRTMachine::run_until, which will run until a condition is true.
...
I want to get to being able to say "run until the beam is 60% of the way down", "run until a new packet of audio has been delivered", etc.
2020-01-19 23:52:47 -05:00
Thomas Harte
d97348dd38
Eliminates dangling uses of printf
.
2019-03-02 18:07:05 -05:00
Thomas Harte
64465f97b6
Starts towards reintroducing the proper mechanisms for selecting a display type at runtime.
2018-11-28 17:53:33 -08:00
Thomas Harte
8a699b6072
Kills setup_output
definitively, saving some indirection. set_scan_target
takes its place.
2018-11-14 21:52:57 -05:00
Thomas Harte
b40211d2c0
Starts to bend 'CRTMachine' to a world farther from owning the GPU relationship.
2018-11-03 21:54:25 -04:00
Thomas Harte
da4d883321
Adds first, incomplete attempts to talk to a ScanTarget from the CRT.
...
Does away with the hassle of `unsigned` while I'm here; that was a schoolboy error.
2018-11-03 19:58:44 -04:00
Thomas Harte
3862fdb44c
Simplifies initialisation procedure for all machines.
...
With the side effect of allowing every machine to try to load only the ROMs that it needs.
2018-07-10 20:00:46 -04:00
Thomas Harte
0b771ce61a
Removes all instances of the copyright symbol.
2018-05-13 15:19:52 -04:00
Thomas Harte
36e0cb29c0
Ensures proper propagation of video choice through the Oric.
2018-04-04 19:14:42 -04:00
Thomas Harte
33084899d0
Provides s-video as a command-line option.
2018-03-31 22:14:34 -04:00
Thomas Harte
2712702461
Makes get_clock_rate
protected. It's now an implementation detail.
2018-03-22 10:01:18 -04:00
Thomas Harte
da3d65c18f
Devolves time to cycle conversion to machines.
...
Thereby avoids a whole bunch of complicated machinations that would otherwise have been required of the multimachine.
2018-03-21 22:18:13 -04:00
Thomas Harte
4e720d57b2
With debugging hooks still on display, makes first attempt at dynamic analysis.
2018-02-01 07:53:52 -05:00
Thomas Harte
c12aaea747
Attempts to get as far as running the MultiMachine.
...
In doing so, fixes the long-standing bug that machines that output audio but don't have a listener produce a divide by zero.
2018-01-30 22:23:06 -05:00
Thomas Harte
ac80d10cd8
Separates the component parts of running an audio stream: task deferral, filtering and generation.
...
Walking towards improving opportunities for composition.
2017-12-17 21:26:06 -05:00
Thomas Harte
46e7c199b2
Corrects improper initialisation order of the Commodore .tap and CRTMachine::Machine.
2017-11-10 22:08:40 -05:00
Thomas Harte
f95515ae81
Eliminates a large number of instance of end-of-line tabs.
2017-11-07 22:51:06 -05:00
Thomas Harte
ddcdd07dd0
Modifies the Vic-20 and C1540 to bring them into the realm of self-ROM fetching.
...
Hence enables Vic-20 support within kiosk mode as currently drafted.
2017-11-07 21:19:51 -05:00
Thomas Harte
0116d7f071
Added a platform-neutral route for feeding ROMs to machines, in a platform-dependant fashion; implemented for the CPC.
2017-11-05 20:12:01 -05:00
Thomas Harte
9d953421d8
After a quick check, added a couple of other _delegate initialisations. I should probably find a way to template this.
2017-08-01 07:07:43 -04:00
Thomas Harte
763e3b65d1
Ensured a proper initial value for delegate_
.
2017-07-31 22:46:06 -04:00
Thomas Harte
4abd62e62b
Standardises on const [Half]Cycles
as the thing called and returned, rather than const [Half]Cycles &
as it's explicitly defined to be only one int
in size, so using a reference is overly weighty.
2017-07-27 22:05:29 -04:00
Thomas Harte
75d67ee770
Relocated ClockReceiver.hpp as it's a dependency for parts of the static analyser, and therefore needs to be distinct from the actual emulation parts.
2017-07-25 20:20:55 -04:00
Thomas Harte
2ff157cf7a
Switched CRTMachine over to use Cycles
as an explicit statement of units, and followed through on the effects of that.
2017-07-22 22:17:29 -04:00
Thomas Harte
d46da6ac9d
Added documentation.
2017-07-22 17:31:12 -04:00
Thomas Harte
40660fe680
Made yet another guess at Commodore analysis. Elevated fast tape-related unnatural speed up to the OS-side mechanisms.
2016-09-12 22:06:03 -04:00
Thomas Harte
d9016909ed
Added some wiring for PAL/NTSC mode switching on the Vic, making an attempt to simplify the whole loop of having different clock rates.
2016-08-14 13:33:20 -04:00
Thomas Harte
88964ceac0
Eliminated plain pointer passing for object types.
2016-07-04 19:33:55 -04:00
Thomas Harte
ed8f4d0476
Added some minor additional bits of documentation.
2016-06-30 08:46:29 -04:00
Thomas Harte
00a9f1bf24
Fixed best-effort updater actually to run, finally moved clock rate announcement into the C++ side of things, started working on a mechanism to allow clock rate to be updated.
2016-06-16 20:39:46 -04:00
Thomas Harte
5c4f35e13f
Finally started on generalising the C++ stuff so as to be able to be able to get a working audio binding on the OS-specific side without further repetition by factoring an appropriate protocol out from the Electron and sketching out the correct speaker class for the Atari. Added a method to ask it what a good output frequency would be.
2016-05-31 21:23:44 -04:00