Thomas Harte
|
25776de59d
|
I think unit testing this thing is the only way forwards. Started adding appropriate hooks.
|
2017-02-12 19:55:02 -05:00 |
|
Thomas Harte
|
600bdc9af7
|
In C++, I think the implicit cast to bool negates the need for any manual collapsing?
|
2017-02-12 18:18:35 -05:00 |
|
Thomas Harte
|
0c9be2b09e
|
Shunted the collisions buffer onto a separate area of the heap for the time being, as a debugging aid. Also added a few more initial values.
|
2017-02-12 18:16:50 -05:00 |
|
Thomas Harte
|
df8a5cbe6d
|
Made attempts (i) to respect the delay flag; and (ii) to account for border-region sprite clocking.
|
2017-02-12 17:35:09 -05:00 |
|
Thomas Harte
|
9ce68c38ae
|
Made an effort to implement proper pixel output for sprites.
|
2017-02-12 14:01:50 -05:00 |
|
Thomas Harte
|
40954d6a2a
|
Attempted to factor out parts I expect to reuse for missiles and the ball.
|
2017-02-12 11:31:17 -05:00 |
|
Thomas Harte
|
ac444a3f34
|
Corrected both position increments and target time calculation.
|
2017-02-11 21:24:14 -05:00 |
|
Thomas Harte
|
b8abeced6d
|
Made an attempt to introduce the proper eventful loop for player output. With debugging yet to occur.
|
2017-02-11 21:01:58 -05:00 |
|
Thomas Harte
|
aeff59addc
|
Implemented motion 'correctly', for programs written to do all work outside of the pixel area.
|
2017-02-11 20:25:49 -05:00 |
|
Thomas Harte
|
7ab6023a0c
|
Ensured no attempt to call strcmp on null if a file name without an extension got into here.
|
2017-02-11 13:36:36 -05:00 |
|
Thomas Harte
|
97cdfea9e9
|
Resolved spurious static analyser complaint: input_size and output_size aren't supposed to have defined values if input or output is null. But whatever.
|
2017-02-11 13:36:09 -05:00 |
|
Thomas Harte
|
aff69dbc34
|
Resolved spurious static analyser issue; screen mode will always be 0–6 but it doesn't know that. Setting a non-zero divider doesn't feel worth worrying about for a cleaner compile.
|
2017-02-11 13:35:22 -05:00 |
|
Thomas Harte
|
6381e4e1b0
|
All that's happened to position is that numbers have been added to it. So it can't be negative, given that it wasn't before. So a regular modulo will do.
|
2017-02-11 13:34:36 -05:00 |
|
Thomas Harte
|
c8e595d9aa
|
Merge branch 'master' into TIAImprovements
|
2017-02-11 13:20:52 -05:00 |
|
Thomas Harte
|
8c88fd4261
|
Merge pull request #99 from TomHarte/StartupRace
Resolves a race condition on machine startup
|
2017-02-11 13:18:19 -05:00 |
|
Thomas Harte
|
a86a6367b5
|
Slightly shuffled to avoid a race condition on the best-effort updater.
|
2017-02-11 13:17:11 -05:00 |
|
Thomas Harte
|
905ed1f87b
|
Switched to the more natural type, which is also signed, making my logic less prone to error.
|
2017-02-11 13:16:53 -05:00 |
|
Thomas Harte
|
8de6caf6ff
|
Started trying to get into a proper structure here. Chickened out.
|
2017-02-11 12:59:13 -05:00 |
|
Thomas Harte
|
327c19a222
|
Slightly shuffled to avoid a race condition on the best-effort updater.
|
2017-02-11 12:58:47 -05:00 |
|
Thomas Harte
|
40d3f5f7f6
|
Attempted properly to respect start .
|
2017-02-11 08:26:09 -05:00 |
|
Thomas Harte
|
64d5712d1d
|
Added an incorrectly-coded version of horizontal move, at least so that I can verify that information is going into the correct slots.
|
2017-02-10 07:23:43 -05:00 |
|
Thomas Harte
|
3b20d862f0
|
Made an initial attempt to mark sprite positions. But without hmove implemented, they're all over the place.
|
2017-02-09 20:53:42 -05:00 |
|
Thomas Harte
|
2e9ef2b0ef
|
Took a shot at reinstating the horizontal blank extend flag.
|
2017-02-09 18:37:19 -05:00 |
|
Thomas Harte
|
70745286a5
|
Ensured this array is properly aligned for the uin32_t accesses I intend to make for background drawing.
|
2017-02-08 20:25:23 -05:00 |
|
Thomas Harte
|
dcb7584060
|
Added the four-cycle playfield output latency and ensured you can't get smaller-than-usual pixels by rapid register value changing.
|
2017-02-08 07:30:32 -05:00 |
|
Thomas Harte
|
a477499724
|
Got a bit more explicit with range returned by get_cycles_until_horizontal_blank and hence attempted a more thorough (/correct) version of WSYNC.
|
2017-02-07 22:14:45 -05:00 |
|
Thomas Harte
|
944d835eea
|
Switched explicitly to an accumulation model for filling the collision buffer.
|
2017-02-06 21:59:28 -05:00 |
|
Thomas Harte
|
8f5039130c
|
Changed index naming order to ensure no out-of-bounds accesses.
|
2017-02-06 21:48:41 -05:00 |
|
Thomas Harte
|
ba165bb70a
|
Made an attempt properly to populate collision registers from the collision buffer.
|
2017-02-06 21:15:55 -05:00 |
|
Thomas Harte
|
474e2e8d2c
|
Fixed once again to respect mid-line palette changes.
|
2017-02-06 20:09:12 -05:00 |
|
Thomas Harte
|
8b8eb787df
|
Fixed complete invisibility.
|
2017-02-06 18:42:58 -05:00 |
|
Thomas Harte
|
66bcdd36f3
|
Made an attempt to introduce an intermediate buffer that ends up with a bit mask of all graphical components present on it, and to use that to infer collision flags and colours, based on playfield priority and colour palette. Immediately yielding: a blank screen. Good work!
|
2017-02-06 18:29:00 -05:00 |
|
Thomas Harte
|
fcf8cafb5d
|
Sought to ensure that communicating a colour burst in multiple parts doesn't ruin the phase.
|
2017-02-06 18:27:44 -05:00 |
|
Thomas Harte
|
6bcf95042c
|
Started trying to be a bit more explicit about usage, and to divide up drawing responsibility.
|
2017-02-05 17:51:56 -05:00 |
|
Thomas Harte
|
23f3ccd77a
|
Made a further attempt to prevent overwrites.
|
2017-02-05 17:47:34 -05:00 |
|
Thomas Harte
|
f2437cb257
|
Added some additional documentation, started making steps towards returning sprites, fixed a counter bug that would exhibit as incorrect sync.
|
2017-01-31 20:30:32 -05:00 |
|
Thomas Harte
|
abe04334c2
|
Attempted to retain more player information, and removed the output cursor from class storage as I think it's acceptable as a temporary.
|
2017-01-30 22:42:27 -05:00 |
|
Thomas Harte
|
8545707b54
|
Reinstituted the playfield. Probably needs more buffering though. Time to look into delays.
|
2017-01-30 21:38:58 -05:00 |
|
Thomas Harte
|
2b08758b2b
|
Started capturing playfield/ball and background colours.
|
2017-01-30 08:08:03 -05:00 |
|
Thomas Harte
|
764b528891
|
Made a first attempt at switching to a model that respects blank and sync.
|
2017-01-30 07:19:19 -05:00 |
|
Thomas Harte
|
92754ace7a
|
Some mild fixes get me up to having a rolling screen of vertical lines. Which is what I was hoping for right now!
|
2017-01-29 22:16:23 -05:00 |
|
Thomas Harte
|
1cc13b2799
|
Merge branch 'master' into TIAImprovements
|
2017-01-29 16:13:46 -05:00 |
|
Thomas Harte
|
38f944bc34
|
This needs to be a memmove as the areas may overlap.
|
2017-01-29 16:13:33 -05:00 |
|
Thomas Harte
|
427175b9c0
|
Added an extra flag to avoid potential race condition on is_full_, being reset from the background despite a write area not having been allocated.
|
2017-01-29 16:13:28 -05:00 |
|
Thomas Harte
|
ebde955356
|
This needs to be a memmove as the areas may overlap.
|
2017-01-29 16:12:48 -05:00 |
|
Thomas Harte
|
7fd02e7f4c
|
Added an extra flag to avoid potential race condition on is_full_, being reset from the background despite a write area not having been allocated.
|
2017-01-29 16:11:29 -05:00 |
|
Thomas Harte
|
d51f185dc7
|
Made an attempt to reintroduce the basic horizontal loop.
|
2017-01-29 15:43:57 -05:00 |
|
Thomas Harte
|
2390358c24
|
Prevented unbounded CPU usage, albeit without yet deciding who has authority for the clock rate.
|
2017-01-29 14:19:26 -05:00 |
|
Thomas Harte
|
2432a3b4d7
|
Fixed condition — >= is smarter.
|
2017-01-29 14:00:01 -05:00 |
|
Thomas Harte
|
9c3597c7e3
|
Attempted to reintroduce enough logic to handle [most of] line timing, such that WSYNC works. Initial objective is to get back to having a working background.
|
2017-01-29 13:47:36 -05:00 |
|