Commit graph

175 commits

Author SHA1 Message Date
Nabile Rahmani
648dd180ed CIC 👌 2017-10-08 00:38:30 +02:00
Nabile Rahmani
933423373d Fixed the high-level emulation of the PIF ROM.
The previous source wasn't accurate enough, so I stepped through the real PIF ROM and recorded all memory writes and final CPU register values, with the intent of restoring the machine state.
This code should be revisited in case memory reads do affect the system, or if the CPU emulation at the time of this commit is inaccurate.
2017-10-06 10:59:43 +02:00
Nabile Rahmani
064cd300ad Refactored PIF emulation and fixed endianness. 2017-10-06 04:32:21 +02:00
Nabile Rahmani
f3f5a08525 Refactoring. 2017-10-06 02:56:34 +02:00
Nabile Rahmani
13f3b8ef1d More ops. 2017-10-05 05:48:50 +02:00
Nabile Rahmani
96d719a97b Line endings. 2017-10-04 21:56:15 +02:00
Nabile Rahmani
05e7efcf42 Localised IO. 2017-10-04 19:49:37 +02:00
Nabile Rahmani
33f0c931dc Moved memory mapper into CP0. 2017-10-04 12:29:44 +02:00
Nabile Rahmani
0d9897794e Refactored bits. 2017-10-04 11:50:09 +02:00
Nabile Rahmani
6ec30258d3 Added display processor. 2017-10-04 10:54:40 +02:00
Nabile Rahmani
6f563a5efe Cartridge stuff. 2017-10-03 19:49:25 +02:00
Nabile Rahmani
bde68d198a Refactored memory mapping. 2017-10-03 16:34:26 +02:00
Nabile Rahmani
9d61077283 Fixed wrong sign extend and wrting to PIF RAM. 2017-10-03 07:47:55 +02:00
Nabile Rahmani
409c4a4706 Moved stuff around. 2017-10-03 05:03:09 +02:00
Nabile Rahmani
ce3e53ec0d Refactoring:
- Reuse local var when mapping memory.
- Give the memory maps to the CPU instead of the console.
2017-10-03 02:14:41 +02:00
Nabile Rahmani
90c49a624e - Refactoring.
- Added some more fields.
2017-10-03 01:39:01 +02:00
Nabile
9aa6aaa243 Merge branch 'ci' of Nabile/N64-Emu into master 2017-09-27 00:48:11 +02:00
Nabile
c61bc65d47 Add '.ci-build.sh' 2017-09-27 00:46:22 +02:00
Nabile
3291716585 Add 'README.md' 2017-09-27 00:36:20 +02:00
Nabile Rahmani
fd4c7dd293 Special ops. 2017-09-11 18:01:37 +02:00
Nabile Rahmani
5163cd6a17 Write endianness. 2017-09-11 18:00:55 +02:00
Nabile Rahmani
9f204adf31 Fixed delay slot. 2017-09-10 23:45:24 +02:00
Nabile Rahmani
a4b641e75b - Added delay slot for properly running instructions.
- Reuse branching code.
- Added Instruction.Size constant for incrementing the program counter.
2017-09-10 14:40:58 +02:00
Nabile Rahmani
10c1e6f1c0 Read words from the RSP's instruction memory. 2017-09-09 15:01:49 +02:00
Nabile Rahmani
6717a40f67 Special op codes. 2017-09-09 12:14:30 +02:00
Nabile Rahmani
0a5687eb9e Moved the PIF ROM. 2017-09-08 20:17:08 +02:00
Nabile Rahmani
05b4e3ad2e Renamed RSP. 2017-09-08 16:15:04 +02:00
Nabile Rahmani
932611b220 Read word only if the branch condition succeeds. 2017-09-08 15:51:16 +02:00
Nabile Rahmani
261a86236d Refactored MappingEntry. 2017-09-08 15:25:06 +02:00
Nabile Rahmani
e0bce20834 Add some pieces and fix PIF code. 2017-09-06 19:25:28 +02:00
Nabile Rahmani
749fcf008a Fixed wrong register sizes. 2017-09-06 05:49:06 +02:00
Nabile Rahmani
4546f40f18 Added new interfaces, refactored memory mapping and added an opcode. 2017-09-05 23:40:34 +02:00
Nabile Rahmani
7f660870e2 Reuse branching code. 2017-09-05 17:12:41 +02:00
Nabile Rahmani
bf1fe1baaa UIntPtr isn't a good idea. 2017-09-05 09:31:08 +02:00
Nabile Rahmani
55d5ebc82b ADD op. 2017-09-05 09:15:06 +02:00
Nabile Rahmani
59ba1746ae Sign extend the correct bit.
This definitely needs to be put into a method.
2017-09-05 08:53:48 +02:00
Nabile Rahmani
7c6040773f Forgot the bit shifting in BNE op. 2017-09-04 22:08:04 +02:00
Nabile Rahmani
c593974b30 Simplify code. 2017-09-03 11:39:07 +02:00
Nabile Rahmani
4a131ee561 Do not check cartridges yet. 2017-09-03 10:33:00 +02:00
Nabile Rahmani
610bcc4585 Renamed CP0. 2017-09-03 10:18:00 +02:00
Nabile Rahmani
157dab3d48 Name nested types properly. 2017-09-03 10:00:32 +02:00
Nabile Rahmani
df71e90733 Unify memory boundary checking. 2017-09-03 09:44:12 +02:00
Nabile Rahmani
ff7e134751 Directory structure. 2017-09-03 09:36:50 +02:00
Nabile Rahmani
d9e5a4d058 Inline lambda. 2017-09-03 09:24:29 +02:00
Nabile Rahmani
145b6b5121 Moved helper methods. 2017-09-03 09:22:12 +02:00
Nabile Rahmani
38c07929f4 * Nintendo64.cs: Added a physical address.
* RealityCoprocessor.RealitySignalProcessor.cs: Add register and set
  the default value of Status to one to indicate to the CPU the RSP is
  ready to continue execution.

* VR4300.OpCode.cs: Added instructions and reduced documentation
  (refer to the datasheet instead).

* VR4300.cs: Added instructions.
2017-09-02 13:46:14 +02:00
Nabile Rahmani
ccc19fa1fd Display hex in uppercase. 2017-09-02 12:47:58 +02:00
Nabile Rahmani
2a3973b8bf Run the delayed instruction in the branch. 2017-09-02 12:45:10 +02:00
Nabile Rahmani
27bf77fa29 Fixed order of PC increment. 2017-09-02 10:56:49 +02:00
Nabile Rahmani
65af1897a6 Added PIF ROM and fixed BEQL not branching properly. 2017-09-02 08:04:21 +02:00