Alien Front Online

From dreamcast.wiki
Revision as of 19:31, 30 January 2020 by Unknown user (talk) (→‎Protocol)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Status

Completely revived - Open Beta Testing is LIVE - Big shoutout to Shuouma for helping me with testing, debugging and correcting some bugs affecting the Linux platform (which was originally not going to be the target OS for the servers), which both resulted in memory and CPU-usage issues as well as deploying the servers at his own VPS. Also a big thanks to both Pcwzrd13 for being extremely helpful with testing and everyone who have donated to the DCSERV project which was fundamental at keeping motivation as well as progress ongoing.

Protocol

AFO originally uses Kage, or Kage Lite rather ("Kagel") - The SEGA network system developed in-house solely for the Dreamcast (99%, read below about evolution) by a bigger group of developers servers/framework for its online mode. MORE (mostly 1st & 2nd-party) titles uses the same, few at the very least, almost identical system - which was constantly under development and ended up as the infamous SNAP for the other 6th generation of consoles in the end, implementing quite a few changes from what started as KAGE on the Dreamcast. SNAP is the system that was sold to NOKIA.

A new, although heavily delayed, surprise set of newly written replacement system shipping with AFO-servers as an apologize for the very long wait since promised (100% compatible, yes - but in debug-mode for long-term logging. Yes, voice messages too.) developed by DCSERV is complete but probably not bug-free. A different networking system/concept with proxies, offloading and KCIS request servers (with more functionality than both SNAP and KAGE) were originally going to be commercialized by DCSERV's founder, but as of progress so far the AFO servers does not work without some parts originally being exclusive to that of the commercial system, so it was decided to split up the servers for AFO from the rest of the system/project and put the remaining on hold. An ongoing unified replacement Kage and SNAP network system is currently in the works, and is what started everything related to 1st and 2nd party titles like AFO's resurrection.

AFO is special in that the main hostname for its online-mode is an IP-address (plain-text, IPv4 syntax) hardcoded (as in: No option to enter a alternative hostname/IP) at memory offset 0xFB118 in 1st_read.bin. This is most likely the reason that the game was suddenly offline (as with Daytona USA 2001) when SEGA sold a network block to AT&T. Confirmed.

Patching the hardcoded IP-address in-memory will be covered with a patcher disc (by BlueCrab, similar to the one used for Planet Ring and PSO) which will be released asap once the servers are deployed. Since the servers were originally going to be released a very long time ago, there will be an OPEN testing-phase for some time before release with an open-source license, to cover up for the delay.

As a bonus, I heard some PRETTY, PROBABLY GOING TO HAPPEN WITH THE RELEASE-type of rumours about a leaked, alternative version with more hardware and software support as well as an already set IP that matches the one used by the community. Some rumours are bad though, where the Teltone+Netopia-users will still be affected by the same "bug" where the game returns back to the main menu if the dial-up number is "invalid" (see below). The affected users could, given that the rumours are true, as with anyone else, connect trough the new hardware support.

Process

The game first does a POST at port 8080 to a "bootstrap"-server, which invokes an instance of a "status server" which in turn launches the actual game servers with proper arguments which (probably) in this case is a key part of the whole Kage/SNAP networking system. Other (unknown at the time being) games is known to operate in the exact same mode, confirming the theory that more than 1 game used this system. The game also has support for an online ranking system - which of course also is completely revived.

As the game is built upon a newer (v1.2) version of the "NextGenIP" (or "NextGen" as often called) network stack (by NexGen Software), the first of its kind, and built with the SDK version 11b through Cygwin on Windows 2000 - a fork of the NAOMI Arcade-version "Army vs Aliens" or "AVA" in which the online-modes of both games were supposed to be cross-online multiplayer and was at some point of the development (Confirmed.), the first of its kind supposed to be cross-online multiplayer compatible with a NAOMI title. The NextGenIP has minor differences between the revisions included in later SDKs, and most information about it is that a dedicated SDK was supposed to be made - unsure if the SDK was replaced by documentation available to developers online.

The stack is a set of libraries which supported the Dreamcast hardware and simply allowed developers to implement an already existing network system (probably for a fee), with or without included KAGE-generic game servers, tied up with rest of the SEGA.com. Some Japanese titles were shipped with the same networking stack, while most sticking to the KDDI system (not using the same client stack), which MAY indicate that the later releases of KAGE and SNAP was (PROBABLY) not so different from KDDI, and if the case might prove to be useful with regards to revive Japanese-exclusives that may be compatible with the same system used for 1st and 2nd party titles for the Dreamcast in the rest of the world.

A proto SN@P server has been reverse engineered and tested with the key features such as rUDP+UDP+TCP packets for transmission of data, with encryption and is merely a proof-of-concept for PS2 titles such as RE:Outbreak by DCSERV.

There is documentable doubt that the Dreamcast never used a system called SNAP (even if saying so, something I have never seen - because the similarities between the two is almost only in their proof-of-concept that all developers, probably for a fee, could use a finished and generic (or rather evolving, really) online system for their games developed in-house. Because of how small these similarities are, making a new system compatible with multiple games takes a lot of effort - but will hopefully be worth it in the end.

Servers and clients

A total of 14 or 16 arguments can be manually given to the new replacement system (which BY THE WAY (hint hint) has no name yet), which indicates that other games used KAGE aswell.

The game was supposed to be cross-multiplayer compatible with the NAOMI-version (Army vs Aliens) of the game through either:

  • Optical Link
  • Serial-modem
  • Internal modem
  • Broadband adapter (although the commercial release lacks support for it, but is included in the stack used for the game)

The Dreamcast game was ported and developed using the Katana SDK11b on Windows NT. Servers meant to be used for the NAOMI-title were built using gcc-2.95-3 and the target platform was Solaris, SunOS and IRIX written in pre-ANSI C.

Domains and Ports

  • 63.251.242.131 (Rumour has it that this was Takashi Kosakas workstation - a SEGA networking engineer) in plain-text at memory offset 0xFB118 in IPv4-syntax.
  • auriga.segasoft.com (Investigation of the purpose of this is ongoing)

How To Since the games' target host is set to connect to an IP instead of a host name, a redirection in form of in-memory modifications at the offset above must be done to be able to play. Simply masking the IP through a custom DNS server will not work, and the modifications done to the target host *MUST* be in IPv4 format for the offset to be handled correctly.

Alternatives/methods for this include:

  • Using iptables with a DC-Linux-setup (see rule below for Linux users).
  • Kazade's newly created DreamPi 1.5 image for all Raspberry Pi models with a supported USB-modem, with line voltage inducer (required regardless of Dreamcast modem revision due to the USB modem requiring line voltage as well). Phone line simulators will also provide line voltage.
  • Using a Katana Devkit with a modem, modifying the IP at runtime.
  • Using the soon to be released AFO Patcher disc, originally created by BlueCrab, based on his previous versions of the PSO Patcher disc and Planet Ring patcher disc which will allow all other dial-up methods to be used as normal, with the exception of:
  • Netopia users with Teltone TLS or similar phone-line simulators that require a specific single or double digit number to be dialed (ie. "1" or "2"), resulting in a "invalid" number because of the minimum length of =<7 digits will have issues connecting due to the fact that the game will exit back to the main menu because of trying to reset the modem, clear memory and read the ISP information again.**

IPtables rule: # iptables -t nat -A PREROUTING -p tcp -d 63.251.242.131 -j DNAT —to-destination 146.185.135.179