Hello there! I'm dude22072, and back in November along with my friend Ioncannon we reverse engineered the Capcom fighting games that used the KDDI service. However, we ran into a roadblock that seemingly can only be solved with creating new hardware to work alongside DreamPi setups. After not touching it for months we figured it would probably be best to post the work we've done to the wider community, both for the sake of documentation and as a call for assistance in solving this roadblock. Here's what we've discovered and how you can potentially help.
Capcom Direct
This is the name that Capcom gave to their service that was used across 15 games. All of the game that use this service have a singled shared configuration file (referred to as the "NET File", saved as "CAP_NET_.NET") that stores a nickname, a user ID, ZIP code, a phone number (more on this later), and your limit as to how much you're willing to spend per month on the service (it cost 13yen/minute while you were in a match). When filling out the information and attempting to connect to the server to register it instead of the dreamcast dialing your ISP it will instead specifically dial the number "186005363011102". When using a DreamPi setup we could not get it to connect to our server emulator, however when using an old Windows XP machine with Internet Connection Sharing and a dial-in interface setup it connected and was able the create the NET File without any issues. Maybe the game is looking for something Windows specific? Maybe the DreamPi isn't emulating something properly? Ion also had issues with it not working over his PortMaster setup so it would seemingly be the former. Whatever the issue may be there, we now have our NET File and can move on to actually connecting to Capcom Direct.
Now, the Capcom Direct service was simply the matchmaking, lobby, and ranking side of things, and actual matches would take place over the KDDI network. After going through the matchmaking process it is decided who will be on the P1 side and who will be on the P2 side and this information is sent to the two players, along with the phone number the players setup in their respective NET Files. After this the dreamcast disconnects from your ISP. One player's dreamcast enters a mode waiting for the phone line to ring, while the other player's dreamcast attempts to dial the number previous sent to them. This opens a direct serial connection between the two dreamcast modems rather than the PPP connection that is used to connect to an ISP/DreamPi. After the match takes place both players disconnect from each other and reconnect to their ISP to report the results of the match to the server.
The Roadblock
So why exactly would we need some new hardware for this? Well, the issue comes from one of the dreamcasts waiting for the phone line to ring. This is because a phone line ringing is not a simple DC signal or a sound that could be played from the modem like DreamPi does with the dial tone, instead a phone line ringing is actually caused by a 20Hz 90v RMS AC signal (North American standard). So the roadblock becomes: 1) how do we generate this signal, 2) how do we determine when the dreamcast has answer the line to stop generating the signal, and 3) how do we actually connect the two dreamcasts directly together without an ISP in-between. One theory I had was to take two Subscriber Line Interface Circuit (SLIC) chips and just connect the TX/RX of them to each other and to connect the Ring Enable/Ring Signal/Off Hook Signal to the RPi's GPIO pins to generate the ring and detect when the dreamcast had answered. The specific chips I was looking at were the "Ag1171S" chips from Silvertel, however due to them being a low need product or simply supply issues from current world events they have a lead time of 29 weeks on them. If you ordered one off of mouser today it wouldn't show up until December. I'm unsure if simply going the old route of using a Phone Line Simulator would be enough, but even if it is discovering a cheaper option would probably be preferred by most people. As for solving the third issue I mentioned, it could be as simple as having the user pre-register with the service to generate a unique number to use as the phone number during the dreamcast signup process, and then having another service running on the DreamPi (a la DCVoip, DCGameSpy, etc) to deal with handling the connection between the two by connecting to the service and establishing a P2P connection between the DreamPis accordingly, and then potentially using some sort of Serial over TCP connection to get the two modems talking to each other.
Conclusion
So that's where things currently stand. Solving this hardware issue (which personally I'd love for it to be called something like "DreamPi-Direct") would be useful not just for Capcom games, but for ALL games that use the KDDI service, which is a decent number of the still currently offline games (hence the "15+" in the title). The source of our Capcom Direct emulator is publicly available on GitHub (iirc there's an issue with the build not making an NLOG config file so throw one in the output directory after building). Everything about registering and using the lobby was tested to work except for reporting the results of the match back to the server as we could never get into a match without solving the ringing issue. Also shoutouts to pcwzrd13, kazade, and shuouma. We had an email chain with them at one point to discuss how the Gundam server worked due to how similar it is to the Capcom service, even if we weren't able to use much of it in the end. And finally here's an imgur album of some images Ion took while working on the server to show that it does indeed work with a real dreamcast.
A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back online
-
- Developer
- Posts: 38
- Dreamcast Games you play Online: Phantasy Star Online v2
Netto de Tennis - Contact:
- megavolt85
- Developer
- Posts: 2009
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
man this is awesome information, as a PC-DC user I already imagined in my head what a modified modem would look like
-
- Sunday Shootout
- Posts: 690
- Dreamcast Games you play Online: Quake 3 Arena
Starlancer
AFO
Tetris
Maximum Pool
CCR
4x4
PSO v2 - Location: North Carolina
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
i bet between pcwzrd, Shu, and my background in typing words that we could make this happen! All jokes aside....tis is pretty awesome and i hope the dc community can get it to work
- killer-elite
- blackout!
- Posts: 140
- Dreamcast Games you play Online: All of them
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
this is a glorious day for Dreamcast Fans around the world !!!!!!!! One day all of the games will be 100% playable Online...Thank You for your contribution to the DC community, who have always had this little console stuck in their hearts !
- krovellium
- fire
- Posts: 70
- Dreamcast Games you play Online: Quake III Arena
PSO
ChuChu Rocket
Worms World Party
Internet Game Pack - Contact:
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
very interesting read. i do have a couple worries that when the dc-live shop sells the contraptions you mentioned (if it ever does) it’ll be impossible to get one due to the silicon shortage and the waves of people trying to buy one day 1. other than that, very nice concept
-
- rebel
- Posts: 22
- Dreamcast Games you play Online: PSO, Maximum Pool, Internet Game Pack, 4x4 EVO, AFO, Chu Chu Rocket, Q3A, Worms, Ooga Booga
- Location: Halifax, Nova Scotia
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
This is incredible news! Thank you so much for your hard work and sharing with the community
- Wombat
- Vagabond
- Posts: 763
- Location: Netherlands
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
O M G! This is great and looking promising.
Thank you dude22072 & Ioncannon!
Counting down the days that we will be able to play Heavy Metal Geomatrix and/or Spawn online :O
Thank you dude22072 & Ioncannon!
Counting down the days that we will be able to play Heavy Metal Geomatrix and/or Spawn online :O
- -drez01-
- Tank Jr.
- Posts: 345
- Dreamcast Games you play Online: Quake III Arena
- Location: Canada
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
Hey so the connection method you are describing is extremely similar to how snes and genesis xband work. I have managed to set it up fairly easily with a linksys PAP2T.
They are almost identical to the voip boxes used for saturn netlink. Except they have 2 phone lines. So you don’t have to line swap.
You can connect one line to Your DC and the other to your xp machine. You could Dedicate the 18600 number to call your XP machine and another to call an IP over the internet to another PAP2T.
Basically using it as an intercom or ring down system where the phone rings. I used the PAP2T as a sudo phone line simulator till I could afford a real one.
The main problem with this setup is latency as anyone who has played saturn with one will tell you. Like 400 ms locally +! Someone here is working on a better solution tho
https://www.dreamcast-talk.com/forum/vi ... &start=540
They are almost identical to the voip boxes used for saturn netlink. Except they have 2 phone lines. So you don’t have to line swap.
You can connect one line to Your DC and the other to your xp machine. You could Dedicate the 18600 number to call your XP machine and another to call an IP over the internet to another PAP2T.
Basically using it as an intercom or ring down system where the phone rings. I used the PAP2T as a sudo phone line simulator till I could afford a real one.
The main problem with this setup is latency as anyone who has played saturn with one will tell you. Like 400 ms locally +! Someone here is working on a better solution tho
https://www.dreamcast-talk.com/forum/vi ... &start=540
If you go ahead and try the PAP2T make sure it is UNLOCKED or it will be unusable..SEGA RPG FAN wrote:So, a few posts back I said no one is working on a Dreampi tunneler. I decided to finally start tackling it. Early results are promising and much better than VoIP. Here's a sample: https://youtu.be/Rdly0P4Yq7g
- pcwzrd13
- Seen Any Sailors?
- Posts: 7191
- Dreamcast Games you play Online: All of them! I'm able to connect with dial-up or broadband.
- Location: USA
- Contact:
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
I was thinking that as well. SEGA RPG FAN's tunneling solution for Saturn NetLink could be used here as well. I'm just not sure about the ringing part and how/if that differs from the way NetLink/XBAND work. The solution he's working on works without any additional hardware. Just the USB modem and an LVI.-drez01- wrote:Hey so the connection method you are describing is extremely similar to how snes and genesis xband work. I have managed to set it up fairly easily with a linksys PAP2T.
The tricky part I think will be the switching from being connected to the server to direct dialing the other player.
PSO Characters:
Teal'c - lvl 119 HUcast - GC# 11666
Alto - lvl 39 FOnewm - GC# 12964
YouTube Channel : Dreamcast Live
Teal'c - lvl 119 HUcast - GC# 11666
Alto - lvl 39 FOnewm - GC# 12964
YouTube Channel : Dreamcast Live
-
- noob
- Posts: 1
Re: A friend and I RE'd the KDDI Capcom games but ran into a hardware roadblock. Here's how 15+ games could come back on
Congratulations!
I'm one of the maintainer of the gundam Flycast fork, the gundam works quite differently since it is always relying on the KDDI lobby + battle server (PPP TCP/IP connection), we have hacked it from the emulator side to remove the latency induced by the modem components (so no more dialup connection now, it's direct TCP/IP), and then changed all TCP traffic to UDP for the lowest latency.
The game originally was never running a direct modem connection between players, despite the fact that it is also a game using KDDI connection service
On an emulator perspective (Flycast), what you are trying to achieve seems to be an easier task than making a compatible hardware for the real DC.
I'm one of the maintainer of the gundam Flycast fork, the gundam works quite differently since it is always relying on the KDDI lobby + battle server (PPP TCP/IP connection), we have hacked it from the emulator side to remove the latency induced by the modem components (so no more dialup connection now, it's direct TCP/IP), and then changed all TCP traffic to UDP for the lowest latency.
The game originally was never running a direct modem connection between players, despite the fact that it is also a game using KDDI connection service
On an emulator perspective (Flycast), what you are trying to achieve seems to be an easier task than making a compatible hardware for the real DC.
-
- Similar Topics
- Replies
- Views
- Last post
-
- 1 Replies
- 8452 Views
-
Last post by SEGA RPG FAN
-
- 9 Replies
- 13368 Views
-
Last post by edenist
-
- 16 Replies
- 19644 Views
-
Last post by MagicBalloon
-
- 1 Replies
- 7734 Views
-
Last post by krovellium
-
- 12 Replies
- 10597 Views
-
Last post by Markdanni123