Thomas Harte
|
9debed25e8
|
Fix meaning of 'origin'.
|
2023-02-25 08:53:00 -06:00 |
|
Thomas Harte
|
1bdf9a50e6
|
Take a shot at Mode 2 sprite output.
|
2023-02-25 08:48:16 -06:00 |
|
Thomas Harte
|
2592dfd78f
|
Pile on the TODOs.
|
2023-02-21 22:33:47 -05:00 |
|
Thomas Harte
|
ef5d05db53
|
Scale down new-mode coordinates; add note to self.
|
2023-02-21 22:28:39 -05:00 |
|
Thomas Harte
|
6a2cda7074
|
Pull out and partially generalise sprite output.
This also provides the intended route to supporting Mode 2.
|
2023-02-21 22:00:00 -05:00 |
|
Thomas Harte
|
62d381065e
|
Change 9938 identification number.
|
2023-02-21 19:35:11 -05:00 |
|
Thomas Harte
|
091c1b0f45
|
Correct sprite attribute and colour table addresses.
|
2023-02-21 19:34:26 -05:00 |
|
Thomas Harte
|
a28b5bdeea
|
Only on the Sega are line interrupts disabled by a read of S#0.
|
2023-02-20 23:43:23 -05:00 |
|
Thomas Harte
|
2e45422b03
|
Make a further attempt at sprite colour.
|
2023-02-20 22:39:34 -05:00 |
|
Thomas Harte
|
3606f5befe
|
Add expansion RAM to command engine, as far as it goes.
|
2023-02-20 22:32:36 -05:00 |
|
Thomas Harte
|
44ac948bb2
|
Add expansion RAM, albeit not yet into the command engine.
|
2023-02-20 22:27:30 -05:00 |
|
Thomas Harte
|
4bac782121
|
One final (?) time with colour.
|
2023-02-19 22:15:59 -05:00 |
|
Thomas Harte
|
318109b7d5
|
Try again with colour.
|
2023-02-19 22:14:18 -05:00 |
|
Thomas Harte
|
6990ba9242
|
Fetch colour from before attribute table.
|
2023-02-19 22:10:22 -05:00 |
|
Thomas Harte
|
54be424159
|
Include sprite index in SpriteY event.
|
2023-02-19 22:04:38 -05:00 |
|
Thomas Harte
|
8d900cf636
|
Attempt a full collection of Mode 2 sprite properties.
|
2023-02-19 21:52:10 -05:00 |
|
Thomas Harte
|
6db939f48f
|
Create a dedicated sprite fetcher.
|
2023-02-19 21:37:24 -05:00 |
|
Thomas Harte
|
5eae11434a
|
Sprite mode 2: select sprites, fetch locations and names.
|
2023-02-18 22:56:05 -05:00 |
|
Thomas Harte
|
7aa8728b39
|
Reimagine G3 for sprite mode 2.
|
2023-02-18 21:50:12 -05:00 |
|
Thomas Harte
|
270c5dfe85
|
Eliminate data_block_ entirely.
|
2023-02-18 21:41:22 -05:00 |
|
Thomas Harte
|
d6e4f12fdc
|
Merge DataBlock and Pattern.
|
2023-02-18 21:34:09 -05:00 |
|
Thomas Harte
|
4e3e4806b9
|
Eliminate assert; events have overtaken this.
|
2023-02-17 23:01:42 -05:00 |
|
Thomas Harte
|
ebc596820e
|
Obtain the background graphics, at least, for G3.
|
2023-02-17 22:47:15 -05:00 |
|
Thomas Harte
|
b62e899039
|
Avoid need for shortcuts.
|
2023-02-17 22:34:52 -05:00 |
|
Thomas Harte
|
a123ef151c
|
Eliminate further magic ORs.
|
2023-02-17 22:31:21 -05:00 |
|
Thomas Harte
|
5b31db700b
|
Deduplicate 40-column text fetching.
|
2023-02-17 22:23:10 -05:00 |
|
Thomas Harte
|
8af0a2313c
|
Formally distinguish fetchers and sequencing.
|
2023-02-17 22:20:38 -05:00 |
|
Thomas Harte
|
88eaa4ff02
|
[Mostly] avoid magic address constants; avoid duplication of TMS fetching logic.
|
2023-02-17 21:59:39 -05:00 |
|
Thomas Harte
|
c140f370fe
|
Attempt to copy and paste my way to working type-1 sprites.
|
2023-02-16 22:46:19 -05:00 |
|
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
|
6b85ee9607
|
Months seem to start at 1; also fix seeded year for MSX.
|
2023-01-23 22:52:26 -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 |
|