Hello there. Here's some stuff involving some things I know about color modding with Artmoney Will any of it be of use to you? Probably not, but it'd be nice if it was. I think I've said some of this before, but this will be one thread for all of it.
The little I know about NES color modding:
Spoiler, click to toggle visibilty
It's pretty easy. You only need to search at integer 1 bytes for the colors, and with the size of the memory, it shouldn't take long to find out if you've found them or not.
FCEU/FCEUX has a PPU viewer that lets you see the values of the colors (not sure if using the emulator to mod colors is a good idea though, since last time I tried, changing black affected more then just the black background color.). The value for the black background color is ususally 0F (10, in decimal), but you could also use PPU viewer to assist with finding a background color you know that changes.
With NES, the black background color is usually grouped with the stage colors. So if you find one of the stage colors, check around it to find the black background color. You could also try searching with the address range set to All but there's a possibility of what you find won't work the next time you load up the emulator (savestates may remedy this).
Refer to
this for the colors the NES uses.
Searching for 15-bit color values (I've used it for a lot of different things):
Spoiler, click to toggle visibilty
Here's a method I've used. It requires GBA Color Picker (or a 15/16 bit color converter) for it (like the one on
this page), unless you wanna try the alternate method further down):
1. Take a screenshot.
2. Open the screenshot up in an image editor that shows you the RGB values to a color (like GIMP), and pick a color to get values from. Make sure none of them are above 248.
3. Enter the RGB values into GBA Color Picker, and do a search at integer 2 bytes for the value it gives you.
- If you want to use Emulator for the address range, it can be dicey. Some color addresses are outside the address range Artmoney lets you search in. If you can't find anything, try using all All for the address range (though you risk what you find not working next time). For SNES and Genesis emulators, it may be possible to find addresses that affect the black background color to multiple games.
- You can also add 8000 (hexadecimal) to the value and try searching for that value too. A couple PSX games do that.
- You can also try swapping the values to red and blue (BGR). Or red and green (GRB). Or even blue and green (BGR) I've encountered RGB mostly, and GRB to a lesser extent.
24-bit to 15-bit conversion (using math and a dec/hex converter):
Spoiler, click to toggle visibilty
I recently tried to come up with an alternate method in the event I'm no longer able to use GBACP (or for those who currently can't use it because of .dll issues). If someone can improve this method, please do.
First, some notes on the workings of GBACP (you don't really need to know any of this)
Spoiler, click to toggle visibilty
- The color value doesn't change unless it's a multiple of 8 (ex: you set all 3 to 0 to get 0000. If you were to set any color to anything below 8, the value will stay at 0000). The color channels in some color edit modes only going up to 31 kinda makes sense to me now.
- The individual RGB values do not go above 248.
So:
For red- 8 is 0001, 16 is 0002, 248 is 001F
For green- 8 is 0020, 16 is 0040, 248 is 03E0
For blue- 8 is 0400, 16 is 0800, 248 is 7C00
First, take a screenshot of the game and open it an image editor (like GIMP).
Next, pick a color in the screenshot and jot down the RGB values to it. If you see that the values to any of the colors aren't a *multiple of 8, they should be rounded down to the nearest one.
After you do that, get a calculator, and:
For Red: Take the value and divide it by 8
For Green: Take the value and multiply it by 4
For Blue: Take the value and multiply it by 128
Add the numbers you get together, then convert the total into hexadecimal. Or you could just uncheck the hexadecimal view and edit boxes, search for the decimal value at integer 2 bytes in Artmoney. :p
If you can't find a color mod, try adding 32768 (8000 in hexadecimal) to the value.
Here's an example for #7BFF7A (R=123 G=255 B=122)
Round R down to 120, B to 248, G to 120
120÷8 =15
248×4=992
120×128=15360
15+992+15360=16367 (3FEF, in hexadecimal)
*for quick reference, they are: 8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248
The little I know about "RGBW" (used with some CPS1, CPS2, Neogeo games):
Spoiler, click to toggle visibilty
I don't know how to find exact values, but I have a method to find color mods.
What I mean by "RGBW":
The color values are 2 bytes. Each nibble affects a color channel.
Example color value: 1234
2 controls the red channel
3 controls the green channel
4 controls the blue chanel
1 controls the "brightness" to all 3 (white) if the value is above 0
So, now that that explanation's out of the way, here's the method I came up with:
-Go to the Test Menu, and select color test.
- Here's the color values the color bar test should have:
Red
F100 F200 F300 F400 F500 F600 F700 F800 F900 FA00 FB00 FC00 FD00 FE00 FF00
Green
F010 F020 F020 F030 F040 F050 F060 F070 F080 F090 F0A0 F0B0 F0C0 F0D0 F0E0 F0F0
Blue
F001 F002 F003 F004 F005 F006 F007 F008 F009 F00A F00B F00C F00B F00D F00E F00F
White
F111 F222 F333 F444 F555 F666 F777 F888 F999 FAAA FBBB FCCC FDDD FEEE FFFF
- Try searching for F00D or F00F. You'll find an address that usually mods that color on the fly, but if you don't, go the the main menu, change the value, and see if it got modded.
- Once you find it, set the address range around the color mod you found, and go poking the addresses to try and find what you want to color mod.
- Black might be F000. Magenta is FF0F.
- Also, F000 might be between the values (F111 F000 F222 F000 F333 F000 F444). I usually try searching for F00F or F00D.
- Also, here's a list of values and what color values you get if you mess with the blue and white channels (. It's kind of a pain to use, but maybe it could help you with making custom colors:
Spoiler, click to toggle visibilty
0000 - 0
0001 - 5
0002 - 11
0003 - 17
0004 - 22
0005 - 28
0006 - 34
0007 - 39
0008 - 45
0009 - 51
000A - 56
000B - 62
000C - 68
000D - 73
000E - 79
000F - 85
1000 - 0
1001 - 6
1002 - 12
1003 - 19
1004 - 25
1005 - 32
1006 - 38
1007 - 44
1008 - 51
1009 - 57
100A - 64
100B - 70
100C - 77
100D - 83
100E - 89
100F - 96
2000 - 0
2001 - 7
2002 - 14
2003 - 21
2004 - 28
2005 - 35
2006 - 43
2007 - 50
2008 - 57
2009 - 64
200A - 71
200B - 78
200C - 86
200D - 93
200E - 100
200F - 107
3000 - 0
3001 - 7
3002 - 15
3003 - 23
3004 - 31
3005 - 39
3006 - 47
3007 - 55
3008 - 63
3009 - 71
300A - 79
300B - 87
300C - 95
300D - 103
300E - 111
300F - 119
4000 - 0
4001 - 8
4002 - 17
4003 - 26
4004 - 34
4005 - 43
4006 - 52
4007 - 60
4008 - 69
4009 - 78
400A - 86
400B - 95
400C - 104
400D - 112
400E - 121
400F - 130
1000 - 0
5001 - 9
5002 - 18
5003 - 28
5004 - 37
5005 - 47
5006 - 56
5007 - 66
5008 - 75
5009 - 85
500A - 94
500B - 103
500C - 113
500D - 122
500E - 132
500F - 141
6000 - 0
6001 - 10
6002 - 20
6003 - 30
6004 - 40
6005 - 51
6006 - 61
6007 - 71
6008 - 81
6009 - 91
600A - 102
600B - 112
600C - 122
600D - 132
600E - 142
600F - 153
7000 - 0
7001 - 10
7002 - 21
7003 - 32
7004 - 43
7005 - 54
7006 - 65
7007 - 76
7008 - 87
7009 - 98
700A - 109
700B - 120
700C - 131
700D - 142
700E - 153
700F - 164
8000 - 0
8001 - 11
8002 - 23
8003 - 35
8004 - 46
8005 - 58
8006 - 70
8007 - 81
8008 - 93
8009 - 105
800A - 117
800B - 128
800C - 140
800D - 152
800E - 163
800F - 175
9000 - 0
9001 - 12
9002 - 24
9003 - 37
9004 - 49
9005 - 62
9006 - 74
9007 - 87
9008 - 99
9009 - 112
900A - 124
900B - 137
900C - 149
900D - 162
900E - 174
900F - 187
A000 - 0
A001 - 13
A002 - 26
A003 - 39
A004 - 52
A005 - 66
A006 - 72
A007 - 92
A008 - 105
A009 - 119
A00A - 132
A00B - 145
A00C - 158
A00D - 171
A00E - 185
A00F - 198
B000 - 0
B001 - 13
B002 - 27
B003 - 41
B004 - 55
B005 - 69
B006 - 83
B007 - 97
B008 - 111
B009 - 125
B00A - 139
B00B - 159
B00C - 167
B00D - 181
B00E - 195
B00F - 209
C000 - 0
C001 - 14
C002 - 29
C003 - 44
C004 - 58
C005 - 73
C006 - 88
C007 - 103
C008 - 117
C009 - 132
C00A - 147
C00B - 162
C00C - 176
C00D - 191
C00E - 206
C00F - 221
D000 - 0
D001 - 15
D002 - 30
D003 - 46
D004 - 61
D005 - 77
D006 - 92
D007 - 108
D008 - 123
D009 - 139
D00A - 154
D00B - 170
D00C - 185
D00D - 201
D00E - 216
D00F - 232
E000 - 0
E001 - 16
E002 - 32
E003 - 48
E004 - 64
E005 - 81
E006 - 97
E007 - 113
E008 - 129
E009 - 146
E00A - 162
E00B - 178
E00C - 194
E00D - 211
E00E - 227
E00F - 243
F000 - 0
F001 - 17
F002 - 34
F003 - 51
F004 - 68
F005 - 85
F006 - 102
F007 - 119
F008 - 136
F009 - 153
F00A - 170
F00B - 187
F00C - 204
F00D - 221
F00E - 238
F00F - 255
Examples: For 8ACE, you'd have to look up 800A, 800C, and 800E. For 096A, it's 0009, 0006, and 000A.
Also, here's an attempt at using the above to come up with a custom color: the color to the names of contributors on MFG, which should be this
█So, the color values are 64, 43, 134. Which means I have to go through the list for something equal or less than 134. I also have to check the surrounding values to see if they're equal or less than the other 2. This brings me to 6000-600F. I end up with 664D, giving me this color:
█
24-bit color value (I don't know what this one's called):
Spoiler, click to toggle visibilty
This one, I've run into more times than I initially thought I'd encounter it (Battletoads and player/effect colors for Eye of Typhoon (PC version). A bunch of games I've run on Dosbox have also used it.). It uses 24-bit color values, but the values don't go past 3F. Fortunately, I was able to get a list of values it uses to reference.
How to use below list: Hexadecimal numbers (00-FF) are what you'd input for the color value, decimal numbers (0-255) are what you check against a selected color in an image editor. So, 1069FB (16, 105, 251) would become 041A3E
00 - 0
01 - 4
02 - 8
03 - 12
04 - 16
05 - 20
06 - 24
07 - 28
08 - 32
09 - 36
0A - 40
0B - 44
0C - 48
0D - 52
0E - 56
0F - 60
10 - 65
11 - 69
12 - 73
13 - 77
14 - 81
15 - 85
16 - 89
17 - 93
18 - 97
19 - 101
1A - 105
1B - 109
1C - 113
1D - 117
1E - 121
1F - 125
20 - 130
21 - 134
22 - 138
23 - 142
24 - 146
25 - 150
26 - 154
27 - 158
28 - 162
29 - 166
2A - 170
2B - 174
2C - 178
2D - 182
2E - 186
2F - 190
30 - 195
31 - 199
32 - 203
33 - 207
34 - 211
35 - 215
36 - 219
37 - 223
38 - 227
39 - 231
3A - 235
3B - 239
3C - 243
3D - 247
3E - 251
3F - 255
Some quasi-useful, useful notes/A couple of other methods to try that might work:
Spoiler, click to toggle visibilty
- Search for HTML colors at integer 3 bytes.
- Try searching for values with reversed bytes (3412 or 563412 instead of 1234 or 123456).
- 8000 (32768, in decimal) is sometimes used as the value for black instead of 0000. In this case, 0000 tends to be used as the transparency color, and can sometimes be used by you to hide a character/background element.
- Values I tend to use to see if I found a color mod: 7C1F (magenta), FFFF (white), 03E0 (green).
- I don't know if this applies to all NES games, but if you find all the color addresses to a stage, they will affect almost all the other stages in the game.
- Sometimes, you can color mod things on the fly, and sometimes you won't see if you've affected a color unless you cause the screen to change somehow (like going to the map screen in Legend of Zelda: A Link to the Past, travelling bewtween areas in Castlevania: SotN, or switching betweeen matches/screens in fighting games, for example)
- Sometimes a color won't stay at the value you set it to. This can be a problem if the the game constantly resets the value on you, because it means you may have to try and convert what you found so you can use the emulator's cheat utility and try to affect it more directly.
- For some games, the black background color won't always be black (making it easier to find a color mod for it). In KoF XI, it's not black in the Cambodia stage. In Capcom Vs SNK 2, it fades to white during that fade to white before the title screen.
- If you're able to find a color mod for a stage boss, it'll probably affect some of the enemies earlier in the stage too. That's because only the enemies currently on screen are assigned a set of color addresses.
- I was also able to color mod a couple games for MAME and Kawaks by searching for HTML colors at integer 3 bytes. This is tricky though, because there's more than 1 set of addresses that'll color mod things, but only 1 of those can be found in MAME's memory. The ones that can't are usually an integer 4 bytes RGBA value (alpha channel is unused. Also the value may sometimes be FF) So, before searching for HTML colors at integer 3 bytes, I suggest trying to find the values at 2 bytes first.
- An obvious way to find a P1/P2 characters colors: multiple savestates of the character going through different color changes. Sometimes, savestates of multiple characters; though there's a chance all the player characters are assigned their own unique groups of color addresses.
- This probably won't help too much, but one way you can try to narrow down your search faster is to search for a group of colors via searching for a sequence of values. Colors are usually arranged from brightest to darkest, like this for example: ██████████
That's the colors to Ryu's gloves in Street Fighter 3: Third Strike (in that order).
- Be careful when color modding outside of the emulator address range, because the colors won't change back when you reload your savestate. You have to either change them back manually, or shut down the emulator and load the game back up.
The little I know about genesis/segacd(?) colors:
Spoiler, click to toggle visibilty
I don't know if it applies to all of the games, but I got the values from Revengers of Vengeance from messing with the Black BG color, used it to find the character and BG colors, then I used it on Eternal Champions to find a color on Larcen (would've been nice to find this BEFORE I found the BG colors).
Put a screenshot into an image editor and see if any of the color values below show up:
0 - 0
2 - 34
4 - 68
6 - 102
8 - 136
A - 170
C - 204
E - 238
The odd numbered values are the same as the even numbered ones (3=34, 5=68, etc.)
The color format is BGR, and one of the half-bytes isn't used (so color values don't go past 0FFF). Here's an example: If R-68 G-238 B-34, you'd search for 02E4.
The little I know about PC Engine colors?:
Spoiler, click to toggle visibilty
I was messing around with the portraits to Flash Hiders and came up with all of this. It seems to work with HUD stuff, but character/BG stuff notsomuch. May need to look into it more.
2 bytes value, a half-byte isn't used, and the value doesn't go above 01FF (512 colors). There are 7 colors for each channel.
0007 gets you blue (increments by 0x01)
0038 gets you red (increments by 0x08)
01C0 gets you green (increments by 0x40)
01FF gets you white
01C7 gets you cyan
01F8 gets you yellow
003F gets you magenta
color numbers for using screenshots to figure out values
0
36
72
108
144
180
216
252
The very little I know about Atari Jaguar colors?:
Spoiler, click to toggle visibilty
I tried this with Kasumi Ninja and Ultra Vortek using Bizhawk:
Black BG Color is address 0058 in Jaguar TOM RAM
00FE gets you blue
F0FE gets you red
003F gets you green?
FFFF gets you white
0FFE gets you cyan
FFFE gets you yellow
90FE gets you magenta?
It started out simple enough, and then it didn't. I know 253's the highest color value for the color channels, but I haven't quite figured out how the color values increment yet.
That's all I can think of for now. Hope it helps someone.
Edit: Made some changes. I'll be adding more as I encounter different color formats.
Edit: Added what I learned from messing with Genesis/SegaCD and PC Engine.
Edit: Added something for Atari Jaguar's black BG color, and some color values.