gemba 0.1.1 → 0.2.0

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 (285) 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 +186 -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 +453 -0
  17. data/lib/gemba/achievements/retro_achievements/cli_sync_requester.rb +64 -0
  18. data/lib/gemba/achievements/retro_achievements/ping_worker.rb +27 -0
  19. data/lib/gemba/achievements.rb +19 -0
  20. data/lib/gemba/achievements_window.rb +556 -0
  21. data/lib/gemba/app_controller.rb +1015 -0
  22. data/lib/gemba/bios.rb +54 -0
  23. data/lib/gemba/boxart_fetcher/libretro_backend.rb +39 -0
  24. data/lib/gemba/boxart_fetcher/null_backend.rb +12 -0
  25. data/lib/gemba/boxart_fetcher.rb +79 -0
  26. data/lib/gemba/bus_emitter.rb +13 -0
  27. data/lib/gemba/child_window.rb +24 -1
  28. data/lib/gemba/cli/commands/config_cmd.rb +83 -0
  29. data/lib/gemba/cli/commands/decode.rb +154 -0
  30. data/lib/gemba/cli/commands/patch.rb +78 -0
  31. data/lib/gemba/cli/commands/play.rb +78 -0
  32. data/lib/gemba/cli/commands/record.rb +114 -0
  33. data/lib/gemba/cli/commands/replay.rb +161 -0
  34. data/lib/gemba/cli/commands/retro_achievements.rb +213 -0
  35. data/lib/gemba/cli/commands/version.rb +22 -0
  36. data/lib/gemba/cli.rb +52 -364
  37. data/lib/gemba/config.rb +134 -1
  38. data/lib/gemba/data/gb_games.json +1 -0
  39. data/lib/gemba/data/gb_md5.json +1 -0
  40. data/lib/gemba/data/gba_games.json +1 -0
  41. data/lib/gemba/data/gba_md5.json +1 -0
  42. data/lib/gemba/data/gbc_games.json +1 -0
  43. data/lib/gemba/data/gbc_md5.json +1 -0
  44. data/lib/gemba/emulator_frame.rb +1060 -0
  45. data/lib/gemba/event_bus.rb +48 -0
  46. data/lib/gemba/frame_stack.rb +60 -0
  47. data/lib/gemba/game_index.rb +84 -0
  48. data/lib/gemba/game_picker_frame.rb +268 -0
  49. data/lib/gemba/gamepad_map.rb +103 -0
  50. data/lib/gemba/headless.rb +6 -5
  51. data/lib/gemba/headless_player.rb +33 -3
  52. data/lib/gemba/help_window.rb +61 -0
  53. data/lib/gemba/hotkey_map.rb +3 -1
  54. data/lib/gemba/input_recorder.rb +107 -0
  55. data/lib/gemba/input_replayer.rb +119 -0
  56. data/lib/gemba/keyboard_map.rb +90 -0
  57. data/lib/gemba/locales/en.yml +97 -5
  58. data/lib/gemba/locales/ja.yml +97 -5
  59. data/lib/gemba/main_window.rb +56 -0
  60. data/lib/gemba/modal_stack.rb +81 -0
  61. data/lib/gemba/patcher_window.rb +223 -0
  62. data/lib/gemba/platform/gb.rb +21 -0
  63. data/lib/gemba/platform/gba.rb +21 -0
  64. data/lib/gemba/platform/gbc.rb +23 -0
  65. data/lib/gemba/platform.rb +20 -0
  66. data/lib/gemba/platform_open.rb +19 -0
  67. data/lib/gemba/recorder.rb +4 -3
  68. data/lib/gemba/replay_player.rb +691 -0
  69. data/lib/gemba/rom_info.rb +57 -0
  70. data/lib/gemba/rom_info_window.rb +16 -3
  71. data/lib/gemba/rom_library.rb +106 -0
  72. data/lib/gemba/rom_overrides.rb +47 -0
  73. data/lib/gemba/rom_patcher/bps.rb +161 -0
  74. data/lib/gemba/rom_patcher/ips.rb +101 -0
  75. data/lib/gemba/rom_patcher/ups.rb +118 -0
  76. data/lib/gemba/rom_patcher.rb +109 -0
  77. data/lib/gemba/{rom_loader.rb → rom_resolver.rb} +7 -6
  78. data/lib/gemba/runtime.rb +59 -26
  79. data/lib/gemba/save_state_manager.rb +4 -7
  80. data/lib/gemba/save_state_picker.rb +17 -4
  81. data/lib/gemba/session_logger.rb +64 -0
  82. data/lib/gemba/settings/audio_tab.rb +77 -0
  83. data/lib/gemba/settings/gamepad_tab.rb +351 -0
  84. data/lib/gemba/settings/hotkeys_tab.rb +259 -0
  85. data/lib/gemba/settings/paths.rb +11 -0
  86. data/lib/gemba/settings/recording_tab.rb +83 -0
  87. data/lib/gemba/settings/save_states_tab.rb +91 -0
  88. data/lib/gemba/settings/system_tab.rb +362 -0
  89. data/lib/gemba/settings/video_tab.rb +318 -0
  90. data/lib/gemba/settings_window.rb +162 -1036
  91. data/lib/gemba/version.rb +1 -1
  92. data/lib/gemba/virtual_keyboard.rb +19 -0
  93. data/lib/gemba.rb +2 -12
  94. data/test/achievements_window/test_bulk_sync.rb +218 -0
  95. data/test/achievements_window/test_bus_events.rb +125 -0
  96. data/test/achievements_window/test_close_confirmation.rb +201 -0
  97. data/test/achievements_window/test_initial_state.rb +164 -0
  98. data/test/achievements_window/test_sorting.rb +227 -0
  99. data/test/achievements_window/test_tree_rendering.rb +133 -0
  100. data/test/fixtures/fake_bios.bin +0 -0
  101. data/test/fixtures/pong.gba +0 -0
  102. data/test/fixtures/test.gb +0 -0
  103. data/test/fixtures/test.gbc +0 -0
  104. data/test/fixtures/test_quicksave.ss +0 -0
  105. data/test/screenshots/no_focus.png +0 -0
  106. data/test/shared/teek_test_worker.rb +17 -1
  107. data/test/shared/tk_test_helper.rb +91 -4
  108. data/test/support/achievements_window_helpers.rb +18 -0
  109. data/test/support/fake_core.rb +25 -0
  110. data/test/support/fake_ra_runtime.rb +74 -0
  111. data/test/support/fake_requester.rb +68 -0
  112. data/test/support/player_helpers.rb +20 -5
  113. data/test/test_achievement.rb +32 -0
  114. data/test/{test_player.rb → test_app_controller.rb} +353 -85
  115. data/test/test_bios.rb +123 -0
  116. data/test/test_boxart_fetcher.rb +150 -0
  117. data/test/test_cli.rb +17 -265
  118. data/test/test_cli_config.rb +64 -0
  119. data/test/test_cli_decode.rb +97 -0
  120. data/test/test_cli_patch.rb +58 -0
  121. data/test/test_cli_play.rb +213 -0
  122. data/test/test_cli_ra.rb +175 -0
  123. data/test/test_cli_record.rb +69 -0
  124. data/test/test_cli_replay.rb +72 -0
  125. data/test/test_cli_sync_requester.rb +152 -0
  126. data/test/test_cli_version.rb +27 -0
  127. data/test/test_config.rb +2 -3
  128. data/test/test_config_ra.rb +69 -0
  129. data/test/test_core.rb +62 -1
  130. data/test/test_credentials_presenter.rb +192 -0
  131. data/test/test_event_bus.rb +100 -0
  132. data/test/test_fake_backend_achievements.rb +130 -0
  133. data/test/test_fake_backend_auth.rb +68 -0
  134. data/test/test_game_index.rb +77 -0
  135. data/test/test_game_picker_frame.rb +310 -0
  136. data/test/test_gamepad_map.rb +1 -3
  137. data/test/test_headless_player.rb +17 -3
  138. data/test/test_help_window.rb +82 -0
  139. data/test/test_hotkey_map.rb +22 -1
  140. data/test/test_input_recorder.rb +179 -0
  141. data/test/test_input_replay_determinism.rb +113 -0
  142. data/test/test_input_replayer.rb +162 -0
  143. data/test/test_keyboard_map.rb +1 -3
  144. data/test/test_libretro_backend.rb +41 -0
  145. data/test/test_locale.rb +1 -1
  146. data/test/test_logging.rb +123 -0
  147. data/test/test_null_backend.rb +42 -0
  148. data/test/test_offline_backend.rb +116 -0
  149. data/test/test_overlay_renderer.rb +1 -1
  150. data/test/test_platform.rb +149 -0
  151. data/test/test_ra_backend.rb +313 -0
  152. data/test/test_ra_backend_unlock_gate.rb +56 -0
  153. data/test/test_recorder.rb +0 -3
  154. data/test/test_replay_player.rb +316 -0
  155. data/test/test_rom_info.rb +149 -0
  156. data/test/test_rom_overrides.rb +86 -0
  157. data/test/test_rom_patcher.rb +382 -0
  158. data/test/{test_rom_loader.rb → test_rom_resolver.rb} +25 -26
  159. data/test/test_save_state_manager.rb +2 -4
  160. data/test/test_settings_audio.rb +107 -0
  161. data/test/test_settings_hotkeys.rb +83 -66
  162. data/test/test_settings_recording.rb +49 -0
  163. data/test/test_settings_save_states.rb +97 -0
  164. data/test/test_settings_system.rb +133 -0
  165. data/test/test_settings_video.rb +450 -0
  166. data/test/test_settings_window.rb +76 -507
  167. data/test/test_tip_service.rb +6 -6
  168. data/test/test_toast_overlay.rb +1 -1
  169. data/test/test_virtual_events.rb +156 -0
  170. data/test/test_virtual_keyboard.rb +1 -1
  171. data/vendor/rcheevos/CHANGELOG.md +495 -0
  172. data/vendor/rcheevos/LICENSE +21 -0
  173. data/vendor/rcheevos/Package.swift +33 -0
  174. data/vendor/rcheevos/README.md +67 -0
  175. data/vendor/rcheevos/include/module.modulemap +70 -0
  176. data/vendor/rcheevos/include/rc_api_editor.h +296 -0
  177. data/vendor/rcheevos/include/rc_api_info.h +280 -0
  178. data/vendor/rcheevos/include/rc_api_request.h +77 -0
  179. data/vendor/rcheevos/include/rc_api_runtime.h +417 -0
  180. data/vendor/rcheevos/include/rc_api_user.h +262 -0
  181. data/vendor/rcheevos/include/rc_client.h +877 -0
  182. data/vendor/rcheevos/include/rc_client_raintegration.h +101 -0
  183. data/vendor/rcheevos/include/rc_consoles.h +138 -0
  184. data/vendor/rcheevos/include/rc_error.h +59 -0
  185. data/vendor/rcheevos/include/rc_export.h +100 -0
  186. data/vendor/rcheevos/include/rc_hash.h +200 -0
  187. data/vendor/rcheevos/include/rc_runtime.h +148 -0
  188. data/vendor/rcheevos/include/rc_runtime_types.h +452 -0
  189. data/vendor/rcheevos/include/rc_util.h +51 -0
  190. data/vendor/rcheevos/include/rcheevos.h +8 -0
  191. data/vendor/rcheevos/src/rapi/rc_api_common.c +1379 -0
  192. data/vendor/rcheevos/src/rapi/rc_api_common.h +88 -0
  193. data/vendor/rcheevos/src/rapi/rc_api_editor.c +625 -0
  194. data/vendor/rcheevos/src/rapi/rc_api_info.c +587 -0
  195. data/vendor/rcheevos/src/rapi/rc_api_runtime.c +901 -0
  196. data/vendor/rcheevos/src/rapi/rc_api_user.c +483 -0
  197. data/vendor/rcheevos/src/rc_client.c +6941 -0
  198. data/vendor/rcheevos/src/rc_client_external.c +281 -0
  199. data/vendor/rcheevos/src/rc_client_external.h +177 -0
  200. data/vendor/rcheevos/src/rc_client_external_versions.h +171 -0
  201. data/vendor/rcheevos/src/rc_client_internal.h +409 -0
  202. data/vendor/rcheevos/src/rc_client_raintegration.c +566 -0
  203. data/vendor/rcheevos/src/rc_client_raintegration_internal.h +61 -0
  204. data/vendor/rcheevos/src/rc_client_types.natvis +396 -0
  205. data/vendor/rcheevos/src/rc_compat.c +251 -0
  206. data/vendor/rcheevos/src/rc_compat.h +121 -0
  207. data/vendor/rcheevos/src/rc_libretro.c +915 -0
  208. data/vendor/rcheevos/src/rc_libretro.h +98 -0
  209. data/vendor/rcheevos/src/rc_util.c +199 -0
  210. data/vendor/rcheevos/src/rc_version.c +11 -0
  211. data/vendor/rcheevos/src/rc_version.h +32 -0
  212. data/vendor/rcheevos/src/rcheevos/alloc.c +312 -0
  213. data/vendor/rcheevos/src/rcheevos/condition.c +754 -0
  214. data/vendor/rcheevos/src/rcheevos/condset.c +777 -0
  215. data/vendor/rcheevos/src/rcheevos/consoleinfo.c +1215 -0
  216. data/vendor/rcheevos/src/rcheevos/format.c +330 -0
  217. data/vendor/rcheevos/src/rcheevos/lboard.c +287 -0
  218. data/vendor/rcheevos/src/rcheevos/memref.c +805 -0
  219. data/vendor/rcheevos/src/rcheevos/operand.c +607 -0
  220. data/vendor/rcheevos/src/rcheevos/rc_internal.h +390 -0
  221. data/vendor/rcheevos/src/rcheevos/rc_runtime_types.natvis +541 -0
  222. data/vendor/rcheevos/src/rcheevos/rc_validate.c +1406 -0
  223. data/vendor/rcheevos/src/rcheevos/rc_validate.h +18 -0
  224. data/vendor/rcheevos/src/rcheevos/richpresence.c +922 -0
  225. data/vendor/rcheevos/src/rcheevos/runtime.c +852 -0
  226. data/vendor/rcheevos/src/rcheevos/runtime_progress.c +1073 -0
  227. data/vendor/rcheevos/src/rcheevos/trigger.c +344 -0
  228. data/vendor/rcheevos/src/rcheevos/value.c +935 -0
  229. data/vendor/rcheevos/src/rhash/aes.c +480 -0
  230. data/vendor/rcheevos/src/rhash/aes.h +49 -0
  231. data/vendor/rcheevos/src/rhash/cdreader.c +838 -0
  232. data/vendor/rcheevos/src/rhash/hash.c +1402 -0
  233. data/vendor/rcheevos/src/rhash/hash_disc.c +1340 -0
  234. data/vendor/rcheevos/src/rhash/hash_encrypted.c +566 -0
  235. data/vendor/rcheevos/src/rhash/hash_rom.c +426 -0
  236. data/vendor/rcheevos/src/rhash/hash_zip.c +460 -0
  237. data/vendor/rcheevos/src/rhash/md5.c +382 -0
  238. data/vendor/rcheevos/src/rhash/md5.h +91 -0
  239. data/vendor/rcheevos/src/rhash/rc_hash_internal.h +116 -0
  240. data/vendor/rcheevos/test/libretro.h +205 -0
  241. data/vendor/rcheevos/test/rapi/test_rc_api_common.c +941 -0
  242. data/vendor/rcheevos/test/rapi/test_rc_api_editor.c +931 -0
  243. data/vendor/rcheevos/test/rapi/test_rc_api_info.c +545 -0
  244. data/vendor/rcheevos/test/rapi/test_rc_api_runtime.c +2213 -0
  245. data/vendor/rcheevos/test/rapi/test_rc_api_user.c +998 -0
  246. data/vendor/rcheevos/test/rcheevos/mock_memory.h +32 -0
  247. data/vendor/rcheevos/test/rcheevos/test_condition.c +570 -0
  248. data/vendor/rcheevos/test/rcheevos/test_condset.c +5170 -0
  249. data/vendor/rcheevos/test/rcheevos/test_consoleinfo.c +203 -0
  250. data/vendor/rcheevos/test/rcheevos/test_format.c +112 -0
  251. data/vendor/rcheevos/test/rcheevos/test_lboard.c +746 -0
  252. data/vendor/rcheevos/test/rcheevos/test_memref.c +520 -0
  253. data/vendor/rcheevos/test/rcheevos/test_operand.c +692 -0
  254. data/vendor/rcheevos/test/rcheevos/test_rc_validate.c +502 -0
  255. data/vendor/rcheevos/test/rcheevos/test_richpresence.c +1564 -0
  256. data/vendor/rcheevos/test/rcheevos/test_runtime.c +1667 -0
  257. data/vendor/rcheevos/test/rcheevos/test_runtime_progress.c +1821 -0
  258. data/vendor/rcheevos/test/rcheevos/test_timing.c +166 -0
  259. data/vendor/rcheevos/test/rcheevos/test_trigger.c +2521 -0
  260. data/vendor/rcheevos/test/rcheevos/test_value.c +870 -0
  261. data/vendor/rcheevos/test/rcheevos-test.sln +46 -0
  262. data/vendor/rcheevos/test/rcheevos-test.vcxproj +239 -0
  263. data/vendor/rcheevos/test/rcheevos-test.vcxproj.filters +335 -0
  264. data/vendor/rcheevos/test/rhash/data.c +657 -0
  265. data/vendor/rcheevos/test/rhash/data.h +32 -0
  266. data/vendor/rcheevos/test/rhash/mock_filereader.c +236 -0
  267. data/vendor/rcheevos/test/rhash/mock_filereader.h +31 -0
  268. data/vendor/rcheevos/test/rhash/test_cdreader.c +920 -0
  269. data/vendor/rcheevos/test/rhash/test_hash.c +310 -0
  270. data/vendor/rcheevos/test/rhash/test_hash_disc.c +1450 -0
  271. data/vendor/rcheevos/test/rhash/test_hash_rom.c +899 -0
  272. data/vendor/rcheevos/test/rhash/test_hash_zip.c +551 -0
  273. data/vendor/rcheevos/test/test.c +113 -0
  274. data/vendor/rcheevos/test/test_framework.h +205 -0
  275. data/vendor/rcheevos/test/test_rc_client.c +10509 -0
  276. data/vendor/rcheevos/test/test_rc_client_external.c +2197 -0
  277. data/vendor/rcheevos/test/test_rc_client_raintegration.c +441 -0
  278. data/vendor/rcheevos/test/test_rc_libretro.c +952 -0
  279. data/vendor/rcheevos/test/test_types.natvis +9 -0
  280. data/vendor/rcheevos/validator/validator.c +658 -0
  281. data/vendor/rcheevos/validator/validator.vcxproj +152 -0
  282. data/vendor/rcheevos/validator/validator.vcxproj.filters +82 -0
  283. metadata +274 -11
  284. data/lib/gemba/input_mappings.rb +0 -214
  285. data/lib/gemba/player.rb +0 -1525
@@ -0,0 +1,46 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio 15
4
+ VisualStudioVersion = 15.0.28010.2036
5
+ MinimumVisualStudioVersion = 10.0.40219.1
6
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rcheevos-test", "rcheevos-test.vcxproj", "{74FBBFC4-5AC5-4A86-B292-B2F535E9912C}"
7
+ EndProject
8
+ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{900F3B07-2B47-4967-8296-CEC29233458F}"
9
+ ProjectSection(SolutionItems) = preProject
10
+ ..\.editorconfig = ..\.editorconfig
11
+ EndProjectSection
12
+ EndProject
13
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "validator", "..\validator\validator.vcxproj", "{16FABFA7-A2EC-4CD0-9E04-50315A2BB613}"
14
+ EndProject
15
+ Global
16
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
17
+ Debug|x64 = Debug|x64
18
+ Debug|x86 = Debug|x86
19
+ Release|x64 = Release|x64
20
+ Release|x86 = Release|x86
21
+ EndGlobalSection
22
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
23
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Debug|x64.ActiveCfg = Debug|x64
24
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Debug|x64.Build.0 = Debug|x64
25
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Debug|x86.ActiveCfg = Debug|Win32
26
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Debug|x86.Build.0 = Debug|Win32
27
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Release|x64.ActiveCfg = Release|x64
28
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Release|x64.Build.0 = Release|x64
29
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Release|x86.ActiveCfg = Release|Win32
30
+ {74FBBFC4-5AC5-4A86-B292-B2F535E9912C}.Release|x86.Build.0 = Release|Win32
31
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Debug|x64.ActiveCfg = Debug|x64
32
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Debug|x64.Build.0 = Debug|x64
33
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Debug|x86.ActiveCfg = Debug|Win32
34
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Debug|x86.Build.0 = Debug|Win32
35
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Release|x64.ActiveCfg = Release|x64
36
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Release|x64.Build.0 = Release|x64
37
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Release|x86.ActiveCfg = Release|Win32
38
+ {16FABFA7-A2EC-4CD0-9E04-50315A2BB613}.Release|x86.Build.0 = Release|Win32
39
+ EndGlobalSection
40
+ GlobalSection(SolutionProperties) = preSolution
41
+ HideSolutionNode = FALSE
42
+ EndGlobalSection
43
+ GlobalSection(ExtensibilityGlobals) = postSolution
44
+ SolutionGuid = {02ADF144-5109-40C0-AA02-5BC5585A9883}
45
+ EndGlobalSection
46
+ EndGlobal
@@ -0,0 +1,239 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|Win32">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>Win32</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Release|Win32">
9
+ <Configuration>Release</Configuration>
10
+ <Platform>Win32</Platform>
11
+ </ProjectConfiguration>
12
+ <ProjectConfiguration Include="Debug|x64">
13
+ <Configuration>Debug</Configuration>
14
+ <Platform>x64</Platform>
15
+ </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release|x64">
17
+ <Configuration>Release</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ </ItemGroup>
21
+ <PropertyGroup Label="Globals">
22
+ <VCProjectVersion>15.0</VCProjectVersion>
23
+ <ProjectGuid>{74FBBFC4-5AC5-4A86-B292-B2F535E9912C}</ProjectGuid>
24
+ <RootNamespace>rcheevostest</RootNamespace>
25
+ <ConfigurationType>Application</ConfigurationType>
26
+ <CharacterSet>MultiByte</CharacterSet>
27
+ <PlatformToolset>v143</PlatformToolset>
28
+ </PropertyGroup>
29
+ <PropertyGroup Condition="'$(VisualStudioVersion)'=='16.0'">
30
+ <PlatformToolset>v142</PlatformToolset>
31
+ </PropertyGroup>
32
+ <PropertyGroup Condition="'$(VisualStudioVersion)'=='15.0'">
33
+ <PlatformToolset>v141</PlatformToolset>
34
+ </PropertyGroup>
35
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
36
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
37
+ <UseDebugLibraries>true</UseDebugLibraries>
38
+ </PropertyGroup>
39
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
40
+ <UseDebugLibraries>false</UseDebugLibraries>
41
+ <WholeProgramOptimization>true</WholeProgramOptimization>
42
+ </PropertyGroup>
43
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
44
+ <UseDebugLibraries>true</UseDebugLibraries>
45
+ </PropertyGroup>
46
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
47
+ <UseDebugLibraries>false</UseDebugLibraries>
48
+ <WholeProgramOptimization>true</WholeProgramOptimization>
49
+ </PropertyGroup>
50
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
51
+ <ImportGroup Label="ExtensionSettings">
52
+ </ImportGroup>
53
+ <ImportGroup Label="Shared">
54
+ </ImportGroup>
55
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
56
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
57
+ </ImportGroup>
58
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
59
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60
+ </ImportGroup>
61
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
62
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63
+ </ImportGroup>
64
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
65
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
66
+ </ImportGroup>
67
+ <PropertyGroup Label="UserMacros" />
68
+ <PropertyGroup />
69
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
70
+ <ClCompile>
71
+ <WarningLevel>Level3</WarningLevel>
72
+ <Optimization>Disabled</Optimization>
73
+ <SDLCheck>true</SDLCheck>
74
+ <ConformanceMode>true</ConformanceMode>
75
+ <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\include;$(ProjectDir)..\src\rcheevos</AdditionalIncludeDirectories>
76
+ <TreatWarningAsError>true</TreatWarningAsError>
77
+ <PreprocessorDefinitions>_MBCS;RC_CLIENT_SUPPORTS_RAINTEGRATION;RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
78
+ </ClCompile>
79
+ <Link>
80
+ <SubSystem>Console</SubSystem>
81
+ </Link>
82
+ </ItemDefinitionGroup>
83
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
84
+ <ClCompile>
85
+ <WarningLevel>Level3</WarningLevel>
86
+ <Optimization>Disabled</Optimization>
87
+ <SDLCheck>true</SDLCheck>
88
+ <ConformanceMode>true</ConformanceMode>
89
+ <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\include;$(ProjectDir)..\src\rcheevos</AdditionalIncludeDirectories>
90
+ <TreatWarningAsError>true</TreatWarningAsError>
91
+ <PreprocessorDefinitions>_MBCS;RC_CLIENT_SUPPORTS_RAINTEGRATION;RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
92
+ </ClCompile>
93
+ <Link>
94
+ <SubSystem>Console</SubSystem>
95
+ </Link>
96
+ </ItemDefinitionGroup>
97
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
98
+ <ClCompile>
99
+ <WarningLevel>Level3</WarningLevel>
100
+ <Optimization>MaxSpeed</Optimization>
101
+ <FunctionLevelLinking>true</FunctionLevelLinking>
102
+ <IntrinsicFunctions>true</IntrinsicFunctions>
103
+ <SDLCheck>true</SDLCheck>
104
+ <ConformanceMode>true</ConformanceMode>
105
+ <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\include;$(ProjectDir)..\src\rcheevos</AdditionalIncludeDirectories>
106
+ <TreatWarningAsError>true</TreatWarningAsError>
107
+ <PreprocessorDefinitions>_MBCS;RC_CLIENT_SUPPORTS_RAINTEGRATION;RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
108
+ </ClCompile>
109
+ <Link>
110
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
111
+ <OptimizeReferences>true</OptimizeReferences>
112
+ <SubSystem>Console</SubSystem>
113
+ </Link>
114
+ </ItemDefinitionGroup>
115
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
116
+ <ClCompile>
117
+ <WarningLevel>Level3</WarningLevel>
118
+ <Optimization>MaxSpeed</Optimization>
119
+ <FunctionLevelLinking>true</FunctionLevelLinking>
120
+ <IntrinsicFunctions>true</IntrinsicFunctions>
121
+ <SDLCheck>true</SDLCheck>
122
+ <ConformanceMode>true</ConformanceMode>
123
+ <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\include;$(ProjectDir)..\src\rcheevos;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
124
+ <TreatWarningAsError>true</TreatWarningAsError>
125
+ <PreprocessorDefinitions>_MBCS;RC_CLIENT_SUPPORTS_RAINTEGRATION;RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
126
+ </ClCompile>
127
+ <Link>
128
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
129
+ <OptimizeReferences>true</OptimizeReferences>
130
+ </Link>
131
+ </ItemDefinitionGroup>
132
+ <ItemGroup>
133
+ <ClCompile Include="..\src\rapi\rc_api_common.c" />
134
+ <ClCompile Include="..\src\rapi\rc_api_editor.c" />
135
+ <ClCompile Include="..\src\rapi\rc_api_info.c" />
136
+ <ClCompile Include="..\src\rapi\rc_api_runtime.c" />
137
+ <ClCompile Include="..\src\rapi\rc_api_user.c" />
138
+ <ClCompile Include="..\src\rcheevos\alloc.c" />
139
+ <ClCompile Include="..\src\rcheevos\condition.c" />
140
+ <ClCompile Include="..\src\rcheevos\condset.c" />
141
+ <ClCompile Include="..\src\rcheevos\consoleinfo.c" />
142
+ <ClCompile Include="..\src\rcheevos\format.c" />
143
+ <ClCompile Include="..\src\rcheevos\lboard.c" />
144
+ <ClCompile Include="..\src\rcheevos\memref.c" />
145
+ <ClCompile Include="..\src\rcheevos\operand.c" />
146
+ <ClCompile Include="..\src\rcheevos\rc_validate.c" />
147
+ <ClCompile Include="..\src\rcheevos\richpresence.c" />
148
+ <ClCompile Include="..\src\rcheevos\runtime.c" />
149
+ <ClCompile Include="..\src\rcheevos\runtime_progress.c" />
150
+ <ClCompile Include="..\src\rcheevos\trigger.c" />
151
+ <ClCompile Include="..\src\rcheevos\value.c" />
152
+ <ClCompile Include="..\src\rc_client.c" />
153
+ <ClCompile Include="..\src\rc_client_external.c" />
154
+ <ClCompile Include="..\src\rc_client_raintegration.c" />
155
+ <ClCompile Include="..\src\rc_compat.c" />
156
+ <ClCompile Include="..\src\rc_libretro.c" />
157
+ <ClCompile Include="..\src\rc_util.c" />
158
+ <ClCompile Include="..\src\rc_version.c" />
159
+ <ClCompile Include="..\src\rhash\aes.c" />
160
+ <ClCompile Include="..\src\rhash\cdreader.c" />
161
+ <ClCompile Include="..\src\rhash\hash.c" />
162
+ <ClCompile Include="..\src\rhash\hash_disc.c" />
163
+ <ClCompile Include="..\src\rhash\hash_encrypted.c" />
164
+ <ClCompile Include="..\src\rhash\hash_rom.c" />
165
+ <ClCompile Include="..\src\rhash\hash_zip.c" />
166
+ <ClCompile Include="..\src\rhash\md5.c" />
167
+ <ClCompile Include="rapi\test_rc_api_common.c" />
168
+ <ClCompile Include="rapi\test_rc_api_editor.c" />
169
+ <ClCompile Include="rapi\test_rc_api_info.c" />
170
+ <ClCompile Include="rapi\test_rc_api_runtime.c" />
171
+ <ClCompile Include="rapi\test_rc_api_user.c" />
172
+ <ClCompile Include="rcheevos\test_condition.c" />
173
+ <ClCompile Include="rcheevos\test_condset.c" />
174
+ <ClCompile Include="rcheevos\test_consoleinfo.c" />
175
+ <ClCompile Include="rcheevos\test_format.c" />
176
+ <ClCompile Include="rcheevos\test_lboard.c" />
177
+ <ClCompile Include="rcheevos\test_memref.c" />
178
+ <ClCompile Include="rcheevos\test_operand.c" />
179
+ <ClCompile Include="rcheevos\test_rc_validate.c" />
180
+ <ClCompile Include="rcheevos\test_richpresence.c" />
181
+ <ClCompile Include="rcheevos\test_runtime.c" />
182
+ <ClCompile Include="rcheevos\test_runtime_progress.c" />
183
+ <ClCompile Include="rcheevos\test_timing.c" />
184
+ <ClCompile Include="rcheevos\test_trigger.c" />
185
+ <ClCompile Include="rcheevos\test_value.c" />
186
+ <ClCompile Include="rhash\data.c" />
187
+ <ClCompile Include="rhash\mock_filereader.c" />
188
+ <ClCompile Include="rhash\test_cdreader.c" />
189
+ <ClCompile Include="rhash\test_hash.c" />
190
+ <ClCompile Include="rhash\test_hash_disc.c" />
191
+ <ClCompile Include="rhash\test_hash_rom.c" />
192
+ <ClCompile Include="rhash\test_hash_zip.c" />
193
+ <ClCompile Include="test.c" />
194
+ <ClCompile Include="test_rc_client.c" />
195
+ <ClCompile Include="test_rc_client_external.c" />
196
+ <ClCompile Include="test_rc_client_raintegration.c" />
197
+ <ClCompile Include="test_rc_libretro.c" />
198
+ <ClInclude Include="..\include\rcheevos.h" />
199
+ <ClInclude Include="..\include\rc_api_editor.h" />
200
+ <ClInclude Include="..\include\rc_api_info.h" />
201
+ <ClInclude Include="..\include\rc_api_request.h" />
202
+ <ClInclude Include="..\include\rc_api_runtime.h" />
203
+ <ClInclude Include="..\include\rc_api_user.h" />
204
+ <ClInclude Include="..\include\rc_client_raintegration.h" />
205
+ <ClInclude Include="..\include\rc_consoles.h" />
206
+ <ClInclude Include="..\include\rc_export.h" />
207
+ <ClInclude Include="..\include\rc_hash.h" />
208
+ <ClInclude Include="..\include\rc_runtime.h" />
209
+ <ClInclude Include="..\include\rc_client.h" />
210
+ <ClInclude Include="..\include\rc_runtime_types.h" />
211
+ <ClInclude Include="..\include\rc_util.h" />
212
+ <ClInclude Include="..\src\rcheevos\rc_internal.h" />
213
+ <ClInclude Include="..\include\rc_error.h" />
214
+ <ClInclude Include="..\src\rapi\rc_api_common.h" />
215
+ <ClInclude Include="..\src\rcheevos\rc_validate.h" />
216
+ <ClInclude Include="..\src\rc_client_external.h" />
217
+ <ClInclude Include="..\src\rc_client_external_versions.h" />
218
+ <ClInclude Include="..\src\rc_client_internal.h" />
219
+ <ClInclude Include="..\src\rc_compat.h" />
220
+ <ClInclude Include="..\src\rc_libretro.h" />
221
+ <ClInclude Include="..\src\rc_version.h" />
222
+ <ClInclude Include="..\src\rhash\aes.h" />
223
+ <ClInclude Include="..\src\rhash\md5.h" />
224
+ <ClInclude Include="..\src\rhash\rc_hash_internal.h" />
225
+ <ClInclude Include="libretro.h" />
226
+ <ClInclude Include="rcheevos\mock_memory.h" />
227
+ <ClInclude Include="rhash\data.h" />
228
+ <ClInclude Include="rhash\mock_filereader.h" />
229
+ <ClInclude Include="test_framework.h" />
230
+ </ItemGroup>
231
+ <ItemGroup>
232
+ <Natvis Include="..\src\rcheevos\rc_runtime_types.natvis" />
233
+ <Natvis Include="..\src\rc_client_types.natvis" />
234
+ <Natvis Include="test_types.natvis" />
235
+ </ItemGroup>
236
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
237
+ <ImportGroup Label="ExtensionTargets">
238
+ </ImportGroup>
239
+ </Project>
@@ -0,0 +1,335 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup>
4
+ <Filter Include="src">
5
+ <UniqueIdentifier>{c1b8966b-c711-43ce-ac8a-1dcca6b41ff3}</UniqueIdentifier>
6
+ </Filter>
7
+ <Filter Include="src\rcheevos">
8
+ <UniqueIdentifier>{43b6b53b-c37e-453e-97bf-df56c515f1a7}</UniqueIdentifier>
9
+ </Filter>
10
+ <Filter Include="src\rhash">
11
+ <UniqueIdentifier>{9060be9f-a1f8-4940-a6e6-8ada5c89ae94}</UniqueIdentifier>
12
+ </Filter>
13
+ <Filter Include="tests">
14
+ <UniqueIdentifier>{faf643ae-e095-4db5-a701-3ea9ed343cc0}</UniqueIdentifier>
15
+ </Filter>
16
+ <Filter Include="tests\rcheevos">
17
+ <UniqueIdentifier>{f890b4f1-8de5-4730-b612-3a7dbf65ca74}</UniqueIdentifier>
18
+ </Filter>
19
+ <Filter Include="tests\rhash">
20
+ <UniqueIdentifier>{21341552-6b14-4f5b-a26c-d9393ffbdbcc}</UniqueIdentifier>
21
+ </Filter>
22
+ <Filter Include="src\rapi">
23
+ <UniqueIdentifier>{d049182b-0721-46b5-b93e-6f8f7f572b45}</UniqueIdentifier>
24
+ </Filter>
25
+ <Filter Include="tests\rapi">
26
+ <UniqueIdentifier>{0b946a47-0089-4118-a5b2-cd57245dc58b}</UniqueIdentifier>
27
+ </Filter>
28
+ </ItemGroup>
29
+ <ItemGroup>
30
+ <ClCompile Include="..\src\rcheevos\format.c">
31
+ <Filter>src\rcheevos</Filter>
32
+ </ClCompile>
33
+ <ClCompile Include="..\src\rcheevos\lboard.c">
34
+ <Filter>src\rcheevos</Filter>
35
+ </ClCompile>
36
+ <ClCompile Include="..\src\rcheevos\operand.c">
37
+ <Filter>src\rcheevos</Filter>
38
+ </ClCompile>
39
+ <ClCompile Include="..\src\rcheevos\trigger.c">
40
+ <Filter>src\rcheevos</Filter>
41
+ </ClCompile>
42
+ <ClCompile Include="..\src\rcheevos\value.c">
43
+ <Filter>src\rcheevos</Filter>
44
+ </ClCompile>
45
+ <ClCompile Include="..\src\rcheevos\alloc.c">
46
+ <Filter>src\rcheevos</Filter>
47
+ </ClCompile>
48
+ <ClCompile Include="..\src\rcheevos\condition.c">
49
+ <Filter>src\rcheevos</Filter>
50
+ </ClCompile>
51
+ <ClCompile Include="..\src\rcheevos\condset.c">
52
+ <Filter>src\rcheevos</Filter>
53
+ </ClCompile>
54
+ <ClCompile Include="..\src\rcheevos\richpresence.c">
55
+ <Filter>src\rcheevos</Filter>
56
+ </ClCompile>
57
+ <ClCompile Include="..\src\rcheevos\memref.c">
58
+ <Filter>src\rcheevos</Filter>
59
+ </ClCompile>
60
+ <ClCompile Include="..\src\rcheevos\runtime.c">
61
+ <Filter>src\rcheevos</Filter>
62
+ </ClCompile>
63
+ <ClCompile Include="..\src\rhash\md5.c">
64
+ <Filter>src\rhash</Filter>
65
+ </ClCompile>
66
+ <ClCompile Include="rcheevos\test_operand.c">
67
+ <Filter>tests\rcheevos</Filter>
68
+ </ClCompile>
69
+ <ClCompile Include="test.c">
70
+ <Filter>tests</Filter>
71
+ </ClCompile>
72
+ <ClCompile Include="rcheevos\test_memref.c">
73
+ <Filter>tests\rcheevos</Filter>
74
+ </ClCompile>
75
+ <ClCompile Include="rcheevos\test_condition.c">
76
+ <Filter>tests\rcheevos</Filter>
77
+ </ClCompile>
78
+ <ClCompile Include="rcheevos\test_condset.c">
79
+ <Filter>tests\rcheevos</Filter>
80
+ </ClCompile>
81
+ <ClCompile Include="rcheevos\test_value.c">
82
+ <Filter>tests\rcheevos</Filter>
83
+ </ClCompile>
84
+ <ClCompile Include="rcheevos\test_format.c">
85
+ <Filter>tests\rcheevos</Filter>
86
+ </ClCompile>
87
+ <ClCompile Include="rcheevos\test_trigger.c">
88
+ <Filter>tests\rcheevos</Filter>
89
+ </ClCompile>
90
+ <ClCompile Include="rcheevos\test_lboard.c">
91
+ <Filter>tests\rcheevos</Filter>
92
+ </ClCompile>
93
+ <ClCompile Include="..\src\rhash\hash.c">
94
+ <Filter>src\rhash</Filter>
95
+ </ClCompile>
96
+ <ClCompile Include="rhash\test_hash.c">
97
+ <Filter>tests\rhash</Filter>
98
+ </ClCompile>
99
+ <ClCompile Include="rhash\data.c">
100
+ <Filter>tests\rhash</Filter>
101
+ </ClCompile>
102
+ <ClCompile Include="rcheevos\test_richpresence.c">
103
+ <Filter>tests\rcheevos</Filter>
104
+ </ClCompile>
105
+ <ClCompile Include="rcheevos\test_runtime.c">
106
+ <Filter>tests\rcheevos</Filter>
107
+ </ClCompile>
108
+ <ClCompile Include="..\src\rcheevos\consoleinfo.c">
109
+ <Filter>src\rcheevos</Filter>
110
+ </ClCompile>
111
+ <ClCompile Include="rcheevos\test_consoleinfo.c">
112
+ <Filter>tests\rcheevos</Filter>
113
+ </ClCompile>
114
+ <ClCompile Include="..\src\rcheevos\runtime_progress.c">
115
+ <Filter>src\rcheevos</Filter>
116
+ </ClCompile>
117
+ <ClCompile Include="rcheevos\test_runtime_progress.c">
118
+ <Filter>tests\rcheevos</Filter>
119
+ </ClCompile>
120
+ <ClCompile Include="..\src\rhash\cdreader.c">
121
+ <Filter>src\rhash</Filter>
122
+ </ClCompile>
123
+ <ClCompile Include="rhash\test_cdreader.c">
124
+ <Filter>tests\rhash</Filter>
125
+ </ClCompile>
126
+ <ClCompile Include="rhash\mock_filereader.c">
127
+ <Filter>tests\rhash</Filter>
128
+ </ClCompile>
129
+ <ClCompile Include="..\src\rapi\rc_api_common.c">
130
+ <Filter>src\rapi</Filter>
131
+ </ClCompile>
132
+ <ClCompile Include="..\src\rapi\rc_api_runtime.c">
133
+ <Filter>src\rapi</Filter>
134
+ </ClCompile>
135
+ <ClCompile Include="..\src\rapi\rc_api_user.c">
136
+ <Filter>src\rapi</Filter>
137
+ </ClCompile>
138
+ <ClCompile Include="rapi\test_rc_api_runtime.c">
139
+ <Filter>tests\rapi</Filter>
140
+ </ClCompile>
141
+ <ClCompile Include="rapi\test_rc_api_user.c">
142
+ <Filter>tests\rapi</Filter>
143
+ </ClCompile>
144
+ <ClCompile Include="rapi\test_rc_api_common.c">
145
+ <Filter>tests\rapi</Filter>
146
+ </ClCompile>
147
+ <ClCompile Include="..\src\rapi\rc_api_info.c">
148
+ <Filter>src\rapi</Filter>
149
+ </ClCompile>
150
+ <ClCompile Include="rapi\test_rc_api_info.c">
151
+ <Filter>tests\rapi</Filter>
152
+ </ClCompile>
153
+ <ClCompile Include="..\src\rapi\rc_api_editor.c">
154
+ <Filter>src\rapi</Filter>
155
+ </ClCompile>
156
+ <ClCompile Include="rapi\test_rc_api_editor.c">
157
+ <Filter>tests\rapi</Filter>
158
+ </ClCompile>
159
+ <ClCompile Include="..\src\rcheevos\rc_validate.c">
160
+ <Filter>src\rcheevos</Filter>
161
+ </ClCompile>
162
+ <ClCompile Include="rcheevos\test_rc_validate.c">
163
+ <Filter>tests\rcheevos</Filter>
164
+ </ClCompile>
165
+ <ClCompile Include="rcheevos\test_timing.c">
166
+ <Filter>tests\rcheevos</Filter>
167
+ </ClCompile>
168
+ <ClCompile Include="..\src\rc_client.c">
169
+ <Filter>src</Filter>
170
+ </ClCompile>
171
+ <ClCompile Include="..\src\rc_compat.c">
172
+ <Filter>src</Filter>
173
+ </ClCompile>
174
+ <ClCompile Include="..\src\rc_libretro.c">
175
+ <Filter>src</Filter>
176
+ </ClCompile>
177
+ <ClCompile Include="test_rc_client.c">
178
+ <Filter>tests</Filter>
179
+ </ClCompile>
180
+ <ClCompile Include="test_rc_libretro.c">
181
+ <Filter>tests</Filter>
182
+ </ClCompile>
183
+ <ClCompile Include="..\src\rc_util.c">
184
+ <Filter>src</Filter>
185
+ </ClCompile>
186
+ <ClCompile Include="..\src\rc_client_raintegration.c">
187
+ <Filter>src</Filter>
188
+ </ClCompile>
189
+ <ClCompile Include="test_rc_client_external.c">
190
+ <Filter>tests</Filter>
191
+ </ClCompile>
192
+ <ClCompile Include="test_rc_client_raintegration.c">
193
+ <Filter>tests</Filter>
194
+ </ClCompile>
195
+ <ClCompile Include="..\src\rc_client_external.c">
196
+ <Filter>src</Filter>
197
+ </ClCompile>
198
+ <ClCompile Include="..\src\rhash\hash_zip.c">
199
+ <Filter>src\rhash</Filter>
200
+ </ClCompile>
201
+ <ClCompile Include="rhash\test_hash_zip.c">
202
+ <Filter>tests\rhash</Filter>
203
+ </ClCompile>
204
+ <ClCompile Include="..\src\rhash\hash_encrypted.c">
205
+ <Filter>src\rhash</Filter>
206
+ </ClCompile>
207
+ <ClCompile Include="..\src\rhash\hash_rom.c">
208
+ <Filter>src\rhash</Filter>
209
+ </ClCompile>
210
+ <ClCompile Include="rhash\test_hash_rom.c">
211
+ <Filter>tests\rhash</Filter>
212
+ </ClCompile>
213
+ <ClCompile Include="..\src\rhash\hash_disc.c">
214
+ <Filter>src\rhash</Filter>
215
+ </ClCompile>
216
+ <ClCompile Include="rhash\test_hash_disc.c">
217
+ <Filter>tests\rhash</Filter>
218
+ </ClCompile>
219
+ <ClCompile Include="..\src\rhash\aes.c">
220
+ <Filter>src\rhash</Filter>
221
+ </ClCompile>
222
+ <ClCompile Include="..\src\rc_version.c">
223
+ <Filter>src\rcheevos</Filter>
224
+ </ClCompile>
225
+ </ItemGroup>
226
+ <ItemGroup>
227
+ <ClInclude Include="..\include\rcheevos.h">
228
+ <Filter>src\rcheevos</Filter>
229
+ </ClInclude>
230
+ <ClInclude Include="rcheevos\mock_memory.h">
231
+ <Filter>tests\rcheevos</Filter>
232
+ </ClInclude>
233
+ <ClInclude Include="test_framework.h">
234
+ <Filter>tests</Filter>
235
+ </ClInclude>
236
+ <ClInclude Include="rhash\data.h">
237
+ <Filter>tests\rhash</Filter>
238
+ </ClInclude>
239
+ <ClInclude Include="..\src\rhash\md5.h">
240
+ <Filter>src\rhash</Filter>
241
+ </ClInclude>
242
+ <ClInclude Include="rhash\mock_filereader.h">
243
+ <Filter>tests\rhash</Filter>
244
+ </ClInclude>
245
+ <ClInclude Include="..\include\rc_hash.h">
246
+ <Filter>src\rhash</Filter>
247
+ </ClInclude>
248
+ <ClInclude Include="..\src\rcheevos\rc_internal.h">
249
+ <Filter>src\rcheevos</Filter>
250
+ </ClInclude>
251
+ <ClInclude Include="..\src\rapi\rc_api_common.h">
252
+ <Filter>src\rapi</Filter>
253
+ </ClInclude>
254
+ <ClInclude Include="..\include\rc_api_user.h">
255
+ <Filter>src\rapi</Filter>
256
+ </ClInclude>
257
+ <ClInclude Include="..\include\rc_api_request.h">
258
+ <Filter>src\rapi</Filter>
259
+ </ClInclude>
260
+ <ClInclude Include="..\include\rc_api_runtime.h">
261
+ <Filter>src\rapi</Filter>
262
+ </ClInclude>
263
+ <ClInclude Include="libretro.h">
264
+ <Filter>tests\rcheevos</Filter>
265
+ </ClInclude>
266
+ <ClInclude Include="..\include\rc_runtime.h">
267
+ <Filter>src\rcheevos</Filter>
268
+ </ClInclude>
269
+ <ClInclude Include="..\include\rc_runtime_types.h">
270
+ <Filter>src\rcheevos</Filter>
271
+ </ClInclude>
272
+ <ClInclude Include="..\include\rc_api_info.h">
273
+ <Filter>src\rapi</Filter>
274
+ </ClInclude>
275
+ <ClInclude Include="..\include\rc_api_editor.h">
276
+ <Filter>src\rapi</Filter>
277
+ </ClInclude>
278
+ <ClInclude Include="..\src\rcheevos\rc_validate.h">
279
+ <Filter>src\rcheevos</Filter>
280
+ </ClInclude>
281
+ <ClInclude Include="..\src\rc_version.h">
282
+ <Filter>src</Filter>
283
+ </ClInclude>
284
+ <ClInclude Include="..\src\rc_client_internal.h">
285
+ <Filter>src</Filter>
286
+ </ClInclude>
287
+ <ClInclude Include="..\src\rc_compat.h">
288
+ <Filter>src</Filter>
289
+ </ClInclude>
290
+ <ClInclude Include="..\src\rc_libretro.h">
291
+ <Filter>src</Filter>
292
+ </ClInclude>
293
+ <ClInclude Include="..\include\rc_util.h">
294
+ <Filter>src</Filter>
295
+ </ClInclude>
296
+ <ClInclude Include="..\include\rc_client.h">
297
+ <Filter>src</Filter>
298
+ </ClInclude>
299
+ <ClInclude Include="..\include\rc_error.h">
300
+ <Filter>src</Filter>
301
+ </ClInclude>
302
+ <ClInclude Include="..\include\rc_consoles.h">
303
+ <Filter>src</Filter>
304
+ </ClInclude>
305
+ <ClInclude Include="..\include\rc_client_raintegration.h">
306
+ <Filter>src</Filter>
307
+ </ClInclude>
308
+ <ClInclude Include="..\src\rc_client_external.h">
309
+ <Filter>src</Filter>
310
+ </ClInclude>
311
+ <ClInclude Include="..\src\rc_client_external_versions.h">
312
+ <Filter>src</Filter>
313
+ </ClInclude>
314
+ <ClInclude Include="..\src\rhash\aes.h">
315
+ <Filter>src\rhash</Filter>
316
+ </ClInclude>
317
+ <ClInclude Include="..\src\rhash\rc_hash_internal.h">
318
+ <Filter>src\rhash</Filter>
319
+ </ClInclude>
320
+ <ClInclude Include="..\include\rc_export.h">
321
+ <Filter>src</Filter>
322
+ </ClInclude>
323
+ </ItemGroup>
324
+ <ItemGroup>
325
+ <Natvis Include="..\src\rcheevos\rc_runtime_types.natvis">
326
+ <Filter>src\rcheevos</Filter>
327
+ </Natvis>
328
+ <Natvis Include="test_types.natvis">
329
+ <Filter>tests\rcheevos</Filter>
330
+ </Natvis>
331
+ <Natvis Include="..\src\rc_client_types.natvis">
332
+ <Filter>src</Filter>
333
+ </Natvis>
334
+ </ItemGroup>
335
+ </Project>