Break out proto pages

This commit is contained in:
Bottersnike 2021-12-28 00:26:42 +00:00
parent a5e2a7569b
commit c8e7fc5d86
23 changed files with 2122 additions and 1567 deletions

24
__base.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href=".">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
</body>

33
proto/apsmanager.html Normal file
View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>apsmanager</code></h1>
<h2 id="getstat"><code>apsmanager.getstat</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;apsmanager method="getstat" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;apsmanager status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

232
proto/cardmng.html Normal file
View File

@ -0,0 +1,232 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>cardmng</code></h1>
<p>As the name might imply, this service is responsible for handling interactions with physical e-Amusement cards.
e-Amusement currently has two different types of cards in circulation. There are classic e-Amusement cards
making use of a magnetic stripe, and the newer RFID cards using FeliCa (these are probably what you have). They
are identified in requests using the <code>cardtype</code> attribute as in the below table.
</p>
<p>e-Amusement cards have a "card number" and a "card id". Confusingly, neither is a number. The card number is the
one printed on your card. The card ID is your KONAMI ID. The number is derrived from your ID using an algorithm
that I'll detail here once I get round to it.</p>
<p>In the interest of not wasting space, <code>cardid</code> and <code>cardtype</code> will be omitted from
individual breakdowns where their meaning is obvious.</p>
<h4>Card types:</h4>
<table class="nocode">
<thead>
<tr>
<td><code>cardtype</code></td>
<td>Meaning</td>
</tr>
</thead>
<tr>
<td><code>1</code></td>
<td>Old style magnetic stripe card</td>
</tr>
<tr>
<td><code>2</code></td>
<td>FeliCa RFID card</td>
</tr>
</table>
<ul>
<li><code><a href="#inquire">cardmng.inquire</a></code></li>
<li><code><a href="#getrefid">cardmng.getrefid</a></code></li>
<li><code><a href="#bindmodel">cardmng.bindmodel</a></code></li>
<li><code><a href="#bindcard">cardmng.bindcard</a></code></li>
<li><code><a href="#authpass">cardmng.authpass</a></code></li>
<li><code><a href="#getkeepspan">cardmng.getkeepspan</a></code></li>
<li><code><a href="#getkeepremain">cardmng.getkeepremain</a></code></li>
<li><code><a href="#getdatalist">cardmng.getdatalist</a></code></li>
</ul>
<h2 id="inquire"><code>cardmng.inquire</code></h2>
<p>Request information about a card that has been inserted or touched against a reader.</p>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="inquire" cardid="" cardtype="" update="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<table class="nocode">
<tr>
<td><code>update</code></td>
<td>Should the tracked last play time be updated by this inquiry? (Just a guess)</td>
</tr>
</table>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>" refid="" dataid="" pcode="" newflag="" binded="" expired=" ecflag="" useridflag="" extidflag="" lastupdate="" /&gt;
&lt;/response&gt;</code></pre>
<p>To handle this request, we first must lookup if this <code>cardid</code> has ever been seen by our servers
before. If not, we abort with a <code>112</code> status. Otherwise, we proceeed to check if this card has been
seen for this specific game. If we have never seen this card used on this game, it is possible this card was
used with an older version of this game, and migration is supported, in which case we report as if we had found
a profile for this game.</p>
<table class="nocode">
<tr>
<td><code>refid</code></td>
<td>A reference to this card to be used in other requests</td>
</tr>
<tr>
<td><code>dataid</code></td>
<td>Appears to be set the same as <code>refid</code>; presumably to allow different keys for game state vs
login details.</td>
</tr>
<tr>
<td><code>newflag</code></td>
<td>Inverse of <code>binded</code></td>
</tr>
<tr>
<td><code>binded</code></td>
<td>Has a profile ever been created for this game (or an older version, requiring a migration)
(<code>1</code> or <code>0</code>)</td>
</tr>
<tr>
<td><code>expired</code></td>
<td>? Just set to <code>0</code>.</td>
</tr>
</table>
<h2 id="getrefid"><code>cardmng.getrefid</code></h2>
<p>Register a new card to this server.</p>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="getrefid" cardtype="" cardid=" newflag="" passwd="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<table class="nocode">
<tr>
<td><code>newflag</code></td>
<td>?</td>
</tr>
<tr>
<td><code>passwd</code></td>
<td>The pin for this new user. <i>Should</i> always be a four digit number (and that's worth validating),
but it's passed as a string so could feasibly be anything desired.</td>
</tr>
</table>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>" refid="" dataid="" pcode="" /&gt;
&lt;/response&gt;</code></pre>
<table class="nocode">
<tr>
<td><code>refid</code></td>
<td>A reference to this card to be used in other requests</td>
</tr>
<tr>
<td><code>dataid</code></td>
<td>Appears to be set the same as <code>refid</code>; presumably to allow different keys for game state vs
login details.</td>
</tr>
<tr>
<td><code>pcode</code></td>
<td>? Not present in captured data.</td>
</tr>
</table>
<h2 id="bindmodel"><code>cardmng.bindmodel</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="bindmodel" refid="" newflag="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>" dataid="" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="bindcard"><code>cardmng.bindcard</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="bindcard" cardtype="" newid="" refid="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="authpass"><code>cardmng.authpass</code></h2>
<p>Test a pin for a card. This request notably uses the <code>refid</code>, so required a
<code>cardmng.inquire</code> call to be made first.
</p>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="authpass" refid="" pass="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<table class="nocode">
<tr>
<td><code>refid</code></td>
<td>The reference we received either during <code>cardmng.inquire</code> or <code>cardmng.getrefid</code>
(the latter for new cards)</td>
</tr>
<tr>
<td><code>pass</code></td>
<td>The pin to test. See <code>cardmng.getrefid</code>.</td>
</tr>
</table>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<p>If the pin is valid, status should be <code>0</code>. Otherwise, <code>116</code>.</p>
<h2 id="getkeepspan"><code>cardmng.getkeepspan</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="getkeepspan" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>" keepspan="" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="getkeepremain"><code>cardmng.getkeepremain</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="getkeepremain" refid="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>" keepremain="" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="getdatalist"><code>cardmng.getdatalist</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;cardmng method="getdatalist" refid="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;cardmng status="<i>status</i>"&gt;
&lt;item[]&gt;
&lt;mcode __type="str" /&gt;
&lt;dataid __type="str" /&gt;
&lt;regtime __type="str" /&gt;
&lt;lasttime __type="str" /&gt;
&lt;exptime __type="str" /&gt;
&lt;expflag __type="u8" /&gt;
&lt;/item[]&gt;
&lt;/cardmng&gt;
&lt;/response&gt;</code></pre>
</body>

54
proto/dlstatus.html Normal file
View File

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>dlstatus</code></h1>
<h2 id="done"><code>dlstatus.done</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;dlstatus method="done"&gt;
&lt;url&gt;
&lt;param __type="str" /&gt;
&lt;/url&gt;
&lt;name __type="str" /&gt;
&lt;size __type="s32" /&gt;
&lt;/dlstatus&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;dlstatus status="<i>status</i>"&gt;
&lt;progress __type="s32" /&gt;
&lt;/dlstatus&gt;
&lt;/response&gt;</code></pre>
<h2 id="progress"><code>dlstatus.progress</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;dlstatus method="progress" /&gt;
&lt;progress __type="s32" /&gt;
&lt;/dlstatus&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;dlstatus status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

200
proto/eacoin.html Normal file
View File

@ -0,0 +1,200 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>eacoin</code></h1>
<h2 id="checkin"><code>eacoin.checkin</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="checkin"&gt;
&lt;cardtype __type="str" /&gt;
&lt;cardid __type="str" /&gt;
&lt;passwd __type="str" /&gt;
&lt;ectype __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>"&gt;
&lt;sequence __type="s16" /&gt;
&lt;acstatus __type="u8" /&gt;
&lt;acid __type="str" /&gt;
&lt;acname __type="str" /&gt;
&lt;balance __type="s32" /&gt;
&lt;sessid __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/response&gt;</code></pre>
<h2 id="checkout"><code>eacoin.checkout</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="checkout"&gt;
&lt;sessid __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="consume"><code>eacoin.consume</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="consume" esid=""&gt;
&lt;sessid __type="str" /&gt;
&lt;sequence __type="s16" /&gt;
&lt;payment __type="s32" /&gt;
&lt;service __type="s16" /&gt;
&lt;itemtype __type="str" /&gt;
&lt;detail __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>"&gt;
&lt;acstatus __type="u8" /&gt;
&lt;autocharge __type="u8" /&gt;
&lt;balance __type="s32" /&gt;
&lt;/eacoin&gt;
&lt;/response&gt;</code></pre>
<h2 id="getbalance"><code>eacoin.getbalance</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="getbalance"&gt;
&lt;sessid __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>"&gt;
&lt;acstatus __type="u8" /&gt;
&lt;balance __type="s32" /&gt;
&lt;/eacoin&gt;
&lt;/response&gt;</code></pre>
<h2 id="getecstatus"><code>eacoin.getecstatus</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="getecstatus" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>"&gt;
&lt;ectype __type="str" /&gt;
&lt;ecstatus __type="u8" /&gt;
&lt;/eacoin&gt;
&lt;/response&gt;</code></pre>
<h2 id="touch"><code>eacoin.touch</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="touch"&gt;
&lt;sessid __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="opchpass"><code>eacoin.opchpass</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="opchpass"&gt;
&lt;passwd __type="str" /&gt;
&lt;newpasswd __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="opcheckin"><code>eacoin.opcheckin</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="opcheckin"&gt;
&lt;passwd __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>"&gt;
&lt;sessid __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/response&gt;</code></pre>
<h2 id="opcheckout"><code>eacoin.opcheckout</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="opcheckout"&gt;
&lt;sessid __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="getlog"><code>eacoin.getlog</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eacoin method="getlog"&gt;
&lt;sessid __type="str" /&gt;
&lt;logtype __type="str" /&gt;
&lt;ectype __type="str" /&gt;
&lt;target __type="str" /&gt;
&lt;perpage __type="s16" /&gt;
&lt;page __type="s16" /&gt;
&lt;sesstype __type="str" /&gt;
&lt;/eacoin&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eacoin status="<i>status</i>"&gt;
&lt;processing __type="u8" /&gt;
&lt;topic&gt;
&lt;sumdate __type="str" /&gt;
&lt;sumfrom __type="str" /&gt;
&lt;sumto __type="str" /&gt;
&lt;today __type="s32" /&gt;
&lt;average __type="s32" /&gt;
&lt;total __type="s32" /&gt;
&lt;/topic&gt;
&lt;summary&gt;
&lt;items __type="s32" /&gt;
&lt;/summary&gt;
&lt;history&gt;
&lt;item[]&gt;
&lt;date __type="str" /&gt;
&lt;consume __type="s32" /&gt;
&lt;service __type="s32" /&gt;
&lt;cardtype __type="str" /&gt;
&lt;cardno __type="str" /&gt;
&lt;title __type="str" /&gt;
&lt;systemid __type="str" /&gt;
&lt;/item[]&gt;
&lt;/history&gt;
&lt;/eacoin&gt;
&lt;/response&gt;</code></pre>
</body>

37
proto/esign.html Normal file
View File

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>esign</code></h1>
<h2 id="request"><code>esign.request</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;esign method="request"&gt;
<i>placeholder</i>
&lt;/esign&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;esign status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/esign&gt;
&lt;/response&gt;</code></pre>
</body>

50
proto/esoc.html Normal file
View File

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>esoc</code></h1>
<h2 id="read"><code>esoc.read</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;esoc method="read"&gt;
&lt;senddata /&gt;
&lt;/esoc&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;esoc status="<i>status</i>"&gt;
&lt;recvdata /&gt;
&lt;/esoc&gt;
&lt;/response&gt;</code></pre>
<p>Go figure.</p>
<h2 id="write"><code>esoc.write</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;esoc method="write"&gt;
&lt;senddata /&gt;
&lt;/esoc&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;esoc status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

58
proto/eventlog.html Normal file
View File

@ -0,0 +1,58 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>eventlog</code></h1>
<h2 id="write"><code>eventlog.write</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;eventlog method="write"&gt;
&lt;retrycnt __type="u32" /&gt;
&lt;data&gt;
&lt;eventid __type="str" /&gt;
&lt;eventorder __type="s32" /&gt;
&lt;pcbtime __type="u64" /&gt;
&lt;gamesession __type="s64" /&gt;
&lt;strdata1 __type="str" /&gt;
&lt;strdata2 __type="str" /&gt;
&lt;numdata1 __type="s64" /&gt;
&lt;numdata2 __type="s64" /&gt;
&lt;locationid __type="str" /&gt;
&lt;/data&gt;
&lt;/eventlog&gt;
&lt;/call&gt;</code></pre>
<p>Event ID list:</p>
<ul>
<li><code>G_GAMED</code></li>
<li><code>S_ERROR</code></li>
<li><code>S_PWRON</code> <b>TODO: find more!</b></li>
<li><code>T_OTDEMO</code></li>
</ul>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;eventlog status="<i>status</i>"&gt;
&lt;gamesession __type="s64" /&gt;
&lt;logsendflg __type="s32" /&gt;
&lt;logerrlevel __type="s32" /&gt;
&lt;evtidnosendflg __type="s32" /&gt;
&lt;/eventlog&gt;
&lt;/response&gt;</code></pre>
</body>

140
proto/facility.html Normal file
View File

@ -0,0 +1,140 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>facility</code></h1>
<h2 id="get"><code>facility.get</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;facility method="get" privateip*="" encoding*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;facility expire=""\ status="<i>status</i>"&gt;
&lt;calendar*&gt;
&lt;year __type="s16" /&gt;
&lt;holiday __type="s16" /&gt;
&lt;/calendar&gt;
&lt;location&gt;
&lt;id __type="str" /&gt;
&lt;country __type="str" /&gt;
&lt;region __type="str" /&gt;
&lt;name __type="str" /&gt;
&lt;type __type="u8" /&gt;
&lt;countryname __type="str" /&gt;
&lt;countryjname __type="str" /&gt;
&lt;regionname __type="str" /&gt;
&lt;regionjname __type="str" /&gt;
&lt;customercode __type="str" /&gt;
&lt;companycode __type="str" /&gt;
&lt;latitude __type="s32" /&gt;
&lt;longitude __type="s32" /&gt;
&lt;accuracy __type="u8" /&gt;
&lt;/location&gt;
&lt;line&gt;
&lt;id __type="str" /&gt;
&lt;class __type="u8" /&gt;
&lt;/line&gt;
&lt;portfw&gt;
&lt;globalip __type="ip4" /&gt;
&lt;globalport __type="s16" /&gt;
&lt;privateport __type="s16" /&gt;
&lt;/portfw&gt;
&lt;public&gt;
&lt;flag __type="u8" /&gt;1&lt;/ flag&gt;
&lt;name __type="str" /&gt;
&lt;latitude __type="str"&gt;0&lt;latitude&gt;
&lt;longitude __type="str"&gt;0&lt;longitude&gt;
&lt;/public&gt;
&lt;share&gt;
&lt;eapass*&gt;
&lt;valid __type="?" /&gt;
&lt;/eapass&gt;
&lt;eacoin&gt;
&lt;notchamount __type="s32" /&gt;
&lt;notchcount __type="s32" /&gt;
&lt;supplylimit __type="s32"&gt;100000&lt;supplylimit&gt;
&lt;/eacoin&gt;
&lt;url&gt;
&lt;eapass __type="str"&gt;www.ea-pass.konami.net&lt;eapass&gt;
&lt;arcadefan __type="str"&gt;www.konami.jp/am&lt;arcadefan&gt;
&lt;konaminetdx __type="str"&gt;http://am.573.jp&lt;konaminetdx&gt;
&lt;konamiid __type="str"&gt;http://id.konami.jp&lt;konamiid&gt;
&lt;eagate __type="str"&gt;http://eagate.573.jp&lt;eagate&gt;
&lt;/url&gt;
&lt;/share&gt;
&lt;/facility&gt;
&lt;/response&gt;</code></pre>
<p><i>I'm not totally sure what type <code>share/eapass/valid</code> is meant to be, but it's optional, so I'd
suggest just not bothering and leaving it out :).</i></p>
<table>
<thead>
<tr>
<td>Country</td>
<td>Code</td>
</tr>
</thead>
<tr>
<td>Hong Kong</td>
<td><code>HK</code></td>
</tr>
<tr>
<td>Taiwan</td>
<td><code>TW</code></td>
</tr>
<tr>
<td>Korea</td>
<td><code>KR</code></td>
</tr>
<tr>
<td>USA</td>
<td><code>US</code></td>
</tr>
<tr>
<td>Thailand</td>
<td><code>TH</code></td>
</tr>
<tr>
<td>Indonesia</td>
<td><code>ID</code></td>
</tr>
<tr>
<td>Singapore</td>
<td><code>SG</code></td>
</tr>
<tr>
<td>Phillipines</td>
<td><code>PH</code></td>
</tr>
<tr>
<td>Macao</td>
<td><code>MO</code></td>
</tr>
<tr>
<td>Japan</td>
<td><code>JP</code></td>
</tr>
</table>
<p><code>globalip</code> (and associated ports) shold be the IP:port of the cabinet.</p>
<p><code>region</code> is used for Japan, and has the value <code>JP-[prefecture]</code> where prefecture ranges
from 1 through 47.</p>
<p><b>TODO: Compile the list of regions</b></p>
</body>

387
proto/game/sv4.html Normal file
View File

@ -0,0 +1,387 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="../..">Contents</a></td>
<td><a href="../../transport.html">Transport layer</a></td>
<td><a href="../../packet.html">Packet format</a></td>
<td><a href="../../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1 id="game"><code>game</code></h1>
<h2 id="sample"><code>game.sv4_sample</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_sample"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="new"><code>game.sv4_new</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_new"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="load"><code>game.sv4_load</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_load"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="load_m"><code>game.sv4_load_m</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_load_m"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="save"><code>game.sv4_save</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_save"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="save_m"><code>game.sv4_save_m</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_save_m"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="common"><code>game.sv4_common</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_common"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="shop"><code>game.sv4_shop</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_shop"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="hiscore"><code>game.sv4_hiscore</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_hiscore"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="buy"><code>game.sv4_buy</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_buy"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="exception"><code>game.sv4_exception</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_exception"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="entry_s"><code>game.sv4_entry_s</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_entry_s"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="entry_e"><code>game.sv4_entry_e</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_entry_e"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="frozen"><code>game.sv4_frozen</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_frozen"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="lounce"><code>game.sv4_lounce</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_lounce"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="save_e"><code>game.sv4_save_e</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_save_e"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="save_pb"><code>game.sv4_save_pb</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_save_pb"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="save_c"><code>game.sv4_save_c</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_save_c"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="play_s"><code>game.sv4_play_s</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_play_s"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="play_e"><code>game.sv4_play_e</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_play_e"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="serial"><code>game.sv4_serial</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_serial"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="save_fi"><code>game.sv4_save_fi</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_save_fi"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="print"><code>game.sv4_print</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_print"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="print_h"><code>game.sv4_print_h</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_print_h"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="load_r"><code>game.sv4_load_r</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_load_r"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
<h2 id="save_campaign"><code>game.sv4_save_campaign</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;game method="sv4_save_campaign"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;game status="<i>status</i>"&gt;
<i>placeholder</i>
&lt;/game&gt;
&lt;/response&gt;</code></pre>
</body>

103
proto/matching.html Normal file
View File

@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>matching</code></h1>
<h2 id="request"><code>matching.request</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;matching method="request"&gt;
&lt;info&gt;
&lt;version __type="s32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;matchtyp __type="s32" /&gt;
&lt;matchgrp __type="s32" /&gt;
&lt;matchflg __type="s32" /&gt;
&lt;waituser __type="s32" /&gt;
&lt;waittime __type="s32" /&gt;
&lt;joinip __type="str" /&gt;
&lt;localip __type="str" /&gt;
&lt;localport __type="s32" /&gt;
&lt;dataid __type="str" /&gt;
&lt;gamekind __type="str" /&gt;
&lt;locationid __type="str" /&gt;
&lt;lineid __type="str" /&gt;
&lt;locationcountry __type="str" /&gt;
&lt;locationregion __type="str" /&gt;
&lt;/data&gt;
&lt;/matching&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;matching status="<i>status</i>"&gt;
&lt;hostid __type="s64" /&gt;
&lt;result __type="s32" /&gt;
&lt;hostip_g __type="str" /&gt;
&lt;hostip_l __type="str" /&gt;
&lt;hostport_l __type="s32" /&gt;
&lt;hostport_g __type="s32" /&gt;
&lt;/matching&gt;
&lt;/response&gt;</code></pre>
<h2 id="wait"><code>matching.wait</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;matching method="wait"&gt;
&lt;info&gt;
&lt;version __type="s32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;hostid __type="s64" /&gt;
&lt;locationid __type="str" /&gt;
&lt;lineid __type="str" /&gt;
&lt;/data&gt;
&lt;/matching&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;matching status="<i>status</i>"&gt;
&lt;result __type="s32" /&gt;
&lt;prwtime __type="s32" /&gt;
&lt;/matching&gt;
&lt;/response&gt;</code></pre>
<h2 id="finish"><code>matching.finish</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;matching method="finish"&gt;
&lt;info&gt;
&lt;version __type="s32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;hostid __type="s64" /&gt;
&lt;locationid __type="str" /&gt;
&lt;lineid __type="str" /&gt;
&lt;/data&gt;
&lt;/matching&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;matching status="<i>status</i>"&gt;
&lt;result __type="s32" /&gt;
&lt;/matching&gt;
&lt;/response&gt;</code></pre>
</body>

35
proto/message.html Normal file
View File

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>message</code></h1>
<h2 id="get"><code>message.get</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;message method="get" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;message expire="" status="<i>status</i>"&gt;
&lt;item[] name="" start="" end="" data="" /&gt;
&lt;/message&gt;
&lt;/response&gt;</code></pre>
</body>

47
proto/package.html Normal file
View File

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>package</code></h1>
<h2 id="list"><code>package.list</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;package method="list" pkgtype="<i>pkgtype</i>" model*="" /&gt;
&lt;/call&gt;</code></pre>
<p><code>all</code> is the only currently observed value for <code>pkgtype</code></p>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;package status="<i>status</i>"&gt;
&lt;item[] url="" /&gt;
&lt;/package&gt;
&lt;/response&gt;</code></pre>
<p>A list of all packages available for download.</p>
<h2 id="intend"><code>package.intend</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;package method="intend" url="" model*="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;package status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

41
proto/pcbevent.html Normal file
View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>pcbevent</code></h1>
<h2 id="put"><code>pcbevent.put</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;pcbevent method="put"&gt;
&lt;time __type="time" /&gt;
&lt;seq __type="u32" /&gt;
&lt;item[]&gt;
&lt;name __type="str" /&gt;
&lt;value __type="s32" /&gt;
&lt;time __type="time" /&gt;
&lt;/item[]&gt;
&lt;/pcbevent&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;pcbevent status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

39
proto/pcbtracker.html Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>pcbtracker</code></h1>
<h2 id="alive"><code>pcbtracker.alive</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;pcbtracker method="alive" model*="" hardid="" softid="" accountid="" agree="" ecflag="" /&gt;
&lt;/call&gt;</code></pre>
<p><code>ecflag</code> here is determining if the arcade operator allows the use of paseli on this machine.</p>
<p><code>agree@</code> and <code>ecflag@</code> appear to either be totally non present, or present with a value of
<code>"1"</code>, but then again I may be reading the code wrong, so take that with a pinch of salt.
</p>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;pcbtracker status="" time="" limit="" ecenable="" eclimit="" &gt;
&lt;/response&gt;</code></pre>
<p>As you might guess, <code>ecenable@</code> is therefore the flag to determine if paseli is enabled (i.e. the
arcade operator and the server both allow its use).</p>
</body>

156
proto/playerdata.html Normal file
View File

@ -0,0 +1,156 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>playerdata</code></h1>
<h2 id="usergamedata_send"><code>playerdata.usergamedata_send</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;playerdata method="usergamedata_send"&gt;
&lt;retrycnt __type="u32" /&gt;
&lt;info&gt;
&lt;version __type="u32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;refid __type="str" /&gt;
&lt;dataid __type="str" /&gt;
&lt;gamekind __type="str" /&gt;
&lt;datanum __type="u32" /&gt;
&lt;record&gt;
&lt;d[] __type="str" /&gt;
&lt;/record&gt;
&lt;/data&gt;
&lt;/playerdata&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;playerdata status="<i>status</i>"&gt;
&lt;result __type="s32" /&gt;
&lt;/playerdata&gt;
&lt;/response&gt;</code></pre>
<h2 id="usergamedata_recv"><code>playerdata.usergamedata_recv</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;playerdata method="usergamedata_recv"&gt;
&lt;info&gt;
&lt;version __type="u32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;refid __type="str"&gt;
&lt;dataid __type="str"&gt;
&lt;gamekind __type="str"&gt;
&lt;recv_num __type="u32"&gt;
&lt;/data&gt;
&lt;/playerdata&gt;
&lt;/call&gt;</code></pre>
<pre><code>&lt;call <i>...</i>&gt;
&lt;playerdata method="usergamedata_recv"&gt;
&lt;data&gt;
&lt;refid __type="str"&gt;
&lt;dataid __type="str"&gt;
&lt;gamekind __type="str"&gt;
&lt;recv_csv __type="str"&gt;
&lt;/data&gt;
&lt;/playerdata&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;playerdata status="<i>status</i>"&gt;
&lt;player&gt;
&lt;result&gt;
&lt;record_num __type="u32" /&gt;
&lt;/result&gt;
&lt;record&gt;
&lt;d[]&gt;
&lt;bin1 __type="str" /&gt;
&lt;/d[]&gt;
&lt;/record&gt;
&lt;/player&gt;
&lt;/playerdata&gt;
&lt;/response&gt;</code></pre>
<h2 id="usergamedata_inheritance"><code>playerdata.usergamedata_inheritance</code></h2>
<p>See: <code>playerdata.usergamedata_recv</code></p>
<h2 id="usergamedata_condrecv"><code>playerdata.usergamedata_condrecv</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;playerdata method="usergamedata_condrecv"&gt;
&lt;info&gt;
&lt;version __type="s32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;dataid __type="str" /&gt;
&lt;gamekind __type="str" /&gt;
&lt;vkey __type="str" /&gt;
&lt;conditionkey __type="str" /&gt;
&lt;columns_bit __type="u64" /&gt;
&lt;conditions_num __type="u32" /&gt;
&lt;where __type="str" /&gt;
&lt;order_num __type="u32" /&gt;
&lt;order __type="str" /&gt;
&lt;recv_num __type="u32" /&gt;
&lt;/info&gt;
&lt;/playerdata&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;playerdata status="<i>status</i>"&gt;
&lt;player&gt;
&lt;result __type="s32" /&gt;
&lt;record_num __type="s32" /&gt;
&lt;record&gt;
&lt;d[]&gt;
&lt;bin1 __type="str" /&gt;
&lt;/d[]&gt;
&lt;record/&gt;
&lt;/player&gt;
&lt;/playerdata&gt;
&lt;/response&gt;</code></pre>
<h2 id="usergamedata_scorerank"><code>playerdata.usergamedata_scorerank</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;playerdata method="usergamedata_scorerank"&gt;
&lt;info&gt;
&lt;version __type="s32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;dataid __type="str" /&gt;
&lt;gamekind __type="str" /&gt;
&lt;ckey __type="str" /&gt;
&lt;conditionkey __type="str" /&gt;
&lt;score __type="str" /&gt;
&lt;/data&gt;
&lt;/playerdata&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;playerdata status="<i>status</i>"&gt;
&lt;rank&gt;
&lt;result __type="s32" /&gt;
&lt;rank __type="s32" /&gt;
&lt;updatetime __type="u64" /&gt;
&lt;/rank&gt;
&lt;/playerdata&gt;
&lt;/response&gt;</code></pre>
</body>

70
proto/services.html Normal file
View File

@ -0,0 +1,70 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>services</code></h1>
<h2 id="get"><code>services.get</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;services method="get" model*="" &gt;
&lt;info&gt;
&lt;AVS2 __type="str"&gt;<i>AVS2 version</i>&lt;/AVS2&gt;
&lt;/info&gt;
&lt;/services&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;services expire="" method="get" mode="" status="<i>status</i>"&gt;
&lt;item[] name="<i>service</i>" url="<i>url</i>" /&gt;
&lt;/services&gt;
&lt;/response&gt;</code></pre>
<p>Known services are:</p>
<ul>
<li><code>ntp</code></li>
<li><code>keepalive</code></li>
<li><code>cardmng</code></li>
<li><code>facility</code></li>
<li><code>message</code></li>
<li><code>numbering</code></li>
<li><code>package</code></li>
<li><code>pcbevent</code></li>
<li><code>pcbtracker</code></li>
<li><code>pkglist</code></li>
<li><code>posevent</code></li>
<li><code>userdata</code></li>
<li><code>userid</code></li>
<li><code>eacoin</code></li>
<li><code>local</code></li>
<li><code>local2</code></li>
<li><code>lobby</code></li>
<li><code>lobby2</code></li>
<li><code>dlstatus</code></li>
<li><code>netlog</code></li>
<li><code>sidmgr</code></li>
<li><code>globby</code></li>
</ul>
<p>Most of these will usually just return the URL to the eAmuse server (or your fake one ;D). <code>ntp</code> is a
notable exception, unless you're planning on reimplementing NTP. <code>keepalive</code> will likely alsop be a
custom URL with query parameters pre-baked.</p>
<p><code>mode</code> is one of <code>operation</code>, <code>debug</code>, <code>test</code>, or
<code>factory</code>.
</p>
</body>

94
proto/sidmgr.html Normal file
View File

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>sidmgr</code></h1>
<h2 id="create"><code>sidmgr.create</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;sidmgr method="create"&gt;
&lt;cardtype __type="str" /&gt;
&lt;cardid __type="str" /&gt;
&lt;cardgid __type="str" /&gt;
&lt;steal __type="u8" /&gt;
&lt;/sidmgr&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;sidmgr status="<i>status</i>"&gt;
&lt;state __type="u32" /&gt;
&lt;e_count __type="u8" /&gt;
&lt;last __type="time" /&gt;
&lt;locked __type="time" /&gt;
&lt;sid __type="str" /&gt;
&lt;cardid_status __type="u8" /&gt;
&lt;refid __type="str" /&gt;
&lt;/sidmgr&gt;
&lt;/response&gt;</code></pre>
<h2 id="open"><code>sidmgr.open</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;sidmgr method="open" sid="" &gt;
&lt;pass __type="str" /&gt;
&lt;/sidmgr&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;sidmgr status="<i>status</i>"&gt;
&lt;state __type="u32" /&gt;
&lt;refid __type="str" /&gt;
&lt;locked __type="time" /&gt;
&lt;/sidmgr&gt;
&lt;/response&gt;</code></pre>
<h2 id="touch"><code>sidmgr.touch</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;sidmgr method="touch" sid="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;sidmgr status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="branch"><code>sidmgr.branch</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;sidmgr method="branch" sid="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;sidmgr status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
<h2 id="close"><code>sidmgr.close</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;sidmgr method="close" sid="" /&gt;
&lt;cause __type="u32" /&gt;
&lt;/sidmgr&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;sidmgr status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

126
proto/system.html Normal file
View File

@ -0,0 +1,126 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>system</code></h1>
<h2 id="getmaster"><code>system.getmaster</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;system method="getmaster"&gt;
&lt;data&gt;
&lt;gamekind __type="str" /&gt;
&lt;datatype __type="str" /&gt;
&lt;datakey __type="str" /&gt;
&lt;/data&gt;
&lt;/system&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;system status="<i>status</i>"&gt;
&lt;result __type="s32" /&gt;
&lt;strdata1 __type="str" /&gt;
&lt;strdata2 __type="str" /&gt;
&lt;updatedate __type="u64" /&gt;
&lt;/system&gt;
&lt;/response&gt;</code></pre>
<h2 id="getlocationiplist"><code>system.getlocationiplist</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;system method="getlocationiplist"&gt;
&lt;data&gt;
&lt;locationid __type="str" /&gt;
&lt;lineid __type="str" /&gt;
&lt;/data&gt;
&lt;/system&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;system status="<i>status</i>"&gt;
&lt;result __type="s32" /&gt;
&lt;iplist&gt;
&lt;record_num __type="s32" /&gt;
&lt;record[]&gt;
&lt;localconn __type="str" /&gt;
&lt;/record[]&gt;
&lt;/iplist&gt;
&lt;/system&gt;
&lt;/response&gt;</code></pre>
<h2 id="xrpcproxy"><code>system.xrpcproxy</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;system method="xrpcproxy"&gt;
&lt;info&gt;
&lt;version __type="s32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;hostid __type="s64" /&gt;
&lt;locationid __type="str" /&gt;
&lt;lineid __type="str" /&gt;
&lt;/data&gt;
&lt;/system&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;system status="<i>status</i>"&gt;
&lt;result __type="s32" /&gt;
&lt;pwrtime __type="s32" /&gt;
&lt;matchlist&gt;
&lt;record_num __type="u32" /&gt;
&lt;record[]&gt;
&lt;pcbid __type="str" /&gt;
&lt;statusflg __type="str" /&gt;
&lt;matchgrp __type="s32" /&gt;
&lt;hostid __type="s64" /&gt;
&lt;jointime __type="u64" /&gt;
&lt;connip_g __type="str" /&gt;
&lt;connport_g __type="s32" /&gt;
&lt;connip_l __type="str" /&gt;
&lt;connport_l __type="s32" /&gt;
&lt;/record[]&gt;
&lt;/matchlist&gt;
&lt;/system&gt;
&lt;/response&gt;</code></pre>
<h2 id="convcardnumber"><code>system.convcardnumber</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;system method="convcardnumber"&gt;
&lt;info&gt;
&lt;version __type="s32" /&gt;
&lt;/info&gt;
&lt;data&gt;
&lt;card_id __type="str" /&gt;
&lt;card_type __type="s32" /&gt;
&lt;/data&gt;
&lt;/system&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;system status="<i>status</i>"&gt;
&lt;result __type="s32" /&gt;
&lt;data&gt;
&lt;card_number __type="str" /&gt;
&lt;/data&gt;
&lt;/system&gt;
&lt;/response&gt;</code></pre>
</body>

40
proto/traceroute.html Normal file
View File

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>traceroute</code></h1>
<h2 id="send"><code>traceroute.send</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;traceroute proto="" method="send"&gt;
&lt;hop[]&gt;
&lt;valid __type="bool"&gt;
&lt;addr __type="ip4"&gt;
&lt;usec __type="u64"&gt;
&lt;/hop[]&gt;
&lt;/traceroute&gt;
&lt;/call&gt;</code></pre>
<p><code>hop</code> repeats for every hop (unsurprisingly)</p>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;traceroute status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

48
proto/userdata.html Normal file
View File

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>e-Amusement API</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<table>
<tr>
<td><a href="..">Contents</a></td>
<td><a href="../transport.html">Transport layer</a></td>
<td><a href="../packet.html">Packet format</a></td>
<td><a href="../protocol.html">Application Protocol</a></td>
</tr>
</table>
<h1><code>userdata</code></h1>
<h2 id="read"><code>userdata.read</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;userdata method="read" card*="" model*="" label="" /&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;userdata status="<i>status</i>" time=""&gt;
&lt;b[] __type="" /&gt;
&lt;/userdata&gt;
&lt;/response&gt;</code></pre>
<p><code>__type</code> here can be either <code>bin</code> or <code>str</code></p>
<h2 id="write"><code>userdata.write</code></h2>
<h3>Request:</h3>
<pre><code>&lt;call <i>...</i>&gt;
&lt;userdata method="write" card="" time="" model*="" label*="" &gt;
&lt;b[] __type="str" /&gt;
&lt;/userdata&gt;
&lt;/call&gt;</code></pre>
<h3>Response:</h3>
<pre><code>&lt;response&gt;
&lt;userdata status="<i>status</i>" /&gt;
&lt;/response&gt;</code></pre>
</body>

File diff suppressed because it is too large Load Diff

View File

@ -45,6 +45,7 @@ p {
}
code {
vertical-align: middle;
letter-spacing: .02em;
padding: 2px 4px;
font-size: 90%;
@ -53,6 +54,9 @@ code {
border-radius: 4px;
word-break: break-word;
}
td > code {
word-break: normal;
}
code > a {
color: inherit;
}