Apart from the horizontal and vertical deflection, I also needed a way to set the
color and intensity of what was currently drawn. I used a simple circuit, connected
directly to the PCB on the back of the CRT:
The schematic consists of a simple resistor-based 4-bit DA-converter for the intensity. With two trimmers, the analog output value can be scaled for a good contrast and brightness. The 10V to set the contrast is 'borrowed' from somewhere on the CRT-PCB. It is then fed to the red, green and blue inputs, but there's also a BC550 transistor connected to each output which can 'blank' that color: by setting the Rdis, Gdis and Bdis inputs to a certain binary value, the color can be chosen. This reflects how the original Black Widow logic itself works.
Besides the deflection logic, the FPGA and the color control logic, there are also various other things that need to be connected: the buttons, the speaker, the psx-controller... These are all implemented fairly straightforward: all of them are directly connected to IO-pins of the FPGA. Even the speaker is connected directly to a PWMmed output on the FPGA (although it does have a 100uF series capacitor to block DC): the FPGA seems to have enough power to drive it directly. I have no idea if I go outside the FPGA specs with this, but it seems to work just fine.
I also needed a way to make the FPGA retain its configuration after power-down and -up; I didn't want to have it connected to a PC forever. The board itself did have some flash memory and a CPLD to upload it into the FPGA; I didn't really feel like reverse engineering that and I just grabbed my trusty stand alone JTAG uploader to do the job. It can confgure the FPGA in 7 seconds, which is quickly enough.