Pages

Monday, March 2, 2020

dreamcast.local VIII - Skies Of Arcadia

A couple of days a new/old game arrived - Skies Of Arcadia! When the game came out, I never had a chance to play it. So I bought a copy and when it arrives, the first thing that cought my eye was the cover which states: "onlinefunctions". The offered online functions are limited to the official website. I couldn't find a copy of the website but some downladable content, so let's get the downloadable content running again with the Dreamcast server project!
The first thing I did was looking at syslog again for messages from bind/named. After starting the game, playing with it and then trying to visit the website out of the game, the following messages appeared in syslog when going online and trying to connect to the official website:

# tail -f /var/log/syslog
...
Mar  2 18:21:30 localhost named[16540]: client @0xb0b01ef8 192.168.3.1#37721 (ppp0.dreamcast.local): query: ppp0.dreamcast.local IN A + (192.168.3.1)
Mar  2 18:21:30 localhost named[16540]: client @0xb0b01ef8 192.168.3.1#53856 (ppp0): query: ppp0 IN A + (192.168.3.1)
Mar  2 18:21:30 localhost named[16540]: resolver priming query complete
Mar  2 18:21:30 localhost named[16540]: client @0xb1575720 192.168.3.1#39784 (ppp0.dreamcast.local): query: ppp0.dreamcast.local IN A + (192.168.3.1)
Mar  2 18:21:30 localhost named[16540]: client @0xb1575720 192.168.3.1#47973 (ppp0): query: ppp0 IN A + (192.168.3.1)
Mar  2 18:21:31 localhost named[16540]: client @0xb0d02548 192.168.3.1#37607 (ppp0.dreamcast.local): query: ppp0.dreamcast.local IN A + (192.168.3.1)
Mar  2 18:21:31 localhost named[16540]: client @0xb0d02548 192.168.3.1#33234 (ppp0): query: ppp0 IN A + (192.168.3.1)
Mar  2 18:21:33 localhost named[16540]: client @0xb0d02548 172.16.12.2#1201 (www.arcadia.dream-key.com): query: www.arcadia.dream-key.com IN A + (192.168.3.1)
...


So the game tries to connect to www.arcadia.dream-key.com and the first thing, as usual and shown in my prior articles, is to create a DNS zone for it:

# vi /etc/bind/named.conf
...
zone "arcadia.dream-key.com" {
        type master;
        notify no;
        file "/etc/bind/zones/arcadia.dream-key.com";
};
...


And then the actual zone file:

# vi /etc/bind/zones/arcadia.dream-key.com
$ORIGIN arcadia.dream-key.com.
$TTL 3600
@       IN      SOA     dcs01.dreamcast.local.  root.dreamcast.local. (
                                85; serial
                                28800; refresh (8 hours)
                                7200; retry (2 hours)
                                604800; expire (1 week)
                                10800; minimum (3 hours)
                                );

arcadia.dream-key.com.  IN      NS      dcs01.dreamcast.local.
arcadia.dream-key.com.  IN      MX 10   dcs01.dreamcast.local.

www             IN      CNAME   dcs01.dreamcast.local.

@               IN      A       192.168.3.1


After restarting bind:

# systemctl restart bind9

The old Skies Of Arcadia website can be resolved locally with the Dreamcast server project now:

# dig +short www.arcadia.dream-key.com
dcs01.dreamcast.local.
192.168.3.1


Next step was to create a dummy website. Before a website can be created for the game, Nginx needs another block server configuration (also as shown in my prior dreamcast.local project articles):

# vi /etc/nginx/sites-available/www.arcadia.dream-key.com
server {
  listen 80;
  listen [::]:80;

  server_name www.arcadia.dream-key.com;

  root /var/www/www.arcadia.dream-key.com;
  index index.html;
  autoindex on;

  location / {
    try_files $uri $uri/ =404;
  }
}


Then the block server configuration needs to be linked to the enabled sites folder:

# ln -s /etc/nginx/sites-available/www.arcadia.dream-key.com /etc/nginx/sites-enabled/

Now the folder has to be created for the website files:

# mkdir /var/www/www.arcadia.dream-key.com

Since I can not find a copy of the original Skies Of Arcadia website, I created the following dummy website (the descriptions for the downloads were taken from https://www.dreamcastlive.net/skies-of-arcadia-dlc.html):

# vi /var/www/www.arcadia.dream-key.com/index.html
<!DOCTYPE html>
<html>
<head>
<title>www.arcadia.dream-key.com</title>
</head>
<body>
<h1>www.arcadia.dream-key.com</h1>
<h2>Giant Looper Ship Battle</h2>
A boss Looper appears in the game.<br>
Download (4 Blocks): <a href="Looper.VMI">VMI (US)</a> | <a href="Looper (PAL).VMI">VMI (PAL)</a> | <a href="Looper.VMS">VMS</a>
<h2>Hamachou Island</h2>
A new island is added to the game.<br>
Download (4 Blocks): <a href="Hamachou.VMI">VMI (US)</a> | <a href="Hamachou (PAL).VMI">VMI (PAL)</a> | <a href="Hamachou.VMS">VMS</a>
<h2>Tuna Cutlass and Swirlmirang</h2>
Adds two new items which can be purchased from the "Mystery Merchant" who appears in some inns.<br>
Download (4 Blocks): <a href="TunaSwir.VMI">VMI (US)</a> | <a href="TunaSwir (PAL).VMI">VMI (PAL)</a> | <a href="TunaSwir.VMS">VMS</a>
</body>
</html>


After restarting Nginx:

# systemctl restart nginx

I was able to visit the website with link from the command line and Dream Key out the game already:

# links www.arcadia.dream-key.com

The last thing that was missing, was the actual downloadable content. I found the downloadable files on https://www.dreamcastlive.net/skies-of-arcadia-dlc.html, which links back to http://dc.dreamcast-talk.com/dlc/skiesofarcadia/. All I had to do was to download the files to the Dreamcast server to have them available locally:

# cd /var/www/www.arcadia.dream-key.com
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/Looper.VMI"
...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/Looper%20%28PAL%29.VMI"

...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/Looper.VMS"
...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/Hamachou.VMI"
...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/Hamachou%20%28PAL%29.VMI" 
...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/Hamachou.VMS"
...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/TunaSwir.VMI" 
...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/TunaSwir%20%28PAL%29.VMI" 
...
# wget "http://dc.dreamcast-talk.com/dlc/skiesofarcadia/TunaSwir.VMS"
...

Now I was able to download all files from the Dreamcast server. After restarting the game, the game recognizes the new files and asks to include them during gameplay.

No comments:

Post a Comment