Thomas Harte
e025674eb2
The MSX analyser is now smart enough not to be definitive when it's uncertain.
...
The cartridge type has also migrated to being a property of the cartridge, prefiguring my intention to discard the static analyser union.
2018-01-25 22:16:46 -05:00
Thomas Harte
db914d8c56
Removes redundant second configuration.
2018-01-25 18:50:23 -05:00
Thomas Harte
66faed4008
Gives MachineForTargets
complete responsibility for initial machine state.
2018-01-25 18:28:19 -05:00
Thomas Harte
11abc99ef8
Introduces the extra level of indirection necessary to make Analyser::Static::Target polymorphic.
2018-01-24 22:35:54 -05:00
Thomas Harte
21efb32b6f
Integrates the static and nascent dynamic analyser namespaces.
2018-01-24 21:48:44 -05:00
Thomas Harte
622a04aec8
Starts stripping the Mac port of its special machine knowledge.
...
Partly to force myself into moving that stuff into the cross-platform area, but mainly so that dynamic analysis can work equally from day one.
2018-01-24 20:14:15 -05:00
Thomas Harte
d360b2c62d
Standardises the static analyser on std::vector and slightly widens passageway to a machine.
...
The SDL target would now be fooled by a hypothetical multi-target, the Mac not yet.
2018-01-23 22:18:16 -05:00
Thomas Harte
d213341d9c
Introduces the counters upon which I expect dynamic analysis to rest.
2018-01-22 21:39:23 -05:00
Thomas Harte
c2f1306d85
Updates copyright year.
2018-01-18 21:11:30 -05:00
Thomas Harte
edb30b3c6c
Introduces an icon for the Mac.
...
About which I have yet to decide my full feelings.
2018-01-18 21:01:30 -05:00
Thomas Harte
46c76b9c07
Switches to using the boilerplate public.item for all macOS UTIs.
2018-01-17 22:01:38 -05:00
Thomas Harte
e13312dcc5
Removed stray new line.
2018-01-16 21:46:31 -05:00
Thomas Harte
0202c7afb2
Consolidates Mac presentation of composite video selection.
...
Moves handling of an RGB/composite into `MachinePanel`, eliminating the need for `ElectronOptionsPanel` and `OricOptionsPanel`; similarly merges the MSX and Electron options panels so as to provide television/monitor selection for the MSX.
2018-01-15 18:36:22 -05:00
Thomas Harte
def82cba49
Makes MSX tape parsing more tolerant to phase.
...
Also reintroduces proper file type association for TSX on the Mac.
2018-01-10 21:54:15 -05:00
Thomas Harte
4e124047c6
Introduces enough DMK support to progress to failure to parse a track.
2018-01-08 21:57:11 -05:00
Thomas Harte
513c067f94
Makes an attempt to rope in the WD1770 for MSX disk ROM emulation.
2018-01-07 19:12:52 -05:00
Thomas Harte
999a0c22d4
Adds superficial support for MSX .DSK.
...
In the sense that the file format itself is properly parsed, but the MSX doesn't actually yet have disk hardware.
2018-01-07 16:35:57 -05:00
Thomas Harte
2ffde4c3c2
Corrects SCC volume errors.
...
Which were leading to substantial overflow.
2018-01-07 09:59:00 -05:00
Thomas Harte
655b971976
Establishes that there is such as a thing as a Konami SCC.
...
Creates one, ensures it appears in memory when intended to, lets it handle reads and writes. It currently does nothing.
2018-01-06 20:15:55 -05:00
Thomas Harte
ed564cb810
Implements the main four cartridge banking schemes.
...
Slightly proof of concept for now.
2018-01-04 22:18:18 -05:00
Thomas Harte
c8367a017f
Cleans up test and makes attempt to factor in cartridge type popularity.
2018-01-01 21:21:05 -05:00
Thomas Harte
344a12566b
Tweaks a couple of expected cartridge types.
2018-01-01 20:14:56 -05:00
Thomas Harte
c07113ea95
Ensures no illegal accesses while testing MSX ROM type detection.
...
Specifically: the static analyser doesn't even correctly identify everything that is an MSX ROM yet, let alone then properly determine type.
2018-01-01 17:38:26 -05:00
Thomas Harte
bc2879c412
Corrects the MSX ROM unit test.
...
I.e. the test is correct now, for those SHAs I could find. The static analyser is still wrong just slightly less than half the time.
2018-01-01 17:35:13 -05:00
Thomas Harte
db25b4554b
Introduces failing tests of the MSX static analyser.
2018-01-01 16:38:26 -05:00
Thomas Harte
05b95ea2e0
Corrects Xcode tests.
2018-01-01 16:04:13 -05:00
Thomas Harte
1c255b9e7d
Generalises some of the disassembler, and provides Z80 logic to create a [first attempt at a] Z80 disassembler.
2017-12-31 18:49:35 -05:00
Thomas Harte
bf0601123b
Adds some document type UTIs.
...
Will need to survey all the other Mac emulators to get a complete list, I guess.
2017-12-30 13:36:29 -05:00
Thomas Harte
c18517be4b
Ensures that the fast loading option successfully flows from the Mac interface.
2017-12-29 19:07:22 -05:00
Thomas Harte
6a0bb83716
Corrects typos in the SDL main.
2017-12-29 18:40:32 -05:00
Thomas Harte
e349161a53
Rejigs the typing relationship so that use of a typer is not strongly implied by the interface.
...
Simultaneously implements typing on the MSX by direct insertion into the key buffer.
2017-12-29 18:30:46 -05:00
Thomas Harte
d5b1a9d918
Moves the typer functionality behind a functionality-based naming scheme, eliminates its C-style memory management.
2017-12-29 15:26:03 -05:00
Thomas Harte
c4950574ea
Introduces an attempted reimplementation of the MSX BIOS's two main tape reading entry points.
2017-12-26 22:19:37 -05:00
Thomas Harte
db6d9b59d0
Attempts to implement TSX support for the MSX.
2017-12-19 21:53:04 -05:00
Thomas Harte
2d892da225
Introduces the MSX keyboard toggle sample source.
...
In support of which, it also introduces a means of sample source composition.
2017-12-19 21:08:10 -05:00
Thomas Harte
2dc1d4443e
Separates LowpassFilter and SampleSource.
2017-12-18 21:39:23 -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
ec4c259695
Removes unused file.
2017-12-14 21:19:09 -05:00
Thomas Harte
aca7842ca4
Better documents and tidies the TMS9918.
2017-12-14 20:27:26 -05:00
Thomas Harte
57b060ac3c
Updates SConstruct for the incoming MSX changes.
2017-12-06 18:56:26 -08:00
Thomas Harte
ee44d671e7
Steps towards exposing the MSX in Cocoa builds.
2017-12-03 15:42:54 -05:00
Thomas Harte
54c845b6e2
Adds just enough logic to make every host key look like '0' to the MSX.
2017-11-29 22:07:30 -05:00
Thomas Harte
a14b53a9ab
Adds a TMS9918 skeleton plus enough in the MSX to get to a blank screen in SDL/kiosk mode.
2017-11-26 13:28:26 -05:00
Thomas Harte
68a2895753
Adds enough static analyser to get to the MSX itself as the point of failure in SDL/kiosk mode.
2017-11-25 13:18:24 -05:00
Thomas Harte
ae50ca9ab2
Moves the MSX class to the appropriate place and gives it a Z80.
2017-11-24 21:59:54 -05:00
Thomas Harte
6e4bde00d3
Merge branch 'master' into MSX
2017-11-24 21:50:38 -05:00
Thomas Harte
221c05ca76
Adapts the Mac port to use a Machine::DynamicMachine, thereby eliminating plenty of duplication.
2017-11-24 21:36:22 -05:00
Thomas Harte
ff21ff90eb
Introduces MSX ROMs and an MSX class.
2017-11-24 20:43:26 -05:00
Thomas Harte
c83b3cefbc
Eliminates the generalised special case selectors and ROM suppliers from the CPC, Vic-20, Electron and ZX80/81.
2017-11-24 17:55:28 -05:00
Thomas Harte
a8ac51da73
Eliminates the Oric's non-reflective inputs for selections, and the Oric-specific ROM setter.
2017-11-24 16:59:00 -05:00
Matt Godbolt
adea4711f1
Add a .gitignore file to ignore the built clksignal
binary
2017-11-24 12:12:48 -06:00
Thomas Harte
55e1d25966
Adds build instructions and references the special SDL key combinations.
2017-11-22 20:03:28 -05:00
Thomas Harte
c1b7bceec8
Switches to using the supply-on-demand audio route through SDL.
...
This gives an additional hook from which machine updates can be hooked, so separates that buffer size from any implicit frame rate assumptions.
2017-11-22 19:36:39 -05:00
Thomas Harte
dc4f58e40c
Hides the mouse cursor when in SDL fullscreen mode.
2017-11-21 21:52:32 -05:00
Thomas Harte
3365ff0200
Adds type recipient as a dynamic type, and accepts paste and fullscreen toggle in SDL.
2017-11-21 21:44:29 -05:00
Thomas Harte
d54ee2af82
Adds user-facing information about which ROMs a machine attempted to load if it fails.
2017-11-21 19:22:33 -05:00
Thomas Harte
c368c4443e
Improves both internal and external exposition for the SDL version.
2017-11-20 21:59:53 -05:00
Thomas Harte
7b25b03cd5
Formally standardises machine options and introduces a --help option for the SDL target.
2017-11-20 21:55:32 -05:00
Thomas Harte
29b5ccc767
Removes redundant logging on the Mac.
2017-11-19 18:05:39 -05:00
Thomas Harte
90af395df2
Adds support for receiving dragged and dropped files under SDL.
2017-11-19 18:05:31 -05:00
Thomas Harte
63381ff505
Fixes accidental typographic quote in SConstruct.
2017-11-18 21:13:55 -05:00
Thomas Harte
2ea050556b
Adds transcoding of ostensible list selections to Boolean selections, and vice versa.
2017-11-18 21:09:26 -05:00
Thomas Harte
d3e68914dd
Removes uninteresting logging.
2017-11-18 20:00:40 -05:00
Thomas Harte
073e439518
Adds a basic argument parser, allowing machine options to be set.
2017-11-18 19:34:38 -05:00
Thomas Harte
de9db724a7
Introduces Configurable::Device
and implements it for the Electron.
...
Configurable::Device covers devices that have user-facing configuration options, listing them and accepting them.
2017-11-17 23:02:00 -05:00
Thomas Harte
fc080c773f
Adds an explicit request for OpenGL 3.2.
2017-11-14 18:59:18 -05:00
Thomas Harte
a97c478a34
Adds some very basic logging to the SDL target.
2017-11-12 21:23:48 -05:00
Thomas Harte
980cf541d2
Attempts more cleanly to deal with window resizing in SDL.
2017-11-12 19:47:18 -05:00
Thomas Harte
70039d22f1
Allows a CRT machine owner to set the target frame buffer for OpenGL output, breaking the assumption that it'll be zero.
2017-11-12 19:29:22 -05:00
Thomas Harte
e6aa2321cd
Merge branch 'UnusedResults' of github.com:TomHarte/CLK into UnusedResults
2017-11-12 17:17:49 -05:00
Thomas Harte
c827d14d97
Corrects various GCC warnings across the 6560, CPC, TIA, Oric video and elsewhere.
2017-11-12 17:17:27 -05:00
Thomas Harte
2979d19621
Enables all warnings for the SDL build.
2017-11-12 16:46:10 -05:00
Thomas Harte
d6141cb020
Increases number of warnings in Xcode.
2017-11-12 16:37:39 -05:00
Thomas Harte
2e025d85eb
Added check in SDL main that the expected number of bytes is read.
2017-11-12 16:26:42 -05:00
Thomas Harte
2e15fab651
Doubles down on <cX> over <X.h> for C includes, and usage of the namespace for those types and functions.
2017-11-11 15:28:40 -05:00
Thomas Harte
ca80da7fbe
Merge branch 'SDLScons' of github.com:TomHarte/CLK into SDLScons
2017-11-10 23:17:05 -05:00
Thomas Harte
f853d87884
Switches SConstruct build file to producing an optimised result.
2017-11-10 23:16:05 -05:00
Thomas Harte
524087805f
Switches SConstruct build file to producing an optimised result.
2017-11-10 23:11:40 -05:00
Thomas Harte
153067c018
Adds missing files to SConstruct.
2017-11-10 21:56:15 -05:00
Thomas Harte
2203499215
Enables -Wreorder and corrects a few of the more trivial fixes thereby suggested.
2017-11-09 22:14:22 -05:00
Thomas Harte
c0055a5a5f
Further builds up SConstruct, correcting many missed imports and a couple of improper uses of C99 in C++ code.
2017-11-09 22:04:49 -05:00
Thomas Harte
c45d4831ec
Introduces an SConstruct file and corrects those errors and warnings that arise in Ubuntu.
2017-11-08 22:36:41 -05:00
Thomas Harte
6e1d69581c
Eliminates a variety of end-of-line spaces.
2017-11-07 22:54:22 -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
16c96b605a
Xcode 9.1 auto-change.
2017-11-07 22:43:25 -05:00
Thomas Harte
e10d369e53
Ensures that execution doesn't proceed if ROMs are missing.
2017-11-07 22:32:59 -05:00
Thomas Harte
0d1b63a8c5
Switches the Objective-C machine bindings to use the set_rom_fetcher path for supplying ROMs, simplifying and unifying.
2017-11-07 22:29:57 -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
d605022ea3
Moves output setup to after the machine has been configured as its target.
2017-11-06 22:13:38 -05:00
Thomas Harte
4b68c372c6
Adds a first attempt at audio via SDL.
2017-11-05 22:29:25 -05:00
Thomas Harte
13406fedd8
Explains commenting.
2017-11-05 21:29:20 -05:00
Thomas Harte
a209ae76ca
Adds keyboard input from SDL.
2017-11-05 21:16:14 -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
1e1efcdcb8
Pushes far enough along the path of having the SDL version do work that it becomes obvious I've never figured out the correct course of action if there is no sound output.
2017-11-05 12:49:28 -05:00
Thomas Harte
bc2f58e9de
Starts the process of adding an SDL-based 'kiosk' (i.e. TV UI, or even UI-less for now) mode.
...
Specifically, introduces to the Mac side of things an SDL target with, so far, enough logic to create a window and pump SDL's events, after having decided which machine and configuration it should use.
2017-11-04 19:36:46 -04:00
Thomas Harte
e983854e71
Converts all uint8_t
and uint16_t
casts to the functional style.
2017-10-21 21:50:53 -04:00
Thomas Harte
9e0907ee76
Completes clean-up of post-formalisation per-machine keyboard code.
...
At least for now. Standardising on how column + row is encoded might be helpful.
2017-10-21 10:52:35 -04:00
Thomas Harte
9ad4025138
Relocates things that were in Machines/ for machine usage.
...
Leaving only those things intended to be visible interface.
2017-10-21 10:30:02 -04:00
Thomas Harte
b2c1b83fcd
Consolidates Vic-20 keyboard code.
2017-10-19 22:27:30 -04:00
Thomas Harte
92d9805f09
Removes dead Objective-C protocol references.
2017-10-17 20:51:40 -04:00