gemba 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. checksums.yaml +4 -4
  2. data/THIRD_PARTY_NOTICES +37 -2
  3. data/assets/placeholder_boxart.png +0 -0
  4. data/bin/gemba +2 -2
  5. data/ext/gemba/extconf.rb +23 -1
  6. data/ext/gemba/gemba_ext.c +436 -2
  7. data/ext/gemba/gemba_ext.h +2 -0
  8. data/gemba.gemspec +5 -3
  9. data/lib/gemba/achievements/achievement.rb +23 -0
  10. data/lib/gemba/achievements/backend.rb +190 -0
  11. data/lib/gemba/achievements/cache.rb +70 -0
  12. data/lib/gemba/achievements/credentials_presenter.rb +142 -0
  13. data/lib/gemba/achievements/fake_backend.rb +205 -0
  14. data/lib/gemba/achievements/null_backend.rb +11 -0
  15. data/lib/gemba/achievements/offline_backend.rb +168 -0
  16. data/lib/gemba/achievements/retro_achievements/backend.rb +511 -0
  17. data/lib/gemba/achievements/retro_achievements/cli_sync_requester.rb +64 -0
  18. data/lib/gemba/achievements/retro_achievements/ping_worker.rb +28 -0
  19. data/lib/gemba/achievements/retro_achievements/unlock_retry_worker.rb +35 -0
  20. data/lib/gemba/achievements.rb +19 -0
  21. data/lib/gemba/achievements_window.rb +556 -0
  22. data/lib/gemba/app_controller.rb +1036 -0
  23. data/lib/gemba/bios.rb +54 -0
  24. data/lib/gemba/boxart_fetcher/libretro_backend.rb +39 -0
  25. data/lib/gemba/boxart_fetcher/null_backend.rb +12 -0
  26. data/lib/gemba/boxart_fetcher.rb +79 -0
  27. data/lib/gemba/bus_emitter.rb +13 -0
  28. data/lib/gemba/child_window.rb +24 -1
  29. data/lib/gemba/cli/commands/config_cmd.rb +83 -0
  30. data/lib/gemba/cli/commands/decode.rb +154 -0
  31. data/lib/gemba/cli/commands/patch.rb +78 -0
  32. data/lib/gemba/cli/commands/play.rb +78 -0
  33. data/lib/gemba/cli/commands/record.rb +114 -0
  34. data/lib/gemba/cli/commands/replay.rb +161 -0
  35. data/lib/gemba/cli/commands/retro_achievements.rb +213 -0
  36. data/lib/gemba/cli/commands/version.rb +22 -0
  37. data/lib/gemba/cli.rb +52 -364
  38. data/lib/gemba/config.rb +154 -1
  39. data/lib/gemba/data/gb_games.json +1 -0
  40. data/lib/gemba/data/gb_md5.json +1 -0
  41. data/lib/gemba/data/gba_games.json +1 -0
  42. data/lib/gemba/data/gba_md5.json +1 -0
  43. data/lib/gemba/data/gbc_games.json +1 -0
  44. data/lib/gemba/data/gbc_md5.json +1 -0
  45. data/lib/gemba/emulator_frame.rb +1084 -0
  46. data/lib/gemba/event_bus.rb +48 -0
  47. data/lib/gemba/frame_stack.rb +70 -0
  48. data/lib/gemba/game_index.rb +84 -0
  49. data/lib/gemba/game_picker_frame.rb +309 -0
  50. data/lib/gemba/gamepad_map.rb +103 -0
  51. data/lib/gemba/headless.rb +6 -5
  52. data/lib/gemba/headless_player.rb +33 -3
  53. data/lib/gemba/help_window.rb +61 -0
  54. data/lib/gemba/hotkey_map.rb +3 -1
  55. data/lib/gemba/input_recorder.rb +107 -0
  56. data/lib/gemba/input_replayer.rb +119 -0
  57. data/lib/gemba/keyboard_map.rb +90 -0
  58. data/lib/gemba/list_picker_frame.rb +271 -0
  59. data/lib/gemba/locales/en.yml +109 -5
  60. data/lib/gemba/locales/ja.yml +109 -5
  61. data/lib/gemba/main_window.rb +56 -0
  62. data/lib/gemba/modal_stack.rb +81 -0
  63. data/lib/gemba/patcher_window.rb +223 -0
  64. data/lib/gemba/platform/gb.rb +21 -0
  65. data/lib/gemba/platform/gba.rb +21 -0
  66. data/lib/gemba/platform/gbc.rb +23 -0
  67. data/lib/gemba/platform.rb +20 -0
  68. data/lib/gemba/platform_open.rb +19 -0
  69. data/lib/gemba/recorder.rb +4 -3
  70. data/lib/gemba/replay_player.rb +691 -0
  71. data/lib/gemba/rom_info.rb +57 -0
  72. data/lib/gemba/rom_info_window.rb +16 -3
  73. data/lib/gemba/rom_library.rb +106 -0
  74. data/lib/gemba/rom_overrides.rb +47 -0
  75. data/lib/gemba/rom_patcher/bps.rb +161 -0
  76. data/lib/gemba/rom_patcher/ips.rb +101 -0
  77. data/lib/gemba/rom_patcher/ups.rb +119 -0
  78. data/lib/gemba/rom_patcher.rb +109 -0
  79. data/lib/gemba/{rom_loader.rb → rom_resolver.rb} +7 -6
  80. data/lib/gemba/runtime.rb +59 -26
  81. data/lib/gemba/save_state_manager.rb +4 -7
  82. data/lib/gemba/save_state_picker.rb +17 -4
  83. data/lib/gemba/session_logger.rb +64 -0
  84. data/lib/gemba/settings/audio_tab.rb +77 -0
  85. data/lib/gemba/settings/gamepad_tab.rb +351 -0
  86. data/lib/gemba/settings/hotkeys_tab.rb +259 -0
  87. data/lib/gemba/settings/paths.rb +11 -0
  88. data/lib/gemba/settings/recording_tab.rb +83 -0
  89. data/lib/gemba/settings/save_states_tab.rb +91 -0
  90. data/lib/gemba/settings/system_tab.rb +377 -0
  91. data/lib/gemba/settings/video_tab.rb +318 -0
  92. data/lib/gemba/settings_window.rb +162 -1036
  93. data/lib/gemba/version.rb +1 -1
  94. data/lib/gemba/virtual_keyboard.rb +19 -0
  95. data/lib/gemba.rb +2 -12
  96. data/test/achievements_window/test_bulk_sync.rb +218 -0
  97. data/test/achievements_window/test_bus_events.rb +125 -0
  98. data/test/achievements_window/test_close_confirmation.rb +201 -0
  99. data/test/achievements_window/test_initial_state.rb +164 -0
  100. data/test/achievements_window/test_sorting.rb +227 -0
  101. data/test/achievements_window/test_tree_rendering.rb +133 -0
  102. data/test/fixtures/fake_bios.bin +0 -0
  103. data/test/fixtures/pong.gba +0 -0
  104. data/test/fixtures/test.gb +0 -0
  105. data/test/fixtures/test.gbc +0 -0
  106. data/test/fixtures/test_quicksave.ss +0 -0
  107. data/test/screenshots/no_focus.png +0 -0
  108. data/test/shared/teek_test_worker.rb +17 -1
  109. data/test/shared/tk_test_helper.rb +92 -4
  110. data/test/support/achievements_window_helpers.rb +18 -0
  111. data/test/support/fake_core.rb +25 -0
  112. data/test/support/fake_ra_runtime.rb +74 -0
  113. data/test/support/fake_requester.rb +78 -0
  114. data/test/support/player_helpers.rb +20 -5
  115. data/test/test_achievement.rb +32 -0
  116. data/test/{test_player.rb → test_app_controller.rb} +353 -85
  117. data/test/test_bios.rb +123 -0
  118. data/test/test_boxart_fetcher.rb +150 -0
  119. data/test/test_cli.rb +17 -265
  120. data/test/test_cli_config.rb +64 -0
  121. data/test/test_cli_decode.rb +97 -0
  122. data/test/test_cli_patch.rb +58 -0
  123. data/test/test_cli_play.rb +213 -0
  124. data/test/test_cli_ra.rb +175 -0
  125. data/test/test_cli_record.rb +69 -0
  126. data/test/test_cli_replay.rb +72 -0
  127. data/test/test_cli_sync_requester.rb +152 -0
  128. data/test/test_cli_version.rb +27 -0
  129. data/test/test_config.rb +3 -3
  130. data/test/test_config_ra.rb +69 -0
  131. data/test/test_core.rb +62 -1
  132. data/test/test_credentials_presenter.rb +192 -0
  133. data/test/test_event_bus.rb +100 -0
  134. data/test/test_fake_backend_achievements.rb +130 -0
  135. data/test/test_fake_backend_auth.rb +68 -0
  136. data/test/test_game_index.rb +77 -0
  137. data/test/test_game_picker_frame.rb +310 -0
  138. data/test/test_gamepad_map.rb +1 -3
  139. data/test/test_headless_player.rb +17 -3
  140. data/test/test_help_window.rb +82 -0
  141. data/test/test_hotkey_map.rb +22 -1
  142. data/test/test_input_recorder.rb +179 -0
  143. data/test/test_input_replay_determinism.rb +113 -0
  144. data/test/test_input_replayer.rb +162 -0
  145. data/test/test_keyboard_map.rb +1 -3
  146. data/test/test_libretro_backend.rb +41 -0
  147. data/test/test_list_picker_frame.rb +391 -0
  148. data/test/test_locale.rb +1 -1
  149. data/test/test_logging.rb +123 -0
  150. data/test/test_null_backend.rb +42 -0
  151. data/test/test_offline_backend.rb +116 -0
  152. data/test/test_overlay_renderer.rb +1 -1
  153. data/test/test_platform.rb +149 -0
  154. data/test/test_ra_backend.rb +313 -0
  155. data/test/test_ra_backend_unlock_gate.rb +56 -0
  156. data/test/test_ra_backend_unlock_retry.rb +123 -0
  157. data/test/test_recorder.rb +0 -3
  158. data/test/test_replay_player.rb +316 -0
  159. data/test/test_rom_info.rb +149 -0
  160. data/test/test_rom_overrides.rb +86 -0
  161. data/test/test_rom_patcher.rb +383 -0
  162. data/test/{test_rom_loader.rb → test_rom_resolver.rb} +25 -26
  163. data/test/test_save_state_manager.rb +2 -4
  164. data/test/test_settings_audio.rb +107 -0
  165. data/test/test_settings_hotkeys.rb +83 -66
  166. data/test/test_settings_recording.rb +49 -0
  167. data/test/test_settings_save_states.rb +97 -0
  168. data/test/test_settings_system.rb +133 -0
  169. data/test/test_settings_video.rb +450 -0
  170. data/test/test_settings_window.rb +76 -507
  171. data/test/test_tip_service.rb +6 -6
  172. data/test/test_toast_overlay.rb +1 -1
  173. data/test/test_virtual_events.rb +221 -0
  174. data/test/test_virtual_keyboard.rb +1 -1
  175. data/vendor/rcheevos/CHANGELOG.md +495 -0
  176. data/vendor/rcheevos/LICENSE +21 -0
  177. data/vendor/rcheevos/Package.swift +33 -0
  178. data/vendor/rcheevos/README.md +67 -0
  179. data/vendor/rcheevos/include/module.modulemap +70 -0
  180. data/vendor/rcheevos/include/rc_api_editor.h +296 -0
  181. data/vendor/rcheevos/include/rc_api_info.h +280 -0
  182. data/vendor/rcheevos/include/rc_api_request.h +77 -0
  183. data/vendor/rcheevos/include/rc_api_runtime.h +417 -0
  184. data/vendor/rcheevos/include/rc_api_user.h +262 -0
  185. data/vendor/rcheevos/include/rc_client.h +877 -0
  186. data/vendor/rcheevos/include/rc_client_raintegration.h +101 -0
  187. data/vendor/rcheevos/include/rc_consoles.h +138 -0
  188. data/vendor/rcheevos/include/rc_error.h +59 -0
  189. data/vendor/rcheevos/include/rc_export.h +100 -0
  190. data/vendor/rcheevos/include/rc_hash.h +200 -0
  191. data/vendor/rcheevos/include/rc_runtime.h +148 -0
  192. data/vendor/rcheevos/include/rc_runtime_types.h +452 -0
  193. data/vendor/rcheevos/include/rc_util.h +51 -0
  194. data/vendor/rcheevos/include/rcheevos.h +8 -0
  195. data/vendor/rcheevos/src/rapi/rc_api_common.c +1379 -0
  196. data/vendor/rcheevos/src/rapi/rc_api_common.h +88 -0
  197. data/vendor/rcheevos/src/rapi/rc_api_editor.c +625 -0
  198. data/vendor/rcheevos/src/rapi/rc_api_info.c +587 -0
  199. data/vendor/rcheevos/src/rapi/rc_api_runtime.c +901 -0
  200. data/vendor/rcheevos/src/rapi/rc_api_user.c +483 -0
  201. data/vendor/rcheevos/src/rc_client.c +6941 -0
  202. data/vendor/rcheevos/src/rc_client_external.c +281 -0
  203. data/vendor/rcheevos/src/rc_client_external.h +177 -0
  204. data/vendor/rcheevos/src/rc_client_external_versions.h +171 -0
  205. data/vendor/rcheevos/src/rc_client_internal.h +409 -0
  206. data/vendor/rcheevos/src/rc_client_raintegration.c +566 -0
  207. data/vendor/rcheevos/src/rc_client_raintegration_internal.h +61 -0
  208. data/vendor/rcheevos/src/rc_client_types.natvis +396 -0
  209. data/vendor/rcheevos/src/rc_compat.c +251 -0
  210. data/vendor/rcheevos/src/rc_compat.h +121 -0
  211. data/vendor/rcheevos/src/rc_libretro.c +915 -0
  212. data/vendor/rcheevos/src/rc_libretro.h +98 -0
  213. data/vendor/rcheevos/src/rc_util.c +199 -0
  214. data/vendor/rcheevos/src/rc_version.c +11 -0
  215. data/vendor/rcheevos/src/rc_version.h +32 -0
  216. data/vendor/rcheevos/src/rcheevos/alloc.c +312 -0
  217. data/vendor/rcheevos/src/rcheevos/condition.c +754 -0
  218. data/vendor/rcheevos/src/rcheevos/condset.c +777 -0
  219. data/vendor/rcheevos/src/rcheevos/consoleinfo.c +1215 -0
  220. data/vendor/rcheevos/src/rcheevos/format.c +330 -0
  221. data/vendor/rcheevos/src/rcheevos/lboard.c +287 -0
  222. data/vendor/rcheevos/src/rcheevos/memref.c +805 -0
  223. data/vendor/rcheevos/src/rcheevos/operand.c +607 -0
  224. data/vendor/rcheevos/src/rcheevos/rc_internal.h +390 -0
  225. data/vendor/rcheevos/src/rcheevos/rc_runtime_types.natvis +541 -0
  226. data/vendor/rcheevos/src/rcheevos/rc_validate.c +1406 -0
  227. data/vendor/rcheevos/src/rcheevos/rc_validate.h +18 -0
  228. data/vendor/rcheevos/src/rcheevos/richpresence.c +922 -0
  229. data/vendor/rcheevos/src/rcheevos/runtime.c +852 -0
  230. data/vendor/rcheevos/src/rcheevos/runtime_progress.c +1073 -0
  231. data/vendor/rcheevos/src/rcheevos/trigger.c +344 -0
  232. data/vendor/rcheevos/src/rcheevos/value.c +935 -0
  233. data/vendor/rcheevos/src/rhash/aes.c +480 -0
  234. data/vendor/rcheevos/src/rhash/aes.h +49 -0
  235. data/vendor/rcheevos/src/rhash/cdreader.c +838 -0
  236. data/vendor/rcheevos/src/rhash/hash.c +1402 -0
  237. data/vendor/rcheevos/src/rhash/hash_disc.c +1340 -0
  238. data/vendor/rcheevos/src/rhash/hash_encrypted.c +566 -0
  239. data/vendor/rcheevos/src/rhash/hash_rom.c +426 -0
  240. data/vendor/rcheevos/src/rhash/hash_zip.c +460 -0
  241. data/vendor/rcheevos/src/rhash/md5.c +382 -0
  242. data/vendor/rcheevos/src/rhash/md5.h +91 -0
  243. data/vendor/rcheevos/src/rhash/rc_hash_internal.h +116 -0
  244. data/vendor/rcheevos/test/libretro.h +205 -0
  245. data/vendor/rcheevos/test/rapi/test_rc_api_common.c +941 -0
  246. data/vendor/rcheevos/test/rapi/test_rc_api_editor.c +931 -0
  247. data/vendor/rcheevos/test/rapi/test_rc_api_info.c +545 -0
  248. data/vendor/rcheevos/test/rapi/test_rc_api_runtime.c +2213 -0
  249. data/vendor/rcheevos/test/rapi/test_rc_api_user.c +998 -0
  250. data/vendor/rcheevos/test/rcheevos/mock_memory.h +32 -0
  251. data/vendor/rcheevos/test/rcheevos/test_condition.c +570 -0
  252. data/vendor/rcheevos/test/rcheevos/test_condset.c +5170 -0
  253. data/vendor/rcheevos/test/rcheevos/test_consoleinfo.c +203 -0
  254. data/vendor/rcheevos/test/rcheevos/test_format.c +112 -0
  255. data/vendor/rcheevos/test/rcheevos/test_lboard.c +746 -0
  256. data/vendor/rcheevos/test/rcheevos/test_memref.c +520 -0
  257. data/vendor/rcheevos/test/rcheevos/test_operand.c +692 -0
  258. data/vendor/rcheevos/test/rcheevos/test_rc_validate.c +502 -0
  259. data/vendor/rcheevos/test/rcheevos/test_richpresence.c +1564 -0
  260. data/vendor/rcheevos/test/rcheevos/test_runtime.c +1667 -0
  261. data/vendor/rcheevos/test/rcheevos/test_runtime_progress.c +1821 -0
  262. data/vendor/rcheevos/test/rcheevos/test_timing.c +166 -0
  263. data/vendor/rcheevos/test/rcheevos/test_trigger.c +2521 -0
  264. data/vendor/rcheevos/test/rcheevos/test_value.c +870 -0
  265. data/vendor/rcheevos/test/rcheevos-test.sln +46 -0
  266. data/vendor/rcheevos/test/rcheevos-test.vcxproj +239 -0
  267. data/vendor/rcheevos/test/rcheevos-test.vcxproj.filters +335 -0
  268. data/vendor/rcheevos/test/rhash/data.c +657 -0
  269. data/vendor/rcheevos/test/rhash/data.h +32 -0
  270. data/vendor/rcheevos/test/rhash/mock_filereader.c +236 -0
  271. data/vendor/rcheevos/test/rhash/mock_filereader.h +31 -0
  272. data/vendor/rcheevos/test/rhash/test_cdreader.c +920 -0
  273. data/vendor/rcheevos/test/rhash/test_hash.c +310 -0
  274. data/vendor/rcheevos/test/rhash/test_hash_disc.c +1450 -0
  275. data/vendor/rcheevos/test/rhash/test_hash_rom.c +899 -0
  276. data/vendor/rcheevos/test/rhash/test_hash_zip.c +551 -0
  277. data/vendor/rcheevos/test/test.c +113 -0
  278. data/vendor/rcheevos/test/test_framework.h +205 -0
  279. data/vendor/rcheevos/test/test_rc_client.c +10509 -0
  280. data/vendor/rcheevos/test/test_rc_client_external.c +2197 -0
  281. data/vendor/rcheevos/test/test_rc_client_raintegration.c +441 -0
  282. data/vendor/rcheevos/test/test_rc_libretro.c +952 -0
  283. data/vendor/rcheevos/test/test_types.natvis +9 -0
  284. data/vendor/rcheevos/validator/validator.c +658 -0
  285. data/vendor/rcheevos/validator/validator.vcxproj +152 -0
  286. data/vendor/rcheevos/validator/validator.vcxproj.filters +82 -0
  287. metadata +277 -10
  288. data/lib/gemba/input_mappings.rb +0 -214
  289. data/lib/gemba/player.rb +0 -1525
@@ -0,0 +1,541 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
3
+ <!-- https://learn.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2022 -->
4
+ <!-- https://learn.microsoft.com/en-us/visualstudio/debugger/format-specifiers-in-cpp?view=vs-2022 -->
5
+ <Type Name="rc_typed_value_t">
6
+ <DisplayString Condition="type==RC_VALUE_TYPE_UNSIGNED">{value.u32} (RC_VALUE_TYPE_UNSIGNED)</DisplayString>
7
+ <DisplayString Condition="type==RC_VALUE_TYPE_FLOAT">{value.f32} (RC_VALUE_TYPE_FLOAT)</DisplayString>
8
+ <DisplayString Condition="type==RC_VALUE_TYPE_SIGNED">{value.i32} (RC_VALUE_TYPE_SIGNED)</DisplayString>
9
+ <DisplayString Condition="type==RC_VALUE_TYPE_NONE">none (RC_VALUE_TYPE_NONE)</DisplayString>
10
+ <DisplayString>{value.i32} (unknown)</DisplayString>
11
+ </Type>
12
+ <Type Name="__rc_bool_enum_t">
13
+ <DisplayString Condition="value==0">false</DisplayString>
14
+ <DisplayString Condition="value==1">true</DisplayString>
15
+ <DisplayString>true ({value})</DisplayString>
16
+ </Type>
17
+ <Type Name="__rc_memsize_enum_t">
18
+ <DisplayString Condition="value==RC_MEMSIZE_8_BITS">{RC_MEMSIZE_8_BITS}</DisplayString>
19
+ <DisplayString Condition="value==RC_MEMSIZE_16_BITS">{RC_MEMSIZE_16_BITS}</DisplayString>
20
+ <DisplayString Condition="value==RC_MEMSIZE_24_BITS">{RC_MEMSIZE_24_BITS}</DisplayString>
21
+ <DisplayString Condition="value==RC_MEMSIZE_32_BITS">{RC_MEMSIZE_32_BITS}</DisplayString>
22
+ <DisplayString Condition="value==RC_MEMSIZE_LOW">{RC_MEMSIZE_LOW}</DisplayString>
23
+ <DisplayString Condition="value==RC_MEMSIZE_HIGH">{RC_MEMSIZE_HIGH}</DisplayString>
24
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_0">{RC_MEMSIZE_BIT_0}</DisplayString>
25
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_1">{RC_MEMSIZE_BIT_1}</DisplayString>
26
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_2">{RC_MEMSIZE_BIT_2}</DisplayString>
27
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_3">{RC_MEMSIZE_BIT_3}</DisplayString>
28
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_4">{RC_MEMSIZE_BIT_4}</DisplayString>
29
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_5">{RC_MEMSIZE_BIT_5}</DisplayString>
30
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_6">{RC_MEMSIZE_BIT_6}</DisplayString>
31
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_7">{RC_MEMSIZE_BIT_7}</DisplayString>
32
+ <DisplayString Condition="value==RC_MEMSIZE_BITCOUNT">{RC_MEMSIZE_BITCOUNT}</DisplayString>
33
+ <DisplayString Condition="value==RC_MEMSIZE_16_BITS_BE">{RC_MEMSIZE_16_BITS_BE}</DisplayString>
34
+ <DisplayString Condition="value==RC_MEMSIZE_24_BITS_BE">{RC_MEMSIZE_24_BITS_BE}</DisplayString>
35
+ <DisplayString Condition="value==RC_MEMSIZE_32_BITS_BE">{RC_MEMSIZE_32_BITS_BE}</DisplayString>
36
+ <DisplayString Condition="value==RC_MEMSIZE_FLOAT">{RC_MEMSIZE_FLOAT}</DisplayString>
37
+ <DisplayString Condition="value==RC_MEMSIZE_MBF32">{RC_MEMSIZE_MBF32}</DisplayString>
38
+ <DisplayString Condition="value==RC_MEMSIZE_MBF32_LE">{RC_MEMSIZE_MBF32_LE}</DisplayString>
39
+ <DisplayString Condition="value==RC_MEMSIZE_FLOAT_BE">{RC_MEMSIZE_FLOAT_BE}</DisplayString>
40
+ <DisplayString Condition="value==RC_MEMSIZE_DOUBLE32">{RC_MEMSIZE_DOUBLE32}</DisplayString>
41
+ <DisplayString Condition="value==RC_MEMSIZE_DOUBLE32_BE">{RC_MEMSIZE_DOUBLE32_BE}</DisplayString>
42
+ <DisplayString Condition="value==RC_MEMSIZE_VARIABLE">{RC_MEMSIZE_VARIABLE}</DisplayString>
43
+ <DisplayString>unknown ({value})</DisplayString>
44
+ </Type>
45
+ <Type Name="__rc_value_type_enum_t">
46
+ <DisplayString Condition="value==RC_VALUE_TYPE_NONE">{RC_VALUE_TYPE_NONE}</DisplayString>
47
+ <DisplayString Condition="value==RC_VALUE_TYPE_UNSIGNED">{RC_VALUE_TYPE_UNSIGNED}</DisplayString>
48
+ <DisplayString Condition="value==RC_VALUE_TYPE_SIGNED">{RC_VALUE_TYPE_SIGNED}</DisplayString>
49
+ <DisplayString Condition="value==RC_VALUE_TYPE_FLOAT">{RC_VALUE_TYPE_FLOAT}</DisplayString>
50
+ <DisplayString>unknown ({value})</DisplayString>
51
+ </Type>
52
+ <Type Name="__rc_memref_type_enum_t">
53
+ <DisplayString Condition="value==RC_MEMREF_TYPE_MEMREF">{RC_MEMREF_TYPE_MEMREF}</DisplayString>
54
+ <DisplayString Condition="value==RC_MEMREF_TYPE_MODIFIED_MEMREF">{RC_MEMREF_TYPE_MODIFIED_MEMREF}</DisplayString>
55
+ <DisplayString Condition="value==RC_MEMREF_TYPE_VALUE">RC_MEMREF_TYPE_VALUE</DisplayString>
56
+ <DisplayString>unknown ({value})</DisplayString>
57
+ </Type>
58
+ <Type Name="__rc_memsize_enum_func_t">
59
+ <DisplayString Condition="value==RC_MEMSIZE_8_BITS">byte</DisplayString>
60
+ <DisplayString Condition="value==RC_MEMSIZE_16_BITS">word</DisplayString>
61
+ <DisplayString Condition="value==RC_MEMSIZE_24_BITS">tbyte</DisplayString>
62
+ <DisplayString Condition="value==RC_MEMSIZE_32_BITS">dword</DisplayString>
63
+ <DisplayString Condition="value==RC_MEMSIZE_LOW">lower4</DisplayString>
64
+ <DisplayString Condition="value==RC_MEMSIZE_HIGH">upper4</DisplayString>
65
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_0">bit0</DisplayString>
66
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_1">bit1</DisplayString>
67
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_2">bit2</DisplayString>
68
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_3">bit3</DisplayString>
69
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_4">bit4</DisplayString>
70
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_5">bit5</DisplayString>
71
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_6">bit6</DisplayString>
72
+ <DisplayString Condition="value==RC_MEMSIZE_BIT_7">bit7</DisplayString>
73
+ <DisplayString Condition="value==RC_MEMSIZE_BITCOUNT">bitcount</DisplayString>
74
+ <DisplayString Condition="value==RC_MEMSIZE_16_BITS_BE">word_be</DisplayString>
75
+ <DisplayString Condition="value==RC_MEMSIZE_24_BITS_BE">tbyte_be</DisplayString>
76
+ <DisplayString Condition="value==RC_MEMSIZE_32_BITS_BE">dword_be</DisplayString>
77
+ <DisplayString Condition="value==RC_MEMSIZE_FLOAT">float</DisplayString>
78
+ <DisplayString Condition="value==RC_MEMSIZE_MBF32">mbf32</DisplayString>
79
+ <DisplayString Condition="value==RC_MEMSIZE_MBF32_LE">mbf32_le</DisplayString>
80
+ <DisplayString Condition="value==RC_MEMSIZE_FLOAT_BE">float_be</DisplayString>
81
+ <DisplayString Condition="value==RC_MEMSIZE_DOUBLE32">double32</DisplayString>
82
+ <DisplayString Condition="value==RC_MEMSIZE_DOUBLE32_BE">double32_be</DisplayString>
83
+ <DisplayString Condition="value==RC_MEMSIZE_VARIABLE">var</DisplayString>
84
+ <DisplayString>unknown</DisplayString>
85
+ </Type>
86
+ <Type Name="rc_memref_value_t">
87
+ <DisplayString Condition="type==RC_VALUE_TYPE_FLOAT">{{value={(float)*((float*)&amp;value)} prior={(float)*((float*)&amp;prior)}}}</DisplayString>
88
+ <DisplayString Condition="type==RC_VALUE_TYPE_SIGNED">{{value={(int)value} prior={(int)prior}}}</DisplayString>
89
+ <DisplayString>{{value={value,x} prior={prior,x}}}</DisplayString>
90
+ <Expand>
91
+ <Item Name="value">value</Item>
92
+ <Item Name="prior">prior</Item>
93
+ <Item Name="size">*((__rc_memsize_enum_t*)&amp;size)</Item>
94
+ <Item Name="changed">*((__rc_bool_enum_t*)&amp;changed)</Item>
95
+ <Item Name="type">*((__rc_value_type_enum_t*)&amp;type)</Item>
96
+ <Item Name="memref_type">*((__rc_memref_type_enum_t*)&amp;memref_type)</Item>
97
+ </Expand>
98
+ </Type>
99
+ <Type Name="rc_memref_t">
100
+ <DisplayString Condition="value.memref_type==RC_MEMREF_TYPE_MODIFIED_MEMREF">{*(rc_modified_memref_t*)&amp;value}</DisplayString>
101
+ <DisplayString Condition="value.memref_type==RC_MEMREF_TYPE_VALUE">{*(rc_value_t*)&amp;value}</DisplayString>
102
+ <DisplayString Condition="value.size==RC_MEMSIZE_VARIABLE">var</DisplayString>
103
+ <DisplayString>{*((__rc_memsize_enum_func_t*)&amp;value.size)}({address,x})</DisplayString>
104
+ <Expand>
105
+ <Item Name="[rc_modified_memref_t]" Condition="value.memref_type==RC_MEMREF_TYPE_MODIFIED_MEMREF">(rc_modified_memref_t*)&amp;value</Item>
106
+ <Item Name="value">value</Item>
107
+ <Item Name="address">address</Item>
108
+ </Expand>
109
+ </Type>
110
+ <Type Name="rc_memref_list_t">
111
+ <DisplayString>{{count = {count}}}</DisplayString>
112
+ <Expand>
113
+ <Item Name="next" Condition="next!=0">next</Item>
114
+ <Item Name="count">count</Item>
115
+ <Item Name="capacity">capacity</Item>
116
+ <ArrayItems>
117
+ <Size>count</Size>
118
+ <ValuePointer>items</ValuePointer>
119
+ </ArrayItems>
120
+ </Expand>
121
+ </Type>
122
+ <Type Name="__rc_operand_memref_t">
123
+ <DisplayString Condition="operand.value.memref->value.memref_type==RC_MEMREF_TYPE_MODIFIED_MEMREF">... {*((__rc_memsize_enum_func_t*)&amp;operand.size)} {((rc_modified_memref_t*)operand.value.memref)->parent,na}</DisplayString>
124
+ <DisplayString Condition="operand.value.memref->value.memref_type==RC_MEMREF_TYPE_VALUE">value {((rc_value_t*)operand.value.memref)->name,s}</DisplayString>
125
+ <DisplayString>{*((__rc_memsize_enum_func_t*)&amp;operand.size)} {operand.value.memref->address,x}</DisplayString>
126
+ <Expand>
127
+ <Item Name="[rc_modified_memref_t]" Condition="operand.value.memref->value.memref_type==RC_MEMREF_TYPE_MODIFIED_MEMREF">(rc_modified_memref_t*)&amp;operand.value</Item>
128
+ <Item Name="value">operand.value.memref->value</Item>
129
+ <Item Name="address">operand.value.memref->address</Item>
130
+ </Expand>
131
+ </Type>
132
+ <Type Name="__rc_operand_enum_t">
133
+ <DisplayString Condition="value==RC_OPERAND_ADDRESS">{RC_OPERAND_ADDRESS}</DisplayString>
134
+ <DisplayString Condition="value==RC_OPERAND_DELTA">{RC_OPERAND_DELTA}</DisplayString>
135
+ <DisplayString Condition="value==RC_OPERAND_CONST">{RC_OPERAND_CONST}</DisplayString>
136
+ <DisplayString Condition="value==RC_OPERAND_FP">{RC_OPERAND_FP}</DisplayString>
137
+ <DisplayString Condition="value==RC_OPERAND_FUNC">{RC_OPERAND_FUNC}</DisplayString>
138
+ <DisplayString Condition="value==RC_OPERAND_PRIOR">{RC_OPERAND_PRIOR}</DisplayString>
139
+ <DisplayString Condition="value==RC_OPERAND_BCD">{RC_OPERAND_BCD}</DisplayString>
140
+ <DisplayString Condition="value==RC_OPERAND_INVERTED">{RC_OPERAND_INVERTED}</DisplayString>
141
+ <DisplayString Condition="value==RC_OPERAND_RECALL">{RC_OPERAND_RECALL}</DisplayString>
142
+ <DisplayString Condition="value==0xFF">RC_OPERAND_NONE (255)</DisplayString>
143
+ <DisplayString>unknown ({value})</DisplayString>
144
+ </Type>
145
+ <Type Name="rc_operand_t">
146
+ <DisplayString Condition="type==RC_OPERAND_ADDRESS">{{{*(__rc_operand_memref_t*)&amp;value.memref}}}</DisplayString>
147
+ <DisplayString Condition="type==RC_OPERAND_DELTA">{{delta {*(__rc_operand_memref_t*)&amp;value.memref}}}</DisplayString>
148
+ <DisplayString Condition="type==RC_OPERAND_PRIOR">{{prior {*(__rc_operand_memref_t*)&amp;value.memref}}}</DisplayString>
149
+ <DisplayString Condition="type==RC_OPERAND_BCD">{{bcd {*(__rc_operand_memref_t*)&amp;value.memref}}}</DisplayString>
150
+ <DisplayString Condition="type==RC_OPERAND_INVERTED">{{inverted {*(__rc_operand_memref_t*)&amp;value.memref}}}</DisplayString>
151
+ <DisplayString Condition="type==RC_OPERAND_CONST &amp;&amp; value.num &gt; 0xFFFF0000">{{value {(int)value.num}}}</DisplayString>
152
+ <DisplayString Condition="type==RC_OPERAND_CONST &amp;&amp; value.num &gt; 0x01000000">{{value {value.num,x}}}</DisplayString>
153
+ <DisplayString Condition="type==RC_OPERAND_CONST">{{value {value.num}}}</DisplayString>
154
+ <DisplayString Condition="type==RC_OPERAND_FP">{{value {value.dbl}}}</DisplayString>
155
+ <DisplayString Condition="type==RC_OPERAND_RECALL">{{recall}}</DisplayString>
156
+ <DisplayString Condition="type==RC_OPERAND_FUNC">{{func @{value}}}</DisplayString>
157
+ <DisplayString Condition="type==0xFF">{{none}}</DisplayString>
158
+ <DisplayString>{{unknown}}</DisplayString>
159
+ <Expand>
160
+ <Item Name="value" Condition="type==RC_OPERAND_CONST">value.num</Item>
161
+ <Item Name="value" Condition="type==RC_OPERAND_FP">value.dbl</Item>
162
+ <Item Name="value" Condition="type==RC_OPERAND_RECALL &amp;&amp; memref_access_type==RC_OPERAND_CONST">value.num</Item>
163
+ <Item Name="value" Condition="type==RC_OPERAND_RECALL &amp;&amp; memref_access_type==RC_OPERAND_FP">value.dbl</Item>
164
+ <Item Name="value" Condition="type!=RC_OPERAND_CONST &amp;&amp; type!=RC_OPERAND_FP &amp;&amp; value.memref==0">value.memref</Item>
165
+ <Item Name="value" Condition="type!=RC_OPERAND_CONST &amp;&amp; type!=RC_OPERAND_FP &amp;&amp; ((rc_memref_t*)value.memref)->value.memref_type!=RC_MEMREF_TYPE_MODIFIED_MEMREF">value.memref</Item>
166
+ <Item Name="value" Condition="type!=RC_OPERAND_CONST &amp;&amp; type!=RC_OPERAND_FP &amp;&amp; ((rc_memref_t*)value.memref)->value.memref_type==RC_MEMREF_TYPE_MODIFIED_MEMREF">(rc_modified_memref_t*)value.memref</Item>
167
+ <Item Name="type">*((__rc_operand_enum_t*)&amp;type)</Item>
168
+ <Item Name="size">*((__rc_memsize_enum_t*)&amp;size)</Item>
169
+ <Item Name="memref_access_type">*((__rc_operand_enum_t*)&amp;memref_access_type)</Item>
170
+ </Expand>
171
+ </Type>
172
+ <Type Name="__rc_condition_enum_t">
173
+ <DisplayString Condition="value==RC_CONDITION_STANDARD">{RC_CONDITION_STANDARD}</DisplayString>
174
+ <DisplayString Condition="value==RC_CONDITION_PAUSE_IF">{RC_CONDITION_PAUSE_IF}</DisplayString>
175
+ <DisplayString Condition="value==RC_CONDITION_RESET_IF">{RC_CONDITION_RESET_IF}</DisplayString>
176
+ <DisplayString Condition="value==RC_CONDITION_MEASURED_IF">{RC_CONDITION_MEASURED_IF}</DisplayString>
177
+ <DisplayString Condition="value==RC_CONDITION_TRIGGER">{RC_CONDITION_TRIGGER}</DisplayString>
178
+ <DisplayString Condition="value==RC_CONDITION_MEASURED">{RC_CONDITION_MEASURED}</DisplayString>
179
+ <DisplayString Condition="value==RC_CONDITION_ADD_SOURCE">{RC_CONDITION_ADD_SOURCE}</DisplayString>
180
+ <DisplayString Condition="value==RC_CONDITION_SUB_SOURCE">{RC_CONDITION_SUB_SOURCE}</DisplayString>
181
+ <DisplayString Condition="value==RC_CONDITION_ADD_ADDRESS">{RC_CONDITION_ADD_ADDRESS}</DisplayString>
182
+ <DisplayString Condition="value==RC_CONDITION_REMEMBER">{RC_CONDITION_REMEMBER}</DisplayString>
183
+ <DisplayString Condition="value==RC_CONDITION_ADD_HITS">{RC_CONDITION_ADD_HITS}</DisplayString>
184
+ <DisplayString Condition="value==RC_CONDITION_SUB_HITS">{RC_CONDITION_SUB_HITS}</DisplayString>
185
+ <DisplayString Condition="value==RC_CONDITION_RESET_NEXT_IF">{RC_CONDITION_RESET_NEXT_IF}</DisplayString>
186
+ <DisplayString Condition="value==RC_CONDITION_AND_NEXT">{RC_CONDITION_AND_NEXT}</DisplayString>
187
+ <DisplayString Condition="value==RC_CONDITION_OR_NEXT">{RC_CONDITION_OR_NEXT}</DisplayString>
188
+ <DisplayString>unknown ({value})</DisplayString>
189
+ </Type>
190
+ <Type Name="__rc_condition_enum_str_t">
191
+ <DisplayString Condition="value==RC_CONDITION_STANDARD"></DisplayString>
192
+ <DisplayString Condition="value==RC_CONDITION_PAUSE_IF">PauseIf </DisplayString>
193
+ <DisplayString Condition="value==RC_CONDITION_RESET_IF">ResetIf </DisplayString>
194
+ <DisplayString Condition="value==RC_CONDITION_MEASURED_IF">MeasuredIf </DisplayString>
195
+ <DisplayString Condition="value==RC_CONDITION_TRIGGER">Trigger </DisplayString>
196
+ <DisplayString Condition="value==RC_CONDITION_MEASURED">Measured </DisplayString>
197
+ <DisplayString Condition="value==RC_CONDITION_ADD_SOURCE">AddSource </DisplayString>
198
+ <DisplayString Condition="value==RC_CONDITION_SUB_SOURCE">SubSource </DisplayString>
199
+ <DisplayString Condition="value==RC_CONDITION_ADD_ADDRESS">AddAddress </DisplayString>
200
+ <DisplayString Condition="value==RC_CONDITION_REMEMBER">Remember </DisplayString>
201
+ <DisplayString Condition="value==RC_CONDITION_ADD_HITS">AddHits </DisplayString>
202
+ <DisplayString Condition="value==RC_CONDITION_SUB_HITS">SubHits </DisplayString>
203
+ <DisplayString Condition="value==RC_CONDITION_RESET_NEXT_IF">ResetNextIf </DisplayString>
204
+ <DisplayString Condition="value==RC_CONDITION_AND_NEXT">AndNext </DisplayString>
205
+ <DisplayString Condition="value==RC_CONDITION_OR_NEXT">OrNext </DisplayString>
206
+ <DisplayString>{value} </DisplayString>
207
+ </Type>
208
+ <Type Name="__rc_operator_enum_t">
209
+ <DisplayString Condition="value==RC_OPERATOR_EQ">{RC_OPERATOR_EQ}</DisplayString>
210
+ <DisplayString Condition="value==RC_OPERATOR_LT">{RC_OPERATOR_LT}</DisplayString>
211
+ <DisplayString Condition="value==RC_OPERATOR_LE">{RC_OPERATOR_LE}</DisplayString>
212
+ <DisplayString Condition="value==RC_OPERATOR_GT">{RC_OPERATOR_GT}</DisplayString>
213
+ <DisplayString Condition="value==RC_OPERATOR_GE">{RC_OPERATOR_GE}</DisplayString>
214
+ <DisplayString Condition="value==RC_OPERATOR_NE">{RC_OPERATOR_NE}</DisplayString>
215
+ <DisplayString Condition="value==RC_OPERATOR_NONE">{RC_OPERATOR_NONE}</DisplayString>
216
+ <DisplayString Condition="value==RC_OPERATOR_MULT">{RC_OPERATOR_MULT}</DisplayString>
217
+ <DisplayString Condition="value==RC_OPERATOR_DIV">{RC_OPERATOR_DIV}</DisplayString>
218
+ <DisplayString Condition="value==RC_OPERATOR_AND">{RC_OPERATOR_AND}</DisplayString>
219
+ <DisplayString Condition="value==RC_OPERATOR_XOR">{RC_OPERATOR_XOR}</DisplayString>
220
+ <DisplayString Condition="value==RC_OPERATOR_MOD">{RC_OPERATOR_MOD}</DisplayString>
221
+ <DisplayString Condition="value==RC_OPERATOR_ADD">{RC_OPERATOR_ADD}</DisplayString>
222
+ <DisplayString Condition="value==RC_OPERATOR_SUB">{RC_OPERATOR_SUB}</DisplayString>
223
+ <DisplayString Condition="value==RC_OPERATOR_SUB_PARENT">{RC_OPERATOR_SUB_PARENT}</DisplayString>
224
+ <DisplayString Condition="value==RC_OPERATOR_INDIRECT_READ">{RC_OPERATOR_INDIRECT_READ}</DisplayString>
225
+ <DisplayString>unknown ({value})</DisplayString>
226
+ </Type>
227
+ <Type Name="__rc_operator_enum_str_t">
228
+ <DisplayString Condition="value==RC_OPERATOR_EQ">==</DisplayString>
229
+ <DisplayString Condition="value==RC_OPERATOR_LT">&lt;</DisplayString>
230
+ <DisplayString Condition="value==RC_OPERATOR_LE">&lt;=</DisplayString>
231
+ <DisplayString Condition="value==RC_OPERATOR_GT">&gt;</DisplayString>
232
+ <DisplayString Condition="value==RC_OPERATOR_GE">&gt;=</DisplayString>
233
+ <DisplayString Condition="value==RC_OPERATOR_NE">!=</DisplayString>
234
+ <DisplayString Condition="value==RC_OPERATOR_NONE"> </DisplayString>
235
+ <DisplayString Condition="value==RC_OPERATOR_MULT">*</DisplayString>
236
+ <DisplayString Condition="value==RC_OPERATOR_DIV">/</DisplayString>
237
+ <DisplayString Condition="value==RC_OPERATOR_AND">&amp;</DisplayString>
238
+ <DisplayString Condition="value==RC_OPERATOR_XOR">^</DisplayString>
239
+ <DisplayString Condition="value==RC_OPERATOR_MOD">%</DisplayString>
240
+ <DisplayString Condition="value==RC_OPERATOR_ADD">+</DisplayString>
241
+ <DisplayString Condition="value==RC_OPERATOR_SUB">-</DisplayString>
242
+ <DisplayString Condition="value==RC_OPERATOR_SUB_PARENT">subtracted from</DisplayString>
243
+ <DisplayString Condition="value==RC_OPERATOR_INDIRECT_READ">$</DisplayString>
244
+ <DisplayString>unknown ({value})</DisplayString>
245
+ </Type>
246
+ <Type Name="rc_condition_t">
247
+ <DisplayString Condition="oper==RC_OPERATOR_NONE &amp;&amp; required_hits==0">{*((__rc_condition_enum_str_t*)&amp;type)} {operand1}</DisplayString>
248
+ <DisplayString Condition="oper==RC_OPERATOR_NONE">{*((__rc_condition_enum_str_t*)&amp;type)} {operand1} ({required_hits})</DisplayString>
249
+ <DisplayString Condition="required_hits==0">{*((__rc_condition_enum_str_t*)&amp;type)} {operand1} {*((__rc_operator_enum_str_t*)&amp;oper)} {operand2}</DisplayString>
250
+ <DisplayString>{*((__rc_condition_enum_str_t*)&amp;type)} {operand1} {*((__rc_operator_enum_str_t*)&amp;oper)} {operand2} ({required_hits})</DisplayString>
251
+ <Expand>
252
+ <Item Name="type">*((__rc_condition_enum_t*)&amp;type)</Item>
253
+ <Item Name="operand1">operand1</Item>
254
+ <Item Name="oper">*((__rc_operator_enum_t*)&amp;oper)</Item>
255
+ <Item Name="operand2">operand2</Item>
256
+ <Item Name="required_hits">required_hits</Item>
257
+ <Item Name="current_hits">current_hits</Item>
258
+ <Item Name="next">next</Item>
259
+ </Expand>
260
+ </Type>
261
+ <Type Name="rc_condset_t">
262
+ <DisplayString>{{count={num_pause_conditions+num_reset_conditions+num_hittarget_conditions+num_measured_conditions+num_other_conditions+num_indirect_conditions}}}</DisplayString>
263
+ <Expand>
264
+ <LinkedListItems>
265
+ <HeadPointer>conditions</HeadPointer>
266
+ <NextPointer>next</NextPointer>
267
+ <ValueNode>this</ValueNode>
268
+ </LinkedListItems>
269
+ </Expand>
270
+ </Type>
271
+ <Type Name="__rc_condset_list_t">
272
+ <DisplayString Condition="first_condset==0">{{}}</DisplayString>
273
+ <Expand>
274
+ <LinkedListItems>
275
+ <HeadPointer>first_condset</HeadPointer>
276
+ <NextPointer>next</NextPointer>
277
+ <ValueNode>this</ValueNode>
278
+ </LinkedListItems>
279
+ </Expand>
280
+ </Type>
281
+ <Type Name="rc_modified_memref_t">
282
+ <DisplayString Condition="modifier_type==RC_OPERATOR_INDIRECT_READ">$({parent} + {modifier})</DisplayString>
283
+ <DisplayString Condition="modifier_type==RC_OPERATOR_SUB_PARENT">({modifier} - {parent})</DisplayString>
284
+ <DisplayString>({parent} {*((__rc_operator_enum_str_t*)&amp;modifier_type)} {modifier})</DisplayString>
285
+ <Expand>
286
+ <Item Name="value">memref.value</Item>
287
+ <Item Name="parent">parent</Item>
288
+ <Item Name="modifier_type">*((__rc_operator_enum_t*)&amp;modifier_type)</Item>
289
+ <Item Name="modifier">modifier</Item>
290
+ </Expand>
291
+ </Type>
292
+ <Type Name="rc_modified_memref_list_t">
293
+ <DisplayString>{{count = {count}}}</DisplayString>
294
+ <Expand>
295
+ <Item Name="next" Condition="next!=0">next</Item>
296
+ <Item Name="count">count</Item>
297
+ <Item Name="capacity">capacity</Item>
298
+ <ArrayItems>
299
+ <Size>count</Size>
300
+ <ValuePointer>items</ValuePointer>
301
+ </ArrayItems>
302
+ </Expand>
303
+ </Type>
304
+ <Type Name="__rc_trigger_state_enum_t">
305
+ <DisplayString Condition="value==RC_TRIGGER_STATE_INACTIVE">{RC_TRIGGER_STATE_INACTIVE}</DisplayString>
306
+ <DisplayString Condition="value==RC_TRIGGER_STATE_WAITING">{RC_TRIGGER_STATE_WAITING}</DisplayString>
307
+ <DisplayString Condition="value==RC_TRIGGER_STATE_ACTIVE">{RC_TRIGGER_STATE_ACTIVE}</DisplayString>
308
+ <DisplayString Condition="value==RC_TRIGGER_STATE_PAUSED">{RC_TRIGGER_STATE_PAUSED}</DisplayString>
309
+ <DisplayString Condition="value==RC_TRIGGER_STATE_RESET">{RC_TRIGGER_STATE_RESET}</DisplayString>
310
+ <DisplayString Condition="value==RC_TRIGGER_STATE_TRIGGERED">{RC_TRIGGER_STATE_TRIGGERED}</DisplayString>
311
+ <DisplayString Condition="value==RC_TRIGGER_STATE_PRIMED">{RC_TRIGGER_STATE_PRIMED}</DisplayString>
312
+ <DisplayString Condition="value==RC_TRIGGER_STATE_DISABLED">{RC_TRIGGER_STATE_DISABLED}</DisplayString>
313
+ <DisplayString>unknown ({value})</DisplayString>
314
+ </Type>
315
+ <Type Name="rc_trigger_t">
316
+ <Expand>
317
+ <Item Name="state">*((__rc_trigger_state_enum_t*)&amp;state)</Item>
318
+ <Item Name="has_hits">*((__rc_bool_enum_t*)&amp;has_hits)</Item>
319
+ <Item Name="measured_as_percent">*((__rc_bool_enum_t*)&amp;measured_as_percent)</Item>
320
+ <Item Name="requirement">requirement</Item>
321
+ <Item Name="alternative">*((__rc_condset_list_t*)&amp;alternative)</Item>
322
+ </Expand>
323
+ </Type>
324
+ <Type Name="rc_value_t">
325
+ <DisplayString>{value} {name,s}</DisplayString>
326
+ <Expand>
327
+ <Item Name="value">value</Item>
328
+ <Item Name="conditions">conditions</Item>
329
+ <Item Name="name">name</Item>
330
+ </Expand>
331
+ </Type>
332
+ <Type Name="rc_value_list_t">
333
+ <DisplayString>{{count = {count}}}</DisplayString>
334
+ <Expand>
335
+ <Item Name="count">count</Item>
336
+ <Item Name="capacity">capacity</Item>
337
+ <ArrayItems>
338
+ <Size>count</Size>
339
+ <ValuePointer>items</ValuePointer>
340
+ </ArrayItems>
341
+ </Expand>
342
+ </Type>
343
+ <Type Name="__rc_lboard_state_enum_t">
344
+ <DisplayString Condition="value==RC_LBOARD_STATE_INACTIVE">{RC_LBOARD_STATE_INACTIVE}</DisplayString>
345
+ <DisplayString Condition="value==RC_LBOARD_STATE_WAITING">{RC_LBOARD_STATE_WAITING}</DisplayString>
346
+ <DisplayString Condition="value==RC_LBOARD_STATE_ACTIVE">{RC_LBOARD_STATE_ACTIVE}</DisplayString>
347
+ <DisplayString Condition="value==RC_LBOARD_STATE_STARTED">{RC_LBOARD_STATE_STARTED}</DisplayString>
348
+ <DisplayString Condition="value==RC_LBOARD_STATE_CANCELED">{RC_LBOARD_STATE_CANCELED}</DisplayString>
349
+ <DisplayString Condition="value==RC_LBOARD_STATE_TRIGGERED">{RC_LBOARD_STATE_TRIGGERED}</DisplayString>
350
+ <DisplayString Condition="value==RC_LBOARD_STATE_DISABLED">{RC_LBOARD_STATE_DISABLED}</DisplayString>
351
+ <DisplayString>unknown ({value})</DisplayString>
352
+ </Type>
353
+ <Type Name="rc_lboard_t">
354
+ <Expand>
355
+ <Item Name="state">*((__rc_lboard_state_enum_t*)&amp;state)</Item>
356
+ <Item Name="start">start</Item>
357
+ <Item Name="submit">submit</Item>
358
+ <Item Name="cancel">cancel</Item>
359
+ <Item Name="value">value</Item>
360
+ </Expand>
361
+ </Type>
362
+ <Type Name="__rc_format_enum_t">
363
+ <DisplayString Condition="value==RC_FORMAT_FRAMES">{RC_FORMAT_FRAMES}</DisplayString>
364
+ <DisplayString Condition="value==RC_FORMAT_SECONDS">{RC_FORMAT_SECONDS}</DisplayString>
365
+ <DisplayString Condition="value==RC_FORMAT_CENTISECS">{RC_FORMAT_CENTISECS}</DisplayString>
366
+ <DisplayString Condition="value==RC_FORMAT_SCORE">{RC_FORMAT_SCORE}</DisplayString>
367
+ <DisplayString Condition="value==RC_FORMAT_VALUE">{RC_FORMAT_VALUE}</DisplayString>
368
+ <DisplayString Condition="value==RC_FORMAT_MINUTES">{RC_FORMAT_MINUTES}</DisplayString>
369
+ <DisplayString Condition="value==RC_FORMAT_SECONDS_AS_MINUTES">{RC_FORMAT_SECONDS_AS_MINUTES}</DisplayString>
370
+ <DisplayString Condition="value==RC_FORMAT_FLOAT1">{RC_FORMAT_FLOAT1}</DisplayString>
371
+ <DisplayString Condition="value==RC_FORMAT_FLOAT2">{RC_FORMAT_FLOAT2}</DisplayString>
372
+ <DisplayString Condition="value==RC_FORMAT_FLOAT3">{RC_FORMAT_FLOAT3}</DisplayString>
373
+ <DisplayString Condition="value==RC_FORMAT_FLOAT4">{RC_FORMAT_FLOAT4}</DisplayString>
374
+ <DisplayString Condition="value==RC_FORMAT_FLOAT5">{RC_FORMAT_FLOAT5}</DisplayString>
375
+ <DisplayString Condition="value==RC_FORMAT_FLOAT6">{RC_FORMAT_FLOAT6}</DisplayString>
376
+ <DisplayString Condition="value==RC_FORMAT_FIXED1">{RC_FORMAT_FIXED1}</DisplayString>
377
+ <DisplayString Condition="value==RC_FORMAT_FIXED2">{RC_FORMAT_FIXED2}</DisplayString>
378
+ <DisplayString Condition="value==RC_FORMAT_FIXED3">{RC_FORMAT_FIXED3}</DisplayString>
379
+ <DisplayString Condition="value==RC_FORMAT_TENS">{RC_FORMAT_TENS}</DisplayString>
380
+ <DisplayString Condition="value==RC_FORMAT_HUNDREDS">{RC_FORMAT_HUNDREDS}</DisplayString>
381
+ <DisplayString Condition="value==RC_FORMAT_THOUSANDS">{RC_FORMAT_THOUSANDS}</DisplayString>
382
+ <DisplayString Condition="value==RC_FORMAT_UNSIGNED_VALUE">{RC_FORMAT_UNSIGNED_VALUE}</DisplayString>
383
+ <DisplayString Condition="value==RC_FORMAT_UNFORMATTED">{RC_FORMAT_UNFORMATTED}</DisplayString>
384
+ <DisplayString Condition="value==101">RC_FORMAT_STRING (101)</DisplayString>
385
+ <DisplayString Condition="value==102">RC_FORMAT_LOOKUP (102)</DisplayString>
386
+ <DisplayString Condition="value==103">RC_FORMAT_UNKNOWN_MACRO (103)</DisplayString>
387
+ <DisplayString Condition="value==104">RC_FORMAT_ASCIICHAR (104)</DisplayString>
388
+ <DisplayString Condition="value==105">RC_FORMAT_UNICODECHAR (105)</DisplayString>
389
+ <DisplayString>unknown ({value})</DisplayString>
390
+ </Type>
391
+ <Type Name="rc_richpresence_display_part_t">
392
+ <DisplayString Condition="display_type==101">{text,s}</DisplayString>
393
+ <DisplayString Condition="display_type==103">[Unknown macro]{text,sb}</DisplayString>
394
+ <DisplayString Condition="lookup==0">@{text,sb}({value,na})</DisplayString>
395
+ <DisplayString>@{lookup->name,sb}({value,na})</DisplayString>
396
+ <Expand>
397
+ <Item Name="text" Condition="display_type==101||display_type==103">text</Item>
398
+ <Item Name="lookup" Condition="display_type!=101&amp;&amp;display_type!=103">lookup</Item>
399
+ <Item Name="value" Condition="display_type!=101&amp;&amp;display_type!=103">value</Item>
400
+ <Item Name="display_type">*((__rc_format_enum_t*)&amp;display_type)</Item>
401
+ </Expand>
402
+ </Type>
403
+ <Type Name="__rc_richpresence_display_part_list_t">
404
+ <DisplayString Condition="display->next->next!=0">{display,na} {display->next,na} {display->next->next,na}</DisplayString>
405
+ <DisplayString Condition="display->next!=0">{display,na} {display->next,na}</DisplayString>
406
+ <DisplayString>{display,na}</DisplayString>
407
+ <Expand>
408
+ <LinkedListItems>
409
+ <HeadPointer>display</HeadPointer>
410
+ <NextPointer>next</NextPointer>
411
+ <ValueNode>this</ValueNode>
412
+ </LinkedListItems>
413
+ </Expand>
414
+ </Type>
415
+ <Type Name="rc_richpresence_display_t">
416
+ <Expand>
417
+ <Item Name="displays">*((__rc_richpresence_display_part_list_t*)&amp;display)</Item>
418
+ <Item Name="trigger">trigger</Item>
419
+ </Expand>
420
+ </Type>
421
+ <Type Name="__rc_richpresence_display_list_t">
422
+ <DisplayString Condition="first_display==0">{{NULL}}</DisplayString>
423
+ <DisplayString>{(void*)&amp;first_display,na}</DisplayString>
424
+ <Expand>
425
+ <LinkedListItems>
426
+ <HeadPointer>first_display</HeadPointer>
427
+ <NextPointer>next</NextPointer>
428
+ <ValueNode>this</ValueNode>
429
+ </LinkedListItems>
430
+ </Expand>
431
+ </Type>
432
+ <Type Name="rc_richpresence_lookup_item_t">
433
+ <DisplayString Condition="first==last">{first}: {label,na}</DisplayString>
434
+ <DisplayString>{first}-{last}: {label,na}</DisplayString>
435
+ </Type>
436
+ <Type Name="rc_richpresence_lookup_t">
437
+ <DisplayString>{name,na}</DisplayString>
438
+ <Expand>
439
+ <Item Name="name">name</Item>
440
+ <Item Name="format">*((__rc_format_enum_t*)&amp;format)</Item>
441
+ <Item Name="default_label" Condition="format>101">default_label</Item>
442
+ <TreeItems>
443
+ <HeadPointer>root</HeadPointer>
444
+ <LeftPointer>left</LeftPointer>
445
+ <RightPointer>right</RightPointer>
446
+ <ValueNode>this</ValueNode>
447
+ </TreeItems>
448
+ </Expand>
449
+ </Type>
450
+ <Type Name="__rc_richpresence_lookup_list_t">
451
+ <DisplayString Condition="first_lookup==0">{{NULL}}</DisplayString>
452
+ <DisplayString>{(void*)&amp;first_lookup,na}</DisplayString>
453
+ <Expand>
454
+ <LinkedListItems>
455
+ <HeadPointer>first_lookup</HeadPointer>
456
+ <NextPointer>next</NextPointer>
457
+ <ValueNode>this</ValueNode>
458
+ </LinkedListItems>
459
+ </Expand>
460
+ </Type>
461
+ <Type Name="rc_richpresence_t">
462
+ <Expand>
463
+ <Item Name="displays">((__rc_richpresence_display_list_t*)&amp;first_display)</Item>
464
+ <Item Name="lookups">((__rc_richpresence_lookup_list_t*)&amp;first_lookup)</Item>
465
+ </Expand>
466
+ </Type>
467
+ <Type Name="__rc_value_list_t">
468
+ <DisplayString Condition="first_value==0">{{NULL}}</DisplayString>
469
+ <DisplayString>{(void*)&amp;first_value,na}</DisplayString>
470
+ <Expand>
471
+ <LinkedListItems>
472
+ <HeadPointer>first_value</HeadPointer>
473
+ <NextPointer>next</NextPointer>
474
+ <ValueNode>this</ValueNode>
475
+ </LinkedListItems>
476
+ </Expand>
477
+ </Type>
478
+ <Type Name="rc_parse_state_t">
479
+ <DisplayString>{{offset={offset} addsource_parent={addsource_parent} indirect_parent={indirect_parent}}}</DisplayString>
480
+ <Expand>
481
+ <Item Name="offset">offset</Item>
482
+ <Item Name="memrefs">memrefs</Item>
483
+ <Item Name="existing_memrefs">existing_memrefs</Item>
484
+ <Item Name="variables" Condition="variables==0">variables</Item>
485
+ <Item Name="variables" Condition="variables!=0">((__rc_value_list_t*)&amp;variables)</Item>
486
+ <Item Name="addsource_parent">addsource_parent</Item>
487
+ <Item Name="addsource_oper">*((__rc_operator_enum_t*)&amp;addsource_oper)</Item>
488
+ <Item Name="indirect_parent">indirect_parent</Item>
489
+ <Item Name="remember">remember</Item>
490
+ <Item Name="is_value">*((__rc_bool_enum_t*)&amp;is_value)</Item>
491
+ <Item Name="has_required_hits">*((__rc_bool_enum_t*)&amp;has_required_hits)</Item>
492
+ <Item Name="measured_as_percent">*((__rc_bool_enum_t*)&amp;measured_as_percent)</Item>
493
+ </Expand>
494
+ </Type>
495
+ <Type Name="rc_buffer_chunk_t">
496
+ <DisplayString>{{used={write-start} size={end-start}}}</DisplayString>
497
+ <Expand>
498
+ <Item Name="[size]">end-start</Item>
499
+ <Item Name="[used]">write-start</Item>
500
+ <Item Name="[available]">end-write</Item>
501
+ <Item Name="next">next</Item>
502
+ </Expand>
503
+ </Type>
504
+ <Type Name="rc_buffer_t">
505
+ <DisplayString></DisplayString>
506
+ <Expand>
507
+ <LinkedListItems>
508
+ <HeadPointer>&amp;chunk</HeadPointer>
509
+ <NextPointer>next</NextPointer>
510
+ <ValueNode>this</ValueNode>
511
+ </LinkedListItems>
512
+ </Expand>
513
+ </Type>
514
+ <Type Name="__rc_runtime_trigger_list_t">
515
+ <DisplayString>{{count={runtime.trigger_count}}}</DisplayString>
516
+ <Expand>
517
+ <IndexListItems>
518
+ <Size>runtime.trigger_count</Size>
519
+ <ValueNode>runtime.triggers[$i]</ValueNode>
520
+ </IndexListItems>
521
+ </Expand>
522
+ </Type>
523
+ <Type Name="__rc_runtime_lboard_list_t">
524
+ <DisplayString>{{count={runtime.lboard_count}}}</DisplayString>
525
+ <Expand>
526
+ <IndexListItems>
527
+ <Size>runtime.lboard_count</Size>
528
+ <ValueNode>runtime.lboards[$i]</ValueNode>
529
+ </IndexListItems>
530
+ </Expand>
531
+ </Type>
532
+ <Type Name="rc_runtime_t">
533
+ <DisplayString>{{trigger_count={trigger_count} lboard_count={lboard_count}}}</DisplayString>
534
+ <Expand>
535
+ <Item Name="triggers">*((__rc_runtime_trigger_list_t*)this)</Item>
536
+ <Item Name="lboards">*((__rc_runtime_lboard_list_t*)this)</Item>
537
+ <Item Name="richpresence">richpresence</Item>
538
+ <Item Name="memrefs">memrefs</Item>
539
+ </Expand>
540
+ </Type>
541
+ </AutoVisualizer>