{% extends "base.html" %} {% block body %}

Smart E-Amusement

So maybe you've turned on that checkbox before, and you're wondering what magic it used? Thankfully, source code for that tool is actually shipped along with it (provided you have a legitimate copy) so we can have a look.

...and that's where the trail runs cold. Upon cracking open the source you will just be faced with walls of hardcoded binary data. Let's take a serious look at what we have here instead.

The first important thing to note is that every single reply from easrv is hardcoded. This means their encryption is also hardcoded, and sure enough the header is hardcoded to 1-53d121c7-a8b3 (in fact, the entire HTTP header block is a hardcoded string!).

Many of these responses are only rqeuired by specific games. I've not yet compiled a list of which is for what game, but consider it a future expansion coming later :).

services.get

{% highlight "cxml" %}

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
{% endhighlight %}

Fairly standard response here. Many more services are listed than actually available, but that's fine. The router address (ia), gateway (ga) and centre (ma) are all set to localhost, ensuring pings succeed.

pcbtracker.alive

{% highlight "cxml" %}

    
{% endhighlight %}

Inform the game we have no intention of supporting PASELI. Implementing PASELI involves implementing carding, and is a sizable amount of work. Smart EA exists to start games, not implement all features.

message.get

Maintenance disabled:

{% highlight "cxml" %}

    
{% endhighlight %}

Just report that there's nothing to process. Nice and simple.

Maintenance enabled:

{% highlight "cxml" %}

    
        
        
    
{% endhighlight %}

When maintenance is enabled, we publish two messages. I believe the former is to announce the whole ea network is under maintenance, and the latter PASELI-specific.

facility.get

This packet notably has its encoding bytes as 00 FF which to the best of my knowledge is not a valid encoding. I used Shift-JIS here to decode the location name.

{% highlight "cxml" %}

    
    
        US-01
        US
        .
        ・ョ・ッ・ョ・・
        0
    
    
        .
        0
    
    
        1.0.0.127
        8888
        8888
    
    
        1
        .
        0
        0
    
    
        
            0
            0
            1000000
        
        
            http://localhost
            http://localhost
            http://localhost
            http://localhost
            http://localhost
        
    
    
{% endhighlight %}

Pretty standard facility.get response here, full of the usual fake values. Notably not even the share URLs were lucky enough to get real data.

pcbevent.put

{% highlight "cxml" %}

    
{% endhighlight %}

package.list

{% highlight "cxml" %}

    
{% endhighlight %}

tax.get_phase

{% highlight "cxml" %}

    
        0
    
{% endhighlight %}

eventlog.write

{% highlight "cxml" %}

    
        1
        0
        0
        0
    
{% endhighlight %}

machine.get_control

{% highlight "cxml" %}

    
        
            nop
        
    
{% endhighlight %}

info2.common

{% highlight "cxml" %}

    
        
    
{% endhighlight %}

pcb2.boot

{% highlight "cxml" %}

    
        
            AS
            1
            0
            0
        
    
{% endhighlight %}

pcb2.error

{% highlight "cxml" %}

    
{% endhighlight %}

system.getmaster

Just an error response unless the game is one of...

Steel Chronicle (KGG-*):

{% highlight "cxml" %}

    
        1
        MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
        MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
        1120367223
    
{% endhighlight %}

Metal Gear Arcade (I36-*):

{% highlight "cxml" %}

    
        1
        MjAxMTA4MTAwMDoxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MQ==
        MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
        1120367223
    
{% endhighlight %}

hdkoperation.get

Only used by Steel Chronicle as far as I can tell

{% highlight "cxml" %}

    
        1
        0,0,0,0,0,0,0,0,0
    
{% endhighlight %}

op2_common.get_music_info

This one is really long. It's got its own dedicated page if you really want to see it anyway.

It appears to be specifically for Nostalgia Op.2, however this may be incorrect.

{% endblock %}