MARIAdigitizer (for Atari 7800) - c0pperdragon/LumaCode GitHub Wiki

The MARIAdigitizer is a small board to be used in the Atari 7800 console to create a LumaCode video signal by sniffing the relevant signals inside the machine and re-creating the intended video output.

Mod kit

The kit consists of the board that sits under the MARIA chip, and a cable with a detachable RCA jack.

kit

Installation

After removing the MARIA chip, insert the mod board in its socket and put the MARIA on top (look at the notch to get the orientation right).

Use the RCA jack to bring the lumacode signal to a convient location either on the case or maybe in the spot where the RF modulator normally sits, reusing the holes in the case.

For a complete solution audio also needs to be taken care of. You will need to use your own judgement on how to do this as this is not in the scope of this instructions. There are some YouTube tutorials available as well as commercial products.

Compatiblity with 2600 cartridges

The MARIAdigitizer not only monitors all signals that are sent to the MARIA chip, but also all signals for the TIA. It will detect the mode in which the machine is running (7800 mode or 2600 mode) and replicates the internal behaviour of the relevant video chip. The lumacode signal is then either 2600 compatible and basically identical to what the TIAdigitizer in an Atari 2600 would generate. Or it has a different format to allow for the higher resolution and color depth of native 7800 games.

Upscaling the lumacode signal

The new output signal is not directly usable with a TV or monitor. You need an upscaler compatible with the Atari 7800 flavor of lumacode to create HDMI. One possibility is the RGBtoHDMI Mono & Lumacode.

Currently the RGBtoHDMI software does not support the 7800 mode out of the box. You need to add a few extra files to the SDcard in the RGBtoHDMI: atari7800_extra_files.zip Copy the content of the archive directly on top of the files of the usual RGBtoHDMI software.

Details on color encoding

The Atari 7800 console can generate a total of 256 colors with a horizontal resolution of 320. The encoding is relatively straight-forward. Every pixel needs 8 bits that are split up in the usual pairs of bits that can be transfered by one voltage sample each. See the general description of lumacode on how this works. To handle the unusually high amount of data necessary for each line while not exceeding the usual sample rate, the encoder makes use of much more than the usually visible horizontal area of the screen. Horizontal sync pulses are extremely narrowed down, so regular TVs may not be able to properly show the raw lumacode signal as a black & white image. A compatible upscaler needs to be able to cope with that.

Default RGB values used by RGBtoHDMI for PAL

hue lum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 000000 111111 222222 333333 444444 555555 666666 777777 888888 999999 aaaaaa bbbbbb cccccc dddddd eeeeee ffffff
1 001707 0e2808 1f3908 304a08 415b08 526c08 637d08 748e0d 859f1e 96b02f a7c140 b8d251 c9e362 daf473 ebff82 fcff8e
2 1a0700 2b1800 3c2900 4d3a00 5e4b00 6f5c00 806d00 917e09 a28f1a b3a02b c4b13c d5c24d e6d35e f7e46f fff583 fff797
3 310000 420600 531700 642800 753900 864a00 975b0a a86c1b b97d2c ca8e3d db9f4e ecb05f fdc170 ffd285 ffe39c fff4b2
4 3e0000 4f0000 600800 711900 822a0d 933b1e a44c2f b55d40 c66e51 d77f62 e89073 f9a183 ffb298 ffc3ae ffd4c4 ffe5da
5 3f0003 50000f 61001b 720f2b 83203c 94314d a5425e b6536f c76480 d87591 e986a2 fa97b3 ffa8c8 ffb9de ffcaef ffdbf4
6 330035 440041 55004c 660c5c 771d6d 882e7e 993f8f aa50a0 bb61b1 cc72c2 dd83d3 ee94e4 ffa5e4 ffb6e9 ffc7ee ffd8f3
7 1d005c 2e0068 400074 511084 622195 7332a6 8443b7 9554c8 a665d9 b776ea c887eb d998eb e9a9ec fbbaeb ffcbef ffdcf4
8 020071 13007d 240b8c 351c9d 462dae 573ebf 684fd0 7960e1 8a71f2 9b82f7 ac93f7 bda4f7 ceb5f7 dfc6f7 f0d7f7 ffe8f8
9 000068 000a7c 081b90 192ca1 2a3db2 3b4ec3 4c5fd4 5d70e5 6e81f6 7f92ff 90a3ff a1b4ff b2c5ff c3d6ff d4e7ff e5f8ff
10 000a4d 001b63 002c79 023d8f 134ea0 245fb1 3570c2 4681d3 5792e4 68a3f5 79b4ff 8ac5ff 9bd6ff ace7ff bdf8ff ceffff
11 001a26 002b3c 003c52 004d68 065e7c 176f8d 28809e 3991af 4aa2c0 5bb3d1 6cc4e2 7dd5f3 8ee6ff 9ff7ff b0ffff c1ffff
12 00240b 003510 004622 005738 05684d 16795e 278a6f 389b80 49ac91 5abda2 6bceb3 7cdfc4 8df0d5 9effe5 affff1 c0fffd
13 00270c 003811 004916 005a1b 106b1b 217c2c 328d3d 439e4e 54af5f 65c070 76d181 87e292 98f3a3 a9ffb3 baffbf cbffcb
14 00230a 003410 044513 155613 266713 377813 488914 599a25 6aab36 7bbc47 8ccd58 9dde69 aeef7a bfff8b d0ff97 e1ffa3
15 001707 0e2808 1f3908 304a08 415b08 526c08 637d08 748e0d 859f1e 96b02f a7c140 b8d251 c9e362 daf473 ebff82 fcff8e

Default RGB values used by RGBtoHDMI for NTSC

hue lum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 000000 111111 222222 333333 444444 555555 666666 777777 888888 999999 aaaaaa bbbbbb cccccc dddddd eeeeee ffffff
1 1a0700 2b1800 3c2900 4d3a00 5e4b00 6f5c00 806d00 917e09 a28f1a b3a02b c4b13c d5c24d e6d35e f7e46f fff583 fff797
2 310000 420600 531700 642800 753900 864a00 975b0a a86c1b b97d2c ca8e3d db9f4e ecb05f fdc170 ffd285 ffe39c fff4b2
3 3e0000 4f0000 600800 711900 822a0d 933b1e a44c2f b55d40 c66e51 d77f62 e89073 f9a183 ffb298 ffc3ae ffd4c4 ffe5da
4 3f0003 50000f 61001b 720f2b 83203c 94314d a5425e b6536f c76480 d87591 e986a2 fa97b3 ffa8c8 ffb9de ffcaef ffdbf4
5 330035 440041 55004c 660c5c 771d6d 882e7e 993f8f aa50a0 bb61b1 cc72c2 dd83d3 ee94e4 ffa5e4 ffb6e9 ffc7ee ffd8f3
6 1d005c 2e0068 400074 511084 622195 7332a6 8443b7 9554c8 a665d9 b776ea c887eb d998eb e9a9ec fbbaeb ffcbef ffdcf4
7 020071 13007d 240b8c 351c9d 462dae 573ebf 684fd0 7960e1 8a71f2 9b82f7 ac93f7 bda4f7 ceb5f7 dfc6f7 f0d7f7 ffe8f8
8 000068 000a7c 081b90 192ca1 2a3db2 3b4ec3 4c5fd4 5d70e5 6e81f6 7f92ff 90a3ff a1b4ff b2c5ff c3d6ff d4e7ff e5f8ff
9 000a4d 001b63 002c79 023d8f 134ea0 245fb1 3570c2 4681d3 5792e4 68a3f5 79b4ff 8ac5ff 9bd6ff ace7ff bdf8ff ceffff
10 001a26 002b3c 003c52 004d68 065e7c 176f8d 28809e 3991af 4aa2c0 5bb3d1 6cc4e2 7dd5f3 8ee6ff 9ff7ff b0ffff c1ffff
11 00240b 003510 004622 005738 05684d 16795e 278a6f 389b80 49ac91 5abda2 6bceb3 7cdfc4 8df0d5 9effe5 affff1 c0fffd
12 00270c 003811 004916 005a1b 106b1b 217c2c 328d3d 439e4e 54af5f 65c070 76d181 87e292 98f3a3 a9ffb3 baffbf cbffcb
13 00230a 003410 044513 155613 266713 377813 488914 599a25 6aab36 7bbc47 8ccd58 9dde69 aeef7a bfff8b d0ff97 e1ffa3
14 001707 0e2808 1f3908 304a08 415b08 526c08 637d08 748e0d 859f1e 96b02f a7c140 b8d251 c9e362 daf473 ebff82 fcff8e
15 190700 2a1800 3b2900 4c3a00 5d4b00 6e5c00 7f6d00 907e09 a18f1a b2a02b c3b13c d4c24d e5d35e f6e46f fff582 ffff96