1<!DOCTYPE html> 2<HTML> 3 4<HEAD> 5 <META http-equiv="Content-Type" content="text/html; charset=utf-8"> 6 <META http-equiv="Content-Style-Type" content="text/css"> 7 <META http-equiv="X-UA-Compatible" content="IE=8" > 8 9 <TITLE>CTR-SDK Glossary</TITLE> 10 11 <STYLE> 12 h1.left 13 { 14 color: #46f; 15 font-size: 120%; 16 } 17 ul.left, ul.left ul 18 { 19 margin: 0; 20 padding: 0; 21 } 22 ul.left li 23 { 24 margin: 0; 25 padding: 0; 26 margin-left: 1em; 27 } 28 H1 29 { 30 font-weight : bold; 31 font-size : 250%; 32 text-align : left; 33 color : #46f; 34 margin-bottom : 0px; 35 } 36 37 H2 38 { 39 font-weight : normal; 40 font-size : 180%; 41 margin : 24pt 0pt 6pt 0pt; 42 border-bottom-style : solid; 43 border-bottom-width : 1px; 44 } 45 46 H3 47 { 48 font-weight : bold; 49 font-size : 120%; 50 border-bottom-style : solid; 51 border-bottom-width : 1px; 52 width: 75%; 53 margin : 18pt 0pt 6pt 30pt; 54 } 55 56 H4 57 { 58 font-weight : bold; 59 font-size : 100%; 60 margin : 12pt 0pt 6pt 30pt; 61 } 62 63 H5 64 { 65 font-weight : bold; 66 margin : 12pt 0pt 6pt 30pt; 67 } 68 69 H6 70 { 71 font-weight : bold; 72 margin : 12pt 0pt 6pt 30pt; 73 } 74 75 DIV.date 76 { 77 text-align : right; 78 color : #46f; 79 margin-bottom : 30pt; 80 line-height : 150%; 81 } 82 83 P 84 { 85 margin : 0pt 0pt 12pt 30pt; 86 line-height : 150%; 87 } 88 89 OL,UL,DL 90 { 91 margin : 6pt 0pt 6pt 50pt; 92 } 93 OL OL, UL UL 94 { 95 margin-left: 3em; 96 } 97 98 DT 99 { 100 font-family : "Courier New", monospace; 101 margin-top : 0.3em; 102 margin-bottom : 0.3em; 103 } 104 DD 105 { 106 margin-top : 0.3em; 107 margin-bottom : 0.6em; 108 } 109 110 PRE 111 { 112 font-family : "Courier New", monospace; 113 font-weight : normal; 114 115 margin : 0pt 0pt 6pt 50pt; 116 padding : 2pt 8pt 2pt 8pt; 117 background-color : #eee; 118 119 border-style : solid; 120 border-width : 1px; 121 } 122 em 123 { 124 font-style: normal; 125 color: red; 126 } 127 TABLE 128 { 129 margin-left : 40pt; 130 margin-bottom : 20pt; 131 border-color : #aaa; 132 border-width : 1pt; 133 border-style : solid; 134 } 135 TD 136 { 137 font-style : normal; 138 padding : 2pt 4pt 2pt 4pt; 139 140 border-color : #aaa; 141 border-width : 1pt; 142 border-style : solid; 143 } 144 div.footer 145 { 146 border-color: black; 147 padding-top: 0.5em; 148 border-top-style : solid; 149 border-top-width : 1px; 150 width: 100%; 151 margin-top: 4em;; 152 } 153 div.footer span 154 { 155 color : #46f; 156 float: right; 157 } 158 table.diff 159 { 160 border: none; 161 } 162 table.diff td 163 { 164 border: none; 165 border-bottom: solid 1px black; 166 } 167 table.diff div.wii,table.diff div.twl,table.diff div.card,table.diff div.nand 168 { 169 padding: 0.2em 0.3em; 170 } 171 table.diff div.card 172 { 173 background-color: #A88; 174 border: solid 1px #FFF; 175 color: #FFF; 176 } 177 table.diff div.wii 178 { 179 background-color: #88A; 180 border: solid 1px #FFF; 181 color: #FFF; 182 } 183 table.diff div.twl,table.diff div.nand 184 { 185 background-color: #FFE; 186 border: solid 1px #0D9; 187 color: #0D9; 188 } 189 div.popup 190 { 191 position: absolute; 192 background-color: #FFFEF9; 193 border: solid 1px #B5B200; 194 border-style: none solid solid none; 195 font-size: 0.8em; 196 padding: 1em; 197 } 198 dd 199 { 200 margin-bottom: 1em; 201 } 202 </STYLE> 203 <SCRIPT type="text/javascript"> 204 <!-- 205 206 var Global = { 207 root: document.documentElement, 208 popup: null, 209 popupMap: {}, 210 popupIndex: 0 211 }; 212 213 if( ! Event.stopPropagation ) 214 { 215 Event.prototype.stopPropagation = function() 216 { 217 this.cancelBubble = true; 218 } 219 } 220 Event.prototype.GetTarget = function() 221 { 222 if( this.target ) 223 { 224 return this.target; 225 } 226 else 227 { 228 return this.srcElement; 229 } 230 } 231 if( ! Element.prototype.addEventListener ) 232 { 233 Element.prototype.addEventListener = function(type, listener, useCapture) 234 { 235 var helper = function() 236 { 237 if( listener.handleEvent ) 238 { 239 return listener.handleEvent.apply(listener, arguments); 240 } 241 else 242 { 243 return listener.apply(null, arguments); 244 } 245 }; 246 247 this.attachEvent("on" + type, helper); 248 } 249 } 250 251 function CallMethod(obj, method) 252 { 253 return new function() 254 { 255 return method.apply(obj, arguments) 256 }; 257 } 258 function WordPopup(x, y, word) 259 { 260 function MakeHtml(word) 261 { 262 var dd = document.getElementById("word-" + word); 263 return dd.innerHTML; 264 } 265 this.CloseChild = function() 266 { 267 if( this.child != null ) 268 { 269 this.child.Close(); 270 this.child = null; 271 } 272 } 273 this.Close = function() 274 { 275 if( this.obj != null ) 276 { 277 this.CloseChild(); 278 279 document.body.removeChild(this.obj); 280 delete Global.popupMap[this.id]; 281 this.obj = null; 282 } 283 } 284 this.SetChild = function(child) 285 { 286 this.CloseChild(); 287 this.child = child; 288 } 289 this.OnMouseOver = function(e) 290 { 291 e.stopPropagation(); 292 293 var target = e.GetTarget(); 294 295 if( target.nodeType == 1 ) 296 { 297 if( target.tagName == "A" ) 298 { 299 return; 300 } 301 } 302 303 this.CloseChild(); 304 } 305 this.handleEvent = function(e) 306 { 307 if( e.type == "mouseover" ) 308 { 309 this.OnMouseOver(e); 310 } 311 } 312 313 this.child = null; 314 this.word = word; 315 this.id = Global.popupIndex++; 316 317 this.obj = document.createElement("div"); 318 this.obj.className = "popup"; 319 this.obj.id = "popup-" + this.id; 320 this.obj.innerHTML = MakeHtml(word); 321 this.obj.style.left = x + "px"; 322 this.obj.style.top = y + "px"; 323 324 Global.popupMap[this.id] = this; 325 326 this.obj.addEventListener("mouseover", this, false); 327 328 document.body.insertBefore(this.obj, null); 329 } 330 function DeleteRule(index) 331 { 332 var ss = document.styleSheets.item(0); 333 334 if( ss.removeRule ) 335 { 336 ss.removeRule(index); 337 } 338 else 339 { 340 ss.deleteRule(index); 341 } 342 } 343 function OnClickAnchor(e, anchor) 344 { 345 window.parent.frames[1].location.hash = anchor; 346 347 if( e.preventDefault ) 348 { 349 e.preventDefault(); 350 } 351 else 352 { 353 e.returnValue = false; 354 } 355 } 356 function trav(obj) 357 { 358 var ary = new Array(); 359 360 for( var i = 0; i < obj.childNodes.length; ++i ) 361 { 362 var c = obj.childNodes.item(i); 363 364 if( c.nodeType == 1 ) 365 { 366 if( c.tagName == "H2" || c.tagName == "H3" ) 367 { 368 var a = c.childNodes.item(0); 369 var text = ""; 370 var anchor = ""; 371 372 if( a && a.tagName == "A" ) 373 { 374 text = a.innerHTML; 375 anchor = a.name; 376 } 377 else 378 { 379 text = c.innerHTML; 380 } 381 382 ary.push([c.tagName.substr(1,1), "<a target=\"right\" href=\"?right#" + anchor + "\" onclick=\"OnClickAnchor(event, '" + anchor + "')\">" + text + "</a>"]); 383 } 384 else 385 { 386 ary = ary.concat(trav(c)); 387 } 388 } 389 } 390 391 return ary; 392 } 393 function GetNextTagIndex(obj, tagName, start) 394 { 395 for( var i = start; i < obj.childNodes.length; ++i ) 396 { 397 var c = obj.childNodes.item(i); 398 399 if( c.nodeType == 1 ) 400 { 401 if( c.nodeName == tagName ) 402 { 403 return i; 404 } 405 } 406 } 407 408 return -1; 409 } 410 function OnOverWord(e, word) 411 { 412 e.stopPropagation(); 413 var ex = e.clientX + Global.root.scrollLeft; 414 var ey = e.clientY + Global.root.scrollTop; 415 var target = e.GetTarget(); 416 417 if( target.nodeType == 1 ) 418 { 419 if( target.tagName == "A" ) 420 { 421 if( target.parentNode.tagName == "DIV" ) 422 { 423 var parentId = target.parentNode.id.match(/\d+/); 424 var parent = Global.popupMap[parentId]; 425 parent.SetChild(new WordPopup(ex, ey, word)); 426 } 427 else 428 { 429 if( Global.popup != null ) 430 { 431 if( Global.popup.word == word ) 432 { 433 return; 434 } 435 436 Global.popup.Close(); 437 } 438 439 Global.popup = new WordPopup(ex, ey, word);; 440 } 441 } 442 } 443 } 444 function CollectWords() 445 { 446 var dls = document.getElementsByTagName("dl"); 447 var words = []; 448 449 for( var i = 0; i < dls.length; ++i ) 450 { 451 var dl = dls[i]; 452 453 for( var j = 0; j < dl.childNodes.length; ) 454 { 455 var dti = GetNextTagIndex(dl, "DT", j); 456 if( dti < 0 ) 457 { 458 break; 459 } 460 461 var ddi = GetNextTagIndex(dl, "DD", dti); 462 if( ddi < 0 ) 463 { 464 break; 465 } 466 467 var dt = dl.childNodes.item(dti); 468 var dd = dl.childNodes.item(ddi); 469 470 j = ddi + 1; 471 472 var wordName = dt.innerHTML.replace(/^\s+|\s+$/, ""); 473 if( wordName ) 474 { 475 words.push(wordName); 476 dt.innerHTML = "<a name=\"" + wordName + "\">" + wordName + "</a>"; 477 dd.id = "word-" + wordName; 478 } 479 } 480 } 481 482 return words.sort(function(a, b){ return b.length - a.length; }); 483 } 484 function ReplaceWords(text, words) 485 { 486 for( var k = 0; k < words.length; ++k ) 487 { 488 var word = words[k]; 489 text = text.replace(word, "<a href=\"#" + word + "\">" + word + "</a>"); 490 } 491 492 return text; 493 } 494 function LinkWords(words) 495 { 496 var dls = document.getElementsByTagName("dl"); 497 498 var reText = words.join("|"); 499 var re = new RegExp(reText); 500 501 for( var i = 0; i < dls.length; ++i ) 502 { 503 var dl = dls[i]; 504 505 for( var j = 0; j < dl.childNodes.length; ) 506 { 507 var ddi = GetNextTagIndex(dl, "DD", j); 508 if( ddi < 0 ) 509 { 510 break; 511 } 512 513 var dd = dl.childNodes.item(ddi); 514 515 j = ddi + 1; 516 517 var html = dd.innerHTML; 518 var replaced = ""; 519 520 while( html.match(re) ) 521 { 522 var word = RegExp.lastMatch; 523 var offset = RegExp.leftContext.length; 524 replaced += html.substr(0, offset); 525 replaced += "<a href=\"#" + word + "\" onmouseover=\"OnOverWord(event, '" + word + "')\">" + word + "</a>"; 526 html = html.substr(offset + word.length); 527 } 528 529 dd.innerHTML = replaced + html; 530 } 531 } 532 } 533 function OnLoad_Left() 534 { 535 var test = trav(document.body); 536 var test2 = ""; 537 var level = 2; 538 539 test2 += "<ul class='left'>"; 540 for( var i in test ) 541 { 542 while( test[i][0] > level ) 543 { 544 level++; 545 test2 += "<ul>"; 546 } 547 while( test[i][0] < level ) 548 { 549 level--; 550 test2 += "</ul>"; 551 } 552 553 test2 += "<li>" + test[i][1]; 554 } 555 test2 += "</ul>"; 556 557 document.body.innerHTML = test2; 558 DeleteRule(0); 559 } 560 function OnLoad_Frame() 561 { 562 var myname = location.pathname.substr(location.pathname.lastIndexOf("/") + 1); 563 564 var f = document.createElement("frameset"); 565 var l = document.createElement("frame"); 566 var r = document.createElement("frame"); 567 568 f.appendChild(l); 569 f.appendChild(r); 570 f.cols = "150,*"; 571 572 l.src = myname + "?left"; 573 r.src = myname + "?right"; 574 l.name = "left"; 575 r.name = "right"; 576 577 var h = document.documentElement; 578 var b = h.getElementsByTagName("body").item(0); 579 580 h.replaceChild(f, b); 581 } 582 function OnLoad_Right() 583 { 584 document.body.addEventListener("mouseover", OnMouseOver, false); 585 586 var words = CollectWords(); 587 LinkWords(words); 588 } 589 function OnMouseOver(e) 590 { 591 var target = e.GetTarget(); 592 593 if( Global.popup != null ) 594 { 595 if( target.nodeType == 1 ) 596 { 597 if( target.tagName == "A" ) 598 { 599 return; 600 } 601 } 602 603 Global.popup.Close(); 604 Global.popup = null; 605 } 606 } 607 608 609 if( ! window.opera ) 610 { 611 var search = "?right";//location.search; 612 613 if( search == "?left" ) 614 { 615 window.onload = OnLoad_Left; 616 } 617 else if( search == "" ) 618 { 619 window.onload = OnLoad_Frame; 620 } 621 else if( search == "?right" ) 622 { 623 window.onload = OnLoad_Right; 624 } 625 626 if( search != "?right" ) 627 { 628 var ss = document.styleSheets.item(0); 629 630 if( ss.addRule ) 631 { 632 ss.addRule("body", "display: none", 0); 633 } 634 else 635 { 636 ss.insertRule("body {display: none}", 0); 637 } 638 } 639 } 640 //--> 641 </SCRIPT> 642</HEAD> 643 644<BODY> 645 646 647 648 649 650<H1>CTR-SDK Glossary</H1> 651<DIV class="date">(2012.02.23)</DIV> 652 653 654 655 656 657<H2><a name="intro">Introduction</a></H2> 658<P> 659This document explains the special terminology used by the CTR-SDK. 660</P> 661<P> 662The meanings and usage of terms used in this document and the CTR-SDK may differ from their general meanings and usage. 663</P> 664 665 666<H2><a name="body">Terminology</a></H2> 667 668 669 670 671 672<H3><a name="basic">Basics</a></H3> 673 674<dl> 675 <dt>CTR 676 <dd> 677 The development code name for the Nintendo 3DS. This is the primary abbreviation used through the CTR-SDK for the Nintendo 3DS. 678 679 680 <dt>Card 681 <dd> 682 Media used to distribute applications for the Nintendo 3DS. 683 684 685 <dt>3D depth slider 686 <dd> 687 An input interface used to adjust the stereoscopic display on the upper screen to suit individual preference. 688 689 690</dl> 691 692 693 694<H3><a name="program">Programs</a></H3> 695 696<dl> 697 <dt>Programs 698 <dd> 699 Software that can be run on a CTR system. 700 701 702 <dt>Application 703 <dd> 704 Of a set of programs, this is the main one that is executed. 705 706 707 <dt>Card-based applications 708 <dd>Applications that are intended to be distributed on cards. 709 710 711 <dt>Downloadable applications 712 <dd> 713 Applications that are intended to be distributed from the Nintendo eShop over the Internet. 714 715 716 <dt>Imported applications 717 <dd> 718 Applications that are intended to be imported to SD Cards, System Memory, or other locations before they are run. 719 720 721 <dt>SD applications 722 <dd> 723 Applications that are intended to be imported onto SD Cards. These represent one type of imported application. 724 725 726 <dt>Applets 727 <dd> 728 Programs that can be run without closing the application. 729 730 731 <dt>Library Applets 732 <dd> 733 Applets that are launched from other programs and are handled as a part of said programs. 734 735 736 <dt>System Settings 737 <dd> 738 The application that handles the various CTR settings. 739 740 741 <dt>HOME Menu 742 <dd> 743 A launcher program that starts applications and is displayed immediately after a CTR system is turned on. 744 745 746 <dt>Download Play child 747 <dd> 748 An application that is distributed from a parent application and run on another CTR system during Download Play. 749 750 751 <dt>Nintendo eShop 752 <dd> 753 The application from which the user purchases licenses for downloadable applications and downloads such applications over the Internet. 754 755 756 <dt>Test Menu 757 <dd> 758 A simple launcher used in place of the HOME Menu for application debugging. 759 760 761</dl> 762 763 764 765<H3><a name="format">File Format</a></H3> 766 767<dl> 768 <dt>CCI 769 <dd> 770 The format of the final ROM image for CTR card-based software. Also the extension of said file. This file format includes a CXI file and a CFA file. 771 772 773 <dt>CCL 774 <dd> 775 A file including information used to load the elements of a ROM image for CTR card-based software in a debugger. This can only be used for debugging in a debugger. This format is intended to speed up load times by only reading the updated parts of an image after it has been loaded once. 776 777 778 <dt>CIA 779 <dd> 780 The format of the final ROM image for CTR import applications. Also the extension of said file. This file format includes a CXI file and a CFA file. 781 782 783 <dt>CFA 784 <dd> 785 A binary format handled as a data container on CTR systems. Also the extension of said file. 786 787 788 <dt>CXI 789 <dd> 790 An executable image format for CTR systems. Also the extension of said file. 791 792 793 <dt>ROM Image 794 <dd> 795 A single unit of software components to be distributed. 796 797 798 <dt>RSF 799 <dd> 800 A text file describing parameters used to create a CXI file. Also the extension of said file. One of these must be created per each program. 801 802 803 <dt>DESC 804 <dd> 805 A file describing parameters used to create a CXI file. Also the extension of said file. You must use the file(s) provided with the SDK. 806 807 808 <dt>BSF 809 <dd> 810 A text file describing parameters used to create a banner. Also the extension of said file. 811 812 813 <dt>AXF 814 <dd> 815 The executable code for an ELF program generated by a linker. Also the extension of said file. 816 817 818 <dt>LR file 819 <dd> 820 A ROM image file that mainly consists of the ROM-FS portion. This is accessed by CCL files. This does not need to be updated or reloaded when only the AXF changes. 821 822 823 <dt>LE file 824 <dd> 825 A ROM image file that mainly consists of data other than the ROM-FS portion. This is accessed by CCL files. When only the AXF changes, only this file needs updating. 826 827 828 <dt>ELF 829 <dd> 830 A general file format for storing debugging information and executable code generated by a compiler. 831 832 833 <dt>Static library 834 <dd> 835 A single file that combines multiple object files. This is linked with object files to create the final AXF file. 836 837 838 <dt>Object file 839 <dd> 840 A file generated when source code is compiled. It uses the ELF format and contains executable code and debugging information. <br> 841 842 843</dl> 844 845 846 847<H3><a name="feature">Features</a></H3> 848 849<dl> 850 <dt>UDS Communication 851 <dd> 852 A wireless communication protocol between CTR systems. This corresponds to MP communication in the TWL-SDK. 853 854 855 <dt>BOSS 856 <dd> 857 SpotPass. This is also the name of the SpotPass API. 858 859 860 <dt>CEC 861 <dd> 862 StreetPass. This is also the name of the StreetPass API. 863 864 865 <dt>HostIO 866 <dd> 867 A feature for communication between a CTR system and a connected Windows PC. 868 869 870 <dt>ULCD 871 <dd> 872 The name used for a group of functions that apply input from the 3D depth slider to the stereoscopic display. 873 874 875 <dt>Download Play 876 <dd> 877 A feature for distributing an application's Download Play child to other CTR systems wirelessly and then executing it. This can also refer to client applications that are distributed in this manner. 878 879 880 <dt>SpotPass 881 <dd> 882 A feature for receiving data that is automatically or explicitly communicated via an access point connected to the Internet. 883 884 885 <dt>StreetPass 886 <dd> 887 A feature for automatically exchanging data with other nearby CTR systems. 888 889 890</dl> 891 892 893 894<H3><a name="misc">Other</a></H3> 895 896<dl> 897 <dt>Banners 898 <dd> 899 The 3D model that is displayed on the upper screen and the sound that is played back when an application's icon is selected on the HOME Menu. 900 901 902 <dt>Icons 903 <dd> 904 Images that are displayed on the lower screen at the HOME Menu and in other locations to identify applications. 905 906 907 <dt>Import 908 <dd> 909 The act of placing a program on an SD Card, in System Memory, or elsewhere. 910 911 912 <dt>Title code 913 <dd> 914 A 32-bit number used to identify a program. This includes a 20-bit unique ID. Each program must use a unique title code. 915 916 917 <dt>Unique ID 918 <dd> 919 A 20-bit number issued for each title. Programs belonging to the same title must use the same unique ID. 920 921 922 <dt>Title 923 <dd> 924 A single product. Alternately, the programs that comprise or are related to that product. If an application provides Download Play, the combination of the application itself plus its Download Play child represent a single complete title. 925 926 927<dt>Remaster version 928 <dd> 929Numerical value for identifying the version of the program.<br> Set in RSF. 930 931 932<dt>E-manual 933 <dd> 934 A manual that can be accessed from a CTR system's screens. Alternately, the data contained therein. This can be included in CCI or CIA files. When you select a title with an e-manual on the HOME Menu, the <B>Manual</B> button is displayed. 935 936 937 <dt>Executable code 938 <dd> 939 Both the machine language generated by a compiler and the data that it directly accesses. 940 941 942 <dt>Heap 943 <dd> 944 One kind of memory region allocated to an application. Data accessed by system processes can be placed in this region. 945 946 947 <dt>Device Memory 948 <dd> 949 One kind of memory region allocated to an application. Data accessed by the graphics processor, DSP, and other non-CPU devices is placed in this region. 950 951 952</dl> 953 954 955 956 957<div class="footer"><span>CTR-SDK Glossary</span></div> 958 959 <hr><p>CTR-06-0199-002-F<br>CONFIDENTIAL</p></body> 960</HTML>