Advertisement
Guest User

Untitled

a guest
Oct 5th, 2022
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.75 KB | None | 0 0
  1. This is a trace of all of the calls that happen when a user makes a save state in Dolphin V. 5.0-17269
  2. Trace written by Lobsterzelda
  3.  
  4. START:
  5.  
  6. CompressAndDumpState():
  7. HEADER (6 char[] Game ID, reserved1 (u16), size of state (or 0 if state is uncompressed - u32), reserved2 (u32) and time savestate was made (double))
  8.  
  9. State::DoState():
  10. 1. cookie (version (148) + COOKIE_BASE) (u32)
  11. 2. version_created_by ("Dolphin 5.XXX...") (string)
  12. 3. MARKER - "Version"
  13. 4. is_wii (bool, false for GameCube games)
  14. 5. Memory::GetRamSizeReal() (u32)
  15. 6. Memory::GetExRamSizeReal() (u32)
  16.  
  17. Movie::DoState():
  18. 7. s_currentFrame (u64)
  19. 8. s_currentByte (u64)
  20. 9. s_currentLagCount (u64)
  21. 10. s_currentInputCount (u64)
  22. 11. s_bPolled (bool)
  23. 12. s_tickCountAtLastInput (u64)
  24. 13. MARKER - "Movie"
  25.  
  26. VideoBackendBase::DoState():
  27. VideoCommon_DoState():
  28. 14. software (bool, always false)
  29. 15. bpmem (BPMemory Struct)
  30. 16. MARKER - "BP Memory"
  31.  
  32. DoCPState():
  33. 17. g_main_cp_state.array_bases (EnumMap<u32, CPArray::XF_D>)
  34. 18. g_main_cp_state.array_strides (EnumMap<u32, CPArray::XF_D>)
  35. 19. g_main_cp_state.matric_index_a (TMatrixIndexA Union)
  36. 20. g_main_cp_state.matric_index_b (TMatrixIndexB Union)
  37. 21. g_main_cp_state.vtx_desc (TVtxDesc Struct)
  38. 22. g_main_cp_state.vtx_attr (array<VAT, CP_NUM_VAT_REG>)
  39. 23. MARKER - "CP Memory"
  40. 24. xfmem (XFMemory Struct)
  41. 25. MARKER - "XF Memory"
  42. 26. texMem (u8 texMem[1048576])
  43. 27. MARKER - "texMem"
  44.  
  45. TMEM::DoState():
  46. 28. s_unit (array<TextureUnitState, 8>)
  47. 29. MARKER - "TMEM"
  48.  
  49. Fifo::DoState():
  50. 30. s_video_buffer (~2,000,000 bytes array of u8)
  51. 31. s_video_buffer_write_ptr (u8*)
  52. 32. s_video_buffer_read_ptr (u8*)
  53. 33. s_sync_ticks (atomic_int)
  54. 34. s_syncing_suspended (bool)
  55. 35. MARKER - "Fifo"
  56.  
  57. CommandProcessor::DoState():
  58. 36. m_CPStatusReg (UCPStatusReg Union)
  59. 37. m_CPCtrlReg (UCPCtrlReg Union)
  60. 38. m_CPClearReg (UCPClearReg Union)
  61. 39. m_bboxleft (u16)
  62. 40. m_bboxtop (u16)
  63. 41. m_bboxright (u16)
  64. 42. m_bboxbottom (u16)
  65. 43. m_tokenReg (u16)
  66.  
  67. SCPFifoStruct::DoState():
  68. 44. CPBase (atomic_uint)
  69. 45. CPEnd (atomic_uint)
  70. 46. CPHiWatermark (u32)
  71. 47. CPLoWatermark (u32)
  72. 48. CPReadWriteDistance (atomic_uint)
  73. 49. CPWritePointer (atomic_uint)
  74. 50. CPReadPointer (atomic_uint)
  75. 51. CPBreakpoint (atomic_uint)
  76. 52. SafeCPReadPointer (atomic_uint)
  77. 53. bFF_GPLinkEnable (atomic_uint)
  78. 54. bFF_GPReadEnable (atomic_uint)
  79. 55. bFF_BPEnable (atomic_uint)
  80. 56. bFF_BPInt (atomic_uint)
  81. 57. bFF_Breakpoint (atomic_uint)
  82. 58. bFF_LoWatermarkInt (atomic_uint)
  83. 59. bFF_HiWatermarkInt (atomic_uint)
  84. 60. bFF_LoWatermark (atomic_uint)
  85. 61. bFF_HiWatermark (atomic_uint)
  86. 62. s_interrupt_set (Common::Flag)
  87. 63. s_interrupt_waiting (Common::Flag)
  88. 64. MARKER - "CommandProcessor"
  89.  
  90. PixelEngine::DoState():
  91. 65. m_ZConf (UPEZConfReg Union)
  92. 66. m_AlphaConf (UPEAlphaConfReg Union)
  93. 67. m_DstAlphaConf (UPEDstAlphaConfReg Union)
  94. 68. m_AlphaModeConf (UPEAlphaModeConfReg Union)
  95. 69. m_AlphaRead (UPEAlphaReadReg Union)
  96. 70. m_Control (UPECtrlReg Union)
  97. 71. s_token (u16)
  98. 72. s_token_pending (u16)
  99. 73. s_token_interrupt_pending (bool)
  100. 74. s_finish_interrupt_pending (bool)
  101. 75. s_event_raised (bool)
  102. 76. s_signal_token_interrupt (bool)
  103. 77. s_signal_finish_interrupt (bool)
  104. 78. MARKER - "PixelEngine"
  105.  
  106. PixelShaderManager::DoState():
  107. 79. s_bFogRangeAdjustChanged (bool)
  108. 80. s_bViewPortChanged (bool)
  109. 81. s_bIndirectDirty (bool)
  110. 82. s_bDestAlphaDirty (bool)
  111. 83. constants (PixelShaderConstants Struct)
  112. 84. MARKER - "PixelShaderManager"
  113.  
  114. VertexShaderManager::DoState():
  115. 85. g_fProjectionMatrix (array<float, 16>)
  116. 86. s_viewportCorrection (Common::Matrix44)
  117.  
  118. FreeLookCamera::DoState():
  119. 87. m_currentType (FreeLook::ControlType enum)
  120.  
  121. SixAxis::DoState():
  122.  
  123. CameraControllerInput::DoState():
  124. 88. m_speed (float)
  125. 89. m_fov_x_multiplier (float)
  126. 90. m_fov_y_multiplier (float)
  127. 91. m_mat (Common::Matrix44)
  128. 92. nTransformationMatricesChanged (array<int, 2>)
  129. 93. nNormalMatricesChanged (array<int, 2>)
  130. 94. nPostTransformMatricesChanged (array<int, 2>)
  131. 95. nLightsChanged (array<int, 2>)
  132. 96. nMaterialsChanged (BitSet32)
  133. 97. bTexMatricesChanged (array<bool, 2>)
  134. 98. b_posNormalMatrixChanged (bool)
  135. 99. bProjectionChanged (bool)
  136. 100. bViewportChanged (bool)
  137. 101. bTexMtxInfoChanged (bool)
  138. 102. bLightingConfigChanged (bool)
  139. 103. constants (VertexShaderConstants)
  140. 104. MARKER - "VertexShaderManager"
  141.  
  142. GeometryShaderManager::DoState():
  143. 105. s_projection_changed (bool)
  144. 106. s_viewport_changed (bool)
  145. 107. constants (GeometryShaderConstants)
  146. 108. MARKER - "GeometryShaderManager"
  147.  
  148. VertexManagerBase::DoState():
  149. 109. m_zslope (Slope Struct)
  150. 110. MARKER - "VertexManager"
  151.  
  152. FramebufferManager::DoState():
  153. 111. save_efb_state (bool)
  154. 112. complicated series of calls that save all the relevant textures to the savestate)
  155. 113. MARKER - "FramebufferManager"
  156.  
  157. TextureCacheBase::DoState():
  158. 114. last_entry_id (u64)
  159. 115. complicated series of calls that save all the relevant textures to the savestate.
  160. 116. MARKER - "TextureCache"
  161.  
  162. Renderer::DoState():
  163. 117. m_is_game_widescreen (bool)
  164. 118. m_frame_count (int)
  165. 119. m_prev_efb_format (PixelFormat class)
  166. 120. m_last_xfb_ticks (u64)
  167. 121. m_last_xfb_addr (u32)
  168. 122. m_last_xfb_width (u32)
  169. 123. m_last_xfb_stride (u32)
  170. 124. m_last_xfb_height (u32)
  171. 125. m_bounding_box_fallback (Array<u16>)
  172.  
  173. BoundingBox::DoState(): (might cause desyncs)
  174. 126. m_is_active (bool)
  175. 127. m_values (int4)
  176. 128. m_dirty (Array<bool>)
  177. 129. m_is_valid (bool)
  178. 130. backend_values (vector<int>(4))
  179. 131. MARKER - "Renderer"
  180. 132. MARKER - "video_backend"
  181.  
  182. PowerPC::DoState():
  183. 133. ppcState.gpr (u32[32])
  184. 134. ppcState.pc (u32)
  185. 135. ppcState.npc (u32)
  186. 136. ppcState.cr.fields (u64[8])
  187. 137. ppcState.msr (UReg_MSR Union)
  188. 138. ppcState.fpscr (UReg_FPSCR Union)
  189. 139. ppcState.Exceptions (u32)
  190. 140. ppcState.downcount (int)
  191. 141. ppcState.xer_ca (u8)
  192. 142. ppcState.xer_so_ov (u8)
  193. 143. ppcState.xer_stringctrl (u16)
  194. 144. ppcState.ps (PairedSingle[32] (struct))
  195. 145. ppcState.sr (u32[16])
  196. 146. ppcState.spr (u32[1024])
  197. 147. ppcState.tlb (Array<Array<TLBEntry>> (struct))
  198. 148. ppcState.pagetable_base (u32)
  199. 149. ppcState.pagetable_hashmask (u32)
  200. 150. ppcState.reserve (bool)
  201. 151. ppcState.reserve_address (u32)
  202.  
  203. PowerPC::InstructionCache::DoState():
  204. 152. data (Array<Array<Array<u32>>>)
  205. 153. tags (Array<Array<u32>>)
  206. 154. plru (Array<u32>)
  207. 155. valid (Array<u32>)
  208. JitInterface::DoState(): (doesn't save anything, just clears caches)
  209. 156. MARKER - "PowerPC"
  210.  
  211. CoreTiming::DoState():
  212. 157. g.slice_length (int)
  213. 158. g.global_timer (int_64t)
  214. 159. s_idled_cycles (int_64t)
  215. 160. s_fake_dec_start_value (u32)
  216. 161. s_fake_dec_start_ticks (u64)
  217. 162. g.fake_TB_start_value (u64)
  218. 163. g.fake_TB_start_ticks (u64)
  219. 164. s_last_OC_factor (float)
  220. 165. s_event_fifo_id (u64)
  221. 166. MARKER - "CoreTimingData"
  222. 167. Code to add all events from s_event_queue
  223. 168. MARKER - "CoreTimingEvents"
  224. 169. MARKER - "CoreTiming"
  225.  
  226. HW::DoState():
  227.  
  228. Memory::DoState():
  229. 170. state_ram_size (u32 - actual RAM size)
  230. 171. state_l1_cache_size (u32)
  231. 172. state_have_fake_vmem (bool)
  232. 173. state_fake_vmem_size (u32)
  233. 174. state_have_exram (bool)
  234. 175. state_exram_size (u32)
  235. 176. m_pRAM (u8[])
  236. 177. m_pL1Cache (u8[])
  237. 178. MARKER - "Memory RAM"
  238. 179. m_pFakeVMEM (u8[])
  239. 180. MARKER - "Memory FakeVMEM"
  240. 181. m_pEXRAM (u8[])
  241. 182. MARKER - "Memory EXRAM"
  242. 183. MARKER - "Memory"
  243.  
  244. VideoInterface::DoState():
  245. 184. m_VerticalTimingRegister (UVIVerticalTimingRegister Union)
  246. 185. m_DisplayControlRegister (UVIDisplayControlRegister Union)
  247. 186. m_HTiming0 (UVIHorizontalTiming0 Union)
  248. 187. m_HTiming1 (UVIHorizontalTiming1 Union)
  249. 188. m_VBlankTimingOdd (UVIVBlankTimingRegister Union)
  250. 189. m_VBlankTimingEven (UVIVBlankTimingRegister Union)
  251. 190. m_BurstBlankingOdd (UVIBurstBlankingRegister Union)
  252. 191. m_BurstBlankingEven (UVIBurstBlankingRegister Union)
  253. 192. m_XFBInfoTop (UVIFBInfoRegister Union)
  254. 193. m_XFBInfoBottom (UVIFBInfoRegister Union)
  255. 194. m_3DFBInfoTop (UVIFPInfoRegister Union)
  256. 195. m_3DFBInfoBottom (UVIFBInfoRegister Union)
  257. 196. m_InterruptRegister (Array<UVIInterruptRegister> (Union))
  258. 197. m_LatchRegister (Array<UVILatchRegister> (Union))
  259. 198. m_PictureConfiguration (PictureConfigurationRegister Union)
  260. 199. m_HorizontalScaling (UVIHorizontalScaling Union)
  261. 200. m_FilterCoefTables (SVIFilterCoefTables Struct)
  262. 201. m_UnkAARegister (u32)
  263. 202. m_Clock (u16)
  264. 203. m_DTVStatus (UVIDTVStatus Union)
  265. 204. m_FBWidth (UVIHorizontalStepping Union)
  266. 205. m_BorderHBlank (UVIBorderBlankRegister Union)
  267. 206. s_ticks_last_line_start (u64)
  268. 207. s_half_line_count (u32)
  269. 208. s_half_line_of_next_si_poll (u32)
  270. 209. MARKER - "VideoInterface"
  271.  
  272. SerialInterface::DoState():
  273. 210. Writes out values of 4 device channels (in a for loop with 4 iterations - represents the 4 controller ports)
  274. 211. s_poll (USIPoll Union)
  275. 212. s_com_csr (USIComCSR Union)
  276. 213. s_status_reg (USIStatusReg Union)
  277. 214. s_exi_clock_count (USIEXIClockCount Union)
  278. 215. s_si_buffer (Array<u8>)
  279. 216. MARKER - "SerialInterface"
  280.  
  281. ProcessorInterface::DoState():
  282. 217. m_InterruptMask (u32)
  283. 218. m_InterruptCause (u32)
  284. 219. Fifo_CPUBase (u32)
  285. 220. Fifo_CPUEnd (u32)
  286. 221. Fifo_CPUWritePointer (u32)
  287. 222. m_ResetCode (u32)
  288. 223. MARKER - "ProcessorInterface"
  289.  
  290. DSP::DoState():
  291. 224. s_ARAM.ptr (u8[] (for audio RAM and other stuff))
  292. 225. s_dspState (UDSPControll Union)
  293. 226. s_audioDMA (AudioDMA Struct)
  294. 227. s_arDMA (ARAM_DMA Struct)
  295. 228. s_ARAM_Info (ARAM_Info Struct)
  296. 229. s_AR_MODE (u16)
  297. 230. s_AR_REFRESH (u16)
  298. 231. s_dsp_slice (int)
  299.  
  300. DSPHLE::DoState():
  301. 232. is_hle (bool - is false)
  302. 233. m_dsp_control (UDSPControll Union)
  303. 234. m_control_reg_init_code_clear_time (u64)
  304. 235. m_dsp_state (DSPState Struct)
  305. 236. ucode_crc (int)
  306. 237. last_ucode_crc (int)
  307. 238. UCodeInterface::DoState() is called for ucode and last_ucode (there's like 20 different possible types - idk which one is used).
  308.  
  309. CMailHandler::DoState():
  310. 239. m_pending_mails (deque<pair<int, bool>>)
  311. 240. m_last_mail (u32)
  312. 241. m_halted (bool)
  313. 242. MARKER - "DSP"
  314.  
  315. DVDInterface::DoState():
  316. 243. s_DISR (UDISR Union)
  317. 244. s_DICVR (UDICVR Union)
  318. 245. s_DICMDBUF (u32[3])
  319. 246. s_DIMAR (u32)
  320. 247. s_DILENGTH (u32)
  321. 248. s_DICR (UDICR Union)
  322. 249. s_DIIMMBUF (u32)
  323. 250. s_DICFG (UDICFG Union)
  324. 251. s_stream (bool)
  325. 252. s_stop_at_track_end (bool)
  326. 253. s_audio_position (u64)
  327. 254. s_current_start (u64)
  328. 255. s_current_length (u32)
  329. 256. s_next_start (u64)
  330. 257. s_next_length (u32)
  331. 258. s_pending_samples (u32)
  332. 259. s_enable_dtk (bool)
  333. 260. s_dtk_buffer_length (u8)
  334. 261. s_driver_state (Enum DriveState)
  335. 262. s_error_code (Enum DriveError)
  336. 263. s_read_buffer_start_time (u64)
  337. 264. s_read_buffer_end_time (u64)
  338. 265. s_read_buffer_start_offset (u64)
  339. 266. s_read_buffer_end_offset (u64)
  340. 267. s_disk_path_to_insert (std::string)
  341.  
  342. DVDThread::DoState():
  343. 268. s_result_map (map<u64, ReadResult>)
  344. 269. s_next_id (u64)
  345. 270. had_disc (bool)
  346.  
  347. StreamADPCM::ADPCMDecoder::DoState():
  348. 271. m_histl1 (int_32t)
  349. 272. m_histl2 (int_32t)
  350. 273. m_histr1 (int_32t)
  351. 274. m_histr2 (int_32t)
  352. 275. MARKER - "DVDInterface"
  353.  
  354. GPFifo::DoState():
  355. 276. s_gather_pipe (u8[512])
  356. 277. pipe_count (u32)
  357. 278. MARKER - "GPFifo"
  358.  
  359. ExpansionInterface::DoState():
  360. Iterates over 3 ExpansionInterface::CEXIChannels, and calls CEXIChannel::DoState() on each of them.
  361.  
  362. CEXIChannel::DoState():
  363. 279. m_status (UEXI_STATUS Union)
  364. 280. m_dma_memory_address (u32)
  365. 281. m_dma_length (u32)
  366. 282. m_control UEXI_CONTROL Union)
  367. 283. m_imm_data (u32)
  368. 284. m_memcard_header_data (Memcard::HeaderData Struct)
  369. 285. Iterates over all devices (for memory cards), and calls DoState() on them.
  370. 286. MARKER - "ExpansionInterface"
  371.  
  372. AudioInterface::DoState():
  373. 287. s_control (AICR Union)
  374. 288. s_volume (AIVR Union)
  375. 289. s_sample_counter (u32)
  376. 290. s_interrupt_timing (u32)
  377. 291. s_last_cpu_time (u64)
  378. 292. s_ais_sample_rate_divisor (u32)
  379. 293. s_aid_sample_rate_divisor (u32)
  380. 294. s_cpu_cycles_per_sample (u64)
  381.  
  382. Mixer::DoState():
  383. Saves the following values for the m_dma_mixer, m_streaming_mixer, m_wiimote_speaker_mixer, and the 4 m_gba_mixers
  384. 295. m_input_sample_rate_divisor (unsigned int)
  385. 296. m_LVolume (atomic_int)
  386. 297. m_RVolume (atomic_int)
  387. 298. MARKER - "AudioInterface"
  388.  
  389. HSP::DoState():
  390. 299. type (Enum HSPDeviceType (for ARAM expansion))
  391. Calls s_device->DoState(), but this seems to do nothing.
  392. 300. MARKER - "HSP"
  393. 301. MARKER - "WIIHW"
  394. 302. MARKER - "HW"
  395. 303. MARKER - "Wiimote"
  396.  
  397. Gecko::DoState():
  398. 304. s_code_handler_installed (Enum Gecko::Installation)
  399. 305. MARKER - "Gecko"
  400.  
  401. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement