Jump to content

ArcCabView : Display your arcade games just as you want!


Houb

Recommended Posts

Il y a 16 heures, Houb a dit :

ce qui est cool c'est que désormais le shader sait que ton jeu est en 4:3 et qu'il ne doit prendre en compte que la zone d'affichage du jeu.

Ca va te permettre de pouvoir avoir un bezel 16:9 qui sera bien cadré et la taille de texture de l'effet CRT sera bien calée.

 

Pour Demul non faudrait que je refasse le launcher. Impossible de faire marcher ArcCabView avec en l'état.

 

Edit apres le bezel faut le renommer bezel.png (background.png est toujours possible mais c'est seulement pour des cas particuliers, visiblement pour l'instant oublie background.png et utilise bezel.png...)

Si tu actives le bezel dans le shader ca devrait être ok direct. Apres tu peux choisr de le faire s'afficher par dessus ou sous le jeu et de le linker ou pas à tes réglages...

OK merci pour ces précisions. Pour les émulateurs qui ont des résolutions différentes ça les prend en charge directement ou je dois le configurer? Par exemple pour le model 2 la résolution est 496 × 384 (même chose pour le model 3), du coup ça le détectera automatiquement ou il vaut mieux le définir moi même dans les réglages?

Link to comment
Share on other sites

 
  • Replies 295
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Pour la résolution réelle d'affichage il y a rien d'autre à faire 4:3 locked to center ca suffit et ca restera ok quelque soit la résolution de ton écran.

Par contre oui le 496x384 ce sera en fait la taille de texture, il faudra la mettre dans les paramètres de l'effet CRT.

C'est ce qui va faire le quadrillage de l'effet (et ca malheureusement ca ne peut pas être automatisée, à chaque fois faut la renseigner).

:)

 

Link to comment
Share on other sites

 
Il y a 8 heures, Houb a dit :

Pour la résolution réelle d'affichage il y a rien d'autre à faire 4:3 locked to center ca suffit et ca restera ok quelque soit la résolution de ton écran.

Par contre oui le 496x384 ce sera en fait la taille de texture, il faudra la mettre dans les paramètres de l'effet CRT.

C'est ce qui va faire le quadrillage de l'effet (et ca malheureusement ca ne peut pas être automatisée, à chaque fois faut la renseigner).

:)

Du coup il faut connaitre la résolution de chaque système. Cela dit par défaut les jeux Model 2 rendaient plutôt bien. Peut-être mieux qu'avec la résolution réelle.

Les bezels que tu as montré sont superbes. Tu ne pourrais pas les partager stp? De plus quel émulateur utilises-tu pour la SNES?

Link to comment
Share on other sites

 
il y a 34 minutes, Safur a dit :

Du coup il faut connaitre la résolution de chaque système. Cela dit par défaut les jeux Model 2 rendaient plutôt bien. Peut-être mieux qu'avec la résolution réelle.

Les bezels que tu as montré sont superbes. Tu ne pourrais pas les partager stp? De plus quel émulateur utilises-tu pour la SNES?

Oui c'est pour ca qu'utiliser reshade avec MAME c'est un peu merdique comme solution: faut une solution intégrée qui reçoit l'info sinon c'est mort...

Sinon de quel bezel tu parles je pense que tout est partagé non?

 

 

Link to comment
Share on other sites

 
Il y a 22 heures, Houb a dit :

Sinon de quel bezel tu parles je pense que tout est partagé non?

Les Bezels que l'on peut voir sur les captures écran du 1er post. Je n'arrive pas à trouver le lien. Et quel émulateur snes utilises-tu pour utiliser ArcCabView?

Penses-tu refaire un lanceur pour Demul qui prendra en compte la nouvelle méthode?

A quoi sert la case "performance mode"? En la cochant les options sont cachées mais je ne vois pas à quoi cela peut servir?

Edited by Safur
Link to comment
Share on other sites

 
 

@Houb

J'ai une chose étrange avec l'émulateur supermodel.

L'image n’atteint pas le bord de l'écran... avec tous les jeux. Je n'ai pas ce soucis avec CRTGeom.

Je n'arrive pas à envoyer d'image pour te le montrer mais en gros en hauteur c'est bon mais pas en longueur. J'ai mis en 4:3 mais pour avoir l'image sur tout l'écran il faudrait que je mette 3.8:3 au lieu de 4:3.

 

Edited by Safur
Link to comment
Share on other sites

 

I need some help with Elevator Action Death Parade using the ArcCabView_1.0a_generic

Can't find the correct way to rename the dll to hook the game.


Would love to be able to have a custom bezel for this game much like Raiden V with the windows in the middle for non vertical oriented monitors.

Any help appreciaded :D Thanks for this great addon guys. Here's how my bezel looks like, got ti working in RocketLauncher but would be so cool have it woring astand alone.

 

 

 

Bezel.png

Link to comment
Share on other sites

 
Il y a 16 heures, Safur a dit :

@Houb

J'ai une chose étrange avec l'émulateur supermodel.

L'image n’atteint pas le bord de l'écran... avec tous les jeux. Je n'ai pas ce soucis avec CRTGeom.

Je n'arrive pas à envoyer d'image pour te le montrer mais en gros en hauteur c'est bon mais pas en longueur. J'ai mis en 4:3 mais pour avoir l'image sur tout l'écran il faudrait que je mette 3.8:3 au lieu de 4:3.

 

Je crois que le format n'est en effet pas 4:3 pour cet emu mais la résolution du jeu. donc si tu mets "496 : 384" ca devrait être ok :)

 

il y a 13 minutes, gStAvEn a dit :

I need some help with Elevator Action Death Parade using the ArcCabView_1.0a_generic

Can't find the correct way to rename the dll to hook the game.


Would love to be able to have a custom bezel for this game much like Raiden V with the windows in the middle for non vertical oriented monitors.

Any help appreciaded :D Thanks for this great addon guys. Here's how my bezel looks like, got ti working in RocketLauncher but would be so cool have it woring astand alone.

 

 

This game is not easy to set. But you will find an attempt I did in for this game with CRTGeomMOD in SuperAlpinRacer thread.

 

Link to comment
Share on other sites

 
 
  • 2 weeks later...
 

ok never tried this emu but I will try to help :)

trying to rename the dll flycast.dll is useless (it will never work). 

 

Flycast is a 64bit emu (Win64) so you will have to use the 64bit dll.

In the emu description for the windows version we can read "DirectX9 renderer"

So with luck renaming the 64 bit dll to d3d9.dll should work :)

 

I let you try.

Link to comment
Share on other sites

 
14 hours ago, Houb said:

ok never tried this emu but I will try to help :)

trying to rename the dll flycast.dll is useless (it will never work). 

 

Flycast is a 64bit emu (Win64) so you will have to use the 64bit dll.

In the emu description for the windows version we can read "DirectX9 renderer"

So with luck renaming the 64 bit dll to d3d9.dll should work :)

 

I let you try.

 

DX9 has many rendeing issues and crashes with flycast, I recommend using just the opengl option. Set opengl in the menu and rename the dll to opengl.dll or opengl32.dll

Link to comment
Share on other sites

 
  • 2 weeks later...
Le 23/12/2021 à 00:39, ducon2016 a dit :

DX9 has many rendeing issues and crashes with flycast, I recommend using just the opengl option. Set opengl in the menu and rename the dll to opengl.dll or opengl32.dll

@Houb

Pour info j'utilise Retroarch en opengl pour tous les émulateurs (snes; PS1, Dreamcast, Saturn) et tout marche très bien! Aucun bug.

Le seul inconvénient est que je ne peux pas changer de Bezel pour chaque émulateur vu que Retroarch est commun. Du coup j'utilise un Bezel commun.

Link to comment
Share on other sites

 

Oh damn ... I haven't checked here in a while  ...now I need to convert all my games from the old mod to this one .... Great work dude :)

 

I quickly gave it a try on the new jconfig sonic dash ... but idk it just doesn't want to work right .. it's always cropped...

if you have that game set up it would be nice if you upload a special config for it :)

Link to comment
Share on other sites

 
Posted (edited)
Il y a 9 heures, mamefan2018 a dit :

Oh damn ... I haven't checked here in a while  ...now I need to convert all my games from the old mod to this one .... Great work dude :)

 

I quickly gave it a try on the new jconfig sonic dash ... but idk it just doesn't want to work right .. it's always cropped...

if you have that game set up it would be nice if you upload a special config for it :)

use the launcher included and jconfig

in ReSahde ini you can set PortraitMode if you have a rotated screen.

 

 

Edit (config and launcher updated):

btw I will try to do something better using the rotate.exe included in this game... check the next post

 

Edited by Houb
Link to comment
Share on other sites

 
Posted (edited)

so here something with a better result (you need at least a FullHD screen mini 1920x1080)

you have to disable all jconfig d3d wrapper and to start the game using the launcher.

it will be launched in your desktop resolution. To get better result the launcher will now use rotate.exe if needed to rotate your screen configuration to portrait mode.

extract in the exe folder, don't use the .bat to launch the game: use the launcher included directly.

portrait and desktop mode are available (check reshade.ini)

enjoy :)

 

https://www.mediafire.com/file/ag4h29l15bnhcm4/SonicDashExtreme_ArcCabView1.0a.rar/file

Edited by Houb
Link to comment
Share on other sites

 
5 hours ago, Houb said:

so here something with a better result (you need at least a FullHD screen mini 1920x1080)

you have to disable all jconfig d3d wrapper and to start the game using the launcher.

it will be launched in your desktop resolution. To get better result the launcher will now use rotate.exe if needed to rotate your screen configuration to portrait mode.

extract in the exe folder, don't use the .bat to launch the game: use the launcher included directly.

portrait and desktop mode are available (check reshade.ini)

enjoy :)

 

https://www.mediafire.com/file/ag4h29l15bnhcm4/SonicDashExtreme_ArcCabView1.0a.rar/file

Thanks dude! ... you know I actually ended doing something similar after experimenting with it for some time before going to bed  ...I realized that if i start the game in vertical mode arcCabview works perfectly fine ..

I could rotate and use bezel with no problems at all ... so that what i did ... and created a quick ahk script to rotate screen before staring the game and rotate it back to normal on exit .. I just used a script that will do that without rotate.exe.

Link to comment
Share on other sites

 
il y a 19 minutes, mamefan2018 a dit :

Thanks dude! ... you know I actually ended doing something similar after experimenting with it for some time before going to bed  ...I realized that if i start the game in vertical mode arcCabview works perfectly fine ..

I could rotate and use bezel with no problems at all ... so that what i did ... and created a quick ahk script to rotate screen before staring the game and rotate it back to normal on exit .. I just used a script that will do that without rotate.exe.

this is basicaly what the launcher is doing now :)

Link to comment
Share on other sites

 
Posted (edited)

here the launcher code (ahk)

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetTitleMatchMode, 1
DetectHiddenWindows, On
DetectHiddenText, On
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
If A_IsCompiled
	menu, tray, NoStandard
WinTitle := "A"
WinID := 0


IfNotExist, ReShade.ini
{
	MsgBox, ReShade.ini is missing
	ExitApp
}
IfNotExist, d3d9.dll
{
	MsgBox, Reshade's d3d9.dll is missing
	ExitApp
}
IfNotExist, ArcCabView\Shaders\ArcCabView.fx
{
	MsgBox, ArcCabView shader (ArcCabView\Shaders\ArcCabView.fx) is missing
	ExitApp
}
IfNotExist, ArcCabView\Presets\ArcCabView.ini
{
	MsgBox, ArcCabView preset (ArcCabView\Presets\ArcCabView.ini) is missing
	ExitApp
}

VarSetCapacity(dM,156,0), NumPut(156,2,&dM,36), NumPut(0x5c0000,dM,40)
DllCall("EnumDisplaySettingsA", UInt,0, UInt,-1, UInt, &dM)
0ResX := NumGet(&dM, 108, "uint4")
0ResY := NumGet(&dM, 112, "uint4")
0Refr := NumGet(&dM, 120, "uint4")

if (0ResX > 0ResY)
{
	IfNotExist, rotate.exe
	{
		MsgBox, rotate.exe is missing
		ExitApp
	}
	if ((0ResX < 1920) Or (0ResY < 1080))
	{
		MsgBox, Sorry you need at least a FullHD (1920x1080) screen
		ExitApp
	}
}
else
{
	if ((0ResY < 1920) Or (0ResX < 1080))
	{
		MsgBox, Sorry you need at least a FullHD (1920x1080) screen
		ExitApp
	}
}

IniRead, ExeName, ReShade.ini, ArcCabView, ExeName, SonicDash_R_Ring.exe
IniRead, WinName, ReShade.ini, ArcCabView, WinName, SonicDash
IniRead, PortraitMode, ReShade.ini, ArcCabView, PortraitMode, 0
IniRead, Rotate180, ReShade.ini, ArcCabView, Rotate180, 0
IniRead, FullStretch, ReShade.ini, ArcCabView, FullStretch, 0
IniRead, FullResolution, ReShade.ini, ArcCabView, FullResolution, 1
if ((A_Args[1] = "p") Or (A_Args[1] = "-p"))
	PortraitMode := 1
if (0ResX < 0ResY)
	PortraitMode := 1
if Not(FullResolution)
{
	ResX := 1080
	ResY := 1920
}
else
{
	if (0ResX > 0ResY)
	{
		ResX := 0ResY
		ResY := 0ResX
	}
	else
	{
		ResX := 0ResX
		ResY := 0ResY
	}
}
IfExist, %ExeName%
{
 IniWrite, 4, ReShade.ini, OVERLAY, TutorialProgress
 IniWrite, 4, ReShade.ini, GENERAL, TutorialProgress
 IniWrite, .\ArcCabView\Presets\ArcCabView.ini, ReShade.ini, GENERAL, CurrentPresetPath
 IniWrite, .\ArcCabView\Presets\ArcCabView.ini, ReShade.ini, GENERAL, PresetFiles
 IniWrite, .\ArcCabView\Presets\ArcCabView.ini, ReShade.ini, GENERAL, PresetPath
 IniWrite, .\ArcCabView\Shaders, ReShade.ini, GENERAL, EffectSearchPaths
 IniWrite, .\ArcCabView\Captures, ReShade.ini, SCREENSHOT, SavePath
 IniWrite, .\ArcCabView\Captures, ReShade.ini, GENERAL, ScreenshotPath
 IniWrite, .\ArcCabView\Textures, ReShade.ini, GENERAL, TextureSearchPaths
 Gui, Color, Black
 Gui +AlwaysOnTop -Caption +ToolWindow
 Gui, Show, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight%
 if (PortraitMode)
 {
	IniWrite, 0, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, USE_BEZEL
	IniWrite, 9.000000`,16.000000, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, InGame_ratio
	IniWrite, 1, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, NO_ROTATE
	if (0ResX > 0ResY)
	{
		if (Rotate180)
			IniWrite, 0, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, ROTATED_180
		else
			IniWrite, 1, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, ROTATED_180
	}
	else
	{
		if (Rotate180)
			IniWrite, 1, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, ROTATED_180
		else
			IniWrite, 0, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, ROTATED_180
	}
 }
 else
 {
	IniWrite, 1, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, USE_BEZEL
	IniWrite, 3.000000`,4.000000, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, InGame_ratio
	IniWrite, 2, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, NO_ROTATE
	if (Rotate180)
		IniWrite, 1, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, ROTATED_180
	else
		IniWrite, 0, ArcCabView\Presets\ArcCabView.ini, ArcCabView.fx, ROTATED_180
 }
 if (0ResX > 0ResY)
	Run, rotate.exe 270 %ResX% %ResY%
 MouseMove, 4000, 0, 0
 Run, %ExeName%,,,ExePID
 MouseMove, 4000, 0, 0
 WinWaitActive, %WinName%,, 5
 If Not(ErrorLevel)
  WinGet, WinID, ID, %WinName%
 MouseMove, 4000, 0, 0
 ToggleFakeFullscreen(WinID)
 Sleep, 2000
 Gui, Hide
 While (ExePID)
 {
	Sleep, 500
	Process, Exist, %ExePID%
	ExePID := ErrorLevel
 }
 Gui, Show
 FileDelete, ArcCabView\reshade-ArcCabView-*
 if (0ResX > 0ResY)
	Run, rotate.exe 0 %0ResX% %0ResY%
}
else
 MsgBox, Game's exe %ExeName% not found
ExitAPP


ToggleFakeFullscreen(WinID)
{
 CoordMode Screen, Window
 static WINDOW_STYLE_UNDECORATED := -0xC40000
 static savedInfo := Object()
 if !(WinID)
  WinGet, WinID, ID, A
 if (savedInfo[WinID])
 {
  inf := savedInfo[WinID]
  WinSet, Style, % inf["style"], ahk_id %WinID%
  WinMove, ahk_id %WinID%,, % inf["x"], % inf["y"], % inf["width"], % inf["height"]
  savedInfo[WinID] := ""
 }
 else
 {
  savedInfo[WinID] := inf := Object()
  WinGet, ltmp, Style, ahk_id %WinID%
  inf["style"] := ltmp
  WinGetPos, ltmpX, ltmpY, ltmpWidth, ltmpHeight, ahk_id %WinID%
  inf["x"] := ltmpX
  inf["y"] := ltmpY
  inf["width"] := ltmpWidth
  inf["height"] := ltmpHeight
  WinSet, Style, %WINDOW_STYLE_UNDECORATED%, ahk_id %WinID%
  mon := GetMonitorActiveWindow(WinID)
  SysGet, mon, Monitor, %mon%
  WinMove, ahk_id %WinID%,, %monLeft%, %monTop%, % monRight-monLeft, % monBottom-monTop
 }
}

GetMonitorAtPos(x,y)
{
 SysGet monitorCount, MonitorCount
 i := 0
 while(i < monitorCount)
 {
  SysGet area, Monitor, %i%
  if ( areaLeft <= x && x <= areaRight && areaTop <= y && y <= areaBottom )
  return i
  i := i+1
 }
 return -1
}

GetMonitorActiveWindow(WinID)
{
 WinGetPos x,y,width,height, ahk_id %WinID%
 return GetMonitorAtPos(x+width/2, y+height/2)
}

Edit I found a few issues and the config available a few post above has been updated to fix them :)

Edited by Houb
Link to comment
Share on other sites

 
1 hour ago, Houb said:

this is basicaly what the launcher is doing now :)

Oh yeah ... when you said you made use of rotate.exe , I knew it was similar to what I ended up doing ... ArcCab works perfectly fine with it if it runs in its native vertical mode ...

only difference is that I used a more simple script cuz I just wanted it to just rotate .. and didn't need all the checks that u have in ur script which of course r there to make it work for everyone and make sure nothing is missing .

and I just didn't use rotate.exe ...  used a script that does the same thing ...

 

and I'm gradually migrating to ArcCabview .. you really did a great job with it  :very-good: ...easy to use and I got all the options that I need .

Link to comment
Share on other sites

 
Il y a 7 heures, mamefan2018 a dit :

Oh yeah ... when you said you made use of rotate.exe , I knew it was similar to what I ended up doing ... ArcCab works perfectly fine with it if it runs in its native vertical mode ...

only difference is that I used a more simple script cuz I just wanted it to just rotate .. and didn't need all the checks that u have in ur script which of course r there to make it work for everyone and make sure nothing is missing .

and I just didn't use rotate.exe ...  used a script that does the same thing ...

 

and I'm gradually migrating to ArcCabview .. you really did a great job with it  :very-good: ...easy to use and I got all the options that I need .

 

I never found a very good script nor a good way to rotate the display. If you have a good one I would be interrested because mine doesn't work with windows7 :)

Link to comment
Share on other sites

 
9 minutes ago, Houb said:

 

I never found a very good script nor a good way to rotate the display. If you have a good one I would be interrested because mine doesn't work with windows7 :)

 

this is the one i used and it works in win 7 and win 10 for me ... try it and cycle between F1 to F4 and hopefully it works for you .

 

F1::scrRotate(3)			; rotating to 3 o'clock
F2::scrRotate(180)			; rotating 180°
F3::scrRotate(9)			; rotating to 9 o'clock
F4::scrRotate(360)			; rotating 360° (default)


scrRotate(param:="") {
	if param not in 0,3,6,9,12,90,180,270,360,default,d,t,r,b,l
		MsgBox % "Valid parameters are: 0,3/6/9/12/90/180/270/360/default/d/t/r/b/l"
	else {
		mode:=	(param=0) || (param=12)  || (param=360) || (param=t)?	DMDO_DEFAULT:=0
			:	(param=9) || (param=90)	 || (param=r)				?	DMDO_90		:=1 
			:	(param=6) || (param=180) || (param=b)				?	DMDO_180	:=2
			:	(param=3) || (param=270) || (param=l)				?	DMDO_270	:=3
			:	(param=default)										?	DMDO_DEFAULT:=0
			:	(param=d)											?	DMDO_DEFAULT:=0
		VarSetCapacity(DEVMODE, 220, 0)
		NumPut(220, DEVMODE, 68, "short")										; dmSize
		DllCall("EnumDisplaySettingsW", "ptr", 0, "int", -1, "ptr", &DEVMODE)

		width	:= NumGet(DEVMODE, 172, "uint")
		height	:= NumGet(DEVMODE, 176, "uint")

		NumPut(width, DEVMODE, 176, "int")
		NumPut(height, DEVMODE, 172, "int")
		NumPut(mode, DEVMODE, 84, "int")										; dmDisplayOrientation
		DllCall("ChangeDisplaySettingsW", "ptr", &DEVMODE, "uint", 0)
		}
	}

 

Link to comment
Share on other sites

 
Posted (edited)

@mamefan2018 Thanks! :)

I updated your code to be more flexible, more complete and to fix a few bugs I found.

So now it's fine and able to change any resolution/orientation/refresh as we want :)

here the updated code with an auto running example :

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

VarSetCapacity(DEVMODE, 220, 0), NumPut(220, DEVMODE, 68, "short")
DllCall("EnumDisplaySettingsW", "ptr", 0, "int", -1, "ptr", &DEVMODE)
0ResX := NumGet(DEVMODE, 172, "uint")
0ResY := NumGet(DEVMODE, 176, "uint")
0Refr := NumGet(DEVMODE, 184, "uint")
0Angl := NumGet(DEVMODE, 84, "uint")

;Examples
ScreenResSwitch(600,800,60,1)
Sleep, 10000
;MsgBox, %0ResX% - %0ResY% - %0Refr% - %0Angl%
ScreenResSwitch(0ResX,0ResY,0Refr,0Angl)
ExitApp




ScreenResSwitch(Width:=0, Height:=0, Refr:=0, Orient:=0)
{
	;Orient values: 0 (Landscape), 1(Portrait 90°), 2(Landscape Flipped 180°) or 3(Portrait Flipped 270°)
	If (Orient=0 And Height>Width)
		Orient := 3
	VarSetCapacity(DEVMODE, 220, 0)
	NumPut(220, DEVMODE, 68, "short")
	DllCall("EnumDisplaySettingsW", "ptr", 0, "int", -1, "ptr", &DEVMODE)
	0ResX := NumGet(DEVMODE, 172, "uint")
	0ResY := NumGet(DEVMODE, 176, "uint")
	0Refr := NumGet(DEVMODE, 184, "uint")
	0Angl := NumGet(DEVMODE, 84, "uint")
	; MsgBox, %0ResX% - %0ResY% - %0Refr% - %0Angl%
	If (Width=0 And Height=0 And (Abs(0Angl-Orient)=1 Or Abs(0Angl-Orient)=3))
	{
		Width := 0ResY
		Height := 0ResX
	}
	If (Width!=0)
		NumPut(Width, DEVMODE, 172, "int")
	If (Height!=0)
		NumPut(Height, DEVMODE, 176, "int")
	If (Refr!=0)
		NumPut(Refr, DEVMODE, 184, "int")
	NumPut(Orient, DEVMODE, 84, "int")
	DllCall("ChangeDisplaySettingsW", "ptr", &DEVMODE, "uint", 0)
}

The only issue I found :

- it doesn't work with nvidia custom resolutions... but for the rest it's ok :)

- still some issues with Windows7 (at least on my pincab)

 

Edited by Houb
Link to comment
Share on other sites

 
4 hours ago, Houb said:

@mamefan2018 Thanks! :)

I updated your code to be more flexible, more complete and to fix a few bugs I found.

So now it's fine and able to change any resolution/orientation/refresh as we want :)

here the updated code with an auto running example :


#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

VarSetCapacity(DEVMODE, 220, 0), NumPut(220, DEVMODE, 68, "short")
DllCall("EnumDisplaySettingsW", "ptr", 0, "int", -1, "ptr", &DEVMODE)
0ResX := NumGet(DEVMODE, 172, "uint")
0ResY := NumGet(DEVMODE, 176, "uint")
0Refr := NumGet(DEVMODE, 184, "uint")
0Angl := NumGet(DEVMODE, 84, "uint")

;Examples
ScreenResSwitch(600,800,60,1)
Sleep, 10000
;MsgBox, %0ResX% - %0ResY% - %0Refr% - %0Angl%
ScreenResSwitch(0ResX,0ResY,0Refr,0Angl)
ExitApp




ScreenResSwitch(Width:=0, Height:=0, Refr:=0, Orient:=0)
{
	;Orient values: 0 (Landscape), 1(Portrait 90°), 2(Landscape Flipped 180°) or 3(Portrait Flipped 270°)
	If (Orient=0 And Height>Width)
		Orient := 3
	VarSetCapacity(DEVMODE, 220, 0)
	NumPut(220, DEVMODE, 68, "short")
	DllCall("EnumDisplaySettingsW", "ptr", 0, "int", -1, "ptr", &DEVMODE)
	0ResX := NumGet(DEVMODE, 172, "uint")
	0ResY := NumGet(DEVMODE, 176, "uint")
	0Refr := NumGet(DEVMODE, 184, "uint")
	0Angl := NumGet(DEVMODE, 84, "uint")
	; MsgBox, %0ResX% - %0ResY% - %0Refr% - %0Angl%
	If (Width=0 And Height=0 And (Abs(0Angl-Orient)=1 Or Abs(0Angl-Orient)=3))
	{
		Width := 0ResY
		Height := 0ResX
	}
	If (Width!=0)
		NumPut(Width, DEVMODE, 172, "int")
	If (Height!=0)
		NumPut(Height, DEVMODE, 176, "int")
	If (Refr!=0)
		NumPut(Refr, DEVMODE, 184, "int")
	NumPut(Orient, DEVMODE, 84, "int")
	DllCall("ChangeDisplaySettingsW", "ptr", &DEVMODE, "uint", 0)
}

The only issue I found :

- it doesn't work with nvidia custom resolutions... but for the rest it's ok :)

- still some issues with Windows7 (at least on my pincab)

 

 I'm glad the script was useful  :) ...and Excellent job with the modifications you added to it  :very-good:.. now it can be really useful in a lot of  scenarios to change res and orientation easily .

Link to comment
Share on other sites

 
 

 

Il y a 3 heures, wizzards581 a dit :

Using this on Raiden 3 and 4.  Was able to rotate the screen but can't stretch some display.  I tried every setting adjustment but unsuccessful.  Anyone was able to?

 

Nesica versions work fine with CRTGeomMOD and so they will with ArcCabView :)

Check the CRTGeoMOD v3 configs, most probably you will have to set the video size in the shader's preset.

Link to comment
Share on other sites

 
  • 2 weeks later...

hello friend , how can i get this to work with retroarch mame? thank you

 

just tried openbor also no cigar

 

i press home reshade loads but see no fx, no sliders , no change to game

 

attached log

OPENGL32.log

Edited by horse
Link to comment
Share on other sites

 
Le 06/01/2022 à 22:12, Houb a dit :

Nesica versions work fine with CRTGeomMOD and so they will with ArcCabView :)

Check the CRTGeoMOD v3 configs, most probably you will have to set the video size in the shader's preset.

I tried to use ArcCabView instead of CRTGeomMOD with Power Instinct 5 (TTX version) and impossible to have the same rendering. With other games or emulators no problem.

I have to try ArcCabView with Aliens Extermination and Chaos Breaker. For these games CRTGeomMOD works great.

Edited by Safur
Link to comment
Share on other sites

 

Thanks so much for this!  I just put together a configuration for Fight'nRage - a fantastic retro beat-em-up.  The only problem with the game for me was the very-low internal resolution of 354x200.  It just looks way too blocky on my large screen displays. Between all the amazing CRT effects & slightly shrunken image, this is now far more pleasing to my eyes.  Is there a place to share this (if anyone's interested) and if so, what exactly do I need to share besides my bezel file?
o61edfa15c7341_FIGHT_N_RAGE2022-01-2319-53-05.jpg.782a5290b2eaf02101a1e5e490b02129.jpg

Link to comment
Share on other sites

 
 
 
On 1/3/2022 at 11:01 AM, Houb said:

so here something with a better result (you need at least a FullHD screen mini 1920x1080)

you have to disable all jconfig d3d wrapper and to start the game using the launcher.

it will be launched in your desktop resolution. To get better result the launcher will now use rotate.exe if needed to rotate your screen configuration to portrait mode.

extract in the exe folder, don't use the .bat to launch the game: use the launcher included directly.

portrait and desktop mode are available (check reshade.ini)

enjoy :)

 

https://www.mediafire.com/file/ag4h29l15bnhcm4/SonicDashExtreme_ArcCabView1.0a.rar/file

how do you set arccab to use different exe's?

Link to comment
Share on other sites

 

Hello, avec Mario&Sonic Rio 2016 qui est maintenant jouable avec jconfig, est-ce qu'il y a possibilité d'utiliser arcabview pour le lancer et ajouter un bezel?

Je suis un peu noob sur la question et pas sûr de savoir m'y prendre... et je ne sais quelle dll il faut utiliser.

Quelqu'un a-il essayé par hasard?

Merci :-)

Link to comment
Share on other sites

 

Thanks for the great app - It's given me some hope that I can finally get a few things working right on my screen. By any chance has anyone had any success with Luigi's Mansion + Jconfig? I've tried a few different combinations of the dll's but I can't seem to get the ArcCabView menu to appear?

Link to comment
Share on other sites

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
  • Create New...