|
Downloads
|
|
|
|
Forum
|
|
Mitglieder Online |
| Momentan sind 905 Gäste und 1 Mitglied online |
You are an anonymous user. You can register for free by clicking here |
| |
|
|
Review of the moment
|
|
|
|
|
|
|
Autor |
Nachricht |
kerasi
|
|
Titel: mameui64 auf laptop und 24 zoll
Verfasst am: 02.02.2014, 15:26 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
Hallo
wie sollte man denn mame konfigurieren damit es so wie in der Spielhalle aussieht?
Es gibt dort einen Entrag HLSL aber wenn ich den aktiviere dann passiert nichts muss man den noch was anderes aktivieren?
|
|
|
|
|
|
Jezze
|
|
Titel:
Verfasst am: 02.02.2014, 23:46 Uhr
|
|
Banned Team Member
Anmeldungsdatum: 30. Okt 2004
Beiträge: 5.751
Status: Offline
|
|
Mit aktivierten HLSL Shadern und den Standard Einstellungen wirst du kein Unterschied erkennen. MAME besitzt drei Voreinstellung, die über die Option hlsl_preset (0, 1, 2) in der mame.ini aktiviert werden können. Allerdings sehen die Ergebnisse mit den Voreinstellungen nicht sehr ansprechend aus.
Vor einiger Zeit habe ich hier eine recht umfangreiche Beschreibung aller Shader Einstellungen zusammengestellt und dem HLSL Shader zusätzlich noch einige Erweiterungen hinzugefügt.
Dies sind die Einstellungen die ich aktuell für fast jedes Spiel verwende; sie müssen in der mame.ini vorgenommen werden.
Code: #
# DIRECT3D POST-PROCESSING OPTIONS
#
hlsl_enable 1
hlslpath hlsl
hlsl_prescale_x 2
hlsl_prescale_y 2
hlsl_preset -1
hlsl_write
hlsl_snap_width 1920
hlsl_snap_height 1440
shadow_mask_alpha 0.150000
shadow_mask_texture crt_shadow_mask.png
shadow_mask_x_count -3
shadow_mask_y_count -2
shadow_mask_usize 0.375000
shadow_mask_vsize 0.250000
curvature 0.150000
pincushion 0.300000
scanline_alpha 0.250000
scanline_size 1.000000
scanline_height 1.500000
scanline_bright_scale 1.000000
scanline_bright_offset 0.500000
scanline_jitter 0.000000
defocus 1.000000,1.000000
converge_x 0.000000,0.000000,0.500000
converge_y 0.250000,0.000000,0.000000
radial_converge_x 0.000000,0.000000,0.000000
radial_converge_y 0.000000,0.000000,0.000000
red_ratio 1.050000,0.000000,0.100000
grn_ratio -0.100000,1.000000,0.250000
blu_ratio -0.250000,0.250000,1.250000
saturation 1.150000
offset 0.015000,0.015000,0.015000
scale 0.900000,0.950000,0.950000
power 1.300000,1.100000,1.000000
floor 0.000000,0.000000,0.000000
phosphor_life 0.500000,0.500000,0.500000
#
# NTSC POST-PROCESSING OPTIONS
#
yiq_enable 0
yiq_cc 3.597545
yiq_a 0.500000
yiq_b 0.500000
yiq_o 0.000000
yiq_p 1.000000
yiq_n 1.000000
yiq_y 6.000000
yiq_i 1.200000
yiq_q 0.600000
yiq_scan_time 52.600000
yiq_phase_count 2
#
# VECTOR POST-PROCESSING OPTIONS
#
vector_length_scale 0.800000
vector_length_ratio 500.000000
#
# BLOOM POST-PROCESSING OPTIONS
#
vector_bloom_scale 0.300000
raster_bloom_scale 0.150000
bloom_lvl0_weight 1.000000
bloom_lvl1_weight 0.320000
bloom_lvl2_weight 0.280000
bloom_lvl3_weight 0.240000
bloom_lvl4_weight 0.200000
bloom_lvl5_weight 0.160000
bloom_lvl6_weight 0.120000
bloom_lvl7_weight 0.080000
bloom_lvl8_weight 0.040000
bloom_lvl9_weight 0.020000
bloom_lvl10_weight 0.010000
Die negativen shadow_mask_x/y_count Werte setzen die angesprochenen Erweiterungen im verlinkten Thread voraus.
Wenn dir das Ergebnis zu unscharf erscheinen sollte, musst du den hlsl_prescale_x/y erhöhen, was allerdings je nach Hardware zu Performance Einbrüchen führen kann. |
_________________ Test your limits and break through!
Zuletzt bearbeitet von Jezze am 06.02.2014, 13:11 Uhr, insgesamt ein Mal bearbeitet
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 04.02.2014, 10:35 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
Hi und danke für die Antwort
ich trage diese Einstellungen in der MAMEUI64.ini ein aber nach einem Start des Spieles sind sie wieder weg meine ini sieht so aus
Code: #
# APPLICATION OPTIONS
#
version "0.152 (Dec 24 2013)"
#
# DISPLAY STATE OPTIONS
#
default_game 3wonders
default_folder_id 2
show_image_section 1
full_screen 0
current_tab flyer
show_tool_bar 1
show_status_bar 1
hide_folders
show_folder_section 1
show_tabs 1
hide_tabs "marquee, title, cpanel, pcb, history"
history_tab 0
sort_column 0
sort_reversed 0
window_x 0
window_y 0
window_width 800
window_height 600
window_state 3
text_color 255,255,255
clone_color 128,128,255
custom_color 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
list_mode 4
splitters 152,362
list_font "-8,0,0,0,400,0,0,0,0,1,2,1,34,MS Sans Serif"
column_widths 185,78,84,84,64,88,74,108,60,144,84,60
column_order 0,2,3,4,5,6,7,8,9,1,10,11
column_shown 1,0,1,1,1,1,1,1,1,1,0,0
#
# INTERFACE OPTIONS
#
language english
check_game 0
joystick_in_interface 1
keyboard_in_interface 0
random_background 0
broadcast_game_name 0
hide_mouse 0
inherit_filter 0
offset_clones 0
stretch_screenshot_larger 0
cycle_screenshot 0
screenshot_bordersize 11
screenshot_bordercolor -1
exec_command
exec_wait 0
#
# SEARCH PATH OPTIONS
#
flyer_directory flyers
cabinet_directory cabinets
marquee_directory marquees
title_directory titles
cpanel_directory cpanel
pcb_directory pcb
background_directory bkground
folder_directory folders
icons_directory icons
#
# FILENAME OPTIONS
#
history_file history.dat
mameinfo_file mameinfo.dat
#
# NAVIGATION KEY CODES
#
ui_key_up KEYCODE_UP
ui_key_down KEYCODE_DOWN
ui_key_left KEYCODE_LEFT
ui_key_right KEYCODE_RIGHT
ui_key_start "KEYCODE_ENTER NOT KEYCODE_LALT"
ui_key_pgup KEYCODE_PGUP
ui_key_pgdwn KEYCODE_PGDN
ui_key_home KEYCODE_HOME
ui_key_end KEYCODE_END
ui_key_ss_change KEYCODE_INSERT
ui_key_history_up KEYCODE_DEL
ui_key_history_down "KEYCODE_LALT KEYCODE_0"
ui_key_context_filters "KEYCODE_LCONTROL KEYCODE_F"
ui_key_select_random "KEYCODE_LCONTROL KEYCODE_R"
ui_key_game_audit "KEYCODE_LALT KEYCODE_A"
ui_key_game_properties "KEYCODE_LALT KEYCODE_ENTER"
ui_key_help_contents KEYCODE_F1
ui_key_update_gamelist KEYCODE_F5
ui_key_view_folders "KEYCODE_LALT KEYCODE_D"
ui_key_view_fullscreen KEYCODE_F11
ui_key_view_pagetab "KEYCODE_LALT KEYCODE_B"
ui_key_view_picture_area "KEYCODE_LALT KEYCODE_P"
ui_key_view_status "KEYCODE_LALT KEYCODE_S"
ui_key_view_toolbars "KEYCODE_LALT KEYCODE_T"
ui_key_view_tab_cabinet "KEYCODE_LALT KEYCODE_3"
ui_key_view_tab_cpanel "KEYCODE_LALT KEYCODE_6"
ui_key_view_tab_flyer "KEYCODE_LALT KEYCODE_2"
ui_key_view_tab_history "KEYCODE_LALT KEYCODE_8"
ui_key_view_tab_marquee "KEYCODE_LALT KEYCODE_4"
ui_key_view_tab_screenshot "KEYCODE_LALT KEYCODE_1"
ui_key_view_tab_title "KEYCODE_LALT KEYCODE_5"
ui_key_view_tab_pcb "KEYCODE_LALT KEYCODE_7"
ui_key_quit "KEYCODE_LALT KEYCODE_Q"
#
# NAVIGATION JOYSTICK CODES
#
ui_joy_up 1,1,1,1
ui_joy_down 1,1,1,2
ui_joy_left 1,1,2,1
ui_joy_right 1,1,2,2
ui_joy_start 1,0,1,0
ui_joy_pgup 2,1,2,1
ui_joy_pgdwn 2,1,2,2
ui_joy_home 0,0,0,0
ui_joy_end 0,0,0,0
ui_joy_ss_change 2,0,3,0
ui_joy_history_up 2,0,4,0
ui_joy_history_down 2,0,1,0
ui_joy_exec 0,0,0,0
habe auch das in der post.fx eingetragen
Code: //-----------------------------------------------------------------------------
// Scanline & Shadowmask Effect
//-----------------------------------------------------------------------------
texture DiffuseTexture;
sampler DiffuseSampler = sampler_state
{
Texture = <DiffuseTexture>;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = CLAMP;
AddressV = CLAMP;
AddressW = CLAMP;
};
texture ShadowTexture;
sampler ShadowSampler = sampler_state
{
Texture = <ShadowTexture>;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = WRAP;
AddressV = WRAP;
AddressW = WRAP;
};
//-----------------------------------------------------------------------------
// Vertex Definitions
//-----------------------------------------------------------------------------
struct VS_OUTPUT
{
float4 Position : POSITION;
float4 Color : COLOR0;
float2 TexCoord : TEXCOORD0;
};
struct VS_INPUT
{
float4 Position : POSITION;
float4 Color : COLOR0;
float2 TexCoord : TEXCOORD0;
float2 Unused : TEXCOORD1;
};
struct PS_INPUT
{
float4 Color : COLOR0;
float2 TexCoord : TEXCOORD0;
};
//-----------------------------------------------------------------------------
// Scanline & Shadowmask Vertex Shader
//-----------------------------------------------------------------------------
uniform float2 ScreenDims;
uniform float2 SourceDims;
uniform float2 SourceRect;
VS_OUTPUT vs_main(VS_INPUT Input)
{
VS_OUTPUT Output = (VS_OUTPUT)0;
Output.Position = float4(Input.Position.xyz, 1.0f);
Output.Position.xy /= ScreenDims;
Output.Position.y = 1.0f - Output.Position.y;
Output.Position.xy -= 0.5f;
Output.Position *= float4(2.0f, 2.0f, 1.0f, 1.0f);
Output.Color = Input.Color;
Output.TexCoord = Input.TexCoord + 0.5f / SourceDims;
return Output;
}
//-----------------------------------------------------------------------------
// Post-Processing Pixel Shader
//-----------------------------------------------------------------------------
uniform float PI = 3.14159265f;
uniform float Epsilon = 0.00000001f;
uniform float CurvatureAmount = 0.0f;
uniform float PincushionAmount = 0.0f;
uniform float ScanlineAlpha = 1.0f;
uniform float ScanlineScale = 1.0f;
uniform float ScanlineBrightScale = 1.0f;
// uniform float ScanlineBrightOffset = 1.0f;
uniform float ScanlineOffset = 1.0f;
uniform float ScanlineHeight = 0.5f;
uniform float ShadowAlpha = 0.0f;
uniform float2 ShadowCount = float2(320.0f, 240.0f);
uniform float2 ShadowUV = float2(0.375f, 0.375f);
uniform float2 ShadowDims = float2(8.0f, 8.0f);
uniform float3 Power = float3(1.0f, 1.0f, 1.0f);
uniform float3 Floor = float3(0.0f, 0.0f, 0.0f);
static const float MagicConst = 0.5f;
float4 ps_main(PS_INPUT Input) : COLOR
{
float2 UsedArea = 1.0f / SourceRect;
float2 HalfRect = SourceRect * 0.5f;
float2 R2 = 1.0f / pow(length(UsedArea), 2.0f);
// Warning: Magic constant
float2 CoordCorrection0 = float2(UsedArea.x * (MagicConst) / SourceDims.x, UsedArea.y * (MagicConst) / SourceDims.y);
float2 CoordCorrection1 = float2(UsedArea.x * (1.0f + MagicConst) / SourceDims.x, UsedArea.y * (1.0f + MagicConst) / SourceDims.y);
// Reduce Pincushion Amount
float CurvatureAmountReduced = CurvatureAmount * 0.25f;
// -- Screen Pincushion Calculation --
float2 PinUnitCoord = Input.TexCoord * UsedArea * 2.0f - 1.0f;
float CurvatureR2 = pow(length(PinUnitCoord), 2.0f) * R2;
float2 CurvatureCurve = PinUnitCoord * CurvatureAmountReduced * CurvatureR2;
float2 BaseCoord = Input.TexCoord;
float2 ScanCoord = BaseCoord - 0.5f / ScreenDims;
BaseCoord -= HalfRect;
BaseCoord *= 1.0f - CurvatureAmountReduced * UsedArea * 0.2f; // Warning: Magic constant
BaseCoord += HalfRect;
BaseCoord += CurvatureCurve;
ScanCoord -= HalfRect;
ScanCoord *= 1.0f - CurvatureAmountReduced * UsedArea * 0.2f; // Warning: Magic constant
ScanCoord += HalfRect;
ScanCoord += CurvatureCurve;
float4 BaseTexel = tex2D(DiffuseSampler, BaseCoord);
// BaseTexel.r = 0.5f; // debug
// BaseTexel.g = 0.5f; // debug
// BaseTexel.b = 0.5f; // debug
// BaseTexel.a = 1.00f; // debug
// -- Alpha Clipping (1px border in drawd3d does not work for some reason) --
clip((BaseCoord < 1.0f / SourceDims) ? -1 : 1);
clip((BaseCoord > (SourceRect + 1.0f / SourceDims)) ? -1 : 1);
// -- Scanline Simulation --
float InnerSine = ScanCoord.y * SourceDims.y * ScanlineScale;
float ScanBrightMod = sin(InnerSine * PI + ScanlineOffset * SourceDims.y);
float3 ScanBrightness = lerp(1.0f, (pow(ScanBrightMod * ScanBrightMod, ScanlineHeight) * ScanlineBrightScale + 1.0f) * 0.5f, ScanlineAlpha);
float3 Scanned = BaseTexel.rgb * ScanBrightness;
// -- Color Compression (increasing the floor of the signal without affecting the ceiling) --
Scanned = Floor + (1.0f - Floor) * Scanned;
float2 ShadowMaskSize = float2(
ShadowCount.x < 0.0f ? SourceDims.x * SourceRect.x / ShadowCount.x * -1.0f : ShadowCount.x,
ShadowCount.y < 0.0f ? SourceDims.y * SourceRect.y / ShadowCount.y * -1.0f : ShadowCount.y);
float2 ShadowFrac = frac(BaseCoord * ShadowMaskSize * UsedArea);
float2 ShadowCoord = ShadowFrac * ShadowUV + 1.5f / ShadowDims;
float3 ShadowTexel = lerp(1.0f, tex2D(ShadowSampler, ShadowCoord).rgb, ShadowAlpha);
// -- Final Pixel --
float4 Output = float4(Scanned * ShadowTexel, BaseTexel.a) * Input.Color;
Output.r = pow(Output.r, Power.r);
Output.g = pow(Output.g, Power.g);
Output.b = pow(Output.b, Power.b);
Output.a = 1.0f;
// Output.r = 0.25f; // debug
// Output.g = 0.25f; // debug
// Output.b = 0.25f; // debug
float2 DefaultUsedArea = float2(10.0f / 7.0f, 1.0f);
// float2 DefaultUsedArea = float2(4.0f / 3.0f, 1.0f);
float2 CurvatureCoord = Input.TexCoord;
CurvatureCoord -= HalfRect;
CurvatureCoord *= 1.0f - CurvatureAmountReduced * UsedArea * MagicConst; // Warning: Magic constant
// CurvatureCoord += HalfRect;
CurvatureCoord += CurvatureCurve;
// CurvatureCoord *= UsedArea * DefaultUsedArea;
// CurvatureCoord *= UsedArea * DefaultUsedArea * 1.5f;
CurvatureCoord *= UsedArea * DefaultUsedArea * 1.25f;
// -- Vignetting --
float2 VignetteCoord = CurvatureCoord;
float VignetteAmount = 1.0f - saturate(dot(VignetteCoord, VignetteCoord));
float VignetteDarkness = pow(1.0f - PincushionAmount, 2.0f);
float VignetteRadius = PincushionAmount * 2.0f + 1.0f;
float Vignette = pow(VignetteAmount, VignetteRadius) + VignetteDarkness;
Output.rgb *= saturate(Vignette);
// Output.r = 0.25f; // debug
// Output.g = 0.25f; // debug
// Output.b = 0.25f; // debug
// -- Light Spot --
float2 SpotCoord = CurvatureCoord;
SpotCoord += float2(-0.25f, 0.25f) * DefaultUsedArea;
// float SpotAmount = 1.0f - saturate(pow(dot(SpotCoord, SpotCoord), 0.5f));
// float SpotRadius = CurvatureAmount * 2.0f + 4.0f;
// float Spot = pow(SpotAmount, SpotRadius) * 0.25f;
float SpotAmount = 1.0f - saturate(pow(dot(SpotCoord, SpotCoord), 0.25f));
float SpotRadius = CurvatureAmount * 4.0f + 2.0f;
float Spot = pow(SpotAmount, SpotRadius) * 0.5f;
// -- Light Reflection --
float2 ReflectionCoord = BaseCoord * UsedArea;
ReflectionCoord.x = 1.0f + CoordCorrection1.x - ReflectionCoord.x;
ReflectionCoord.y = 0.0f + CoordCorrection0.y + ReflectionCoord.y;
float ReflectionAmount = pow(ReflectionCoord.x * ReflectionCoord.y, 0.25f);
float Reflection = ReflectionAmount * 0.125f;
Output.rgb += (saturate(Reflection) + saturate(Spot)) * CurvatureAmount;
// -- Round Corners --
float2 CornerCoords = BaseCoord * UsedArea;
float radius = 0.0f;
if (CurvatureAmount > 0.0f)
{
radius = pow(CurvatureAmount, 0.125f) * 0.125f;
}
float threshold = pow(radius, 4.0f);
if (
(CornerCoords.x - CoordCorrection0.x) * (CornerCoords.y - CoordCorrection0.y) <= threshold ||
(1.0f + CoordCorrection1.x - CornerCoords.x) * (CornerCoords.y - CoordCorrection0.y) <= threshold ||
(CornerCoords.x - CoordCorrection0.x) * (1.0f + CoordCorrection1.y - CornerCoords.y) <= threshold ||
(1.0f + CoordCorrection1.x - CornerCoords.x) * (1.0f + CoordCorrection1.y - CornerCoords.y) <= threshold
)
{
Output.rgb = float3(0.0f, 0.0f, 0.0f);
}
return Output;
}
//-----------------------------------------------------------------------------
// Scanline & Shadowmask Effect
//-----------------------------------------------------------------------------
technique ScanMaskTechnique
{
pass Pass0
{
Lighting = FALSE;
//Sampler[0] = <DiffuseSampler>;
VertexShader = compile vs_3_0 vs_main();
PixelShader = compile ps_3_0 ps_main();
}
}
hlsl habe ich unter default ausgewählt select effect habe ich none stehen
was mache ich falsch? geht das vielleicht nicht mit diesem mame?
ich habe das hierher
http://www.mameui.info |
|
|
|
|
|
Jezze
|
|
Titel:
Verfasst am: 04.02.2014, 11:33 Uhr
|
|
Banned Team Member
Anmeldungsdatum: 30. Okt 2004
Beiträge: 5.751
Status: Offline
|
|
Die mame.ini - in die du die Shader Einstellungen übertragen musst - wird bei MAMEUI im Unterverzeichnis .\ini gespeichert. Die Effekt Einstellung kannst du außer acht lassen, diese ist für Pixel-Filter vorgesehen. |
_________________ Test your limits and break through!
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 04.02.2014, 12:14 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
habe das jetzt in der mame.ini eingetragen aber wo kann ich die shader Einstellungen vornehmen?
kann es sein das es auf meinem 24 zoll TFT nicht so gut ausshene kann? |
|
|
|
|
|
Jezze
|
|
Titel:
Verfasst am: 04.02.2014, 14:24 Uhr
|
|
Banned Team Member
Anmeldungsdatum: 30. Okt 2004
Beiträge: 5.751
Status: Offline
|
|
Die Einstellungen kannst du im Tab-Menü (Tabulator-Taste während das Spiel gestartet ist) unter dem Eintrag Slider Controls vornehmen.
Die negativen shadow_mask_x/y_count Werte kannst du dort allerdings nicht ändern, zumindest nicht in andere negative Werte.
Damit die Änderungen die du dort tätigst wieder zurück in die mame.ini geschrieben werden, musst du hlsl_write in der mame.ini zuvor auf 1 setzen.
Ich lasse es bei mir u.a. auf einem 16'' Notebook bei einer Auflösung von 1440x900 laufen und es sieht noch recht gut aus. Natürlich nicht so gut wie auf den Screenshots im verlinkten Thread, da die niedrigere Auflösung meines Notebooks einfach zu viele Details "weg-interpoliert". |
_________________ Test your limits and break through!
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 05.02.2014, 02:02 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
ich habe auch ein Laptop 14' ThinkPad T420 mit 1600x900
was hast du da für Einstellungen vorgenommen |
Zuletzt bearbeitet von kerasi am 14.02.2014, 00:03 Uhr, insgesamt ein Mal bearbeitet
|
|
|
|
|
Jezze
|
|
Titel:
Verfasst am: 05.02.2014, 08:10 Uhr
|
|
Banned Team Member
Anmeldungsdatum: 30. Okt 2004
Beiträge: 5.751
Status: Offline
|
|
Die kompletten Shader Einstellungen - die du später unter Slider Controls ändern kannst - sind die aus meiner ersten Antwort.
Schritt für Schritt:
- Ersetze die post.fx Daten im .\hlsl Verzeichnis durch die aus dem verlinkten Thread.
- Ersetze die vorhandenen Teile der Einstellungen in der mame.ini mit mit den Einstellungen aus meiner ersten Antwort.
- Kopiere die crt_shadow_mask.png aus dem verlinkten Thread in das .\artwork Verzeichnis.
Mehr muss eigentlich nicht gemacht werden um ein ähnliches Ergebnis wie im verlinkten Thread zu erhalten. Was jede einzelne Einstellung bewirkt ist dort ja beschrieben. |
_________________ Test your limits and break through!
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 06.02.2014, 11:01 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
Hi ich habe das so gemacht wie du geschrieben hast aber es ändern sich leider nicht de Grafik wie in der Arcade wenn ich unter Effect crt_shadow_mask.png auswähle dann kommt das der Spielhalle schon sehr nahe aber ist aber nicht sehr transparent |
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 06.02.2014, 11:07 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
das ist meine mame.ini unter /INI
Code: #
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
rompath C:\Users\spock\Documents\MameUI64\ROMs
hashpath hash
samplepath samples
artpath artwork
ctrlrpath ctrlr
inipath ini
fontpath .
cheatpath cheat
crosshairpath crosshair
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory cfg
nvram_directory nvram
memcard_directory memcard
input_directory inp
state_directory sta
snapshot_directory C:\Users\spock\Documents\MameUI64\Snap
diff_directory diff
comment_directory comments
#
# CORE STATE/PLAYBACK OPTIONS
#
state
autosave 0
playback
record
mngwrite
aviwrite
wavwrite
snapname %g/%i
snapsize auto
snapview internal
statename %g
burnin 0
#
# CORE PERFORMANCE OPTIONS
#
autoframeskip 0
frameskip 0
seconds_to_run 0
throttle 1
sleep 1
speed 1.0
refreshspeed 0
#
# CORE ROTATION OPTIONS
#
rotate 1
ror 0
rol 0
autoror 0
autorol 0
flipx 0
flipy 0
#
# CORE ARTWORK OPTIONS
#
artwork_crop 0
use_backdrops 1
use_overlays 1
use_bezels 1
use_cpanels 1
use_marquees 1
#
# CORE SCREEN OPTIONS
#
brightness 1.0
contrast 1.0
gamma 1.0
pause_brightness 0.65
effect none
#
# CORE VECTOR OPTIONS
#
antialias 1
beam 1.0
flicker 0
#
# CORE SOUND OPTIONS
#
sound 1
samplerate 48000
samples 1
volume 0
#
# CORE INPUT OPTIONS
#
coin_lockout 1
ctrlr
mouse 0
joystick 1
lightgun 0
multikeyboard 0
multimouse 0
steadykey 0
ui_active 0
offscreen_reload 0
joystick_map auto
joystick_deadzone 0.3
joystick_saturation 0.85
natural 0
joystick_contradictory 0
coin_impulse 0
#
# CORE INPUT AUTOMATIC ENABLE OPTIONS
#
paddle_device keyboard
adstick_device keyboard
pedal_device keyboard
dial_device keyboard
trackball_device keyboard
lightgun_device keyboard
positional_device keyboard
mouse_device mouse
#
# CORE DEBUGGING OPTIONS
#
log 0
verbose 0
update_in_pause 0
debug 0
debugscript
debug_internal 0
#
# CORE MISC OPTIONS
#
drc 1
drc_use_c 0
bios
cheat 0
skip_gameinfo 0
uifont default
ramsize
confirm_quit 0
ui_mouse 0
autoboot_command
autoboot_delay 2
autoboot_script
http 0
http_port 8080
http_path web
#
# WINDOWS DEBUGGING OPTIONS
#
oslog 0
watchdog 0
debugger_font "Lucida Console"
debugger_font_size 9
#
# WINDOWS PERFORMANCE OPTIONS
#
priority 0
multithreading 0
numprocessors auto
profile 0
bench 0
#
# WINDOWS VIDEO OPTIONS
#
video d3d
numscreens 1
window 0
maximize 0
keepaspect 1
unevenstretch 1
prescale 1
waitvsync 0
syncrefresh 0
menu 0
#
# DIRECTDRAW-SPECIFIC OPTIONS
#
hwstretch 1
#
# DIRECT3D-SPECIFIC OPTIONS
#
filter 1
#
# DIRECT3D POST-PROCESSING OPTIONS
#
hlsl_enable 1
hlslpath hlsl
hlsl_prescale_x 2
hlsl_prescale_y 2
hlsl_preset -1
hlsl_write
hlsl_snap_width 1920
hlsl_snap_height 1200
shadow_mask_alpha 0.150000
shadow_mask_texture crt_shadow_mask.png
shadow_mask_x_count -3
shadow_mask_y_count -2
shadow_mask_usize 0.375000
shadow_mask_vsize 0.250000
curvature 0.150000
pincushion 0.300000
scanline_alpha 0.250000
scanline_size 1.000000
scanline_height 1.500000
scanline_bright_scale 1.000000
scanline_bright_offset 0.500000
scanline_jitter 0.000000
defocus 1.000000,1.000000
converge_x 0.000000,0.000000,0.500000
converge_y 0.250000,0.000000,0.000000
radial_converge_x 0.000000,0.000000,0.000000
radial_converge_y 0.000000,0.000000,0.000000
red_ratio 1.050000,0.000000,0.100000
grn_ratio -0.100000,1.000000,0.250000
blu_ratio -0.250000,0.250000,1.250000
saturation 1.150000
offset 0.015000,0.015000,0.015000
scale 0.900000,0.950000,0.950000
power 1.300000,1.100000,1.000000
floor 0.000000,0.000000,0.000000
phosphor_life 0.500000,0.500000,0.500000
#
# NTSC POST-PROCESSING OPTIONS
#
yiq_enable 0
yiq_cc 3.597545
yiq_a 0.500000
yiq_b 0.500000
yiq_o 0.000000
yiq_p 1.000000
yiq_n 1.000000
yiq_y 6.000000
yiq_i 1.200000
yiq_q 0.600000
yiq_scan_time 52.600000
yiq_phase_count 2
#
# VECTOR POST-PROCESSING OPTIONS
#
vector_length_scale 0.800000
vector_length_ratio 500.000000
#
# BLOOM POST-PROCESSING OPTIONS
#
vector_bloom_scale 0.300000
raster_bloom_scale 0.150000
bloom_lvl0_weight 1.000000
bloom_lvl1_weight 0.320000
bloom_lvl2_weight 0.280000
bloom_lvl3_weight 0.240000
bloom_lvl4_weight 0.200000
bloom_lvl5_weight 0.160000
bloom_lvl6_weight 0.120000
bloom_lvl7_weight 0.080000
bloom_lvl8_weight 0.040000
bloom_lvl9_weight 0.020000
bloom_lvl10_weight 0.010000
#
# PER-WINDOW VIDEO OPTIONS
#
screen auto
aspect auto
resolution auto
view auto
screen0 auto
aspect0 auto
resolution0 auto
view0 auto
screen1 auto
aspect1 auto
resolution1 auto
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
#
# FULL SCREEN OPTIONS
#
triplebuffer 0
switchres 0
full_screen_brightness 1.0
full_screen_contrast 1.0
full_screen_gamma 1.0
#
# WINDOWS SOUND OPTIONS
#
audio_latency 2
#
# INPUT DEVICE OPTIONS
#
dual_lightgun 0
meine post.fx unter /HLSL
Code: //-----------------------------------------------------------------------------
// Scanline & Shadowmask Effect
//-----------------------------------------------------------------------------
texture DiffuseTexture;
sampler DiffuseSampler = sampler_state
{
Texture = <DiffuseTexture>;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = CLAMP;
AddressV = CLAMP;
AddressW = CLAMP;
};
texture ShadowTexture;
sampler ShadowSampler = sampler_state
{
Texture = <ShadowTexture>;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = WRAP;
AddressV = WRAP;
AddressW = WRAP;
};
//-----------------------------------------------------------------------------
// Vertex Definitions
//-----------------------------------------------------------------------------
struct VS_OUTPUT
{
float4 Position : POSITION;
float4 Color : COLOR0;
float2 TexCoord : TEXCOORD0;
};
struct VS_INPUT
{
float4 Position : POSITION;
float4 Color : COLOR0;
float2 TexCoord : TEXCOORD0;
float2 Unused : TEXCOORD1;
};
struct PS_INPUT
{
float4 Color : COLOR0;
float2 TexCoord : TEXCOORD0;
};
//-----------------------------------------------------------------------------
// Scanline & Shadowmask Vertex Shader
//-----------------------------------------------------------------------------
uniform float2 ScreenDims;
uniform float2 SourceDims;
uniform float2 SourceRect;
VS_OUTPUT vs_main(VS_INPUT Input)
{
VS_OUTPUT Output = (VS_OUTPUT)0;
Output.Position = float4(Input.Position.xyz, 1.0f);
Output.Position.xy /= ScreenDims;
Output.Position.y = 1.0f - Output.Position.y;
Output.Position.xy -= 0.5f;
Output.Position *= float4(2.0f, 2.0f, 1.0f, 1.0f);
Output.Color = Input.Color;
Output.TexCoord = Input.TexCoord + 0.5f / SourceDims;
return Output;
}
//-----------------------------------------------------------------------------
// Post-Processing Pixel Shader
//-----------------------------------------------------------------------------
uniform float PI = 3.14159265f;
uniform float Epsilon = 0.00000001f;
uniform float CurvatureAmount = 0.0f;
uniform float PincushionAmount = 0.0f;
uniform float ScanlineAlpha = 1.0f;
uniform float ScanlineScale = 1.0f;
uniform float ScanlineBrightScale = 1.0f;
// uniform float ScanlineBrightOffset = 1.0f;
uniform float ScanlineOffset = 1.0f;
uniform float ScanlineHeight = 0.5f;
uniform float ShadowAlpha = 0.0f;
uniform float2 ShadowCount = float2(320.0f, 240.0f);
uniform float2 ShadowUV = float2(0.375f, 0.375f);
uniform float2 ShadowDims = float2(8.0f, 8.0f);
uniform float3 Power = float3(1.0f, 1.0f, 1.0f);
uniform float3 Floor = float3(0.0f, 0.0f, 0.0f);
static const float MagicConst = 0.5f;
float4 ps_main(PS_INPUT Input) : COLOR
{
float2 UsedArea = 1.0f / SourceRect;
float2 HalfRect = SourceRect * 0.5f;
float2 R2 = 1.0f / pow(length(UsedArea), 2.0f);
// Warning: Magic constant
float2 CoordCorrection0 = float2(UsedArea.x * (MagicConst) / SourceDims.x, UsedArea.y * (MagicConst) / SourceDims.y);
float2 CoordCorrection1 = float2(UsedArea.x * (1.0f + MagicConst) / SourceDims.x, UsedArea.y * (1.0f + MagicConst) / SourceDims.y);
// Reduce Pincushion Amount
float CurvatureAmountReduced = CurvatureAmount * 0.25f;
// -- Screen Pincushion Calculation --
float2 PinUnitCoord = Input.TexCoord * UsedArea * 2.0f - 1.0f;
float CurvatureR2 = pow(length(PinUnitCoord), 2.0f) * R2;
float2 CurvatureCurve = PinUnitCoord * CurvatureAmountReduced * CurvatureR2;
float2 BaseCoord = Input.TexCoord;
float2 ScanCoord = BaseCoord - 0.5f / ScreenDims;
BaseCoord -= HalfRect;
BaseCoord *= 1.0f - CurvatureAmountReduced * UsedArea * 0.2f; // Warning: Magic constant
BaseCoord += HalfRect;
BaseCoord += CurvatureCurve;
ScanCoord -= HalfRect;
ScanCoord *= 1.0f - CurvatureAmountReduced * UsedArea * 0.2f; // Warning: Magic constant
ScanCoord += HalfRect;
ScanCoord += CurvatureCurve;
float4 BaseTexel = tex2D(DiffuseSampler, BaseCoord);
// BaseTexel.r = 0.5f; // debug
// BaseTexel.g = 0.5f; // debug
// BaseTexel.b = 0.5f; // debug
// BaseTexel.a = 1.00f; // debug
// -- Alpha Clipping (1px border in drawd3d does not work for some reason) --
clip((BaseCoord < 1.0f / SourceDims) ? -1 : 1);
clip((BaseCoord > (SourceRect + 1.0f / SourceDims)) ? -1 : 1);
// -- Scanline Simulation --
float InnerSine = ScanCoord.y * SourceDims.y * ScanlineScale;
float ScanBrightMod = sin(InnerSine * PI + ScanlineOffset * SourceDims.y);
float3 ScanBrightness = lerp(1.0f, (pow(ScanBrightMod * ScanBrightMod, ScanlineHeight) * ScanlineBrightScale + 1.0f) * 0.5f, ScanlineAlpha);
float3 Scanned = BaseTexel.rgb * ScanBrightness;
// -- Color Compression (increasing the floor of the signal without affecting the ceiling) --
Scanned = Floor + (1.0f - Floor) * Scanned;
float2 ShadowMaskSize = float2(
ShadowCount.x < 0.0f ? SourceDims.x * SourceRect.x / ShadowCount.x * -1.0f : ShadowCount.x,
ShadowCount.y < 0.0f ? SourceDims.y * SourceRect.y / ShadowCount.y * -1.0f : ShadowCount.y);
float2 ShadowFrac = frac(BaseCoord * ShadowMaskSize * UsedArea);
float2 ShadowCoord = ShadowFrac * ShadowUV + 1.5f / ShadowDims;
float3 ShadowTexel = lerp(1.0f, tex2D(ShadowSampler, ShadowCoord).rgb, ShadowAlpha);
// -- Final Pixel --
float4 Output = float4(Scanned * ShadowTexel, BaseTexel.a) * Input.Color;
Output.r = pow(Output.r, Power.r);
Output.g = pow(Output.g, Power.g);
Output.b = pow(Output.b, Power.b);
Output.a = 1.0f;
// Output.r = 0.25f; // debug
// Output.g = 0.25f; // debug
// Output.b = 0.25f; // debug
float2 DefaultUsedArea = float2(10.0f / 7.0f, 1.0f);
// float2 DefaultUsedArea = float2(4.0f / 3.0f, 1.0f);
float2 CurvatureCoord = Input.TexCoord;
CurvatureCoord -= HalfRect;
CurvatureCoord *= 1.0f - CurvatureAmountReduced * UsedArea * MagicConst; // Warning: Magic constant
// CurvatureCoord += HalfRect;
CurvatureCoord += CurvatureCurve;
// CurvatureCoord *= UsedArea * DefaultUsedArea;
// CurvatureCoord *= UsedArea * DefaultUsedArea * 1.5f;
CurvatureCoord *= UsedArea * DefaultUsedArea * 1.25f;
// -- Vignetting --
float2 VignetteCoord = CurvatureCoord;
float VignetteAmount = 1.0f - saturate(dot(VignetteCoord, VignetteCoord));
float VignetteDarkness = pow(1.0f - PincushionAmount, 2.0f);
float VignetteRadius = PincushionAmount * 2.0f + 1.0f;
float Vignette = pow(VignetteAmount, VignetteRadius) + VignetteDarkness;
Output.rgb *= saturate(Vignette);
// Output.r = 0.25f; // debug
// Output.g = 0.25f; // debug
// Output.b = 0.25f; // debug
// -- Light Spot --
float2 SpotCoord = CurvatureCoord;
SpotCoord += float2(-0.25f, 0.25f) * DefaultUsedArea;
// float SpotAmount = 1.0f - saturate(pow(dot(SpotCoord, SpotCoord), 0.5f));
// float SpotRadius = CurvatureAmount * 2.0f + 4.0f;
// float Spot = pow(SpotAmount, SpotRadius) * 0.25f;
float SpotAmount = 1.0f - saturate(pow(dot(SpotCoord, SpotCoord), 0.25f));
float SpotRadius = CurvatureAmount * 4.0f + 2.0f;
float Spot = pow(SpotAmount, SpotRadius) * 0.5f;
// -- Light Reflection --
float2 ReflectionCoord = BaseCoord * UsedArea;
ReflectionCoord.x = 1.0f + CoordCorrection1.x - ReflectionCoord.x;
ReflectionCoord.y = 0.0f + CoordCorrection0.y + ReflectionCoord.y;
float ReflectionAmount = pow(ReflectionCoord.x * ReflectionCoord.y, 0.25f);
float Reflection = ReflectionAmount * 0.125f;
Output.rgb += (saturate(Reflection) + saturate(Spot)) * CurvatureAmount;
// -- Round Corners --
float2 CornerCoords = BaseCoord * UsedArea;
float radius = 0.0f;
if (CurvatureAmount > 0.0f)
{
radius = pow(CurvatureAmount, 0.125f) * 0.125f;
}
float threshold = pow(radius, 4.0f);
if (
(CornerCoords.x - CoordCorrection0.x) * (CornerCoords.y - CoordCorrection0.y) <= threshold ||
(1.0f + CoordCorrection1.x - CornerCoords.x) * (CornerCoords.y - CoordCorrection0.y) <= threshold ||
(CornerCoords.x - CoordCorrection0.x) * (1.0f + CoordCorrection1.y - CornerCoords.y) <= threshold ||
(1.0f + CoordCorrection1.x - CornerCoords.x) * (1.0f + CoordCorrection1.y - CornerCoords.y) <= threshold
)
{
Output.rgb = float3(0.0f, 0.0f, 0.0f);
}
return Output;
}
//-----------------------------------------------------------------------------
// Scanline & Shadowmask Effect
//-----------------------------------------------------------------------------
technique ScanMaskTechnique
{
pass Pass0
{
Lighting = FALSE;
//Sampler[0] = <DiffuseSampler>;
VertexShader = compile vs_3_0 vs_main();
PixelShader = compile ps_3_0 ps_main();
}
}
und die crt_shadow_mask.png unter /Artworks die 3Kb gross ist
unter Default Gamne Options habe ich unter Advanced nur HLSL und none Effect ausgewählt
was mache ich falsch? oder funktioniert das nur mit Metal Slug?
ich habe unter /INI auch ein 3wonders.ini aber von den anderen Spielen keines die ich starte
Monitor ist ein NEC PA241W 1920x1200 Laptop ist ein ThinkPad T420 1600x900 |
|
|
|
|
|
Jezze
|
|
Titel:
Verfasst am: 06.02.2014, 12:39 Uhr
|
|
Banned Team Member
Anmeldungsdatum: 30. Okt 2004
Beiträge: 5.751
Status: Offline
|
|
Ich werde es heute Abend mal mit MAMEUI testen, denn ich verwende sonst eigentlich UME (MAME+MESS Vereinigung) mit M+GUI als Frontend; was allerdings für den Shader und die Einstellungen keinen Unterschied machen sollte. |
_________________ Test your limits and break through!
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 06.02.2014, 13:04 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 06.02.2014, 14:26 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
Hi
ich habe gerade mess installiert und wollte es starten aber da steht no system found dann habe ich die mess.ini erstellt und den rom pfad angegeben geht aber auch nicht was fehlt denn da noch?
was hast du denn so installiert und wo? |
|
|
|
|
|
Jezze
|
|
Titel:
Verfasst am: 06.02.2014, 19:45 Uhr
|
|
Banned Team Member
Anmeldungsdatum: 30. Okt 2004
Beiträge: 5.751
Status: Offline
|
|
Ich habe meine kurze Anleitung gerade selbst einmal unter MAMEUI befolgt und kam zu dem gleichen Ergebnis wie ich es sonst unter UME erhalte.
Die einzigen Einstellungen, die ich zu Anfang vergessen haben zu zeigen, gehören nicht zu den Shader Einstellungen.
Code: brightness 0.95
contrast 1.30
gamma 0.70
Zudem müssen wie schon erwähnt hlsl_prescale_x/y angepasst werden, da der Wert 2 vermutlich recht unscharf wirkt. 3 oder 4 wäre am besten oder auch 0 wodurch automatisch ein passender pre-scale berechnet wird.
Ist das Ergebnis, dass du erhältst, denn völlig unverändert zu dem ohne aktivierte HLSL Shader, oder wie äußern sich die Einstellungen?
Dein Problem mit MESS ist eigentlich ein anderes Thema. MESS und MAME sind zwar sehr ähnlich und verwenden die gleiche Code-Basis, aber sie emulieren nicht die selben Systeme. MAME gehört der Arcade Bereich und MESS quasi der Rest, wie Konsolen, Computer, etc. |
_________________ Test your limits and break through!
|
|
|
|
|
kerasi
|
|
Titel:
Verfasst am: 07.02.2014, 09:56 Uhr
|
|
Retrohling
Anmeldungsdatum: 26. Dez 2012
Beiträge: 18
Status: Offline
|
|
|
|
|
|
Alle Zeiten sind GMT + 1 Stunde
|
|
|
|
|
|
|