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