Main > Driving & Racing Cabinets
fooling with m2emu network
<< < (59/68) > >>
jorgenjl2:

--- Quote from: SailorSat on June 09, 2024, 12:47:07 pm ---Long Story short...

Start withOUT m2lagfix in the first place.

Grab a copy of the patched m2emulator from http://files.arianchen.de/m2em/emulator_multicpu_11b.zip
( might want to rename it instead of replacing the existing one )

Turn on FrameSync in m2network.ini

If using ONE machine set your RXPort and NextPort
If using MULTIPLE machines only set NextIP the next machine
-- Test your ---steaming pile of meadow muffin--- --

Known issues:

Random Freezes
IF you get random "freezes" for about 2 seconds, you might need lagfix.
This happens when packets are lost somewhere. You can try to fix this with m2lagfix.

Sega Rally timer goes haywire
The timer in Sega Rally acts up in multiplayer for unknown reason - Grab a copy of https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/srallyc.lua and put it in your scripts folder.

Indy500 or motoraid show NETWORK ERROR
If Indy500 or MotorRaid error out, you might give the "error patch"-scripts a try.
https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/indy500d.lua
https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/motoraid.lua

Flickering cars (in any game)
No reliable fix known - Works fine if the network is forcefully slowed down, but causes audio stuttering.
Need to "fix" the timers in m2em at some point.
Likewise turning on V-SYNC and running the game at 58Hz helps something, while breaking audio.


M2lagfix should only be used if packets are lost and for splitting off a datastream for my custom daytona live spectator.

--- End quote ---
Thanks for this. To clarify, m2lagfix only fixes “freezes” of the game and doesn’t fix the cars flashing? What does the patched emulator do and is that only needed for games other than Daytona USA (since I have never had any issues with network on regular besides the flashing/flickering cars). The flickering cars are pretty bad though so I will have to look at your old Daytona videos and see if it is anything like mine. Do you think it is worth trying jumbo frames or will that not help?
SailorSat:
As for the patched emulator - It introduces a small delay to the network intialization code.
this in practice only affects model2b and model2c games.

those newer games start the comm board and THEN setup the comm parameters afterwards.
real comm hardware takes some time to do a self test - the emulation did not, hence it would start up as "slave" by default.
in the past people cheatet their way in by entering and leaving service mode in the right moment - that is no longer needed.

I've had jumbo frames enabled for the longest time (for performance reasons actually), but had to disable them when I added the NPCAP-protocol.
--

as for the flickering cars in daytona...
on my development machine cars don't flicker at all - doesn't matter if 2 or 8 players
on my 8 player setup, some cars do flicker... like ONE of the 8 cabinets has flickering cars, the others dont - in other instances, only one car is flickering on all cabinets, while the others are fine.

--

long story short, the network code still isn't working correctly.
having dug into the binary for some time now, there are two possible issues right now.

1. the code runs "async" based on some timer - that timer appears to be off somehow.
if I slow down the video (via vsync) funky stuff happens
if I slow down the network other stuff happens.

2. the network code itself - the "buffer" to be exact
received data is handled different in M2EM to how my implementation in MAME does - as MAME links up absolutely fine in all games and M2EM does not, that "might" be a lead - moving stuff around in binary is a tricky thing though.
jorgenjl2:

--- Quote from: SailorSat on June 09, 2024, 02:50:09 pm ---As for the patched emulator - It introduces a small delay to the network intialization code.
this in practice only affects model2b and model2c games.

those newer games start the comm board and THEN setup the comm parameters afterwards.
real comm hardware takes some time to do a self test - the emulation did not, hence it would start up as "slave" by default.
in the past people cheatet their way in by entering and leaving service mode in the right moment - that is no longer needed.

I've had jumbo frames enabled for the longest time (for performance reasons actually), but had to disable them when I added the NPCAP-protocol.
--

as for the flickering cars in daytona...
on my development machine cars don't flicker at all - doesn't matter if 2 or 8 players
on my 8 player setup, some cars do flicker... like ONE of the 8 cabinets has flickering cars, the others dont - in other instances, only one car is flickering on all cabinets, while the others are fine.

--

long story short, the network code still isn't working correctly.
having dug into the binary for some time now, there are two possible issues right now.

1. the code runs "async" based on some timer - that timer appears to be off somehow.
if I slow down the video (via vsync) funky stuff happens
if I slow down the network other stuff happens.

2. the network code itself - the "buffer" to be exact
received data is handled different in M2EM to how my implementation in MAME does - as MAME links up absolutely fine in all games and M2EM does not, that "might" be a lead - moving stuff around in binary is a tricky thing though.

--- End quote ---

It looks like Daytona USA is not a later model b or model c game so I am guessing it won’t help me in my specific case so I will stick with the emulator I am using now. That is good to know if I dive into the other games.

I may try enabling jumbo frames in that case. You just set the mtu (9000?) on the PCs and then the router and that is it? No emulator specific changes right?

Since 8 simultaneous separate instances of m2 emulator running Daytona USA on your one development pc has zero flashing cars, that would probably tell us that the specs of the pc are probably unrelated (unlike SFRush Mame where the emulation lan speed might or might not require heavy spec PCs) and that it is related to sending data over the network. I guess I will just have to deal with the flashing cars. Actually you said only one pc flickers.. is it a pc wirh lower specs or is a random pc each time? I will test again to see what it is like on mine (all besides player 1 flicker or is it only one pc etc).
SailorSat:
My gaming setup actually consists of 9 identical machines.

i3-4170
4gb dual-channel DDR3
geforce gt730
GigaBit Ethernet with what used to be 5K jumboframes (as the M2EM sends 4k packets)
running (cloned) win7 installations of 128GB SSD

I tried to keep any differences as small as possible.

Live I've said, my MAME implementation of the network works fine, but -as the time of writing- MAME has several issues with the graphics.
Speed is not an issue at the moment, as these machines run most of the 3D racers MAME supports at way over 120% speed, so there should be enough wiggle room.

I will do a test though, changing the way my code handles received data to how the M2EM does - if it breaks something I shall try to patch M2EM in that regard >_<
MrThunderwing:

--- Quote from: SailorSat on June 09, 2024, 12:47:07 pm ---Long Story short...

Start withOUT m2lagfix in the first place.

Grab a copy of the patched m2emulator from http://files.arianchen.de/m2em/emulator_multicpu_11b.zip
( might want to rename it instead of replacing the existing one )

Turn on FrameSync in m2network.ini

If using ONE machine set your RXPort and NextPort
If using MULTIPLE machines only set NextIP the next machine
-- Test your ---steaming pile of meadow muffin--- --

Known issues:

Random Freezes
IF you get random "freezes" for about 2 seconds, you might need lagfix.
This happens when packets are lost somewhere. You can try to fix this with m2lagfix.

Sega Rally timer goes haywire
The timer in Sega Rally acts up in multiplayer for unknown reason - Grab a copy of https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/srallyc.lua and put it in your scripts folder.

Indy500 or motoraid show NETWORK ERROR
If Indy500 or MotorRaid error out, you might give the "error patch"-scripts a try.
https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/indy500d.lua
https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/motoraid.lua

Flickering cars (in any game)
No reliable fix known - Works fine if the network is forcefully slowed down, but causes audio stuttering.
Need to "fix" the timers in m2em at some point.
Likewise turning on V-SYNC and running the game at 58Hz helps something, while breaking audio.


M2lagfix should only be used if packets are lost and for splitting off a datastream for my custom daytona live spectator.

--- End quote ---

Thanks for this Ariane, greatly appreciated! I renamed the patched M2 exe and added it to an existing 4 player M2 single PC setup I've got (and added the frame sync info to the inis) and all seems good with Daytona. I still get a network error with Indy500 and the D version (I've previously had limited success getting it running in multiplayer in regular M2EMU - sometimes it links, sometimes it doesn't. Sometimes it links for a bit then fails after 1 game). I know nothing about LUA -How do you apply the patch for Indy? I tried Googling this, but I can't seem to find a simple answer...
Navigation
Message Index
Next page
Previous page

Go to full version