Thomas Harte
|
3101dc94a7
|
Merge pull request #98 from TomHarte/TIAImprovements
Reimplements the Atari TIA, as a discrete component
|
2017-02-26 15:14:59 -05:00 |
|
Thomas Harte
|
e6a84fd26b
|
Attempted a hardware-correct implementation of missile-to-player latching. This completes the last of the **knowing** inaccuracies. The rest are as-of-yet unwitting.
|
2017-02-26 15:12:31 -05:00 |
|
Thomas Harte
|
440467ea3e
|
Started communicating which copy is being requested.
|
2017-02-26 13:39:25 -05:00 |
|
Thomas Harte
|
98376de9ad
|
Started returning 'no effect' for pot ports, rather than doing nothing. Still very much TODO though.
|
2017-02-25 22:58:58 -05:00 |
|
Thomas Harte
|
e61e355251
|
Moved to the maximum possibly required queue length of 4. Though the emulated 2600 should never need more than 2 slots as per the current calling pattern, it's not a contractual guarantee.
|
2017-02-25 17:25:10 -05:00 |
|
Thomas Harte
|
c898c8a99e
|
Ensured the missiles and ball don't attempt to enqueue. Because I don't think they're supposed to.
|
2017-02-25 17:13:22 -05:00 |
|
Thomas Harte
|
8c9062857c
|
Added a single-slot queue for player objects to defer drawing, thereby deferring pixel lookup. Which I think is correct. Though more slots might be needed.
|
2017-02-25 17:10:24 -05:00 |
|
Thomas Harte
|
77ed4ddc05
|
Slightly simplified ready line release logic.
|
2017-02-23 21:08:32 -05:00 |
|
Thomas Harte
|
82f392fada
|
This should be the other way around. I want whichever is later.
|
2017-02-22 21:54:49 -05:00 |
|
Thomas Harte
|
2f0c923c29
|
Switched away from @synchronized as it appears possibly to be the lock used during -dealloc, creating deadlock with the CSAudioQueueDeallocLock.
|
2017-02-22 21:42:10 -05:00 |
|
Thomas Harte
|
8291a63d5f
|
Fixed loss of audio when switching to PAL.
|
2017-02-22 21:15:37 -05:00 |
|
Thomas Harte
|
4c947ad553
|
Attempted to resolve risk of an audio callback being in progress when -dealloc is received.
|
2017-02-22 21:12:59 -05:00 |
|
Thomas Harte
|
6120dae61a
|
While I'm using the hacky approach to player/missile synchronisation, I need to seed adder.
|
2017-02-22 07:39:11 -05:00 |
|
Thomas Harte
|
1d03793f22
|
Fixed potential race condition: ensure the queue is disposed of synchronously because otherwise there'll be a potential dangling reference to self.
|
2017-02-22 07:35:09 -05:00 |
|
Thomas Harte
|
4f5f191cd6
|
Fixed: will no longer attempt to output pixels from before the pixel part of a line on which sync was disabled abruptly.
|
2017-02-22 07:33:36 -05:00 |
|
Thomas Harte
|
21abf4e9fc
|
Enshrined a terminology switch, albeit without any flow change behind it.
|
2017-02-22 07:29:48 -05:00 |
|
Thomas Harte
|
144d6b70d9
|
Minor cleaning.
|
2017-02-22 07:14:30 -05:00 |
|
Thomas Harte
|
b769f22ca0
|
Switched back to the collision_buffer_ being part of the TIA object, added one more assert.
|
2017-02-21 22:26:20 -05:00 |
|
Thomas Harte
|
7019d396d0
|
Threw in some asserts, discovering a bug in missile positioning.
|
2017-02-21 22:04:27 -05:00 |
|
Thomas Harte
|
f4447fd9cd
|
Attempted to fix failure of sprites properly to wrap when performing motion.
|
2017-02-21 21:53:09 -05:00 |
|
Thomas Harte
|
36396b3d62
|
Made a slightly better, albeit still inaccurate, version of missile-player lock.Enough for Combat to do reasonable things.
|
2017-02-21 20:45:20 -05:00 |
|
Thomas Harte
|
d1dbf8c21f
|
Missile to player lock is supposed to be a toggle; also factored out the commonalities of missile and ball drawing.
|
2017-02-21 07:58:37 -05:00 |
|
Thomas Harte
|
1bde0fed6f
|
Simplified relationship between Objects and the usage-specific components through inheritance.
|
2017-02-21 07:37:20 -05:00 |
|
Thomas Harte
|
7ab2358bba
|
Made an attempt to reintroduce missiles.
|
2017-02-20 22:22:39 -05:00 |
|
Thomas Harte
|
99547181f1
|
Attempted to template this thing. Without yet a plan in place for pixel lookup timing.
|
2017-02-20 21:42:59 -05:00 |
|
Thomas Harte
|
2bf784535c
|
Simplified calllng.
|
2017-02-20 18:04:40 -05:00 |
|
Thomas Harte
|
57f434c199
|
Reorganised state, with an eye towards unifying object motion and triggers.
|
2017-02-20 17:58:28 -05:00 |
|
Thomas Harte
|
87afa9140e
|
Took some provision steps towards paging type autodetection and communication. But I think this is a distraction.
|
2017-02-20 17:44:36 -05:00 |
|
Thomas Harte
|
d19f26887d
|
Performed a very naive shuffling of output builder sets onto the OpenGL queue. Which makes the frequency switcher work properly from it's possibly-contextless thread.
|
2017-02-20 10:39:31 -05:00 |
|
Thomas Harte
|
6cb95b4fc5
|
Switched to passing around std::string s rather than char * s, because they should be easier to capture.
|
2017-02-20 10:35:33 -05:00 |
|
Thomas Harte
|
d979a822ac
|
Introduced a deferred task list for the OpenGL thread.
|
2017-02-19 21:46:07 -05:00 |
|
Thomas Harte
|
fccdce65b9
|
Switched to lock guards.
|
2017-02-19 21:45:28 -05:00 |
|
Thomas Harte
|
99a35266e1
|
Attempted to bring frequency-switching logic into the cross-platform realm. Which for now creates an issue with the OpenGL context.
|
2017-02-19 21:20:37 -05:00 |
|
Thomas Harte
|
51bcaea60c
|
Disabled incorrect 'optimisations'.
|
2017-02-19 12:00:04 -05:00 |
|
Thomas Harte
|
e00339ef0a
|
Attempted to reintroduce the ball.
|
2017-02-19 08:02:54 -05:00 |
|
Thomas Harte
|
53cd125712
|
Added stub calls to draw the missiles and ball.
|
2017-02-19 07:28:24 -05:00 |
|
Thomas Harte
|
04693b067c
|
Fixed failure of the optimised route to pump the pixel clock; removed optimisation entirely for now.
|
2017-02-18 21:36:48 -05:00 |
|
Thomas Harte
|
cd7876a746
|
Reintroduced the extra clocking delay.
|
2017-02-18 20:18:50 -05:00 |
|
Thomas Harte
|
ed5ff49ef5
|
Fixed vertical delay, retreated from my previous thought about adding the one extra cycle of sprite delay, at least temporarily.
|
2017-02-16 20:52:01 -05:00 |
|
Thomas Harte
|
8d502a0b03
|
Decided not to run before I can walk and switched to storing the motion time and next step explicitly per object.
|
2017-02-16 20:28:37 -05:00 |
|
Thomas Harte
|
5ea232310f
|
Added a check against negative runs.
|
2017-02-16 18:55:58 -05:00 |
|
Thomas Harte
|
09309aa74f
|
Attempted to prevent extraneous moves.
|
2017-02-16 18:52:39 -05:00 |
|
Thomas Harte
|
b5357860b9
|
Made an attempt to split things apart so as to be able to introduce the proper sprite latency.
|
2017-02-14 20:56:16 -05:00 |
|
Thomas Harte
|
dd17459687
|
Added my first failing test: delay is incorrect when resetting outside of the play area.
|
2017-02-12 20:42:49 -05:00 |
|
Thomas Harte
|
cd90118a0f
|
Added two, extraordinarily simple tests.
|
2017-02-12 20:32:53 -05:00 |
|
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 |
|