Thomas Harte
|
023da1970a
|
Label all character events with IDs.
|
2023-02-16 22:21:24 -05:00 |
|
Thomas Harte
|
211e145230
|
Make room for an ID field on Event.
|
2023-02-16 22:10:16 -05:00 |
|
Thomas Harte
|
bbccc5d6d6
|
Route other holdover TMS modes through the Yamaha logic.
|
2023-02-16 22:07:18 -05:00 |
|
Thomas Harte
|
dbfc9a14aa
|
Introduce SMS fetcher, eliminating all macros.
|
2023-02-16 22:01:20 -05:00 |
|
Thomas Harte
|
9630a1bc39
|
Use a fetcher for character modes.
|
2023-02-16 13:15:18 -05:00 |
|
Thomas Harte
|
3847c9c281
|
Add missing underscore.
|
2023-02-15 21:22:51 -05:00 |
|
Thomas Harte
|
3f2a5929a3
|
Consolidate text output and support blinking; add sprites-enabled flag.
|
2023-02-15 20:18:56 -05:00 |
|
Thomas Harte
|
9b71f42375
|
Collect colours.
|
2023-02-14 21:18:10 -05:00 |
|
Thomas Harte
|
9c43776392
|
Fix 80-column address generation.
|
2023-02-14 21:14:35 -05:00 |
|
Thomas Harte
|
35a0a1447e
|
Further clarify different usages of storage.
|
2023-02-14 20:23:17 -05:00 |
|
Thomas Harte
|
bf0ed2813c
|
Make faulty attempt at 80-column text.
|
2023-02-14 20:13:51 -05:00 |
|
Thomas Harte
|
5c7367b262
|
Route Yamaha 40-column text mode appropriately.
|
2023-02-13 22:24:39 -05:00 |
|
Thomas Harte
|
c1457cc5e0
|
Attempt text mode data collection.
|
2023-02-13 22:20:47 -05:00 |
|
Thomas Harte
|
169d7a7418
|
Fix[/revert]: the fetch pointer should be _ahead_.
|
2023-02-13 21:10:14 -05:00 |
|
Thomas Harte
|
5143960970
|
Add notes to self on how to collect text.
|
2023-02-13 21:09:31 -05:00 |
|
Thomas Harte
|
40894964bc
|
Move VerticalState to live with ScreenMode and FetchMode.
|
2023-02-13 09:54:29 -05:00 |
|
Thomas Harte
|
927e61484f
|
Map all events lists appropriately.
|
2023-02-12 23:02:51 -05:00 |
|
Thomas Harte
|
dce04e7219
|
Add a generator for character modes.
|
2023-02-12 22:54:08 -05:00 |
|
Thomas Harte
|
f5814b4c75
|
Add text-mode events list.
|
2023-02-12 22:45:11 -05:00 |
|
Thomas Harte
|
815a75d9b6
|
Extend generator to handle sprite collection.
|
2023-02-12 22:28:34 -05:00 |
|
Thomas Harte
|
4ad84e5047
|
Use generator for no-sprite events list.
|
2023-02-12 22:12:23 -05:00 |
|
Thomas Harte
|
8665dca7f0
|
Permit generator-based event-table generation.
|
2023-02-12 21:58:50 -05:00 |
|
Thomas Harte
|
41d57e03a6
|
Split out LineBuffer and Storage to make 9918Base more manageable.
|
2023-02-12 12:58:46 -05:00 |
|
Thomas Harte
|
914a9e0c84
|
Yamaha: don't touch address at all unless a RAM access.
|
2023-02-11 22:43:29 -05:00 |
|
Thomas Harte
|
8768ee1504
|
Merge branch 'MSX2' of github.com:TomHarte/CLK into MSX2
|
2023-02-11 22:40:03 -05:00 |
|
Thomas Harte
|
8e6c36bb15
|
Yamaha: don't part-modify address.
|
2023-02-11 10:35:42 -05:00 |
|
Thomas Harte
|
c6401f0444
|
Add TODO.
|
2023-02-07 22:28:18 -05:00 |
|
Thomas Harte
|
3c3efe3e22
|
Don't be so fussy.
|
2023-02-06 22:16:42 -05:00 |
|
Thomas Harte
|
7028bdd05d
|
Limit to 14 bits in old modes.
|
2023-02-06 22:16:31 -05:00 |
|
Thomas Harte
|
7cb51c021b
|
Observation: offset is needed only ephemerally.
|
2023-02-06 21:45:35 -05:00 |
|
Thomas Harte
|
a3df106f92
|
Reset write phase only upon traditional register accesses.
|
2023-02-06 20:32:24 -05:00 |
|
Thomas Harte
|
b538407386
|
Introduce separate state for palette entries.
|
2023-02-06 19:12:02 -05:00 |
|
Thomas Harte
|
c04d292c8e
|
Make this more obviously correct, albeit arbitrarily.
Comparing just a single bit would do.
|
2023-02-05 22:53:08 -05:00 |
|
Thomas Harte
|
f9c88fd598
|
Fix memory mask; mildly improve commentary.
|
2023-02-05 22:51:16 -05:00 |
|
Thomas Harte
|
7fcb1b29dd
|
Keep source within rectangle.
This gives something vaguely recognisable, sort of, for the test program I'm using.
|
2023-02-04 21:37:08 -05:00 |
|
Thomas Harte
|
6786e3e78c
|
Initialise to zero, for completeness.
|
2023-02-04 21:32:31 -05:00 |
|
Thomas Harte
|
67755c3811
|
Attempt [H/L]MMM.
|
2023-02-04 21:29:44 -05:00 |
|
Thomas Harte
|
c6372295c5
|
Complete ReadSourcePixel & ReadSourceByte paths.
|
2023-02-04 21:23:41 -05:00 |
|
Thomas Harte
|
a2786e6266
|
Invest Colour with its own logic, including potential emptiness.
|
2023-02-04 21:14:20 -05:00 |
|
Thomas Harte
|
a892523c09
|
Advance to the next breaking point.
|
2023-02-04 11:43:06 -05:00 |
|
Thomas Harte
|
ab595f5e8d
|
Merge branch 'MSX2' of github.com:TomHarte/CLK into MSX2
|
2023-02-04 11:02:10 -05:00 |
|
Thomas Harte
|
38950fe241
|
Sketch out remaining necessary @c AccessTypes.
|
2023-02-04 11:02:02 -05:00 |
|
Thomas Harte
|
46d009f27b
|
Add logical fill.
|
2023-02-04 10:31:41 -05:00 |
|
Thomas Harte
|
34722bae89
|
Start pivoting to a more natural expression of TMS patterns.
|
2023-02-03 23:06:27 -05:00 |
|
Thomas Harte
|
d41081c59f
|
Fix sections.
|
2023-02-02 21:55:00 -05:00 |
|
Thomas Harte
|
ec227ce021
|
Generalise rectangular operations.
|
2023-02-02 21:49:05 -05:00 |
|
Thomas Harte
|
83f6d1cda3
|
Prepare for source/destination operations.
|
2023-02-02 21:16:24 -05:00 |
|
Thomas Harte
|
6d315b4660
|
Switch to specifying number of bits, to reduce potential error.
|
2023-02-02 12:12:11 -05:00 |
|
Thomas Harte
|
debdad350d
|
Don't allow a disabled screen to interfere with Yamaha addressing.
|
2023-02-02 12:03:33 -05:00 |
|
Thomas Harte
|
0d4dc214fb
|
Merge branch 'MSX2' of github.com:TomHarte/CLK into MSX2
|
2023-02-02 11:38:45 -05:00 |
|
Thomas Harte
|
5d4c49c913
|
Attempt to enable high-speed fill.
|
2023-02-01 22:57:33 -05:00 |
|
Thomas Harte
|
8f5c7fcabc
|
Merge branch 'MSX2' of github.com:TomHarte/CLK into MSX2
|
2023-02-01 22:25:12 -05:00 |
|
Thomas Harte
|
115acf835e
|
Vertical state is actually tristate.
|
2023-02-01 22:25:00 -05:00 |
|
Thomas Harte
|
c0fec8db15
|
Clean up macro.
|
2023-02-01 15:05:21 -05:00 |
|
Thomas Harte
|
f0e70f18fd
|
Fix seeding of output_pointer_.
|
2023-02-01 14:59:42 -05:00 |
|
Thomas Harte
|
9d2841bf6a
|
Reenable full ram pointer capture. Thanks @PatrickvL !
|
2023-02-01 14:55:33 -05:00 |
|
Thomas Harte
|
4cc34fd557
|
Resolve GCC complaint.
|
2023-02-01 14:28:19 -05:00 |
|
Thomas Harte
|
3636383b1f
|
Silence abstract/non-virtual-destructor warning.
|
2023-02-01 14:20:11 -05:00 |
|
Thomas Harte
|
1264600bab
|
Shorten long lines.
|
2023-02-01 14:18:36 -05:00 |
|
Thomas Harte
|
002d27d9c2
|
Resolve various type conversion errors, and reduce duplication.
|
2023-02-01 14:17:49 -05:00 |
|
Thomas Harte
|
90e8ce3253
|
Fix lines.
TODO: determine whether I really need `location` as distinct from `.destination`.
|
2023-01-31 21:33:57 -05:00 |
|
Thomas Harte
|
a315384e30
|
Provide context for byte-by-byte commands.
|
2023-01-31 21:29:55 -05:00 |
|
Thomas Harte
|
c5c722ae56
|
Generalise axis steps; begin HMMV.
|
2023-01-31 13:35:39 -05:00 |
|
Thomas Harte
|
872b9e5021
|
Predict Yamaha horizontal retrace interrupts.
|
2023-01-30 21:33:47 -05:00 |
|
Thomas Harte
|
492a170b20
|
Implement much of Yamaha line interrupts.
|
2023-01-30 21:24:53 -05:00 |
|
Thomas Harte
|
30a2b1611f
|
Merge branch 'MSX2' of github.com:TomHarte/CLK into MSX2
|
2023-01-30 21:06:23 -05:00 |
|
Thomas Harte
|
29af5542f8
|
Make an effort at doing _something_ for G4.
|
2023-01-30 21:06:04 -05:00 |
|
Thomas Harte
|
bc4c54800e
|
Type out just a little of status register 1.
|
2023-01-30 20:20:33 -05:00 |
|
Thomas Harte
|
8f20cb93e9
|
Note missed status accesses.
|
2023-01-29 21:20:50 -05:00 |
|
Thomas Harte
|
73e79b14ea
|
Use Yamaha palette pervasively.
|
2023-01-29 21:17:00 -05:00 |
|
Thomas Harte
|
3142f5c21d
|
Be overt about what replaces LineMode.
|
2023-01-29 21:04:15 -05:00 |
|
Thomas Harte
|
6d7f189ce7
|
Attempt the full panoply of logical pixel modes, across all graphics modes.
|
2023-01-29 18:28:49 -05:00 |
|
Thomas Harte
|
a91a5b8d07
|
Refer to actual field.
|
2023-01-29 18:02:09 -05:00 |
|
Thomas Harte
|
4cdcd3ac7d
|
Retain logical operation, take colour combination outside the loop.
|
2023-01-29 13:29:19 -05:00 |
|
Thomas Harte
|
0576451102
|
Be overt about colour direction.
|
2023-01-29 13:22:56 -05:00 |
|
Thomas Harte
|
3f12a28f4f
|
Locate first pixel correctly.
|
2023-01-28 22:50:04 -05:00 |
|
Thomas Harte
|
41ba883fb6
|
Honour direction, start transfer immediately.
|
2023-01-28 22:47:27 -05:00 |
|
Thomas Harte
|
1e646eb57b
|
Improve transfer flag for LMMC.
|
2023-01-28 21:45:05 -05:00 |
|
Thomas Harte
|
2d6afe1013
|
Reduce repetition, tidy slightly.
|
2023-01-28 21:43:14 -05:00 |
|
Thomas Harte
|
d3c446d91b
|
Take a shot at LMMC.
|
2023-01-28 21:30:45 -05:00 |
|
Thomas Harte
|
975ead5d01
|
Edge towards not assuming graphics mode. Much more to do here.
|
2023-01-28 13:54:26 -05:00 |
|
Thomas Harte
|
c6cda7c401
|
Switch to absolute placement of deferred events; properly serialise commands.
|
2023-01-28 11:55:12 -05:00 |
|
Thomas Harte
|
7e69e33ec2
|
Use paletted Yamaha border colour.
|
2023-01-27 22:42:02 -05:00 |
|
Thomas Harte
|
95e00dd958
|
Take slightly wrong-headed steps towards proper command timing.
|
2023-01-27 22:20:36 -05:00 |
|
Thomas Harte
|
8a673a697b
|
Further adapt internal terminology.
|
2023-01-27 12:30:09 -05:00 |
|
Thomas Harte
|
75ad4cdb67
|
Fix line semantics.
|
2023-01-27 11:57:40 -05:00 |
|
Thomas Harte
|
d42b6df570
|
Retain extra pattern name address bits.
|
2023-01-27 06:44:11 -05:00 |
|
Thomas Harte
|
81b00c6d97
|
Add notes.
|
2023-01-26 22:25:10 -05:00 |
|
Thomas Harte
|
1e5f751bc0
|
Require STOP in order to stop.
|
2023-01-26 22:08:36 -05:00 |
|
Thomas Harte
|
9a65fffe16
|
That's PSET, not POINT.
|
2023-01-26 22:02:40 -05:00 |
|
Thomas Harte
|
515fa22bfe
|
Implement point.
|
2023-01-26 21:52:41 -05:00 |
|
Thomas Harte
|
66ac089cc2
|
Deallocate.
|
2023-01-26 21:49:32 -05:00 |
|
Thomas Harte
|
5d5098acb2
|
Hack in vertical scrolling.
|
2023-01-26 21:38:51 -05:00 |
|
Thomas Harte
|
1bf8406e7e
|
Correct deserialisation order.
|
2023-01-26 21:34:56 -05:00 |
|
Thomas Harte
|
75acbd2d6c
|
A quick hack shows some part of the MSX logo.
|
2023-01-26 21:31:49 -05:00 |
|
Thomas Harte
|
baa6f9b3cd
|
Implements the Command side of the line command.
|
2023-01-26 21:17:11 -05:00 |
|
Thomas Harte
|
1c6a0ad3f7
|
Clean up repetition.
|
2023-01-26 19:51:56 -05:00 |
|
Thomas Harte
|
fbfa26ad5e
|
Minor steps towards implementing Line .
|
2023-01-26 12:55:08 -05:00 |
|
Thomas Harte
|
b12fd00145
|
Generate an appropriate instance for line drawing.
|
2023-01-26 12:09:06 -05:00 |
|
Thomas Harte
|
0c8815d6a0
|
Retain command-engine context.
|
2023-01-26 11:59:27 -05:00 |
|
Thomas Harte
|
700470915a
|
Add pixel serialisation for Yamaha graphics mode 5.
|
2023-01-24 23:07:29 -05:00 |
|
Thomas Harte
|
f8b42d4107
|
While being lazy with types, implement 4/5/6/7 fetching.
|
2023-01-24 13:15:00 -05:00 |
|
Thomas Harte
|
63bd0f918d
|
Be overt about buffer target and vertical position.
|
2023-01-24 12:46:09 -05:00 |
|
Thomas Harte
|
445b34933a
|
Edge further towards actual fetching.
|
2023-01-23 23:19:04 -05:00 |
|
Thomas Harte
|
bbd8b011ba
|
Remove temporarily-faulty check.
|
2023-01-23 22:52:03 -05:00 |
|
Thomas Harte
|
15fbf4cb7f
|
Ensure Yamaha-style refresh is used in all modes.
|
2023-01-23 22:39:34 -05:00 |
|
Thomas Harte
|
7293f9dc10
|
Remove extraneous brackets, add comment to self.
|
2023-01-23 22:25:56 -05:00 |
|
Thomas Harte
|
8567c934b1
|
Ensure Yamaha refresh program is used.
|
2023-01-22 22:11:01 -05:00 |
|
Thomas Harte
|
2744a9b6b0
|
Tidy up.
|
2023-01-22 22:02:39 -05:00 |
|
Thomas Harte
|
91047e5b3a
|
Start attempting to use table-based Yamaha fetch.
|
2023-01-22 22:00:28 -05:00 |
|
Thomas Harte
|
c6dd7d4726
|
Transcribe no-sprite event list.
|
2023-01-22 20:19:21 -05:00 |
|
Thomas Harte
|
b7d80f5ed1
|
Copy in some notes, expand line buffer.
|
2023-01-21 23:04:48 -05:00 |
|
Thomas Harte
|
a5765abbad
|
Route into the Yamaha fetcher.
Albeit that it doesn't yet fetch.
|
2023-01-21 22:47:16 -05:00 |
|
Thomas Harte
|
696ec12516
|
Add address rotation for applicable modes.
|
2023-01-21 22:33:26 -05:00 |
|
Thomas Harte
|
c9734df65c
|
Implement extended colour, sprite and RAM pointers.
|
2023-01-21 20:45:23 -05:00 |
|
Thomas Harte
|
13e490e7d7
|
Log selected screen mode.
|
2023-01-21 14:48:55 -05:00 |
|
Thomas Harte
|
cefcc1d443
|
Expand Yamaha graphics mode recognition.
|
2023-01-21 14:35:26 -05:00 |
|
Thomas Harte
|
d1f929e6f7
|
Just do a multiply and divide. Easy.
|
2023-01-21 14:19:52 -05:00 |
|
Thomas Harte
|
e289e6e757
|
Catch and map Yamaha palette entries.
It's one less thing in the uncaptured log.
|
2023-01-21 14:12:46 -05:00 |
|
Thomas Harte
|
a726c9d97a
|
Enable indirect register writes.
|
2023-01-20 23:14:57 -05:00 |
|
Thomas Harte
|
c77e7c268f
|
1 = disable, 0 = enable.
|
2023-01-20 23:08:41 -05:00 |
|
Thomas Harte
|
9c57bfd58d
|
Attempt to log dropped indirect writes.
|
2023-01-20 23:07:14 -05:00 |
|
Thomas Harte
|
4efda108c6
|
Transcribe the Yamaha 9938 register meanings.
|
2023-01-20 23:00:33 -05:00 |
|
Thomas Harte
|
191cf4829b
|
Attempt real blank reporting.
|
2023-01-20 22:29:49 -05:00 |
|
Thomas Harte
|
9b7a925816
|
Give clearer names to the two pointers.
|
2023-01-20 20:29:15 -05:00 |
|
Thomas Harte
|
392b0acb58
|
Pull everything out of master_system_ struct.
Now that it's inherently collected in the relevant `Storage`.
|
2023-01-19 15:09:16 -05:00 |
|
Thomas Harte
|
4b7606894e
|
Move Master System state, and start simplifying.
|
2023-01-19 14:09:31 -05:00 |
|
Thomas Harte
|
1fb94d15ab
|
No need for this-> ugliness in Base methods.
|
2023-01-19 12:32:42 -05:00 |
|
Thomas Harte
|
348c42bdea
|
Start trying to bluff my way through extended status.
|
2023-01-18 22:23:19 -05:00 |
|
Thomas Harte
|
e450e53c4e
|
Temporarily copy and paste my way to further logging.
|
2023-01-18 14:59:30 -05:00 |
|
Thomas Harte
|
355ee7fbc7
|
Adjust factoring of read and write per expanded V9938 scope.
|
2023-01-18 12:36:57 -05:00 |
|
Thomas Harte
|
4d96122884
|
Eliminate hard-coded assumption of 16kb.
Clearly I'll have to do something else to support 128k+, probably move the ram pointer?
|
2023-01-10 12:38:19 -05:00 |
|
Thomas Harte
|
f1f16d1f9a
|
Clarify and simplify half_cycles_before_internal_cycles.
|
2023-01-09 22:55:46 -05:00 |
|
Thomas Harte
|
fd14829992
|
Avoid hand-writing all the various conversions.
|
2023-01-09 22:34:56 -05:00 |
|
Thomas Harte
|
c0fe88a5bb
|
Apply clock conversion to existing usages of do_external_slot.
|
2023-01-09 13:54:49 -05:00 |
|
Thomas Harte
|
4d9d684618
|
Add TODO on dangling hard-coded conversion.
|
2023-01-08 21:44:25 -05:00 |
|
Thomas Harte
|
a0a835cf10
|
Export memory size into traits.
|
2023-01-08 21:37:20 -05:00 |
|
Thomas Harte
|
ef67205ce8
|
Set pixel count per mode.
|
2023-01-08 21:31:00 -05:00 |
|
Thomas Harte
|
794adf470b
|
Break assumption that cycles = pixels; fix pixel clocking.
|
2023-01-08 21:25:22 -05:00 |
|
Thomas Harte
|
8cc20844a9
|
Clock convert for draw_ calls.
|
2023-01-08 17:31:08 -05:00 |
|
Thomas Harte
|
b522d65c50
|
Fix border lengths.
|
2023-01-08 17:04:19 -05:00 |
|
Thomas Harte
|
cb19c2ffb0
|
Honour internal-clocked timing constants.
|
2023-01-08 14:10:06 -05:00 |
|
Thomas Harte
|
5f6ddf8557
|
Avoid expressing the same thing at different clock rates.
|
2023-01-08 13:58:12 -05:00 |
|
Thomas Harte
|
72e0bfecc1
|
Edge towards clock-independent line composition.
|
2023-01-07 14:57:32 -05:00 |
|
Thomas Harte
|
cdf547ac82
|
Decline to provide synthetic text mode timing on the Mega Drive.
|
2023-01-07 14:37:06 -05:00 |
|
Thomas Harte
|
dd5b4b484a
|
Avoid double responsibility for state.
|
2023-01-07 14:34:33 -05:00 |
|
Thomas Harte
|
56831e02fc
|
Expand fixed timing constants.
|
2023-01-07 13:10:51 -05:00 |
|
Thomas Harte
|
5d2d3944ef
|
Make VRAM access delay a timing property.
|
2023-01-07 12:48:43 -05:00 |
|
Thomas Harte
|
f9e21df701
|
Avoid further hard-coded 342s.
|
2023-01-07 09:13:34 -05:00 |
|
Thomas Harte
|
bb436204f6
|
Merge branch 'VDPs' of github.com:TomHarte/CLK into VDPs
|
2023-01-07 09:10:50 -05:00 |
|