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
Thomas Harte
de45536b5c
Elucidate a magic constant, add an extra constexpr.
2023-01-07 09:10:41 -05:00
Thomas Harte
ebc1264c2c
Create a common home for timing information.
2023-01-06 22:39:46 -05:00
Thomas Harte
4875148617
Fill in Mega Drive numbers.
2023-01-05 14:22:51 -05:00
Thomas Harte
7a82b76911
Ensure visibility of memset.
2023-01-05 13:21:03 -05:00
Thomas Harte
27d37f71ec
Generalise and better factor bit reversal and TMS drawing.
2023-01-05 13:18:10 -05:00
Thomas Harte
c4a5a9763e
Minor indentation improvement.
2023-01-02 15:04:50 -05:00
Thomas Harte
a9f97ac871
Fix nothing-to-do test.
2023-01-02 15:04:08 -05:00
Thomas Harte
475440dc70
Update ClockConverter for potential alternative clocks.
2023-01-02 14:59:36 -05:00
Thomas Harte
dc3f8f5e42
These are the three fetchers to implement.
...
They'll look fairly different from the TMS and SMS fetchers, I think, owing to the greater irregularity that comes with the smarter RAM accesses. I might need to play around for a while.
2023-01-01 22:44:06 -05:00
Thomas Harte
459ef39b08
constexpr
the TMS palette.
2023-01-01 22:34:07 -05:00
Thomas Harte
27812fd0e2
Separate fetchers into their own header.
2023-01-01 22:26:50 -05:00