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