diff --git a/__base.html b/__base.html new file mode 100644 index 0000000..ce20100 --- /dev/null +++ b/__base.html @@ -0,0 +1,24 @@ + + + +
+ + + +Contents | +Transport layer | +Packet format | +Application Protocol | +
Contents | +Transport layer | +Packet format | +Application Protocol | +
apsmanager
apsmanager.getstat
<call ...>
+ <apsmanager method="getstat" model*="" />
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application 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.
cardtype |
+ Meaning | +
1 |
+ Old style magnetic stripe card | +
2 |
+ FeliCa RFID card | +
cardmng.inquire
cardmng.getrefid
cardmng.bindmodel
cardmng.bindcard
cardmng.authpass
cardmng.getkeepspan
cardmng.getkeepremain
cardmng.getdatalist
cardmng.inquire
Request information about a card that has been inserted or touched against a reader.
+ +<call ...>
+ <cardmng method="inquire" cardid="" cardtype="" update="" model*="" />
+</call>
+ update |
+ Should the tracked last play time be updated by this inquiry? (Just a guess) | +
<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.
refid |
+ A reference to this card to be used in other requests | +
dataid |
+ Appears to be set the same as refid ; presumably to allow different keys for game state vs
+ login details. |
+
newflag |
+ Inverse of binded |
+
binded |
+ Has 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.
+<call ...>
+ <cardmng method="getrefid" cardtype="" cardid=" newflag="" passwd="" model*="" />
+</call>
+ newflag |
+ ? | +
passwd |
+ The 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>
+ <cardmng status="status" refid="" dataid="" pcode="" />
+</response>
+ refid |
+ A reference to this card to be used in other requests | +
dataid |
+ Appears 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
<call ...>
+ <cardmng method="bindmodel" refid="" newflag="" model*="" />
+</call>
+ <response>
+ <cardmng status="status" dataid="" />
+</response>
+
+ cardmng.bindcard
<call ...>
+ <cardmng method="bindcard" cardtype="" newid="" refid="" model*="" />
+</call>
+ <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.
+
<call ...>
+ <cardmng method="authpass" refid="" pass="" model*="" />
+</call>
+ refid |
+ The reference we received either during cardmng.inquire or cardmng.getrefid
+ (the latter for new cards) |
+
pass |
+ The pin to test. See cardmng.getrefid . |
+
<response>
+ <cardmng status="status" />
+</response>
+ If the pin is valid, status should be 0
. Otherwise, 116
.
cardmng.getkeepspan
<call ...>
+ <cardmng method="getkeepspan" model*="" />
+</call>
+ <response>
+ <cardmng status="status" keepspan="" />
+</response>
+
+ cardmng.getkeepremain
<call ...>
+ <cardmng method="getkeepremain" refid="" model*="" />
+</call>
+ <response>
+ <cardmng status="status" keepremain="" />
+</response>
+
+ cardmng.getdatalist
<call ...>
+ <cardmng method="getdatalist" refid="" model*="" />
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
dlstatus
dlstatus.done
<call ...>
+ <dlstatus method="done">
+ <url>
+ <param __type="str" />
+ </url>
+ <name __type="str" />
+ <size __type="s32" />
+ </dlstatus>
+</call>
+
+ <response>
+ <dlstatus status="status">
+ <progress __type="s32" />
+ </dlstatus>
+</response>
+
+ dlstatus.progress
<call ...>
+ <dlstatus method="progress" />
+ <progress __type="s32" />
+ </dlstatus>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
eacoin
eacoin.checkin
<call ...>
+ <eacoin method="checkin">
+ <cardtype __type="str" />
+ <cardid __type="str" />
+ <passwd __type="str" />
+ <ectype __type="str" />
+ </eacoin>
+</call>
+ <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
<call ...>
+ <eacoin method="checkout">
+ <sessid __type="str" />
+ </eacoin>
+</call>
+ <response>
+ <eacoin status="status" />
+</response>
+
+ eacoin.consume
<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>
+ <eacoin status="status">
+ <acstatus __type="u8" />
+ <autocharge __type="u8" />
+ <balance __type="s32" />
+ </eacoin>
+</response>
+
+ eacoin.getbalance
<call ...>
+ <eacoin method="getbalance">
+ <sessid __type="str" />
+ </eacoin>
+</call>
+ <response>
+ <eacoin status="status">
+ <acstatus __type="u8" />
+ <balance __type="s32" />
+ </eacoin>
+</response>
+
+ eacoin.getecstatus
<call ...>
+ <eacoin method="getecstatus" />
+</call>
+ <response>
+ <eacoin status="status">
+ <ectype __type="str" />
+ <ecstatus __type="u8" />
+ </eacoin>
+</response>
+
+ eacoin.touch
<call ...>
+ <eacoin method="touch">
+ <sessid __type="str" />
+ </eacoin>
+</call>
+ <response>
+ <eacoin status="status" />
+</response>
+
+ eacoin.opchpass
<call ...>
+ <eacoin method="opchpass">
+ <passwd __type="str" />
+ <newpasswd __type="str" />
+ </eacoin>
+</call>
+ <response>
+ <eacoin status="status" />
+</response>
+
+ eacoin.opcheckin
<call ...>
+ <eacoin method="opcheckin">
+ <passwd __type="str" />
+ </eacoin>
+</call>
+ <response>
+ <eacoin status="status">
+ <sessid __type="str" />
+ </eacoin>
+</response>
+
+ eacoin.opcheckout
<call ...>
+ <eacoin method="opcheckout">
+ <sessid __type="str" />
+ </eacoin>
+</call>
+ <response>
+ <eacoin status="status" />
+</response>
+
+ eacoin.getlog
<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>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
esign
esign.request
<call ...>
+ <esign method="request">
+ placeholder
+ </esign>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
esoc
esoc.read
<call ...>
+ <esoc method="read">
+ <senddata />
+ </esoc>
+</call>
+ <response>
+ <esoc status="status">
+ <recvdata />
+ </esoc>
+</response>
+ Go figure.
+ +esoc.write
<call ...>
+ <esoc method="write">
+ <senddata />
+ </esoc>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
eventlog
eventlog.write
<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:
+G_GAMED
S_ERROR
S_PWRON
TODO: find more!T_OTDEMO
<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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
facility
facility.get
<call ...>
+ <facility method="get" privateip*="" encoding*="" />
+</call>
+ <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 :).
Country | +Code | +
Hong Kong | +HK |
+
Taiwan | +TW |
+
Korea | +KR |
+
USA | +US |
+
Thailand | +TH |
+
Indonesia | +ID |
+
Singapore | +SG |
+
Phillipines | +PH |
+
Macao | +MO |
+
Japan | +JP |
+
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 @@ + + + + + + + +Contents | +Transport layer | +Packet format | +Application Protocol | +
game
game.sv4_sample
<call ...>
+ <game method="sv4_sample">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_new
<call ...>
+ <game method="sv4_new">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_load
<call ...>
+ <game method="sv4_load">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_load_m
<call ...>
+ <game method="sv4_load_m">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_save
<call ...>
+ <game method="sv4_save">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_save_m
<call ...>
+ <game method="sv4_save_m">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_common
<call ...>
+ <game method="sv4_common">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_shop
<call ...>
+ <game method="sv4_shop">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_hiscore
<call ...>
+ <game method="sv4_hiscore">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_buy
<call ...>
+ <game method="sv4_buy">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_exception
<call ...>
+ <game method="sv4_exception">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_entry_s
<call ...>
+ <game method="sv4_entry_s">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_entry_e
<call ...>
+ <game method="sv4_entry_e">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_frozen
<call ...>
+ <game method="sv4_frozen">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_lounce
<call ...>
+ <game method="sv4_lounce">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_save_e
<call ...>
+ <game method="sv4_save_e">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_save_pb
<call ...>
+ <game method="sv4_save_pb">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_save_c
<call ...>
+ <game method="sv4_save_c">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_play_s
<call ...>
+ <game method="sv4_play_s">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_play_e
<call ...>
+ <game method="sv4_play_e">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_serial
<call ...>
+ <game method="sv4_serial">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_save_fi
<call ...>
+ <game method="sv4_save_fi">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_print
<call ...>
+ <game method="sv4_print">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_print_h
<call ...>
+ <game method="sv4_print_h">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_load_r
<call ...>
+ <game method="sv4_load_r">
+ placeholder
+ </game>
+</call>
+ <response>
+ <game status="status">
+ placeholder
+ </game>
+</response>
+
+ game.sv4_save_campaign
<call ...>
+ <game method="sv4_save_campaign">
+ placeholder
+ </game>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
matching
matching.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>
+ <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
<call ...>
+ <matching method="wait">
+ <info>
+ <version __type="s32" />
+ </info>
+ <data>
+ <hostid __type="s64" />
+ <locationid __type="str" />
+ <lineid __type="str" />
+ </data>
+ </matching>
+</call>
+ <response>
+ <matching status="status">
+ <result __type="s32" />
+ <prwtime __type="s32" />
+ </matching>
+</response>
+
+ matching.finish
<call ...>
+ <matching method="finish">
+ <info>
+ <version __type="s32" />
+ </info>
+ <data>
+ <hostid __type="s64" />
+ <locationid __type="str" />
+ <lineid __type="str" />
+ </data>
+ </matching>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
message
message.get
<call ...>
+ <message method="get" model*="" />
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
package
package.list
<call ...>
+ <package method="list" pkgtype="pkgtype" model*="" />
+</call>
+ all
is the only currently observed value for pkgtype
<response>
+ <package status="status">
+ <item[] url="" />
+ </package>
+</response>
+ A list of all packages available for download.
+ +package.intend
<call ...>
+ <package method="intend" url="" model*="" />
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
pcbevent
pcbevent.put
<call ...>
+ <pcbevent method="put">
+ <time __type="time" />
+ <seq __type="u32" />
+ <item[]>
+ <name __type="str" />
+ <value __type="s32" />
+ <time __type="time" />
+ </item[]>
+ </pcbevent>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
pcbtracker
pcbtracker.alive
<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>
+ <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).
Contents | +Transport layer | +Packet format | +Application Protocol | +
playerdata
playerdata.usergamedata_send
<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>
+ <playerdata status="status">
+ <result __type="s32" />
+ </playerdata>
+</response>
+
+ playerdata.usergamedata_recv
<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>
+ <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
<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>
+ <playerdata status="status">
+ <player>
+ <result __type="s32" />
+ <record_num __type="s32" />
+ <record>
+ <d[]>
+ <bin1 __type="str" />
+ </d[]>
+ <record/>
+ </player>
+ </playerdata>
+</response>
+
+ playerdata.usergamedata_scorerank
<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>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
services
services.get
<call ...>
+ <services method="get" model*="" >
+ <info>
+ <AVS2 __type="str">AVS2 version</AVS2>
+ </info>
+ </services>
+</call>
+ <response>
+ <services expire="" method="get" mode="" status="status">
+ <item[] name="service" url="url" />
+ </services>
+</response>
+ Known services are:
+ntp
keepalive
cardmng
facility
message
numbering
package
pcbevent
pcbtracker
pkglist
posevent
userdata
userid
eacoin
local
local2
lobby
lobby2
dlstatus
netlog
sidmgr
globby
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
.
+
Contents | +Transport layer | +Packet format | +Application Protocol | +
sidmgr
sidmgr.create
<call ...>
+ <sidmgr method="create">
+ <cardtype __type="str" />
+ <cardid __type="str" />
+ <cardgid __type="str" />
+ <steal __type="u8" />
+ </sidmgr>
+</call>
+ <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
<call ...>
+ <sidmgr method="open" sid="" >
+ <pass __type="str" />
+ </sidmgr>
+</call>
+ <response>
+ <sidmgr status="status">
+ <state __type="u32" />
+ <refid __type="str" />
+ <locked __type="time" />
+ </sidmgr>
+</response>
+
+ sidmgr.touch
<call ...>
+ <sidmgr method="touch" sid="" />
+</call>
+ <response>
+ <sidmgr status="status" />
+</response>
+
+ sidmgr.branch
<call ...>
+ <sidmgr method="branch" sid="" />
+</call>
+ <response>
+ <sidmgr status="status" />
+</response>
+
+ sidmgr.close
<call ...>
+ <sidmgr method="close" sid="" />
+ <cause __type="u32" />
+ </sidmgr>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
system
system.getmaster
<call ...>
+ <system method="getmaster">
+ <data>
+ <gamekind __type="str" />
+ <datatype __type="str" />
+ <datakey __type="str" />
+ </data>
+ </system>
+</call>
+ <response>
+ <system status="status">
+ <result __type="s32" />
+ <strdata1 __type="str" />
+ <strdata2 __type="str" />
+ <updatedate __type="u64" />
+ </system>
+</response>
+
+ system.getlocationiplist
<call ...>
+ <system method="getlocationiplist">
+ <data>
+ <locationid __type="str" />
+ <lineid __type="str" />
+ </data>
+ </system>
+</call>
+ <response>
+ <system status="status">
+ <result __type="s32" />
+ <iplist>
+ <record_num __type="s32" />
+ <record[]>
+ <localconn __type="str" />
+ </record[]>
+ </iplist>
+ </system>
+</response>
+
+ system.xrpcproxy
<call ...>
+ <system method="xrpcproxy">
+ <info>
+ <version __type="s32" />
+ </info>
+ <data>
+ <hostid __type="s64" />
+ <locationid __type="str" />
+ <lineid __type="str" />
+ </data>
+ </system>
+</call>
+ <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
<call ...>
+ <system method="convcardnumber">
+ <info>
+ <version __type="s32" />
+ </info>
+ <data>
+ <card_id __type="str" />
+ <card_type __type="s32" />
+ </data>
+ </system>
+</call>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
traceroute
traceroute.send
<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>
+ <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 @@
+
+
+
+
+
+
+
+ Contents | +Transport layer | +Packet format | +Application Protocol | +
userdata
userdata.read
<call ...>
+ <userdata method="read" card*="" model*="" label="" />
+</call>
+ <response>
+ <userdata status="status" time="">
+ <b[] __type="" />
+ </userdata>
+</response>
+ __type
here can be either bin
or str
userdata.write
<call ...>
+ <userdata method="write" card="" time="" model*="" label*="" >
+ <b[] __type="str" />
+ </userdata>
+</call>
+ <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 @@
eventlog.%s
eventlog.%s
playerdata.%s
playerdata.%s
playerdata.usergamedata_send
playerdata.usergamedata_recv
playerdata.usergamedata_inheritance
playerdata.usergamedata_condrecv
playerdata.usergamedata_scorerank
playerdata.usergamedata_send
playerdata.usergamedata_recv
playerdata.usergamedata_inheritance
+ playerdata.usergamedata_condrecv
+ playerdata.usergamedata_scorerank
+ matching.%s
matching.%s
matching.request
matching.wait
matching.finish
matching.request
matching.wait
matching.finish
system.%s
system.%s
system.getmaster
system.getlocationiplist
system.xrpcproxy
system.convcardnumber
system.getmaster
system.getlocationiplist
system.xrpcproxy
system.convcardnumber
esoc.%s
esoc.%s
esoc.read
esoc.write
esoc.read
esoc.write
cardmng.%s
cardmng.%s
cardmng.inquire
cardmng.getrefid
cardmng.bindmodel
cardmng.bindcard
cardmng.authpass
cardmng.getkeepspan
cardmng.getkeepremain
cardmng.getdatalist
cardmng.inquire
cardmng.getrefid
cardmng.bindmodel
cardmng.bindcard
cardmng.authpass
cardmng.getkeepspan
cardmng.getkeepremain
cardmng.getdatalist
esign.%s
esign.%s
package.%s
package.%s
userdata.%s
userdata.%s
services.%s
services.%s
pcbtracker.%s
pcbtracker.%s
pcbevent.%s
pcbevent.%s
message.%s
message.%s
facility.%s
facility.%s
apsmanager.%s
apsmanager.%s
sidmgr.%s
sidmgr.%s
sidmgr.create
sidmgr.open
sidmgr.touch
sidmgr.branch
sidmgr.close
sidmgr.create
sidmgr.open
sidmgr.touch
sidmgr.branch
sidmgr.close
dlstatus.%s
dlstatus.%s
eacoin.%s
eacoin.%s
eacoin.checkin
eacoin.checkout
eacoin.consume
eacoin.getbalance
eacoin.getecstatus
eacoin.touch
eacoin.opchpass
eacoin.opcheckin
eacoin.opcheckout
eacoin.getlog
eacoin.checkin
eacoin.checkout
eacoin.consume
eacoin.getbalance
eacoin.getecstatus
eacoin.touch
eacoin.opchpass
eacoin.opcheckin
eacoin.opcheckout
eacoin.getlog
traceroute.%s
traceroute.%s
game.%s
game.%s
game.sv4_sample
game.sv4_new
game.sv4_load
game.sv4_load_m
game.sv4_save
game.sv4_save_m
game.sv4_common
game.sv4_shop
game.sv4_hiscore
game.sv4_buy
game.sv4_exception
game.sv4_entry_s
game.sv4_entry_e
game.sv4_frozen
game.sv4_lounce
game.sv4_save_e
game.sv4_save_pb
game.sv4_save_c
game.sv4_play_s
game.sv4_play_e
game.sv4_serial
game.sv4_save_fi
game.sv4_print
game.sv4_print_h
game.sv4_load_r
game.sv4_save_campaign
game.sv4_sample
game.sv4_new
game.sv4_load
game.sv4_load_m
game.sv4_save
game.sv4_save_m
game.sv4_common
game.sv4_shop
game.sv4_hiscore
game.sv4_buy
game.sv4_exception
game.sv4_entry_s
game.sv4_entry_e
game.sv4_frozen
game.sv4_lounce
game.sv4_save_e
game.sv4_save_pb
game.sv4_save_c
game.sv4_play_s
game.sv4_play_e
game.sv4_serial
game.sv4_save_fi
game.sv4_print
game.sv4_print_h
game.sv4_load_r
game.sv4_save_campaign
eventlog
eventlog.write
<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 onservices.get
):
G_GAMED
S_ERROR
S_PWRON
TODO: find more!T_OTDEMO
<response>
- <eventlog status="status">
- <gamesession __type="s64" />
- <logsendflg __type="s32" />
- <logerrlevel __type="s32" />
- <evtidnosendflg __type="s32" />
- </eventlog>
-</response>
-
-
- playerdata
playerdata.usergamedata_send
<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>
- <playerdata status="status">
- <result __type="s32" />
- </playerdata>
-</response>
-
- playerdata.usergamedata_recv
<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>
- <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
<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>
- <playerdata status="status">
- <player>
- <result __type="s32" />
- <record_num __type="s32" />
- <record>
- <d[]>
- <bin1 __type="str" />
- </d[]>
- <record/>
- </player>
- </playerdata>
-</response>
-
- playerdata.usergamedata_scorerank
<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>
- <playerdata status="status">
- <rank>
- <result __type="s32" />
- <rank __type="s32" />
- <updatetime __type="u64" />
- </rank>
- </playerdata>
-</response>
-
-
- matching
matching.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>
- <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
<call ...>
- <matching method="wait">
- <info>
- <version __type="s32" />
- </info>
- <data>
- <hostid __type="s64" />
- <locationid __type="str" />
- <lineid __type="str" />
- </data>
- </matching>
-</call>
- <response>
- <matching status="status">
- <result __type="s32" />
- <prwtime __type="s32" />
- </matching>
-</response>
-
- matching.finish
<call ...>
- <matching method="finish">
- <info>
- <version __type="s32" />
- </info>
- <data>
- <hostid __type="s64" />
- <locationid __type="str" />
- <lineid __type="str" />
- </data>
- </matching>
-</call>
- <response>
- <matching status="status">
- <result __type="s32" />
- </matching>
-</response>
-
-
- system
system.getmaster
<call ...>
- <system method="getmaster">
- <data>
- <gamekind __type="str" />
- <datatype __type="str" />
- <datakey __type="str" />
- </data>
- </system>
-</call>
- <response>
- <system status="status">
- <result __type="s32" />
- <strdata1 __type="str" />
- <strdata2 __type="str" />
- <updatedate __type="u64" />
- </system>
-</response>
-
- system.getlocationiplist
<call ...>
- <system method="getlocationiplist">
- <data>
- <locationid __type="str" />
- <lineid __type="str" />
- </data>
- </system>
-</call>
- <response>
- <system status="status">
- <result __type="s32" />
- <iplist>
- <record_num __type="s32" />
- <record[]>
- <localconn __type="str" />
- </record[]>
- </iplist>
- </system>
-</response>
-
- system.xrpcproxy
<call ...>
- <system method="xrpcproxy">
- <info>
- <version __type="s32" />
- </info>
- <data>
- <hostid __type="s64" />
- <locationid __type="str" />
- <lineid __type="str" />
- </data>
- </system>
-</call>
- <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
<call ...>
- <system method="convcardnumber">
- <info>
- <version __type="s32" />
- </info>
- <data>
- <card_id __type="str" />
- <card_type __type="s32" />
- </data>
- </system>
-</call>
- <response>
- <system status="status">
- <result __type="s32" />
- <data>
- <card_number __type="str" />
- </data>
- </system>
-</response>
-
-
- esoc
esoc.read
<call ...>
- <esoc method="read">
- <senddata />
- </esoc>
-</call>
- <response>
- <esoc status="status">
- <recvdata />
- </esoc>
-</response>
- Go figure.
- -esoc.write
<call ...>
- <esoc method="write">
- <senddata />
- </esoc>
-</call>
- <response>
- <esoc status="status" />
-</response>
-
-
- cardmng
cardmng.inquire
<call ...>
- <cardmng method="inquire" cardid="" cardtype="" update="" model*="" />
-</call>
- <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.
refid |
- A reference to this card to be used in other requests | -
dataid |
- Appears to be set the same as refid ; presumably to allow different keys for game state vs
- login details. |
-
newflag |
- 1 or 0 |
-
binded |
- Has a profile ever been created for this game (or an older version, requiring a migration)
- (1 or 0 ) |
-
expired |
- Did we find | -
cardmng.getrefid
<call ...>
- <cardmng method="getrefid" cardtype="" cardid=" newflag="" passwd="" model*="" />
-</call>
- <response>
- <cardmng status="status" refid="" dataid="" pcode="" />
-</response>
-
- cardmng.bindmodel
<call ...>
- <cardmng method="bindmodel" refid="" newflag="" model*="" />
-</call>
- <response>
- <cardmng status="status" dataid="" />
-</response>
-
- cardmng.bindcard
<call ...>
- <cardmng method="bindcard" cardtype="" newid="" refid="" model*="" />
-</call>
- <response>
- <cardmng status="status" />
-</response>
-
- cardmng.authpass
<call ...>
- <cardmng method="authpass" refid="" pass="" model*="" />
-</call>
- <response>
- <cardmng status="status" />
-</response>
-
- cardmng.getkeepspan
<call ...>
- <cardmng method="getkeepspan" model*="" />
-</call>
- <response>
- <cardmng status="status" keepspan="" />
-</response>
-
- cardmng.getkeepremain
<call ...>
- <cardmng method="getkeepremain" refid="" model*="" />
-</call>
- <response>
- <cardmng status="status" keepremain="" />
-</response>
-
- cardmng.getdatalist
<call ...>
- <cardmng method="getdatalist" refid="" model*="" />
-</call>
- <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
<call ...>
- <esign method="request">
- placeholder
- </esign>
-</call>
- <response>
- <esign status="status">
- placeholder
- </esign>
-</response>
-
-
- package
package.list
<call ...>
- <package method="list" pkgtype="pkgtype" model*="" />
-</call>
- all
is the only currently observed value for pkgtype
<response>
- <package status="status">
- <item[] url="" />
- </package>
-</response>
- A list of all packages available for download.
- -package.intend
<call ...>
- <package method="intend" url="" model*="" />
-</call>
- <response>
- <package status="status" />
-</response>
-
-
- userdata
userdata.read
<call ...>
- <userdata method="read" card*="" model*="" label="" />
-</call>
- <response>
- <userdata status="status" time="">
- <b[] __type="" />
- </userdata>
-</response>
- __type
here can be either bin
or str
userdata.write
<call ...>
- <userdata method="write" card="" time="" model*="" label*="" >
- <b[] __type="str" />
- </userdata>
-</call>
- <response>
- <userdata status="status" />
-</response>
-
-
- services
services.get
<call ...>
- <services method="get" model*="" >
- <info>
- <AVS2 __type="str">AVS2 version</AVS2>
- </info>
- </services>
-</call>
- <response>
- <services expire="" method="get" mode="" status="status">
- <item[] name="service" url="url" />
- </services>
-</response>
- Known services are:
-ntp
keepalive
cardmng
facility
message
numbering
package
pcbevent
pcbtracker
pkglist
posevent
userdata
userid
eacoin
local
local2
lobby
lobby2
dlstatus
netlog
sidmgr
globby
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
<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>
- <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
<call ...>
- <pcbevent method="put">
- <time __type="time" />
- <seq __type="u32" />
- <item[]>
- <name __type="str" />
- <value __type="s32" />
- <time __type="time" />
- </item[]>
- </pcbevent>
-</call>
- <response>
- <pcbevent status="status" />
-</response>
-
-
- message
message.get
<call ...>
- <message method="get" model*="" />
-</call>
- <response>
- <message expire="" status="status">
- <item[] name="" start="" end="" data="" />
- </message>
-</response>
-
-
- facility
facility.get
<call ...>
- <facility method="get" privateip*="" encoding*="" />
-</call>
- <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 :).
Country | -Code | -
Hong Kong | -HK |
-
Taiwan | -TW |
-
Korea | -KR |
-
USA | -US |
-
Thailand | -TH |
-
Indonesia | -ID |
-
Singapore | -SG |
-
Phillipines | -PH |
-
Macao | -MO |
-
Japan | -JP |
-
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
<call ...>
- <apsmanager method="getstat" model*="" />
-</call>
- <response>
- <apsmanager status="status" />
-</response>
-
-
- sidmgr
sidmgr.create
<call ...>
- <sidmgr method="create">
- <cardtype __type="str" />
- <cardid __type="str" />
- <cardgid __type="str" />
- <steal __type="u8" />
- </sidmgr>
-</call>
- <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
<call ...>
- <sidmgr method="open" sid="" >
- <pass __type="str" />
- </sidmgr>
-</call>
- <response>
- <sidmgr status="status">
- <state __type="u32" />
- <refid __type="str" />
- <locked __type="time" />
- </sidmgr>
-</response>
-
- sidmgr.touch
<call ...>
- <sidmgr method="touch" sid="" />
-</call>
- <response>
- <sidmgr status="status" />
-</response>
-
- sidmgr.branch
<call ...>
- <sidmgr method="branch" sid="" />
-</call>
- <response>
- <sidmgr status="status" />
-</response>
-
- sidmgr.close
<call ...>
- <sidmgr method="close" sid="" />
- <cause __type="u32" />
- </sidmgr>
-</call>
- <response>
- <sidmgr status="status" />
-</response>
-
-
- dlstatus
dlstatus.done
<call ...>
- <dlstatus method="done">
- <url>
- <param __type="str" />
- </url>
- <name __type="str" />
- <size __type="s32" />
- </dlstatus>
-</call>
-
- <response>
- <dlstatus status="status">
- <progress __type="s32" />
- </dlstatus>
-</response>
-
- dlstatus.progress
<call ...>
- <dlstatus method="progress" />
- <progress __type="s32" />
- </dlstatus>
-</call>
- <response>
- <dlstatus status="status">
- placeholder
- </dlstatus>
-</response>
-
-
- eacoin
eacoin.checkin
<call ...>
- <eacoin method="checkin">
- <cardtype __type="str" />
- <cardid __type="str" />
- <passwd __type="str" />
- <ectype __type="str" />
- </eacoin>
-</call>
- <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
<call ...>
- <eacoin method="checkout">
- <sessid __type="str" />
- </eacoin>
-</call>
- <response>
- <eacoin status="status" />
-</response>
-
- eacoin.consume
<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>
- <eacoin status="status">
- <acstatus __type="u8" />
- <autocharge __type="u8" />
- <balance __type="s32" />
- </eacoin>
-</response>
-
- eacoin.getbalance
<call ...>
- <eacoin method="getbalance">
- <sessid __type="str" />
- </eacoin>
-</call>
- <response>
- <eacoin status="status">
- <acstatus __type="u8" />
- <balance __type="s32" />
- </eacoin>
-</response>
-
- eacoin.getecstatus
<call ...>
- <eacoin method="getecstatus" />
-</call>
- <response>
- <eacoin status="status">
- <ectype __type="str" />
- <ecstatus __type="u8" />
- </eacoin>
-</response>
-
- eacoin.touch
<call ...>
- <eacoin method="touch">
- <sessid __type="str" />
- </eacoin>
-</call>
- <response>
- <eacoin status="status" />
-</response>
-
- eacoin.opchpass
<call ...>
- <eacoin method="opchpass">
- <passwd __type="str" />
- <newpasswd __type="str" />
- </eacoin>
-</call>
- <response>
- <eacoin status="status" />
-</response>
-
- eacoin.opcheckin
<call ...>
- <eacoin method="opcheckin">
- <passwd __type="str" />
- </eacoin>
-</call>
- <response>
- <eacoin status="status">
- <sessid __type="str" />
- </eacoin>
-</response>
-
- eacoin.opcheckout
<call ...>
- <eacoin method="opcheckout">
- <sessid __type="str" />
- </eacoin>
-</call>
- <response>
- <eacoin status="status" />
-</response>
-
- eacoin.getlog
<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>
- <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
<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>
- <traceroute status="status">
- placeholder
- </traceroute>
-</response>
-
-
- game
game.sv4_sample
<call ...>
- <game method="sv4_sample">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_new
<call ...>
- <game method="sv4_new">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_load
<call ...>
- <game method="sv4_load">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_load_m
<call ...>
- <game method="sv4_load_m">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_save
<call ...>
- <game method="sv4_save">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_save_m
<call ...>
- <game method="sv4_save_m">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_common
<call ...>
- <game method="sv4_common">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_shop
<call ...>
- <game method="sv4_shop">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_hiscore
<call ...>
- <game method="sv4_hiscore">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_buy
<call ...>
- <game method="sv4_buy">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_exception
<call ...>
- <game method="sv4_exception">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_entry_s
<call ...>
- <game method="sv4_entry_s">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_entry_e
<call ...>
- <game method="sv4_entry_e">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_frozen
<call ...>
- <game method="sv4_frozen">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_lounce
<call ...>
- <game method="sv4_lounce">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_save_e
<call ...>
- <game method="sv4_save_e">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_save_pb
<call ...>
- <game method="sv4_save_pb">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_save_c
<call ...>
- <game method="sv4_save_c">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_play_s
<call ...>
- <game method="sv4_play_s">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_play_e
<call ...>
- <game method="sv4_play_e">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_serial
<call ...>
- <game method="sv4_serial">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_save_fi
<call ...>
- <game method="sv4_save_fi">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_print
<call ...>
- <game method="sv4_print">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_print_h
<call ...>
- <game method="sv4_print_h">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_load_r
<call ...>
- <game method="sv4_load_r">
- placeholder
- </game>
-</call>
- <response>
- <game status="status">
- placeholder
- </game>
-</response>
-
- game.sv4_save_campaign
<call ...>
- <game method="sv4_save_campaign">
- placeholder
- </game>
-</call>
- <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; }