imbued

English Control Codes

Aug 24th, 2019
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.51 KB | None | 0 0
  1. Control Codes/Format Codes
  2.  
  3. -----
  4.  
  5. List of Control Codes (this link has some error(s)!!): https://wiki.cloudmodding.com/mm/Text_Format#Text_Format
  6.  
  7. Errors found in link so far:
  8. - Replace 0A with 14 (14 XX prints XX spaces)
  9. - F3 is actually: Print: 00"10'
  10.  
  11. -----
  12.  
  13. Control codes are special characters that, when read by the main text processing function, will call some function to perform some action. An example of a control code is a terminator, which is a character that will stop text from being written into Buffer B after being read by the main text processing function.
  14.  
  15. I say that a control code is trivial if I can essentially treat it like any other standard character that is read in terms of what is read from Buffer A and written to Buffer B
  16.  
  17. English:
  18.  
  19.  
  20. 00 through 08 Color Codes (all trivial)
  21.  
  22. 00 00 is read in Buffer A and 00 is written to Buffer B (Default Color)
  23. 01 01 is read in Buffer A and 01 is written to Buffer B (Red)
  24. 02 02 is read in Buffer A and 02 is written to Buffer B (Green)
  25. 03 03 is read in Buffer A and 03 is written to Buffer B (Blue)
  26. 04 04 is read in Buffer A and 04 is written to Buffer B (Yellow)
  27. 05 05 is read in Buffer A and 05 is written to Buffer B (Turquoise)
  28. 06 06 is read in Buffer A and 06 is written to Buffer B (Pink)
  29. 07 07 is read in Buffer A and 07 is written to Buffer B (Silver)
  30. 08 08 is read in Buffer A and 08 is written to Buffer B (Orange)
  31.  
  32. 09 Crashes
  33.  
  34. 0A Offsets text on current line? 0A is read in Buffer A and 0A 20 is written to Buffer B (20 is ASCII for space, i.e. " ").
  35.  
  36. 0B Prints the number of hits needed to win the "Jungle Cruise Reward". By default this number appears to be "19". In this case, 0B is read in Buffer A and 31 39 are both written to Buffer B (31 39 is ASCII for "19")
  37.  
  38. 0C Prints the number of fairies collected in current dungeon. By default, this text is "0th". In this case, 0C is read in Buffer A and 30 74 68 are witten into Buffer B (30 74 68 is ASCII for "0th")
  39.  
  40. 0D Prints the number of skulltula tokens collected in current spiderhouse. By default, this text is "0th". In this case, 0D is read in Buffer A and 30 74 68 are witten into Buffer B (30 74 68 is ASCII for "0th")
  41.  
  42. 0E Prints 0. 0E is read in Buffer A and 30 is written to Buffer B (30 is ASCII for "0")
  43.  
  44. 0F Prints 0. 0F is read in Buffer A and 30 is written to Buffer B (30 is ASCII for "0")
  45.  
  46. 10 Terminator. 10 is read in Buffer A and 10 is written to Buffer B. Blue Triangle (Banker Screen is NOT usable on the Soar Map if you terminate printing with this terminator).
  47.  
  48. 11 Line Break (continues writing text on next line). 11 is read in Buffer A and 11 is written to Buffer B. (trivial)
  49.  
  50. 12 Terminator. 12 is read in Buffer A and 12 is written to Buffer B. Blue Triangle (Banker Screen is NOT usable on the Soar Map if you terminate printing with this terminator).
  51.  
  52. 13 Starts printing text from the start of the current line in the textbox. 13 is read in Buffer A and 13 is written to Buffer B. (trivial)
  53.  
  54. 14 XX 14 XX is read in Buffer A and XX spaces are written to Buffer B (the XX does NOT get read after the spaces are written to Buffer B)
  55.  
  56. 15 Terminator. 15 is read in Buffer A and 15 is written to Buffer B. Blue Square (Banker Screen IS usable on Soar Map if you terminate printing with this terminator).
  57.  
  58. 16 Print: Player Name. 16 is read in Buffer A and the hex values corresponding to the ASCII for the file name get written to Buffer B.
  59.  
  60. 17 Enable: Instantaneous Text (?). 17 is read in Buffer A and 17 is written to Buffer B. (trivial)
  61.  
  62. 18 Disable: Instantaneous Text (?). 18 is read in Buffer A and 18 is written to Buffer B. (trivial)
  63.  
  64. 19 Terminator. 19 is read in Buffer A and 19 is written to Buffer B. Blue Triangle (Banker Screen IS usable on Soar Map if you terminate printing with this terminator).
  65.  
  66. 1A Terminator. 1A is read in Buffer A and 1A is written to Buffer B. Blue Square (Banker Screen IS usable on Soar Map if you terminate printing with this terminator).
  67.  
  68. 1B XXXX Delay for XXXX frames (at 30 fps on Soar Map) before printing remaining text. When it prints the remaining text, it will start from the BEGINNING of Buffer B. 1B XX XX is read in Buffer A and 1B XX XX is written to Buffer B, then XXXX frames pass, then the main text processing function continues writing, starting at the beginning of Buffer B (0x3FD34C).
  69.  
  70. 1C XXXX Terminator. 1C XX XX is read from Buffer A and 1C XX XX is written to Buffer B. Nothing more gets written (it acts as a terminator). Blue Square (Banker Screen IS usable on Soar Map if you terminate printing with this terminator).
  71.  
  72. 1D XXXX Terminator. 1D XX XX is read from Buffer A and 1D XX XX is written to Buffer B. Nothing more gets written (it acts as a terminator). Blue Square (Banker Screen IS usable on Soar Map if you terminate printing with this terminator).
  73.  
  74. 1E XXXX Play sound effect XXXX. Some values of XXXX cause a crash. 1E XX XX is read from Buffer A and 1E XX XX is written to Buffer B. (trivial if it doesn't crash)
  75.  
  76. 1F XXXX Delay for xxxx Before Resuming Text Flow (?). 1F XX XX is read from Buffer A and 1F XX XX gets written to Buffer B. (trivial)
  77.  
  78. 20 Space (i.e. " "). 20 is read from Buffer A and 20 is written to Buffer B. (trivial)
  79.  
  80. BC Crashes
  81. BD Crashes
  82. BE Crashes
  83.  
  84. BF Terminator. BF is read from Buffer A and BF is written to Buffer B. Blue Square (Banker Screen IS usable on Soar Map if you terminate printing with this terminator).
  85.  
  86. C0 Print: Broken Character [?]. C0 is read from Buffer A and C0 is written to buffer B. (trivial)
  87.  
  88. C1 Ocarina Song Failure (puts red X across textbox). C1 is read from Buffer A and C1 is written to Buffer B and the first 2 bytes of Buffer B become 00 00, for some reason, but this doesn't seem important. (trivial)
  89.  
  90. C2 Initialize Selection: Two Choices (example: C2 59 65 73 11 4E 6F will give a standard Yes/No Option where 59 65 73 = "Yes", 4E 6F = "No", C2 initializes the option select and 11 does a line break). C2 is read from Buffer A ans C2 is written to Buffer B. (trivial)
  91.  
  92. C3 Initialize Selection: Three Choices. C3 is read from Buffer A and C3 is written to Buffer B. (trivial)
  93.  
  94. C4 Print: Postman's Counting Game Results. Prints Postman Minigame Results which defauls to 0"00 (which is 30 22 30 30 in hex). In this default case, C4 is read in Buffer A and 30 22 30 30 is written to Buffer B.
  95.  
  96. C5 Timer (?). Defaults to 0"00. C5 is read in Buffer A and 30 22 30 30 is written to Buffer B.
  97.  
  98. C6 Timer (?). Defaults to 0"00. C6 is read in Buffer A and 30 22 30 30 is written to Buffer B.
  99.  
  100. C7 Print: Remaining Time Till Moon Falls (Clock Tower Roof). This prints whatever time was remaining on the timer when you were last on the clock tower with Skullkid assuming you didn't reset. It prints a time, such as 4'57"14. If you reset, this defaults to 0"00. So, in the default case, C7 is read in Buffer A and 30 22 30 30 is written in Buffer B. (30 22 30 30 has ASCII representation 0"00).
  101.  
  102. C8 Print: Deku Scrub Playground Results. This defaults to 0"00. In the default case, C8 is read in Buffer A and 30 22 30 30 is written in Buffer B.
  103.  
  104. C9 Timer (?). Defaults to 0"00. C9 is read in Buffer A and 30 22 30 30 is written to Buffer B.
  105.  
  106. CA Prints Current In-Game Time in hours and minutes. Example: 9:06 igt will be written as 09"06'. In this example, CA is read in Buffer A and 30 39 22 30 36 27 (which has ASCII representation 09"06') is written to Buffer B.
  107.  
  108. CB Print: Shooting Gallery Minigame Results (?). Defaults to printing 0. In this default case, CB is read in Buffer A and 30 (which has ASCII representation 0)is written to Buffer B.
  109.  
  110. CC Display Prompt: Withdraw or Deposit Rupees. This brings up the bank screen for withdrawing/depositing rupees. CC is read in Buffer A and CC 30 30 30 20 52 75 70 65 65 28 73 29 is written into Buffer B (30 30 30 20 52 75 70 65 65 28 73 29 is ASCII for "000 Rupee(s)"). However, the bank screen is only functional under certain circumstances. The CC must be the last CC written into Buffer B before an appropriate terminator (not all terminators allow the bank screen to be usable) in order for the bank screen to be usable, otherwise the same values will get written into Buffer B as said previously and the bank screen will not be functionable. It is worth noting that scrolling up or down in a bank slot (or column) will change the value of the corresponding byte in Buffer B. For example, if I have slot 2 highlighted and it is 0 (so a 30 is in the corresponding byte in Buffer B), scroll up once will make it so that there is now a 31 in the corresponding byte. If your Bank Rupee Column Selected is some value outside of the interval [0,2], then it is possible to get different values from scrolling if the corresponding byte is not already in the range [0x30, 0x39]. For example, if my Bank Rupee Column Selected value is 3 (the slots are indexed 0, 1, 2 from left-to-right, so a value of 3 is normally impossible), then the corresponding byte will be the one directly to the right of the one corresponding to column 2. This byte will initially have value 20 (corresponding to the space write after colums 0, 1, and 2) and scrolling up once will change this byte to have a value of 21, which has ASCII representation of "!".
  111.  
  112. CD Print: Number of Rupees Entered or Bet (?). Defaults to "0 Rupees". In the default case, CD is read from Buffer A and 30 20 52 75 70 65 65 73 (which is ASCII for "0 Rupees") is written to Buffer B.
  113.  
  114. CE Print: Total Rupees in Bank or Won by Betting. Defaults to "0 Rupees". In the default case, CE is read from Buffer A and 30 20 52 75 70 65 65 73 (which is ASCII for "0 Rupees") is written to Buffer B. Possible to alter this value. For example, after winning 80 rupees from dog race, it instead printed "80 Rupees", but after entering a loading zone this got reset to "0 Rupees"
  115.  
  116. CF Print: Time Remaining in Hours & Minutes. For example, if it is 8:04 on Night 3, then it will print "09:56" and if it is 8:02 on Day 1, then it will print "69:58". In the latter example, CF is read in Buffer A and 36 39 3A 35 38 is written into Buffer B.
  117.  
  118. D0 Display Prompt: Rupees to Bet. Brings up the betting screen for dog racetrack. This behaves similarly to the bank deposit/withdraw screen in terms of when it is functional in the Soar Map. However, there are normally only 2 slots and you can normally only scroll the first slot. Before scrolling any values, D0 is read from Buffer A and D0 30 30 20 52 75 70 65 65 73 is written to Buffer B (30 30 20 52 75 70 65 65 73 is ASCII for "00 Rupees").
  119.  
  120. D1 Display Prompt: Bombers' Code. Brings up the screen to enter the Bomber's code. This behaves similarly to the bank deposit/withdraw screen in terms of when it is functional in the Soar Map. However, there are normally 5 slots each of which can be scrolled to values 1, 2, 3, 4, or 5. Each slot initially starts on 1. Before scrolling any values, D1 is read from Buffer A and D1 31 31 31 31 31 is written to Buffer B (31 31 31 31 31 has ASCII representation "11111").
  121.  
  122. D2 Item Prompt (?). D2 is read from Buffer A and D2 is written to Buffer B. (trivial)
  123.  
  124. D3 Print "----". D3 is read from Buffer A and 2D 2D 2D 2D is written to Buffer B (2D has ASCII representation -).
  125.  
  126. D4 Print: Song of Soaring Destination
  127.  
  128. D5 Display Prompt: Lottery Number. Brings up lottery number screen. Behaves similary to bank deposit/withdraw screen in terms of when it is functional. It normally has 3 slots, all starting at 1 and ranging from 0 to 9. Before scrolling in any slots, D5 is read in Buffer A and D5 31 31 31 is written to Buffer B (31 31 31 has ASCII representation "111").
  129.  
  130. D6 Print: 123456. This prints 123456 which each number color coded to either Red, Blue, Green, or Yellow (tells you what the spiderhouse code is) and a color code follows to resume to the default text color. For example, if the spiderhouse code is BYGYGR, then D6 is read in Buffer A and then 03 31 04 32 02 33 04 34 02 35 01 36 00 is written to Buffer B.
  131.  
  132. D7 Print: Remaining Stray Fairies in Woodfall Temple. Defaults to 15 remaining. In the default case, D7 is read from Buffer A and 31 35 6C gets written to Buffer B (31 35 6C has ASCII representation "15l"). I do not know why the "l" is added on.
  133.  
  134. D8 Print: Remaining Stray Fairies in Woodfall Temple. Defaults to 15 remaining. In the default case, D8 is read from Buffer A and 31 35 6C gets written to Buffer B (31 35 6C has ASCII representation "15l"). I do not know why the "l" is added on.
  135.  
  136. D9 Print: Remaining Stray Fairies in Woodfall Temple. Defaults to 15 remaining. In the default case, D9 is read from Buffer A and 31 35 6C gets written to Buffer B (31 35 6C has ASCII representation "15l"). I do not know why the "l" is added on.
  137.  
  138. DA Print: Remaining Stray Fairies in Woodfall Temple. Defaults to 15 remaining. In the default case, DA is read from Buffer A and 31 35 6C gets written to Buffer B (31 35 6C has ASCII representation "15l"). I do not know why the "l" is added on.
  139.  
  140. DB Print: Jungle Cruise Minigame Results. Defaults to 0. In the default case, DB is read from Buffer A and 30 is written to Buffer B.
  141.  
  142. DC Print: Winning Lottery Numbers. Prints the 3-digit winning lottery number. For example, 481 is printed. In this case, DC is read from Buffer A and 34 38 31 is written to Buffer B.
  143.  
  144. DD Print: Player's Lottery Numbers. Prints the 3-digit lottery number that you last entered (this is saved through loading zones, SoT, soft resets, but does not transfer across files). This number defaults to 000. In the default case, DD is read from Buffer A and 30 30 30 is written to Buffer B.
  145.  
  146. DE Print: Item Value in Rupees. Defaults to 51, but pulling ocarina sets it to 0, so in practice this will always print "0 Rupees". DE is read from Buffer A and 30 20 52 75 70 65 65 73 is written to Buffer B.
  147.  
  148. DF Print: Bombers' Code. If you have Bomber Code 54231, for example, then DF is read in Buffer A and 35 34 32 33 31 gets written to Buffer B.
  149.  
  150. E0 Terminator. E0 is read in Buffer A and E0 is written to Buffer B. Blue Square (Banker Screen IS usable on Soar Map if you terminate printing with this terminator).
  151.  
  152. E1 Print: Color of Oceanside Spider House Mask 1. If red, then it prints "RED" color coded red, followed by a color code for the deault color. In this example E1 is read from Buffer A and 01 52 45 44 00 is written to Buffer B.
  153.  
  154. E2 Print: Color of Oceanside Spider House Mask 2. If blue, then it prints "BLUE" color coded blue, followed by a color code for the default color. In this example, E2 is read from Buffer A and 03 42 4C 55 45 00 is written to Buffer B.
  155.  
  156. E3 Print: Color of Oceanside Spider House Mask 3. If green, then it prints "GREEN" color coded green, followed by a color code for the default color. In this example E3 is read from Buffer A and 02 47 52 45 45 4E 00 is written to Buffer B.
  157.  
  158. E4 Print: Color of Oceanside Spider House Mask 4. If yellow, then it prints "YELLOW" color coded yellow, followed by a color code for the default color. In this example E4 is read from Buffer A and 04 59 45 4C 4C 4F 57 00 is written to Buffer B.
  159.  
  160. E5 Print: Color of Oceanside Spider House Mask 5. Same as above
  161.  
  162. E6 Print: Color of Oceanside Spider House Mask 6. Same as above
  163.  
  164. E7 Print: Remaining Time Till Moon Falls in hours, rounded down. Example: If it is 8:05am on Day 1, then it will print "69 hours", so E7 is read in Buffer A and 36 39 20 68 6F 75 72 73 is written to Buffer A. If, for example, it is 11:02pm on Night 3, then it prints "6 hours", so E7 is read in Buffer A and 36 20 68 6F 75 72 73 is written to Buffer B.
  165.  
  166. E8 Print: Remaining Time Till Morning in Hours & Minutes. Example: If it is 8:02am then it prints "21:58" so E8 is read in Buffer A and 32 31 3A 35 38 is written to Buffer B. If it is 9:30pm for example, it will print "08:30".
  167.  
  168. E9 Print: Broken Character & Large Gap [?]. E9 is read from Buffer A and E9 is written to Buffer B. (trivial)
  169. EA Print: Broken Character [?]. EA is read from Buffer A and EA is written to Buffer B. (trivial)
  170. EB Print: Broken Character [?]. EB is read from Buffer A and EB is written to Buffer B. (trivial)
  171. EC Print: Broken Character [?]. EC is read from Buffer A and EC is written to Buffer B. (trivial)
  172. ED Print: Broken Character [?]. ED is read from Buffer A and ED is written to Buffer B. (trivial)
  173. EF Print: Broken Character [?]. EF is read from Buffer A and EF is written to Buffer B. (trivial)
  174.  
  175. F0 Print: Total Rupees in Bank. Prints an integer. For example, if I have 25 rupees in the bank, F0 is read from Buffer A and 32 35 is written to Buffer B.
  176.  
  177. F1 Print: 0. F1 is read from Buffer A and 30 is written to Buffer B (30 has ASCII representation "0").
  178. F2 Print: 0. F2 is read from Buffer A and 30 is written to Buffer B (30 has ASCII representation "0").
  179.  
  180. F3 Print: 00"10'. F3 is read from Buffer A and 30 30 22 31 30 27 is written to Buffer B.
  181. F4 Print: :0"00'. F3 is read from Buffer A and 3A 30 22 30 30 27 is written to Buffer B.
  182.  
  183. F5 Print: Timer or Highscore in 00"00' Format [?]. Seems to default to Print: 00"00'. In this case, F5 is read from Buffer A and 30 30 22 30 30 27 is written to Buffer B.
  184.  
  185. F6 Print: Town Shooting Gallery Highscore. Defaults to 39. Can be as high as 50, updates whenever you beat it at octo shooting. Resets with song of time. In the default case, F6 is read from Buffer A and 33 39 is written to Buffer B.
  186.  
  187. F7 Print: 00'00"00. F7 is read in Buffer A and 30 30 27 30 30 22 30 30 gets written to Buffer B.
  188.  
  189. F8 Print: Magic Bean Price. Prints "10". F7 is read in Buffer A and 31 30 is written to Buffer B.
  190.  
  191. F9 Print: Epona Balloon Archery Highscore I. Defaults to printing 01'00"00. F9 is read from Buffer A and 30 31 27 30 30 22 30 30 is written to Buffer B.
  192.  
  193. FA Print: Deku Scrub Playground Highscore (Day 1). Defaults to printing 01'15"00. FA is read in Buffer A and 30 31 27 31 35 22 30 30 gets written to Buffer B.
  194.  
  195. FB Print: Deku Scrub Playground Highscore (Day 2). Defaults to printing 01'15"00. FA is read in Buffer A and 30 31 27 31 35 22 30 30 gets written to Buffer B.
  196.  
  197. FC Print: Deku Scrub Playground Highscore (Day 3). Defaults to printing 01'16"00. FA is read in Buffer A and 30 31 27 31 36 22 30 30 gets written to Buffer B. (Yes, this one has a 6 instead of a 5)
  198.  
  199. FD Print: Broken Character [?] (takes up 4 characters in memory). FD is read from Buffer A and FD FD FD FD is written to Buffer B.
  200.  
  201. FE Print: Broken Character [?] (takes up 4 characters in memory). FE is read from Buffer A and FD FD FD FD is written to Buffer B. (Yes, FD FD FD FD, NOT FE FE FE FE)
  202.  
  203. FF Print: Broken Character [?] (takes up 4 characters in memory). FF is read from Buffer A and FD FD FD FD is written to Buffer B. (Yes, FD FD FD FD, NOT FF FF FF FF)
Add Comment
Please, Sign In to add comment