Commit graph

487 commits

Author SHA1 Message Date
Marco Satti
2929934847 The read/write from buffer functions were not supposed to interface directly with the memory, rather use the provided read/writeByte, etc. functions. 2017-05-14 10:35:36 +08:00
Marco Satti
9b2f38bc8d Small fix to IOP DMAC mnemonics. 2017-05-13 23:27:35 +08:00
Marco Satti
c776b3b57e Added in lookup failed debug message to ByteMMU_t. 2017-05-13 23:22:54 +08:00
Marco Satti
eca03117e4 Cleanup, make a lot of parameters const. Now prints DMAC interrupt sources. 2017-05-13 22:52:38 +08:00
Marco Satti
f7e6752204 Fixed up all the mistakes... using VS code screws the project files... 2017-05-13 20:41:13 +08:00
Marco Satti
ce23e81643 Forgot to save... 2017-05-13 20:41:05 +08:00
Marco Satti
1d80a73a96 Partial implementation of the SPU2 core IRQ's, general cleanup. There is now only 1 FIFOQueue type, which is byte-based. It's probably a bit slower, but also more correct like in hardware. 2017-05-13 20:40:31 +08:00
Marco Satti
c26c4960ac Partial commit for cleanup, non building. Don't mind my spelling either... 2017-05-13 10:06:06 +08:00
Marco Satti
0e663fd1e3 Keep all files in a separate workspace folder. 2017-05-11 13:06:17 +08:00
Marco Satti
24b85081d8 Got the basics of SPU2 ADMA working (finally...). 2017-05-10 22:28:33 +08:00
Marco Satti
58d6e79fc9 Partial SPU2 commit. 2017-05-10 13:08:24 +08:00
Marco Satti
9599fc3f7c Removed inc/dec function from pair register... It can be done through read/write word easily enough. 2017-05-10 08:06:10 +08:00
Marco Satti
423407a17e Partial commit of SPU2 stuff. 2017-05-09 22:21:08 +08:00
Marco Satti
246463ac4e Sync commit, working on both the CDVD and SPU2, based on what the IOP needs. 2017-04-24 14:53:12 +08:00
Marco Satti
d07507b34e Got the basis of the CDVD NVRAM going - should be easy to implement remaining NVRAM function calls. 2017-04-23 01:18:48 +08:00
Marco Satti
578932d5d1 CDVD WIP. 2017-04-18 16:09:59 +08:00
Marco Satti
db15b04284 Made a script to extract the memory mappings out of Resources_t.cpp 2017-04-12 14:08:42 +08:00
Marco Satti
f70b68d3f2 Moved the CDVD and SPU2 into the root resources, added in more logging options, removed the memory map information next to registers - I will create a script instead to generate the info based off Resources_t.cpp, as its hard to keep changes up to date. 2017-04-11 22:18:06 +08:00
Marco Satti
5a27acf7bc Looking into the SPU2 debug data... All looks ok, data is being sent to the fifo, but logic hasn't been done yet (although it is all 0's... may need a look). IOP INTC mask bits set are now CDROM, DMA and SPU, so looks like I'm done with the IOP for now. 2017-04-10 22:16:13 +08:00
Marco Satti
e8e8a3dd3f Added in other SPU2 registers, including SPDIF. 2017-04-10 19:17:23 +08:00
Marco Satti
30b4279c40 Changed the order of L -> H and H -> L (for SPU2 addressing registers). 2017-04-10 12:29:21 +08:00
Marco Satti
f2d3c4d032 Finish off the SPU2 registers - looks like I got the L(ow) & H(igh) address pair registers the wrong order, so I'll need to fix that. 2017-04-10 00:03:28 +08:00
Marco Satti
02c594112a WIP on implementing SPU2 registers. 2017-04-09 16:57:07 +08:00
Marco Satti
95c2b6b50f Cleanup. 2017-04-08 15:58:45 +08:00
Marco Satti
8024feaff5 Fixed up the register/memory debugging stuff to be more OOP friendly. 2017-04-07 23:38:27 +08:00
Marco Satti
f6c87d54fd Fixed memory issues, had wrong ByteMMU_t parameters. Tried to optimise them further for minimal memory usage. 2017-04-06 23:10:49 +08:00
Marco Satti
3ce2c9e6f3 Updated the ByteMMU code to be more logical... but memory usage has gone up quite a bit, need to figure out why. 2017-04-06 19:00:27 +08:00
Marco Satti
1719db4c9f Cleanup, renamed PhysicalMMU into ByteMMU to better reflect the byte-addressable property. 2017-04-05 23:01:34 +08:00
Marco Satti
75db317d66 Made the read and dump memory functions faster, and they also work directly in the visual studio debugger now. The STL method is for some reason really slow... seems to be caused by using basic_*fstream<u8/16> instead of *fstream specialisations - probably optimises to a direct memcpy in those ones, which is a ton faster. 2017-04-05 13:09:11 +08:00
Marco Satti
72c4a2e1e5 Changed raw arrays (new[]) into vectors - worth the 50mb extra memory usage as it now supports proper copy assignment, leading to easier save state management, and if something crashes I'll probably know why sooner. No real observable performance impact. 2017-04-05 00:48:16 +08:00
Marco Satti
66c2158d4f Minor cleanup. 2017-04-04 21:57:35 +08:00
Marco Satti
1d6672741e Add bitfield register 16. 2017-04-02 19:13:19 +08:00
Marco Satti
c77dfaf33e Remove Context_t and replace using the existing System_t. "RAW" context is not available anymore. 2017-04-02 18:58:23 +08:00
Marco Satti
31a738a0b6 Fixed minor typos. 2017-04-02 14:45:43 +08:00
Marco Satti
6704bca8cc Cleanup, changed u32 refs for counting into straight up ints (more intuitive). 2017-03-31 19:32:14 +08:00
Marco Satti
5fac5bd3b8 Change the IOP dmac to always read a qword from source chain mode - now throws a runtime error when the TTE bit is not set. 2017-03-30 17:49:51 +08:00
Marco Satti
6c66083346 Change EE and IOP tags to be more OOP friendly. 2017-03-30 16:34:05 +08:00
Marco Satti
d2b7bcda36 Renamed "VIF/VU unit" to "VIF/VU core". 2017-03-30 14:49:42 +08:00
Marco Satti
d54843f9f4 More cleanup, refactor'd all of the table <-> class association stuff to be a bit more OOP focused (upon construction of the class, for example an EECoreInstruction_t, it will now perform the table lookup straight away without a separate explicit call). 2017-03-29 22:33:33 +08:00
Marco Satti
94d9d0a3bf Cleanup. 2017-03-26 22:35:48 +08:00
Marco Satti
be5119484b Added in the HwordMemory_t type (for SPU2), renamed the existing Memory_t to ByteMemory_t. Removed the reference qualifier on Context_t parameters. 2017-03-26 17:54:27 +08:00
Marco Satti
2d6f056390 Last of the EE MIPS 3/4 test cases (passes). Still need to do the sony MMI ones but I'll come back to those. Also the tests don't cover every case for the moment, which is important to do. 2017-03-24 18:52:49 +08:00
Marco Satti
9aae6a76cf More EE testing... 2017-03-24 17:36:18 +08:00
Marco Satti
b32db77abe More EE testing and fixes. 2017-03-24 16:09:32 +08:00
Marco Satti
29595b6564 EE core testing - fixed up a few instructions. 2017-03-21 23:12:07 +08:00
Marco Satti
8f193b02cd Start working/reading through SPU2 docs - the IOP stuff said in last commit is false, its because the CDVD hasn't been properly implemented yet. IOP is currently trying to interface with the SPU2 - can't progress until this is sorted. 2017-03-21 17:43:48 +08:00
Marco Satti
a73c990845 More testing... Something is wrong with the IOP side, PCSX2 has a totally different IOP memory contents at initalisation! 2017-03-21 10:47:46 +08:00
Marco Satti
45619972ee More testing, found and fixed a couple of more bugs. 2017-03-19 13:59:55 +08:00
Marco Satti
fc5bbfa28b Start checking through EE / IOP core instructions (unit testing). 2017-03-16 18:13:54 +08:00
Marco Satti
0dd6de9044 Change back some DMA logic so when non-investigated cases come through they will throw runtime_error. 2017-03-13 15:25:30 +08:00