Main > Driving & Racing Cabinets
Link play on San Francisco Rush & all vegas/seattle games
jorgenjl2:
Here is a part of a log file from Mame ini log I got but it seemed the same as the log for the PCs that did not disconnect. I do get an error in the Windows event log though for the ones that disconnect
Application event viewer error:
Faulting application name: mame_SFRushRock.exe, version: 0.261.0,0, time stamp: 0x656525e5
Faulting module name: mame_SfRushRock,exe, version: 0,261.0.0, time stamp: 0x656525e5
Exception code: 0x0000005
--- Code: ---Log file output Mame near end:
[:pci:00.0] config_read 00:08.0:10 08000008 @ ffffffff
[:pci: 08.0] command = 0002
: pc1:00.01
config write 00:08.0:04 00000002 @ ffffffff
: pci: 00.01
config_read 00:08.0:08 03000002 @ ffffffff
[:pci: 00.01
config_read 00:08.0:00 0001121a @ ffffffff
l:pci:00.01
config_read 00:08.0:00 0001121a @ ffffffff
[:pc1:00.01
':maincpu (8008FA88): unmapped configuration_
_space memory write to 4000 = 00000000 & FFFFFFFF
[:pci: 00.0] config write 00:08.0:0 00000000 @ fffffffF [:pci: 08.01
'maincpu' (8008FA88): voodoo_pci_device pictri_w (initEnable) offset 40 - 00000001 & FFFFFFFF
[:pci: 00.0] config write 00:08.0:40 00000001 @ ffffffff pci: 08.01
':maincpu (8008FA88): voodoo_pci device pcictri_w to offset 44 = 00000000 & FFFFFFFF
[:pci:00.01
config write 00:08.0:44 00000000 @ ffffffff
[:pci: 08.0]
'maincpu' (8008FA88): voodoo_pci_device peictriw to offset 48 = 00000000 & FFFFFFFF
lipci: 00.01
config write 00:08.0:48 00000000 @ ffffffff
[:pci: 08.0] ':maincu' (8008F88): voodoo_pci device pcictrl_w (initEnable) offset 40 = 00000003 & FFFFFFFF
[:pci:00.01 config write 00:08.0:40 00000003 @ ffffffff
[:pci: 08.0] ':maincpu' (800B3220): voodoo_pci device pcictri_w (initEnable) offset 40 - 00000005 & FFFFFFFF
[:pci:00.01
config_write 00:08.0:40 00000005 @ ffffffff
[:pci: 08.07
:maincpu' (80081F98):voodoo_pci device peictriw (initEnable) offset 40 - 00000003 & FFFFFFFF
[:pci: 00.01
config write 00:08.0:40 00000003 @ ffffffff
l:pci: 08.0]
':maincpu' (800B3220): voodoo_pci device pcictri_w (initEnable) offset 40 - 00000005 & FFFFFFFF
•pc1:00.01
config write 00:08.0:40 00000005 @ ffffffff
[:pci: 08.01
maincpu'
(800B3220): voodoo_pci device pcictrl_w (initEnable) offset 40 - 00000003 & FFFFFFFF
[:pci: 00.0] config write 00:08.0:40 00000003 @ ffffffff [:pci:08.0:voodoo] internal
_lfb_r: Buffer offset out of bounds x-128 y-100 offset-00019080 bufoffs=00014580
[:pci: 08.0:voodoo]
':maincpu* (800B3220): Unexpected write to register vRetrace[1.81] = 00000000
[:pci: 08.0:voodoo]
'maincpu'
(8003220): Unimplemented write to register maxRgbDelta [1.8C] = 00000000
V: pci: 00.072
"maincpu'
(800B3220): unmapped configuration_space memory write to 400C0 - 00000000 & FFFFFFFF
Lapci:00.0] config write 00:08.0:0 00000000 @ ffffffff [: pci: 08.0:voodoo] hSync=23-640, bp=92, vis=511
vSync=3-411, bp=24, vis=384
[:pci: 08.0:voodoo] Horiz: 92-602 (665 total)
Vert: 24-407 (414 total) -- [:pci: 08.0:voodoo] Medium resolution, 60.386473 Hz
[epci: 08.0:voodoo] yoffs: 24 vsyncstart: 411 vsyncstop: 0
V: pci: 08.0: voodoo]
'maincpu* (80081F98): Unimplemented write to register maxRgbDelta[1.8C] = 00080408
[: pci: 08.0] ':maincpu (800B3220): voodoo_pci _device pcictri_w (initEnable) offset 40 - 00000005 & FFFFFFFF
Lipci: 00.0] config write 00:08.0:40 00000005 @ ffffffff [pci: 08.01
"maincpu'
(80081F98): voodoo_pci device pcictrl_ (initEnable) offset 40 - 00000003 & FFFFFFFF
[:pci: 00.0] config write 00:08.0:40 00000003 @ ffffffff
L•pci: 08.01
"maincpu'
(800B3220): voodoo_pci_device pcictri_w (initEnable) offset 40 - 00000005 & FFFFFFFF|
I
[: pci: 00.01
config write 00:08.0:40 00000005 @ ffffffff
V:pci: 08.01
'maincpu' (800B3220): voodoo_pci
device pcictri w (initEnable) offset 40 - 00000003 & FFFFFFFF.
[:pci: 00.01
config write 00:08.0:40 00000003 @ ffffffff
Lapci: 08.01
':maincpu'
(8003220): voodoo_pci device pcictriw (initEnable) offset 40 = 00000005 & FFFFFFFF
L:pci: 00.01
config write 00:08.0:40 00000005 @ ffffffff
[: pci: 08.01
"maincpu'
(8003220): voodoo pci device pcictrl_w (initEnable) offset 40 = 00000003 & FFFFFFFF
[:pci: 00.0] config write 00:08.0:40 00000003 @ ffffffff
disconnect.
--- End code ---
jorgenjl2:
Here is the code to be able to automate adding and dropping the bridge for Windows 10. If you have Windows 11 you should be able to use a netsh command to not have to bother with this but win 10 and older apparently do not have the bridge netsh capability and Microsoft is not adding as far as I know.. Just use Launchbox to set this to run before (with wait to exit) and after the game kicks off. It uses a free program called Sikuli that uses AI to find images and click it for you.
1) Create a folder in your documents folder called Mame4.sikuli
2) Create a add_bridge.bat file
--- Code: ---java -jar "C:\Users\Emulation\Documents\Mame4.sikuli\sikulixidewin-2.0.6-20230417.153928-17.jar" -r "C:\Users\Emulation\Documents\Mame4.sikuli\Mame_add_bridge.py"
timeout /t 4 /nobreak >nul
C:\Users\Emulation\Documents\Mame4.sikuli\mame_foreground.ahk
--- End code ---
3) Create a remove_bridge.bat file
--- Code: ---java -jar "C:\Users\Emulation\Documents\Mame4.sikuli\sikulixidewin-2.0.6-20230417.153928-17.jar" -r "C:\Users\Emulation\Documents\Mame4.sikuli\Mame_remove_bridge.py"
timeout /t 4 /nobreak >nul
C:\Users\Emulation\Documents\Mame4.sikuli\BigBox_foreground.ahk
--- End code ---
4) Create a BigBox_foreground.ahk file
--- Code: ---#Persistent
SetTimer, CheckBigBox, 100
return
CheckBigBox:
If WinExist("Network Connections")
{
WinClose
Sleep, 500 ;wait 500ms to make sure closes ncpa.cpl
}
IfWinExist, ahk_exe BigBox.exe
{
WinActivate
SetTimer, CheckBigBox, Off
ExitApp
}
return
--- End code ---
and mame_foreground.ahk but change the exe you use for mame (may be mame.exe or mame64.exe but I use custom names so I can control each with Logitech app)
--- Code: ---#NoEnv
#SingleInstance force
#Persistent
Process, Close, mame_foreground.ahk
SetTimer, Checkmame, 100
return
Checkmame:
If WinExist, ahk_exe mame_SFRushRock.exe
{
WinActivate
SetTimer, Checkmame, Off
ExitApp
}
else if WinExist, ahk_exe mame_SFRush2049.exe
{
WinActivate
SetTimer, Checkmame, Off
ExitApp
}
else if WinExist, ahk_exe mame_calspeed.exe
{
WinActivate
SetTimer, Checkmame, Off
ExitApp
}
else if WinExist, ahk_exe mame_SFRush.exe
{
WinActivate
SetTimer, Checkmame, Off
ExitApp
}
else
{
SetTimer, Checkmame, Off
ExitApp
}
return
--- End code ---
5) Create a Mame_add_bridge.py
--- Code: ---import os
import subprocess
import time
from sikuli import *
# Function to open Network Connections
def open_network_connections():
subprocess.Popen(["control.exe", "ncpa.cpl"])
# Define the image patterns for the network bridge and context menu options
ethernet_pattern = Pattern(Pattern("ethernetmain.png").similar(.80).targetOffset(32,21))
ethernet_pattern_blue = Pattern(Pattern("ethernet_blue.png").targetOffset(26,22))
ethernet_pattern_line = Pattern(Pattern("ethernet_line.png").targetOffset(39,23))
remove_bridge_pattern = Pattern("removebridge.png")
add_bridge_pattern = Pattern("add_bridge.png")
# Open Network Connections window
open_network_connections()
#wait(1) # Wait for the window to open
def check_click_patterns():
matches = findAnyList([ethernet_pattern,ethernet_pattern_blue,ethernet_pattern_line])
if matches:
for match in matches:
if match.getImage() == ethernet_pattern.getImage():
rightClick(match)
print('Ethernet Pattern Found and Clicked')
if exists(add_bridge_pattern):
click(add_bridge_pattern)
print('Clicked add bridge')
return True
elif match.getImage() == ethernet_pattern_blue.getImage():
rightClick(match)
print('Ethernet Pattern Blue Found and Clicked')
if exists(add_bridge_pattern):
click(add_bridge_pattern)
print('Clicked add bridge from blue')
return True
elif match.getImage() == ethernet_pattern_line.getImage():
rightClick(match)
print('Ethernet Pattern Line Found and Clicked')
if exists(add_bridge_pattern):
click(add_bridge_pattern)
print('Clicked add bridge from line')
return True
return False
timeout =2
start_time = time.time()
while True:
if check_click_patterns():
break
if time.time() - start_time > timeout:
print('Timeout Reached, Exiting')
break
#wait(1) #wait a sec before checking again
# Close the Network Connections window
open_network_connections()#make sure back on window
wait(0.2)
type(Key.F4, KeyModifier.ALT)#close
--- End code ---
6) Create a Mame_remove_bridge.py
--- Code: ---import os
import subprocess
import time
from sikuli import *
# Function to open Network Connections
def open_network_connections():
subprocess.Popen(["control.exe", "ncpa.cpl"])
# Define the image patterns for the network bridge and context menu options
ethernet_pattern = Pattern(Pattern("ethernetmain.png").similar(.80).targetOffset(32,21))
ethernet_pattern_blue = Pattern(Pattern("ethernet_blue.png").targetOffset(26,22))
ethernet_pattern_line = Pattern(Pattern("ethernet_line.png").targetOffset(39,23))
remove_bridge_pattern = Pattern("removebridge.png")
add_bridge_pattern = Pattern("add_bridge.png")
# Open Network Connections window
open_network_connections()
#wait(1) # Wait for the window to open
def check_click_patterns():
matches = findAnyList([ethernet_pattern,ethernet_pattern_blue,ethernet_pattern_line])
if matches:
for match in matches:
if match.getImage() == ethernet_pattern.getImage():
rightClick(match)
print('Ethernet Pattern Found and Clicked')
if exists(remove_bridge_pattern):
click(remove_bridge_pattern)
print('Clicked remove bridge')
return True
elif match.getImage() == ethernet_pattern_blue.getImage():
rightClick(match)
print('Ethernet Pattern Blue Found and Clicked')
if exists(remove_bridge_pattern):
click(remove_bridge_pattern)
print('Clicked remove bridge from blue')
return True
elif match.getImage() == ethernet_pattern_line.getImage():
rightClick(match)
print('Ethernet Pattern Line Found and Clicked')
if exists(remove_bridge_pattern):
click(remove_bridge_pattern)
print('Clicked remove bridge from line')
return True
return False
timeout =2
start_time = time.time()
while True:
if check_click_patterns():
break
if time.time() - start_time > timeout:
print('Timeout Reached, Exiting')
break
#wait(1) #wait a sec before checking again
# Close the Network Connections window
open_network_connections()#make sure back on window
wait(0.2)
type(Key.F4, KeyModifier.ALT)#close
--- End code ---
7) Download sikulixidewin-2.0.6-20230417.153928-17.jar for free to be able to run the Sikuli script. This may require installing a jdk first like OpenJDK21U-jdk_x64_windows_hotspot_21.0.3_9.msi for free
8 ) Downoad the attached image files to the same folder. Sikuli looks for these images.
9) Set Launhbox to kick off the add upon start (with wait to exist) and the remove after
Done. Now Sikuli opens up the network adapter screen, looks for the connection called "Ethernet", right clicks it, and says add to bridge. Then after closing, it finds the Ethernet connection, right clicks, and clicks remove from bridge. I have three types of Ethernet images where one is not clicked, one is clicked where it is greyed, and then one where it was clicked but was clicked off of. This works perfect on my pc but should be tested obviously.
jorgenjl2:
Has anyone else tested Rush the Rock with the vpn/tap versions listed? How is it working if so?
I dropped the idea of using jumbo frames so I would not say that helps enough to change much of anything (and attract mode seems to crash with it enabled more often). Remember that I am using four players which is also more demanding than just two players and I have two i7 4th gen PCs and one ryzen 1600 and one ryzen 3600 pc so newer PCs may be even better. It works most of the time though.
jorgenjl2:
I was talking to SailorSat about the networking on this and she mentioned she saw this Project R. I see it was just recently updated. Looks pretty interesting for those interested in Rush the Rock.
https://t3hd0gg.com/project-r/#
Navigation
[0] Message Index
[*] Previous page
Go to full version