ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.23
Committed: Sat Jul 19 01:05:07 2003 UTC (20 years, 10 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.22: +4 -4 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.23 $</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. This does not
36 necessarily mean that he will change the protocol just to make it
37 difficult to reverse-engineer the protocol, but if this happens,
38 I might not have the resources the track them, if they are too
39 extensive. Anyway, he made it clear that no help whatsoever is to be
40 expected.</b>
41 </p>
42
43 <p>If you feel you need to update the visual appearance of this
44 document, feel free to look <tt>doc/doc2html.xsl</tt> and improve
45 it.</p>
46
47 <p>The current version of this document can always be found at
48 <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
49 the HTML version of it can be found
50 <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>.
51 </p>
52
53 <h2>Changes for server version 2.5</h2>
54
55 <p>Sorry - I have little time to dissect the protocol, but as far
56 as I can see, there was no deeper need for the protocol change, as
57 the protocol itself didn't change in a significant way. The only
58 significant change was the addition of a linear congruence generator
59 that is xor'ed into the packet length. This makes the protocol less
60 robust and doesn't help much, so the only big effect of that is to make
61 it more difficult to analyze the protocol. It seems that wms prefers
62 to lock out users than to have a few people write their own client. I
63 didn't really expect that from him, but instead expected real changes
64 for the good, as he is claiming all the time.</p>
65
66 <p>Well, that's what he wrote to me, after all, so he just did what he
67 said...</p>
68
69 <p>Anything I know about changes in 2.5.x are reflected in this
70 document already. You can log-in, chat, log-out, but the gamelist
71 is corrupted, and you still cannot watch games.</p>
72
73 <h2>Structure and conventions of this document and the protocol</h2>
74
75 <p>"Send" means messages send from the client to the server, while
76 "received" means messages send by the server to the client.</p>
77
78 <p>Everything on the wire is in little-endian format (what a shame).</p>
79
80 <p>Primitive types are mostly integers (signed
81 "<code>I</code>&lt;bits&gt;", unsigned "<code>U</code>&lt;bits&gt;"),
82 ascii strings ("<code>username</code>"), or zero-terminated
83 UCS2-Strings ("<code>STRING</code>"). Yes, I know java is supposed to
84 do UTF-16, but no implementation seems to care...</p>
85
86 <p>For the rest, go figure or bug me, <a href="mailto:pcg@goof.com">Marc Lehmann &lt;pcg@goof.com&gt;</a>
87 </p>
88
89 <h2>Stream and message structure.</h2>
90
91 <p>After connecting to the server, a handshake byte is sent. It's
92 the major version number of the protocol the client expects to
93 receive. Version 3 and 4 are mostly the same, except that Version 4
94 clients expect server messages to be compressed, version 3 clients
95 not.</p>
96
97 <p>The server sends back his protocol number, which is always 3 in
98 the current protocol. Most of the protocol variation is determined by
99 the server using the client version that is used in the initial login
100 message, not the initial handshake byte.</p>
101
102 <p>After the initial handshake, the client sends uncompressed
103 messages, while the server sends back a zlib-compressed
104 stream (<a href="http://rfc1950.x42.com/">rfc1950</a> and <a href="http://rfc1950.x42.com/">rfc1951</a>).</p>
105
106 <p>All messages have the same header:</p>
107
108 <h4>STRUCTURE message_header</h4>
109 <p>
110 </p>
111 <table border="1" width="100%">
112 <tr>
113 <th width="10%">NAME</th>
114 <th width="10%">TYPE</th>
115 <th width="15%">DEFAULT</th>
116 <th>DESCRIPTION</th>
117 <th width="15%">DEC-GUARD</th>
118 </tr>
119 <tr>
120 <td>_unknown</td>
121 <td>U16</td>
122 <td> </td>
123 <td>
124
125  
126 </td>
127 <td>
128 <b></b>
129  
130 </td>
131 </tr>
132 <tr>
133 <td>length</td>
134 <td>U16</td>
135 <td> </td>
136 <td>
137
138
139  
140 </td>
141 <td>
142 <b></b>
143  
144 </td>
145 </tr>
146 <tr>
147 <td>type</td>
148 <td>U16</td>
149 <td> </td>
150 <td>
151
152  
153 </td>
154 <td>
155 <b></b>
156  
157 </td>
158 </tr>
159 </table>
160
161 <h2>Primitive types used in the protocol.</h2>
162
163 <p>Apart from the basic types, I need to define some extra types to
164 deal with fixed-point values (based on integer types) or fixed-length
165 strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2
166 based (<code>S</code>)).</p>
167
168 <h4>TYPE username</h4>
169 BASE TYPE A, LENGTH 10, MULTIPLIER <br />
170
171 <p>The basic user or login name, used throughout the protocol
172 as a handle to the user.</p>
173
174 <h4>TYPE roomname</h4>
175 BASE TYPE S, LENGTH 25, MULTIPLIER <br />
176 <!-- argh, how horribly broken -->
177
178 <p>Many strings in the protocol are fixed-width for no good reason
179 (maybe this is one reason for using compression in newer versions, as
180 the packets itself are wasting lots of space.</p>
181
182 <h4>TYPE realname</h4>
183 BASE TYPE S, LENGTH 50, MULTIPLIER <br />
184 <h4>TYPE email</h4>
185 BASE TYPE S, LENGTH 70, MULTIPLIER <br />
186 <h4>TYPE userinfo</h4>
187 BASE TYPE S, LENGTH 1000, MULTIPLIER <br />
188 <h4>TYPE url</h4>
189 BASE TYPE A, LENGTH 100, MULTIPLIER <br />
190
191 <p>Used in user_record.</p>
192
193 <h4>TYPE locale</h4>
194 BASE TYPE A, LENGTH 5, MULTIPLIER <br />
195
196 <p>A kind of locale specifier. It seems the general format seems to be
197 lowercase language, underscore, uppercase location, e.g. en_US. More
198 fancy specifications don't fit.</p>
199
200 <h4>TYPE flag</h4>
201 BASE TYPE U8, LENGTH , MULTIPLIER 1<br />
202
203 <p>Just a simple boolean value. 0 means false, and 1 generally true,
204 but I suggest ccepting != 0 as true.</p>
205
206 <h4>TYPE komi16</h4>
207 BASE TYPE I16, LENGTH , MULTIPLIER 2<br />
208 <h4>TYPE komi32</h4>
209 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
210 <h4>TYPE komi324</h4>
211 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
212
213 <p>Komi values are multiplied by 2 to make them integer in the
214 protocol. Well, *most* of the time at least...</p>
215
216 <h4>TYPE result</h4>
217 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
218
219 <p>The game result is also multiplied by two to give it higher
220 resolution. There are also special values for wins by time etc., either
221 in result or in the score* types, or both :)</p>
222
223 <h4>TYPE score16</h4>
224 BASE TYPE I16, LENGTH , MULTIPLIER 4<br />
225 <h4>TYPE score32</h4>
226 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
227
228 <p>A score value (used for displaying the score at the end of a game)
229 are multiplied by four for a change (the 0.25 resolution is not
230 used). In game structures it is encoded by dividing by two, though, so
231 watch out!</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="S4405"></a>SEND
1543 MESSAGE set_tree</h4>
1544 NUMERIC TYPE (hex): 4405<p>
1545 Upload a partial game tree to the server. This is used
1546 to send moves and even in-game comments to the server. For the comments,
1547 the server prepends the username and rank.
1548 </p>
1549 <table border="1" width="100%">
1550 <tr>
1551 <th width="10%">NAME</th>
1552 <th width="10%">TYPE</th>
1553 <th width="15%">DEFAULT</th>
1554 <th>DESCRIPTION</th>
1555 <th width="15%">DEC-GUARD</th>
1556 </tr>
1557 <tr>
1558 <td>channel</td>
1559 <td>U16</td>
1560 <td> </td>
1561 <td>
1562
1563  
1564 </td>
1565 <td>
1566 <b></b>
1567  
1568 </td>
1569 </tr>
1570 <tr>
1571 <td>tree</td>
1572 <td>TREE</td>
1573 <td> </td>
1574 <td>
1575
1576  
1577 </td>
1578 <td>
1579 <b></b>
1580  
1581 </td>
1582 </tr>
1583 </table>
1584
1585 <h4>
1586 <a name="S4408"></a>SEND
1587 MESSAGE get_tree</h4>
1588 NUMERIC TYPE (hex): 4408<p>
1589 Request the game tree starting at a given node. This is used
1590 when the server only sends a partial tree (with end code "more").
1591 </p>
1592 <table border="1" width="100%">
1593 <tr>
1594 <th width="10%">NAME</th>
1595 <th width="10%">TYPE</th>
1596 <th width="15%">DEFAULT</th>
1597 <th>DESCRIPTION</th>
1598 <th width="15%">DEC-GUARD</th>
1599 </tr>
1600 <tr>
1601 <td>channel</td>
1602 <td>U16</td>
1603 <td> </td>
1604 <td>
1605
1606  
1607 </td>
1608 <td>
1609 <b></b>
1610  
1611 </td>
1612 </tr>
1613 <tr>
1614 <td>node</td>
1615 <td>U32</td>
1616 <td> </td>
1617 <td>
1618
1619  
1620 </td>
1621 <td>
1622 <b></b>
1623  
1624 </td>
1625 </tr>
1626 </table>
1627
1628 <h4>
1629 <a name="S440c"></a>SEND
1630 MESSAGE claim_win</h4>
1631 NUMERIC TYPE (hex): 440c<p>
1632 Unclear.
1633 </p>
1634 <table border="1" width="100%">
1635 <tr>
1636 <th width="10%">NAME</th>
1637 <th width="10%">TYPE</th>
1638 <th width="15%">DEFAULT</th>
1639 <th>DESCRIPTION</th>
1640 <th width="15%">DEC-GUARD</th>
1641 </tr>
1642 <tr>
1643 <td>channel</td>
1644 <td>U16</td>
1645 <td> </td>
1646 <td>
1647
1648  
1649 </td>
1650 <td>
1651 <b></b>
1652  
1653 </td>
1654 </tr>
1655 <tr>
1656 <td>_byte</td>
1657 <td>U8 </td>
1658 <td> </td>
1659 <td>
1660 Player colour maybe? Unclear.
1661
1662  
1663 </td>
1664 <td>
1665 <b></b>
1666  
1667 </td>
1668 </tr>
1669 </table>
1670
1671 <h4>
1672 <a name="S440d"></a>SEND
1673 MESSAGE add_time</h4>
1674 NUMERIC TYPE (hex): 440d<p>
1675 Not checked.
1676
1677 </p>
1678 <table border="1" width="100%">
1679 <tr>
1680 <th width="10%">NAME</th>
1681 <th width="10%">TYPE</th>
1682 <th width="15%">DEFAULT</th>
1683 <th>DESCRIPTION</th>
1684 <th width="15%">DEC-GUARD</th>
1685 </tr>
1686 <tr>
1687 <td>channel</td>
1688 <td>U16</td>
1689 <td> </td>
1690 <td>
1691
1692  
1693 </td>
1694 <td>
1695 <b></b>
1696  
1697 </td>
1698 </tr>
1699 <tr>
1700 <td>time</td>
1701 <td>U32</td>
1702 <td> </td>
1703 <td>
1704
1705  
1706 </td>
1707 <td>
1708 <b></b>
1709  
1710 </td>
1711 </tr>
1712 <tr>
1713 <td>player</td>
1714 <td>U8</td>
1715 <td> </td>
1716 <td>
1717
1718  
1719 </td>
1720 <td>
1721 <b></b>
1722  
1723 </td>
1724 </tr>
1725 </table>
1726
1727 <h4>
1728 <a name="S440f"></a>SEND
1729 MESSAGE grant_undo</h4>
1730 NUMERIC TYPE (hex): 440f<p>
1731 Can be send after a req_undo message was received to grant the undo.
1732 </p>
1733 <table border="1" width="100%">
1734 <tr>
1735 <th width="10%">NAME</th>
1736 <th width="10%">TYPE</th>
1737 <th width="15%">DEFAULT</th>
1738 <th>DESCRIPTION</th>
1739 <th width="15%">DEC-GUARD</th>
1740 </tr>
1741 <tr>
1742 <td>channel</td>
1743 <td>U16</td>
1744 <td> </td>
1745 <td>
1746
1747  
1748 </td>
1749 <td>
1750 <b></b>
1751  
1752 </td>
1753 </tr>
1754 </table>
1755
1756 <h4>
1757 <a name="S4410"></a>SEND
1758 MESSAGE resign_game</h4>
1759 NUMERIC TYPE (hex): 4410<p>
1760 Resign the game.
1761 </p>
1762 <table border="1" width="100%">
1763 <tr>
1764 <th width="10%">NAME</th>
1765 <th width="10%">TYPE</th>
1766 <th width="15%">DEFAULT</th>
1767 <th>DESCRIPTION</th>
1768 <th width="15%">DEC-GUARD</th>
1769 </tr>
1770 <tr>
1771 <td>channel</td>
1772 <td>U16</td>
1773 <td> </td>
1774 <td>
1775
1776  
1777 </td>
1778 <td>
1779 <b></b>
1780  
1781 </td>
1782 </tr>
1783 <tr>
1784 <td>player</td>
1785 <td>U8</td>
1786 <td> </td>
1787 <td>
1788
1789  
1790 </td>
1791 <td>
1792 <b></b>
1793  
1794 </td>
1795 </tr>
1796 </table>
1797
1798 <h4>
1799 <a name="S441a"></a>SEND
1800 MESSAGE set_teacher</h4>
1801 NUMERIC TYPE (hex): 441a<p>
1802 Change the teacher to somebody else (or possibly yourself == take it).
1803 </p>
1804 <table border="1" width="100%">
1805 <tr>
1806 <th width="10%">NAME</th>
1807 <th width="10%">TYPE</th>
1808 <th width="15%">DEFAULT</th>
1809 <th>DESCRIPTION</th>
1810 <th width="15%">DEC-GUARD</th>
1811 </tr>
1812 <tr>
1813 <td>channel</td>
1814 <td>U16</td>
1815 <td> </td>
1816 <td>
1817
1818  
1819 </td>
1820 <td>
1821 <b></b>
1822  
1823 </td>
1824 </tr>
1825 <tr>
1826 <td>name</td>
1827 <td>username</td>
1828 <td> </td>
1829 <td>
1830
1831  
1832 </td>
1833 <td>
1834 <b></b>
1835  
1836 </td>
1837 </tr>
1838 </table>
1839
1840 <h4>
1841 <a name="S4422"></a>SEND
1842 MESSAGE add_user</h4>
1843 NUMERIC TYPE (hex): 4422<p>
1844 Unclear. Maybe allow users to talk? No idea, really.
1845
1846 </p>
1847 <table border="1" width="100%">
1848 <tr>
1849 <th width="10%">NAME</th>
1850 <th width="10%">TYPE</th>
1851 <th width="15%">DEFAULT</th>
1852 <th>DESCRIPTION</th>
1853 <th width="15%">DEC-GUARD</th>
1854 </tr>
1855 <tr>
1856 <td>channel</td>
1857 <td>U16</td>
1858 <td> </td>
1859 <td>
1860
1861  
1862 </td>
1863 <td>
1864 <b></b>
1865  
1866 </td>
1867 </tr>
1868 <tr>
1869 <td>othername</td>
1870 <td>username</td>
1871 <td> </td>
1872 <td>
1873
1874  
1875 </td>
1876 <td>
1877 <b></b>
1878  
1879 </td>
1880 </tr>
1881 <tr>
1882 <td>name</td>
1883 <td>username</td>
1884 <td> </td>
1885 <td>; # gives user access to the game (to what? ;)
1886
1887  
1888 </td>
1889 <td>
1890 <b></b>
1891  
1892 </td>
1893 </tr>
1894 </table>
1895
1896 <h4>
1897 <a name="S4423"></a>SEND
1898 MESSAGE set_privacy</h4>
1899 NUMERIC TYPE (hex): 4423<p>
1900 Probably sets the "quiet" flag. Not checked.
1901 </p>
1902 <table border="1" width="100%">
1903 <tr>
1904 <th width="10%">NAME</th>
1905 <th width="10%">TYPE</th>
1906 <th width="15%">DEFAULT</th>
1907 <th>DESCRIPTION</th>
1908 <th width="15%">DEC-GUARD</th>
1909 </tr>
1910 <tr>
1911 <td>channel</td>
1912 <td>U16</td>
1913 <td> </td>
1914 <td>
1915
1916  
1917 </td>
1918 <td>
1919 <b></b>
1920  
1921 </td>
1922 </tr>
1923 <tr>
1924 <td>private</td>
1925 <td>U8</td>
1926 <td> </td>
1927 <td>
1928
1929  
1930 </td>
1931 <td>
1932 <b></b>
1933  
1934 </td>
1935 </tr>
1936 </table>
1937
1938 <h4>
1939 <a name="S4429"></a>SEND
1940 MESSAGE reject_chal</h4>
1941 NUMERIC TYPE (hex): 4429<p>
1942 Reject a challenge from a given user. Not checked.
1943
1944 </p>
1945 <table border="1" width="100%">
1946 <tr>
1947 <th width="10%">NAME</th>
1948 <th width="10%">TYPE</th>
1949 <th width="15%">DEFAULT</th>
1950 <th>DESCRIPTION</th>
1951 <th width="15%">DEC-GUARD</th>
1952 </tr>
1953 <tr>
1954 <td>channel</td>
1955 <td>U16</td>
1956 <td> </td>
1957 <td>
1958
1959  
1960 </td>
1961 <td>
1962 <b></b>
1963  
1964 </td>
1965 </tr>
1966 <tr>
1967 <td>name</td>
1968 <td>username</td>
1969 <td> </td>
1970 <td>
1971
1972  
1973 </td>
1974 <td>
1975 <b></b>
1976  
1977 </td>
1978 </tr>
1979 </table>
1980
1981 <h4>
1982 <a name="S4433"></a>SEND
1983 MESSAGE req_result</h4>
1984 NUMERIC TYPE (hex): 4433<p>
1985 I forgot.
1986
1987 </p>
1988 <table border="1" width="100%">
1989 <tr>
1990 <th width="10%">NAME</th>
1991 <th width="10%">TYPE</th>
1992 <th width="15%">DEFAULT</th>
1993 <th>DESCRIPTION</th>
1994 <th width="15%">DEC-GUARD</th>
1995 </tr>
1996 <tr>
1997 <td>channel</td>
1998 <td>U16</td>
1999 <td> </td>
2000 <td>
2001
2002  
2003 </td>
2004 <td>
2005 <b></b>
2006  
2007 </td>
2008 </tr>
2009 </table>
2010
2011 <h2>Structs mainly used in receive messages</h2>
2012
2013 <h4>STRUCTURE challenge_defaults</h4>
2014 <p>
2015 Send soon after log-in to set the defaults for game challenges.
2016 </p>
2017 <table border="1" width="100%">
2018 <tr>
2019 <th width="10%">NAME</th>
2020 <th width="10%">TYPE</th>
2021 <th width="15%">DEFAULT</th>
2022 <th>DESCRIPTION</th>
2023 <th width="15%">DEC-GUARD</th>
2024 </tr>
2025 <tr>
2026 <td>gametype</td>
2027 <td>U32</td>
2028 <td> </td>
2029 <td>
2030
2031  
2032 </td>
2033 <td>
2034 <b></b>
2035  
2036 </td>
2037 </tr>
2038 <tr>
2039 <td>size</td>
2040 <td>U32</td>
2041 <td> </td>
2042 <td>
2043
2044  
2045 </td>
2046 <td>
2047 <b></b>
2048  
2049 </td>
2050 </tr>
2051 <tr>
2052 <td>timesys</td>
2053 <td>U32</td>
2054 <td> </td>
2055 <td>
2056
2057  
2058 </td>
2059 <td>
2060 <b></b>
2061  
2062 </td>
2063 </tr>
2064 <tr>
2065 <td>time</td>
2066 <td>U32</td>
2067 <td> </td>
2068 <td>
2069
2070  
2071 </td>
2072 <td>
2073 <b></b>
2074  
2075 </td>
2076 </tr>
2077 <tr>
2078 <td>byo_time</td>
2079 <td>U32</td>
2080 <td> </td>
2081 <td>
2082
2083  
2084 </td>
2085 <td>
2086 <b></b>
2087  
2088 </td>
2089 </tr>
2090 <tr>
2091 <td>byo_periods</td>
2092 <td>U32</td>
2093 <td> </td>
2094 <td>
2095
2096  
2097 </td>
2098 <td>
2099 <b></b>
2100  
2101 </td>
2102 </tr>
2103 <tr>
2104 <td>can_time</td>
2105 <td>U32</td>
2106 <td> </td>
2107 <td>
2108
2109  
2110 </td>
2111 <td>
2112 <b></b>
2113  
2114 </td>
2115 </tr>
2116 <tr>
2117 <td>can_stones</td>
2118 <td>U32</td>
2119 <td> </td>
2120 <td>
2121
2122  
2123 </td>
2124 <td>
2125 <b></b>
2126  
2127 </td>
2128 </tr>
2129 </table>
2130
2131 <h4>STRUCTURE challenge</h4>
2132 CLASS: KGS::Challenge<br />
2133 <p>
2134 A challenge.
2135
2136 </p>
2137 <table border="1" width="100%">
2138 <tr>
2139 <th width="10%">NAME</th>
2140 <th width="10%">TYPE</th>
2141 <th width="15%">DEFAULT</th>
2142 <th>DESCRIPTION</th>
2143 <th width="15%">DEC-GUARD</th>
2144 </tr>
2145 <tr>
2146 <td>user1</td>
2147 <td>user</td>
2148 <td> </td>
2149 <td>
2150
2151  
2152 </td>
2153 <td>
2154 <b></b>
2155  
2156 </td>
2157 </tr>
2158 <tr>
2159 <td>user2</td>
2160 <td>user</td>
2161 <td> </td>
2162 <td>
2163
2164  
2165 </td>
2166 <td>
2167 <b></b>
2168  
2169 </td>
2170 </tr>
2171 <tr>
2172 <td>gametype</td>
2173 <td>U32</td>
2174 <td> </td>
2175 <td>
2176
2177  
2178 </td>
2179 <td>
2180 <b></b>
2181  
2182 </td>
2183 </tr>
2184 <tr>
2185 <td>rules</td>
2186 <td>rules</td>
2187 <td> </td>
2188 <td>
2189 Maybe the rules" are in TREE format. I forgot.
2190
2191  
2192 </td>
2193 <td>
2194 <b></b>
2195  
2196 </td>
2197 </tr>
2198 </table>
2199
2200 <h4>STRUCTURE game</h4>
2201 CLASS: KGS::Game<br />
2202 <p>
2203 Basic information about a game. Used in rooms for the gamelist and
2204 in games to detect when a game is saved, changed type (e.g. R =&gt; D)
2205 etc.
2206
2207 </p>
2208 <table border="1" width="100%">
2209 <tr>
2210 <th width="10%">NAME</th>
2211 <th width="10%">TYPE</th>
2212 <th width="15%">DEFAULT</th>
2213 <th>DESCRIPTION</th>
2214 <th width="15%">DEC-GUARD</th>
2215 </tr>
2216 <tr>
2217 <td>channel</td>
2218 <td>U16</td>
2219 <td> </td>
2220 <td>
2221
2222  
2223 </td>
2224 <td>
2225 <b></b>
2226  
2227 </td>
2228 </tr>
2229 <tr>
2230 <td>type</td>
2231 <td>U32</td>
2232 <td> </td>
2233 <td>
2234
2235  
2236 </td>
2237 <td>
2238 <b></b>
2239  
2240 </td>
2241 </tr>
2242 <tr>
2243 <td>user1</td>
2244 <td>user</td>
2245 <td> </td>
2246 <td>
2247 White
2248
2249  
2250 </td>
2251 <td>
2252 <b></b>
2253  
2254 </td>
2255 </tr>
2256 <tr>
2257 <td>user2</td>
2258 <td>user</td>
2259 <td> </td>
2260 <td>
2261 Black
2262
2263  
2264 </td>
2265 <td>
2266 <b></b>
2267  
2268 </td>
2269 </tr>
2270 <tr>
2271 <td>user3</td>
2272 <td>user</td>
2273 <td> </td>
2274 <td>
2275 Owner
2276
2277  
2278 </td>
2279 <td>
2280 <b></b>
2281  
2282 </td>
2283 </tr>
2284 <tr>
2285 <td>size</td>
2286 <td>U32</td>
2287 <td> </td>
2288 <td>
2289
2290  
2291 </td>
2292 <td>
2293 <b></b>
2294  
2295 </td>
2296 </tr>
2297 <tr>
2298 <td>handicap</td>
2299 <td>I32</td>
2300 <td> </td>
2301 <td>
2302 &lt; 0 not fully setup
2303
2304  
2305 </td>
2306 <td>
2307 <b></b>
2308  
2309 </td>
2310 </tr>
2311 <tr>
2312 <td>komi</td>
2313 <td>komi32</td>
2314 <td> </td>
2315 <td>
2316
2317  
2318 </td>
2319 <td>
2320 <b></b>
2321  
2322 </td>
2323 </tr>
2324 <tr>
2325 <td>moves</td>
2326 <td>I16</td>
2327 <td> </td>
2328 <td>
2329 This field reflects either the movenum or the score, sorry, not even guards help, as
2330 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
2331 score (NOT score16!).
2332
2333  
2334 </td>
2335 <td>
2336 <b></b>
2337  
2338 </td>
2339 </tr>
2340 <tr>
2341 <td>flags</td>
2342 <td>U16</td>
2343 <td> </td>
2344 <td>
2345
2346  
2347 </td>
2348 <td>
2349 <b></b>
2350  
2351 </td>
2352 </tr>
2353 <tr>
2354 <td>observers</td>
2355 <td>U32</td>
2356 <td> </td>
2357 <td>
2358
2359  
2360 </td>
2361 <td>
2362 <b></b>
2363  
2364 </td>
2365 </tr>
2366 <tr>
2367 <td>saved</td>
2368 <td>flag</td>
2369 <td> </td>
2370 <td>
2371
2372  
2373 </td>
2374 <td>
2375 <b></b>
2376  
2377 </td>
2378 </tr>
2379 <tr>
2380 <td>notes</td>
2381 <td>STRING</td>
2382 <td> </td>
2383 <td>
2384
2385  
2386 </td>
2387 <td>
2388 <b>handicap</b> &lt; 0
2389  
2390 </td>
2391 </tr>
2392 </table>
2393
2394 <h4>STRUCTURE room_obs</h4>
2395 <p>
2396 Obsolete.
2397
2398 </p>
2399 <table border="1" width="100%">
2400 <tr>
2401 <th width="10%">NAME</th>
2402 <th width="10%">TYPE</th>
2403 <th width="15%">DEFAULT</th>
2404 <th>DESCRIPTION</th>
2405 <th width="15%">DEC-GUARD</th>
2406 </tr>
2407 <tr>
2408 <td>name</td>
2409 <td>roomname</td>
2410 <td> </td>
2411 <td>
2412
2413  
2414 </td>
2415 <td>
2416 <b></b>
2417  
2418 </td>
2419 </tr>
2420 <tr>
2421 <td>channel</td>
2422 <td>U16</td>
2423 <td> </td>
2424 <td>
2425
2426  
2427 </td>
2428 <td>
2429 <b></b>
2430  
2431 </td>
2432 </tr>
2433 <tr>
2434 <td>flags</td>
2435 <td>U32</td>
2436 <td> </td>
2437 <td>
2438
2439  
2440 </td>
2441 <td>
2442 <b></b>
2443  
2444 </td>
2445 </tr>
2446 <tr>
2447 <td>users</td>
2448 <td>U32</td>
2449 <td> </td>
2450 <td>
2451
2452  
2453 </td>
2454 <td>
2455 <b></b>
2456  
2457 </td>
2458 </tr>
2459 </table>
2460
2461 <h4>STRUCTURE room</h4>
2462 CLASS: KGS::Room<br />
2463 <p>
2464 </p>
2465 <table border="1" width="100%">
2466 <tr>
2467 <th width="10%">NAME</th>
2468 <th width="10%">TYPE</th>
2469 <th width="15%">DEFAULT</th>
2470 <th>DESCRIPTION</th>
2471 <th width="15%">DEC-GUARD</th>
2472 </tr>
2473 <tr>
2474 <td>channel</td>
2475 <td>U16</td>
2476 <td> </td>
2477 <td>
2478
2479  
2480 </td>
2481 <td>
2482 <b></b>
2483  
2484 </td>
2485 </tr>
2486 <tr>
2487 <td>flags</td>
2488 <td>U8</td>
2489 <td> </td>
2490 <td>
2491
2492  
2493 </td>
2494 <td>
2495 <b></b>
2496  
2497 </td>
2498 </tr>
2499 <tr>
2500 <td>group</td>
2501 <td>U8</td>
2502 <td> </td>
2503 <td>
2504
2505  
2506 </td>
2507 <td>
2508 <b></b>
2509  
2510 </td>
2511 </tr>
2512 <tr>
2513 <td>users</td>
2514 <td>U16</td>
2515 <td> </td>
2516 <td>
2517
2518  
2519 </td>
2520 <td>
2521 <b></b>
2522  
2523 </td>
2524 </tr>
2525 <tr>
2526 <td>games</td>
2527 <td>U16</td>
2528 <td> </td>
2529 <td>
2530
2531  
2532 </td>
2533 <td>
2534 <b></b>
2535  
2536 </td>
2537 </tr>
2538 <tr>
2539 <td>name</td>
2540 <td>STRING</td>
2541 <td> </td>
2542 <td>
2543
2544  
2545 </td>
2546 <td>
2547 <b></b>
2548  
2549 </td>
2550 </tr>
2551 </table>
2552
2553 <h4>STRUCTURE scorevalues</h4>
2554 CLASS: KGS::Score<br />
2555 <p>
2556 </p>
2557 <table border="1" width="100%">
2558 <tr>
2559 <th width="10%">NAME</th>
2560 <th width="10%">TYPE</th>
2561 <th width="15%">DEFAULT</th>
2562 <th>DESCRIPTION</th>
2563 <th width="15%">DEC-GUARD</th>
2564 </tr>
2565 <tr>
2566 <td>score</td>
2567 <td>score32</td>
2568 <td> </td>
2569 <td>
2570
2571  
2572 </td>
2573 <td>
2574 <b></b>
2575  
2576 </td>
2577 </tr>
2578 <tr>
2579 <td>territory</td>
2580 <td>U32</td>
2581 <td> </td>
2582 <td>
2583
2584  
2585 </td>
2586 <td>
2587 <b></b>
2588  
2589 </td>
2590 </tr>
2591 <tr>
2592 <td>captures</td>
2593 <td>U32</td>
2594 <td> </td>
2595 <td>
2596
2597  
2598 </td>
2599 <td>
2600 <b></b>
2601  
2602 </td>
2603 </tr>
2604 <tr>
2605 <td>i3</td>
2606 <td>U32</td>
2607 <td> </td>
2608 <td>
2609
2610  
2611 </td>
2612 <td>
2613 <b></b>
2614  
2615 </td>
2616 </tr>
2617 <tr>
2618 <td>f2</td>
2619 <td>U32</td>
2620 <td> </td>
2621 <td>
2622
2623  
2624 </td>
2625 <td>
2626 <b></b>
2627  
2628 </td>
2629 </tr>
2630 <tr>
2631 <td>komi</td>
2632 <td>komi324</td>
2633 <td> </td>
2634 <td>
2635
2636  
2637 </td>
2638 <td>
2639 <b></b>
2640  
2641 </td>
2642 </tr>
2643 <tr>
2644 <td>i4</td>
2645 <td>U32</td>
2646 <td> </td>
2647 <td>
2648 Apparently the i3, f2, i4 are zero.
2649
2650  
2651 </td>
2652 <td>
2653 <b></b>
2654  
2655 </td>
2656 </tr>
2657 </table>
2658
2659 <h4>STRUCTURE game_record</h4>
2660 CLASS: KGS::GameRecord<br />
2661 <p>
2662 <p>A single game record entry, as seen in <a href="#R0008">userinfo(0008)</a>.</p>
2663 </p>
2664 <table border="1" width="100%">
2665 <tr>
2666 <th width="10%">NAME</th>
2667 <th width="10%">TYPE</th>
2668 <th width="15%">DEFAULT</th>
2669 <th>DESCRIPTION</th>
2670 <th width="15%">DEC-GUARD</th>
2671 </tr>
2672 <tr>
2673 <td>timestamp</td>
2674 <td>timestamp</td>
2675 <td> </td>
2676 <td>
2677 Time this game was played.
2678
2679  
2680 </td>
2681 <td>
2682 <b></b>
2683  
2684 </td>
2685 </tr>
2686 <tr>
2687 <td>flags</td>
2688 <td>U8</td>
2689 <td> </td>
2690 <td>
2691 High four bits are handicap, low four bits are gametype (encoded strangely? unclear).
2692
2693  
2694 </td>
2695 <td>
2696 <b></b>
2697  
2698 </td>
2699 </tr>
2700 <tr>
2701 <td>user1</td>
2702 <td>user</td>
2703 <td> </td>
2704 <td>
2705 White, flags contain low 8 bits of revision (bits 16-23).
2706
2707  
2708 </td>
2709 <td>
2710 <b></b>
2711  
2712 </td>
2713 </tr>
2714 <tr>
2715 <td>user2</td>
2716 <td>user</td>
2717 <td> </td>
2718 <td>
2719 Black, flags contain high 8 bits of revision (bits 16-23).
2720
2721  
2722 </td>
2723 <td>
2724 <b></b>
2725  
2726 </td>
2727 </tr>
2728 <tr>
2729 <td>user3</td>
2730 <td>user</td>
2731 <td> </td>
2732 <td>
2733 Owner (or empty)
2734
2735  
2736 </td>
2737 <td>
2738 <b></b>
2739  
2740 </td>
2741 </tr>
2742 <tr>
2743 <td>komi</td>
2744 <td>komi16</td>
2745 <td> </td>
2746 <td>
2747
2748  
2749 </td>
2750 <td>
2751 <b></b>
2752  
2753 </td>
2754 </tr>
2755 <tr>
2756 <td>score</td>
2757 <td>score16</td>
2758 <td> </td>
2759 <td>
2760
2761  
2762 </td>
2763 <td>
2764 <b></b>
2765  
2766 </td>
2767 </tr>
2768 <tr>
2769 <td>status</td>
2770 <td>U8</td>
2771 <td> </td>
2772 <td>
2773 0x80 inprogress
2774
2775  
2776 </td>
2777 <td>
2778 <b></b>
2779  
2780 </td>
2781 </tr>
2782 </table>
2783
2784 <h2>Receive messages</h2>
2785
2786 <h4>
2787 <a name="R0001"></a>RECV
2788 MESSAGE login</h4>
2789 NUMERIC TYPE (hex): 0001
2790 (possibly in response to
2791 <a href="#S0000">login(0000)</a>
2792 )
2793 <p>
2794 </p>
2795 <table border="1" width="100%">
2796 <tr>
2797 <th width="10%">NAME</th>
2798 <th width="10%">TYPE</th>
2799 <th width="15%">DEFAULT</th>
2800 <th>DESCRIPTION</th>
2801 <th width="15%">DEC-GUARD</th>
2802 </tr>
2803 <tr>
2804 <td>result</td>
2805 <td>CONSTANT</td>
2806 <td>"login ok" </td>
2807 <td>
2808
2809  
2810 </td>
2811 <td>
2812 <b></b>
2813  
2814 </td>
2815 </tr>
2816 <tr>
2817 <td>success</td>
2818 <td>CONSTANT</td>
2819 <td>1 </td>
2820 <td>
2821
2822  
2823 </td>
2824 <td>
2825 <b></b>
2826  
2827 </td>
2828 </tr>
2829 </table>
2830
2831 <h4>
2832 <a name="R0002"></a>RECV
2833 MESSAGE login</h4>
2834 NUMERIC TYPE (hex): 0002
2835 (possibly in response to
2836 <a href="#S0000">login(0000)</a>
2837 )
2838 <p>
2839 </p>
2840 <table border="1" width="100%">
2841 <tr>
2842 <th width="10%">NAME</th>
2843 <th width="10%">TYPE</th>
2844 <th width="15%">DEFAULT</th>
2845 <th>DESCRIPTION</th>
2846 <th width="15%">DEC-GUARD</th>
2847 </tr>
2848 <tr>
2849 <td>result</td>
2850 <td>CONSTANT</td>
2851 <td>"guest login ok" </td>
2852 <td>
2853
2854  
2855 </td>
2856 <td>
2857 <b></b>
2858  
2859 </td>
2860 </tr>
2861 <tr>
2862 <td>success</td>
2863 <td>CONSTANT</td>
2864 <td>1 </td>
2865 <td>
2866
2867  
2868 </td>
2869 <td>
2870 <b></b>
2871  
2872 </td>
2873 </tr>
2874 </table>
2875
2876 <h4>
2877 <a name="R0003"></a>RECV
2878 MESSAGE login</h4>
2879 NUMERIC TYPE (hex): 0003
2880 (possibly in response to
2881 <a href="#S0000">login(0000)</a>
2882 )
2883 <p>
2884 </p>
2885 <table border="1" width="100%">
2886 <tr>
2887 <th width="10%">NAME</th>
2888 <th width="10%">TYPE</th>
2889 <th width="15%">DEFAULT</th>
2890 <th>DESCRIPTION</th>
2891 <th width="15%">DEC-GUARD</th>
2892 </tr>
2893 <tr>
2894 <td>result</td>
2895 <td>CONSTANT</td>
2896 <td>"login error 3" </td>
2897 <td>
2898 ** maybe more following? **
2899
2900  
2901 </td>
2902 <td>
2903 <b></b>
2904  
2905 </td>
2906 </tr>
2907 </table>
2908
2909 <h4>
2910 <a name="R0004"></a>RECV
2911 MESSAGE login</h4>
2912 NUMERIC TYPE (hex): 0004
2913 (possibly in response to
2914 <a href="#S0000">login(0000)</a>
2915 )
2916 <p>
2917 </p>
2918 <table border="1" width="100%">
2919 <tr>
2920 <th width="10%">NAME</th>
2921 <th width="10%">TYPE</th>
2922 <th width="15%">DEFAULT</th>
2923 <th>DESCRIPTION</th>
2924 <th width="15%">DEC-GUARD</th>
2925 </tr>
2926 <tr>
2927 <td>result</td>
2928 <td>CONSTANT</td>
2929 <td>"wrong password" </td>
2930 <td>
2931 ** maybe more following? **
2932
2933  
2934 </td>
2935 <td>
2936 <b></b>
2937  
2938 </td>
2939 </tr>
2940 </table>
2941
2942 <h4>
2943 <a name="R0005"></a>RECV
2944 MESSAGE login</h4>
2945 NUMERIC TYPE (hex): 0005
2946 (possibly in response to
2947 <a href="#S0000">login(0000)</a>
2948 )
2949 <p>
2950 </p>
2951 <table border="1" width="100%">
2952 <tr>
2953 <th width="10%">NAME</th>
2954 <th width="10%">TYPE</th>
2955 <th width="15%">DEFAULT</th>
2956 <th>DESCRIPTION</th>
2957 <th width="15%">DEC-GUARD</th>
2958 </tr>
2959 <tr>
2960 <td>result</td>
2961 <td>CONSTANT</td>
2962 <td>"user unknown" </td>
2963 <td>
2964 ** maybe more following? **
2965
2966  
2967 </td>
2968 <td>
2969 <b></b>
2970  
2971 </td>
2972 </tr>
2973 </table>
2974
2975 <h4>
2976 <a name="R0006"></a>RECV
2977 MESSAGE login</h4>
2978 NUMERIC TYPE (hex): 0006
2979 (possibly in response to
2980 <a href="#S0000">login(0000)</a>
2981 )
2982 <p>
2983 </p>
2984 <table border="1" width="100%">
2985 <tr>
2986 <th width="10%">NAME</th>
2987 <th width="10%">TYPE</th>
2988 <th width="15%">DEFAULT</th>
2989 <th>DESCRIPTION</th>
2990 <th width="15%">DEC-GUARD</th>
2991 </tr>
2992 <tr>
2993 <td>result</td>
2994 <td>CONSTANT</td>
2995 <td>"user exists" </td>
2996 <td>
2997 ** maybe more following? **
2998
2999  
3000 </td>
3001 <td>
3002 <b></b>
3003  
3004 </td>
3005 </tr>
3006 </table>
3007
3008 <h4>
3009 <a name="R0008"></a>RECV
3010 MESSAGE userinfo</h4>
3011 NUMERIC TYPE (hex): 0008
3012 (possibly in response to
3013 <a href="#S0007">req_userinfo(0007)</a>
3014 )
3015 <p>
3016 User info.
3017 </p>
3018 <table border="1" width="100%">
3019 <tr>
3020 <th width="10%">NAME</th>
3021 <th width="10%">TYPE</th>
3022 <th width="15%">DEFAULT</th>
3023 <th>DESCRIPTION</th>
3024 <th width="15%">DEC-GUARD</th>
3025 </tr>
3026 <tr>
3027 <td>user</td>
3028 <td>user</td>
3029 <td> </td>
3030 <td>
3031
3032  
3033 </td>
3034 <td>
3035 <b></b>
3036  
3037 </td>
3038 </tr>
3039 <tr>
3040 <td>_unused</td>
3041 <td>U64</td>
3042 <td> </td>
3043 <td>
3044
3045  
3046 </td>
3047 <td>
3048 <b></b>
3049  
3050 </td>
3051 </tr>
3052 <tr>
3053 <td>realname</td>
3054 <td>realname</td>
3055 <td> </td>
3056 <td>
3057
3058  
3059 </td>
3060 <td>
3061 <b></b>
3062  
3063 </td>
3064 </tr>
3065 <tr>
3066 <td>email</td>
3067 <td>email</td>
3068 <td> </td>
3069 <td>
3070
3071  
3072 </td>
3073 <td>
3074 <b></b>
3075  
3076 </td>
3077 </tr>
3078 <tr>
3079 <td>info</td>
3080 <td>userinfo</td>
3081 <td> </td>
3082 <td>
3083
3084  
3085 </td>
3086 <td>
3087 <b></b>
3088  
3089 </td>
3090 </tr>
3091 <tr>
3092 <td>homepage</td>
3093 <td>url</td>
3094 <td> </td>
3095 <td>
3096
3097  
3098 </td>
3099 <td>
3100 <b></b>
3101  
3102 </td>
3103 </tr>
3104 <tr>
3105 <td>regdate</td>
3106 <td>timestamp</td>
3107 <td> </td>
3108 <td>
3109 When the user registered (0 == never registered).
3110
3111  
3112 </td>
3113 <td>
3114 <b></b>
3115  
3116 </td>
3117 </tr>
3118 <tr>
3119 <td>lastlogin</td>
3120 <td>timestamp</td>
3121 <td> </td>
3122 <td>
3123 When the user logged in for the last time.
3124
3125  
3126 </td>
3127 <td>
3128 <b></b>
3129  
3130 </td>
3131 </tr>
3132 </table>
3133
3134 <h4>
3135 <a name="R0018"></a>RECV
3136 MESSAGE login</h4>
3137 NUMERIC TYPE (hex): 0018
3138 (possibly in response to
3139 <a href="#S0000">login(0000)</a>
3140 )
3141 <p>
3142 </p>
3143 <table border="1" width="100%">
3144 <tr>
3145 <th width="10%">NAME</th>
3146 <th width="10%">TYPE</th>
3147 <th width="15%">DEFAULT</th>
3148 <th>DESCRIPTION</th>
3149 <th width="15%">DEC-GUARD</th>
3150 </tr>
3151 <tr>
3152 <td>result</td>
3153 <td>CONSTANT</td>
3154 <td>"login error 18" </td>
3155 <td>
3156 ** maybe more following? **
3157
3158  
3159 </td>
3160 <td>
3161 <b></b>
3162  
3163 </td>
3164 </tr>
3165 </table>
3166
3167 <h4>
3168 <a name="R0022"></a>RECV
3169 MESSAGE login</h4>
3170 NUMERIC TYPE (hex): 0022
3171 (possibly in response to
3172 <a href="#S0000">login(0000)</a>
3173 )
3174 <p>
3175 I was blocked sooo many times for developing this client that it was
3176 easy to figure out. The KGS admins sure need no extra nazi training
3177 :(
3178 </p>
3179 <table border="1" width="100%">
3180 <tr>
3181 <th width="10%">NAME</th>
3182 <th width="10%">TYPE</th>
3183 <th width="15%">DEFAULT</th>
3184 <th>DESCRIPTION</th>
3185 <th width="15%">DEC-GUARD</th>
3186 </tr>
3187 <tr>
3188 <td>reason</td>
3189 <td>STRING</td>
3190 <td> </td>
3191 <td>
3192
3193  
3194 </td>
3195 <td>
3196 <b></b>
3197  
3198 </td>
3199 </tr>
3200 <tr>
3201 <td>result</td>
3202 <td>CONSTANT</td>
3203 <td>"user or ip blocked" </td>
3204 <td>
3205
3206  
3207 </td>
3208 <td>
3209 <b></b>
3210  
3211 </td>
3212 </tr>
3213 </table>
3214
3215 <h4>
3216 <a name="R0013"></a>RECV
3217 MESSAGE msg_chat</h4>
3218 NUMERIC TYPE (hex): 0013<p>
3219 </p>
3220 <table border="1" width="100%">
3221 <tr>
3222 <th width="10%">NAME</th>
3223 <th width="10%">TYPE</th>
3224 <th width="15%">DEFAULT</th>
3225 <th>DESCRIPTION</th>
3226 <th width="15%">DEC-GUARD</th>
3227 </tr>
3228 <tr>
3229 <td>user1</td>
3230 <td>username</td>
3231 <td> </td>
3232 <td>
3233
3234  
3235 </td>
3236 <td>
3237 <b></b>
3238  
3239 </td>
3240 </tr>
3241 <tr>
3242 <td>user2</td>
3243 <td>username</td>
3244 <td> </td>
3245 <td>
3246
3247  
3248 </td>
3249 <td>
3250 <b></b>
3251  
3252 </td>
3253 </tr>
3254 <tr>
3255 <td>message</td>
3256 <td>STRING</td>
3257 <td> </td>
3258 <td>
3259
3260  
3261 </td>
3262 <td>
3263 <b></b>
3264  
3265 </td>
3266 </tr>
3267 </table>
3268
3269 <h4>
3270 <a name="R0015"></a>RECV
3271 MESSAGE stats</h4>
3272 NUMERIC TYPE (hex): 0015
3273 (possibly in response to
3274 <a href="#S0014">req_stats(0014)</a>
3275 )
3276 <p>
3277 </p>
3278 <table border="1" width="100%">
3279 <tr>
3280 <th width="10%">NAME</th>
3281 <th width="10%">TYPE</th>
3282 <th width="15%">DEFAULT</th>
3283 <th>DESCRIPTION</th>
3284 <th width="15%">DEC-GUARD</th>
3285 </tr>
3286 <tr>
3287 <td>ver_major</td>
3288 <td>U16</td>
3289 <td> </td>
3290 <td>
3291
3292  
3293 </td>
3294 <td>
3295 <b></b>
3296  
3297 </td>
3298 </tr>
3299 <tr>
3300 <td>ver_minor</td>
3301 <td>U16</td>
3302 <td> </td>
3303 <td>
3304
3305  
3306 </td>
3307 <td>
3308 <b></b>
3309  
3310 </td>
3311 </tr>
3312 <tr>
3313 <td>ver_micro</td>
3314 <td>U16</td>
3315 <td> </td>
3316 <td>
3317
3318  
3319 </td>
3320 <td>
3321 <b></b>
3322  
3323 </td>
3324 </tr>
3325 <tr>
3326 <td>boot_time</td>
3327 <td>timestamp</td>
3328 <td> </td>
3329 <td>
3330
3331  
3332 </td>
3333 <td>
3334 <b></b>
3335  
3336 </td>
3337 </tr>
3338 <tr>
3339 <td>users_cur</td>
3340 <td>U32</td>
3341 <td> </td>
3342 <td>
3343
3344  
3345 </td>
3346 <td>
3347 <b></b>
3348  
3349 </td>
3350 </tr>
3351 <tr>
3352 <td>users_max</td>
3353 <td>U32</td>
3354 <td> </td>
3355 <td>
3356
3357  
3358 </td>
3359 <td>
3360 <b></b>
3361  
3362 </td>
3363 </tr>
3364 <tr>
3365 <td>users_lim</td>
3366 <td>U32</td>
3367 <td> </td>
3368 <td>
3369
3370  
3371 </td>
3372 <td>
3373 <b></b>
3374  
3375 </td>
3376 </tr>
3377 <tr>
3378 <td>accts_cur</td>
3379 <td>U32</td>
3380 <td> </td>
3381 <td>
3382
3383  
3384 </td>
3385 <td>
3386 <b></b>
3387  
3388 </td>
3389 </tr>
3390 <tr>
3391 <td>accts_max</td>
3392 <td>U32</td>
3393 <td> </td>
3394 <td>
3395
3396  
3397 </td>
3398 <td>
3399 <b></b>
3400  
3401 </td>
3402 </tr>
3403 <tr>
3404 <td>unknown1</td>
3405 <td>U32</td>
3406 <td> </td>
3407 <td>
3408
3409  
3410 </td>
3411 <td>
3412 <b></b>
3413  
3414 </td>
3415 </tr>
3416 <tr>
3417 <td>work_max</td>
3418 <td>U32</td>
3419 <td> </td>
3420 <td>
3421
3422  
3423 </td>
3424 <td>
3425 <b></b>
3426  
3427 </td>
3428 </tr>
3429 <tr>
3430 <td>rooms_cur</td>
3431 <td>U32</td>
3432 <td> </td>
3433 <td>
3434
3435  
3436 </td>
3437 <td>
3438 <b></b>
3439  
3440 </td>
3441 </tr>
3442 <tr>
3443 <td>rooms_max</td>
3444 <td>U32</td>
3445 <td> </td>
3446 <td>
3447
3448  
3449 </td>
3450 <td>
3451 <b></b>
3452  
3453 </td>
3454 </tr>
3455 <tr>
3456 <td>rooms_lim</td>
3457 <td>U32</td>
3458 <td> </td>
3459 <td>
3460
3461  
3462 </td>
3463 <td>
3464 <b></b>
3465  
3466 </td>
3467 </tr>
3468 <tr>
3469 <td>games_cur</td>
3470 <td>U32</td>
3471 <td> </td>
3472 <td>
3473
3474  
3475 </td>
3476 <td>
3477 <b></b>
3478  
3479 </td>
3480 </tr>
3481 <tr>
3482 <td>games_max</td>
3483 <td>U32</td>
3484 <td> </td>
3485 <td>
3486
3487  
3488 </td>
3489 <td>
3490 <b></b>
3491  
3492 </td>
3493 </tr>
3494 <tr>
3495 <td>games_lim</td>
3496 <td>U32</td>
3497 <td> </td>
3498 <td>
3499
3500  
3501 </td>
3502 <td>
3503 <b></b>
3504  
3505 </td>
3506 </tr>
3507 <tr>
3508 <td>results_cur</td>
3509 <td>U32</td>
3510 <td> </td>
3511 <td>
3512
3513  
3514 </td>
3515 <td>
3516 <b></b>
3517  
3518 </td>
3519 </tr>
3520 <tr>
3521 <td>results_max</td>
3522 <td>U32</td>
3523 <td> </td>
3524 <td>
3525
3526  
3527 </td>
3528 <td>
3529 <b></b>
3530  
3531 </td>
3532 </tr>
3533 <tr>
3534 <td>unknown2</td>
3535 <td>U32</td>
3536 <td> </td>
3537 <td>
3538
3539  
3540 </td>
3541 <td>
3542 <b></b>
3543  
3544 </td>
3545 </tr>
3546 <tr>
3547 <td>params_cur</td>
3548 <td>U32</td>
3549 <td> </td>
3550 <td>
3551
3552  
3553 </td>
3554 <td>
3555 <b></b>
3556  
3557 </td>
3558 </tr>
3559 <tr>
3560 <td>params_max</td>
3561 <td>U32</td>
3562 <td> </td>
3563 <td>
3564
3565  
3566 </td>
3567 <td>
3568 <b></b>
3569  
3570 </td>
3571 </tr>
3572 <tr>
3573 <td>bytes_in</td>
3574 <td>U64</td>
3575 <td> </td>
3576 <td>
3577
3578  
3579 </td>
3580 <td>
3581 <b></b>
3582  
3583 </td>
3584 </tr>
3585 <tr>
3586 <td>packets_in</td>
3587 <td>U64</td>
3588 <td> </td>
3589 <td>
3590
3591  
3592 </td>
3593 <td>
3594 <b></b>
3595  
3596 </td>
3597 </tr>
3598 <tr>
3599 <td>bytes_out</td>
3600 <td>U64</td>
3601 <td> </td>
3602 <td>
3603
3604  
3605 </td>
3606 <td>
3607 <b></b>
3608  
3609 </td>
3610 </tr>
3611 <tr>
3612 <td>packets_out</td>
3613 <td>U64</td>
3614 <td> </td>
3615 <td>
3616
3617  
3618 </td>
3619 <td>
3620 <b></b>
3621  
3622 </td>
3623 </tr>
3624 </table>
3625
3626 <h4>
3627 <a name="R0016"></a>RECV
3628 MESSAGE idle_warn</h4>
3629 NUMERIC TYPE (hex): 0016<p>
3630 idle warning, autologout soon (10 minutes...)
3631 </p>
3632 <table border="1" width="100%">
3633 <tr>
3634 <th width="10%">NAME</th>
3635 <th width="10%">TYPE</th>
3636 <th width="15%">DEFAULT</th>
3637 <th>DESCRIPTION</th>
3638 <th width="15%">DEC-GUARD</th>
3639 </tr>
3640 </table>
3641
3642 <h4>
3643 <a name="R001b"></a>RECV
3644 MESSAGE timewarning_default</h4>
3645 NUMERIC TYPE (hex): 001b
3646 (possibly in response to
3647 <a href="#S0000">login(0000)</a>
3648 )
3649 <p>
3650 WILD guess
3651 </p>
3652 <table border="1" width="100%">
3653 <tr>
3654 <th width="10%">NAME</th>
3655 <th width="10%">TYPE</th>
3656 <th width="15%">DEFAULT</th>
3657 <th>DESCRIPTION</th>
3658 <th width="15%">DEC-GUARD</th>
3659 </tr>
3660 <tr>
3661 <td>channel</td>
3662 <td>U16</td>
3663 <td> </td>
3664 <td>
3665
3666  
3667 </td>
3668 <td>
3669 <b></b>
3670  
3671 </td>
3672 </tr>
3673 <tr>
3674 <td>time</td>
3675 <td>U16</td>
3676 <td> </td>
3677 <td>
3678
3679  
3680 </td>
3681 <td>
3682 <b></b>
3683  
3684 </td>
3685 </tr>
3686 </table>
3687
3688 <h4>
3689 <a name="R001c"></a>RECV
3690 MESSAGE idle_err</h4>
3691 NUMERIC TYPE (hex): 001c<p>
3692 autologout
3693 </p>
3694 <table border="1" width="100%">
3695 <tr>
3696 <th width="10%">NAME</th>
3697 <th width="10%">TYPE</th>
3698 <th width="15%">DEFAULT</th>
3699 <th>DESCRIPTION</th>
3700 <th width="15%">DEC-GUARD</th>
3701 </tr>
3702 </table>
3703
3704 <h4>
3705 <a name="R001d"></a>RECV
3706 MESSAGE ping</h4>
3707 NUMERIC TYPE (hex): 001d<p>
3708 Sent by the server regularly, but not answering them
3709 isn't valid. Strange form of keepalive?
3710 </p>
3711 <table border="1" width="100%">
3712 <tr>
3713 <th width="10%">NAME</th>
3714 <th width="10%">TYPE</th>
3715 <th width="15%">DEFAULT</th>
3716 <th>DESCRIPTION</th>
3717 <th width="15%">DEC-GUARD</th>
3718 </tr>
3719 </table>
3720
3721 <h4>
3722 <a name="R001e"></a>RECV
3723 MESSAGE usergraph</h4>
3724 NUMERIC TYPE (hex): 001e
3725 (possibly in response to
3726 <a href="#S001e">req_usergraph(001e)</a>
3727 )
3728 <p>
3729 User graph data.
3730 </p>
3731 <table border="1" width="100%">
3732 <tr>
3733 <th width="10%">NAME</th>
3734 <th width="10%">TYPE</th>
3735 <th width="15%">DEFAULT</th>
3736 <th>DESCRIPTION</th>
3737 <th width="15%">DEC-GUARD</th>
3738 </tr>
3739 <tr>
3740 <td>data</td>
3741 <td>I16</td>
3742 <td> </td>
3743 <td>
3744 If empty, no graph is available. The unit seems to
3745 be centi-kyu, with 1 dan == 0, 2 dan == 100, 1 kyu == -100.
3746 There is probably one entry per day, the newest one last.
3747
3748  
3749 </td>
3750 <td>
3751 <b></b>
3752  
3753 </td>
3754 </tr>
3755 </table>
3756
3757 <h4>
3758 <a name="R001f"></a>RECV
3759 MESSAGE memo</h4>
3760 NUMERIC TYPE (hex): 001f
3761 (possibly in response to
3762 <a href="#S001f">fetch_memos(001f)</a>
3763 )
3764 <p>
3765 Unclear. "Leave Message"?
3766 6 strings following.
3767 </p>
3768 <table border="1" width="100%">
3769 <tr>
3770 <th width="10%">NAME</th>
3771 <th width="10%">TYPE</th>
3772 <th width="15%">DEFAULT</th>
3773 <th>DESCRIPTION</th>
3774 <th width="15%">DEC-GUARD</th>
3775 </tr>
3776 <tr>
3777 <td>s1</td>
3778 <td>STRING</td>
3779 <td> </td>
3780 <td>
3781
3782  
3783 </td>
3784 <td>
3785 <b></b>
3786  
3787 </td>
3788 </tr>
3789 <tr>
3790 <td>s2</td>
3791 <td>STRING</td>
3792 <td> </td>
3793 <td>
3794
3795  
3796 </td>
3797 <td>
3798 <b></b>
3799  
3800 </td>
3801 </tr>
3802 <tr>
3803 <td>s3</td>
3804 <td>STRING</td>
3805 <td> </td>
3806 <td>
3807
3808  
3809 </td>
3810 <td>
3811 <b></b>
3812  
3813 </td>
3814 </tr>
3815 <tr>
3816 <td>s4</td>
3817 <td>STRING</td>
3818 <td> </td>
3819 <td>
3820
3821  
3822 </td>
3823 <td>
3824 <b></b>
3825  
3826 </td>
3827 </tr>
3828 <tr>
3829 <td>s5</td>
3830 <td>STRING</td>
3831 <td> </td>
3832 <td>
3833
3834  
3835 </td>
3836 <td>
3837 <b></b>
3838  
3839 </td>
3840 </tr>
3841 <tr>
3842 <td>s6</td>
3843 <td>STRING</td>
3844 <td> </td>
3845 <td>
3846
3847  
3848 </td>
3849 <td>
3850 <b></b>
3851  
3852 </td>
3853 </tr>
3854 </table>
3855
3856 <h4>
3857 <a name="R0021"></a>RECV
3858 MESSAGE userpic</h4>
3859 NUMERIC TYPE (hex): 0021
3860 (possibly in response to
3861 <a href="#S0021">req_pic(0021)</a>
3862 )
3863 <p>
3864 </p>
3865 <table border="1" width="100%">
3866 <tr>
3867 <th width="10%">NAME</th>
3868 <th width="10%">TYPE</th>
3869 <th width="15%">DEFAULT</th>
3870 <th>DESCRIPTION</th>
3871 <th width="15%">DEC-GUARD</th>
3872 </tr>
3873 <tr>
3874 <td>name</td>
3875 <td>username</td>
3876 <td> </td>
3877 <td>
3878 Reply to pic_req, contains an image in jpeg format.
3879
3880  
3881 </td>
3882 <td>
3883 <b></b>
3884  
3885 </td>
3886 </tr>
3887 <tr>
3888 <td>data</td>
3889 <td>DATA</td>
3890 <td> </td>
3891 <td>
3892
3893  
3894 </td>
3895 <td>
3896 <b></b>
3897  
3898 </td>
3899 </tr>
3900 </table>
3901
3902 <h4>
3903 <a name="R0100"></a>RECV
3904 MESSAGE gnotice</h4>
3905 NUMERIC TYPE (hex): 0100
3906 (possibly in response to
3907 <a href="#S0100">gnotice(0100)</a>
3908 )
3909 <p>
3910 global notice, sent to everybody
3911 </p>
3912 <table border="1" width="100%">
3913 <tr>
3914 <th width="10%">NAME</th>
3915 <th width="10%">TYPE</th>
3916 <th width="15%">DEFAULT</th>
3917 <th>DESCRIPTION</th>
3918 <th width="15%">DEC-GUARD</th>
3919 </tr>
3920 <tr>
3921 <td>notice</td>
3922 <td>STRING</td>
3923 <td> </td>
3924 <td>
3925
3926  
3927 </td>
3928 <td>
3929 <b></b>
3930  
3931 </td>
3932 </tr>
3933 </table>
3934
3935 <h4>
3936 <a name="R0202"></a>RECV
3937 MESSAGE upd_user</h4>
3938 NUMERIC TYPE (hex): 0202<p>
3939 # maybe soe notify? Totally unclear.
3940 # loc 0" type="chat(?) loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
3941 </p>
3942 <table border="1" width="100%">
3943 <tr>
3944 <th width="10%">NAME</th>
3945 <th width="10%">TYPE</th>
3946 <th width="15%">DEFAULT</th>
3947 <th>DESCRIPTION</th>
3948 <th width="15%">DEC-GUARD</th>
3949 </tr>
3950 <tr>
3951 <td>location</td>
3952 <td>U32</td>
3953 <td> </td>
3954 <td>
3955
3956  
3957 </td>
3958 <td>
3959 <b></b>
3960  
3961 </td>
3962 </tr>
3963 <tr>
3964 <td>user</td>
3965 <td>user</td>
3966 <td> </td>
3967 <td>
3968
3969  
3970 </td>
3971 <td>
3972 <b></b>
3973  
3974 </td>
3975 </tr>
3976 <tr>
3977 <td>lotsofinfo</td>
3978 <td>DATA</td>
3979 <td> </td>
3980 <td>
3981
3982  
3983 </td>
3984 <td>
3985 <b>location</b> == 2
3986  
3987 </td>
3988 </tr>
3989 </table>
3990
3991 <h4>
3992 <a name="R0310"></a>RECV
3993 MESSAGE priv_room</h4>
3994 NUMERIC TYPE (hex): 0310<p>
3995 "permission denied" when joining a room
3996 </p>
3997 <table border="1" width="100%">
3998 <tr>
3999 <th width="10%">NAME</th>
4000 <th width="10%">TYPE</th>
4001 <th width="15%">DEFAULT</th>
4002 <th>DESCRIPTION</th>
4003 <th width="15%">DEC-GUARD</th>
4004 </tr>
4005 <tr>
4006 <td>name</td>
4007 <td>STRING</td>
4008 <td> </td>
4009 <td>
4010
4011  
4012 </td>
4013 <td>
4014 <b></b>
4015  
4016 </td>
4017 </tr>
4018 </table>
4019
4020 <h4>
4021 <a name="R0318"></a>RECV
4022 MESSAGE upd_rooms</h4>
4023 NUMERIC TYPE (hex): 0318
4024 (possibly in response to
4025 <a href="#S0318">list_rooms(0318)</a>
4026 )
4027 <p>
4028 </p>
4029 <table border="1" width="100%">
4030 <tr>
4031 <th width="10%">NAME</th>
4032 <th width="10%">TYPE</th>
4033 <th width="15%">DEFAULT</th>
4034 <th>DESCRIPTION</th>
4035 <th width="15%">DEC-GUARD</th>
4036 </tr>
4037 <tr>
4038 <td>rooms</td>
4039 <td>room</td>
4040 <td> </td>
4041 <td>
4042
4043  
4044 </td>
4045 <td>
4046 <b></b>
4047  
4048 </td>
4049 </tr>
4050 </table>
4051
4052 <h4>
4053 <a name="R0411"></a>RECV
4054 MESSAGE chal_defaults</h4>
4055 NUMERIC TYPE (hex): 0411
4056 (possibly in response to
4057 <a href="#S0000">login(0000)</a>
4058 )
4059 <p>
4060 </p>
4061 <table border="1" width="100%">
4062 <tr>
4063 <th width="10%">NAME</th>
4064 <th width="10%">TYPE</th>
4065 <th width="15%">DEFAULT</th>
4066 <th>DESCRIPTION</th>
4067 <th width="15%">DEC-GUARD</th>
4068 </tr>
4069 <tr>
4070 <td>channel</td>
4071 <td>U16</td>
4072 <td> </td>
4073 <td>
4074
4075  
4076 </td>
4077 <td>
4078 <b></b>
4079  
4080 </td>
4081 </tr>
4082 <tr>
4083 <td>defaults</td>
4084 <td>challenge_defaults</td>
4085 <td> </td>
4086 <td>
4087
4088  
4089 </td>
4090 <td>
4091 <b></b>
4092  
4093 </td>
4094 </tr>
4095 </table>
4096
4097 <h4>
4098 <a name="S0412"></a>SEND
4099 MESSAGE rej_game</h4>
4100 NUMERIC TYPE (hex): 0412<p>
4101 Unable to create challenge. The channel might be optional.
4102 </p>
4103 <table border="1" width="100%">
4104 <tr>
4105 <th width="10%">NAME</th>
4106 <th width="10%">TYPE</th>
4107 <th width="15%">DEFAULT</th>
4108 <th>DESCRIPTION</th>
4109 <th width="15%">DEC-GUARD</th>
4110 </tr>
4111 <tr>
4112 <td>channel</td>
4113 <td>U16</td>
4114 <td> </td>
4115 <td>
4116
4117  
4118 </td>
4119 <td>
4120 <b></b>
4121  
4122 </td>
4123 </tr>
4124 </table>
4125
4126 <h4>
4127 <a name="R0414"></a>RECV
4128 MESSAGE game_record</h4>
4129 NUMERIC TYPE (hex): 0414
4130 (possibly in response to
4131 <a href="#S0413">req_game_record(0413)</a>
4132 )
4133 <p>
4134 The users game record.
4135 </p>
4136 <table border="1" width="100%">
4137 <tr>
4138 <th width="10%">NAME</th>
4139 <th width="10%">TYPE</th>
4140 <th width="15%">DEFAULT</th>
4141 <th>DESCRIPTION</th>
4142 <th width="15%">DEC-GUARD</th>
4143 </tr>
4144 <tr>
4145 <td>name</td>
4146 <td>username</td>
4147 <td> </td>
4148 <td>
4149
4150  
4151 </td>
4152 <td>
4153 <b></b>
4154  
4155 </td>
4156 </tr>
4157 <tr>
4158 <td>more</td>
4159 <td>flag</td>
4160 <td> </td>
4161 <td>
4162 Wether more games are available (must be requested manually)
4163
4164  
4165 </td>
4166 <td>
4167 <b></b>
4168  
4169 </td>
4170 </tr>
4171 <tr>
4172 <td>games</td>
4173 <td>game_record</td>
4174 <td> </td>
4175 <td>
4176
4177  
4178 </td>
4179 <td>
4180 <b></b>
4181  
4182 </td>
4183 </tr>
4184 </table>
4185
4186 <h4>
4187 <a name="R041c"></a>RECV
4188 MESSAGE upd_game2</h4>
4189 NUMERIC TYPE (hex): 041c<p>
4190 Unclear.
4191 </p>
4192 <table border="1" width="100%">
4193 <tr>
4194 <th width="10%">NAME</th>
4195 <th width="10%">TYPE</th>
4196 <th width="15%">DEFAULT</th>
4197 <th>DESCRIPTION</th>
4198 <th width="15%">DEC-GUARD</th>
4199 </tr>
4200 <tr>
4201 <td>channel_junk</td>
4202 <td>U16</td>
4203 <td> </td>
4204 <td>
4205
4206  
4207 </td>
4208 <td>
4209 <b></b>
4210  
4211 </td>
4212 </tr>
4213 <tr>
4214 <td>game</td>
4215 <td>game</td>
4216 <td> </td>
4217 <td>
4218
4219  
4220 </td>
4221 <td>
4222 <b></b>
4223  
4224 </td>
4225 </tr>
4226 </table>
4227
4228 <h3>Room messages</h3>
4229
4230 <p>Not all room messages are for rooms only, and rooms need to parse
4231 not only these messages. Orthogonality, what for?</p>
4232
4233 <h4>
4234 <a name="R4300"></a>RECV
4235 MESSAGE join_room</h4>
4236 NUMERIC TYPE (hex): 4300
4237 (possibly in response to
4238 <a href="#S4300">join_room(4300)</a>
4239 )
4240 <p>
4241 </p>
4242 <table border="1" width="100%">
4243 <tr>
4244 <th width="10%">NAME</th>
4245 <th width="10%">TYPE</th>
4246 <th width="15%">DEFAULT</th>
4247 <th>DESCRIPTION</th>
4248 <th width="15%">DEC-GUARD</th>
4249 </tr>
4250 <tr>
4251 <td>channel</td>
4252 <td>U16</td>
4253 <td> </td>
4254 <td>
4255
4256  
4257 </td>
4258 <td>
4259 <b></b>
4260  
4261 </td>
4262 </tr>
4263 <tr>
4264 <td>users</td>
4265 <td>user</td>
4266 <td> </td>
4267 <td>
4268
4269  
4270 </td>
4271 <td>
4272 <b></b>
4273  
4274 </td>
4275 </tr>
4276 </table>
4277
4278 <h4>
4279 <a name="R4301"></a>RECV
4280 MESSAGE msg_room</h4>
4281 NUMERIC TYPE (hex): 4301<p>
4282 </p>
4283 <table border="1" width="100%">
4284 <tr>
4285 <th width="10%">NAME</th>
4286 <th width="10%">TYPE</th>
4287 <th width="15%">DEFAULT</th>
4288 <th>DESCRIPTION</th>
4289 <th width="15%">DEC-GUARD</th>
4290 </tr>
4291 <tr>
4292 <td>channel</td>
4293 <td>U16</td>
4294 <td> </td>
4295 <td>
4296
4297  
4298 </td>
4299 <td>
4300 <b></b>
4301  
4302 </td>
4303 </tr>
4304 <tr>
4305 <td>name</td>
4306 <td>username</td>
4307 <td> </td>
4308 <td>
4309
4310  
4311 </td>
4312 <td>
4313 <b></b>
4314  
4315 </td>
4316 </tr>
4317 <tr>
4318 <td>message</td>
4319 <td>STRING</td>
4320 <td> </td>
4321 <td>
4322
4323  
4324 </td>
4325 <td>
4326 <b></b>
4327  
4328 </td>
4329 </tr>
4330 </table>
4331
4332 <h4>
4333 <a name="R4302"></a>RECV
4334 MESSAGE part_room</h4>
4335 NUMERIC TYPE (hex): 4302<p>
4336 </p>
4337 <table border="1" width="100%">
4338 <tr>
4339 <th width="10%">NAME</th>
4340 <th width="10%">TYPE</th>
4341 <th width="15%">DEFAULT</th>
4342 <th>DESCRIPTION</th>
4343 <th width="15%">DEC-GUARD</th>
4344 </tr>
4345 <tr>
4346 <td>channel</td>
4347 <td>U16</td>
4348 <td> </td>
4349 <td>
4350
4351  
4352 </td>
4353 <td>
4354 <b></b>
4355  
4356 </td>
4357 </tr>
4358 <tr>
4359 <td>user</td>
4360 <td>user</td>
4361 <td> </td>
4362 <td>
4363
4364  
4365 </td>
4366 <td>
4367 <b></b>
4368  
4369 </td>
4370 </tr>
4371 </table>
4372
4373 <h4>
4374 <a name="R4303"></a>RECV
4375 MESSAGE del_room</h4>
4376 NUMERIC TYPE (hex): 4303<p>
4377 </p>
4378 <table border="1" width="100%">
4379 <tr>
4380 <th width="10%">NAME</th>
4381 <th width="10%">TYPE</th>
4382 <th width="15%">DEFAULT</th>
4383 <th>DESCRIPTION</th>
4384 <th width="15%">DEC-GUARD</th>
4385 </tr>
4386 <tr>
4387 <td>channel</td>
4388 <td>U16</td>
4389 <td> </td>
4390 <td>
4391
4392  
4393 </td>
4394 <td>
4395 <b></b>
4396  
4397 </td>
4398 </tr>
4399 </table>
4400
4401 <h4>
4402 <a name="R4304"></a>RECV
4403 MESSAGE upd_games</h4>
4404 NUMERIC TYPE (hex): 4304<p>
4405 </p>
4406 <table border="1" width="100%">
4407 <tr>
4408 <th width="10%">NAME</th>
4409 <th width="10%">TYPE</th>
4410 <th width="15%">DEFAULT</th>
4411 <th>DESCRIPTION</th>
4412 <th width="15%">DEC-GUARD</th>
4413 </tr>
4414 <tr>
4415 <td>channel</td>
4416 <td>U16</td>
4417 <td> </td>
4418 <td>
4419
4420  
4421 </td>
4422 <td>
4423 <b></b>
4424  
4425 </td>
4426 </tr>
4427 <tr>
4428 <td>games</td>
4429 <td>game</td>
4430 <td> </td>
4431 <td>
4432
4433  
4434 </td>
4435 <td>
4436 <b></b>
4437  
4438 </td>
4439 </tr>
4440 </table>
4441
4442 <h4>
4443 <a name="R4319"></a>RECV
4444 MESSAGE desc_room</h4>
4445 NUMERIC TYPE (hex): 4319<p>
4446 </p>
4447 <table border="1" width="100%">
4448 <tr>
4449 <th width="10%">NAME</th>
4450 <th width="10%">TYPE</th>
4451 <th width="15%">DEFAULT</th>
4452 <th>DESCRIPTION</th>
4453 <th width="15%">DEC-GUARD</th>
4454 </tr>
4455 <tr>
4456 <td>channel</td>
4457 <td>U16</td>
4458 <td> </td>
4459 <td>
4460
4461  
4462 </td>
4463 <td>
4464 <b></b>
4465  
4466 </td>
4467 </tr>
4468 <tr>
4469 <td>owner</td>
4470 <td>username</td>
4471 <td> </td>
4472 <td>
4473
4474  
4475 </td>
4476 <td>
4477 <b></b>
4478  
4479 </td>
4480 </tr>
4481 <tr>
4482 <td>description</td>
4483 <td>STRING</td>
4484 <td> </td>
4485 <td>
4486
4487  
4488 </td>
4489 <td>
4490 <b></b>
4491  
4492 </td>
4493 </tr>
4494 </table>
4495 <h3>Game messages</h3>
4496
4497 <h4>
4498 <a name="R4400"></a>RECV
4499 MESSAGE upd_chal</h4>
4500 NUMERIC TYPE (hex): 4400<p>
4501 Unclear.
4502 </p>
4503 <table border="1" width="100%">
4504 <tr>
4505 <th width="10%">NAME</th>
4506 <th width="10%">TYPE</th>
4507 <th width="15%">DEFAULT</th>
4508 <th>DESCRIPTION</th>
4509 <th width="15%">DEC-GUARD</th>
4510 </tr>
4511 <tr>
4512 <td>channel</td>
4513 <td>U16</td>
4514 <td> </td>
4515 <td>
4516
4517  
4518 </td>
4519 <td>
4520 <b></b>
4521  
4522 </td>
4523 </tr>
4524 <tr>
4525 <td>challenge</td>
4526 <td>challenge</td>
4527 <td> </td>
4528 <td>
4529
4530  
4531 </td>
4532 <td>
4533 <b></b>
4534  
4535 </td>
4536 </tr>
4537 </table>
4538
4539 <h4>
4540 <a name="R4401"></a>RECV
4541 MESSAGE upd_game</h4>
4542 NUMERIC TYPE (hex): 4401<p>
4543 </p>
4544 <table border="1" width="100%">
4545 <tr>
4546 <th width="10%">NAME</th>
4547 <th width="10%">TYPE</th>
4548 <th width="15%">DEFAULT</th>
4549 <th>DESCRIPTION</th>
4550 <th width="15%">DEC-GUARD</th>
4551 </tr>
4552 <tr>
4553 <td>channel</td>
4554 <td>U16</td>
4555 <td> </td>
4556 <td>
4557
4558  
4559 </td>
4560 <td>
4561 <b></b>
4562  
4563 </td>
4564 </tr>
4565 <tr>
4566 <td>game</td>
4567 <td>game</td>
4568 <td> </td>
4569 <td>
4570
4571  
4572 </td>
4573 <td>
4574 <b></b>
4575  
4576 </td>
4577 </tr>
4578 </table>
4579
4580 <h4>
4581 <a name="R4402"></a>RECV
4582 MESSAGE del_game</h4>
4583 NUMERIC TYPE (hex): 4402<p>
4584 </p>
4585 <table border="1" width="100%">
4586 <tr>
4587 <th width="10%">NAME</th>
4588 <th width="10%">TYPE</th>
4589 <th width="15%">DEFAULT</th>
4590 <th>DESCRIPTION</th>
4591 <th width="15%">DEC-GUARD</th>
4592 </tr>
4593 <tr>
4594 <td>channel</td>
4595 <td>U16</td>
4596 <td> </td>
4597 <td>
4598
4599  
4600 </td>
4601 <td>
4602 <b></b>
4603  
4604 </td>
4605 </tr>
4606 </table>
4607
4608 <h4>
4609 <a name="R4403"></a>RECV
4610 MESSAGE upd_observers</h4>
4611 NUMERIC TYPE (hex): 4403<p>
4612 </p>
4613 <table border="1" width="100%">
4614 <tr>
4615 <th width="10%">NAME</th>
4616 <th width="10%">TYPE</th>
4617 <th width="15%">DEFAULT</th>
4618 <th>DESCRIPTION</th>
4619 <th width="15%">DEC-GUARD</th>
4620 </tr>
4621 <tr>
4622 <td>channel</td>
4623 <td>U16</td>
4624 <td> </td>
4625 <td>
4626
4627  
4628 </td>
4629 <td>
4630 <b></b>
4631  
4632 </td>
4633 </tr>
4634 <tr>
4635 <td>users</td>
4636 <td>user</td>
4637 <td> </td>
4638 <td>
4639
4640  
4641 </td>
4642 <td>
4643 <b></b>
4644  
4645 </td>
4646 </tr>
4647 </table>
4648
4649 <h4>
4650 <a name="R4404"></a>RECV
4651 MESSAGE del_observer</h4>
4652 NUMERIC TYPE (hex): 4404<p>
4653 </p>
4654 <table border="1" width="100%">
4655 <tr>
4656 <th width="10%">NAME</th>
4657 <th width="10%">TYPE</th>
4658 <th width="15%">DEFAULT</th>
4659 <th>DESCRIPTION</th>
4660 <th width="15%">DEC-GUARD</th>
4661 </tr>
4662 <tr>
4663 <td>channel</td>
4664 <td>U16</td>
4665 <td> </td>
4666 <td>
4667
4668  
4669 </td>
4670 <td>
4671 <b></b>
4672  
4673 </td>
4674 </tr>
4675 <tr>
4676 <td>name</td>
4677 <td>username</td>
4678 <td> </td>
4679 <td>
4680
4681  
4682 </td>
4683 <td>
4684 <b></b>
4685  
4686 </td>
4687 </tr>
4688 </table>
4689
4690 <h4>
4691 <a name="R4405"></a>RECV
4692 MESSAGE set_tree</h4>
4693 NUMERIC TYPE (hex): 4405<p>
4694 </p>
4695 <table border="1" width="100%">
4696 <tr>
4697 <th width="10%">NAME</th>
4698 <th width="10%">TYPE</th>
4699 <th width="15%">DEFAULT</th>
4700 <th>DESCRIPTION</th>
4701 <th width="15%">DEC-GUARD</th>
4702 </tr>
4703 <tr>
4704 <td>channel</td>
4705 <td>U16</td>
4706 <td> </td>
4707 <td>
4708
4709  
4710 </td>
4711 <td>
4712 <b></b>
4713  
4714 </td>
4715 </tr>
4716 <tr>
4717 <td>tree</td>
4718 <td>TREE</td>
4719 <td> </td>
4720 <td>
4721
4722  
4723 </td>
4724 <td>
4725 <b></b>
4726  
4727 </td>
4728 </tr>
4729 </table>
4730
4731 <h4>
4732 <a name="R4406"></a>RECV
4733 MESSAGE upd_tree</h4>
4734 NUMERIC TYPE (hex): 4406<p>
4735 </p>
4736 <table border="1" width="100%">
4737 <tr>
4738 <th width="10%">NAME</th>
4739 <th width="10%">TYPE</th>
4740 <th width="15%">DEFAULT</th>
4741 <th>DESCRIPTION</th>
4742 <th width="15%">DEC-GUARD</th>
4743 </tr>
4744 <tr>
4745 <td>channel</td>
4746 <td>U16</td>
4747 <td> </td>
4748 <td>
4749
4750  
4751 </td>
4752 <td>
4753 <b></b>
4754  
4755 </td>
4756 </tr>
4757 <tr>
4758 <td>tree</td>
4759 <td>TREE</td>
4760 <td> </td>
4761 <td>
4762
4763  
4764 </td>
4765 <td>
4766 <b></b>
4767  
4768 </td>
4769 </tr>
4770 </table>
4771
4772 <h4>
4773 <a name="R4407"></a>RECV
4774 MESSAGE set_node</h4>
4775 NUMERIC TYPE (hex): 4407<p>
4776 </p>
4777 <table border="1" width="100%">
4778 <tr>
4779 <th width="10%">NAME</th>
4780 <th width="10%">TYPE</th>
4781 <th width="15%">DEFAULT</th>
4782 <th>DESCRIPTION</th>
4783 <th width="15%">DEC-GUARD</th>
4784 </tr>
4785 <tr>
4786 <td>channel</td>
4787 <td>U16</td>
4788 <td> </td>
4789 <td>
4790
4791  
4792 </td>
4793 <td>
4794 <b></b>
4795  
4796 </td>
4797 </tr>
4798 <tr>
4799 <td>node</td>
4800 <td>U32</td>
4801 <td> </td>
4802 <td>
4803
4804  
4805 </td>
4806 <td>
4807 <b></b>
4808  
4809 </td>
4810 </tr>
4811 </table>
4812
4813 <h4>
4814 <a name="R4409"></a>RECV
4815 MESSAGE superko</h4>
4816 NUMERIC TYPE (hex): 4409<p>
4817 Superko-warning.
4818 </p>
4819 <table border="1" width="100%">
4820 <tr>
4821 <th width="10%">NAME</th>
4822 <th width="10%">TYPE</th>
4823 <th width="15%">DEFAULT</th>
4824 <th>DESCRIPTION</th>
4825 <th width="15%">DEC-GUARD</th>
4826 </tr>
4827 <tr>
4828 <td>channel</td>
4829 <td>U16</td>
4830 <td> </td>
4831 <td>
4832
4833  
4834 </td>
4835 <td>
4836 <b></b>
4837  
4838 </td>
4839 </tr>
4840 </table>
4841
4842 <h4>
4843 <a name="R440b"></a>RECV
4844 MESSAGE final_result</h4>
4845 NUMERIC TYPE (hex): 440b<p>
4846 </p>
4847 <table border="1" width="100%">
4848 <tr>
4849 <th width="10%">NAME</th>
4850 <th width="10%">TYPE</th>
4851 <th width="15%">DEFAULT</th>
4852 <th>DESCRIPTION</th>
4853 <th width="15%">DEC-GUARD</th>
4854 </tr>
4855 <tr>
4856 <td>channel</td>
4857 <td>U16</td>
4858 <td> </td>
4859 <td>
4860
4861  
4862 </td>
4863 <td>
4864 <b></b>
4865  
4866 </td>
4867 </tr>
4868 <tr>
4869 <td>blackscore</td>
4870 <td>scorevalues</td>
4871 <td> </td>
4872 <td>
4873
4874  
4875 </td>
4876 <td>
4877 <b></b>
4878  
4879 </td>
4880 </tr>
4881 <tr>
4882 <td>whitescore</td>
4883 <td>scorevalues</td>
4884 <td> </td>
4885 <td>
4886
4887  
4888 </td>
4889 <td>
4890 <b></b>
4891  
4892 </td>
4893 </tr>
4894 </table>
4895
4896 <h4>
4897 <a name="R440e"></a>RECV
4898 MESSAGE req_undo</h4>
4899 NUMERIC TYPE (hex): 440e<p>
4900 </p>
4901 <table border="1" width="100%">
4902 <tr>
4903 <th width="10%">NAME</th>
4904 <th width="10%">TYPE</th>
4905 <th width="15%">DEFAULT</th>
4906 <th>DESCRIPTION</th>
4907 <th width="15%">DEC-GUARD</th>
4908 </tr>
4909 <tr>
4910 <td>channel</td>
4911 <td>U16</td>
4912 <td> </td>
4913 <td>
4914
4915
4916  
4917 </td>
4918 <td>
4919 <b></b>
4920  
4921 </td>
4922 </tr>
4923 </table>
4924
4925 <h4>
4926 <a name="R4410"></a>RECV
4927 MESSAGE resign_game</h4>
4928 NUMERIC TYPE (hex): 4410<p>
4929 </p>
4930 <table border="1" width="100%">
4931 <tr>
4932 <th width="10%">NAME</th>
4933 <th width="10%">TYPE</th>
4934 <th width="15%">DEFAULT</th>
4935 <th>DESCRIPTION</th>
4936 <th width="15%">DEC-GUARD</th>
4937 </tr>
4938 <tr>
4939 <td>channel</td>
4940 <td>U16</td>
4941 <td> </td>
4942 <td>
4943
4944  
4945 </td>
4946 <td>
4947 <b></b>
4948  
4949 </td>
4950 </tr>
4951 <tr>
4952 <td>player</td>
4953 <td>U8</td>
4954 <td> </td>
4955 <td>
4956
4957  
4958 </td>
4959 <td>
4960 <b></b>
4961  
4962 </td>
4963 </tr>
4964 </table>
4965
4966 <h4>
4967 <a name="R441a"></a>RECV
4968 MESSAGE set_teacher</h4>
4969 NUMERIC TYPE (hex): 441a<p>
4970 </p>
4971 <table border="1" width="100%">
4972 <tr>
4973 <th width="10%">NAME</th>
4974 <th width="10%">TYPE</th>
4975 <th width="15%">DEFAULT</th>
4976 <th>DESCRIPTION</th>
4977 <th width="15%">DEC-GUARD</th>
4978 </tr>
4979 <tr>
4980 <td>channel</td>
4981 <td>U16</td>
4982 <td> </td>
4983 <td>
4984
4985  
4986 </td>
4987 <td>
4988 <b></b>
4989  
4990 </td>
4991 </tr>
4992 <tr>
4993 <td>name</td>
4994 <td>username</td>
4995 <td> </td>
4996 <td>
4997
4998  
4999 </td>
5000 <td>
5001 <b></b>
5002  
5003 </td>
5004 </tr>
5005 </table>
5006
5007 <h4>
5008 <a name="R441d"></a>RECV
5009 MESSAGE owner_left</h4>
5010 NUMERIC TYPE (hex): 441d<p>
5011 Unclear.
5012 </p>
5013 <table border="1" width="100%">
5014 <tr>
5015 <th width="10%">NAME</th>
5016 <th width="10%">TYPE</th>
5017 <th width="15%">DEFAULT</th>
5018 <th>DESCRIPTION</th>
5019 <th width="15%">DEC-GUARD</th>
5020 </tr>
5021 <tr>
5022 <td>channel</td>
5023 <td>U16</td>
5024 <td> </td>
5025 <td>
5026
5027  
5028 </td>
5029 <td>
5030 <b></b>
5031  
5032 </td>
5033 </tr>
5034 </table>
5035
5036 <h4>
5037 <a name="R441e"></a>RECV
5038 MESSAGE teacher_left</h4>
5039 NUMERIC TYPE (hex): 441e<p>
5040 Unclear.
5041 </p>
5042 <table border="1" width="100%">
5043 <tr>
5044 <th width="10%">NAME</th>
5045 <th width="10%">TYPE</th>
5046 <th width="15%">DEFAULT</th>
5047 <th>DESCRIPTION</th>
5048 <th width="15%">DEC-GUARD</th>
5049 </tr>
5050 <tr>
5051 <td>channel</td>
5052 <td>U16</td>
5053 <td> </td>
5054 <td>
5055
5056  
5057 </td>
5058 <td>
5059 <b></b>
5060  
5061 </td>
5062 </tr>
5063 </table>
5064
5065 <h4>
5066 <a name="R4422"></a>RECV
5067 MESSAGE unknown4422</h4>
5068 NUMERIC TYPE (hex): 4422<p>
5069 change teacher? something to do with editing?
5070 </p>
5071 <table border="1" width="100%">
5072 <tr>
5073 <th width="10%">NAME</th>
5074 <th width="10%">TYPE</th>
5075 <th width="15%">DEFAULT</th>
5076 <th>DESCRIPTION</th>
5077 <th width="15%">DEC-GUARD</th>
5078 </tr>
5079 <tr>
5080 <td>channel</td>
5081 <td>U16</td>
5082 <td> </td>
5083 <td>
5084
5085  
5086 </td>
5087 <td>
5088 <b></b>
5089  
5090 </td>
5091 </tr>
5092 <tr>
5093 <td>name1</td>
5094 <td>username</td>
5095 <td> </td>
5096 <td>
5097
5098  
5099 </td>
5100 <td>
5101 <b></b>
5102  
5103 </td>
5104 </tr>
5105 <tr>
5106 <td>name2</td>
5107 <td>username</td>
5108 <td> </td>
5109 <td>
5110
5111  
5112 </td>
5113 <td>
5114 <b></b>
5115  
5116 </td>
5117 </tr>
5118 </table>
5119
5120 <h4>
5121 <a name="R4433"></a>RECV
5122 MESSAGE req_result</h4>
5123 NUMERIC TYPE (hex): 4433<p>
5124 Unclear.
5125 </p>
5126 <table border="1" width="100%">
5127 <tr>
5128 <th width="10%">NAME</th>
5129 <th width="10%">TYPE</th>
5130 <th width="15%">DEFAULT</th>
5131 <th>DESCRIPTION</th>
5132 <th width="15%">DEC-GUARD</th>
5133 </tr>
5134 <tr>
5135 <td>channel</td>
5136 <td>U16</td>
5137 <td> </td>
5138 <td>
5139 # # recv_result(?)
5140
5141  
5142 </td>
5143 <td>
5144 <b></b>
5145  
5146 </td>
5147 </tr>
5148 </table>
5149
5150 <h4>
5151 <a name="R4434"></a>RECV
5152 MESSAGE unknown4434</h4>
5153 NUMERIC TYPE (hex): 4434<p>
5154 </p>
5155 <table border="1" width="100%">
5156 <tr>
5157 <th width="10%">NAME</th>
5158 <th width="10%">TYPE</th>
5159 <th width="15%">DEFAULT</th>
5160 <th>DESCRIPTION</th>
5161 <th width="15%">DEC-GUARD</th>
5162 </tr>
5163 <tr>
5164 <td>channel</td>
5165 <td>U16</td>
5166 <td> </td>
5167 <td>
5168
5169  
5170 </td>
5171 <td>
5172 <b></b>
5173  
5174 </td>
5175 </tr>
5176 <tr>
5177 <td>b1</td>
5178 <td>U8</td>
5179 <td> </td>
5180 <td>
5181 ?? !demonstration game??
5182
5183  
5184 </td>
5185 <td>
5186 <b></b>
5187  
5188 </td>
5189 </tr>
5190 </table>
5191
5192 </body>
5193 </html>