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

Online games, how to get online, and anything involving Dreamcast online can be discussed here.
User avatar
-drez01-
Tank Jr.
Posts: 344
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

Post by -drez01- »

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.. :?

ioncannon
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

Post by ioncannon »

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.
dc.PNG
(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.

User avatar
SEGA RPG FAN
Developer
Posts: 601
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

Post by SEGA RPG FAN »

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

ioncannon
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

Post by ioncannon »

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.
Saw that and it sounded like the idea I had which is cool. Let me re-read and see what you mentioned about RING.

ioncannon
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

Post by ioncannon »

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.
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?

User avatar
SEGA RPG FAN
Developer
Posts: 601
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

Post by SEGA RPG FAN »

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

ioncannon
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

Post by ioncannon »

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.
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.

ioncannon
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

Post by ioncannon »

For completion sake, here is the dialing code.
dc.PNG
You are correct about the init string though; it matches in Vampire as well...
Attachments
dc.PNG

User avatar
pcwzrd13
Seen Any Sailors?
Posts: 7132
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

Post by pcwzrd13 »

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)
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.
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.
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.
PSO Characters:
Teal'c - lvl 119 HUcast - GC# 11666
Alto - lvl 39 FOnewm - GC# 12964

YouTube Channel : Dreamcast Live

User avatar
SEGA RPG FAN
Developer
Posts: 601
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

Post by SEGA RPG FAN »

ioncannon wrote:You are correct about the init string though; it matches in Vampire as well...
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?
PSO Dreamcast 100% Legit: Eda FOmarl, Automaton HUcast

  • Similar Topics
    Replies
    Views
    Last post