Marco Satti
|
f324ab2678
|
Major rework of how registers are implemented - I am testing this way after looking at the FPU source code. By making subclassed objects with overriden read/write B/H/W/D functions, we can customise how values are written. For example, any writes to the ZeroRegister128_t are now discarded. If the old way was still used, then you would need to repeat the checks, for example on FPR writes, in each instruction - this way it is all done through the FPRRegister32_t class. The downside of this is that it makes the code a bit harder to read, and there may be a (small) performance impact.
|
2016-08-11 00:00:25 +08:00 |
|
Marco Satti
|
d9d0fa0fa9
|
Started float instructions.
|
2016-08-09 11:26:09 +08:00 |
|
Marco Satti
|
da8039fbf6
|
Finished Mult-Add instructions.
|
2016-08-08 16:31:44 +08:00 |
|
Marco Satti
|
9280345618
|
Started implementing integer mult-add instructions.
|
2016-08-07 23:29:25 +08:00 |
|
Marco Satti
|
f2e55aa094
|
Implemented Mult/Div instructions.
|
2016-08-07 12:50:48 +08:00 |
|
Marco Satti
|
ca81ad3584
|
Begin Mult/Div implementation.
|
2016-08-07 10:46:40 +08:00 |
|
Marco Satti
|
f31b234b4c
|
Implemented all of the Integer Add/Sub instructions. (1/9 pages completed).
|
2016-08-06 18:54:02 +08:00 |
|
Marco Satti
|
30a560a96e
|
Started implementations of R5900 instructions! :)
|
2016-08-05 23:00:17 +08:00 |
|
Marco Satti
|
17b91a34f8
|
Added a consolidated master list to the R5900 Impl. register (created macro to do this)... Needed it for printing! Forgot to add in the instruction as a parameter to the impl. functions.. Fixed.
|
2016-08-05 21:15:02 +08:00 |
|
Marco Satti
|
2879bc3833
|
A bit more structural work in preperation for all of the R5900 instruction implementations.
|
2016-08-05 16:16:55 +08:00 |
|
Marco Satti
|
774d50599c
|
Finished adding in all of the R5900 instruction declarations from the EE Core Instruction Manual, starting to work on implementing them in the interpreter.
|
2016-08-05 13:17:10 +08:00 |
|
Marco Satti
|
f452a6a4e2
|
Assigned all opcodes implementation index numbers, in total there are 258.
|
2016-08-03 22:01:19 +08:00 |
|
Marco Satti
|
ec88152ca4
|
Started on a implementation register, as there is quite a lot of instructions to implement. The primary function of this file is to provide an index number which can be used in a lookup table (I am not a fan of static function pointers, which is how old PCSX2 is currently working).
|
2016-08-03 20:54:47 +08:00 |
|
Marco Satti
|
bb0c1817f8
|
Implemented Boot ROM region & initalisation of it.
|
2016-08-02 23:20:05 +08:00 |
|
Marco Satti
|
8cc8a19046
|
Implemented PS2's MMU/TLB. Still need to finish up the scratchpad/cache access but the bulk of it is done.
|
2016-08-01 23:37:00 +08:00 |
|
Marco Satti
|
900246d7f8
|
Implemented exception handler. I haven't considered how the recompiler may interface with this (there is too much to think about at this time) so it is subject to change.
|
2016-07-29 22:31:02 +08:00 |
|
Marco Satti
|
073d9d5ab2
|
Implemented the branch delay slot as a state feature of the R5900... Have not dealt with this before, so a bit of trial and error.
|
2016-07-29 20:19:50 +08:00 |
|
Marco Satti
|
bb07264ac8
|
A couple of misc/organisational changes.
|
2016-07-28 23:06:58 +08:00 |
|
Marco Satti
|
1206233d76
|
Reorganised directory structure - it will eventually be a large project that needs to be well organised from the beginning.
|
2016-07-28 20:35:05 +08:00 |
|
Marco Satti
|
04ee4f3320
|
Started implementing the FPU.
|
2016-07-27 18:44:49 +08:00 |
|
Marco Satti
|
4e943cf87d
|
Reworked implementation of MMU - all tests pass now and it reads much better.
|
2016-07-26 18:10:04 +08:00 |
|
Marco Satti
|
22c7c90271
|
Heavily worked on the VM MMU again - reading into the docs, the EE memory map needs to be aligned with 16 byte boundaries - which means the page table minimum unit must be 16B... Re did it as a 2-level page table (4MB and 16B), still a few issues to sort out. Also worked on the exception handler and related components.
|
2016-07-25 23:51:32 +08:00 |
|
Marco Satti
|
f19524675c
|
Added in a couple of tests for the instruction type - seems to work well.
|
2016-07-22 23:23:00 +08:00 |
|
Marco Satti
|
4d6c3124ba
|
Forgot to add the unit test library as a git submodule. Fixed.
|
2016-07-22 18:33:47 +08:00 |
|
Marco Satti
|
c727b550dd
|
Restructured whole project a little and added in unit testing (through GoogleTest).
|
2016-07-22 17:33:16 +08:00 |
|
Marco Satti
|
8254e89d49
|
Added in the VM MMU component, responsible for translating PS2 physical addresses into client virtual addresses (done via page table). Fixed up some wording and syntax.
|
2016-07-22 14:39:49 +08:00 |
|
Marco Satti
|
d0baecf060
|
Started work on the R5900 interpreter and the MMU unit. Its likely that I will get the MMU wrong at first as it is something completely new to me.
|
2016-07-17 13:59:23 +08:00 |
|
Marco Satti
|
dc1a608598
|
Reworked the Instruction_t class to provide functionality for R, J and I types, as you are not allowed to cast from a parent class to child class.
|
2016-07-15 13:05:53 +08:00 |
|
Marco Satti
|
a0ed003c52
|
Changes to the structure of the emulator. Created the VMMain & components that will be used for control of the core emulation (component programming model). I believe this programming pattern is used also eg: in game engines.
|
2016-07-14 21:59:06 +08:00 |
|
Marco Satti
|
a287e01c85
|
Added in all of the COP0 registers, using the new BitfieldRegister_t class.
|
2016-07-10 13:42:01 +08:00 |
|
Marco Satti
|
168bd6e360
|
Added more COP0 registers in, but about to change the way they are implemented as it is too tedious to write out each time.
|
2016-07-09 15:01:44 +08:00 |
|
Marco Satti
|
a42243855b
|
Add more COP0 registers, update readme for markdown syntax.
|
2016-07-08 09:58:31 +08:00 |
|
Marco Satti
|
0c3058b349
|
Added in the get/set bit range (ie: bitfields) functions into Register32_t, which will be used a lot upcoming. Also note I will focus on getting the core implemention ready, then optimise later. Started work on implementing COP0 registers.
|
2016-07-07 22:59:24 +08:00 |
|
Marco Satti
|
93de3d9269
|
Fixed up namespaces. Apparently VS doesnt like macros for namespaces so I have limited the nesting to 2 namespaces in order to increase visibility.
|
2016-07-06 22:10:04 +08:00 |
|
Marco Satti
|
bd1c91942a
|
First commit. Implemented parts of the EE core.
|
2016-07-06 20:56:06 +08:00 |
|
Marco Satti
|
12d66128a2
|
Add project files.
|
2016-07-06 12:07:56 +08:00 |
|
Marco Satti
|
5787a5b272
|
Add .gitignore and .gitattributes.
|
2016-07-06 12:07:55 +08:00 |
|