ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.27
Committed: Sun Jul 20 15:01:24 2003 UTC (20 years, 10 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.26: +9 -7 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 <html>
2 <head>
3 <title>KGS Protocol Description</title>
4 <!--
5 Copyright (C) 2003 Marc Lehmannn &lt;pcg@goof.com&gt;
6
7 You can redistribute and/or modify this document under the terms of
8 the GNU General Public License as published by the Free Software
9 Foundation; either version 2 of the License, or (at your option) any
10 later version.
11
12 This document is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 -->
21 </head>
22 <body>
23
24 <h1>$Revision: 1.27 $</h1>
25
26 <h1>KGS Protocol Description</h1>
27
28 <p>This XML document describes the KGS protocol. It is also used
29 to automatically generate the perl parser for all the messages and
30 structures in the protocol. Adapting it to other languages should be
31 trivial.</p>
32
33 <p>
34 <b>Please note that the author of KGS has told me that he will
35 change the protocol in response to my efforts. Unfortunately, he does
36 this just to make it more difficult to reverse-engineer it, since his
37 changes are neither required, nor useful (they just make the protocol
38 less robust, without adding added value).</b>
39 </p>
40
41 <p>If you feel you need to update the visual appearance of this
42 document, feel free to look <tt>doc/doc2html.xsl</tt> and improve
43 it.</p>
44
45 <p>The current version of this document can always be found at
46 <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.xml?rev=HEAD&amp;content-type=text/xml">here</a>, while
47 the HTML version of it can be found
48 <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.html?rev=HEAD&amp;content-type=text/html">here</a>.
49 </p>
50
51 <h2>Changes for server version 2.5</h2>
52
53 <p>Sorry - I have little time to dissect the protocol, but as far
54 as I can see, there was no deeper need for the protocol change, as
55 the protocol itself didn't change in a significant way. The only
56 significant change was the addition of a linear congruence generator
57 that is xor'ed into the packet length, and some heavy foolery to change
58 receive packets. It seems that wms prefers to lock out many of his own
59 users than to have a few people write their own client. I didn't really
60 expect that from him, but instead expected real changes for the good,
61 as he is claiming all the time.</p>
62
63 <p>Well, that is just what he accouned earlier, so he just did what he
64 said...</p>
65
66 <p>Anything I know about changes in 2.5.x are reflected in this
67 document already. You can log-in, chat, log-out, watch games, but you
68 cannot comment games nor play nor privately chat.</p>
69
70 <h2>Structure and conventions of this document and the protocol</h2>
71
72 <p>"Send" means messages send from the client to the server, while
73 "received" means messages send by the server to the client.</p>
74
75 <p>Everything on the wire is in little-endian format (what a shame).</p>
76
77 <p>Primitive types are mostly integers (signed
78 "<code>I</code>&lt;bits&gt;", unsigned "<code>U</code>&lt;bits&gt;"),
79 ascii strings ("<code>username</code>"), or zero-terminated
80 UCS2-Strings ("<code>STRING</code>"). Yes, I know java is supposed to
81 do UTF-16, but no implementation seems to care...</p>
82
83 <p>For the rest, go figure or bug me, <a href="mailto:pcg@goof.com">Marc Lehmann &lt;pcg@goof.com&gt;</a>
84 </p>
85
86 <h2>Stream and message structure.</h2>
87
88 <p>After connecting to the server, a handshake byte is sent. It's
89 the major version number of the protocol the client expects to
90 receive. Version 3 and 4 are mostly the same, except that Version 4
91 clients expect server messages to be compressed, version 3 clients
92 not.</p>
93
94 <p>The server sends back his protocol number, which is always 3 in
95 the current protocol. Most of the protocol variation is determined by
96 the server using the client version that is used in the initial login
97 message, not the initial handshake byte.</p>
98
99 <p>After the initial handshake, the client sends uncompressed
100 messages, while the server sends back a zlib-compressed
101 stream (<a href="http://rfc1950.x42.com/">rfc1950</a> and <a href="http://rfc1950.x42.com/">rfc1951</a>).</p>
102
103 <p>All messages have the same header:</p>
104
105 <h4>STRUCTURE message_header</h4>
106 <p>
107 </p>
108 <table border="1" width="100%">
109 <tr>
110 <th width="10%">NAME</th>
111 <th width="10%">TYPE</th>
112 <th width="15%">DEFAULT</th>
113 <th>DESCRIPTION</th>
114 <th width="15%">DEC-GUARD</th>
115 </tr>
116 <tr>
117 <td>_unknown</td>
118 <td>U16</td>
119 <td> </td>
120 <td>
121
122  
123 </td>
124 <td>
125 <b></b>
126  
127 </td>
128 </tr>
129 <tr>
130 <td>length</td>
131 <td>U16</td>
132 <td> </td>
133 <td>
134
135
136  
137 </td>
138 <td>
139 <b></b>
140  
141 </td>
142 </tr>
143 <tr>
144 <td>type</td>
145 <td>U16</td>
146 <td> </td>
147 <td>
148
149  
150 </td>
151 <td>
152 <b></b>
153  
154 </td>
155 </tr>
156 </table>
157
158 <h2>Primitive types used in the protocol.</h2>
159
160 <p>Apart from the basic types, I need to define some extra types to
161 deal with fixed-point values (based on integer types) or fixed-length
162 strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2
163 based (<code>S</code>)).</p>
164
165 <h4>TYPE username</h4>
166 BASE TYPE A, LENGTH 10, MULTIPLIER <br />
167
168 <p>The basic user or login name, used throughout the protocol
169 as a handle to the user.</p>
170
171 <h4>TYPE roomname</h4>
172 BASE TYPE S, LENGTH 25, MULTIPLIER <br />
173 <!-- argh, how horribly broken -->
174
175 <p>Many strings in the protocol are fixed-width for no good reason
176 (maybe this is one reason for using compression in newer versions, as
177 the packets itself are wasting lots of space.</p>
178
179 <h4>TYPE realname</h4>
180 BASE TYPE S, LENGTH 50, MULTIPLIER <br />
181 <h4>TYPE email</h4>
182 BASE TYPE S, LENGTH 70, MULTIPLIER <br />
183 <h4>TYPE userinfo</h4>
184 BASE TYPE S, LENGTH 1000, MULTIPLIER <br />
185 <h4>TYPE url</h4>
186 BASE TYPE A, LENGTH 100, MULTIPLIER <br />
187
188 <p>Used in user_record.</p>
189
190 <h4>TYPE locale</h4>
191 BASE TYPE A, LENGTH 5, MULTIPLIER <br />
192
193 <p>A kind of locale specifier. It seems the general format seems to be
194 lowercase language, underscore, uppercase location, e.g. en_US. More
195 fancy specifications don't fit.</p>
196
197 <h4>TYPE flag</h4>
198 BASE TYPE U8, LENGTH , MULTIPLIER 1<br />
199
200 <p>Just a simple boolean value. 0 means false, and 1 generally true,
201 but I suggest ccepting != 0 as true.</p>
202
203 <h4>TYPE komi16</h4>
204 BASE TYPE I16, LENGTH , MULTIPLIER 2<br />
205 <h4>TYPE komi32</h4>
206 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
207 <h4>TYPE komi324</h4>
208 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
209
210 <p>Komi values are multiplied by 2 to make them integer in the
211 protocol. Well, *most* of the time at least...</p>
212
213 <h4>TYPE result</h4>
214 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
215
216 <p>The game result is also multiplied by two to give it higher
217 resolution. There are also special values for wins by time etc., either
218 in result or in the score* types, or both :)</p>
219
220 <h4>TYPE score16</h4>
221 BASE TYPE I16, LENGTH , MULTIPLIER 4<br />
222 <h4>TYPE score32</h4>
223 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
224 <h4>TYPE score1000</h4>
225 BASE TYPE I32, LENGTH , MULTIPLIER 1000<br />
226
227 <p>A score value (used for displaying the score at the end of a game)
228 are multiplied by four for a change (the 0.25 resolution is not
229 used). In game structures it is encoded by dividing by two, though, so
230 watch out! And in some others, it's encoded by multiplying by 1000...
231 yuck!</p>
232
233 <h4>TYPE time</h4>
234 BASE TYPE U32, LENGTH , MULTIPLIER 1000<br />
235
236 <p>Time values are multiplied by 1000, giving them millisecond
237 accuracy.</p>
238
239 <h4>TYPE timestamp</h4>
240 BASE TYPE U64, LENGTH , MULTIPLIER 1000<br />
241
242 <p>64 bit timeval, milliseconds since posix epoch, e.g. <code>my
243 ($year, $month, $day) = (gmtime $date * 0.001)[5,4,3];</code>
244 </p>
245
246 <h4>TYPE password</h4>
247 BASE TYPE U64, LENGTH , MULTIPLIER <br />
248
249 <p>Password is a number calculated as follows (VERY insecure, basically
250 plaintext!): <code>password = 0; for char in characters do password ←
251 password * 1055 + ascii_code (char)</code>
252 </p>
253
254 <h2>Constants, enumeration and set types used in the protocol.</h2>
255
256 <p>Baaah... not yet.</p>
257
258 <h2>Structs used in send &amp; receive messages</h2>
259
260 <h4>STRUCTURE user</h4>
261 CLASS: KGS::User<br />
262 <p>
263
264 <p>Everywhere a user + flags is required, even used in some places
265 where only a username is required. I see no general rule on when a
266 complete user and when a partial user is required.</p>
267 </p>
268 <table border="1" width="100%">
269 <tr>
270 <th width="10%">NAME</th>
271 <th width="10%">TYPE</th>
272 <th width="15%">DEFAULT</th>
273 <th>DESCRIPTION</th>
274 <th width="15%">DEC-GUARD</th>
275 </tr>
276 <tr>
277 <td>name</td>
278 <td>username</td>
279 <td> </td>
280 <td>
281
282  
283 </td>
284 <td>
285 <b></b>
286  
287 </td>
288 </tr>
289 <tr>
290 <td>flags</td>
291 <td>U32</td>
292 <td>1 </td>
293 <td>
294
295  
296 </td>
297 <td>
298 <b></b>
299  
300 </td>
301 </tr>
302 </table>
303
304 <h4>STRUCTURE rules</h4>
305 CLASS: KGS::Rules<br />
306 <p>
307
308 <p>This structure is used for challanges as well as in the special
309 TREE "subprotocol". It tightly encodes the game parameters.</p>
310 </p>
311 <table border="1" width="100%">
312 <tr>
313 <th width="10%">NAME</th>
314 <th width="10%">TYPE</th>
315 <th width="15%">DEFAULT</th>
316 <th>DESCRIPTION</th>
317 <th width="15%">DEC-GUARD</th>
318 </tr>
319 <tr>
320 <td>ruleset</td>
321 <td>U8</td>
322 <td> </td>
323 <td>
324
325  
326 </td>
327 <td>
328 <b></b>
329  
330 </td>
331 </tr>
332 <tr>
333 <td>size</td>
334 <td>U8</td>
335 <td> </td>
336 <td>
337
338  
339 </td>
340 <td>
341 <b></b>
342  
343 </td>
344 </tr>
345 <tr>
346 <td>handicap</td>
347 <td>U8</td>
348 <td> </td>
349 <td>
350
351  
352 </td>
353 <td>
354 <b></b>
355  
356 </td>
357 </tr>
358 <tr>
359 <td>komi</td>
360 <td>komi16</td>
361 <td> </td>
362 <td>
363
364  
365 </td>
366 <td>
367 <b></b>
368  
369 </td>
370 </tr>
371 <tr>
372 <td>timesys</td>
373 <td>U8</td>
374 <td> </td>
375 <td>
376
377  
378 </td>
379 <td>
380 <b></b>
381  
382 </td>
383 </tr>
384 <tr>
385 <td>time</td>
386 <td>U32</td>
387 <td> </td>
388 <td>
389
390  
391 </td>
392 <td>
393 <b></b>
394  
395 </td>
396 </tr>
397 <tr>
398 <td>interval</td>
399 <td>U32</td>
400 <td> </td>
401 <td>
402 byo-yomi time / canadian time
403
404  
405 </td>
406 <td>
407 <b></b>
408  
409 </td>
410 </tr>
411 <tr>
412 <td>count</td>
413 <td>U16</td>
414 <td> </td>
415 <td>
416 periods / moves
417
418  
419 </td>
420 <td>
421 <b></b>
422  
423 </td>
424 </tr>
425 </table>
426
427 <h2>Structs used in send messages</h2>
428
429 <h2>Send messages</h2>
430
431 <h4>
432 <a name="S0000"></a>SEND
433 MESSAGE login</h4>
434 NUMERIC TYPE (hex): 0000<p>
435
436 <p>Sent to login, usually the first message sent. The password needs to be set when the
437 guest flag is true.
438 Possible replies: <a href="#R0001">login(0001)</a>
439 <a href="#R0002">login(0002)</a>
440 <a href="#R0003">login(0003)</a>
441 <a href="#R0004">login(0004)</a>
442 <a href="#R0005">login(0005)</a>
443 <a href="#R0006">login(0006)</a>
444 <a href="#R0018">login(0018)</a>
445 <a href="#R0022">login(0022)</a>. Followed by: <a href="#R001b">timewarning_default(001b)</a> <a href="#R0411">chal_defaults(0411)</a>
446 </p>
447 </p>
448 <table border="1" width="100%">
449 <tr>
450 <th width="10%">NAME</th>
451 <th width="10%">TYPE</th>
452 <th width="15%">DEFAULT</th>
453 <th>DESCRIPTION</th>
454 <th width="15%">DEC-GUARD</th>
455 </tr>
456 <tr>
457 <td>ver_major</td>
458 <td>U32</td>
459 <td>2 </td>
460 <td>
461
462  
463 </td>
464 <td>
465 <b></b>
466  
467 </td>
468 </tr>
469 <tr>
470 <td>ver_minor</td>
471 <td>U32</td>
472 <td>5 </td>
473 <td>
474
475  
476 </td>
477 <td>
478 <b></b>
479  
480 </td>
481 </tr>
482 <tr>
483 <td>ver_micro</td>
484 <td>U32</td>
485 <td>1 </td>
486 <td>
487
488  
489 </td>
490 <td>
491 <b></b>
492  
493 </td>
494 </tr>
495 <tr>
496 <td>name</td>
497 <td>username</td>
498 <td> </td>
499 <td>
500
501  
502 </td>
503 <td>
504 <b></b>
505  
506 </td>
507 </tr>
508 <tr>
509 <td>password</td>
510 <td>password</td>
511 <td>0 </td>
512 <td>
513
514  
515 </td>
516 <td>
517 <b></b>
518  
519 </td>
520 </tr>
521 <tr>
522 <td>guest</td>
523 <td>flag</td>
524 <td>1 </td>
525 <td>
526
527  
528 </td>
529 <td>
530 <b></b>
531  
532 </td>
533 </tr>
534 <tr>
535 <td>_unknown3</td>
536 <td>U16</td>
537 <td>0 </td>
538 <td>
539
540  
541 </td>
542 <td>
543 <b></b>
544  
545 </td>
546 </tr>
547 <tr>
548 <td>locale</td>
549 <td>locale</td>
550 <td>"en_US" </td>
551 <td>
552
553  
554 </td>
555 <td>
556 <b></b>
557  
558 </td>
559 </tr>
560 <tr>
561 <td>clientver</td>
562 <td>DATA</td>
563 <td>"1.4.1_01:Swing app:Sun Microsystems Inc." </td>
564 <td>
565 The "default" is the java vm version, not exactly he client version. However,
566 you should always send a text like "Jonathan's C client bersion 0.6" or somesuch,
567 so the server can, if necessary, block broken clients or client versions.
568
569  
570 </td>
571 <td>
572 <b></b>
573  
574 </td>
575 </tr>
576 </table>
577
578 <h4>
579 <a name="S0007"></a>SEND
580 MESSAGE req_userinfo</h4>
581 NUMERIC TYPE (hex): 0007<p>
582 <p>Request info about a certain user. Possible reply: <a href="#R0008">userinfo(0008)</a>
583 </p>
584 </p>
585 <table border="1" width="100%">
586 <tr>
587 <th width="10%">NAME</th>
588 <th width="10%">TYPE</th>
589 <th width="15%">DEFAULT</th>
590 <th>DESCRIPTION</th>
591 <th width="15%">DEC-GUARD</th>
592 </tr>
593 <tr>
594 <td>name</td>
595 <td>username</td>
596 <td> </td>
597 <td>
598
599  
600 </td>
601 <td>
602 <b></b>
603  
604 </td>
605 </tr>
606 </table>
607
608 <h4>
609 <a name="S0007"></a>SEND
610 MESSAGE update_userinfo</h4>
611 NUMERIC TYPE (hex): 0007<p>
612 <p>Update user info. Message structure is very similar
613 to <a href="#R0008">userinfo(0008)</a>.</p>
614 </p>
615 <table border="1" width="100%">
616 <tr>
617 <th width="10%">NAME</th>
618 <th width="10%">TYPE</th>
619 <th width="15%">DEFAULT</th>
620 <th>DESCRIPTION</th>
621 <th width="15%">DEC-GUARD</th>
622 </tr>
623 <tr>
624 <td>setpass</td>
625 <td>flag</td>
626 <td> </td>
627 <td>
628 Should the password be updated?
629
630  
631 </td>
632 <td>
633 <b></b>
634  
635 </td>
636 </tr>
637 <tr>
638 <td>password</td>
639 <td>password</td>
640 <td>0 </td>
641 <td>
642
643  
644 </td>
645 <td>
646 <b></b>
647  
648 </td>
649 </tr>
650 <tr>
651 <td>realname</td>
652 <td>realname</td>
653 <td> </td>
654 <td>
655
656  
657 </td>
658 <td>
659 <b></b>
660  
661 </td>
662 </tr>
663 <tr>
664 <td>email</td>
665 <td>email</td>
666 <td> </td>
667 <td>
668
669  
670 </td>
671 <td>
672 <b></b>
673  
674 </td>
675 </tr>
676 <tr>
677 <td>info</td>
678 <td>userinfo</td>
679 <td> </td>
680 <td>
681
682  
683 </td>
684 <td>
685 <b></b>
686  
687 </td>
688 </tr>
689 <tr>
690 <td>homepage</td>
691 <td>url</td>
692 <td> </td>
693 <td>
694
695  
696 </td>
697 <td>
698 <b></b>
699  
700 </td>
701 </tr>
702 <tr>
703 <td>_unused</td>
704 <td>U64</td>
705 <td>0 </td>
706 <td>
707
708  
709 </td>
710 <td>
711 <b></b>
712  
713 </td>
714 </tr>
715 <tr>
716 <td>_unused</td>
717 <td>U64</td>
718 <td>0 </td>
719 <td>
720
721  
722 </td>
723 <td>
724 <b></b>
725  
726 </td>
727 </tr>
728 </table>
729
730 <h4>
731 <a name="S0014"></a>SEND
732 MESSAGE req_stats</h4>
733 NUMERIC TYPE (hex): 0014<p>
734 <p>Request server statistics. Replied with <a href="#R0015">stats(0015)</a>
735 </p>
736 </p>
737 <table border="1" width="100%">
738 <tr>
739 <th width="10%">NAME</th>
740 <th width="10%">TYPE</th>
741 <th width="15%">DEFAULT</th>
742 <th>DESCRIPTION</th>
743 <th width="15%">DEC-GUARD</th>
744 </tr>
745 </table>
746
747 <h4>
748 <a name="S001d"></a>SEND
749 MESSAGE ping</h4>
750 NUMERIC TYPE (hex): 001d<p>
751 <p>Wild guess, I send it in <a href="#R0016">idle_warn(0016)</a>.</p>
752 </p>
753 <table border="1" width="100%">
754 <tr>
755 <th width="10%">NAME</th>
756 <th width="10%">TYPE</th>
757 <th width="15%">DEFAULT</th>
758 <th>DESCRIPTION</th>
759 <th width="15%">DEC-GUARD</th>
760 </tr>
761 </table>
762
763 <h4>
764 <a name="S001e"></a>SEND
765 MESSAGE req_usergraph</h4>
766 NUMERIC TYPE (hex): 001e<p>
767 <p>Request user graph data, replied with <a href="#R001e">usergraph(001e)</a>.</p>
768 </p>
769 <table border="1" width="100%">
770 <tr>
771 <th width="10%">NAME</th>
772 <th width="10%">TYPE</th>
773 <th width="15%">DEFAULT</th>
774 <th>DESCRIPTION</th>
775 <th width="15%">DEC-GUARD</th>
776 </tr>
777 <tr>
778 <td>name</td>
779 <td>username</td>
780 <td> </td>
781 <td>
782
783  
784 </td>
785 <td>
786 <b></b>
787  
788 </td>
789 </tr>
790 </table>
791
792 <h4>
793 <a name="S001f"></a>SEND
794 MESSAGE fetch_memos</h4>
795 NUMERIC TYPE (hex): 001f<p>
796 <p>Unclear. Fetch all outstanding memos? Replied with <a href="#R001f">memo(001f)</a>
797 </p>
798 </p>
799 <table border="1" width="100%">
800 <tr>
801 <th width="10%">NAME</th>
802 <th width="10%">TYPE</th>
803 <th width="15%">DEFAULT</th>
804 <th>DESCRIPTION</th>
805 <th width="15%">DEC-GUARD</th>
806 </tr>
807 </table>
808
809 <h4>
810 <a name="S0021"></a>SEND
811 MESSAGE req_pic</h4>
812 NUMERIC TYPE (hex): 0021<p>
813 <p>Request a user picture from the server. Results in a <a href="#R0021">userpic(0021)</a>
814 or a timeout.</p>
815 </p>
816 <table border="1" width="100%">
817 <tr>
818 <th width="10%">NAME</th>
819 <th width="10%">TYPE</th>
820 <th width="15%">DEFAULT</th>
821 <th>DESCRIPTION</th>
822 <th width="15%">DEC-GUARD</th>
823 </tr>
824 <tr>
825 <td>name</td>
826 <td>username</td>
827 <td> </td>
828 <td>
829
830  
831 </td>
832 <td>
833 <b></b>
834  
835 </td>
836 </tr>
837 </table>
838
839 <h4>
840 <a name="S0021"></a>SEND
841 MESSAGE upload_pic</h4>
842 NUMERIC TYPE (hex): 0021<p>
843 Same code as pic_req, but with an additional data section that
844 must contain a JPEG image that is &lt;=7KB. It must have 141×200 pixels.
845 </p>
846 <table border="1" width="100%">
847 <tr>
848 <th width="10%">NAME</th>
849 <th width="10%">TYPE</th>
850 <th width="15%">DEFAULT</th>
851 <th>DESCRIPTION</th>
852 <th width="15%">DEC-GUARD</th>
853 </tr>
854 <tr>
855 <td>name</td>
856 <td>username</td>
857 <td> </td>
858 <td>
859
860  
861 </td>
862 <td>
863 <b></b>
864  
865 </td>
866 </tr>
867 <tr>
868 <td>data</td>
869 <td>DATA</td>
870 <td> </td>
871 <td>
872
873  
874 </td>
875 <td>
876 <b></b>
877  
878 </td>
879 </tr>
880 </table>
881
882 <h4>
883 <a name="S0100"></a>SEND
884 MESSAGE gnotice</h4>
885 NUMERIC TYPE (hex): 0100<p>
886 <p>Send a global message. Maybe. Never tried, for obvious reasons :/. Results
887 in a <a href="#R0100">gnotice(0100)</a> sent to all users.</p>
888 </p>
889 <table border="1" width="100%">
890 <tr>
891 <th width="10%">NAME</th>
892 <th width="10%">TYPE</th>
893 <th width="15%">DEFAULT</th>
894 <th>DESCRIPTION</th>
895 <th width="15%">DEC-GUARD</th>
896 </tr>
897 <tr>
898 <td>notice</td>
899 <td>STRING</td>
900 <td> </td>
901 <td>
902
903  
904 </td>
905 <td>
906 <b></b>
907  
908 </td>
909 </tr>
910 </table>
911
912 <h4>
913 <a name="S0318"></a>SEND
914 MESSAGE list_rooms</h4>
915 NUMERIC TYPE (hex): 0318<p>
916 <p>List the rooms in a specific group/category. Results in a <a href="#R0318">upd_rooms(0318)</a> message.</p>
917 </p>
918 <table border="1" width="100%">
919 <tr>
920 <th width="10%">NAME</th>
921 <th width="10%">TYPE</th>
922 <th width="15%">DEFAULT</th>
923 <th>DESCRIPTION</th>
924 <th width="15%">DEC-GUARD</th>
925 </tr>
926 <tr>
927 <td>group</td>
928 <td>U8</td>
929 <td> </td>
930 <td>
931
932  
933 </td>
934 <td>
935 <b></b>
936  
937 </td>
938 </tr>
939 </table>
940
941 <h4>
942 <a name="S031a"></a>SEND
943 MESSAGE new_room</h4>
944 NUMERIC TYPE (hex): 031a<p>
945 Create a new room. Not verified.
946 </p>
947 <table border="1" width="100%">
948 <tr>
949 <th width="10%">NAME</th>
950 <th width="10%">TYPE</th>
951 <th width="15%">DEFAULT</th>
952 <th>DESCRIPTION</th>
953 <th width="15%">DEC-GUARD</th>
954 </tr>
955 <tr>
956 <td>name</td>
957 <td>username</td>
958 <td> </td>
959 <td>
960
961  
962 </td>
963 <td>
964 <b></b>
965  
966 </td>
967 </tr>
968 <tr>
969 <td>i1</td>
970 <td>U32</td>
971 <td>0 </td>
972 <td>
973
974  
975 </td>
976 <td>
977 <b></b>
978  
979 </td>
980 </tr>
981 <tr>
982 <td>b1</td>
983 <td>U8</td>
984 <td>0 </td>
985 <td>
986
987  
988 </td>
989 <td>
990 <b></b>
991  
992 </td>
993 </tr>
994 <tr>
995 <td>b2</td>
996 <td>U8</td>
997 <td>255 </td>
998 <td>
999
1000  
1001 </td>
1002 <td>
1003 <b></b>
1004  
1005 </td>
1006 </tr>
1007 <tr>
1008 <td>b3</td>
1009 <td>U8</td>
1010 <td>255 </td>
1011 <td>
1012
1013  
1014 </td>
1015 <td>
1016 <b></b>
1017  
1018 </td>
1019 </tr>
1020 <tr>
1021 <td>group</td>
1022 <td>U8</td>
1023 <td>1 </td>
1024 <td>
1025
1026  
1027 </td>
1028 <td>
1029 <b></b>
1030  
1031 </td>
1032 </tr>
1033 <tr>
1034 <td>name</td>
1035 <td>STRING</td>
1036 <td> </td>
1037 <td>
1038
1039  
1040 </td>
1041 <td>
1042 <b></b>
1043  
1044 </td>
1045 </tr>
1046 <tr>
1047 <td>description</td>
1048 <td>STRING</td>
1049 <td> </td>
1050 <td>
1051
1052  
1053 </td>
1054 <td>
1055 <b></b>
1056  
1057 </td>
1058 </tr>
1059 <tr>
1060 <td>flags</td>
1061 <td>U8</td>
1062 <td> </td>
1063 <td>
1064 0x10 .. private room etc.. see code
1065
1066  
1067 </td>
1068 <td>
1069 <b></b>
1070  
1071 </td>
1072 </tr>
1073 </table>
1074
1075 <h4>
1076 <a name="S0413"></a>SEND
1077 MESSAGE req_game_record</h4>
1078 NUMERIC TYPE (hex): 0413<p>
1079 <p>Requests part of the users game record to be sent. Results in a <a href="#R0414">game_record(0414)</a> or maybe a timeout.</p>
1080 </p>
1081 <table border="1" width="100%">
1082 <tr>
1083 <th width="10%">NAME</th>
1084 <th width="10%">TYPE</th>
1085 <th width="15%">DEFAULT</th>
1086 <th>DESCRIPTION</th>
1087 <th width="15%">DEC-GUARD</th>
1088 </tr>
1089 <tr>
1090 <td>name</td>
1091 <td>username</td>
1092 <td> </td>
1093 <td>
1094
1095  
1096 </td>
1097 <td>
1098 <b></b>
1099  
1100 </td>
1101 </tr>
1102 <tr>
1103 <td>timestamp</td>
1104 <td>timestamp</td>
1105 <td> </td>
1106 <td>
1107 If zero, start at the newest games, else only send games
1108 before the given timestap.
1109
1110  
1111 </td>
1112 <td>
1113 <b></b>
1114  
1115 </td>
1116 </tr>
1117 </table>
1118
1119 <h4>
1120 <a name="S4300"></a>SEND
1121 MESSAGE join_room</h4>
1122 NUMERIC TYPE (hex): 4300<p>
1123 <p>Joins the given room. <a href="#R4300">join_room(4300)</a> messages for yourself
1124 and all users in that room, as well as the initial gamelist, are
1125 send if the room exists. If not, timeout...</p>
1126 </p>
1127 <table border="1" width="100%">
1128 <tr>
1129 <th width="10%">NAME</th>
1130 <th width="10%">TYPE</th>
1131 <th width="15%">DEFAULT</th>
1132 <th>DESCRIPTION</th>
1133 <th width="15%">DEC-GUARD</th>
1134 </tr>
1135 <tr>
1136 <td>channel</td>
1137 <td>U16</td>
1138 <td> </td>
1139 <td>
1140
1141  
1142 </td>
1143 <td>
1144 <b></b>
1145  
1146 </td>
1147 </tr>
1148 <tr>
1149 <td>user</td>
1150 <td>user</td>
1151 <td> </td>
1152 <td>
1153
1154  
1155 </td>
1156 <td>
1157 <b></b>
1158  
1159 </td>
1160 </tr>
1161 </table>
1162
1163 <h4>
1164 <a name="S4301"></a>SEND
1165 MESSAGE msg_room</h4>
1166 NUMERIC TYPE (hex): 4301<p>
1167 Send a message to the room.
1168 </p>
1169 <table border="1" width="100%">
1170 <tr>
1171 <th width="10%">NAME</th>
1172 <th width="10%">TYPE</th>
1173 <th width="15%">DEFAULT</th>
1174 <th>DESCRIPTION</th>
1175 <th width="15%">DEC-GUARD</th>
1176 </tr>
1177 <tr>
1178 <td>channel</td>
1179 <td>U16</td>
1180 <td> </td>
1181 <td>
1182
1183  
1184 </td>
1185 <td>
1186 <b></b>
1187  
1188 </td>
1189 </tr>
1190 <tr>
1191 <td>name</td>
1192 <td>username</td>
1193 <td> </td>
1194 <td>
1195 Must be the login-name of the user.
1196
1197  
1198 </td>
1199 <td>
1200 <b></b>
1201  
1202 </td>
1203 </tr>
1204 <tr>
1205 <td>message</td>
1206 <td>STRING</td>
1207 <td> </td>
1208 <td>
1209
1210  
1211 </td>
1212 <td>
1213 <b></b>
1214  
1215 </td>
1216 </tr>
1217 </table>
1218
1219 <h4>
1220 <a name="S4302"></a>SEND
1221 MESSAGE part_room</h4>
1222 NUMERIC TYPE (hex): 4302<p>
1223 Remove yourself (or maybe others as admin) from a room.
1224 </p>
1225 <table border="1" width="100%">
1226 <tr>
1227 <th width="10%">NAME</th>
1228 <th width="10%">TYPE</th>
1229 <th width="15%">DEFAULT</th>
1230 <th>DESCRIPTION</th>
1231 <th width="15%">DEC-GUARD</th>
1232 </tr>
1233 <tr>
1234 <td>channel</td>
1235 <td>U16</td>
1236 <td> </td>
1237 <td>
1238
1239  
1240 </td>
1241 <td>
1242 <b></b>
1243  
1244 </td>
1245 </tr>
1246 <tr>
1247 <td>name</td>
1248 <td>username</td>
1249 <td> </td>
1250 <td>
1251
1252  
1253 </td>
1254 <td>
1255 <b></b>
1256  
1257 </td>
1258 </tr>
1259 </table>
1260
1261 <h4>
1262 <a name="S4305"></a>SEND
1263 MESSAGE new_game</h4>
1264 NUMERIC TYPE (hex): 4305<p>
1265 Unclear. Start a new game.
1266 </p>
1267 <table border="1" width="100%">
1268 <tr>
1269 <th width="10%">NAME</th>
1270 <th width="10%">TYPE</th>
1271 <th width="15%">DEFAULT</th>
1272 <th>DESCRIPTION</th>
1273 <th width="15%">DEC-GUARD</th>
1274 </tr>
1275 <tr>
1276 <td>channel</td>
1277 <td>U16</td>
1278 <td> </td>
1279 <td>
1280
1281  
1282 </td>
1283 <td>
1284 <b></b>
1285  
1286 </td>
1287 </tr>
1288 <tr>
1289 <td>id</td>
1290 <td>U16</td>
1291 <td> </td>
1292 <td>
1293
1294  
1295 </td>
1296 <td>
1297 <b></b>
1298  
1299 </td>
1300 </tr>
1301 <tr>
1302 <td>gametype</td>
1303 <td>U32</td>
1304 <td> </td>
1305 <td>
1306
1307  
1308 </td>
1309 <td>
1310 <b></b>
1311  
1312 </td>
1313 </tr>
1314 <tr>
1315 <td>rules</td>
1316 <td>rules</td>
1317 <td> </td>
1318 <td>
1319
1320  
1321 </td>
1322 <td>
1323 <b></b>
1324  
1325 </td>
1326 </tr>
1327 <tr>
1328 <td>notes</td>
1329 <td>STRING</td>
1330 <td> </td>
1331 <td>
1332
1333  
1334 </td>
1335 <td>
1336 <b></b>
1337  
1338 </td>
1339 </tr>
1340 </table>
1341
1342 <h4>
1343 <a name="S430b"></a>SEND
1344 MESSAGE req_games</h4>
1345 NUMERIC TYPE (hex): 430b<p>
1346 Request to update room game list (send this once per minute to get
1347 updated). Results in upd_games messages.
1348 </p>
1349 <table border="1" width="100%">
1350 <tr>
1351 <th width="10%">NAME</th>
1352 <th width="10%">TYPE</th>
1353 <th width="15%">DEFAULT</th>
1354 <th>DESCRIPTION</th>
1355 <th width="15%">DEC-GUARD</th>
1356 </tr>
1357 <tr>
1358 <td>channel</td>
1359 <td>U16</td>
1360 <td> </td>
1361 <td>
1362
1363  
1364 </td>
1365 <td>
1366 <b></b>
1367  
1368 </td>
1369 </tr>
1370 </table>
1371
1372 <h4>
1373 <a name="S4319"></a>SEND
1374 MESSAGE req_desc</h4>
1375 NUMERIC TYPE (hex): 4319<p>
1376 Request room description.
1377 </p>
1378 <table border="1" width="100%">
1379 <tr>
1380 <th width="10%">NAME</th>
1381 <th width="10%">TYPE</th>
1382 <th width="15%">DEFAULT</th>
1383 <th>DESCRIPTION</th>
1384 <th width="15%">DEC-GUARD</th>
1385 </tr>
1386 <tr>
1387 <td>channel</td>
1388 <td>U16</td>
1389 <td> </td>
1390 <td>
1391
1392  
1393 </td>
1394 <td>
1395 <b></b>
1396  
1397 </td>
1398 </tr>
1399 </table>
1400
1401 <h4>
1402 <a name="S4400"></a>SEND
1403 MESSAGE send_chal</h4>
1404 NUMERIC TYPE (hex): 4400<p>
1405 Unclear.
1406 </p>
1407 <table border="1" width="100%">
1408 <tr>
1409 <th width="10%">NAME</th>
1410 <th width="10%">TYPE</th>
1411 <th width="15%">DEFAULT</th>
1412 <th>DESCRIPTION</th>
1413 <th width="15%">DEC-GUARD</th>
1414 </tr>
1415 <tr>
1416 <td>channel</td>
1417 <td>U16</td>
1418 <td> </td>
1419 <td>
1420
1421  
1422 </td>
1423 <td>
1424 <b></b>
1425  
1426 </td>
1427 </tr>
1428 <tr>
1429 <td>black</td>
1430 <td>username</td>
1431 <td> </td>
1432 <td>
1433
1434  
1435 </td>
1436 <td>
1437 <b></b>
1438  
1439 </td>
1440 </tr>
1441 <tr>
1442 <td>white</td>
1443 <td>username</td>
1444 <td> </td>
1445 <td>
1446 More following... TREE or challenge.
1447
1448  
1449 </td>
1450 <td>
1451 <b></b>
1452  
1453 </td>
1454 </tr>
1455 </table>
1456
1457 <h4>
1458 <a name="S4403"></a>SEND
1459 MESSAGE join_game</h4>
1460 NUMERIC TYPE (hex): 4403<p>
1461 Join a game. See join_room.
1462 </p>
1463 <table border="1" width="100%">
1464 <tr>
1465 <th width="10%">NAME</th>
1466 <th width="10%">TYPE</th>
1467 <th width="15%">DEFAULT</th>
1468 <th>DESCRIPTION</th>
1469 <th width="15%">DEC-GUARD</th>
1470 </tr>
1471 <tr>
1472 <td>channel</td>
1473 <td>U16</td>
1474 <td> </td>
1475 <td>
1476
1477  
1478 </td>
1479 <td>
1480 <b></b>
1481  
1482 </td>
1483 </tr>
1484 <tr>
1485 <td>user</td>
1486 <td>user</td>
1487 <td> </td>
1488 <td>
1489
1490  
1491 </td>
1492 <td>
1493 <b></b>
1494  
1495 </td>
1496 </tr>
1497 </table>
1498
1499 <h4>
1500 <a name="S4404"></a>SEND
1501 MESSAGE part_game</h4>
1502 NUMERIC TYPE (hex): 4404<p>
1503 Leave (or kick as admin?) a certain user from a game.
1504 </p>
1505 <table border="1" width="100%">
1506 <tr>
1507 <th width="10%">NAME</th>
1508 <th width="10%">TYPE</th>
1509 <th width="15%">DEFAULT</th>
1510 <th>DESCRIPTION</th>
1511 <th width="15%">DEC-GUARD</th>
1512 </tr>
1513 <tr>
1514 <td>channel</td>
1515 <td>U16</td>
1516 <td> </td>
1517 <td>
1518
1519  
1520 </td>
1521 <td>
1522 <b></b>
1523  
1524 </td>
1525 </tr>
1526 <tr>
1527 <td>name</td>
1528 <td>username</td>
1529 <td> </td>
1530 <td>
1531
1532  
1533 </td>
1534 <td>
1535 <b></b>
1536  
1537 </td>
1538 </tr>
1539 </table>
1540
1541 <h4>
1542 <a name="S4406"></a>SEND
1543 MESSAGE upd_tree</h4>
1544 NUMERIC TYPE (hex): 4406<p>
1545 Upload a partial game tree to the server. This is used to send moves
1546 and even in-game comments to the server. For the comments, the
1547 server prepends the username and rank.
1548
1549 </p>
1550 <table border="1" width="100%">
1551 <tr>
1552 <th width="10%">NAME</th>
1553 <th width="10%">TYPE</th>
1554 <th width="15%">DEFAULT</th>
1555 <th>DESCRIPTION</th>
1556 <th width="15%">DEC-GUARD</th>
1557 </tr>
1558 <tr>
1559 <td>channel</td>
1560 <td>U16</td>
1561 <td> </td>
1562 <td>
1563
1564  
1565 </td>
1566 <td>
1567 <b></b>
1568  
1569 </td>
1570 </tr>
1571 <tr>
1572 <td>tree</td>
1573 <td>TREE</td>
1574 <td> </td>
1575 <td>
1576
1577  
1578 </td>
1579 <td>
1580 <b></b>
1581  
1582 </td>
1583 </tr>
1584 </table>
1585
1586 <h4>
1587 <a name="S4408"></a>SEND
1588 MESSAGE get_tree</h4>
1589 NUMERIC TYPE (hex): 4408<p>
1590 Request the game tree starting at a given node. This is used
1591 when the server only sends a partial tree (with end code "more").
1592 </p>
1593 <table border="1" width="100%">
1594 <tr>
1595 <th width="10%">NAME</th>
1596 <th width="10%">TYPE</th>
1597 <th width="15%">DEFAULT</th>
1598 <th>DESCRIPTION</th>
1599 <th width="15%">DEC-GUARD</th>
1600 </tr>
1601 <tr>
1602 <td>channel</td>
1603 <td>U16</td>
1604 <td> </td>
1605 <td>
1606
1607  
1608 </td>
1609 <td>
1610 <b></b>
1611  
1612 </td>
1613 </tr>
1614 <tr>
1615 <td>node</td>
1616 <td>U32</td>
1617 <td> </td>
1618 <td>
1619
1620  
1621 </td>
1622 <td>
1623 <b></b>
1624  
1625 </td>
1626 </tr>
1627 </table>
1628
1629 <h4>
1630 <a name="S440c"></a>SEND
1631 MESSAGE claim_win</h4>
1632 NUMERIC TYPE (hex): 440c<p>
1633 Unclear.
1634 </p>
1635 <table border="1" width="100%">
1636 <tr>
1637 <th width="10%">NAME</th>
1638 <th width="10%">TYPE</th>
1639 <th width="15%">DEFAULT</th>
1640 <th>DESCRIPTION</th>
1641 <th width="15%">DEC-GUARD</th>
1642 </tr>
1643 <tr>
1644 <td>channel</td>
1645 <td>U16</td>
1646 <td> </td>
1647 <td>
1648
1649  
1650 </td>
1651 <td>
1652 <b></b>
1653  
1654 </td>
1655 </tr>
1656 <tr>
1657 <td>_byte</td>
1658 <td>U8 </td>
1659 <td> </td>
1660 <td>
1661 Player colour maybe? Unclear.
1662
1663  
1664 </td>
1665 <td>
1666 <b></b>
1667  
1668 </td>
1669 </tr>
1670 </table>
1671
1672 <h4>
1673 <a name="S440d"></a>SEND
1674 MESSAGE add_time</h4>
1675 NUMERIC TYPE (hex): 440d<p>
1676 Not checked.
1677
1678 </p>
1679 <table border="1" width="100%">
1680 <tr>
1681 <th width="10%">NAME</th>
1682 <th width="10%">TYPE</th>
1683 <th width="15%">DEFAULT</th>
1684 <th>DESCRIPTION</th>
1685 <th width="15%">DEC-GUARD</th>
1686 </tr>
1687 <tr>
1688 <td>channel</td>
1689 <td>U16</td>
1690 <td> </td>
1691 <td>
1692
1693  
1694 </td>
1695 <td>
1696 <b></b>
1697  
1698 </td>
1699 </tr>
1700 <tr>
1701 <td>time</td>
1702 <td>U32</td>
1703 <td> </td>
1704 <td>
1705
1706  
1707 </td>
1708 <td>
1709 <b></b>
1710  
1711 </td>
1712 </tr>
1713 <tr>
1714 <td>player</td>
1715 <td>U8</td>
1716 <td> </td>
1717 <td>
1718
1719  
1720 </td>
1721 <td>
1722 <b></b>
1723  
1724 </td>
1725 </tr>
1726 </table>
1727
1728 <h4>
1729 <a name="S440f"></a>SEND
1730 MESSAGE grant_undo</h4>
1731 NUMERIC TYPE (hex): 440f<p>
1732 Can be send after a req_undo message was received to grant the undo.
1733 </p>
1734 <table border="1" width="100%">
1735 <tr>
1736 <th width="10%">NAME</th>
1737 <th width="10%">TYPE</th>
1738 <th width="15%">DEFAULT</th>
1739 <th>DESCRIPTION</th>
1740 <th width="15%">DEC-GUARD</th>
1741 </tr>
1742 <tr>
1743 <td>channel</td>
1744 <td>U16</td>
1745 <td> </td>
1746 <td>
1747
1748  
1749 </td>
1750 <td>
1751 <b></b>
1752  
1753 </td>
1754 </tr>
1755 </table>
1756
1757 <h4>
1758 <a name="S4410"></a>SEND
1759 MESSAGE resign_game</h4>
1760 NUMERIC TYPE (hex): 4410<p>
1761 Resign the game.
1762 </p>
1763 <table border="1" width="100%">
1764 <tr>
1765 <th width="10%">NAME</th>
1766 <th width="10%">TYPE</th>
1767 <th width="15%">DEFAULT</th>
1768 <th>DESCRIPTION</th>
1769 <th width="15%">DEC-GUARD</th>
1770 </tr>
1771 <tr>
1772 <td>channel</td>
1773 <td>U16</td>
1774 <td> </td>
1775 <td>
1776
1777  
1778 </td>
1779 <td>
1780 <b></b>
1781  
1782 </td>
1783 </tr>
1784 <tr>
1785 <td>player</td>
1786 <td>U8</td>
1787 <td> </td>
1788 <td>
1789
1790  
1791 </td>
1792 <td>
1793 <b></b>
1794  
1795 </td>
1796 </tr>
1797 </table>
1798
1799 <h4>
1800 <a name="S441a"></a>SEND
1801 MESSAGE set_teacher</h4>
1802 NUMERIC TYPE (hex): 441a<p>
1803 Change the teacher to somebody else (or possibly yourself == take it).
1804 </p>
1805 <table border="1" width="100%">
1806 <tr>
1807 <th width="10%">NAME</th>
1808 <th width="10%">TYPE</th>
1809 <th width="15%">DEFAULT</th>
1810 <th>DESCRIPTION</th>
1811 <th width="15%">DEC-GUARD</th>
1812 </tr>
1813 <tr>
1814 <td>channel</td>
1815 <td>U16</td>
1816 <td> </td>
1817 <td>
1818
1819  
1820 </td>
1821 <td>
1822 <b></b>
1823  
1824 </td>
1825 </tr>
1826 <tr>
1827 <td>name</td>
1828 <td>username</td>
1829 <td> </td>
1830 <td>
1831
1832  
1833 </td>
1834 <td>
1835 <b></b>
1836  
1837 </td>
1838 </tr>
1839 </table>
1840
1841 <h4>
1842 <a name="S4422"></a>SEND
1843 MESSAGE add_user</h4>
1844 NUMERIC TYPE (hex): 4422<p>
1845 Unclear. Maybe allow users to talk? No idea, really.
1846
1847 </p>
1848 <table border="1" width="100%">
1849 <tr>
1850 <th width="10%">NAME</th>
1851 <th width="10%">TYPE</th>
1852 <th width="15%">DEFAULT</th>
1853 <th>DESCRIPTION</th>
1854 <th width="15%">DEC-GUARD</th>
1855 </tr>
1856 <tr>
1857 <td>channel</td>
1858 <td>U16</td>
1859 <td> </td>
1860 <td>
1861
1862  
1863 </td>
1864 <td>
1865 <b></b>
1866  
1867 </td>
1868 </tr>
1869 <tr>
1870 <td>othername</td>
1871 <td>username</td>
1872 <td> </td>
1873 <td>
1874
1875  
1876 </td>
1877 <td>
1878 <b></b>
1879  
1880 </td>
1881 </tr>
1882 <tr>
1883 <td>name</td>
1884 <td>username</td>
1885 <td> </td>
1886 <td>; # gives user access to the game (to what? ;)
1887
1888  
1889 </td>
1890 <td>
1891 <b></b>
1892  
1893 </td>
1894 </tr>
1895 </table>
1896
1897 <h4>
1898 <a name="S4423"></a>SEND
1899 MESSAGE set_privacy</h4>
1900 NUMERIC TYPE (hex): 4423<p>
1901 Probably sets the "quiet" flag. Not checked.
1902 </p>
1903 <table border="1" width="100%">
1904 <tr>
1905 <th width="10%">NAME</th>
1906 <th width="10%">TYPE</th>
1907 <th width="15%">DEFAULT</th>
1908 <th>DESCRIPTION</th>
1909 <th width="15%">DEC-GUARD</th>
1910 </tr>
1911 <tr>
1912 <td>channel</td>
1913 <td>U16</td>
1914 <td> </td>
1915 <td>
1916
1917  
1918 </td>
1919 <td>
1920 <b></b>
1921  
1922 </td>
1923 </tr>
1924 <tr>
1925 <td>private</td>
1926 <td>U8</td>
1927 <td> </td>
1928 <td>
1929
1930  
1931 </td>
1932 <td>
1933 <b></b>
1934  
1935 </td>
1936 </tr>
1937 </table>
1938
1939 <h4>
1940 <a name="S4429"></a>SEND
1941 MESSAGE reject_chal</h4>
1942 NUMERIC TYPE (hex): 4429<p>
1943 Reject a challenge from a given user. Not checked.
1944
1945 </p>
1946 <table border="1" width="100%">
1947 <tr>
1948 <th width="10%">NAME</th>
1949 <th width="10%">TYPE</th>
1950 <th width="15%">DEFAULT</th>
1951 <th>DESCRIPTION</th>
1952 <th width="15%">DEC-GUARD</th>
1953 </tr>
1954 <tr>
1955 <td>channel</td>
1956 <td>U16</td>
1957 <td> </td>
1958 <td>
1959
1960  
1961 </td>
1962 <td>
1963 <b></b>
1964  
1965 </td>
1966 </tr>
1967 <tr>
1968 <td>name</td>
1969 <td>username</td>
1970 <td> </td>
1971 <td>
1972
1973  
1974 </td>
1975 <td>
1976 <b></b>
1977  
1978 </td>
1979 </tr>
1980 </table>
1981
1982 <h4>
1983 <a name="S4433"></a>SEND
1984 MESSAGE req_result</h4>
1985 NUMERIC TYPE (hex): 4433<p>
1986 I forgot.
1987
1988 </p>
1989 <table border="1" width="100%">
1990 <tr>
1991 <th width="10%">NAME</th>
1992 <th width="10%">TYPE</th>
1993 <th width="15%">DEFAULT</th>
1994 <th>DESCRIPTION</th>
1995 <th width="15%">DEC-GUARD</th>
1996 </tr>
1997 <tr>
1998 <td>channel</td>
1999 <td>U16</td>
2000 <td> </td>
2001 <td>
2002
2003  
2004 </td>
2005 <td>
2006 <b></b>
2007  
2008 </td>
2009 </tr>
2010 </table>
2011
2012 <h2>Structs mainly used in receive messages</h2>
2013
2014 <h4>STRUCTURE challenge_defaults</h4>
2015 <p>
2016 Send soon after log-in to set the defaults for game challenges.
2017 </p>
2018 <table border="1" width="100%">
2019 <tr>
2020 <th width="10%">NAME</th>
2021 <th width="10%">TYPE</th>
2022 <th width="15%">DEFAULT</th>
2023 <th>DESCRIPTION</th>
2024 <th width="15%">DEC-GUARD</th>
2025 </tr>
2026 <tr>
2027 <td>gametype</td>
2028 <td>U32</td>
2029 <td> </td>
2030 <td>
2031
2032  
2033 </td>
2034 <td>
2035 <b></b>
2036  
2037 </td>
2038 </tr>
2039 <tr>
2040 <td>size</td>
2041 <td>U32</td>
2042 <td> </td>
2043 <td>
2044
2045  
2046 </td>
2047 <td>
2048 <b></b>
2049  
2050 </td>
2051 </tr>
2052 <tr>
2053 <td>timesys</td>
2054 <td>U32</td>
2055 <td> </td>
2056 <td>
2057
2058  
2059 </td>
2060 <td>
2061 <b></b>
2062  
2063 </td>
2064 </tr>
2065 <tr>
2066 <td>time</td>
2067 <td>U32</td>
2068 <td> </td>
2069 <td>
2070
2071  
2072 </td>
2073 <td>
2074 <b></b>
2075  
2076 </td>
2077 </tr>
2078 <tr>
2079 <td>byo_time</td>
2080 <td>U32</td>
2081 <td> </td>
2082 <td>
2083
2084  
2085 </td>
2086 <td>
2087 <b></b>
2088  
2089 </td>
2090 </tr>
2091 <tr>
2092 <td>byo_periods</td>
2093 <td>U32</td>
2094 <td> </td>
2095 <td>
2096
2097  
2098 </td>
2099 <td>
2100 <b></b>
2101  
2102 </td>
2103 </tr>
2104 <tr>
2105 <td>can_time</td>
2106 <td>U32</td>
2107 <td> </td>
2108 <td>
2109
2110  
2111 </td>
2112 <td>
2113 <b></b>
2114  
2115 </td>
2116 </tr>
2117 <tr>
2118 <td>can_stones</td>
2119 <td>U32</td>
2120 <td> </td>
2121 <td>
2122
2123  
2124 </td>
2125 <td>
2126 <b></b>
2127  
2128 </td>
2129 </tr>
2130 </table>
2131
2132 <h4>STRUCTURE challenge</h4>
2133 CLASS: KGS::Challenge<br />
2134 <p>
2135 A challenge.
2136
2137 </p>
2138 <table border="1" width="100%">
2139 <tr>
2140 <th width="10%">NAME</th>
2141 <th width="10%">TYPE</th>
2142 <th width="15%">DEFAULT</th>
2143 <th>DESCRIPTION</th>
2144 <th width="15%">DEC-GUARD</th>
2145 </tr>
2146 <tr>
2147 <td>user1</td>
2148 <td>user</td>
2149 <td> </td>
2150 <td>
2151
2152  
2153 </td>
2154 <td>
2155 <b></b>
2156  
2157 </td>
2158 </tr>
2159 <tr>
2160 <td>user2</td>
2161 <td>user</td>
2162 <td> </td>
2163 <td>
2164
2165  
2166 </td>
2167 <td>
2168 <b></b>
2169  
2170 </td>
2171 </tr>
2172 <tr>
2173 <td>gametype</td>
2174 <td>U32</td>
2175 <td> </td>
2176 <td>
2177
2178  
2179 </td>
2180 <td>
2181 <b></b>
2182  
2183 </td>
2184 </tr>
2185 <tr>
2186 <td>rules</td>
2187 <td>rules</td>
2188 <td> </td>
2189 <td>
2190 Maybe the rules" are in TREE format. I forgot.
2191
2192  
2193 </td>
2194 <td>
2195 <b></b>
2196  
2197 </td>
2198 </tr>
2199 </table>
2200
2201 <h4>STRUCTURE game</h4>
2202 CLASS: KGS::Game<br />
2203 <p>
2204 Basic information about a game. Used in rooms for the gamelist and
2205 in games to detect when a game is saved, changed type (e.g. R =&gt; D)
2206 etc.
2207
2208 </p>
2209 <table border="1" width="100%">
2210 <tr>
2211 <th width="10%">NAME</th>
2212 <th width="10%">TYPE</th>
2213 <th width="15%">DEFAULT</th>
2214 <th>DESCRIPTION</th>
2215 <th width="15%">DEC-GUARD</th>
2216 </tr>
2217 <tr>
2218 <td>channel</td>
2219 <td>U16</td>
2220 <td> </td>
2221 <td>
2222
2223  
2224 </td>
2225 <td>
2226 <b></b>
2227  
2228 </td>
2229 </tr>
2230 <tr>
2231 <td>type</td>
2232 <td>U8</td>
2233 <td> </td>
2234 <td>
2235
2236  
2237 </td>
2238 <td>
2239 <b></b>
2240  
2241 </td>
2242 </tr>
2243 <tr>
2244 <td>user1</td>
2245 <td>user</td>
2246 <td> </td>
2247 <td>
2248 White
2249
2250  
2251 </td>
2252 <td>
2253 <b></b>
2254  
2255 </td>
2256 </tr>
2257 <tr>
2258 <td>user2</td>
2259 <td>user</td>
2260 <td> </td>
2261 <td>
2262 Black
2263
2264  
2265 </td>
2266 <td>
2267 <b></b>
2268  
2269 </td>
2270 </tr>
2271 <tr>
2272 <td>user3</td>
2273 <td>user</td>
2274 <td> </td>
2275 <td>
2276 Owner
2277
2278  
2279 </td>
2280 <td>
2281 <b></b>
2282  
2283 </td>
2284 </tr>
2285 <tr>
2286 <td>size</td>
2287 <td>U8</td>
2288 <td> </td>
2289 <td>
2290
2291  
2292 </td>
2293 <td>
2294 <b></b>
2295  
2296 </td>
2297 </tr>
2298 <tr>
2299 <td>handicap</td>
2300 <td>I8</td>
2301 <td> </td>
2302 <td>
2303 &lt; 0 not fully setup
2304
2305  
2306 </td>
2307 <td>
2308 <b></b>
2309  
2310 </td>
2311 </tr>
2312 <tr>
2313 <td>komi</td>
2314 <td>komi16</td>
2315 <td> </td>
2316 <td>
2317
2318  
2319 </td>
2320 <td>
2321 <b></b>
2322  
2323 </td>
2324 </tr>
2325 <tr>
2326 <td>moves</td>
2327 <td>I16</td>
2328 <td> </td>
2329 <td>
2330 This field reflects either the movenum or the score, sorry, not even guards help, as
2331 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
2332 score (NOT score16!) (arg²).
2333
2334  
2335 </td>
2336 <td>
2337 <b></b>
2338  
2339 </td>
2340 </tr>
2341 <tr>
2342 <td>flags</td>
2343 <td>U16</td>
2344 <td> </td>
2345 <td>
2346
2347  
2348 </td>
2349 <td>
2350 <b></b>
2351  
2352 </td>
2353 </tr>
2354 <tr>
2355 <td>observers</td>
2356 <td>U32</td>
2357 <td> </td>
2358 <td>
2359
2360  
2361 </td>
2362 <td>
2363 <b></b>
2364  
2365 </td>
2366 </tr>
2367 <tr>
2368 <td>saved</td>
2369 <td>flag</td>
2370 <td> </td>
2371 <td>
2372
2373  
2374 </td>
2375 <td>
2376 <b></b>
2377  
2378 </td>
2379 </tr>
2380 <tr>
2381 <td>notes</td>
2382 <td>STRING</td>
2383 <td> </td>
2384 <td>
2385
2386  
2387 </td>
2388 <td>
2389 <b>handicap</b> &lt; 0
2390  
2391 </td>
2392 </tr>
2393 </table>
2394
2395 <h4>STRUCTURE room_obs</h4>
2396 <p>
2397 Obsolete.
2398
2399 </p>
2400 <table border="1" width="100%">
2401 <tr>
2402 <th width="10%">NAME</th>
2403 <th width="10%">TYPE</th>
2404 <th width="15%">DEFAULT</th>
2405 <th>DESCRIPTION</th>
2406 <th width="15%">DEC-GUARD</th>
2407 </tr>
2408 <tr>
2409 <td>name</td>
2410 <td>roomname</td>
2411 <td> </td>
2412 <td>
2413
2414  
2415 </td>
2416 <td>
2417 <b></b>
2418  
2419 </td>
2420 </tr>
2421 <tr>
2422 <td>channel</td>
2423 <td>U16</td>
2424 <td> </td>
2425 <td>
2426
2427  
2428 </td>
2429 <td>
2430 <b></b>
2431  
2432 </td>
2433 </tr>
2434 <tr>
2435 <td>flags</td>
2436 <td>U32</td>
2437 <td> </td>
2438 <td>
2439
2440  
2441 </td>
2442 <td>
2443 <b></b>
2444  
2445 </td>
2446 </tr>
2447 <tr>
2448 <td>users</td>
2449 <td>U32</td>
2450 <td> </td>
2451 <td>
2452
2453  
2454 </td>
2455 <td>
2456 <b></b>
2457  
2458 </td>
2459 </tr>
2460 </table>
2461
2462 <h4>STRUCTURE room</h4>
2463 CLASS: KGS::Room<br />
2464 <p>
2465 </p>
2466 <table border="1" width="100%">
2467 <tr>
2468 <th width="10%">NAME</th>
2469 <th width="10%">TYPE</th>
2470 <th width="15%">DEFAULT</th>
2471 <th>DESCRIPTION</th>
2472 <th width="15%">DEC-GUARD</th>
2473 </tr>
2474 <tr>
2475 <td>channel</td>
2476 <td>U16</td>
2477 <td> </td>
2478 <td>
2479
2480  
2481 </td>
2482 <td>
2483 <b></b>
2484  
2485 </td>
2486 </tr>
2487 <tr>
2488 <td>flags</td>
2489 <td>U8</td>
2490 <td> </td>
2491 <td>
2492
2493  
2494 </td>
2495 <td>
2496 <b></b>
2497  
2498 </td>
2499 </tr>
2500 <tr>
2501 <td>group</td>
2502 <td>U8</td>
2503 <td> </td>
2504 <td>
2505
2506  
2507 </td>
2508 <td>
2509 <b></b>
2510  
2511 </td>
2512 </tr>
2513 <tr>
2514 <td>users</td>
2515 <td>U16</td>
2516 <td> </td>
2517 <td>
2518
2519  
2520 </td>
2521 <td>
2522 <b></b>
2523  
2524 </td>
2525 </tr>
2526 <tr>
2527 <td>games</td>
2528 <td>U16</td>
2529 <td> </td>
2530 <td>
2531
2532  
2533 </td>
2534 <td>
2535 <b></b>
2536  
2537 </td>
2538 </tr>
2539 <tr>
2540 <td>name</td>
2541 <td>STRING</td>
2542 <td> </td>
2543 <td>
2544
2545  
2546 </td>
2547 <td>
2548 <b></b>
2549  
2550 </td>
2551 </tr>
2552 </table>
2553
2554 <h4>STRUCTURE scorevalues</h4>
2555 CLASS: KGS::Score<br />
2556 <p>
2557 </p>
2558 <table border="1" width="100%">
2559 <tr>
2560 <th width="10%">NAME</th>
2561 <th width="10%">TYPE</th>
2562 <th width="15%">DEFAULT</th>
2563 <th>DESCRIPTION</th>
2564 <th width="15%">DEC-GUARD</th>
2565 </tr>
2566 <tr>
2567 <td>score</td>
2568 <td>score32</td>
2569 <td> </td>
2570 <td>
2571
2572  
2573 </td>
2574 <td>
2575 <b></b>
2576  
2577 </td>
2578 </tr>
2579 <tr>
2580 <td>territory</td>
2581 <td>U32</td>
2582 <td> </td>
2583 <td>
2584
2585  
2586 </td>
2587 <td>
2588 <b></b>
2589  
2590 </td>
2591 </tr>
2592 <tr>
2593 <td>captures</td>
2594 <td>U32</td>
2595 <td> </td>
2596 <td>
2597
2598  
2599 </td>
2600 <td>
2601 <b></b>
2602  
2603 </td>
2604 </tr>
2605 <tr>
2606 <td>i3</td>
2607 <td>U32</td>
2608 <td> </td>
2609 <td>
2610
2611  
2612 </td>
2613 <td>
2614 <b></b>
2615  
2616 </td>
2617 </tr>
2618 <tr>
2619 <td>f2</td>
2620 <td>U32</td>
2621 <td> </td>
2622 <td>
2623
2624  
2625 </td>
2626 <td>
2627 <b></b>
2628  
2629 </td>
2630 </tr>
2631 <tr>
2632 <td>komi</td>
2633 <td>komi324</td>
2634 <td> </td>
2635 <td>
2636
2637  
2638 </td>
2639 <td>
2640 <b></b>
2641  
2642 </td>
2643 </tr>
2644 <tr>
2645 <td>i4</td>
2646 <td>U32</td>
2647 <td> </td>
2648 <td>
2649 Apparently the i3, f2, i4 are zero.
2650
2651  
2652 </td>
2653 <td>
2654 <b></b>
2655  
2656 </td>
2657 </tr>
2658 </table>
2659
2660 <h4>STRUCTURE game_record</h4>
2661 CLASS: KGS::GameRecord<br />
2662 <p>
2663 <p>A single game record entry, as seen in <a href="#R0008">userinfo(0008)</a>.</p>
2664 </p>
2665 <table border="1" width="100%">
2666 <tr>
2667 <th width="10%">NAME</th>
2668 <th width="10%">TYPE</th>
2669 <th width="15%">DEFAULT</th>
2670 <th>DESCRIPTION</th>
2671 <th width="15%">DEC-GUARD</th>
2672 </tr>
2673 <tr>
2674 <td>timestamp</td>
2675 <td>timestamp</td>
2676 <td> </td>
2677 <td>
2678 Time this game was played.
2679
2680  
2681 </td>
2682 <td>
2683 <b></b>
2684  
2685 </td>
2686 </tr>
2687 <tr>
2688 <td>flags</td>
2689 <td>U8</td>
2690 <td> </td>
2691 <td>
2692 High four bits are handicap, low four bits are gametype (encoded strangely? unclear).
2693
2694  
2695 </td>
2696 <td>
2697 <b></b>
2698  
2699 </td>
2700 </tr>
2701 <tr>
2702 <td>user1</td>
2703 <td>user</td>
2704 <td> </td>
2705 <td>
2706 White, flags contain low 8 bits of revision (bits 16-23).
2707
2708  
2709 </td>
2710 <td>
2711 <b></b>
2712  
2713 </td>
2714 </tr>
2715 <tr>
2716 <td>user2</td>
2717 <td>user</td>
2718 <td> </td>
2719 <td>
2720 Black, flags contain high 8 bits of revision (bits 16-23).
2721
2722  
2723 </td>
2724 <td>
2725 <b></b>
2726  
2727 </td>
2728 </tr>
2729 <tr>
2730 <td>user3</td>
2731 <td>user</td>
2732 <td> </td>
2733 <td>
2734 Owner (or empty)
2735
2736  
2737 </td>
2738 <td>
2739 <b></b>
2740  
2741 </td>
2742 </tr>
2743 <tr>
2744 <td>komi</td>
2745 <td>komi16</td>
2746 <td> </td>
2747 <td>
2748
2749  
2750 </td>
2751 <td>
2752 <b></b>
2753  
2754 </td>
2755 </tr>
2756 <tr>
2757 <td>score</td>
2758 <td>score16</td>
2759 <td> </td>
2760 <td>
2761
2762  
2763 </td>
2764 <td>
2765 <b></b>
2766  
2767 </td>
2768 </tr>
2769 <tr>
2770 <td>status</td>
2771 <td>U8</td>
2772 <td> </td>
2773 <td>
2774 0x80 inprogress
2775
2776  
2777 </td>
2778 <td>
2779 <b></b>
2780  
2781 </td>
2782 </tr>
2783 </table>
2784
2785 <h2>Receive messages</h2>
2786
2787 <h4>
2788 <a name="R0001"></a>RECV
2789 MESSAGE login</h4>
2790 NUMERIC TYPE (hex): 0001
2791 (possibly in response to
2792 <a href="#S0000">login(0000)</a>
2793 )
2794 <p>
2795 </p>
2796 <table border="1" width="100%">
2797 <tr>
2798 <th width="10%">NAME</th>
2799 <th width="10%">TYPE</th>
2800 <th width="15%">DEFAULT</th>
2801 <th>DESCRIPTION</th>
2802 <th width="15%">DEC-GUARD</th>
2803 </tr>
2804 <tr>
2805 <td>result</td>
2806 <td>CONSTANT</td>
2807 <td>"login ok" </td>
2808 <td>
2809
2810  
2811 </td>
2812 <td>
2813 <b></b>
2814  
2815 </td>
2816 </tr>
2817 <tr>
2818 <td>success</td>
2819 <td>CONSTANT</td>
2820 <td>1 </td>
2821 <td>
2822
2823  
2824 </td>
2825 <td>
2826 <b></b>
2827  
2828 </td>
2829 </tr>
2830 </table>
2831
2832 <h4>
2833 <a name="R0002"></a>RECV
2834 MESSAGE login</h4>
2835 NUMERIC TYPE (hex): 0002
2836 (possibly in response to
2837 <a href="#S0000">login(0000)</a>
2838 )
2839 <p>
2840 </p>
2841 <table border="1" width="100%">
2842 <tr>
2843 <th width="10%">NAME</th>
2844 <th width="10%">TYPE</th>
2845 <th width="15%">DEFAULT</th>
2846 <th>DESCRIPTION</th>
2847 <th width="15%">DEC-GUARD</th>
2848 </tr>
2849 <tr>
2850 <td>result</td>
2851 <td>CONSTANT</td>
2852 <td>"guest login ok" </td>
2853 <td>
2854
2855  
2856 </td>
2857 <td>
2858 <b></b>
2859  
2860 </td>
2861 </tr>
2862 <tr>
2863 <td>success</td>
2864 <td>CONSTANT</td>
2865 <td>1 </td>
2866 <td>
2867
2868  
2869 </td>
2870 <td>
2871 <b></b>
2872  
2873 </td>
2874 </tr>
2875 </table>
2876
2877 <h4>
2878 <a name="R0003"></a>RECV
2879 MESSAGE login</h4>
2880 NUMERIC TYPE (hex): 0003
2881 (possibly in response to
2882 <a href="#S0000">login(0000)</a>
2883 )
2884 <p>
2885 </p>
2886 <table border="1" width="100%">
2887 <tr>
2888 <th width="10%">NAME</th>
2889 <th width="10%">TYPE</th>
2890 <th width="15%">DEFAULT</th>
2891 <th>DESCRIPTION</th>
2892 <th width="15%">DEC-GUARD</th>
2893 </tr>
2894 <tr>
2895 <td>result</td>
2896 <td>CONSTANT</td>
2897 <td>"login error 3" </td>
2898 <td>
2899 ** maybe more following? **
2900
2901  
2902 </td>
2903 <td>
2904 <b></b>
2905  
2906 </td>
2907 </tr>
2908 </table>
2909
2910 <h4>
2911 <a name="R0004"></a>RECV
2912 MESSAGE login</h4>
2913 NUMERIC TYPE (hex): 0004
2914 (possibly in response to
2915 <a href="#S0000">login(0000)</a>
2916 )
2917 <p>
2918 </p>
2919 <table border="1" width="100%">
2920 <tr>
2921 <th width="10%">NAME</th>
2922 <th width="10%">TYPE</th>
2923 <th width="15%">DEFAULT</th>
2924 <th>DESCRIPTION</th>
2925 <th width="15%">DEC-GUARD</th>
2926 </tr>
2927 <tr>
2928 <td>result</td>
2929 <td>CONSTANT</td>
2930 <td>"wrong password" </td>
2931 <td>
2932 ** maybe more following? **
2933
2934  
2935 </td>
2936 <td>
2937 <b></b>
2938  
2939 </td>
2940 </tr>
2941 </table>
2942
2943 <h4>
2944 <a name="R0005"></a>RECV
2945 MESSAGE login</h4>
2946 NUMERIC TYPE (hex): 0005
2947 (possibly in response to
2948 <a href="#S0000">login(0000)</a>
2949 )
2950 <p>
2951 </p>
2952 <table border="1" width="100%">
2953 <tr>
2954 <th width="10%">NAME</th>
2955 <th width="10%">TYPE</th>
2956 <th width="15%">DEFAULT</th>
2957 <th>DESCRIPTION</th>
2958 <th width="15%">DEC-GUARD</th>
2959 </tr>
2960 <tr>
2961 <td>result</td>
2962 <td>CONSTANT</td>
2963 <td>"user unknown" </td>
2964 <td>
2965 ** maybe more following? **
2966
2967  
2968 </td>
2969 <td>
2970 <b></b>
2971  
2972 </td>
2973 </tr>
2974 </table>
2975
2976 <h4>
2977 <a name="R0006"></a>RECV
2978 MESSAGE login</h4>
2979 NUMERIC TYPE (hex): 0006
2980 (possibly in response to
2981 <a href="#S0000">login(0000)</a>
2982 )
2983 <p>
2984 </p>
2985 <table border="1" width="100%">
2986 <tr>
2987 <th width="10%">NAME</th>
2988 <th width="10%">TYPE</th>
2989 <th width="15%">DEFAULT</th>
2990 <th>DESCRIPTION</th>
2991 <th width="15%">DEC-GUARD</th>
2992 </tr>
2993 <tr>
2994 <td>result</td>
2995 <td>CONSTANT</td>
2996 <td>"user exists" </td>
2997 <td>
2998 ** maybe more following? **
2999
3000  
3001 </td>
3002 <td>
3003 <b></b>
3004  
3005 </td>
3006 </tr>
3007 </table>
3008
3009 <h4>
3010 <a name="R0008"></a>RECV
3011 MESSAGE userinfo</h4>
3012 NUMERIC TYPE (hex): 0008
3013 (possibly in response to
3014 <a href="#S0007">req_userinfo(0007)</a>
3015 )
3016 <p>
3017 User info.
3018 </p>
3019 <table border="1" width="100%">
3020 <tr>
3021 <th width="10%">NAME</th>
3022 <th width="10%">TYPE</th>
3023 <th width="15%">DEFAULT</th>
3024 <th>DESCRIPTION</th>
3025 <th width="15%">DEC-GUARD</th>
3026 </tr>
3027 <tr>
3028 <td>user</td>
3029 <td>user</td>
3030 <td> </td>
3031 <td>
3032
3033  
3034 </td>
3035 <td>
3036 <b></b>
3037  
3038 </td>
3039 </tr>
3040 <tr>
3041 <td>_unused</td>
3042 <td>U64</td>
3043 <td> </td>
3044 <td>
3045
3046  
3047 </td>
3048 <td>
3049 <b></b>
3050  
3051 </td>
3052 </tr>
3053 <tr>
3054 <td>realname</td>
3055 <td>realname</td>
3056 <td> </td>
3057 <td>
3058
3059  
3060 </td>
3061 <td>
3062 <b></b>
3063  
3064 </td>
3065 </tr>
3066 <tr>
3067 <td>email</td>
3068 <td>email</td>
3069 <td> </td>
3070 <td>
3071
3072  
3073 </td>
3074 <td>
3075 <b></b>
3076  
3077 </td>
3078 </tr>
3079 <tr>
3080 <td>info</td>
3081 <td>userinfo</td>
3082 <td> </td>
3083 <td>
3084
3085  
3086 </td>
3087 <td>
3088 <b></b>
3089  
3090 </td>
3091 </tr>
3092 <tr>
3093 <td>homepage</td>
3094 <td>url</td>
3095 <td> </td>
3096 <td>
3097
3098  
3099 </td>
3100 <td>
3101 <b></b>
3102  
3103 </td>
3104 </tr>
3105 <tr>
3106 <td>regdate</td>
3107 <td>timestamp</td>
3108 <td> </td>
3109 <td>
3110 When the user registered (0 == never registered).
3111
3112  
3113 </td>
3114 <td>
3115 <b></b>
3116  
3117 </td>
3118 </tr>
3119 <tr>
3120 <td>lastlogin</td>
3121 <td>timestamp</td>
3122 <td> </td>
3123 <td>
3124 When the user logged in for the last time.
3125
3126  
3127 </td>
3128 <td>
3129 <b></b>
3130  
3131 </td>
3132 </tr>
3133 </table>
3134
3135 <h4>
3136 <a name="R0018"></a>RECV
3137 MESSAGE login</h4>
3138 NUMERIC TYPE (hex): 0018
3139 (possibly in response to
3140 <a href="#S0000">login(0000)</a>
3141 )
3142 <p>
3143 </p>
3144 <table border="1" width="100%">
3145 <tr>
3146 <th width="10%">NAME</th>
3147 <th width="10%">TYPE</th>
3148 <th width="15%">DEFAULT</th>
3149 <th>DESCRIPTION</th>
3150 <th width="15%">DEC-GUARD</th>
3151 </tr>
3152 <tr>
3153 <td>result</td>
3154 <td>CONSTANT</td>
3155 <td>"login error 18" </td>
3156 <td>
3157 ** maybe more following? **
3158
3159  
3160 </td>
3161 <td>
3162 <b></b>
3163  
3164 </td>
3165 </tr>
3166 </table>
3167
3168 <h4>
3169 <a name="R0022"></a>RECV
3170 MESSAGE login</h4>
3171 NUMERIC TYPE (hex): 0022
3172 (possibly in response to
3173 <a href="#S0000">login(0000)</a>
3174 )
3175 <p>
3176 I was blocked sooo many times for developing this client that it was
3177 easy to figure out. The KGS admins sure need no extra nazi training
3178 :(
3179 </p>
3180 <table border="1" width="100%">
3181 <tr>
3182 <th width="10%">NAME</th>
3183 <th width="10%">TYPE</th>
3184 <th width="15%">DEFAULT</th>
3185 <th>DESCRIPTION</th>
3186 <th width="15%">DEC-GUARD</th>
3187 </tr>
3188 <tr>
3189 <td>reason</td>
3190 <td>STRING</td>
3191 <td> </td>
3192 <td>
3193
3194  
3195 </td>
3196 <td>
3197 <b></b>
3198  
3199 </td>
3200 </tr>
3201 <tr>
3202 <td>result</td>
3203 <td>CONSTANT</td>
3204 <td>"user or ip blocked" </td>
3205 <td>
3206
3207  
3208 </td>
3209 <td>
3210 <b></b>
3211  
3212 </td>
3213 </tr>
3214 </table>
3215
3216 <h4>
3217 <a name="R0013"></a>RECV
3218 MESSAGE msg_chat</h4>
3219 NUMERIC TYPE (hex): 0013<p>
3220 </p>
3221 <table border="1" width="100%">
3222 <tr>
3223 <th width="10%">NAME</th>
3224 <th width="10%">TYPE</th>
3225 <th width="15%">DEFAULT</th>
3226 <th>DESCRIPTION</th>
3227 <th width="15%">DEC-GUARD</th>
3228 </tr>
3229 <tr>
3230 <td>user1</td>
3231 <td>username</td>
3232 <td> </td>
3233 <td>
3234
3235  
3236 </td>
3237 <td>
3238 <b></b>
3239  
3240 </td>
3241 </tr>
3242 <tr>
3243 <td>user2</td>
3244 <td>username</td>
3245 <td> </td>
3246 <td>
3247
3248  
3249 </td>
3250 <td>
3251 <b></b>
3252  
3253 </td>
3254 </tr>
3255 <tr>
3256 <td>message</td>
3257 <td>STRING</td>
3258 <td> </td>
3259 <td>
3260
3261  
3262 </td>
3263 <td>
3264 <b></b>
3265  
3266 </td>
3267 </tr>
3268 </table>
3269
3270 <h4>
3271 <a name="R0015"></a>RECV
3272 MESSAGE stats</h4>
3273 NUMERIC TYPE (hex): 0015
3274 (possibly in response to
3275 <a href="#S0014">req_stats(0014)</a>
3276 )
3277 <p>
3278 </p>
3279 <table border="1" width="100%">
3280 <tr>
3281 <th width="10%">NAME</th>
3282 <th width="10%">TYPE</th>
3283 <th width="15%">DEFAULT</th>
3284 <th>DESCRIPTION</th>
3285 <th width="15%">DEC-GUARD</th>
3286 </tr>
3287 <tr>
3288 <td>ver_major</td>
3289 <td>U16</td>
3290 <td> </td>
3291 <td>
3292
3293  
3294 </td>
3295 <td>
3296 <b></b>
3297  
3298 </td>
3299 </tr>
3300 <tr>
3301 <td>ver_minor</td>
3302 <td>U16</td>
3303 <td> </td>
3304 <td>
3305
3306  
3307 </td>
3308 <td>
3309 <b></b>
3310  
3311 </td>
3312 </tr>
3313 <tr>
3314 <td>ver_micro</td>
3315 <td>U16</td>
3316 <td> </td>
3317 <td>
3318
3319  
3320 </td>
3321 <td>
3322 <b></b>
3323  
3324 </td>
3325 </tr>
3326 <tr>
3327 <td>boot_time</td>
3328 <td>timestamp</td>
3329 <td> </td>
3330 <td>
3331
3332  
3333 </td>
3334 <td>
3335 <b></b>
3336  
3337 </td>
3338 </tr>
3339 <tr>
3340 <td>users_cur</td>
3341 <td>U32</td>
3342 <td> </td>
3343 <td>
3344
3345  
3346 </td>
3347 <td>
3348 <b></b>
3349  
3350 </td>
3351 </tr>
3352 <tr>
3353 <td>users_max</td>
3354 <td>U32</td>
3355 <td> </td>
3356 <td>
3357
3358  
3359 </td>
3360 <td>
3361 <b></b>
3362  
3363 </td>
3364 </tr>
3365 <tr>
3366 <td>users_lim</td>
3367 <td>U32</td>
3368 <td> </td>
3369 <td>
3370
3371  
3372 </td>
3373 <td>
3374 <b></b>
3375  
3376 </td>
3377 </tr>
3378 <tr>
3379 <td>accts_cur</td>
3380 <td>U32</td>
3381 <td> </td>
3382 <td>
3383
3384  
3385 </td>
3386 <td>
3387 <b></b>
3388  
3389 </td>
3390 </tr>
3391 <tr>
3392 <td>accts_max</td>
3393 <td>U32</td>
3394 <td> </td>
3395 <td>
3396
3397  
3398 </td>
3399 <td>
3400 <b></b>
3401  
3402 </td>
3403 </tr>
3404 <tr>
3405 <td>unknown1</td>
3406 <td>U32</td>
3407 <td> </td>
3408 <td>
3409
3410  
3411 </td>
3412 <td>
3413 <b></b>
3414  
3415 </td>
3416 </tr>
3417 <tr>
3418 <td>work_max</td>
3419 <td>U32</td>
3420 <td> </td>
3421 <td>
3422
3423  
3424 </td>
3425 <td>
3426 <b></b>
3427  
3428 </td>
3429 </tr>
3430 <tr>
3431 <td>rooms_cur</td>
3432 <td>U32</td>
3433 <td> </td>
3434 <td>
3435
3436  
3437 </td>
3438 <td>
3439 <b></b>
3440  
3441 </td>
3442 </tr>
3443 <tr>
3444 <td>rooms_max</td>
3445 <td>U32</td>
3446 <td> </td>
3447 <td>
3448
3449  
3450 </td>
3451 <td>
3452 <b></b>
3453  
3454 </td>
3455 </tr>
3456 <tr>
3457 <td>rooms_lim</td>
3458 <td>U32</td>
3459 <td> </td>
3460 <td>
3461
3462  
3463 </td>
3464 <td>
3465 <b></b>
3466  
3467 </td>
3468 </tr>
3469 <tr>
3470 <td>games_cur</td>
3471 <td>U32</td>
3472 <td> </td>
3473 <td>
3474
3475  
3476 </td>
3477 <td>
3478 <b></b>
3479  
3480 </td>
3481 </tr>
3482 <tr>
3483 <td>games_max</td>
3484 <td>U32</td>
3485 <td> </td>
3486 <td>
3487
3488  
3489 </td>
3490 <td>
3491 <b></b>
3492  
3493 </td>
3494 </tr>
3495 <tr>
3496 <td>games_lim</td>
3497 <td>U32</td>
3498 <td> </td>
3499 <td>
3500
3501  
3502 </td>
3503 <td>
3504 <b></b>
3505  
3506 </td>
3507 </tr>
3508 <tr>
3509 <td>results_cur</td>
3510 <td>U32</td>
3511 <td> </td>
3512 <td>
3513
3514  
3515 </td>
3516 <td>
3517 <b></b>
3518  
3519 </td>
3520 </tr>
3521 <tr>
3522 <td>results_max</td>
3523 <td>U32</td>
3524 <td> </td>
3525 <td>
3526
3527  
3528 </td>
3529 <td>
3530 <b></b>
3531  
3532 </td>
3533 </tr>
3534 <tr>
3535 <td>unknown2</td>
3536 <td>U32</td>
3537 <td> </td>
3538 <td>
3539
3540  
3541 </td>
3542 <td>
3543 <b></b>
3544  
3545 </td>
3546 </tr>
3547 <tr>
3548 <td>params_cur</td>
3549 <td>U32</td>
3550 <td> </td>
3551 <td>
3552
3553  
3554 </td>
3555 <td>
3556 <b></b>
3557  
3558 </td>
3559 </tr>
3560 <tr>
3561 <td>params_max</td>
3562 <td>U32</td>
3563 <td> </td>
3564 <td>
3565
3566  
3567 </td>
3568 <td>
3569 <b></b>
3570  
3571 </td>
3572 </tr>
3573 <tr>
3574 <td>bytes_in</td>
3575 <td>U64</td>
3576 <td> </td>
3577 <td>
3578
3579  
3580 </td>
3581 <td>
3582 <b></b>
3583  
3584 </td>
3585 </tr>
3586 <tr>
3587 <td>packets_in</td>
3588 <td>U64</td>
3589 <td> </td>
3590 <td>
3591
3592  
3593 </td>
3594 <td>
3595 <b></b>
3596  
3597 </td>
3598 </tr>
3599 <tr>
3600 <td>bytes_out</td>
3601 <td>U64</td>
3602 <td> </td>
3603 <td>
3604
3605  
3606 </td>
3607 <td>
3608 <b></b>
3609  
3610 </td>
3611 </tr>
3612 <tr>
3613 <td>packets_out</td>
3614 <td>U64</td>
3615 <td> </td>
3616 <td>
3617
3618  
3619 </td>
3620 <td>
3621 <b></b>
3622  
3623 </td>
3624 </tr>
3625 </table>
3626
3627 <h4>
3628 <a name="R0016"></a>RECV
3629 MESSAGE idle_warn</h4>
3630 NUMERIC TYPE (hex): 0016<p>
3631 idle warning, autologout soon (10 minutes...)
3632 </p>
3633 <table border="1" width="100%">
3634 <tr>
3635 <th width="10%">NAME</th>
3636 <th width="10%">TYPE</th>
3637 <th width="15%">DEFAULT</th>
3638 <th>DESCRIPTION</th>
3639 <th width="15%">DEC-GUARD</th>
3640 </tr>
3641 </table>
3642
3643 <h4>
3644 <a name="R001b"></a>RECV
3645 MESSAGE timewarning_default</h4>
3646 NUMERIC TYPE (hex): 001b
3647 (possibly in response to
3648 <a href="#S0000">login(0000)</a>
3649 )
3650 <p>
3651 WILD guess
3652 </p>
3653 <table border="1" width="100%">
3654 <tr>
3655 <th width="10%">NAME</th>
3656 <th width="10%">TYPE</th>
3657 <th width="15%">DEFAULT</th>
3658 <th>DESCRIPTION</th>
3659 <th width="15%">DEC-GUARD</th>
3660 </tr>
3661 <tr>
3662 <td>channel</td>
3663 <td>U16</td>
3664 <td> </td>
3665 <td>
3666
3667  
3668 </td>
3669 <td>
3670 <b></b>
3671  
3672 </td>
3673 </tr>
3674 <tr>
3675 <td>time</td>
3676 <td>U16</td>
3677 <td> </td>
3678 <td>
3679
3680  
3681 </td>
3682 <td>
3683 <b></b>
3684  
3685 </td>
3686 </tr>
3687 </table>
3688
3689 <h4>
3690 <a name="R001c"></a>RECV
3691 MESSAGE idle_err</h4>
3692 NUMERIC TYPE (hex): 001c<p>
3693 autologout
3694 </p>
3695 <table border="1" width="100%">
3696 <tr>
3697 <th width="10%">NAME</th>
3698 <th width="10%">TYPE</th>
3699 <th width="15%">DEFAULT</th>
3700 <th>DESCRIPTION</th>
3701 <th width="15%">DEC-GUARD</th>
3702 </tr>
3703 </table>
3704
3705 <h4>
3706 <a name="R001d"></a>RECV
3707 MESSAGE ping</h4>
3708 NUMERIC TYPE (hex): 001d<p>
3709 Sent by the server regularly, but not answering them
3710 isn't valid. Strange form of keepalive?
3711 </p>
3712 <table border="1" width="100%">
3713 <tr>
3714 <th width="10%">NAME</th>
3715 <th width="10%">TYPE</th>
3716 <th width="15%">DEFAULT</th>
3717 <th>DESCRIPTION</th>
3718 <th width="15%">DEC-GUARD</th>
3719 </tr>
3720 </table>
3721
3722 <h4>
3723 <a name="R001e"></a>RECV
3724 MESSAGE usergraph</h4>
3725 NUMERIC TYPE (hex): 001e
3726 (possibly in response to
3727 <a href="#S001e">req_usergraph(001e)</a>
3728 )
3729 <p>
3730 User graph data.
3731 </p>
3732 <table border="1" width="100%">
3733 <tr>
3734 <th width="10%">NAME</th>
3735 <th width="10%">TYPE</th>
3736 <th width="15%">DEFAULT</th>
3737 <th>DESCRIPTION</th>
3738 <th width="15%">DEC-GUARD</th>
3739 </tr>
3740 <tr>
3741 <td>data</td>
3742 <td>I16</td>
3743 <td> </td>
3744 <td>
3745 If empty, no graph is available. The unit seems to
3746 be centi-kyu, with 1 dan == 0, 2 dan == 100, 1 kyu == -100.
3747 There is probably one entry per day, the newest one last.
3748
3749  
3750 </td>
3751 <td>
3752 <b></b>
3753  
3754 </td>
3755 </tr>
3756 </table>
3757
3758 <h4>
3759 <a name="R001f"></a>RECV
3760 MESSAGE memo</h4>
3761 NUMERIC TYPE (hex): 001f
3762 (possibly in response to
3763 <a href="#S001f">fetch_memos(001f)</a>
3764 )
3765 <p>
3766 Unclear. "Leave Message"?
3767 6 strings following.
3768 </p>
3769 <table border="1" width="100%">
3770 <tr>
3771 <th width="10%">NAME</th>
3772 <th width="10%">TYPE</th>
3773 <th width="15%">DEFAULT</th>
3774 <th>DESCRIPTION</th>
3775 <th width="15%">DEC-GUARD</th>
3776 </tr>
3777 <tr>
3778 <td>s1</td>
3779 <td>STRING</td>
3780 <td> </td>
3781 <td>
3782
3783  
3784 </td>
3785 <td>
3786 <b></b>
3787  
3788 </td>
3789 </tr>
3790 <tr>
3791 <td>s2</td>
3792 <td>STRING</td>
3793 <td> </td>
3794 <td>
3795
3796  
3797 </td>
3798 <td>
3799 <b></b>
3800  
3801 </td>
3802 </tr>
3803 <tr>
3804 <td>s3</td>
3805 <td>STRING</td>
3806 <td> </td>
3807 <td>
3808
3809  
3810 </td>
3811 <td>
3812 <b></b>
3813  
3814 </td>
3815 </tr>
3816 <tr>
3817 <td>s4</td>
3818 <td>STRING</td>
3819 <td> </td>
3820 <td>
3821
3822  
3823 </td>
3824 <td>
3825 <b></b>
3826  
3827 </td>
3828 </tr>
3829 <tr>
3830 <td>s5</td>
3831 <td>STRING</td>
3832 <td> </td>
3833 <td>
3834
3835  
3836 </td>
3837 <td>
3838 <b></b>
3839  
3840 </td>
3841 </tr>
3842 <tr>
3843 <td>s6</td>
3844 <td>STRING</td>
3845 <td> </td>
3846 <td>
3847
3848  
3849 </td>
3850 <td>
3851 <b></b>
3852  
3853 </td>
3854 </tr>
3855 </table>
3856
3857 <h4>
3858 <a name="R0021"></a>RECV
3859 MESSAGE userpic</h4>
3860 NUMERIC TYPE (hex): 0021
3861 (possibly in response to
3862 <a href="#S0021">req_pic(0021)</a>
3863 )
3864 <p>
3865 </p>
3866 <table border="1" width="100%">
3867 <tr>
3868 <th width="10%">NAME</th>
3869 <th width="10%">TYPE</th>
3870 <th width="15%">DEFAULT</th>
3871 <th>DESCRIPTION</th>
3872 <th width="15%">DEC-GUARD</th>
3873 </tr>
3874 <tr>
3875 <td>name</td>
3876 <td>username</td>
3877 <td> </td>
3878 <td>
3879 Reply to pic_req, contains an image in jpeg format.
3880
3881  
3882 </td>
3883 <td>
3884 <b></b>
3885  
3886 </td>
3887 </tr>
3888 <tr>
3889 <td>data</td>
3890 <td>DATA</td>
3891 <td> </td>
3892 <td>
3893
3894  
3895 </td>
3896 <td>
3897 <b></b>
3898  
3899 </td>
3900 </tr>
3901 </table>
3902
3903 <h4>
3904 <a name="R0100"></a>RECV
3905 MESSAGE gnotice</h4>
3906 NUMERIC TYPE (hex): 0100
3907 (possibly in response to
3908 <a href="#S0100">gnotice(0100)</a>
3909 )
3910 <p>
3911 global notice, sent to everybody
3912 </p>
3913 <table border="1" width="100%">
3914 <tr>
3915 <th width="10%">NAME</th>
3916 <th width="10%">TYPE</th>
3917 <th width="15%">DEFAULT</th>
3918 <th>DESCRIPTION</th>
3919 <th width="15%">DEC-GUARD</th>
3920 </tr>
3921 <tr>
3922 <td>notice</td>
3923 <td>STRING</td>
3924 <td> </td>
3925 <td>
3926
3927  
3928 </td>
3929 <td>
3930 <b></b>
3931  
3932 </td>
3933 </tr>
3934 </table>
3935
3936 <h4>
3937 <a name="R0202"></a>RECV
3938 MESSAGE upd_user</h4>
3939 NUMERIC TYPE (hex): 0202<p>
3940 # maybe soe notify? Totally unclear.
3941 # loc 0" type="chat(?) loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
3942 </p>
3943 <table border="1" width="100%">
3944 <tr>
3945 <th width="10%">NAME</th>
3946 <th width="10%">TYPE</th>
3947 <th width="15%">DEFAULT</th>
3948 <th>DESCRIPTION</th>
3949 <th width="15%">DEC-GUARD</th>
3950 </tr>
3951 <tr>
3952 <td>location</td>
3953 <td>U32</td>
3954 <td> </td>
3955 <td>
3956
3957  
3958 </td>
3959 <td>
3960 <b></b>
3961  
3962 </td>
3963 </tr>
3964 <tr>
3965 <td>user</td>
3966 <td>user</td>
3967 <td> </td>
3968 <td>
3969
3970  
3971 </td>
3972 <td>
3973 <b></b>
3974  
3975 </td>
3976 </tr>
3977 <tr>
3978 <td>lotsofinfo</td>
3979 <td>DATA</td>
3980 <td> </td>
3981 <td>
3982
3983  
3984 </td>
3985 <td>
3986 <b>location</b> == 2
3987  
3988 </td>
3989 </tr>
3990 </table>
3991
3992 <h4>
3993 <a name="R0310"></a>RECV
3994 MESSAGE priv_room</h4>
3995 NUMERIC TYPE (hex): 0310<p>
3996 "permission denied" when joining a room
3997 </p>
3998 <table border="1" width="100%">
3999 <tr>
4000 <th width="10%">NAME</th>
4001 <th width="10%">TYPE</th>
4002 <th width="15%">DEFAULT</th>
4003 <th>DESCRIPTION</th>
4004 <th width="15%">DEC-GUARD</th>
4005 </tr>
4006 <tr>
4007 <td>name</td>
4008 <td>STRING</td>
4009 <td> </td>
4010 <td>
4011
4012  
4013 </td>
4014 <td>
4015 <b></b>
4016  
4017 </td>
4018 </tr>
4019 </table>
4020
4021 <h4>
4022 <a name="R0318"></a>RECV
4023 MESSAGE upd_rooms</h4>
4024 NUMERIC TYPE (hex): 0318
4025 (possibly in response to
4026 <a href="#S0318">list_rooms(0318)</a>
4027 )
4028 <p>
4029 </p>
4030 <table border="1" width="100%">
4031 <tr>
4032 <th width="10%">NAME</th>
4033 <th width="10%">TYPE</th>
4034 <th width="15%">DEFAULT</th>
4035 <th>DESCRIPTION</th>
4036 <th width="15%">DEC-GUARD</th>
4037 </tr>
4038 <tr>
4039 <td>rooms</td>
4040 <td>room</td>
4041 <td> </td>
4042 <td>
4043
4044  
4045 </td>
4046 <td>
4047 <b></b>
4048  
4049 </td>
4050 </tr>
4051 </table>
4052
4053 <h4>
4054 <a name="R0411"></a>RECV
4055 MESSAGE chal_defaults</h4>
4056 NUMERIC TYPE (hex): 0411
4057 (possibly in response to
4058 <a href="#S0000">login(0000)</a>
4059 )
4060 <p>
4061 </p>
4062 <table border="1" width="100%">
4063 <tr>
4064 <th width="10%">NAME</th>
4065 <th width="10%">TYPE</th>
4066 <th width="15%">DEFAULT</th>
4067 <th>DESCRIPTION</th>
4068 <th width="15%">DEC-GUARD</th>
4069 </tr>
4070 <tr>
4071 <td>channel</td>
4072 <td>U16</td>
4073 <td> </td>
4074 <td>
4075
4076  
4077 </td>
4078 <td>
4079 <b></b>
4080  
4081 </td>
4082 </tr>
4083 <tr>
4084 <td>defaults</td>
4085 <td>challenge_defaults</td>
4086 <td> </td>
4087 <td>
4088
4089  
4090 </td>
4091 <td>
4092 <b></b>
4093  
4094 </td>
4095 </tr>
4096 </table>
4097
4098 <h4>
4099 <a name="S0412"></a>SEND
4100 MESSAGE rej_game</h4>
4101 NUMERIC TYPE (hex): 0412<p>
4102 Unable to create challenge. The channel might be optional.
4103 </p>
4104 <table border="1" width="100%">
4105 <tr>
4106 <th width="10%">NAME</th>
4107 <th width="10%">TYPE</th>
4108 <th width="15%">DEFAULT</th>
4109 <th>DESCRIPTION</th>
4110 <th width="15%">DEC-GUARD</th>
4111 </tr>
4112 <tr>
4113 <td>channel</td>
4114 <td>U16</td>
4115 <td> </td>
4116 <td>
4117
4118  
4119 </td>
4120 <td>
4121 <b></b>
4122  
4123 </td>
4124 </tr>
4125 </table>
4126
4127 <h4>
4128 <a name="R0414"></a>RECV
4129 MESSAGE game_record</h4>
4130 NUMERIC TYPE (hex): 0414
4131 (possibly in response to
4132 <a href="#S0413">req_game_record(0413)</a>
4133 )
4134 <p>
4135 The users game record.
4136 </p>
4137 <table border="1" width="100%">
4138 <tr>
4139 <th width="10%">NAME</th>
4140 <th width="10%">TYPE</th>
4141 <th width="15%">DEFAULT</th>
4142 <th>DESCRIPTION</th>
4143 <th width="15%">DEC-GUARD</th>
4144 </tr>
4145 <tr>
4146 <td>name</td>
4147 <td>username</td>
4148 <td> </td>
4149 <td>
4150
4151  
4152 </td>
4153 <td>
4154 <b></b>
4155  
4156 </td>
4157 </tr>
4158 <tr>
4159 <td>more</td>
4160 <td>flag</td>
4161 <td> </td>
4162 <td>
4163 Wether more games are available (must be requested manually)
4164
4165  
4166 </td>
4167 <td>
4168 <b></b>
4169  
4170 </td>
4171 </tr>
4172 <tr>
4173 <td>games</td>
4174 <td>game_record</td>
4175 <td> </td>
4176 <td>
4177
4178  
4179 </td>
4180 <td>
4181 <b></b>
4182  
4183 </td>
4184 </tr>
4185 </table>
4186
4187 <h4>
4188 <a name="R041c"></a>RECV
4189 MESSAGE upd_game2</h4>
4190 NUMERIC TYPE (hex): 041c<p>
4191 Unclear.
4192 </p>
4193 <table border="1" width="100%">
4194 <tr>
4195 <th width="10%">NAME</th>
4196 <th width="10%">TYPE</th>
4197 <th width="15%">DEFAULT</th>
4198 <th>DESCRIPTION</th>
4199 <th width="15%">DEC-GUARD</th>
4200 </tr>
4201 <tr>
4202 <td>channel_junk</td>
4203 <td>U16</td>
4204 <td> </td>
4205 <td>
4206
4207  
4208 </td>
4209 <td>
4210 <b></b>
4211  
4212 </td>
4213 </tr>
4214 <tr>
4215 <td>game</td>
4216 <td>game</td>
4217 <td> </td>
4218 <td>
4219
4220  
4221 </td>
4222 <td>
4223 <b></b>
4224  
4225 </td>
4226 </tr>
4227 </table>
4228
4229 <h3>Room messages</h3>
4230
4231 <p>Not all room messages are for rooms only, and rooms need to parse
4232 not only these messages. Orthogonality, what for?</p>
4233
4234 <h4>
4235 <a name="R4300"></a>RECV
4236 MESSAGE join_room</h4>
4237 NUMERIC TYPE (hex): 4300
4238 (possibly in response to
4239 <a href="#S4300">join_room(4300)</a>
4240 )
4241 <p>
4242 </p>
4243 <table border="1" width="100%">
4244 <tr>
4245 <th width="10%">NAME</th>
4246 <th width="10%">TYPE</th>
4247 <th width="15%">DEFAULT</th>
4248 <th>DESCRIPTION</th>
4249 <th width="15%">DEC-GUARD</th>
4250 </tr>
4251 <tr>
4252 <td>channel</td>
4253 <td>U16</td>
4254 <td> </td>
4255 <td>
4256
4257  
4258 </td>
4259 <td>
4260 <b></b>
4261  
4262 </td>
4263 </tr>
4264 <tr>
4265 <td>users</td>
4266 <td>user</td>
4267 <td> </td>
4268 <td>
4269
4270  
4271 </td>
4272 <td>
4273 <b></b>
4274  
4275 </td>
4276 </tr>
4277 </table>
4278
4279 <h4>
4280 <a name="R4301"></a>RECV
4281 MESSAGE msg_room</h4>
4282 NUMERIC TYPE (hex): 4301<p>
4283 </p>
4284 <table border="1" width="100%">
4285 <tr>
4286 <th width="10%">NAME</th>
4287 <th width="10%">TYPE</th>
4288 <th width="15%">DEFAULT</th>
4289 <th>DESCRIPTION</th>
4290 <th width="15%">DEC-GUARD</th>
4291 </tr>
4292 <tr>
4293 <td>channel</td>
4294 <td>U16</td>
4295 <td> </td>
4296 <td>
4297
4298  
4299 </td>
4300 <td>
4301 <b></b>
4302  
4303 </td>
4304 </tr>
4305 <tr>
4306 <td>name</td>
4307 <td>username</td>
4308 <td> </td>
4309 <td>
4310
4311  
4312 </td>
4313 <td>
4314 <b></b>
4315  
4316 </td>
4317 </tr>
4318 <tr>
4319 <td>message</td>
4320 <td>STRING</td>
4321 <td> </td>
4322 <td>
4323
4324  
4325 </td>
4326 <td>
4327 <b></b>
4328  
4329 </td>
4330 </tr>
4331 </table>
4332
4333 <h4>
4334 <a name="R4302"></a>RECV
4335 MESSAGE part_room</h4>
4336 NUMERIC TYPE (hex): 4302<p>
4337 </p>
4338 <table border="1" width="100%">
4339 <tr>
4340 <th width="10%">NAME</th>
4341 <th width="10%">TYPE</th>
4342 <th width="15%">DEFAULT</th>
4343 <th>DESCRIPTION</th>
4344 <th width="15%">DEC-GUARD</th>
4345 </tr>
4346 <tr>
4347 <td>channel</td>
4348 <td>U16</td>
4349 <td> </td>
4350 <td>
4351
4352  
4353 </td>
4354 <td>
4355 <b></b>
4356  
4357 </td>
4358 </tr>
4359 <tr>
4360 <td>user</td>
4361 <td>user</td>
4362 <td> </td>
4363 <td>
4364
4365  
4366 </td>
4367 <td>
4368 <b></b>
4369  
4370 </td>
4371 </tr>
4372 </table>
4373
4374 <h4>
4375 <a name="R4303"></a>RECV
4376 MESSAGE del_room</h4>
4377 NUMERIC TYPE (hex): 4303<p>
4378 </p>
4379 <table border="1" width="100%">
4380 <tr>
4381 <th width="10%">NAME</th>
4382 <th width="10%">TYPE</th>
4383 <th width="15%">DEFAULT</th>
4384 <th>DESCRIPTION</th>
4385 <th width="15%">DEC-GUARD</th>
4386 </tr>
4387 <tr>
4388 <td>channel</td>
4389 <td>U16</td>
4390 <td> </td>
4391 <td>
4392
4393  
4394 </td>
4395 <td>
4396 <b></b>
4397  
4398 </td>
4399 </tr>
4400 </table>
4401
4402 <h4>
4403 <a name="R4304"></a>RECV
4404 MESSAGE upd_games</h4>
4405 NUMERIC TYPE (hex): 4304<p>
4406 </p>
4407 <table border="1" width="100%">
4408 <tr>
4409 <th width="10%">NAME</th>
4410 <th width="10%">TYPE</th>
4411 <th width="15%">DEFAULT</th>
4412 <th>DESCRIPTION</th>
4413 <th width="15%">DEC-GUARD</th>
4414 </tr>
4415 <tr>
4416 <td>channel</td>
4417 <td>U16</td>
4418 <td> </td>
4419 <td>
4420
4421  
4422 </td>
4423 <td>
4424 <b></b>
4425  
4426 </td>
4427 </tr>
4428 <tr>
4429 <td>games</td>
4430 <td>game</td>
4431 <td> </td>
4432 <td>
4433
4434  
4435 </td>
4436 <td>
4437 <b></b>
4438  
4439 </td>
4440 </tr>
4441 </table>
4442
4443 <h4>
4444 <a name="R4319"></a>RECV
4445 MESSAGE desc_room</h4>
4446 NUMERIC TYPE (hex): 4319<p>
4447 </p>
4448 <table border="1" width="100%">
4449 <tr>
4450 <th width="10%">NAME</th>
4451 <th width="10%">TYPE</th>
4452 <th width="15%">DEFAULT</th>
4453 <th>DESCRIPTION</th>
4454 <th width="15%">DEC-GUARD</th>
4455 </tr>
4456 <tr>
4457 <td>channel</td>
4458 <td>U16</td>
4459 <td> </td>
4460 <td>
4461
4462  
4463 </td>
4464 <td>
4465 <b></b>
4466  
4467 </td>
4468 </tr>
4469 <tr>
4470 <td>owner</td>
4471 <td>username</td>
4472 <td> </td>
4473 <td>
4474
4475  
4476 </td>
4477 <td>
4478 <b></b>
4479  
4480 </td>
4481 </tr>
4482 <tr>
4483 <td>description</td>
4484 <td>STRING</td>
4485 <td> </td>
4486 <td>
4487
4488  
4489 </td>
4490 <td>
4491 <b></b>
4492  
4493 </td>
4494 </tr>
4495 </table>
4496
4497 <h3>Game messages</h3>
4498
4499 <h4>
4500 <a name="R4400"></a>RECV
4501 MESSAGE upd_chal</h4>
4502 NUMERIC TYPE (hex): 4400<p>
4503 Unclear.
4504 </p>
4505 <table border="1" width="100%">
4506 <tr>
4507 <th width="10%">NAME</th>
4508 <th width="10%">TYPE</th>
4509 <th width="15%">DEFAULT</th>
4510 <th>DESCRIPTION</th>
4511 <th width="15%">DEC-GUARD</th>
4512 </tr>
4513 <tr>
4514 <td>channel</td>
4515 <td>U16</td>
4516 <td> </td>
4517 <td>
4518
4519  
4520 </td>
4521 <td>
4522 <b></b>
4523  
4524 </td>
4525 </tr>
4526 <tr>
4527 <td>challenge</td>
4528 <td>challenge</td>
4529 <td> </td>
4530 <td>
4531
4532  
4533 </td>
4534 <td>
4535 <b></b>
4536  
4537 </td>
4538 </tr>
4539 </table>
4540
4541 <h4>
4542 <a name="R4401"></a>RECV
4543 MESSAGE upd_game</h4>
4544 NUMERIC TYPE (hex): 4401<p>
4545 </p>
4546 <table border="1" width="100%">
4547 <tr>
4548 <th width="10%">NAME</th>
4549 <th width="10%">TYPE</th>
4550 <th width="15%">DEFAULT</th>
4551 <th>DESCRIPTION</th>
4552 <th width="15%">DEC-GUARD</th>
4553 </tr>
4554 <tr>
4555 <td>channel</td>
4556 <td>U16</td>
4557 <td> </td>
4558 <td>
4559
4560  
4561 </td>
4562 <td>
4563 <b></b>
4564  
4565 </td>
4566 </tr>
4567 <tr>
4568 <td>game</td>
4569 <td>game</td>
4570 <td> </td>
4571 <td>
4572
4573  
4574 </td>
4575 <td>
4576 <b></b>
4577  
4578 </td>
4579 </tr>
4580 </table>
4581
4582 <h4>
4583 <a name="R4402"></a>RECV
4584 MESSAGE del_game</h4>
4585 NUMERIC TYPE (hex): 4402<p>
4586 </p>
4587 <table border="1" width="100%">
4588 <tr>
4589 <th width="10%">NAME</th>
4590 <th width="10%">TYPE</th>
4591 <th width="15%">DEFAULT</th>
4592 <th>DESCRIPTION</th>
4593 <th width="15%">DEC-GUARD</th>
4594 </tr>
4595 <tr>
4596 <td>channel</td>
4597 <td>U16</td>
4598 <td> </td>
4599 <td>
4600
4601  
4602 </td>
4603 <td>
4604 <b></b>
4605  
4606 </td>
4607 </tr>
4608 </table>
4609
4610 <h4>
4611 <a name="R4403"></a>RECV
4612 MESSAGE upd_observers</h4>
4613 NUMERIC TYPE (hex): 4403<p>
4614 </p>
4615 <table border="1" width="100%">
4616 <tr>
4617 <th width="10%">NAME</th>
4618 <th width="10%">TYPE</th>
4619 <th width="15%">DEFAULT</th>
4620 <th>DESCRIPTION</th>
4621 <th width="15%">DEC-GUARD</th>
4622 </tr>
4623 <tr>
4624 <td>channel</td>
4625 <td>U16</td>
4626 <td> </td>
4627 <td>
4628
4629  
4630 </td>
4631 <td>
4632 <b></b>
4633  
4634 </td>
4635 </tr>
4636 <tr>
4637 <td>users</td>
4638 <td>user</td>
4639 <td> </td>
4640 <td>
4641
4642  
4643 </td>
4644 <td>
4645 <b></b>
4646  
4647 </td>
4648 </tr>
4649 </table>
4650
4651 <h4>
4652 <a name="R4404"></a>RECV
4653 MESSAGE del_observer</h4>
4654 NUMERIC TYPE (hex): 4404<p>
4655 </p>
4656 <table border="1" width="100%">
4657 <tr>
4658 <th width="10%">NAME</th>
4659 <th width="10%">TYPE</th>
4660 <th width="15%">DEFAULT</th>
4661 <th>DESCRIPTION</th>
4662 <th width="15%">DEC-GUARD</th>
4663 </tr>
4664 <tr>
4665 <td>channel</td>
4666 <td>U16</td>
4667 <td> </td>
4668 <td>
4669
4670  
4671 </td>
4672 <td>
4673 <b></b>
4674  
4675 </td>
4676 </tr>
4677 <tr>
4678 <td>name</td>
4679 <td>username</td>
4680 <td> </td>
4681 <td>
4682
4683  
4684 </td>
4685 <td>
4686 <b></b>
4687  
4688 </td>
4689 </tr>
4690 </table>
4691
4692 <h4>
4693 <a name="R4405"></a>RECV
4694 MESSAGE set_tree</h4>
4695 NUMERIC TYPE (hex): 4405<p>
4696 </p>
4697 <table border="1" width="100%">
4698 <tr>
4699 <th width="10%">NAME</th>
4700 <th width="10%">TYPE</th>
4701 <th width="15%">DEFAULT</th>
4702 <th>DESCRIPTION</th>
4703 <th width="15%">DEC-GUARD</th>
4704 </tr>
4705 <tr>
4706 <td>channel</td>
4707 <td>U16</td>
4708 <td> </td>
4709 <td>
4710
4711  
4712 </td>
4713 <td>
4714 <b></b>
4715  
4716 </td>
4717 </tr>
4718 <tr>
4719 <td>tree</td>
4720 <td>TREE</td>
4721 <td> </td>
4722 <td>
4723
4724  
4725 </td>
4726 <td>
4727 <b></b>
4728  
4729 </td>
4730 </tr>
4731 </table>
4732
4733 <h4>
4734 <a name="R4406"></a>RECV
4735 MESSAGE upd_tree</h4>
4736 NUMERIC TYPE (hex): 4406<p>
4737 </p>
4738 <table border="1" width="100%">
4739 <tr>
4740 <th width="10%">NAME</th>
4741 <th width="10%">TYPE</th>
4742 <th width="15%">DEFAULT</th>
4743 <th>DESCRIPTION</th>
4744 <th width="15%">DEC-GUARD</th>
4745 </tr>
4746 <tr>
4747 <td>channel</td>
4748 <td>U16</td>
4749 <td> </td>
4750 <td>
4751
4752  
4753 </td>
4754 <td>
4755 <b></b>
4756  
4757 </td>
4758 </tr>
4759 <tr>
4760 <td>tree</td>
4761 <td>TREE</td>
4762 <td> </td>
4763 <td>
4764
4765  
4766 </td>
4767 <td>
4768 <b></b>
4769  
4770 </td>
4771 </tr>
4772 </table>
4773
4774 <h4>
4775 <a name="R4409"></a>RECV
4776 MESSAGE superko</h4>
4777 NUMERIC TYPE (hex): 4409<p>
4778 Superko-warning.
4779 </p>
4780 <table border="1" width="100%">
4781 <tr>
4782 <th width="10%">NAME</th>
4783 <th width="10%">TYPE</th>
4784 <th width="15%">DEFAULT</th>
4785 <th>DESCRIPTION</th>
4786 <th width="15%">DEC-GUARD</th>
4787 </tr>
4788 <tr>
4789 <td>channel</td>
4790 <td>U16</td>
4791 <td> </td>
4792 <td>
4793
4794  
4795 </td>
4796 <td>
4797 <b></b>
4798  
4799 </td>
4800 </tr>
4801 </table>
4802
4803 <h4>
4804 <a name="R440b"></a>RECV
4805 MESSAGE final_result</h4>
4806 NUMERIC TYPE (hex): 440b<p>
4807 </p>
4808 <table border="1" width="100%">
4809 <tr>
4810 <th width="10%">NAME</th>
4811 <th width="10%">TYPE</th>
4812 <th width="15%">DEFAULT</th>
4813 <th>DESCRIPTION</th>
4814 <th width="15%">DEC-GUARD</th>
4815 </tr>
4816 <tr>
4817 <td>channel</td>
4818 <td>U16</td>
4819 <td> </td>
4820 <td>
4821
4822  
4823 </td>
4824 <td>
4825 <b></b>
4826  
4827 </td>
4828 </tr>
4829 <tr>
4830 <td>blackscore</td>
4831 <td>scorevalues</td>
4832 <td> </td>
4833 <td>
4834
4835  
4836 </td>
4837 <td>
4838 <b></b>
4839  
4840 </td>
4841 </tr>
4842 <tr>
4843 <td>whitescore</td>
4844 <td>scorevalues</td>
4845 <td> </td>
4846 <td>
4847
4848  
4849 </td>
4850 <td>
4851 <b></b>
4852  
4853 </td>
4854 </tr>
4855 </table>
4856
4857 <h4>
4858 <a name="R440e"></a>RECV
4859 MESSAGE req_undo</h4>
4860 NUMERIC TYPE (hex): 440e<p>
4861 </p>
4862 <table border="1" width="100%">
4863 <tr>
4864 <th width="10%">NAME</th>
4865 <th width="10%">TYPE</th>
4866 <th width="15%">DEFAULT</th>
4867 <th>DESCRIPTION</th>
4868 <th width="15%">DEC-GUARD</th>
4869 </tr>
4870 <tr>
4871 <td>channel</td>
4872 <td>U16</td>
4873 <td> </td>
4874 <td>
4875
4876
4877  
4878 </td>
4879 <td>
4880 <b></b>
4881  
4882 </td>
4883 </tr>
4884 </table>
4885
4886 <h4>
4887 <a name="R4410"></a>RECV
4888 MESSAGE resign_game</h4>
4889 NUMERIC TYPE (hex): 4410<p>
4890 </p>
4891 <table border="1" width="100%">
4892 <tr>
4893 <th width="10%">NAME</th>
4894 <th width="10%">TYPE</th>
4895 <th width="15%">DEFAULT</th>
4896 <th>DESCRIPTION</th>
4897 <th width="15%">DEC-GUARD</th>
4898 </tr>
4899 <tr>
4900 <td>channel</td>
4901 <td>U16</td>
4902 <td> </td>
4903 <td>
4904
4905  
4906 </td>
4907 <td>
4908 <b></b>
4909  
4910 </td>
4911 </tr>
4912 <tr>
4913 <td>player</td>
4914 <td>U8</td>
4915 <td> </td>
4916 <td>
4917
4918  
4919 </td>
4920 <td>
4921 <b></b>
4922  
4923 </td>
4924 </tr>
4925 </table>
4926
4927 <h4>
4928 <a name="R441a"></a>RECV
4929 MESSAGE set_teacher</h4>
4930 NUMERIC TYPE (hex): 441a<p>
4931 </p>
4932 <table border="1" width="100%">
4933 <tr>
4934 <th width="10%">NAME</th>
4935 <th width="10%">TYPE</th>
4936 <th width="15%">DEFAULT</th>
4937 <th>DESCRIPTION</th>
4938 <th width="15%">DEC-GUARD</th>
4939 </tr>
4940 <tr>
4941 <td>channel</td>
4942 <td>U16</td>
4943 <td> </td>
4944 <td>
4945
4946  
4947 </td>
4948 <td>
4949 <b></b>
4950  
4951 </td>
4952 </tr>
4953 <tr>
4954 <td>name</td>
4955 <td>username</td>
4956 <td> </td>
4957 <td>
4958
4959  
4960 </td>
4961 <td>
4962 <b></b>
4963  
4964 </td>
4965 </tr>
4966 </table>
4967
4968 <h4>
4969 <a name="R441d"></a>RECV
4970 MESSAGE owner_left</h4>
4971 NUMERIC TYPE (hex): 441d<p>
4972 Unclear.
4973 </p>
4974 <table border="1" width="100%">
4975 <tr>
4976 <th width="10%">NAME</th>
4977 <th width="10%">TYPE</th>
4978 <th width="15%">DEFAULT</th>
4979 <th>DESCRIPTION</th>
4980 <th width="15%">DEC-GUARD</th>
4981 </tr>
4982 <tr>
4983 <td>channel</td>
4984 <td>U16</td>
4985 <td> </td>
4986 <td>
4987
4988  
4989 </td>
4990 <td>
4991 <b></b>
4992  
4993 </td>
4994 </tr>
4995 </table>
4996
4997 <h4>
4998 <a name="R441e"></a>RECV
4999 MESSAGE teacher_left</h4>
5000 NUMERIC TYPE (hex): 441e<p>
5001 Unclear.
5002 </p>
5003 <table border="1" width="100%">
5004 <tr>
5005 <th width="10%">NAME</th>
5006 <th width="10%">TYPE</th>
5007 <th width="15%">DEFAULT</th>
5008 <th>DESCRIPTION</th>
5009 <th width="15%">DEC-GUARD</th>
5010 </tr>
5011 <tr>
5012 <td>channel</td>
5013 <td>U16</td>
5014 <td> </td>
5015 <td>
5016
5017  
5018 </td>
5019 <td>
5020 <b></b>
5021  
5022 </td>
5023 </tr>
5024 </table>
5025
5026 <h4>
5027 <a name="R4422"></a>RECV
5028 MESSAGE unknown4422</h4>
5029 NUMERIC TYPE (hex): 4422<p>
5030 change teacher? something to do with editing?
5031 </p>
5032 <table border="1" width="100%">
5033 <tr>
5034 <th width="10%">NAME</th>
5035 <th width="10%">TYPE</th>
5036 <th width="15%">DEFAULT</th>
5037 <th>DESCRIPTION</th>
5038 <th width="15%">DEC-GUARD</th>
5039 </tr>
5040 <tr>
5041 <td>channel</td>
5042 <td>U16</td>
5043 <td> </td>
5044 <td>
5045
5046  
5047 </td>
5048 <td>
5049 <b></b>
5050  
5051 </td>
5052 </tr>
5053 <tr>
5054 <td>name1</td>
5055 <td>username</td>
5056 <td> </td>
5057 <td>
5058
5059  
5060 </td>
5061 <td>
5062 <b></b>
5063  
5064 </td>
5065 </tr>
5066 <tr>
5067 <td>name2</td>
5068 <td>username</td>
5069 <td> </td>
5070 <td>
5071
5072  
5073 </td>
5074 <td>
5075 <b></b>
5076  
5077 </td>
5078 </tr>
5079 </table>
5080
5081 <h4>
5082 <a name="R4428"></a>RECV
5083 MESSAGE add_tree</h4>
5084 NUMERIC TYPE (hex): 4428<p>
5085 <p>See <a href="#R4405">set_tree(4405)</a>. In addition, flags the tree as being
5086 uploaded completely.</p>
5087 </p>
5088 <table border="1" width="100%">
5089 <tr>
5090 <th width="10%">NAME</th>
5091 <th width="10%">TYPE</th>
5092 <th width="15%">DEFAULT</th>
5093 <th>DESCRIPTION</th>
5094 <th width="15%">DEC-GUARD</th>
5095 </tr>
5096 <tr>
5097 <td>channel</td>
5098 <td>U16</td>
5099 <td> </td>
5100 <td>
5101
5102  
5103 </td>
5104 <td>
5105 <b></b>
5106  
5107 </td>
5108 </tr>
5109 <tr>
5110 <td>tree</td>
5111 <td>TREE</td>
5112 <td> </td>
5113 <td>
5114
5115  
5116 </td>
5117 <td>
5118 <b></b>
5119  
5120 </td>
5121 </tr>
5122 </table>
5123
5124 <h4>
5125 <a name="R4433"></a>RECV
5126 MESSAGE req_result</h4>
5127 NUMERIC TYPE (hex): 4433<p>
5128 Unclear.
5129 </p>
5130 <table border="1" width="100%">
5131 <tr>
5132 <th width="10%">NAME</th>
5133 <th width="10%">TYPE</th>
5134 <th width="15%">DEFAULT</th>
5135 <th>DESCRIPTION</th>
5136 <th width="15%">DEC-GUARD</th>
5137 </tr>
5138 <tr>
5139 <td>channel</td>
5140 <td>U16</td>
5141 <td> </td>
5142 <td>
5143 # # recv_result(?)
5144
5145  
5146 </td>
5147 <td>
5148 <b></b>
5149  
5150 </td>
5151 </tr>
5152 </table>
5153
5154 <h4>
5155 <a name="R4434"></a>RECV
5156 MESSAGE unknown4434</h4>
5157 NUMERIC TYPE (hex): 4434<p>
5158 </p>
5159 <table border="1" width="100%">
5160 <tr>
5161 <th width="10%">NAME</th>
5162 <th width="10%">TYPE</th>
5163 <th width="15%">DEFAULT</th>
5164 <th>DESCRIPTION</th>
5165 <th width="15%">DEC-GUARD</th>
5166 </tr>
5167 <tr>
5168 <td>channel</td>
5169 <td>U16</td>
5170 <td> </td>
5171 <td>
5172
5173  
5174 </td>
5175 <td>
5176 <b></b>
5177  
5178 </td>
5179 </tr>
5180 <tr>
5181 <td>b1</td>
5182 <td>U8</td>
5183 <td> </td>
5184 <td>
5185 ?? !demonstration game??
5186
5187  
5188 </td>
5189 <td>
5190 <b></b>
5191  
5192 </td>
5193 </tr>
5194 </table>
5195
5196 </body>
5197 </html>