Thomas Harte
|
404873fe58
|
Started sketching out infrastructure for Vic-20 support.
|
2016-06-04 21:43:50 -04:00 |
|
Thomas Harte
|
604862b20b
|
Fixed playfield/missile and playfield/ball collisions.
|
2016-06-02 22:36:52 -04:00 |
|
Thomas Harte
|
e3b95b8d2b
|
Back to asynchronous updates and drawing, to try to improve guarantees on audio latency; experimenting with whether other parts of the approach are fundamentally flawed; added a broad-phase for scheduled updates on the 2600.
|
2016-06-02 21:22:55 -04:00 |
|
Thomas Harte
|
11073daee1
|
Issues appear to be around timing generally. Working on it.
|
2016-06-02 20:15:48 -04:00 |
|
Thomas Harte
|
7aac306a12
|
Quick fix to the polynomials.
|
2016-06-02 19:56:02 -04:00 |
|
Thomas Harte
|
253e5a4203
|
With no regard to performance whatsoever, endeavoured to bring sound to the 2600. It's very scratchy, so something is wrong.
|
2016-06-02 19:50:16 -04:00 |
|
Thomas Harte
|
1e0fcbbee8
|
Made a very basic stab at a couple of the tone generators, added straight-through path for the speaker when input rate exactly equals output rate.
|
2016-06-01 19:53:16 -04:00 |
|
Thomas Harte
|
40c4544fb7
|
Got the basic sound pipeline pumping, just enough for static-level audio seemingly to work. Berzerk VE says "intruder alert, intruder alert", anyway.
|
2016-06-01 19:27:04 -04:00 |
|
Thomas Harte
|
8dc66167be
|
Made an attempt to consolidate the Objective-C++ side of things based on the incoming CRTMachine::Machine .
|
2016-05-31 22:16:20 -04:00 |
|
Thomas Harte
|
5c4f35e13f
|
Finally started on generalising the C++ stuff so as to be able to be able to get a working audio binding on the OS-specific side without further repetition by factoring an appropriate protocol out from the Electron and sketching out the correct speaker class for the Atari. Added a method to ask it what a good output frequency would be.
|
2016-05-31 21:23:44 -04:00 |
|
Thomas Harte
|
3fc80ea01f
|
Rethought, hopefully perfecting, sprite timing.
|
2016-05-30 19:56:36 -04:00 |
|
Thomas Harte
|
8b342f77a9
|
Made an attempt further to rationalise timing.
|
2016-05-27 21:51:27 -04:00 |
|
Thomas Harte
|
91d3453cc1
|
Switched to looking backwards rather than forwards.
|
2016-05-27 14:33:08 -04:00 |
|
Thomas Harte
|
106ddae907
|
Sprites are still a pixel off but better; made some attempt to move things outside of the loop.
|
2016-05-25 21:43:19 -04:00 |
|
Thomas Harte
|
40c2c0bd2d
|
Minor simplifications and improvements. Still trying to figure out what's causing the non-linear edge addressing.
|
2016-05-25 21:12:25 -04:00 |
|
Thomas Harte
|
b01b474e36
|
I'm back to thinking that resets are deferred but pixel counts are live.
|
2016-05-25 07:32:25 -04:00 |
|
Thomas Harte
|
758806f924
|
Introduced a separate queue for pixels, which may or may not be correct.
|
2016-05-24 21:39:57 -04:00 |
|
Thomas Harte
|
0b081831a9
|
Set up a pipeline for all pixels that attempts to allow for appropriate delays.
|
2016-05-24 07:58:26 -04:00 |
|
Thomas Harte
|
5c1e594937
|
Realised there's a clocking delay on starting horizontal move. Which fixes Coke Zero.
|
2016-05-22 21:45:40 -04:00 |
|
Thomas Harte
|
c3e719c4ab
|
Added missile-to-player offsetting. Completing the list of graphics-related TODOs.
|
2016-05-22 17:01:56 -04:00 |
|
Thomas Harte
|
4c6d4d899d
|
Ensured that resetting the horizontal timer affects phase.
|
2016-05-22 16:29:53 -04:00 |
|
Thomas Harte
|
df93d7849d
|
Re-enabled the ball.
|
2016-05-22 14:38:14 -04:00 |
|
Thomas Harte
|
0242924fb4
|
Various bits of caveman debugging appearing and disappearing, switched to latching ball behaviour.
|
2016-05-22 14:26:02 -04:00 |
|
Thomas Harte
|
5e220562e4
|
Actually, the four-clock delay, with palette taking effect immediately, appears to be correct. So back to the drawing board on that.
|
2016-05-21 21:44:54 -04:00 |
|
Thomas Harte
|
4eded9b9d0
|
Re-enabled collisions.
|
2016-05-21 13:05:36 -04:00 |
|
Thomas Harte
|
b1c84f5402
|
Counters run every scan line regardless of blank and sync. Also played further with timing.
|
2016-05-21 12:54:39 -04:00 |
|
Thomas Harte
|
470c90428a
|
Switched to two-register implementation of VDELP, etc.
|
2016-05-21 10:26:27 -04:00 |
|
Thomas Harte
|
36d19cb6cf
|
Made an attempt at properly pumping timers during hmove.
|
2016-05-21 10:18:15 -04:00 |
|
Thomas Harte
|
a952813036
|
Fixed missile sizes, played about with ball placement.
|
2016-05-19 18:30:17 -04:00 |
|
Thomas Harte
|
cf5b8ab92e
|
This is now approximately back to where it was on Cosmic Ark.
|
2016-05-19 08:30:10 -04:00 |
|
Thomas Harte
|
40600b4bcb
|
Made sprite placement consistent at least. Not necessarily yet correct.
|
2016-05-18 22:07:24 -04:00 |
|
Thomas Harte
|
e61392d3fb
|
Fixed incorrect duplication.
|
2016-05-18 21:50:28 -04:00 |
|
Thomas Harte
|
8c7ce1ec3f
|
Attempted to fix sprite sizing and, again, missile repetition.
|
2016-05-18 21:41:25 -04:00 |
|
Thomas Harte
|
d013d46337
|
Fixed object motion decoding and checking of the repeat mask for missile graphics.
|
2016-05-18 21:36:28 -04:00 |
|
Thomas Harte
|
83ed6a82cf
|
Fixed: asserting vertical blank doesn't affect underlying timing.
|
2016-05-18 18:49:40 -04:00 |
|
Thomas Harte
|
877c55b5c5
|
Threw in missiles. To 'complete' graphics output. Or, rather, to move me on to debugging.
|
2016-05-18 07:54:44 -04:00 |
|
Thomas Harte
|
354143a78c
|
Reintroduced an attempt to plot sprites.
|
2016-05-18 07:51:25 -04:00 |
|
Thomas Harte
|
0b99649b0f
|
Had a first shot at triggering player and missile resets.
|
2016-05-18 07:31:05 -04:00 |
|
Thomas Harte
|
b8708b805c
|
The vertical blank flag now works again.
|
2016-05-17 22:02:57 -04:00 |
|
Thomas Harte
|
a1e63e8320
|
Attempted to generalise on pixel counter storage, at least. Further adjusted background timing but I'm still not sure.
|
2016-05-17 21:41:32 -04:00 |
|
Thomas Harte
|
ad6f405483
|
Fixed: was off by one on pixels, allowing four extra pixel output cycles per line.
|
2016-05-17 19:02:32 -04:00 |
|
Thomas Harte
|
c96674b341
|
Made genuine first approximate attempt at hmove.
|
2016-05-17 18:35:40 -04:00 |
|
Thomas Harte
|
d170bb14e6
|
Extended scheduling plans, inserted initial events for hmove, albeit not yet implemented.
|
2016-05-17 18:21:49 -04:00 |
|
Thomas Harte
|
6a961c4d28
|
Added something of the ball counter, but without yet a working HMOVE it's prone to error.
|
2016-05-17 07:18:14 -04:00 |
|
Thomas Harte
|
7d3cf76576
|
Generalised slightly, to allow events to be queued up to eight cycles in advance; most importantly each event gets to pick its own delay.
|
2016-05-17 07:09:18 -04:00 |
|
Thomas Harte
|
3d003070b3
|
Made an attempt better to generalise the idea of things with 4 CLK delays.
|
2016-05-16 21:54:27 -04:00 |
|
Thomas Harte
|
4ad074fc78
|
Introduced a four-cycle delay between playfield fetch and display, curing Yar's Revenge. Also disabled barrel roll scanling colouring again. I really need to make my mind up on that.
|
2016-05-16 19:55:56 -04:00 |
|
Thomas Harte
|
f19ed2e8f8
|
Started merely attempting to reintroduce the background layer.
|
2016-05-16 19:04:13 -04:00 |
|
Thomas Harte
|
9d92ad659f
|
Established the basic timing loop, albeit without clocking delays yet.
|
2016-05-16 08:01:29 -04:00 |
|
Thomas Harte
|
cca53598d3
|
Made another run at 2600 colours.
|
2016-05-14 16:52:24 -04:00 |
|
Thomas Harte
|
8d52765f40
|
Realised why new shaders weren't taking. Very negligibly decreased Atari drawing cost.
|
2016-05-12 22:22:24 -04:00 |
|
Thomas Harte
|
6d65bc9b3a
|
Permitted a wider error window on vertical sync, tidied things up a little and started trying to move towards full implementation of the OpenGL contract.
|
2016-05-11 22:11:01 -04:00 |
|
Thomas Harte
|
4b3c4082d2
|
These functions appear correctly to model the NTSC and PAL palettes; the CRT's attempt to switch function doesn't work properly yet though.
|
2016-05-11 21:07:18 -04:00 |
|
Thomas Harte
|
5a4262d74e
|
Confirmed: it is inaccurate for a 6502 to self reset at power up. So that responsibility now rests in the machines.
|
2016-05-10 21:05:52 -04:00 |
|
Thomas Harte
|
1142c86811
|
Slightly simplified conditional.
|
2016-05-07 18:38:51 -04:00 |
|
Thomas Harte
|
bf9917707e
|
Merge branch 'master' into Glitches
|
2016-05-05 08:31:40 -04:00 |
|
Thomas Harte
|
fea32869b0
|
Implemented what I now believe to be the real paging logic.
|
2016-05-05 08:28:06 -04:00 |
|
Thomas Harte
|
87df57195d
|
Started on an attempt not to treat the various buffers as free to loop within, starting with the input texture.
|
2016-05-04 07:39:45 -04:00 |
|
Thomas Harte
|
3af97d4069
|
Eliminated redundant variable.
|
2016-04-26 19:57:05 -04:00 |
|
Thomas Harte
|
6c567d166a
|
Fixed colour burst acceptance, switched to an integral single byte streaming of Atari colours.
|
2016-04-25 20:56:15 -04:00 |
|
Thomas Harte
|
9b64f64db7
|
Attempted to normalise some style decisions.`
|
2016-04-24 22:32:24 -04:00 |
|
Thomas Harte
|
7a8d100861
|
Found a new working formula for NTSC Atari 2600 colours.
|
2016-04-24 22:02:00 -04:00 |
|
Thomas Harte
|
d221c712b0
|
Ensured GL context is active when destructing CRTOpenGL.
|
2016-04-24 20:34:25 -04:00 |
|
Thomas Harte
|
db908a7547
|
Adjusted Atari to using its non-standard line lengths.
|
2016-04-24 19:23:30 -04:00 |
|
Thomas Harte
|
9260d97b03
|
Oh, of course, it's that the output vertex array doesn't get initialised unless there's an RGB shader program. Silly oversight. Fixed. And switched back to TV output for correct colours.
|
2016-04-24 17:56:36 -04:00 |
|
Thomas Harte
|
d0f9a6c2f5
|
Added a dump-the-input default RGB output shader. Which at least proves that the Atari 2600 is generally still working.
|
2016-04-24 17:35:25 -04:00 |
|
Thomas Harte
|
80a3169674
|
Started reviving the Atari 2600 emulation. Put new startup sequence into place.
|
2016-04-24 06:56:08 -04:00 |
|
Thomas Harte
|
ae2760e034
|
Colour phase is now updated and varies per line.
|
2016-04-21 21:07:29 -04:00 |
|
Thomas Harte
|
7aa87723a9
|
Added: key states are all cleared if the window loses focus. Which resolves sticky key issues. Allowing me just to use command+option+O for options and map both command and option as FUNC.
|
2016-04-19 21:29:10 -04:00 |
|
Thomas Harte
|
66f2c10c04
|
Resolved potential crash if tape requests are made without one inserted. Softened glFinish to glFlush, though I'm still not sure I should strictly need even that.
|
2016-04-19 21:00:48 -04:00 |
|
Thomas Harte
|
3d53f157de
|
Output selection now takes effect. So I can stop accidentally committing changes back and forth.
|
2016-04-18 08:27:58 -04:00 |
|
Thomas Harte
|
94f148e212
|
Wired in options, at least getting as far as the Objective-C bridge. Then fast loading makes it to the emulated machine, display output type doesn't.
|
2016-04-18 08:21:00 -04:00 |
|
Thomas Harte
|
499f7ace07
|
Re-enabled working video output for the Electron for the day and consolidated the rough metric I'm using to pick a number of taps for the audio filter.
|
2016-04-17 20:43:20 -04:00 |
|
Thomas Harte
|
6ff9ffba6c
|
Switching temporarily to an attempt to draw input runs as if RGB: shader compiles, fixed a race condition on out-of-bounds accesses for the source buffer.
|
2016-04-17 15:51:28 -04:00 |
|
Thomas Harte
|
104f44f27f
|
Attempted to improve deinterlacing, gave the CRT full control over blend mode, switched back to 2000000Mhz audio.
|
2016-04-14 22:20:47 -04:00 |
|
Thomas Harte
|
6a17c2992d
|
Introduced a compile-time configurable audio divider, set it arbitrarily to '8' for now. Discovered why my graphics aren't centred and added a TODO.
|
2016-04-13 22:31:59 -04:00 |
|
Thomas Harte
|
026ce0255f
|
Source runs are now captured, and that buffer appropriately reset.
|
2016-04-13 22:20:13 -04:00 |
|
Thomas Harte
|
2ea02ed127
|
A source array buffer is also now created, mapped, unmapped, etc.
|
2016-04-13 22:14:18 -04:00 |
|
Thomas Harte
|
955e185790
|
Minor simplification.
|
2016-04-13 19:19:04 -04:00 |
|
Thomas Harte
|
4d889d9c7f
|
Made an attempt slightly to simplify the fragment processor, at both ends.
|
2016-04-12 22:35:11 -04:00 |
|
Thomas Harte
|
2cc72169ff
|
Ensured machines can nominate their own aspect ratio windows. Switched to 11/10 for the Electron.
|
2016-04-11 23:12:56 -04:00 |
|
Thomas Harte
|
7276a06cc0
|
Added a helper to calculate a visible rect based on output timings, used it to scale the Electron output up to the full window size.
|
2016-04-11 21:47:23 -04:00 |
|
Thomas Harte
|
a3c2cd880e
|
I discovered a further post on this on the STH forums; apparently the Electron simply asserts sync continuously. No breaks.
|
2016-04-11 21:01:09 -04:00 |
|
Thomas Harte
|
bdb99ba92f
|
Corrections back towards composite output: fixed misnamed constant, ensured the CRT doesn't write nonsense to the output buffer, ensured it grows three vertices at a time rather than six when desired. Net effect should be that the output stage is working again, with the input processing remaining to fill in.
|
2016-04-10 22:56:52 -04:00 |
|
Thomas Harte
|
8701366277
|
Switched horizontal sync detection back to differential, switched the Electron to an XOR-style sync output (believed to be accurate, but I need to check), fixed some latent issues around vertical sync detection.
|
2016-04-10 21:34:40 -04:00 |
|
Thomas Harte
|
e617bd2bb3
|
Turned audio quality up to the maximum, at least for now.
|
2016-04-06 21:12:22 -04:00 |
|
Thomas Harte
|
5aa6da221f
|
Shifted responsibility for byte shifts, probably to a more logical place.
|
2016-04-05 22:19:14 -04:00 |
|
Thomas Harte
|
2248769df9
|
Pulled a bunch of selection parts outside of the loops. Probably exhausting this angle of attack.
|
2016-04-05 22:17:44 -04:00 |
|
Thomas Harte
|
8f87973a96
|
Switched to table-based byte to output conversion.
|
2016-04-05 22:07:10 -04:00 |
|
Thomas Harte
|
e35456612a
|
Simplified 40-column to pixel conversion.
|
2016-04-05 20:44:05 -04:00 |
|
Thomas Harte
|
6dbd20ffde
|
Expanded interface to rgb_sample to eliminate its need to make assumptions about globals, used expanded interface to compact Electron data to two pixels per byte.
|
2016-04-05 20:32:55 -04:00 |
|
Thomas Harte
|
7838507a7a
|
Simplified sound generation.
|
2016-04-04 22:22:19 -04:00 |
|
Thomas Harte
|
729fddea1c
|
Switched to integer textures, likely to simplify for most use cases.
|
2016-04-04 19:39:01 -04:00 |
|
Thomas Harte
|
3ca58b2a57
|
Attemted further to diminish jumpiness.
|
2016-03-22 22:07:30 -04:00 |
|
Thomas Harte
|
8cd5d40e00
|
Made an attempt to reduce the amount of data heading to the GPU.
|
2016-03-22 21:16:32 -04:00 |
|
Thomas Harte
|
902017a962
|
Fixes: drop any processing backlog, try not to allow an Electron document to close mid-draw, perform a frame grab even if the emulated machine is over-processing, really really don't create a CRT until it's safe.
|
2016-03-20 18:42:37 -04:00 |
|
Thomas Harte
|
fb6fb5d948
|
Switched to two-phase setup to deal with OpenGL scheduling.
|
2016-03-20 13:50:13 -04:00 |
|
Thomas Harte
|
aa8a192c7e
|
Simplified API down to their being a single texture with a specified depth.
|
2016-03-19 17:37:55 -04:00 |
|
Thomas Harte
|
b074860031
|
Updated to latest information on interrupt timing.
|
2016-03-18 21:11:25 -04:00 |
|
Thomas Harte
|
4cd0aa3416
|
Completed FIR filter based audio output.
|
2016-03-15 23:37:35 -04:00 |
|