3. Skip to content

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.


  1. The hostname (if present) in uri is used for name resolution. The value in host is passed to the title server in the Host header, and can be utilized as an extra authentication step.