diff --git a/__base.html b/__base.html new file mode 100644 index 0000000..ce20100 --- /dev/null +++ b/__base.html @@ -0,0 +1,24 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ + + \ No newline at end of file diff --git a/proto/apsmanager.html b/proto/apsmanager.html new file mode 100644 index 0000000..d794d41 --- /dev/null +++ b/proto/apsmanager.html @@ -0,0 +1,33 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

apsmanager

+

apsmanager.getstat

+

Request:

+
<call ...>
+    <apsmanager method="getstat" model*="" />
+</call>
+

Response:

+
<response>
+    <apsmanager status="status" />
+</response>
+ \ No newline at end of file diff --git a/proto/cardmng.html b/proto/cardmng.html new file mode 100644 index 0000000..acdde4a --- /dev/null +++ b/proto/cardmng.html @@ -0,0 +1,232 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

cardmng

+

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 cardtype attribute as in the below table. +

+

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.

+

In the interest of not wasting space, cardid and cardtype will be omitted from + individual breakdowns where their meaning is obvious.

+ +

Card types:

+ + + + + + + + + + + + + + + +
cardtypeMeaning
1Old style magnetic stripe card
2FeliCa RFID card
+ + + + +

cardmng.inquire

+

Request information about a card that has been inserted or touched against a reader.

+ +

Request:

+
<call ...>
+    <cardmng method="inquire" cardid="" cardtype="" update="" model*="" />
+</call>
+ + + + + +
updateShould the tracked last play time be updated by this inquiry? (Just a guess)
+

Response:

+
<response>
+    <cardmng status="status" refid="" dataid="" pcode=""  newflag="" binded="" expired=" ecflag="" useridflag="" extidflag="" lastupdate="" />
+</response>
+

To handle this request, we first must lookup if this cardid has ever been seen by our servers + before. If not, we abort with a 112 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.

+ + + + + + + + + + + + + + + + + + + + + +
refidA reference to this card to be used in other requests
dataidAppears to be set the same as refid; presumably to allow different keys for game state vs + login details.
newflagInverse of binded
bindedHas a profile ever been created for this game (or an older version, requiring a migration) + (1 or 0)
expired? Just set to 0.
+ +

cardmng.getrefid

+

Register a new card to this server.

+

Request:

+
<call ...>
+    <cardmng method="getrefid" cardtype="" cardid=" newflag="" passwd="" model*="" />
+</call>
+ + + + + + + + + +
newflag?
passwdThe pin for this new user. Should always be a four digit number (and that's worth validating), + but it's passed as a string so could feasibly be anything desired.
+

Response:

+
<response>
+    <cardmng status="status" refid="" dataid="" pcode="" />
+</response>
+ + + + + + + + + + + + + +
refidA reference to this card to be used in other requests
dataidAppears to be set the same as refid; presumably to allow different keys for game state vs + login details.
pcode? Not present in captured data.
+ +

cardmng.bindmodel

+

Request:

+
<call ...>
+    <cardmng method="bindmodel" refid="" newflag="" model*="" />
+</call>
+

Response:

+
<response>
+    <cardmng status="status" dataid="" />
+</response>
+ +

cardmng.bindcard

+

Request:

+
<call ...>
+    <cardmng method="bindcard" cardtype="" newid="" refid="" model*="" />
+</call>
+

Response:

+
<response>
+    <cardmng status="status" />
+</response>
+ +

cardmng.authpass

+

Test a pin for a card. This request notably uses the refid, so required a + cardmng.inquire call to be made first. +

+

Request:

+
<call ...>
+    <cardmng method="authpass" refid="" pass="" model*="" />
+</call>
+ + + + + + + + + +
refidThe reference we received either during cardmng.inquire or cardmng.getrefid + (the latter for new cards)
passThe pin to test. See cardmng.getrefid.
+

Response:

+
<response>
+    <cardmng status="status" />
+</response>
+

If the pin is valid, status should be 0. Otherwise, 116.

+ +

cardmng.getkeepspan

+

Request:

+
<call ...>
+    <cardmng method="getkeepspan" model*="" />
+</call>
+

Response:

+
<response>
+    <cardmng status="status" keepspan="" />
+</response>
+ +

cardmng.getkeepremain

+

Request:

+
<call ...>
+    <cardmng method="getkeepremain" refid="" model*="" />
+</call>
+

Response:

+
<response>
+    <cardmng status="status" keepremain="" />
+</response>
+ +

cardmng.getdatalist

+

Request:

+
<call ...>
+    <cardmng method="getdatalist" refid="" model*="" />
+</call>
+

Response:

+
<response>
+    <cardmng status="status">
+        <item[]>
+            <mcode __type="str" />
+            <dataid __type="str" />
+            <regtime __type="str" />
+            <lasttime __type="str" />
+            <exptime __type="str" />
+            <expflag __type="u8" />
+        </item[]>
+    </cardmng>
+</response>
+ \ No newline at end of file diff --git a/proto/dlstatus.html b/proto/dlstatus.html new file mode 100644 index 0000000..eb7cc51 --- /dev/null +++ b/proto/dlstatus.html @@ -0,0 +1,54 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

dlstatus

+

dlstatus.done

+

Request:

+
<call ...>
+    <dlstatus method="done">
+        <url>
+            <param __type="str" />
+        </url>
+        <name __type="str" />
+        <size __type="s32" />
+    </dlstatus>
+</call>
+ +

Response:

+
<response>
+    <dlstatus status="status">
+        <progress __type="s32" />
+    </dlstatus>
+</response>
+ +

dlstatus.progress

+

Request:

+
<call ...>
+    <dlstatus method="progress" />
+        <progress __type="s32" />
+    </dlstatus>
+</call>
+

Response:

+
<response>
+    <dlstatus status="status" />
+</response>
+ \ No newline at end of file diff --git a/proto/eacoin.html b/proto/eacoin.html new file mode 100644 index 0000000..1fb9767 --- /dev/null +++ b/proto/eacoin.html @@ -0,0 +1,200 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

eacoin

+

eacoin.checkin

+

Request:

+
<call ...>
+    <eacoin method="checkin">
+        <cardtype __type="str" />
+        <cardid __type="str" />
+        <passwd __type="str" />
+        <ectype __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status">
+        <sequence __type="s16" />
+        <acstatus __type="u8" />
+        <acid __type="str" />
+        <acname __type="str" />
+        <balance __type="s32" />
+        <sessid __type="str" />
+    </eacoin>
+</response>
+ +

eacoin.checkout

+

Request:

+
<call ...>
+    <eacoin method="checkout">
+        <sessid __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status" />
+</response>
+ +

eacoin.consume

+

Request:

+
<call ...>
+    <eacoin method="consume" esid="">
+        <sessid __type="str" />
+        <sequence __type="s16" />
+        <payment __type="s32" />
+        <service __type="s16" />
+        <itemtype __type="str" />
+        <detail __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status">
+        <acstatus __type="u8" />
+        <autocharge __type="u8" />
+        <balance __type="s32" />
+    </eacoin>
+</response>
+ +

eacoin.getbalance

+

Request:

+
<call ...>
+    <eacoin method="getbalance">
+      <sessid __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status">
+        <acstatus __type="u8" />
+        <balance __type="s32" />
+    </eacoin>
+</response>
+ +

eacoin.getecstatus

+

Request:

+
<call ...>
+    <eacoin method="getecstatus" />
+</call>
+

Response:

+
<response>
+    <eacoin status="status">
+        <ectype __type="str" />
+        <ecstatus __type="u8" />
+    </eacoin>
+</response>
+ +

eacoin.touch

+

Request:

+
<call ...>
+    <eacoin method="touch">
+        <sessid __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status" />
+</response>
+ +

eacoin.opchpass

+

Request:

+
<call ...>
+    <eacoin method="opchpass">
+        <passwd __type="str" />
+        <newpasswd __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status" />
+</response>
+ +

eacoin.opcheckin

+

Request:

+
<call ...>
+    <eacoin method="opcheckin">
+        <passwd __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status">
+        <sessid __type="str" />
+    </eacoin>
+</response>
+ +

eacoin.opcheckout

+

Request:

+
<call ...>
+    <eacoin method="opcheckout">
+        <sessid __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status" />
+</response>
+ +

eacoin.getlog

+

Request:

+
<call ...>
+    <eacoin method="getlog">
+        <sessid __type="str" />
+        <logtype __type="str" />
+        <ectype __type="str" />
+        <target __type="str" />
+        <perpage __type="s16" />
+        <page __type="s16" />
+        <sesstype __type="str" />
+    </eacoin>
+</call>
+

Response:

+
<response>
+    <eacoin status="status">
+        <processing __type="u8" />
+        <topic>
+            <sumdate __type="str" />
+            <sumfrom __type="str" />
+            <sumto __type="str" />
+
+            <today __type="s32" />
+            <average __type="s32" />
+            <total __type="s32" />
+        </topic>
+        <summary>
+            <items __type="s32" />
+        </summary>
+        <history>
+            <item[]>
+                <date __type="str" />
+                <consume __type="s32" />
+                <service __type="s32" />
+                <cardtype __type="str" />
+                <cardno __type="str" />
+                <title __type="str" />
+                <systemid __type="str" />
+            </item[]>
+        </history>
+    </eacoin>
+</response>
+ \ No newline at end of file diff --git a/proto/esign.html b/proto/esign.html new file mode 100644 index 0000000..b5c7364 --- /dev/null +++ b/proto/esign.html @@ -0,0 +1,37 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

esign

+

esign.request

+

Request:

+
<call ...>
+    <esign method="request">
+        placeholder
+    </esign>
+</call>
+

Response:

+
<response>
+    <esign status="status">
+        placeholder
+    </esign>
+</response>
+ \ No newline at end of file diff --git a/proto/esoc.html b/proto/esoc.html new file mode 100644 index 0000000..1d061b1 --- /dev/null +++ b/proto/esoc.html @@ -0,0 +1,50 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

esoc

+

esoc.read

+

Request:

+
<call ...>
+    <esoc method="read">
+        <senddata />
+    </esoc>
+</call>
+

Response:

+
<response>
+    <esoc status="status">
+        <recvdata />
+    </esoc>
+</response>
+

Go figure.

+ +

esoc.write

+

Request:

+
<call ...>
+    <esoc method="write">
+        <senddata />
+    </esoc>
+</call>
+

Response:

+
<response>
+    <esoc status="status" />
+</response>
+ \ No newline at end of file diff --git a/proto/eventlog.html b/proto/eventlog.html new file mode 100644 index 0000000..c1f9d54 --- /dev/null +++ b/proto/eventlog.html @@ -0,0 +1,58 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

eventlog

+

eventlog.write

+

Request:

+
<call ...>
+    <eventlog method="write">
+        <retrycnt __type="u32" />
+        <data>
+            <eventid __type="str" />
+            <eventorder __type="s32" />
+            <pcbtime __type="u64" />
+            <gamesession __type="s64" />
+            <strdata1 __type="str" />
+            <strdata2 __type="str" />
+            <numdata1 __type="s64" />
+            <numdata2 __type="s64" />
+            <locationid __type="str" />
+        </data>
+    </eventlog>
+</call>
+

Event ID list:

+ +

Response:

+
<response>
+    <eventlog status="status">
+        <gamesession __type="s64" />
+        <logsendflg __type="s32" />
+        <logerrlevel __type="s32" />
+        <evtidnosendflg __type="s32" />
+    </eventlog>
+</response>
+ \ No newline at end of file diff --git a/proto/facility.html b/proto/facility.html new file mode 100644 index 0000000..ec74198 --- /dev/null +++ b/proto/facility.html @@ -0,0 +1,140 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

facility

+

facility.get

+

Request:

+
<call ...>
+    <facility method="get" privateip*="" encoding*="" />
+</call>
+

Response:

+
<response>
+    <facility expire=""\ status="status">
+        <calendar*>
+            <year __type="s16" />
+            <holiday __type="s16" />
+        </calendar>
+        <location>
+            <id __type="str" />
+            <country __type="str" />
+            <region __type="str" />
+            <name __type="str" />
+            <type __type="u8" />
+            <countryname __type="str" />
+            <countryjname __type="str" />
+            <regionname __type="str" />
+            <regionjname __type="str" />
+            <customercode __type="str" />
+            <companycode __type="str" />
+            <latitude __type="s32" />
+            <longitude __type="s32" />
+            <accuracy __type="u8" />
+        </location>
+        <line>
+            <id __type="str" />
+            <class __type="u8" />
+        </line>
+        <portfw>
+            <globalip __type="ip4" />
+            <globalport __type="s16" />
+            <privateport __type="s16" />
+        </portfw>
+        <public>
+            <flag __type="u8" />1</ flag>
+            <name __type="str" />
+            <latitude __type="str">0<latitude>
+            <longitude __type="str">0<longitude>
+        </public>
+        <share>
+            <eapass*>
+                <valid __type="?" />
+            </eapass>
+            <eacoin>
+                <notchamount __type="s32" />
+                <notchcount __type="s32" />
+                <supplylimit __type="s32">100000<supplylimit>
+            </eacoin>
+            <url>
+                <eapass __type="str">www.ea-pass.konami.net<eapass>
+                <arcadefan __type="str">www.konami.jp/am<arcadefan>
+                <konaminetdx __type="str">http://am.573.jp<konaminetdx>
+                <konamiid __type="str">http://id.konami.jp<konamiid>
+                <eagate __type="str">http://eagate.573.jp<eagate>
+            </url>
+        </share>
+    </facility>
+</response>
+

I'm not totally sure what type share/eapass/valid is meant to be, but it's optional, so I'd + suggest just not bothering and leaving it out :).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CountryCode
Hong KongHK
TaiwanTW
KoreaKR
USAUS
ThailandTH
IndonesiaID
SingaporeSG
PhillipinesPH
MacaoMO
JapanJP
+

globalip (and associated ports) shold be the IP:port of the cabinet.

+

region is used for Japan, and has the value JP-[prefecture] where prefecture ranges + from 1 through 47.

+

TODO: Compile the list of regions

+ \ No newline at end of file diff --git a/proto/game/sv4.html b/proto/game/sv4.html new file mode 100644 index 0000000..afd231d --- /dev/null +++ b/proto/game/sv4.html @@ -0,0 +1,387 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

game

+

game.sv4_sample

+

Request:

+
<call ...>
+    <game method="sv4_sample">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_new

+

Request:

+
<call ...>
+    <game method="sv4_new">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_load

+

Request:

+
<call ...>
+    <game method="sv4_load">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_load_m

+

Request:

+
<call ...>
+    <game method="sv4_load_m">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_save

+

Request:

+
<call ...>
+    <game method="sv4_save">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_save_m

+

Request:

+
<call ...>
+    <game method="sv4_save_m">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_common

+

Request:

+
<call ...>
+    <game method="sv4_common">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_shop

+

Request:

+
<call ...>
+    <game method="sv4_shop">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_hiscore

+

Request:

+
<call ...>
+    <game method="sv4_hiscore">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_buy

+

Request:

+
<call ...>
+    <game method="sv4_buy">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_exception

+

Request:

+
<call ...>
+    <game method="sv4_exception">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_entry_s

+

Request:

+
<call ...>
+    <game method="sv4_entry_s">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_entry_e

+

Request:

+
<call ...>
+    <game method="sv4_entry_e">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_frozen

+

Request:

+
<call ...>
+    <game method="sv4_frozen">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_lounce

+

Request:

+
<call ...>
+    <game method="sv4_lounce">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_save_e

+

Request:

+
<call ...>
+    <game method="sv4_save_e">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_save_pb

+

Request:

+
<call ...>
+    <game method="sv4_save_pb">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_save_c

+

Request:

+
<call ...>
+    <game method="sv4_save_c">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_play_s

+

Request:

+
<call ...>
+    <game method="sv4_play_s">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_play_e

+

Request:

+
<call ...>
+    <game method="sv4_play_e">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_serial

+

Request:

+
<call ...>
+    <game method="sv4_serial">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_save_fi

+

Request:

+
<call ...>
+    <game method="sv4_save_fi">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_print

+

Request:

+
<call ...>
+    <game method="sv4_print">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ + +

Request:

+
<call ...>
+    <game method="sv4_print_h">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_load_r

+

Request:

+
<call ...>
+    <game method="sv4_load_r">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ +

game.sv4_save_campaign

+

Request:

+
<call ...>
+    <game method="sv4_save_campaign">
+        placeholder
+    </game>
+</call>
+

Response:

+
<response>
+    <game status="status">
+        placeholder
+    </game>
+</response>
+ \ No newline at end of file diff --git a/proto/matching.html b/proto/matching.html new file mode 100644 index 0000000..9a1a707 --- /dev/null +++ b/proto/matching.html @@ -0,0 +1,103 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

matching

+

matching.request

+

Request:

+
<call ...>
+    <matching method="request">
+        <info>
+            <version __type="s32" />
+        </info>
+        <data>
+            <matchtyp __type="s32" />
+            <matchgrp __type="s32" />
+            <matchflg __type="s32" />
+            <waituser __type="s32" />
+            <waittime __type="s32" />
+            <joinip __type="str" />
+            <localip __type="str" />
+            <localport __type="s32" />
+            <dataid __type="str" />
+            <gamekind __type="str" />
+            <locationid __type="str" />
+            <lineid __type="str" />
+            <locationcountry __type="str" />
+            <locationregion __type="str" />
+        </data>
+    </matching>
+</call>
+

Response:

+
<response>
+    <matching status="status">
+        <hostid __type="s64" />
+        <result __type="s32" />
+        <hostip_g __type="str" />
+        <hostip_l __type="str" />
+        <hostport_l __type="s32" />
+        <hostport_g __type="s32" />
+    </matching>
+</response>
+ +

matching.wait

+

Request:

+
<call ...>
+    <matching method="wait">
+        <info>
+            <version __type="s32" />
+        </info>
+        <data>
+            <hostid __type="s64" />
+            <locationid __type="str" />
+            <lineid __type="str" />
+        </data>
+    </matching>
+</call>
+

Response:

+
<response>
+    <matching status="status">
+        <result __type="s32" />
+        <prwtime __type="s32" />
+    </matching>
+</response>
+ +

matching.finish

+

Request:

+
<call ...>
+    <matching method="finish">
+        <info>
+            <version __type="s32" />
+        </info>
+        <data>
+            <hostid __type="s64" />
+            <locationid __type="str" />
+            <lineid __type="str" />
+        </data>
+    </matching>
+</call>
+

Response:

+
<response>
+    <matching status="status">
+        <result __type="s32" />
+    </matching>
+</response>
+ \ No newline at end of file diff --git a/proto/message.html b/proto/message.html new file mode 100644 index 0000000..dd7852e --- /dev/null +++ b/proto/message.html @@ -0,0 +1,35 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

message

+

message.get

+

Request:

+
<call ...>
+    <message method="get" model*="" />
+</call>
+

Response:

+
<response>
+    <message expire="" status="status">
+        <item[] name="" start="" end="" data="" />
+    </message>
+</response>
+ \ No newline at end of file diff --git a/proto/package.html b/proto/package.html new file mode 100644 index 0000000..f8c6910 --- /dev/null +++ b/proto/package.html @@ -0,0 +1,47 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

package

+

package.list

+

Request:

+
<call ...>
+    <package method="list" pkgtype="pkgtype" model*="" />
+</call>
+

all is the only currently observed value for pkgtype

+

Response:

+
<response>
+    <package status="status">
+        <item[] url="" />
+    </package>
+</response>
+

A list of all packages available for download.

+ +

package.intend

+

Request:

+
<call ...>
+    <package method="intend" url="" model*="" />
+</call>
+

Response:

+
<response>
+    <package status="status" />
+</response>
+ \ No newline at end of file diff --git a/proto/pcbevent.html b/proto/pcbevent.html new file mode 100644 index 0000000..4f8009a --- /dev/null +++ b/proto/pcbevent.html @@ -0,0 +1,41 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

pcbevent

+

pcbevent.put

+

Request:

+
<call ...>
+    <pcbevent method="put">
+        <time __type="time" />
+        <seq __type="u32" />
+        <item[]>
+            <name __type="str" />
+            <value __type="s32" />
+            <time __type="time" />
+        </item[]>
+    </pcbevent>
+</call>
+

Response:

+
<response>
+    <pcbevent status="status" />
+</response>
+ \ No newline at end of file diff --git a/proto/pcbtracker.html b/proto/pcbtracker.html new file mode 100644 index 0000000..a80aa6d --- /dev/null +++ b/proto/pcbtracker.html @@ -0,0 +1,39 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

pcbtracker

+

pcbtracker.alive

+

Request:

+
<call ...>
+    <pcbtracker method="alive" model*="" hardid="" softid="" accountid="" agree="" ecflag="" />
+</call>
+

ecflag here is determining if the arcade operator allows the use of paseli on this machine.

+

agree@ and ecflag@ appear to either be totally non present, or present with a value of + "1", but then again I may be reading the code wrong, so take that with a pinch of salt. +

+

Response:

+
<response>
+    <pcbtracker status="" time="" limit="" ecenable="" eclimit="" >
+</response>
+

As you might guess, ecenable@ is therefore the flag to determine if paseli is enabled (i.e. the + arcade operator and the server both allow its use).

+ \ No newline at end of file diff --git a/proto/playerdata.html b/proto/playerdata.html new file mode 100644 index 0000000..1bf5acf --- /dev/null +++ b/proto/playerdata.html @@ -0,0 +1,156 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

playerdata

+

playerdata.usergamedata_send

+

Request:

+
<call ...>
+    <playerdata method="usergamedata_send">
+        <retrycnt __type="u32" />
+            <info>
+                <version __type="u32" />
+            </info>
+            <data>
+                <refid __type="str" />
+                <dataid __type="str" />
+                <gamekind __type="str" />
+                <datanum __type="u32" />
+                <record>
+                    <d[] __type="str" />
+                </record>
+            </data>
+    </playerdata>
+</call>
+

Response:

+
<response>
+    <playerdata status="status">
+        <result __type="s32" />
+    </playerdata>
+</response>
+ +

playerdata.usergamedata_recv

+

Request:

+
<call ...>
+    <playerdata method="usergamedata_recv">
+        <info>
+            <version __type="u32" />
+        </info>
+        <data>
+            <refid __type="str">
+            <dataid __type="str">
+            <gamekind __type="str">
+            <recv_num __type="u32">
+        </data>
+    </playerdata>
+</call>
+
<call ...>
+    <playerdata method="usergamedata_recv">
+        <data>
+            <refid __type="str">
+            <dataid __type="str">
+            <gamekind __type="str">
+            <recv_csv __type="str">
+        </data>
+    </playerdata>
+</call>
+

Response:

+
<response>
+    <playerdata status="status">
+        <player>
+            <result>
+                <record_num __type="u32" />
+            </result>
+            <record>
+                <d[]>
+                    <bin1 __type="str" />
+                </d[]>
+            </record>
+        </player>
+    </playerdata>
+</response>
+ +

playerdata.usergamedata_inheritance

+

See: playerdata.usergamedata_recv

+ +

playerdata.usergamedata_condrecv

+

Request:

+
<call ...>
+    <playerdata method="usergamedata_condrecv">
+        <info>
+            <version __type="s32" />
+        </info>
+        <data>
+            <dataid __type="str" />
+            <gamekind __type="str" />
+            <vkey __type="str" />
+            <conditionkey __type="str" />
+            <columns_bit __type="u64" />
+            <conditions_num __type="u32" />
+            <where __type="str" />
+            <order_num __type="u32" />
+            <order __type="str" />
+            <recv_num __type="u32" />
+        </info>
+    </playerdata>
+</call>
+

Response:

+
<response>
+    <playerdata status="status">
+        <player>
+            <result __type="s32" />
+            <record_num __type="s32" />
+            <record>
+                <d[]>
+                    <bin1 __type="str" />
+                </d[]>
+            <record/>
+        </player>
+    </playerdata>
+</response>
+ +

playerdata.usergamedata_scorerank

+

Request:

+
<call ...>
+    <playerdata method="usergamedata_scorerank">
+        <info>
+            <version __type="s32" />
+        </info>
+        <data>
+            <dataid __type="str" />
+            <gamekind __type="str" />
+            <ckey __type="str" />
+            <conditionkey __type="str" />
+            <score __type="str" />
+        </data>
+    </playerdata>
+</call>
+

Response:

+
<response>
+    <playerdata status="status">
+        <rank>
+            <result __type="s32" />
+            <rank __type="s32" />
+            <updatetime __type="u64" />
+        </rank>
+    </playerdata>
+</response>
+ \ No newline at end of file diff --git a/proto/services.html b/proto/services.html new file mode 100644 index 0000000..fe8c7d3 --- /dev/null +++ b/proto/services.html @@ -0,0 +1,70 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

services

+

services.get

+

Request:

+
<call ...>
+    <services method="get" model*="" >
+        <info>
+            <AVS2 __type="str">AVS2 version</AVS2>
+        </info>
+    </services>
+</call>
+

Response:

+
<response>
+    <services expire="" method="get" mode="" status="status">
+        <item[] name="service" url="url" />
+    </services>
+</response>
+

Known services are:

+ +

Most of these will usually just return the URL to the eAmuse server (or your fake one ;D). ntp is a + notable exception, unless you're planning on reimplementing NTP. keepalive will likely alsop be a + custom URL with query parameters pre-baked.

+

mode is one of operation, debug, test, or + factory. +

+ \ No newline at end of file diff --git a/proto/sidmgr.html b/proto/sidmgr.html new file mode 100644 index 0000000..61e536b --- /dev/null +++ b/proto/sidmgr.html @@ -0,0 +1,94 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

sidmgr

+

sidmgr.create

+

Request:

+
<call ...>
+    <sidmgr method="create">
+        <cardtype __type="str" />
+        <cardid __type="str" />
+        <cardgid __type="str" />
+        <steal __type="u8" />
+    </sidmgr>
+</call>
+

Response:

+
<response>
+    <sidmgr status="status">
+        <state __type="u32" />
+        <e_count __type="u8" />
+        <last __type="time" />
+        <locked __type="time" />
+        <sid __type="str" />
+        <cardid_status __type="u8" />
+        <refid __type="str" />
+    </sidmgr>
+</response>
+ +

sidmgr.open

+

Request:

+
<call ...>
+    <sidmgr method="open" sid="" >
+        <pass __type="str" />
+    </sidmgr>
+</call>
+

Response:

+
<response>
+    <sidmgr status="status">
+        <state __type="u32" />
+        <refid __type="str" />
+        <locked __type="time" />
+    </sidmgr>
+</response>
+ +

sidmgr.touch

+

Request:

+
<call ...>
+    <sidmgr method="touch" sid="" />
+</call>
+

Response:

+
<response>
+    <sidmgr status="status" />
+</response>
+ +

sidmgr.branch

+

Request:

+
<call ...>
+    <sidmgr method="branch" sid="" />
+</call>
+

Response:

+
<response>
+    <sidmgr status="status" />
+</response>
+ +

sidmgr.close

+

Request:

+
<call ...>
+    <sidmgr method="close" sid="" />
+        <cause __type="u32" />
+    </sidmgr>
+</call>
+

Response:

+
<response>
+    <sidmgr status="status" />
+</response>
+ \ No newline at end of file diff --git a/proto/system.html b/proto/system.html new file mode 100644 index 0000000..426f9b9 --- /dev/null +++ b/proto/system.html @@ -0,0 +1,126 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

system

+

system.getmaster

+

Request:

+
<call ...>
+    <system method="getmaster">
+        <data>
+            <gamekind __type="str" />
+            <datatype __type="str" />
+            <datakey __type="str" />
+        </data>
+    </system>
+</call>
+

Response:

+
<response>
+    <system status="status">
+        <result __type="s32" />
+        <strdata1 __type="str" />
+        <strdata2 __type="str" />
+        <updatedate __type="u64" />
+    </system>
+</response>
+ +

system.getlocationiplist

+

Request:

+
<call ...>
+    <system method="getlocationiplist">
+        <data>
+            <locationid __type="str" />
+            <lineid __type="str" />
+        </data>
+    </system>
+</call>
+

Response:

+
<response>
+    <system status="status">
+        <result __type="s32" />
+        <iplist>
+            <record_num __type="s32" />
+            <record[]>
+                <localconn __type="str" />
+            </record[]>
+        </iplist>
+    </system>
+</response>
+ +

system.xrpcproxy

+

Request:

+
<call ...>
+    <system method="xrpcproxy">
+        <info>
+            <version __type="s32" />
+        </info>
+        <data>
+            <hostid __type="s64" />
+            <locationid __type="str" />
+            <lineid __type="str" />
+        </data>
+    </system>
+</call>
+

Response:

+
<response>
+    <system status="status">
+        <result __type="s32" />
+        <pwrtime __type="s32" />
+        <matchlist>
+            <record_num __type="u32" />
+            <record[]>
+                <pcbid __type="str" />
+                <statusflg __type="str" />
+                <matchgrp __type="s32" />
+                <hostid __type="s64" />
+                <jointime __type="u64" />
+                <connip_g __type="str" />
+                <connport_g __type="s32" />
+                <connip_l __type="str" />
+                <connport_l __type="s32" />
+            </record[]>
+        </matchlist>
+    </system>
+</response>
+ +

system.convcardnumber

+

Request:

+
<call ...>
+    <system method="convcardnumber">
+        <info>
+            <version __type="s32" />
+        </info>
+        <data>
+            <card_id __type="str" />
+            <card_type __type="s32" />
+        </data>
+    </system>
+</call>
+

Response:

+
<response>
+    <system status="status">
+        <result __type="s32" />
+        <data>
+            <card_number __type="str" />
+        </data>
+    </system>
+</response>
+ \ No newline at end of file diff --git a/proto/traceroute.html b/proto/traceroute.html new file mode 100644 index 0000000..f694510 --- /dev/null +++ b/proto/traceroute.html @@ -0,0 +1,40 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

traceroute

+

traceroute.send

+

Request:

+
<call ...>
+    <traceroute proto="" method="send">
+        <hop[]>
+            <valid __type="bool">
+            <addr __type="ip4">
+            <usec __type="u64">
+        </hop[]>
+    </traceroute>
+</call>
+

hop repeats for every hop (unsurprisingly)

+

Response:

+
<response>
+    <traceroute status="status" />
+</response>
+ \ No newline at end of file diff --git a/proto/userdata.html b/proto/userdata.html new file mode 100644 index 0000000..502947e --- /dev/null +++ b/proto/userdata.html @@ -0,0 +1,48 @@ + + + + + + + + e-Amusement API + + + + + + + + + + + + +
ContentsTransport layerPacket formatApplication Protocol
+ +

userdata

+

userdata.read

+

Request:

+
<call ...>
+    <userdata method="read" card*="" model*="" label="" />
+</call>
+

Response:

+
<response>
+    <userdata status="status" time="">
+        <b[] __type="" />
+    </userdata>
+</response>
+

__type here can be either bin or str

+ +

userdata.write

+

Request:

+
<call ...>
+    <userdata method="write" card="" time="" model*="" label*="" >
+        <b[] __type="str" />
+    </userdata>
+</call>
+

Response:

+
<response>
+    <userdata status="status" />
+</response>
+ \ No newline at end of file diff --git a/protocol.html b/protocol.html index 6d65e16..fb8b85b 100644 --- a/protocol.html +++ b/protocol.html @@ -125,1623 +125,160 @@

Possible XRPC requests

-

eventlog

-

eventlog.write

-

Request:

-
<call ...>
-    <eventlog method="write">
-        <retrycnt __type="u32" />
-        <data>
-            <eventid __type="str" />
-            <eventorder __type="s32" />
-            <pcbtime __type="u64" />
-            <gamesession __type="s64" />
-            <strdata1 __type="str" />
-            <strdata2 __type="str" />
-            <numdata1 __type="s64" />
-            <numdata2 __type="s64" />
-            <locationid __type="str" />
-        </data>
-    </eventlog>
-</call>
-

Event ID list:

+ + Totally undocumented services (based on services.get): -

Response:

-
<response>
-    <eventlog status="status">
-        <gamesession __type="s64" />
-        <logsendflg __type="s32" />
-        <logerrlevel __type="s32" />
-        <evtidnosendflg __type="s32" />
-    </eventlog>
-</response>
- - -

playerdata

-

playerdata.usergamedata_send

-

Request:

-
<call ...>
-    <playerdata method="usergamedata_send">
-        <retrycnt __type="u32" />
-            <info>
-                <version __type="u32" />
-            </info>
-            <data>
-                <refid __type="str" />
-                <dataid __type="str" />
-                <gamekind __type="str" />
-                <datanum __type="u32" />
-                <record>
-                    <d[] __type="str" />
-                </record>
-            </data>
-    </playerdata>
-</call>
-

Response:

-
<response>
-    <playerdata status="status">
-        <result __type="s32" />
-    </playerdata>
-</response>
- -

playerdata.usergamedata_recv

-

Request:

-
<call ...>
-    <playerdata method="usergamedata_recv">
-        <info>
-            <version __type="u32" />
-        </info>
-        <data>
-            <refid __type="str">
-            <dataid __type="str">
-            <gamekind __type="str">
-            <recv_num __type="u32">
-        </data>
-    </playerdata>
-</call>
-
<call ...>
-    <playerdata method="usergamedata_recv">
-        <data>
-            <refid __type="str">
-            <dataid __type="str">
-            <gamekind __type="str">
-            <recv_csv __type="str">
-        </data>
-    </playerdata>
-</call>
-

Response:

-
<response>
-    <playerdata status="status">
-        <player>
-            <result>
-                <record_num __type="u32" />
-            </result>
-            <record>
-                <d[]>
-                    <bin1 __type="str" />
-                </d[]>
-            </record>
-        </player>
-    </playerdata>
-</response>
- -

playerdata.usergamedata_inheritance

-

See: playerdata.usergamedata_recv

- -

playerdata.usergamedata_condrecv

-

Request:

-
<call ...>
-    <playerdata method="usergamedata_condrecv">
-        <info>
-            <version __type="s32" />
-        </info>
-        <data>
-            <dataid __type="str" />
-            <gamekind __type="str" />
-            <vkey __type="str" />
-            <conditionkey __type="str" />
-            <columns_bit __type="u64" />
-            <conditions_num __type="u32" />
-            <where __type="str" />
-            <order_num __type="u32" />
-            <order __type="str" />
-            <recv_num __type="u32" />
-        </info>
-    </playerdata>
-</call>
-

Response:

-
<response>
-    <playerdata status="status">
-        <player>
-            <result __type="s32" />
-            <record_num __type="s32" />
-            <record>
-                <d[]>
-                    <bin1 __type="str" />
-                </d[]>
-            <record/>
-        </player>
-    </playerdata>
-</response>
- -

playerdata.usergamedata_scorerank

-

Request:

-
<call ...>
-    <playerdata method="usergamedata_scorerank">
-        <info>
-            <version __type="s32" />
-        </info>
-        <data>
-            <dataid __type="str" />
-            <gamekind __type="str" />
-            <ckey __type="str" />
-            <conditionkey __type="str" />
-            <score __type="str" />
-        </data>
-    </playerdata>
-</call>
-

Response:

-
<response>
-    <playerdata status="status">
-        <rank>
-            <result __type="s32" />
-            <rank __type="s32" />
-            <updatetime __type="u64" />
-        </rank>
-    </playerdata>
-</response>
- - -

matching

-

matching.request

-

Request:

-
<call ...>
-    <matching method="request">
-        <info>
-            <version __type="s32" />
-        </info>
-        <data>
-            <matchtyp __type="s32" />
-            <matchgrp __type="s32" />
-            <matchflg __type="s32" />
-            <waituser __type="s32" />
-            <waittime __type="s32" />
-            <joinip __type="str" />
-            <localip __type="str" />
-            <localport __type="s32" />
-            <dataid __type="str" />
-            <gamekind __type="str" />
-            <locationid __type="str" />
-            <lineid __type="str" />
-            <locationcountry __type="str" />
-            <locationregion __type="str" />
-        </data>
-    </matching>
-</call>
-

Response:

-
<response>
-    <matching status="status">
-        <hostid __type="s64" />
-        <result __type="s32" />
-        <hostip_g __type="str" />
-        <hostip_l __type="str" />
-        <hostport_l __type="s32" />
-        <hostport_g __type="s32" />
-    </matching>
-</response>
- -

matching.wait

-

Request:

-
<call ...>
-    <matching method="wait">
-        <info>
-            <version __type="s32" />
-        </info>
-        <data>
-            <hostid __type="s64" />
-            <locationid __type="str" />
-            <lineid __type="str" />
-        </data>
-    </matching>
-</call>
-

Response:

-
<response>
-    <matching status="status">
-        <result __type="s32" />
-        <prwtime __type="s32" />
-    </matching>
-</response>
- -

matching.finish

-

Request:

-
<call ...>
-    <matching method="finish">
-        <info>
-            <version __type="s32" />
-        </info>
-        <data>
-            <hostid __type="s64" />
-            <locationid __type="str" />
-            <lineid __type="str" />
-        </data>
-    </matching>
-</call>
-

Response:

-
<response>
-    <matching status="status">
-        <result __type="s32" />
-    </matching>
-</response>
- - -

system

-

system.getmaster

-

Request:

-
<call ...>
-    <system method="getmaster">
-        <data>
-            <gamekind __type="str" />
-            <datatype __type="str" />
-            <datakey __type="str" />
-        </data>
-    </system>
-</call>
-

Response:

-
<response>
-    <system status="status">
-        <result __type="s32" />
-        <strdata1 __type="str" />
-        <strdata2 __type="str" />
-        <updatedate __type="u64" />
-    </system>
-</response>
- -

system.getlocationiplist

-

Request:

-
<call ...>
-    <system method="getlocationiplist">
-        <data>
-            <locationid __type="str" />
-            <lineid __type="str" />
-        </data>
-    </system>
-</call>
-

Response:

-
<response>
-    <system status="status">
-        <result __type="s32" />
-        <iplist>
-            <record_num __type="s32" />
-            <record[]>
-                <localconn __type="str" />
-            </record[]>
-        </iplist>
-    </system>
-</response>
- -

system.xrpcproxy

-

Request:

-
<call ...>
-    <system method="xrpcproxy">
-        <info>
-            <version __type="s32" />
-        </info>
-        <data>
-            <hostid __type="s64" />
-            <locationid __type="str" />
-            <lineid __type="str" />
-        </data>
-    </system>
-</call>
-

Response:

-
<response>
-    <system status="status">
-        <result __type="s32" />
-        <pwrtime __type="s32" />
-        <matchlist>
-            <record_num __type="u32" />
-            <record[]>
-                <pcbid __type="str" />
-                <statusflg __type="str" />
-                <matchgrp __type="s32" />
-                <hostid __type="s64" />
-                <jointime __type="u64" />
-                <connip_g __type="str" />
-                <connport_g __type="s32" />
-                <connip_l __type="str" />
-                <connport_l __type="s32" />
-            </record[]>
-        </matchlist>
-    </system>
-</response>
- -

system.convcardnumber

-

Request:

-
<call ...>
-    <system method="convcardnumber">
-        <info>
-            <version __type="s32" />
-        </info>
-        <data>
-            <card_id __type="str" />
-            <card_type __type="s32" />
-        </data>
-    </system>
-</call>
-

Response:

-
<response>
-    <system status="status">
-        <result __type="s32" />
-        <data>
-            <card_number __type="str" />
-        </data>
-    </system>
-</response>
- - -

esoc

-

esoc.read

-

Request:

-
<call ...>
-    <esoc method="read">
-        <senddata />
-    </esoc>
-</call>
-

Response:

-
<response>
-    <esoc status="status">
-        <recvdata />
-    </esoc>
-</response>
-

Go figure.

- -

esoc.write

-

Request:

-
<call ...>
-    <esoc method="write">
-        <senddata />
-    </esoc>
-</call>
-

Response:

-
<response>
-    <esoc status="status" />
-</response>
- - -

cardmng

-

cardmng.inquire

-

Request:

-
<call ...>
-    <cardmng method="inquire" cardid="" cardtype="" update="" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status" refid="" dataid="" pcode=""  newflag="" binded="" expired=" ecflag="" useridflag="" extidflag="" lastupdate="" />
-</response>
-

If the cardid cannot be found, status should be set to 112 with no other - information return. Otherwise, we return information about the found card.

- - - - - - - - - - - - - - - - - - - - - -
refidA reference to this card to be used in other requests
dataidAppears to be set the same as refid; presumably to allow different keys for game state vs - login details.
newflag1 or 0
bindedHas a profile ever been created for this game (or an older version, requiring a migration) - (1 or 0)
expiredDid we find
- -

cardmng.getrefid

-

Request:

-
<call ...>
-    <cardmng method="getrefid" cardtype="" cardid=" newflag="" passwd="" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status" refid="" dataid="" pcode="" />
-</response>
- -

cardmng.bindmodel

-

Request:

-
<call ...>
-    <cardmng method="bindmodel" refid="" newflag="" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status" dataid="" />
-</response>
- -

cardmng.bindcard

-

Request:

-
<call ...>
-    <cardmng method="bindcard" cardtype="" newid="" refid="" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status" />
-</response>
- -

cardmng.authpass

-

Request:

-
<call ...>
-    <cardmng method="authpass" refid="" pass="" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status" />
-</response>
- -

cardmng.getkeepspan

-

Request:

-
<call ...>
-    <cardmng method="getkeepspan" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status" keepspan="" />
-</response>
- -

cardmng.getkeepremain

-

Request:

-
<call ...>
-    <cardmng method="getkeepremain" refid="" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status" keepremain="" />
-</response>
- -

cardmng.getdatalist

-

Request:

-
<call ...>
-    <cardmng method="getdatalist" refid="" model*="" />
-</call>
-

Response:

-
<response>
-    <cardmng status="status">
-        <item[]>
-            <mcode __type="str" />
-            <dataid __type="str" />
-            <regtime __type="str" />
-            <lasttime __type="str" />
-            <exptime __type="str" />
-            <expflag __type="u8" />
-        </item[]>
-    </cardmng>
-</response>
- - -

esign

-

esign.request

-

Request:

-
<call ...>
-    <esign method="request">
-        placeholder
-    </esign>
-</call>
-

Response:

-
<response>
-    <esign status="status">
-        placeholder
-    </esign>
-</response>
- - -

package

- -

package.list

-

Request:

-
<call ...>
-    <package method="list" pkgtype="pkgtype" model*="" />
-</call>
-

all is the only currently observed value for pkgtype

-

Response:

-
<response>
-    <package status="status">
-        <item[] url="" />
-    </package>
-</response>
-

A list of all packages available for download.

- -

package.intend

-

Request:

-
<call ...>
-    <package method="intend" url="" model*="" />
-</call>
-

Response:

-
<response>
-    <package status="status" />
-</response>
- - -

userdata

-

userdata.read

-

Request:

-
<call ...>
-    <userdata method="read" card*="" model*="" label="" />
-</call>
-

Response:

-
<response>
-    <userdata status="status" time="">
-        <b[] __type="" />
-    </userdata>
-</response>
-

__type here can be either bin or str

- -

userdata.write

-

Request:

-
<call ...>
-    <userdata method="write" card="" time="" model*="" label*="" >
-        <b[] __type="str" />
-    </userdata>
-</call>
-

Response:

-
<response>
-    <userdata status="status" />
-</response>
- - -

services

-

services.get

-

Request:

-
<call ...>
-    <services method="get" model*="" >
-        <info>
-            <AVS2 __type="str">AVS2 version</AVS2>
-        </info>
-    </services>
-</call>
-

Response:

-
<response>
-    <services expire="" method="get" mode="" status="status">
-        <item[] name="service" url="url" />
-    </services>
-</response>
-

Known services are:

- -

Most of these will usually just return the URL to the eAmuse server (or your fake one ;D). ntp is a - notable exception, unless you're planning on reimplementing NTP. keepalive will likely alsop be a - custom URL with query parameters pre-baked.

-

mode is one of operation, debug, test, or - factory. -

- - -

pcbtracker

-

pcbtracker.alive

-

Request:

-
<call ...>
-    <pcbtracker method="alive" model*="" hardid="" softid="" accountid="" agree="" ecflag="" />
-</call>
-

ecflag here is determining if the arcade operator allows the use of paseli on this machine.

-

agree@ and ecflag@ appear to either be totally non present, or present with a value of - "1", but then again I may be reading the code wrong, so take that with a pinch of salt. -

-

Response:

-
<response>
-    <pcbtracker status="" time="" limit="" ecenable="" eclimit="" >
-</response>
-

As you might guess, ecenable@ is therefore the flag to determine if paseli is enabled (i.e. the - arcade operator and the server both allow its use).

- - -

pcbevent

-

pcbevent.put

-

Request:

-
<call ...>
-    <pcbevent method="put">
-        <time __type="time" />
-        <seq __type="u32" />
-        <item[]>
-            <name __type="str" />
-            <value __type="s32" />
-            <time __type="time" />
-        </item[]>
-    </pcbevent>
-</call>
-

Response:

-
<response>
-    <pcbevent status="status" />
-</response>
- - -

message

-

message.get

-

Request:

-
<call ...>
-    <message method="get" model*="" />
-</call>
-

Response:

-
<response>
-    <message expire="" status="status">
-        <item[] name="" start="" end="" data="" />
-    </message>
-</response>
- - -

facility

-

facility.get

-

Request:

-
<call ...>
-    <facility method="get" privateip*="" encoding*="" />
-</call>
-

Response:

-
<response>
-    <facility expire=""\ status="status">
-        <calendar*>
-            <year __type="s16" />
-            <holiday __type="s16" />
-        </calendar>
-        <location>
-            <id __type="str" />
-            <country __type="str" />
-            <region __type="str" />
-            <name __type="str" />
-            <type __type="u8" />
-            <countryname __type="str" />
-            <countryjname __type="str" />
-            <regionname __type="str" />
-            <regionjname __type="str" />
-            <customercode __type="str" />
-            <companycode __type="str" />
-            <latitude __type="s32" />
-            <longitude __type="s32" />
-            <accuracy __type="u8" />
-        </location>
-        <line>
-            <id __type="str" />
-            <class __type="u8" />
-        </line>
-        <portfw>
-            <globalip __type="ip4" />
-            <globalport __type="s16" />
-            <privateport __type="s16" />
-        </portfw>
-        <public>
-            <flag __type="u8" />1</ flag>
-            <name __type="str" />
-            <latitude __type="str">0<latitude>
-            <longitude __type="str">0<longitude>
-        </public>
-        <share>
-            <eapass*>
-                <valid __type="?" />
-            </eapass>
-            <eacoin>
-                <notchamount __type="s32" />
-                <notchcount __type="s32" />
-                <supplylimit __type="s32">100000<supplylimit>
-            </eacoin>
-            <url>
-                <eapass __type="str">www.ea-pass.konami.net<eapass>
-                <arcadefan __type="str">www.konami.jp/am<arcadefan>
-                <konaminetdx __type="str">http://am.573.jp<konaminetdx>
-                <konamiid __type="str">http://id.konami.jp<konamiid>
-                <eagate __type="str">http://eagate.573.jp<eagate>
-            </url>
-        </share>
-    </facility>
-</response>
-

I'm not totally sure what type share/eapass/valid is meant to be, but it's optional, so I'd - suggest just not bothering and leaving it out :).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CountryCode
Hong KongHK
TaiwanTW
KoreaKR
USAUS
ThailandTH
IndonesiaID
SingaporeSG
PhillipinesPH
MacaoMO
JapanJP
-

globalip (and associated ports) shold be the IP:port of the cabinet.

-

region is used for Japan, and has the value JP-[prefecture] where prefecture ranges - from 1 through 47.

-

TODO: Compile the list of regions

- -

apsmanager

-

apsmanager.getstat

-

Request:

-
<call ...>
-    <apsmanager method="getstat" model*="" />
-</call>
-

Response:

-
<response>
-    <apsmanager status="status" />
-</response>
- - -

sidmgr

-

sidmgr.create

-

Request:

-
<call ...>
-    <sidmgr method="create">
-        <cardtype __type="str" />
-        <cardid __type="str" />
-        <cardgid __type="str" />
-        <steal __type="u8" />
-    </sidmgr>
-</call>
-

Response:

-
<response>
-    <sidmgr status="status">
-        <state __type="u32" />
-        <e_count __type="u8" />
-        <last __type="time" />
-        <locked __type="time" />
-        <sid __type="str" />
-        <cardid_status __type="u8" />
-        <refid __type="str" />
-    </sidmgr>
-</response>
- -

sidmgr.open

-

Request:

-
<call ...>
-    <sidmgr method="open" sid="" >
-        <pass __type="str" />
-    </sidmgr>
-</call>
-

Response:

-
<response>
-    <sidmgr status="status">
-        <state __type="u32" />
-        <refid __type="str" />
-        <locked __type="time" />
-    </sidmgr>
-</response>
- -

sidmgr.touch

-

Request:

-
<call ...>
-    <sidmgr method="touch" sid="" />
-</call>
-

Response:

-
<response>
-    <sidmgr status="status" />
-</response>
- -

sidmgr.branch

-

Request:

-
<call ...>
-    <sidmgr method="branch" sid="" />
-</call>
-

Response:

-
<response>
-    <sidmgr status="status" />
-</response>
- -

sidmgr.close

-

Request:

-
<call ...>
-    <sidmgr method="close" sid="" />
-        <cause __type="u32" />
-    </sidmgr>
-</call>
-

Response:

-
<response>
-    <sidmgr status="status" />
-</response>
- - -

dlstatus

-

dlstatus.done

-

Request:

-
<call ...>
-    <dlstatus method="done">
-        <url>
-            <param __type="str" />
-        </url>
-        <name __type="str" />
-        <size __type="s32" />
-    </dlstatus>
-</call>
- -

Response:

-
<response>
-    <dlstatus status="status">
-        <progress __type="s32" />
-    </dlstatus>
-</response>
- -

dlstatus.progress

-

Request:

-
<call ...>
-    <dlstatus method="progress" />
-        <progress __type="s32" />
-    </dlstatus>
-</call>
-

Response:

-
<response>
-    <dlstatus status="status">
-        placeholder
-    </dlstatus>
-</response>
- - -

eacoin

-

eacoin.checkin

-

Request:

-
<call ...>
-    <eacoin method="checkin">
-        <cardtype __type="str" />
-        <cardid __type="str" />
-        <passwd __type="str" />
-        <ectype __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status">
-        <sequence __type="s16" />
-        <acstatus __type="u8" />
-        <acid __type="str" />
-        <acname __type="str" />
-        <balance __type="s32" />
-        <sessid __type="str" />
-    </eacoin>
-</response>
- -

eacoin.checkout

-

Request:

-
<call ...>
-    <eacoin method="checkout">
-        <sessid __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status" />
-</response>
- -

eacoin.consume

-

Request:

-
<call ...>
-    <eacoin method="consume" esid="">
-        <sessid __type="str" />
-        <sequence __type="s16" />
-        <payment __type="s32" />
-        <service __type="s16" />
-        <itemtype __type="str" />
-        <detail __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status">
-        <acstatus __type="u8" />
-        <autocharge __type="u8" />
-        <balance __type="s32" />
-    </eacoin>
-</response>
- -

eacoin.getbalance

-

Request:

-
<call ...>
-    <eacoin method="getbalance">
-      <sessid __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status">
-        <acstatus __type="u8" />
-        <balance __type="s32" />
-    </eacoin>
-</response>
- -

eacoin.getecstatus

-

Request:

-
<call ...>
-    <eacoin method="getecstatus" />
-</call>
-

Response:

-
<response>
-    <eacoin status="status">
-        <ectype __type="str" />
-        <ecstatus __type="u8" />
-    </eacoin>
-</response>
- -

eacoin.touch

-

Request:

-
<call ...>
-    <eacoin method="touch">
-        <sessid __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status" />
-</response>
- -

eacoin.opchpass

-

Request:

-
<call ...>
-    <eacoin method="opchpass">
-        <passwd __type="str" />
-        <newpasswd __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status" />
-</response>
- -

eacoin.opcheckin

-

Request:

-
<call ...>
-    <eacoin method="opcheckin">
-        <passwd __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status">
-        <sessid __type="str" />
-    </eacoin>
-</response>
- -

eacoin.opcheckout

-

Request:

-
<call ...>
-    <eacoin method="opcheckout">
-        <sessid __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status" />
-</response>
- -

eacoin.getlog

-

Request:

-
<call ...>
-    <eacoin method="getlog">
-        <sessid __type="str" />
-        <logtype __type="str" />
-        <ectype __type="str" />
-        <target __type="str" />
-        <perpage __type="s16" />
-        <page __type="s16" />
-        <sesstype __type="str" />
-    </eacoin>
-</call>
-

Response:

-
<response>
-    <eacoin status="status">
-        <processing __type="u8" />
-        <topic>
-            <sumdate __type="str" />
-            <sumfrom __type="str" />
-            <sumto __type="str" />
-
-            <today __type="s32" />
-            <average __type="s32" />
-            <total __type="s32" />
-        </topic>
-        <summary>
-            <items __type="s32" />
-        </summary>
-        <history>
-            <item[]>
-                <date __type="str" />
-                <consume __type="s32" />
-                <service __type="s32" />
-                <cardtype __type="str" />
-                <cardno __type="str" />
-                <title __type="str" />
-                <systemid __type="str" />
-            </item[]>
-        </history>
-    </eacoin>
-</response>
- - -

traceroute

-

traceroute.send

-

Request:

-
<call ...>
-    <traceroute proto="" method="send">
-        <hop[]>
-            <valid __type="bool">
-            <addr __type="ip4">
-            <usec __type="u64">
-        </hop[]>
-    </traceroute>
-</call>
-

hop repeats for every hop (unsurprisingly)

-

Response:

-
<response>
-    <traceroute status="status">
-        placeholder
-    </traceroute>
-</response>
- - -

game

-

game.sv4_sample

-

Request:

-
<call ...>
-    <game method="sv4_sample">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_new

-

Request:

-
<call ...>
-    <game method="sv4_new">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_load

-

Request:

-
<call ...>
-    <game method="sv4_load">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_load_m

-

Request:

-
<call ...>
-    <game method="sv4_load_m">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_save

-

Request:

-
<call ...>
-    <game method="sv4_save">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_save_m

-

Request:

-
<call ...>
-    <game method="sv4_save_m">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_common

-

Request:

-
<call ...>
-    <game method="sv4_common">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_shop

-

Request:

-
<call ...>
-    <game method="sv4_shop">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_hiscore

-

Request:

-
<call ...>
-    <game method="sv4_hiscore">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_buy

-

Request:

-
<call ...>
-    <game method="sv4_buy">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_exception

-

Request:

-
<call ...>
-    <game method="sv4_exception">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_entry_s

-

Request:

-
<call ...>
-    <game method="sv4_entry_s">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_entry_e

-

Request:

-
<call ...>
-    <game method="sv4_entry_e">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_frozen

-

Request:

-
<call ...>
-    <game method="sv4_frozen">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_lounce

-

Request:

-
<call ...>
-    <game method="sv4_lounce">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_save_e

-

Request:

-
<call ...>
-    <game method="sv4_save_e">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_save_pb

-

Request:

-
<call ...>
-    <game method="sv4_save_pb">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_save_c

-

Request:

-
<call ...>
-    <game method="sv4_save_c">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_play_s

-

Request:

-
<call ...>
-    <game method="sv4_play_s">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_play_e

-

Request:

-
<call ...>
-    <game method="sv4_play_e">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_serial

-

Request:

-
<call ...>
-    <game method="sv4_serial">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_save_fi

-

Request:

-
<call ...>
-    <game method="sv4_save_fi">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_print

-

Request:

-
<call ...>
-    <game method="sv4_print">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_print_h

-

Request:

-
<call ...>
-    <game method="sv4_print_h">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_load_r

-

Request:

-
<call ...>
-    <game method="sv4_load_r">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- -

game.sv4_save_campaign

-

Request:

-
<call ...>
-    <game method="sv4_save_campaign">
-        placeholder
-    </game>
-</call>
-

Response:

-
<response>
-    <game status="status">
-        placeholder
-    </game>
-</response>
- - +

I'll try and figure these out in due course, promise!

\ No newline at end of file diff --git a/styles.css b/styles.css index 13908aa..357e06b 100644 --- a/styles.css +++ b/styles.css @@ -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; }