
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
- -drez01-
- Tank Jr.
- Posts: 352
- 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
So anyone with 2 DC’s, a TLS and the know how to set up the server could try it this out? I do except for the know how.. 

-
- Anarki
- Posts: 90
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
Yeah when me and dude chatted I mentioned I wanted to get the thing working with proper GDROMs (I am a stickler for getting OG discs working) I dreamed up a scheme where:
Dialing DC <-> DreamPi <-> [INTERNET] <-> DreamPi <-> Answering DC
* A TCP service would wait for incoming connections for answered calls on the answering side.
* The dialing DC would dial a prefix + IP address, which the modem service would pick up. A serial connection would be made between the DC and the DreamPi, and the DreamPi would do a TCP connection to that IP.
* The answering DreamPi would the "call" the answering DC (this is where the RING voltage signal would be generated) which would create a serial connection between those two machines.
* Finally all incoming serial data gets sent over the TCP connection, and any incoming TCP data gets sent back over the serial.
Dunno how much latency that would add, but like Dude said the issue is that damn ring voltage.
The reason why I think patching it might be an issue is the state machine waits for the RING ATT command before it sets itself into transmit mode. See the chunk of code attached. However I have never done any DC patching so some of you experts might be able to easily do it.
(Ignore the highlight), a strcmp loops over and over checking for CONNECT, NOCARRIER, BUSY, DELAYED, NO DIALTONE, and RING; setting the state variable depending on which returns true.
-------
Server wise I used Vampire as my test disc as it decompiled the easiest while also running burnt every time on my DC. I did test it with SF3: Third Strike the one or two times it did boot.
Some other points:
* Some games had another screen (publicity iirc) that I never had a chance to test.
* MvC2 was the first KDDI game, and doesn't seem to use the same protocol or at least the same packets as the other games.
* Later games had some extra data (SendSubGameParam) that I didn't have a chance to look into because the disc didn't boot.
* LOL at Capcom/KDDI's security measures of adding 0x5 to every byte for "sensitive" strings.
* As Dude mentioned, post battle data packets haven't been decoded but following the state machine I was able to deduce how it's sent (changes the login prefix) and it shouldn't be hard to add that.
The server itself does some crude match making and properly handles lobbies so that is out of the way. It even generates random Capcom IDs!
Dialing DC <-> DreamPi <-> [INTERNET] <-> DreamPi <-> Answering DC
* A TCP service would wait for incoming connections for answered calls on the answering side.
* The dialing DC would dial a prefix + IP address, which the modem service would pick up. A serial connection would be made between the DC and the DreamPi, and the DreamPi would do a TCP connection to that IP.
* The answering DreamPi would the "call" the answering DC (this is where the RING voltage signal would be generated) which would create a serial connection between those two machines.
* Finally all incoming serial data gets sent over the TCP connection, and any incoming TCP data gets sent back over the serial.
Dunno how much latency that would add, but like Dude said the issue is that damn ring voltage.
The reason why I think patching it might be an issue is the state machine waits for the RING ATT command before it sets itself into transmit mode. See the chunk of code attached. However I have never done any DC patching so some of you experts might be able to easily do it.
(Ignore the highlight), a strcmp loops over and over checking for CONNECT, NOCARRIER, BUSY, DELAYED, NO DIALTONE, and RING; setting the state variable depending on which returns true.
-------
Server wise I used Vampire as my test disc as it decompiled the easiest while also running burnt every time on my DC. I did test it with SF3: Third Strike the one or two times it did boot.
Some other points:
* Some games had another screen (publicity iirc) that I never had a chance to test.
* MvC2 was the first KDDI game, and doesn't seem to use the same protocol or at least the same packets as the other games.
* Later games had some extra data (SendSubGameParam) that I didn't have a chance to look into because the disc didn't boot.
* LOL at Capcom/KDDI's security measures of adding 0x5 to every byte for "sensitive" strings.
* As Dude mentioned, post battle data packets haven't been decoded but following the state machine I was able to deduce how it's sent (changes the login prefix) and it shouldn't be hard to add that.
The server itself does some crude match making and properly handles lobbies so that is out of the way. It even generates random Capcom IDs!
Last edited by ioncannon on Thu Jun 02, 2022 11:28 pm, edited 3 times in total.
- SEGA RPG FAN
- Developer
- Posts: 606
- Dreamcast Games you play Online: PSO
Quake III
Starlancer
Alien Front Online
Chu Chu Rocket - Location: Minnesota USA
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 think we need to chat about the RING, because I don't feel like I'm explaining in a way that is getting across. You'll probably have to come to grips with the fact that few people will shell out for another hardware piece, but a patched GDI or CDI will reach a wide audience.
PSO Dreamcast 100% Legit: Eda FOmarl, Automaton HUcast
-
- Anarki
- Posts: 90
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
Saw that and it sounded like the idea I had which is cool. Let me re-read and see what you mentioned about RING.SEGA RPG FAN wrote:I think we need to chat about the RING, because I don't feel like I'm explaining in a way that is getting across. You'll probably have to come to grips with the fact that few people will shell out for another hardware piece, but a patched GDI or CDI will reach a wide audience.
-
- Anarki
- Posts: 90
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
Ah so it auto creates the connection (some how, by changing the init fields) and you fake what the state machine expects by sending "Ring\r\n" over the serial?SEGA RPG FAN wrote:The way I solved the ring problem on the Netlink games was to modify them by changing the modem init string for the waiting side. It dials out and establishes a connection to the tunneler when it inits the modem. This is mostly an automated process so the game is unaware. The game monitors the modem responses and waits for RING\r\n, followed by CONNECT\r\n. Since the modem is already connected, the tunnel just sends those over the line.
You might have to do something similar if a hardware approach doesn't work. The downside is you break compatibility with stock games.
- SEGA RPG FAN
- Developer
- Posts: 606
- Dreamcast Games you play Online: PSO
Quake III
Starlancer
Alien Front Online
Chu Chu Rocket - Location: Minnesota USA
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
On Netlink at least, by changing the wait side to dial out on init (I appended d0 to the string) it dials out, my script answers the call and it sits in the connected state. The answer is initiated by the script and the modems auto negotiate so nothing is needed from the client side. The game is looking for RING and ignores anything else, so at this point it's unaware that it even connected. Now that it's connected anything sent on the serial line is interpreted as coming from the modem itself. So I send RING followed by CONNECT. The game thinks these are coming from the modem and starts initiating the connection.
PSO Dreamcast 100% Legit: Eda FOmarl, Automaton HUcast
-
- Anarki
- Posts: 90
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
Yeah that sounds like it may work. I wonder if a patch disc like what is used for Phantasy Star could be created to allow for using the OG discs while still patching out the initial code for dialing. Maybe a stretch goal til we see if your method can work.SEGA RPG FAN wrote:On Netlink at least, by changing the wait side to dial out on init (I appended d0 to the string) it dials out, my script answers the call and it sits in the connected state. The answer is initiated by the script and the modems auto negotiate so nothing is needed from the client side. The game is looking for RING and ignores anything else, so at this point it's unaware that it even connected. Now that it's connected anything sent on the serial line is interpreted as coming from the modem itself. So I send RING followed by CONNECT. The game thinks these are coming from the modem and starts initiating the connection.
-
- Anarki
- Posts: 90
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
For completion sake, here is the dialing code.
You are correct about the init string though; it matches in Vampire as well...
You are correct about the init string though; it matches in Vampire as well...
- pcwzrd13
- Seen Any Sailors?
- Posts: 7286
- 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
Yeah, I remember you mentioned that in our initial email conversation. I'm generally the same but in this case I really believe patching is the way to go. A PSO-like boot disc is certainly something that could be looked into later for anyone that likes to use original GDs.ioncannon wrote:Yeah when me and dude chatted I mentioned I wanted to get the thing working with proper GDROMs (I am a stickler for getting OG discs working)
Exactly. We have a DreamPi player base of around 3,000 at the moment. A hardware requirement would drop that number down to 0 for the Capcom games and inevitably not everyone is going to jump on board. It'd be a shame to only have a small subset of players that can play the games.SEGA RPG FAN wrote:You'll probably have to come to grips with the fact that few people will shell out for another hardware piece, but a patched GDI or CDI will reach a wide audience.
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
- SEGA RPG FAN
- Developer
- Posts: 606
- Dreamcast Games you play Online: PSO
Quake III
Starlancer
Alien Front Online
Chu Chu Rocket - Location: Minnesota USA
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 saw that init in the compiled BIN. I don't think that's the one we're interested in though is it? What does the code around the ATS0=0 string look like?ioncannon wrote:You are correct about the init string though; it matches in Vampire as well...
PSO Dreamcast 100% Legit: Eda FOmarl, Automaton HUcast
-
- Similar Topics
- Replies
- Views
- Last post
-
- 1 Replies
- 17060 Views
-
Last post by SEGA RPG FAN
-
- 10 Replies
- 20375 Views
-
Last post by OniKuno
-
- 16 Replies
- 24719 Views
-
Last post by MagicBalloon
-
- 1 Replies
- 10555 Views
-
Last post by krovellium
-
- 12 Replies
- 14290 Views
-
Last post by Markdanni123