3. Cabinet Power On
3.1 Endpoint
/sys/servlet/PowerOn
3.2 Request
All requests to this endpoint MUST be DFI-encoded.
Name | Required | Default | Meaning |
---|---|---|---|
game_id |
Yes | The four-digit game ID | |
ver |
Yes | The game version | |
serial |
Yes | The keychip serial number | |
ip |
Yes | The tenpo router IP address (%d.%d.%d.%d ) |
|
firm_ver |
Yes | The ALL.Net library version (a semantic version, formatted as %01d%02d%02d ) |
|
boot_ver |
Yes | Unknown. Just pass 0000. (%02X%02X ) |
|
encode |
EUC-JP |
Request encoding. EUC-JP , Shift_JIS and UTF-8 are common, but be prepared to handle more. |
|
format_ver |
1.00 |
Request format version. Parsed as a float, however 1.00 , 2.00 and 3 are the only values that should be observed. |
|
hops |
-1 |
||
token |
Added in format 3, this value is echoed in the response. |
Observed values for firm_ver
0.01.00
0.02.00
2.00.07
2.00.08
2.01.02
3.00.00
3.00.01
3.00.02
3.00.03
3.00.04
3.00.05
3.00.09
5.00.00
6.00.00
Other values likely exist.
Warning
One of the parameters in the request is ip
. This value is controlled by the authenticating client. It is recommended, where possible, to instead use the IP address of the connecting client, noting that if the service is behind a reverse proxy (eg Cloudflare) a degree of un-masking may be required first to reveal this value.
While a legitimate cabinet will be honest with this value, returning the determined address for tenporouter.loc
, a malicious user may choose to spoof the value here. Additionally, should you choose to support clients connecting from personal computers via a loader, this value is likely to be nonsensical.
The server should then use the provided information to authenticate the machine as it sees fit, and will then return the information required for use of ALL.Net services.
3.3 Response
The response structure varies depending on the format version in use.
Name | Required | Default | Version added | Final version present | Notes |
---|---|---|---|---|---|
stat |
Yes | Success: 1 , Game failure: -1 , Machine failure: -2 , Location failure: -3 |
|||
uri |
Yes | empty | Title server URI1. Will be empty if stat<=0 | ||
host |
Yes | empty | Title server hostname1. Will be empty if stat<=0 | ||
place_id |
ALL.Net location ID. Must fit within a signed int16. | ||||
name |
ALL.Net location name | ||||
nickname |
ALL.Net location nickname | ||||
region0 |
Yes | 0 |
Region information. | ||
region_name0 |
Yes | empty | |||
region_name1 |
Yes | empty | |||
region_name2 |
Yes | empty | |||
region_name3 |
Yes | empty | |||
country |
2 | ALL.Net 3-character country code | |||
allnet_id |
3 | ||||
client_timezone |
Yes | empty | 3 | Example +0900 |
|
utc_time |
Yes | 3 | yyyy-MM-dd'T'HH:mm:ss'Z' |
||
res_ver |
Yes | 3 | Will always be the literal 3 |
||
token |
Yes | 3 | The token from the request | ||
year |
Yes | 2 | Current time | ||
month |
Yes | 2 | |||
day |
Yes | 2 | |||
hour |
Yes | 2 | |||
minute |
Yes | 2 | |||
timezone |
Yes | 2 | 2 | Will always be the literal +09:00 |
|
res_class |
Yes | 2 | 2 | Will always be the literal PowerOnResponseVer2 |
|
setting |
Yes | Machine setting. 1 indicates the machine is OK, and should always be set. |
3.4 Suggested Authentication Process
The specific process used to authenticate a cabinet will vary by server implementation. The official ALL.Net services uses an incredibly length process, not documented here.
Instead, the following diagram is my personal recommendation for a simple way to implement this service while retaining flexability.