Game | Romset | 2 Players | 4 Players | 4 Players + Spectator | 8 Players | Notes |
Daytona USA (Saturn Ads) | daytonas | fine | fine | n/a | fine | |
ManxTT Superbike (Rev D, Deluxe) | manxtt | fine | fine | fine | fine | sometimes glitches out in race - works fine on next try |
Motor Raid | motoraid | fine | fine | fine | n/a | |
Sega Rally Championship | srallyc | fine* | fine* | fine* | n/a | use lua script to fix timer |
Indianapolis 500 (Rev A, Twin, Newer rev) | indy500 | fine | fine* | fine* | fine* | spectator = slave |
Indianapolis 500 (Rev A, Deluxe) | indy500d | fine | fine* | fine* | fine* | use lua script for reliable connection - mostly works, sometimes gets stuck on transmission selection -- spectator = slave |
Over Rev (Model 2B) | overrevb | fine | fine | n/a | n/a | you should link them in reverse order -- 1 > 4 > 3 > 2. |
Over Rev | overrev | fine | fine | n/a | n/a | you should link them in reverse order -- 1 > 4 > 3 > 2. |
Super GT 24h | sgt24h | fine | fine* | n/a | n/a | you need them linked in reverse order -- 1 > 4 > 3 > 2. -- black screen otherwise. |
Sega Touring Car Championship | stcc | fine | fine | fine | fine | use lua script for reliable link |
Wave Runner | waverunr | fine | fine* | n/a | n/a | use lua script for reliable link |
RAMBASE+A0A10A4
RAMBASE+A0A3220
RAMBASE+A1551D4
Nah, offline!
(http://images.arianchen.de/daytona/img_6754.jpg) (http://images.arianchen.de/daytona/img_6754.jpg)
DAAY TOOO NAAA ;)
I use Tungle for online play for Sega model2 & Super model3, link games. It works like a champ. No slow downs, no hiccups, runs at full speed.
It creates a VPN and I race Daytona with my buddy, yes I do know him. I am in South Carolina & he moved to Utah. We have been doing this for two years now, since he moved out there.
Once the VPN is set up & Model2, it rocks. Online play all the way, no desync's either.
Give it a try, you will love it. Who doesnt like Sega online :)
I use Tungle for online play for Sega model2 & Super model3, link games. It works like a champ. No slow downs, no hiccups, runs at full speed.
It creates a VPN and I race Daytona with my buddy, yes I do know him. I am in South Carolina & he moved to Utah. We have been doing this for two years now, since he moved out there.
Once the VPN is set up & Model2, it rocks. Online play all the way, no desync's either.
Give it a try, you will love it. Who doesnt like Sega online :)
I've actually played daytona online with Tunngle and also with hamachi and found no difference.
tron84@ you are using the line tool (dev) or is beginning simply games m2network.ini settings ?
What version of the m2 emu are you using?
Strange - 1.0 keeps flickering without framesync and hiccuping WITH framesync
I don't get it.
With that emulator.ini the game keeps flickering like ---steaming pile of meadow muffin---.
Are you playing as MASTER or SLAVE site?
slightly off-topic
sometimes even 8 players is not enough!
daytona @ gamescom 2013
(http://images.arianchen.de/gamescom/2013/tn_21082013710.jpg) (http://images.arianchen.de/gamescom/2013/21082013710.jpg)
(http://images.arianchen.de/gamescom/2013/tn_22082013729.jpg) (http://images.arianchen.de/gamescom/2013/22082013729.jpg)
What I can say for now is - the flickering cars are "out of order" frames.
Just overwriting the frame numbers DOES work and fix the flicker, however we get problems with the attract mode and track selection.
Goal for now is figuring out the "header" (first 32bytes of each frame). It contains a system state, a game state, and a message group.
First thing however was/is to "patch" the emulator itself to not send "M2EM" with every packet .) don't know if the real hardware sends a head (most likely SEGA).
Skip to 14:25 :D
Gamescom 2013 Recap by Inside Sim Racing (http://www.youtube.com/watch?v=Oh9b5dmjkY8#)
offset meaning
00-03 - SIG (M2EM / SEGA / 0x0000)
04 - NetState (0 = link, 1 = setup, 2 = online)
05 - position 1st (relative to car list)
06 - position 2nd
07 - position 3rd
08 - position 4th
09 - position 5th
0A - position 6th
0B - position 7th
0C - position 8th
0F - Frame Index (counts up)
1A - Node-ID (if hosting a game)
1B - GameStatus
1D - Group
20 - GameStatus
21 - SetupStatus
22 - GameStatus
23 - SetupStatus
24 - 0x81?
25 - car list - 2nd car
26 - car list - 3rd car
27 - car list - 4th car
28 - car list - 5th car
29 - car list - 6th car
2A - car list - 7th car
2B - car list - 8th car
2C - 0x00?
2D - TimeLeft Lo \ 64 per Second
2E - TimeLeft Hi /
D9 - Car ID (red = 00, blue = 01 etc.)
[/cod€]
a live camera you can disable tilemaps and looks cool. ;)
RAMBASE+0x1320=11
2p is labelled 1p in the live view and vice versa?
Fixed the problem with Player1 going invisible and "other" cars jumping a little. (yeah!)
Fixed the problem with Player1 going invisible and "other" cars jumping a little. (yeah!)
you are saying that fixed the flicker problem in rival cars?
How do you do this? Thanks :)
Big news first - I fixed those damn hiccups with framesync 1 - A simple tool between the last slave and the master unit fixed it.
you mean this track?
I guess that is the prototype of driving.
Teaser...
Daytona USA - Live Spectator / Statistics W.I.P. (http://www.youtube.com/watch?v=H7z1lypelKs#)
(http://images.arianchen.de/temp/daytona_overlay_test.png)
nearing "beta" mode :)
0x2810= 600
I think I can remove the section of track and car.off map 221B=51
off selectors 212B=02
off cars in single mode 209B=01
xxxx = 1 (attract mode) if 1 show graphics "link system"
= 2 (menu) if 2 show graphics "waiting for players"
= 3 (in game) if 3 show graphics "that you are currently using for graphics virtua racing "
[read byte to bits add graphics]
0x43E2= 0-attrac demo
-----------------------------------------------------------------------------------------------
1-select track
2-select track
3-select track
-----------------------------------------------------------------------------------------------
4-select track/transmission (transition between)
-----------------------------------------------------------------------------------------------
5-select transmission
6-select transmission
7-select transmission
8-select transmission
9-select transmission
10-select transmission
11-select transmission
-----------------------------------------------------------------------------------------------
12-select transmission/gentlemen start your engines (transition between)
-----------------------------------------------------------------------------------------------
13-gentlemen start your engines
14-gentlemen start your engines
15-gentlemen start your engines
-----------------------------------------------------------------------------------------------
16-in game
--------------------------------
Day 1 @ GamesCom 2014:
Got dynamic cameras up and running :)
Daytona USA - Live Spectator Alpha #4 "dynamic cameras" (http://www.youtube.com/watch?v=BAhNh1ggcUI#)
If some of you happen to be at GamesCom next week, come over to hall 10.2 (upper floor) and find the daytona at the retro area :)
Hall 10.2 E-041
So... There are still some things hardcoded (8 player setups only) for now, but I'll aiming for a public release this week.
I found some kind of table in memory with the cars for all network nodes
the start at 0x5180 and seem to be 0x300 bytes long.
so "local" node starts at 0x5180
5184 - node id
519C - car y
51A0 - car z
51A4 - car x
51A8 - pitch
51AC - roll
51B4 - speed
etc.
2nd car starts at 5480
3rd car at 5780
5482 - node 2 id
549C - car 2 y
etc.
nice to know, if i replace a remote node id, it will update the rest by itself. (good for the live cam)
still have to find out how to "control" the camera.
was thinking of adding a 9th car to the table, but i don't know the format of the npc cars yet.
0283FBB4 - npc 00
0283FC04 - npc 1
0283FC54 - npc 2
0283FCA4 - npc 3
0283FCF4
0283FD44
0283FD94
0283FDE4
0283FE34
0283FFC4 - npc 13
02840014 - npc 15
02840064 - npc 16
028400B4 - npc 20
02840104 - npc 28
028401F4 - npc 31
02840244 - npc 32
02840294 - npc 35
028402E4 - npc 42
02840334 - npc 46
02840384 - npc 51
028403D4 - npc 53
02840424 - npc 55
02840474 - npc 62
028404C4 - npc 66
02840514 - npc 69
02840564 - npc 71
028405B4 - npc 73
02840604 - npc 77
02840654 - npc 78
028406A4 - npc 80
028406F4 - npc 82
02840924 - npc 99
02840974 - npc 69 alt
02842F1C - big purple coin
02843728 - dice
0284373C - post?
0284378C - roulette
02843944 - virtua starting lights
028439E4 - virtua stock car?!
02843B38 - GOAL!
02843E44
02843BB0 - at
02843CF0 - mt
02843E94 - pylon
0284413C - pony
...
02844394
028443A8 - gigantic guy?!
028448E4 - adv course
028448F8 - exp course
0284490C - beg course
02844934 - bird
...
02844BA0
02844E20 - crew
02844E84 - daytona lights
028458E8 - some car?
02845C44 - cockpit at
02845C58 - cockpit mt
02846D88 - car AT
02846DB0 - car MT
02848890 - car 1
028488E0 - car 2
02848930 - car 3
02848980 - car 4
028489D0 - car 5
02848A20 - car 6
02848A70 - car 7
02848AC0 - car 8
02848B24 - npc 99
0284A30C - 1P
...
0284A3AC - 1P sideways left?!
...
0284A44C - 1p sideways right?!
...
[m2rx]
LocalHost=127.0.0.1
LocalPort=8001
RemoteHost=127.0.0.1
RemotePort=9000
StallDetection=1
[m2tx]
LocalHost=127.0.0.1
LocalPort=9000
RemoteHost=127.0.0.1
RemotePort=8001
[m2stats]
RemoteHost=127.0.0.1
RemotePort=8000
[client]
localhost=0.0.0.0
localport=8000
[live]
LocalHost=127.0.0.1
LocalPort=7001
RemoteHost=127.0.0.1
RemotePort=7002
[Network]
RxPort=9000
NextIP=192.168.0.2
NextPort=9000
FrameSync=1
[Network]
RxPort=9000
NextIP=192.168.0.3
NextPort=9000
FrameSync=1
[Network]
RxPort=9000
NextIP=192.168.0.4
NextPort=9000
FrameSync=1
[Network]
RxPort=9000
NextIP=192.168.0.5
NextPort=9000
FrameSync=1
[Network]
RxPort=9000
NextIP=192.168.0.6
NextPort=9000
FrameSync=1
[Network]
RxPort=9000
NextIP=192.168.0.8
NextPort=9000
FrameSync=1
[Network]
RxPort=9000
NextIP=192.168.0.10
NextPort=9000
FrameSync=1
[m2rx]
LocalHost=127.0.0.1
LocalPort=8001
RemoteHost=192.168.0.1
RemotePort=9000
[m2tx]
LocalHost=192.168.0.10
LocalPort=9000
RemoteHost=127.0.0.1
RemotePort=8001
[m2stats]
RemoteHost=127.0.0.1
RemotePort=8000
[client]
localhost=127.0.0.1
localport=8000
[live]
LocalHost=127.0.0.1
LocalPort=7001
RemoteHost=127.0.0.1
RemotePort=7002
[Network]
RxPort=7002
NextIP=127.0.0.1
NextPort=7001
FrameSync=1
The 8 player limit was probably based on some testing with regard to lag and speed.
If the games have more checks to perform, and even the extra variable added, could possibly cause some slower gameplay and or a lot more issues with lost positional data.
Also, it may be a real pain to wait for +15 players to join and play / not play... and make all the options selections in time.
Audio echo delays may also have been a factor. Hard to say.
[Network]
RxPort=9001
NextIP=127.0.0.1
NextPort=9002
FrameSync=1
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=127.0.0.1
RemotePort=9001
[m2tx]
LocalHost=127.0.0.1
LocalPort=9002
RemoteHost=192.168.1.245
RemotePort=9000
[Network]
RxPort=9001
NextIP=127.0.0.1
NextPort=9002
FrameSync=1
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=127.0.0.1
RemotePort=9001
[m2tx]
LocalHost=127.0.0.1
LocalPort=9002
RemoteHost=192.168.1.244
RemotePort=9000
[Network]
RxPort=8001
NextIP=127.0.0.1
NextPort=8002
FrameSync=1
--- slave[Network]
RxPort=7002
NextIP=127.0.0.1
NextPort=7001
FrameSync=1
--- m2lagfix[m2rx]
LocalHost=127.0.0.1
LocalPort=7001
RemoteHost=127.0.0.1
RemotePort=8001
StallDetection=1
[m2tx]
LocalHost=127.0.0.1
LocalPort=8002
RemoteHost=127.0.0.1
RemotePort=7002
[m2stats]
RemoteHost=127.0.0.1
RemotePort=-1
m2lagfix was intended to be wrapped around "any" m2em instance.Hi SailorSat. Just stumbled across this and since I am upgrading my cab I decided to finally get rid of the buggy connection between my M2 units.
I wrapped it around all of my m2em instances.
[Network]
RxPort=9001
NextIP=10.0.0.1
NextPort=9002
FrameSync=1
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=10.0.0.1
RemotePort=9001
[m2tx]
LocalHost=10.0.0.1
LocalPort=9002
RemoteHost=10.0.0.2
RemotePort=9000
RxPort=9001
NextIP=10.0.0.1
NextPort=9002
FrameSync=1
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=10.0.0.2
RemotePort=9001
[m2tx]
LocalHost=10.0.0.2
LocalPort=9002
RemoteHost=10.0.0.1
RemotePort=9000
Hm... I remember running into similar issues - try replacing 127.0.0.1 with 10.0.0.1 on the master, and 10.0.0.2 on the slave
If I remember correctly, UDP on 127.0.0.1 did work fine on my Win7 development rig, but not on my XP64 rig in the cab.
Thanks I will give it a go tonight, your a star.
Thanks I will give it a go tonight, your a star.
Did it work?
Hi, no it didnt.Thanks I will give it a go tonight, your a star.
Did it work?
P.S. I see myself "patching" some ROMs soon ^^
https://www.youtube.com/watch?v=2rqSSTjN7Mg (https://www.youtube.com/watch?v=2rqSSTjN7Mg)
"but consider m2lagfix obsolete soon"
Like I explained earlier, don't use 127.0.0.1 - use the local address (192.168.69.251 on master, 192.168.69.252 on slave) :(
P.S. I see myself "patching" some ROMs soon ^^
https://www.youtube.com/watch?v=2rqSSTjN7Mg (https://www.youtube.com/watch?v=2rqSSTjN7Mg)
require("model2"); -- Import model2 machine globals
function Frame()
I960_WriteDWord(0x00555214,0x00000000)
end
require("model2"); -- Import model2 machine globals
function Frame()
I960_WriteDWord(0x005ec6b0,0x00000000)
end
require("model2"); -- Import model2 machine globals
function Frame()
I960_WriteDWord(0x005195d4,0x00000000)
end
Master
[Network]
RxPort=9001
NextIP=192.168.1.3
NextPort=9001
FrameSync=1
Slave
[Network]
RxPort=9001
NextIP=192.168.1.110
NextPort=9001
FrameSync=1
m2 network should look like that on each machine. Read back on SailorSat instructions earlier in this thread
Great find! I just tried this and was able to connect with 2 players linked. The attract mode screen says 2 players wanted and when one player inserts a coin, the second screen goes to the "waiting entry" screen like normal. However, when I start a 2 player race, I don't see the other player and even the count down timer is not synced between the two sessions. It's like we are playing single player on a linked machine. I have the ID's set to Car 1 and Car 2 and changed the cabinet type to "twin" on both PC's. Strange....
Hm... Even with frame perfect sync, the timers in Sega Rally are all over the place. And I still can't get STCC to link up at all - It says "network check success" but never goes to attract mode.
gonna bump this post since it's relevant
I was messing with m2 emulator and found a way to link up in Sega Touring Car Championship. But only 2 player so far, can't seem to get it working 4 player yet
obviously set up game as per usual with master as Car 1 and slave as Car 2. Exit the test mode at the same time on both pcs
Will connect and go ingame and work properly! :cheers:
sometimes it did freeze on the connected screen however and never load attract mode which resulted in me having to exit and try again
Now previously we were kinda doing this but we only went to test menu and back out on the master and we never did it with slave which resulted in some conflict id happening sometimes and once they went ingame they didn't even seem to link up as you would press start and nothing popped up on other pc etc
I tried this 4 player too before, but could never get the attract mode to load after trying 4-5 times with my wife. Exiting test mode at same time always resulted in them connecting and just staying on that screen
I didn't actually realise model 2 was playable in MAME at this point, i'll have to give it a look. Cheers for the heads up, SailorSat, and always keen to hear more about what you're working on!It does for M2, M2A and M2B - although my i7 has trouble keeping 100% speed :)
Haha, that's awesome. Sadly my cabs have Core2Duo E8500 cpu's, so model2 isn't going to run well through MAME :/Same for me :)
haha awesome !! Is the network more stable with one instance of each emulator?Maybe - MAME as master and M2EM running slaves only seems to be much more reliable.
Damn... Sometimes I should start from scratch. Turns out I patched around to much in the netcode to get it booting xD
So I can get STCC to link up using the previous mentioned method (service mode) pretty reliable.
However for some unknown reason there seem to be various "new" problems.
With my external master tool the network stays synched enough to drive an entire race - But the performance drops to about 45 fps.
Without my modifications, the game stays at 59fps, but looses sync pretty quickly.
Guess it's time for some dynamic delays in my tool then.
What game was that for, Boomslang?
Ah so you feed the car data into memory directly. Pretty neat idea. Keep it up :)Hi :) I have a few questions to add.
Running Indy 500 multiplayer (or any model 2 game) would most likely require that m2lagfix. Speak of m2lagfix, I would like to know the current progress on that (or a new version of m2emu updated for later operating systems). Sadly, the only way to run these Model 2B or 2C games is to exit test mode at the same time. Very finicky network coding atm.Ah so you feed the car data into memory directly. Pretty neat idea. Keep it up :)Hi :) I have a few questions to add.
Im a bit muddled on what the status of Indy 500 multiplayer is, will it run well now and be completely playable?
What is the best way to run it with 3-5 players?
How do i run that lua file you made for it?
Do you find XP x64 runs better for this or other Windows versions?
Running Indy 500 multiplayer (or any model 2 game) would most likely require that m2lagfix. Speak of m2lagfix, I would like to know the current progress on that (or a new version of m2emu updated for later operating systems). Sadly, the only way to run these Model 2B or 2C games is to exit test mode at the same time. Very finicky network coding atm.Ah so you feed the car data into memory directly. Pretty neat idea. Keep it up :)Hi :) I have a few questions to add.
Im a bit muddled on what the status of Indy 500 multiplayer is, will it run well now and be completely playable?
What is the best way to run it with 3-5 players?
How do i run that lua file you made for it?
Do you find XP x64 runs better for this or other Windows versions?
Theres a lua fix to indy 500 that Sailorsat madeYeah mate i found that worked too, i dont know if im using m2lagfix or not, no idea how to tell if it is working or if the emulators are still just talking direct and ignoring the lagfax file.
I've got it somewhere so I'll try post it
At least 4 players works fine now with it
Theres a lua fix to indy 500 that Sailorsat made
I've got it somewhere so I'll try post it
At least 4 players works fine now with it
Theres a lua fix to indy 500 that Sailorsat made
I've got it somewhere so I'll try post it
At least 4 players works fine now with it
Hm... That should work. Do you get any error?The game won’t link at all, I get network error immediately after the screen that says master and slaves, nodes etc. if I remove the code from the script then it works fine and links but fails like it used to randomly.
Hm... Then I can't help.Do I still need to run lagfix also or does it only need the script and framesync to work?
I have "FrameSync=1" in "m2network.ini" and the script.
Other than that I didn't change anything.
Hm... Then I can't help.
I have "FrameSync=1" in "m2network.ini" and the script.
Other than that I didn't change anything.
G'day Vandale, was wonderin'... (from your "G'Day mate" earlier), and was wondering, what this section of your lua script does exactly?-Gday mate, haha, yes I’m in little ol New Zealand. So is Boomslang.
function Frame()
I960_WriteDWord(0x005ec6b0,0x00000000)
So ages ago I mucked around with a hack to make network work while including AI positions
I've finally coded it up over the weekend which was a massive pain to get working right but have it working really well for 2p,3p and 4p setups so far
Just start race as normal and everything happens automatically as soon as race starts, also made the results screen at end work correctly
One side effect is the AI cars are coloured like normal multiplayer cars as opposed to the normal purple but otherwise it seems to work pretty good
[Network]
RxPort=7001
NextIP=127.0.0.1
NextPort=7002
FrameSync=1
[Network]
RxPort=7002
NextIP=127.0.0.1
NextPort=7001
FrameSync=1
require("model2"); -- Import model2 machine globals
function Init()
end
function Frame()
I960_WriteDWord(0x005ec6b0,0x00000000)
Model2_SetWideScreen(1)
end
[Network]
Framesync=1 ; test for stopping flickering cars
RxPort=1978
NextIP=192.168.1.2 ; sends info to this ip
NextPort=1978
[Network]
Framesync=1 ; test for stopping flickering cars
RxPort=1978
NextIP=192.168.1.1 ; sends info to this ip
NextPort=1978
require("model2"); -- Import model2 machine globals
function Init()
end
function Frame()
I960_WriteDWord(0x005ec6b0,0x00000000)
Model2_SetWideScreen(1)
end
So... I just tried it (again).
…….works like charm
So it turned out, I cannot hook the vsync the way I wanted to do.
However there still is light at the end of the tunnel :D
Small LUA patch to "disable" the infamous "NETWORK ERROR" in Indy500 and Motoraid - turns out the code has some "delay" counter going up till 0xFF, and then deeming the network unreliable. By writing 0 (read ZERO) to this counter every single frame we can be sure to never reach that value. - Not exactly the way I wanted to fix things, but still should be enough to get a "stable" 8 player setup running.
indy500d.luaCode: [Select]require("model2"); -- Import model2 machine globals
function Frame()
I960_WriteDWord(0x00555214,0x00000000)
end
indy500.luaCode: [Select]require("model2"); -- Import model2 machine globals
function Frame()
I960_WriteDWord(0x005ec6b0,0x00000000)
end
motoraid.luaCode: [Select]require("model2"); -- Import model2 machine globals
function Frame()
I960_WriteDWord(0x005195d4,0x00000000)
end
Yes - next step will be replacing that hardcoded stuff with dynamic values.
would be great to try with 2 players ;D
To be honest - I don't remember :D
I did a lot of additions, but I'm not sure if it works in a 2-player setup correctly.
If you add an extra Sega Rally machine into your Model 2 Network, I think it'll automatically default to a live cam if no one's playing on it.Yup, I think Indy 500 and STCC do the same - they switch between attract mode and "live cam" every 30 seconds or something like that.
Hey, I'm just jumping in here having just skimmed through the recent comments in the thread, but for Daytona USA 2 if you want a live cam, all you need to do is add an extra machine in to your network and configure it as a live cam in the test menu.
If you add an extra Sega Rally machine into your Model 2 Network, I think it'll automatically default to a live cam if no one's playing on it. I did some single PC 3 player games of Sega Rally awhile back, but I opened the emulators up in a 4P network, so that when I used the desktop option to 'display windows side-by-side' it kept them in the right aspect ratio. The player 4 window turned into a live cam, and I can't recall actually changing anything in the test menu to make it do that. This is all without lagfix or any scripts BTW.
I'll try to get my lazy ass up and check the stuff and provide some instructions on how to use it.
Ah... I see...I did have a version of this; just forgot to put it in the scripts folder for the spectator. But now I'm getting the above error whether I have a script in the folder or not.
I guess you are missing the patch-script for the special inputs.
https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/daytonas.lua
Emulator 1
Master
Car 1
[Network]
RxPort=15612
NextIP=127.0.0.1
NextPort=15613
FrameSync=1
Emulator 2
Slave
Car 2
[Network]
RxPort=7002
NextIP=127.0.0.1
NextPort=7003
FrameSync=1
Emulator 3
Slave
Car 3
[Network]
RxPort=7003
NextIP=127.0.0.1
NextPort=7004
FrameSync=1
Emulator 4
Slave
Car 4
[Network]
RxPort=7004
NextIP=127.0.0.1
NextPort=7001
FrameSync=1
Sats Emulator
Slave
Car 2
[Network]
RxPort=9001
NextIP=127.0.0.1
NextPort=8002
FrameSync=1
Lagfix
[network]
localhost=127.0.0.1
localport=7001
remotehost=127.0.0.1
remoteport=7002
[emulator]
host=127.0.0.1
localport=15613
remoteport=15612
[stats]
remotehost=127.0.0.1
remoteport=8000
Stats
[client]
localhost=0.0.0.0
localport=8000
[live]
LocalHost=127.0.0.1
LocalPort=9002
RemoteHost=127.0.0.1
RemotePort=9001
Finally got Daytona and Motoraid Network/LAN running pretty smoothly using two separate PCs. I'm still struggling to get Wave Runner to link consistently. I can only get them to link up maybe 25% of the time. Otherwise I either get a "network error" or "checking internet connection". Is anyone aware of any tricks or tips on linking Wave Runner consistently (i.e. lua script)? Thanks a bunch
Finally got Daytona and Motoraid Network/LAN running pretty smoothly using two separate PCs. I'm still struggling to get Wave Runner to link consistently. I can only get them to link up maybe 25% of the time. Otherwise I either get a "network error" or "checking internet connection". Is anyone aware of any tricks or tips on linking Wave Runner consistently (i.e. lua script)? Thanks a bunch
What's the deal with that crazy wide 3 monitor cabinet? I don't think I've ever seen anything like it before.That's Bruno's "YATTACAB".
**BREAK**
Does anyone know why networking with Waverunner on Model 2 is not yet working?
Try putting:
cab1:
[Network]
RxPort=11200
NextIP=192.168.0.12
NextPort=44405
FrameSync=1
cab2:
[Network]
RxPort=44405
NextIP=192.168.0.11
NextPort=11200
FrameSync=1
Try putting:
cab1:
[Network]
RxPort=11200
NextIP=192.168.0.12
NextPort=44405
FrameSync=1
cab2:
[Network]
RxPort=44405
NextIP=192.168.0.11
NextPort=11200
FrameSync=1
Hi, thanks for your reply. But the suggestion you have is the contents of the m2network.ini but I want to know the contents of a working m2lagfix.ini in my situation. Lan on m2emulator itself works for me, so the contents of m2network.ini is fine for me.
---fudgesicle--- me sideways - where has that time gone?!?Took one too many pit-stop... :)
This post contains two IP addresses, and the one below it is Sailorsat explaining how to config m2lagfix for them.
http://forum.arcadecontrols.com/index.php/topic,133283.msg1462123.html#msg1462123
If I remember correctly, UDP on 127.0.0.1 did work fine on my Win7 development rig, but not on my XP64 rig in the cab.
In later posts she talks about changing from 127.0.0.1 to the local actual ip so that definitely seemed to fix part of the issue as it wouldn’t get past the black initial screen until I changed that. It fixed everything after that except for one pc flickering.If I remember correctly, UDP on 127.0.0.1 did work fine on my Win7 development rig, but not on my XP64 rig in the cab.
She seems to be saying it should be fine for Win7 and up, but not on XP? I haven't even tried to run this yet, so i'm not saying i have any experience.
As for the fullscreen issue - I use dxwnd to "fake" fullscreen.
As for the 1p issue - well, thats sadly not possile right now. maybe later ;D
Sure...
004cf3e1 89 44 24 0c MOV dword ptr [ESP + local_22c_pBufferRX],EAX
004cf3e5 89 44 24 10 MOV dword ptr [ESP + local_228_timeOut],EAX
004cf3e9 89 44 24 14 MOV dword ptr [ESP + local_228_timeOut+0x4],EAX
--- change so that EAX is 0x4000 at 004cf3e9
emulator_multicpu.exe+CF3C5 - C7 44 24 14 00400000 - mov [esp+14],00004000
emulator_multicpu.exe+CF3CD - EB 1E - jmp emulator_multicpu.exe+CF3ED
emulator_multicpu.exe+CF3E9 - EB DA - jmp emulator_multicpu.exe+CF3C5
emulator_multicpu.exe+CF3EB - 90 - nop
emulator_multicpu.exe+CF3EC - 90 - nop
So... finaly made patch of 1.1a (multicpu) that fixes the "newer" games' network initialization. (no more service-menu reset shenanigans)
Sega Ski Super G
SuperGT 24h
OverRev
Sega Touring Car Challenge
Wave Runner
called 1.1b
I must admit to always being in the dark as to how to actually use this. I never got the original lagfix working either. Is there a guide to starting from scratch with the rom and the emu, and going from there? Can i just run one version of emu/lagfix and run all M2 games from it?
I third this. My 4 player racing cabinet has flashing cars on Daytona and I am not sure what is wrong with this. At one point in the thread someone says to use similar to what I have below, another person says the network ini should point to another pc instead of the local pc, and at another point someone says the port should be 9000 instead of 9002. So a quick guide or find/replace file for 2p, 3p, and 4p options would be very helpful. Here is what I have but it does not work.I must admit to always being in the dark as to how to actually use this. I never got the original lagfix working either. Is there a guide to starting from scratch with the rom and the emu, and going from there? Can i just run one version of emu/lagfix and run all M2 games from it?
Likewise, I kept meaning to look through the thread to try and figure it out, but I left it a bit too late and the thread got bigger and bigger and then I moved onto other things. A quick start write-up from someone that knows what they're doing with it would be ace!
Racer1 (192.168.0.2)
--m2network.ini
[Network]
RxPort=9001
NextIP=192.168.0.2
NextPort=9002
FrameSync=1
--m2lagfix.ini
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.2
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.2
LocalPort=9002
RemoteHost=192.168.0.3
RemotePort=9000
--racer2
--m2network.ini
[Network]
RxPort=9001
NextIP=192.168.0.3
NextPort=9002
FrameSync=1
--m2lagfix.ini
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.3
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.3
LocalPort=9002
RemoteHost=192.168.0.4
RemotePort=9000
--racer3
[Network]
RxPort=9001
NextIP=192.168.0.4
NextPort=9002
FrameSync=1
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.4
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.4
LocalPort=9002
RemoteHost=192.168.0.5
RemotePort=9000
--racer4
[Network]
RxPort=9001
NextIP=192.168.0.5
NextPort=9002
FrameSync=1
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.5
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.5
LocalPort=9002
RemoteHost=192.168.0.2
RemotePort=9001
# Racer 1 (192.168.0.2)
-- m2network.ini
[Network]
RxPort=9001
NextIP=192.168.0.3
NextPort=9002
FrameSync=1
-- m2lagfix.ini
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.3
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.2
LocalPort=9002
RemoteHost=192.168.0.3
RemotePort=9000
# Racer 2 (192.168.0.3)
-- m2network.ini
[Network]
RxPort=9001
NextIP=192.168.0.4
NextPort=9002
FrameSync=1
-- m2lagfix.ini
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.4
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.3
LocalPort=9002
RemoteHost=192.168.0.4
RemotePort=9000
# Racer 3 (192.168.0.4)
-- m2network.ini
[Network]
RxPort=9001
NextIP=192.168.0.5
NextPort=9002
FrameSync=1
-- m2lagfix.ini
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.5
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.4
LocalPort=9002
RemoteHost=192.168.0.5
RemotePort=9000
# Racer 4 (192.168.0.5)
-- m2network.ini
[Network]
RxPort=9001
NextIP=192.168.0.2
NextPort=9002
FrameSync=1
-- m2lagfix.ini
[m2rx]
LocalHost=0.0.0.0
LocalPort=9000
RemoteHost=192.168.0.2
RemotePort=9001
StallDetection=1
[m2tx]
LocalHost=192.168.0.5
LocalPort=9002
RemoteHost=192.168.0.2
RemotePort=9000
Game | Romset | 2 Players | 4 Players | 4 Players + Spectator | 8 Players | Notes |
Daytona USA (Saturn Ads) | daytonas | fine | fine | n/a | fine | |
ManxTT Superbike (Rev D, Deluxe) | manxtt | fine | fine | fine | fine | sometimes glitches out in race - works fine on next try |
Motor Raid | motoraid | fine | fine | fine | n/a | |
Sega Rally Championship | srallyc | fine* | fine* | fine* | n/a | use lua script to fix timer |
Indianapolis 500 (Rev A, Twin, Newer rev) | indy500 | fine | fine* | fine* | fine* | spectator = slave |
Indianapolis 500 (Rev A, Deluxe) | indy500d | fine | fine* | fine* | fine* | use lua script for reliable connection - mostly works, sometimes gets stuck on transmission selection -- spectator = slave |
Over Rev (Model 2B) | overrevb | fine | fine | n/a | n/a | |
Over Rev | overrev | fine | fine | n/a | n/a | |
Super GT 24h | sgt24h | fine | meh* | n/a | n/a | gets stuck on link screen most of the time. |
Sega Touring Car Championship | stcc | fine | fine | fine | fine | use lua script for reliable link |
Wave Runner | waverunr | fine | fine* | n/a | n/a | use lua script for reliable link |
Long Story short...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?
Start withOUT m2lagfix in the first place.
Grab a copy of the patched m2emulator from http://files.arianchen.de/m2em/emulator_multicpu_11b.zip (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 (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/indy500d.lua)
https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/motoraid.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.
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.
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 (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 (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/indy500d.lua)
https://raw.githubusercontent.com/SailorSat/daytona-utils/master/src/scripts/motoraid.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.
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...
If I click on the link, this is what I get on-screen in attachment one, there's no download option anywhere I can see on screen.Here's an easier link.
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 >_<
If I click on the link, this is what I get on-screen in attachment one, there's no download option anywhere I can see on screen.Here's an easier link.
https://github.com/SailorSat/daytona-utils/tree/master/src/scripts (https://github.com/SailorSat/daytona-utils/tree/master/src/scripts)
- Click on the desired script.
- On the script page, there's a download link.
Scott
Everything has been working out for me in the link games on M2. I saw that some colleagues' files have different information than mine:
PC1:
m2network.ini:
[Network]
Rxport=11200
NextIP=PUT PC2 IP HERE
NextPort=44405
FrameSync=1
m2lagfix.ini:
[m2rx]
LocalHost=127.0.0.1
LocalPort=8001
RemoteHost=127.0.0.1
RemotePort=9002
StallDetection=1
[m2tx]
LocalHost=127.0.0.1
LocalPort=9001
RemoteHost=127.0.0.1
RemotePort=8001
[m2stats]
RemoteHost=127.0.0.1
RemotePort=8000
PC2:
m2network.ini:
[Network]
Rxport=44405
NextIP=PUT PC1 IP HERE
NextPort=11200
FrameSync=1
m2lagfix.ini:
[m2rx]
LocalHost=127.0.0.1
LocalPort=8001
RemoteHost=127.0.0.1
RemotePort=9002
StallDetection=1
[m2tx]
LocalHost=127.0.0.1
LocalPort=9001
RemoteHost=127.0.0.1
RemotePort=8001
[m2stats]
RemoteHost=127.0.0.1
RemotePort=8000
I ran the emulator using "EMULATOR.EXE" because "emulator_multicpu.exe" caused some problem that I no longer remember. Now I use SailorSat's multicpu_1.1b which is the best version. I would also like to take this opportunity to thank you: -Congratulations on your work and thank you very much SailorSat!
I don't use any lua scripts from SailorSat.
I always use m2lagfix in linked games. The flashing cars rarely appear for me, and when they do I just close m2lagfix and the emulator, and open them again. I did several random tests to try to find out what favors flashing cars or not, but I didn't come to a conclusion.
I hope I helped someone.
Nice one Arianne! New Emulator and scripts downloaded, I'll be giving these a try over the weekend. Thanks for all your hard work on this.
Another week, another thingie...
For those that dare to try...
DayontaThrottle - a rather simplistic piece of software that throttles the m2network to a specified framerate.
My 8-Player Daytona is running cpmpletly flicker free now...
In emulator.ini set Frameskip=0 and ForceSync=0
In m2network.ini set FrameSync=1
As for the throttle itself - think of it as an extra player.
I run mine between Player 8 and Player 1.
You can adjust the speed in throttle.ini
In my test 57.9 works well enough - at least with 8 machines roaring, i barely notice any audio drops from the slowdown.
Another week, another thingie...
My 8-Player Daytona is running cpmpletly flicker free now...
Hi SailorSat do you also have a solution to fix the Segarally machines that have sudden jerky movements?I haven't tested Sega Rally that much - The throttle might fix that one too. Need to have some folks around for proper multiplayer ;)
I do have a few notes. Firstly, that if you go into service menu and come out, the game will no longer network.Noted - might look into that one (probably happens with every game)
To get this to work properly, i had to get a fresh download of m2 emu 1.1a and overwrite the scripts folder, then place the new scripts on top of that. Is that the correct way?Yes. The original release contains some common script files that get referenced in mine.
I notice that in the clean download there is a script called "daytona.lua" but the your new script is called "daytonas.lua". Same thing? Different roms? Anything we should be aware of?Those are for different roms - I usually go with the "Daytona USA (Saturn Ads)", as that was the last revision released.
Can this new hack be also used to cure flickering for multiplayer over Internet ?
Not very that helpfull I guess.
Sailorsat, sorry to be pain, but do you have outputs working ok with your 1.1c version? I can see outputs in mamehooker but they never change state.
I was told, ages ago in another thread, that you needed the scripts fromhttps://github.com/njz3/vJoyIOFeederWithFFB/tree/master/gameassets/nebula_m2_1.1but that dir is 404 now.
EDIT: ok, new location for those scripts found (thanks @vincerplay) and outputs working again - https://github.com/njz3/BFF_gameassets/tree/dd185d82ea3829033a4d99a65767b3a4739778cc/image_njz3/Emulators/Model2%20v1.1a/scripts
I'd love to figure out how to get STCC leader lamps running next, but that looks like it's going to be much trickier.
EDIT2: @vincerplay modified a version of outputblaster to receive outputs from STCC and Sega Rally Champsionship - https://fastupload.io/1b9ad0d3638c2684
That file is all that is needed to get outputs from m2emu 1.1c. It works with the two games listed, does not work with Daytona anymore, and you would need to test other games.