Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
The geometry and color controller responds at I²C address `0x37`. It appears to be an Apple IVAD-class CRT controller on the analog board. The slot-loading iMacs use a similar system at address `0x46`, which was the clue that helped point me in the right direction.
DingusPPC iMac emulation shows the system trying to send data to address 0x37:
Code:
(  87.124s)               dbdma.cpp:163    ERR| mesh: Invalid key 0 in LOAD_QUAD
(  88.591s)             viacuda.cpp:575   WARN| Cuda input data count (257) exceeds 256!
(  88.592s)             viacuda.cpp:575   WARN| Cuda input data count (258) exceeds 256!
(  88.592s)             viacuda.cpp:575   WARN| Cuda input data count (259) exceeds 256!
(  88.593s)             viacuda.cpp:1028  WARN| Unsupported I2C device 0x37 write buf:0000011fb945ac000efd1cffc732e40000fff1000000011fb94518001079f8001079f200107a031fb94440000c6bb8ffce71181fb947c800107a30ffc7309a0000fff1000000011fb945ac000efd1c1fb944ac000000001fb94460000ab464ffd7b38000000000001078f8000efd1c1fb94558000000041fb94480ffcfdec0ffce7560000339321fb945ac000efd1c0008eb80000000001fb944c000000000ffce65f80000000000000000001078e4000efd1068fff7401fb944fd00000000ffcfa21c00000000ffc74560000b55000000000000000000000000000000000000107aa0000000041fb944f04800040c00000000000000041fb9450088000404ff

The system makes 10 attempts to write those 256 bytes to 0x37.

These 256 bytes:
Code:
00000000: 0000 011f b945 ac00 0efd 1cff c732 e400  .....E.......2..
00000010: 00ff f100 0000 011f b945 1800 1079 f800  .........E...y..
00000020: 1079 f200 107a 031f b944 4000 0c6b b8ff  .y...z...D@..k..
00000030: ce71 181f b947 c800 107a 30ff c730 9a00  .q...G...z0..0..
00000040: 00ff f100 0000 011f b945 ac00 0efd 1c1f  .........E......
00000050: b944 ac00 0000 001f b944 6000 0ab4 64ff  .D.......D`...d.
00000060: d7b3 8000 0000 0000 1078 f800 0efd 1c1f  .........x......
00000070: b945 5800 0000 041f b944 80ff cfde c0ff  .EX......D......
00000080: ce75 6000 0339 321f b945 ac00 0efd 1c00  .u`..92..E......
00000090: 08eb 8000 0000 001f b944 c000 0000 00ff  .........D......
000000a0: ce65 f800 0000 0000 0000 0000 1078 e400  .e...........x..
000000b0: 0efd 1068 fff7 401f b944 fd00 0000 00ff  ...h..@..D......
000000c0: cfa2 1c00 0000 00ff c745 6000 0b55 0000  .........E`..U..
000000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000e0: 107a a000 0000 041f b944 f048 0004 0c00  .z.......D.H....
000000f0: 0000 0000 0000 041f b945 0088 0004 04ff  .........E......
 
  • Like
Reactions: matchajp
As promised, I’ve uploaded my tray-loading iMac G3 geometry/colour control notes and toolkit here:


It’s not a polished finished project, but it has the wiring, protocol notes, register info, DAU reverse-engineering notes, and a small command-line tool for controlling the CRT geometry/colour settings.

Huge thanks to qbancoffee’s `imac_g3_ivad_board_init` work, that reference helped a lot.

If you have a 1998 tray-loading iMac G3, feel free to have a look, try it, test it, or build on it. Happy to take corrections too.

Also, if anyone has success with this, I’d like to eventually make a proper PCB that also incorporates the audio, mic, headphone, and power button header into one control board. I have a separate set of docs for that too, as I was able to confirm every pin and have built a separate prototype board with an amp for the speakers. I still need to try the mic and front panel outputs.
 
  • Like
Reactions: MacTech68
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.