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