In der Registry die DMD Werte einstellen

Das leidige Thema, der Schrecken aller Benutzer:

Die Registry von Windows

Na ja, ganz so schlimm ist es nicht, im Gegenteil, die Registry hilft uns, ein paar grundlegende Geschichten in Visual Pinball einzustellen.

Schauen wir uns dazu einen kleinen Auszug aus der Registry mal an:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame]
"AllowWriteAccess"=dword:00000001

[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\aar_101]
"dmd_border"=dword:00000000
"dmd_title"=dword:00000000
"dmd_only"=dword:00000001
@=dword:00000001
"inipath"="$HOME/.mame;.;ini"
"ctrlr_directory"="ctrlr"
"autoframeskip"=dword:00000001
"frameskip"=dword:00000000
"waitvsync"=dword:00000000
"triplebuffer"=dword:00000000
"ddraw"=dword:00000001
"direct3d"=dword:00000000
"hwstretch"=dword:00000001
"cleanstretch"="auto"
"zoom"=dword:00000002
"refresh"=dword:00000000
"scanlines"=dword:00000000
"switchres"=dword:00000001
"switchbpp"=dword:00000001
"keepaspect"=dword:00000001
"matchrefresh"=dword:00000000
"syncrefresh"=dword:00000000
"full_screen_brightness"="0.000000"
"frames_to_run"=dword:00000000
"effect"="none"
"screen_aspect"="4:3"
"rdtsc"=dword:00000000
"high_priority"=dword:00000000
"d3dtexmanage"=dword:00000001
"d3dfilter"=dword:00000001
"d3dfeedback"=dword:00000000
"d3dscan"=dword:00000064
"d3deffectrotate"=dword:00000001
"d3dprescale"="auto"
"d3deffect"="none"
"d3dcustom"=""
"d3dexpert"=""
"audio_latency"=dword:00000001
"lightgun"=dword:00000000
"keyboard_leds"=dword:00000001
"a2d_deadzone"="0.000000"
"ctrlr"=""
"norotate"=dword:00000000
"ror"=dword:00000000
"rol"=dword:00000000
"autoror"=dword:00000000
"autorol"=dword:00000000
"flipx"=dword:00000000
"flipy"=dword:00000000
"gamma"="0.000000"
"brightness"="0.000000"
"pause_brightness"="0.000000"
"antialias"=dword:00000001
"translucency"=dword:00000001
"beam"="0.000000"
"flicker"="0.000000"
"intensity"="0.000000"
"samplerate"=dword:0000ac44
"samples"=dword:00000001
"resamplefilter"=dword:00000001
"sound"=dword:00000001
"volume"=dword:00000000
"artwork"=dword:00000001
"use_backdrops"=dword:00000001
"use_overlays"=dword:00000001
"use_bezels"=dword:00000001
"artwork_crop"=dword:00000000
"artwork_resolution"=dword:00000000
"cheat"=dword:00000000
"debug"=dword:00000000
"playback"=""
"record"=""
"maxlogsize"=dword:00002710
"oslog"=dword:00000000
"skip_disclaimer"=dword:00000000
"skip_gameinfo"=dword:00000000
"crconly"=dword:00000000
"bios"="default"
"readconfig"=dword:00000001
"verbose"=dword:00000000
"dmd_red"=dword:000000ff
"dmd_green"=dword:00000058
"dmd_blue"=dword:00000020
"dmd_perc0"=dword:00000014
"dmd_perc33"=dword:00000021
"dmd_perc66"=dword:00000043
"dmd_compact"=dword:00000000
"dmd_antialias"=dword:00000032
"dmd_pos_x"=dword:00001049
"dmd_pos_y"=dword:000000f3
"dmd_width"=dword:000004ee
"dmd_height"=dword:000001a4
"dmd_doublesize"=dword:00000000
"threadpriority"=dword:00000001
"synclevel"=dword:00000000
"fastframes"=dword:ffffffff
"ignore_rom_crc"=dword:00000000
"dmd_colorize"=dword:00000000
"dmd_red66"=dword:000000e1
"dmd_green66"=dword:0000000f
"dmd_blue66"=dword:000000c1
"dmd_red33"=dword:00000006
"dmd_green33"=dword:00000000
"dmd_blue33"=dword:000000d6
"dmd_red0"=dword:00000000
"dmd_green0"=dword:00000000
"dmd_blue0"=dword:00000000
"cabinet_mode"=dword:00000001
"showpindmd"=dword:00000000

[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\aavenger]
"dmd_only"=dword:00000001
"dmd_border"=dword:00000000
"dmd_title"=dword:00000000
@=dword:00000001
...
...
und so weiter

 

Was genau sehen wir hier:

zunächst einmal sehen wir im Zweig: [HKEY_CURRENT_USER\Software\Freeware\Visual PinMame] für jedes ROM, welches wir bereits gespielt haben, einen entsprechenden Eintrag, zuerst den Eintrag:

[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\aar_101]

dann kommen irgendwelche Einstellungen und dann folgt der nächste Eintrag

[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\aavenger]

und der nächste, und der nächste, und so weiter, bis zum Schluss.

Wie genau die Einträge aussehen und was sie bewirken, das weiß ich auch nicht so genau, wer etwas darüber herausgefunden hat, oder weiß, wo das dokumentiert ist, kann mir gerne eine Nachricht zukommen lassen, dann veröffentliche ich es an dieser Stelle.

Mich hat nur interessiert, wie ich das DMD platzieren kann und ja, die Einträge finden sich ebenfalls in der Registry, genauer gesagt geht es um diese Einträge:

"dmd_pos_x"=dword:00001049
"dmd_pos_y"=dword:000000f3
"dmd_width"=dword:000004ee
"dmd_height"=dword:000001a4

Die Wirkung ist folgende:

"dmd_pos_x"= Positioniert das DMD an Pixel 4169 in horizontaler Richtung
"dmd_pos_y"= Positioniert das DMD an Pixel 243 in vertikaler Richtung
"dmd_width"= Stellt die Breite auf 1262 Pixel ein
"dmd_height"= Stellt die Höhe des DMD auf 420 Pixel ein

 Wie ihr sicher gesehen habt, habe ich mein DMD auf dem dritten Monitor platziert und in die Mitte verschoben. Das Bild um das DMD herum ist im Grunde nur ein einziges, riesiges Hintergrundbild, welches auf den ersten beiden Monitoren einfach schwarz ist, und auf dem letzten Monitor dann das DMD Bild hat:

 

Mit den Werten in der Registry positioniere ich das DMD genau an dieser Stelle. Man kann das auch für jeden Pin von Hand machen, indem man das DMD an die entsprechende Stelle zeiht, aber es kann sein, dass es beim nächsten Mal wieder an der falschen Stelle steht. Außerdem dachte ich mir, dass ich nicht immer das DMD an der gleichen Stelle haben will, vielleicht möchte ich ja eines Tages ein anderes Bild malen, einfach was anderes und cooleres, wer weiß das schon. Dann wäre es doch klasse, wenn ich die Werte auf einen Schlag umbiegen könnte.

Also habe ich den Zweig der Registry exportiert und von allem unnötigen Balast befreit. Heraus gekommen ist dann so was für jedes ROM:

 

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\xmen_150]
"dmd_pos_x"=dword:00001049
"dmd_pos_y"=dword:000000f3
"dmd_width"=dword:000004ee
"dmd_height"=dword:000001a4
[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\trn_174h]
"dmd_pos_x"=dword:00001049
"dmd_pos_y"=dword:000000f3
"dmd_width"=dword:000004ee
"dmd_height"=dword:000001a4
[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\tf_180]
"dmd_pos_x"=dword:00001049
"dmd_pos_y"=dword:000000f3
"dmd_width"=dword:000004ee
"dmd_height"=dword:000001a4
[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\avg_140]
"dmd_pos_x"=dword:00001049
"dmd_pos_y"=dword:000000f3
"dmd_width"=dword:000004ee
"dmd_height"=dword:000001a4
[HKEY_CURRENT_USER\Software\Freeware\Visual PinMame\.....

 

Überall definierte Werte, die mit Suchen und ersetzen leicht zu ändern sind. Zugegeben, das ist nicht gerade die eleganteste Art, das zu machen und vor allem muss man entweder die Tische alle immer sauber nachpflegen oder nach einer bestimmten Zeit wieder die Werte neu zusammensuchen und den Export von Hand bereinigen.

Aus diesem Grunde werde ich mich wohl mal hinsetzen und unter Linux ein kleines Script basteln, welches mir mit dem SED unter die Arme greift und das automatisch erledigt. Geiler wäre es natürlich, wenn einer von euch PHP kann, dann könnte man das ja auch Online zur Verfügung stellen