# Talk:Custom map symbols (historic)
default GRAPHICS config.s
I compiled a modified form of display.c and was able to extract Nethack's default entries for the showsyms array, which is what you are setting with GRAPHICS. I have the defaults for DEC graphics, IBM graphics, and what Nethack calls ASCII, which is what you get with neither DEC nor IBM on (calling it ASCII is an abuse but w.e.). Il'd like to add them to the wiki, but maybe someone else could look at them first? Make sure I'm on the right track?
DEC and IBM graphics are just preconfigured values for GRAPHICS, i.e. for this array. When you turn one of those on or off it overwrites the array and any entry you've made for GRAPHICS (until you reload the game). I tested that my entries for the DEC set were correct by verifying that the level did not change when I activated DEC graphics. I've also confirmed that my entry for IBM graphics is identical to the one on the page, minus the leading zeros.
The advantage to listing these defaults is that you can start with DEC or IBM or what Nethack calls ASCII (it's what you get without DEC or IBM on), and then make just the changes you want.
Entries:
ASCII GRAPHICS: 32 124 45 45 45 45 45 45 45 45 124 124 46 45 124 43 43 35 35 46 35 35 60 62 60 62 95 124 92 35 123 125 46 125 46 46 35 35 32 35 125 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 34 94 94 94 94 124 45 92 47 42 33 41 40 48 35 64 42 47 45 92 124 124 92 45 47 47 45 92 124 32 124 92 45 47
IBM GRAPHICS: 32 179 196 218 191 192 217 197 193 194 180 195 250 254 254 43 43 240 241 250 176 177 60 62 60 62 95 124 92 35 244 247 250 247 250 250 35 35 32 35 247 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 34 94 94 94 94 179 196 92 47 42 33 41 40 48 35 64 42 47 45 92 179 179 92 45 47 47 45 92 179 32 179 92 45 47
DEC GRAPHICS: 32 248 241 236 235 237 234 238 246 247 245 244 254 225 225 43 43 251 231 254 35 35 60 62 249 250 95 124 92 35 123 224 254 224 254 254 35 35 32 35 224 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 34 94 94 94 94 248 241 92 47 42 33 41 40 48 35 64 42 47 239 92 248 248 92 243 47 47 239 92 248 32 248 92 243 47

Gonna do some more testing later, but I might as well put this here for now.
Blackcustard 18:25, 17 December 2011 (UTC)
Okay I've been looking into this some more, working with the drawing.c code.
Internally Nethack stores the current graphics setin an array called showsyms. There are several ways to manipulate this graphic set.
Nethack comes packaged with 3 accessible graphics sets, a basic one that it calls ASCII, the IBM set, and the DEC set. There is also that MAC set. I haven't looked into exactly when it's used, but Il'd wager a guess it's used when Nethack is compiled for Macs&nbsp;:). There are also 2 sets for the rogue level, but that's obviously a special case.
There are also two ways you can define your own graphics set. The boulder, dungeon, monsters, and traps attributes let you define symbols in plain text; and then the GRAPHICS option (and DUNGEON, OBJECTS, EFFECTS, TRAPS which are just subsets of GRAPHICS) forces you to use a numeric encoding but in return lets you set some special effects. 
Couple things though: 1. That traps option is bugged (causes display errors if you change it). 2. A custom graphics set defined with GRAPHICS is overwritten if you toggle IBMgraphics or DECgraphics in game (until you reload your game).
No option seems to have precedence over any other, it's just what comes first in the rc.
Here's that mac graphics set I omitted earlier. The rogue ones are trickier since the dev's didn't see fit to just make arrays for them, instead it's sort of this combination of an array for objects and a list of assignments written out in long for everything else. I'll go after those too, maybe someone wants to play Nethack with Rogue graphics after all XD.
MAC GRAPHICS: 32 248 241 236 235 237 234 238 246 247 245 244 254 225 225 43 43 251 231 254 35 35 60 62 249 250 95 124 92 35 123 224 254 224 254 254 35 35 32 35 224 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 34 94 94 94 94 248 241 92 47 42 33 41 40 48 35 64 42 47 239 92 248 248 92 243 47 47 239 92 248 32 248 92 243 47
Still organizing information really, I want to put a bunch of this on the wiki eventually but I'm not quite sure how to go about it yet.
Blackcustard 23:03, 17 December 2011 (UTC)
The rogue graphics were more complex, there are at least 4 versions depending on the platform Nethack was compiled for and whether IBM graphics is set.
ROGUE LEVEL GRAPHICS, IBM: 32 124 45 45 45 45 45 45 45 45 124 124 43 43 43 43 43 35 35 46 35 35 37 37 60 62 95 124 92 35 123 125 46 125 46 46 35 35 32 35 125 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 34 94 94 94 94 124 45 92 47 42 33 41 40 48 35 64 42 47 45 92 124 124 92 45 47 47 45 92 124 32 124 92 45 47
ROGUE LEVEL GRAPHICS, NOT IBM: ROGUE LEVEL GRAPHICS, NOT IBM: 32 186 205 201 187 200 188 206 202 203 185 204 206 206 206 43 43 35 35 250 177 178 240 240 60 62 95 124 92 35 123 125 46 125 46 46 35 35 32 35 125 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 124 45 92 47 42 33 41 40 48 35 64 42 47 45 92 124 124 92 45 47 47 45 92 124 32 124 92 45 47
ROGUE LEVEL GRAPHICS, ALTERNATE SET, NOT IBM: 32 186 205 201 187 200 188 206 202 203 185 204 206 206 206 43 43 35 35 250 177 178 240 240 60 62 95 124 92 35 123 125 46 125 46 46 35 35 32 35 125 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 124 45 92 47 42 33 41 40 48 35 64 42 47 45 92 124 124 92 45 47 47 45 92 124 32 124 92 45 47
ROGUE LEVEL GRAPHICS, ALTERNATE SET, IBM: 32 124 45 45 45 45 45 45 45 45 124 124 43 43 43 43 43 35 35 46 35 35 37 37 60 62 95 124 92 35 123 125 46 125 46 46 35 35 32 35 125 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 34 94 94 94 94 1 24 45 92 47 42 33 41 40 48 35 64 42 47 45 92 124 124 92 45 47 47 45 92 124 32 12 4 92 45 47
According to the source, the alternate set, which more closely matches the original rogue, makes use of values that have been remapped to control characters on some operating systems, thus the set we see on the rogue level is the non-alternate set above. Need to test these.
Blackcustard 23:46, 17 December 2011 (UTC)
Of course the 2 non IBM sets are the same, as they should be. The differences are only in the IBM set. And I fixed a typo in one of those sets (left a space where I shouldn't have).
Blackcustard 20:19, 23 December 2011 (UTC)

Has anyone used the graphics option listed on the page? It's supposed to give IBM graphics, it agrees with the array I extracted from the code, according to my reading of the option setting code it should give IBM graphics, but it doesn't work for me. With putty configured to use code page 437 that graphic string gives jibberish but when I reset to ibm graphics from the options menu it looks fine. resetting to ibm graphics when your graphics string is set to that shouldn't change anything.
Can someone else replicate this? I might be doing something wrong. This is frustratingly complicated.
Blackcustard 20:19, 23 December 2011 (UTC)