Commit graph

39 commits

Author SHA1 Message Date
Jean-Philip Desjardins
6ae7e172d6 Use std::move to avoid some copies. 2023-12-07 15:47:43 -05:00
Jean-Philip Desjardins
a70504060c Refactor saved states classes.
Rename StructFile to RegisterState.
Rename StructCollectionStateFile to RegisterStateCollectionFile.
RegisterStateFile now contains a RegisterState.
2023-12-07 15:10:58 -05:00
Jean-Philip Desjardins
8c543186da Apply CZipArchiveWriter refactoring. 2023-07-23 17:22:18 -04:00
Jean-Philip Desjardins
18c5282dcd Make IOP reset handling a bit more robust.
Prevent crashes when games that send unexpected data.
2022-09-13 09:14:24 -04:00
Jean-Philip Desjardins
278ae94c5f Convert to warning. 2022-08-24 10:12:19 -04:00
Jean-Philip Desjardins
c0d48b2c14 Handle packets with interrupt flags in SifSetDma.
Needed by Battle Construction Vehicles.
2022-07-25 11:21:04 -04:00
Jean-Philip Desjardins
6b9cc41800 Restore bind reply saving, with added timeout.
Seems that returning a failure immediately if a RPC server is not found breaks Mushihimesama.
Adding a small delay probably allows it to switch threads and do other things that unblocks this.
2021-11-21 15:22:53 -05:00
Björn Gerdau
b88b836d5b
Handle SIF bind reply for missing module
Various Neversoft games (Gun, Guitar Hero III, Tony Hawk's Underground 2, amongst others) execute a SIF bind to a module RPC server, which is never loaded - thus hanging the game indefinitely.

This PR implements removes the delayed bind replies altogether, and implements a direct "bind failure" response, which is correctly handled by the games mentioned, and lets the load.
2021-06-02 02:11:11 +02:00
Jean-Philip Desjardins
264421df3b Use a different value for serverDataAddr when binding SIF RPC servers.
Games such as RE: Outbreak checks that the address is not zero while having a RPC server ID that is equal to 0.
2021-03-15 18:28:51 -04:00
Jean-Philip Desjardins
5441377d1e Cleanup. 2021-03-15 17:53:04 -04:00
Jean-Philip Desjardins
2076edf3c0 Fix Linux build. 2019-08-17 13:51:31 -04:00
Jean-Philip Desjardins
e5ae547e66 Move saved state helper classes to a subfolder. 2019-02-06 19:04:51 -05:00
Jean-Philip Desjardins
bd07142050 Add some warning messages. 2018-08-03 12:48:40 -04:00
Clang-Format
acf75535ec Clang format 2018-04-30 21:01:23 +01:00
Jean-Philip Desjardins
5d24d8566f Use enum instead of hardcoded value. 2018-04-10 13:02:08 -04:00
Jean-Philip Desjardins
c1c451d7c9 Remove more dead code. 2018-03-20 11:01:32 -04:00
Jean-Philip Desjardins
074e61a146 Remove dead code. 2018-03-20 11:01:32 -04:00
Jean-Philip Desjardins
80188d5f05 Save SIF packet queue state. 2017-09-10 16:59:28 -04:00
Jean-Philip Desjardins
549cd9b1db Clean SIF state saving/loading code. 2017-09-10 16:59:13 -04:00
Jean-Philip Desjardins
40343582c3 Improve SIF state loading and saving code. 2017-09-10 16:59:05 -04:00
Jean-Philip Desjardins
cd40599c53 Add trace. 2017-08-09 23:06:04 -04:00
Mahmood(Thunder07)
97c229ec98 Cleanup
Silence:"warning: '0' flag ignored with precision and ‘%X’ gnu_printf format"
2017-05-29 06:01:32 +01:00
Mahmood(Thunder07)
342fca4aa0 Cleanup/Update for loops 2017-05-08 19:11:51 +01:00
Jean-Philip Desjardins
1dd089a331 Cleanup. 2017-03-26 18:36:18 -04:00
Jean-Philip Desjardins
301c03ed30 Add some checks on SIF transfers to catch potential errors. 2017-01-29 21:13:11 -05:00
Jean-Philip Desjardins
e2653105d3 Make RPC_RECVADDR a multiple of 4. 2017-01-29 21:13:11 -05:00
Jean-Philip Desjardins
c015d5db94 Make sure SIF call reply packet size is a multiple of 4. 2017-01-29 21:13:11 -05:00
Jean-Philip Desjardins
7e7d52bd9c Constified some stuff. 2016-12-20 18:55:15 -05:00
Jean-Philip Desjardins
3bd46252ec Fix SIFCMDHEADER layout. 2016-12-20 18:55:15 -05:00
Jean-Philip Desjardins
a1812a59d8 Cleanup. 2016-12-20 18:55:14 -05:00
Jean-Philip Desjardins
1aa51012d0 Use already existing structure and add some documentation. 2016-11-19 17:27:21 -05:00
Jean-Philip Desjardins
1576fb2f46 Cleanup. 2016-11-11 22:40:22 -05:00
Jean-Philip Desjardins
38e9947bde Removed hacks that were allowing the built-in PadMan to be "overloaded".
Could lead to wierd situations if the "overloaded" module wasn't loaded in a timely fashion.
2016-01-23 22:12:28 -05:00
Jean-Philip Desjardins
704da7e33b Changed condition that allows immediate binding of SIF server.
Some servers have id > than 0x90000000 and clients request to bind
before the server had time to finish its initialization.
2015-11-26 23:22:58 -05:00
Jean-Philip Desjardins
5146c5d011 Merge branch 'master' into build_unix 2015-10-24 22:58:24 -04:00
Jean-Philip Desjardins
adaba0b192 Fixed using NULL as integer errors/warnings. 2015-10-23 23:18:32 -04:00
Jean-Philip Desjardins
6c19b3d9d9 Make sure transfer size is masked for "WriteToIop" command. 2015-09-30 22:16:29 -04:00
Jean-Philip Desjardins
1e9fefd56c Added log for GetOtherData. 2015-08-03 01:44:09 -04:00
Jean-Philip Desjardins
fcf1b11f1b Moved EE and GS specific files in a separate folder. 2015-05-06 00:54:15 -04:00
Renamed from Source/SIF.cpp (Browse further)