About 1983 or 1984, I saw in an arcade a machine with simple graphics. The object of the game was moving colored squares into the corresponding colored boxes. However, in the first level the colors were light green, yellow and blue. The problem was that I couldn't distinguish the light green and yellow, so I couldn't play that game. I was about 11 or 12 years old, and until I was 18 I didn't know I had a problem perceiving colors called Chronic Educational Daltonism.
Then about year 2000 I was happily playing with MAME and investigating new games when I saw this game again, 16 years later. It turned out to be Pickin' (Valadon Automation, 1983). Of course I was delighted to have rediscovered another game from my youth, or rather a frustration. I liked the game concept but I couldn't play anyway. So again I parked the game in a little corner of the back of my mind.
In February 2004 (past week) I was making a list of my favorite arcade games in MAME32, and I decided that Pickin' should be there. And again the frustration of not being able to play it long enough to even know if I really like the game. So I went to a board and asked for a quick color hack. Dave Widel helped me to change one of the colors, and for the first time in my life, 20 years later, I was able to pass the first level of the game!
It turned out that later levels had more boxes, up to nine. And there were nine colors. If you let the attract mode run by itself, the third demo game will contain nine different colored boxes:
Note that the boxes are actually outlined. I filled them to make the colors more noticeable. I'll refer to the boxes in a row/columns fashion, so R1C1 is the top left yellow, and R3C2 is the bottom-center bright red. So far I can't distinguish the R1C1 yellow from the R2C1 bright green, and I can't distinguish either two of the blues R3C1 and R3C3. When outlined, I have probs with R1C3 and R2C3 too (greenish and brown). I can distinguish them but not at first sight.
So I started to investigate how to change the colors to something I could play with ^_^ I had only one information: changing byte 5 of prom 6331-1.3p from 3F to 05 would change the yellow box into red. So now I had to discover two things: which bytes in the color proms defined each of the color boxes, and how the color was encoded in each byte so I could specify my own colors.
First I tried to locate more bytes which when altered, would change the color of the boxes. The proms look quite strange inside: the even bytes are alternatively 00 and FF, and the colors are only the odd bytes. I knew that one color was in byte 5. After some tests, it turned out that the bytes used for boxes are also alterned. I located the bytes for boxes R1C1, R2C1, R3C1 and R1C2 at bytes 5, 9, 13 and 17. I hope you see the pattern... ^_^
Then, before going for the remaining boxes (easy) I had to work out how a byte is transformed into a color. I have to say I was lost in here, so I did something I should have done from the very beginning: look at the source for some notes. Pickin' is in the Bagman driver. I found this in vidhdrw/bagman.c:
Good. I don't know anything about video hardware, but I can understand that each byte has 3 groups of bits which define different intensities for red, green and blue. Actually it's 2 bits for blue, 3 for green and 3 for red, in that order: BB GGG RRR. So 00 111 111 would be the RGB triplet 255,255,0. Which is the yellow box (R1C1). Which is the hex value 3F ^_^
Of course, you don't have 8bit precision for each color channel. You have 3 bit precision for red and green, and only 2 bit precision for blue. Each bit activates a different resistor which gives out a different intensity. MAME can convert to RGB values knowing the relations of the resistors, well that's a bit too much for me. Instead I looked what was the 8 bit value coming from the 2-3 bit values. This is the table (bits in binary, value in decimal):
Knowing this, it was easy detecting the remaining bytes just knowing the color. Two of them are actually in the second prom (6331-1.3r). Finally I built this table:
I hope it's clear enough. My research was done! Now I only had to decide which colours I wanted to use. It was a bit tricky because I couldn't use just any value, only 4 possible ones for the blue channel and 8 possible ones for red and green. After some playing with PSP and several mistakes I came up with the following table:
So I simply replaced the corresponding bytes with the new value. Ta-daaaa! My 20 years old frustration is gone. I have now a Pickin' playable by someone with color perception problems ^_^
Pickin' Altered PROMS (274 bytes)
My advice is to keep them away from your precious clean MAME set. Make a folder called pickin and put the two proms there. MAME reads first uncompressed roms, so as long as you are cautious to not pass a rom manager by there, you'll have no problem.
I know that for some people this was kinda silly, I know I'm not Einstein, but I wanted to tell the whole tale, and maybe encourage people into rom hacking. It was not really important how I did it, it was relatively easy (for a first time hack). The important thing is that I got rid of a 20 years old frustration ^_^
Last changed 2004-02-26