Commit graph

  • a4d06cef67 Handle special cases for CP0 register writes. - The timer interrupt is cleared on writes to the Compare register (see: #6.3.4). - Only software interrupt bits are writable into the Cause register (see: #6.3.6). master Nabile Rahmani 2018-12-24 21:38:18 +01:00
  • bb4d756ebb Step out should step over other linked jumps. Nabile Rahmani 2018-12-24 17:29:06 +01:00
  • 0753fbce9b - Blank the screen on invalid video state. - Name the CPU thread. Nabile Rahmani 2018-12-24 17:13:27 +01:00
  • ac64a2d0c4 Debugger: Added step out and step over. Nabile Rahmani 2018-12-24 17:03:47 +01:00
  • 124567fd71 The CPU is in kernel mode when EXL or ERL is on. Nabile Rahmani 2018-12-22 00:28:05 +01:00
  • 68f65d01b8 Refactored the windowing code. - Don't clear the render target since we're fully overwriting it anyways. - Pass null pointers instead of filling out full regions for the texture and render target. This achieves the same effect. - Create the renderer in the constructor, since we're doing everything in the same thread anyways. That gets rid of the check on every frame. Nabile Rahmani 2018-12-21 23:53:47 +01:00
  • c89a91449e Set the MI version register to RCP v2.0. Nabile Rahmani 2018-12-21 23:32:17 +01:00
  • 78d7002396 Interrupt maps. Nabile Rahmani 2018-12-19 17:35:54 +01:00
  • e9af937d4d Don't assume the runtime's endianness. Nabile Rahmani 2018-12-19 16:00:30 +01:00
  • d2e3ddff14 Fixed incorrect masking for sub-word writes. Nabile Rahmani 2018-12-19 15:43:20 +01:00
  • 3cadb9a179 Updater: Complete Windows update even in case of unhandled exceptions. Nabile Rahmani 2018-12-11 21:19:13 +01:00
  • 719107d459 Renames. Nabile Rahmani 2018-12-11 20:47:19 +01:00
  • 7b9ad33be2 Fixed SI interrupts and moved memory maps. Nabile Rahmani 2018-12-11 20:36:16 +01:00
  • 6fc595dc27 More readable device states. Nabile Rahmani 2018-12-11 20:01:04 +01:00
  • ca014d07d6 Inline exception processing methods. Nabile Rahmani 2018-12-11 19:39:32 +01:00
  • af652e45b4 Name the interrupt pins. Nabile Rahmani 2018-12-11 19:36:26 +01:00
  • dcf1766d73 Make the CPU SB/SH tests pass. Nabile Rahmani 2018-12-10 19:59:20 +01:00
  • 6c5a34eaa6 Updater: Delay executable file replace on Windows using the ProcessExit event. Nabile Rahmani 2018-12-10 19:46:30 +01:00
  • ed96d4af96 Changed wording in update list to avoid confusion. Nabile Rahmani 2018-12-01 04:05:53 +01:00
  • 3b0792dfab Fixed RGBA16 output being pixel swapped. Nabile Rahmani 2018-12-01 04:04:00 +01:00
  • a532f4945d DllMapping isn't required when following naming conventions. Nabile Rahmani 2018-11-29 09:25:10 +01:00
  • b28862e5f7 Fixed updater not working when missing DotN64.dll. Nabile Rahmani 2018-11-29 06:26:33 +01:00
  • 6c1253392e Hello, Angrylion RDP. Nabile Rahmani 2018-11-29 05:26:46 +01:00
  • 48924bdfba Handle endianness on sub-word CPU reads (fixes garbled text on test ROMs). - Added SD opcode for running some test ROMs. - Quit the debugger when the N64 is powered off. Nabile Rahmani 2018-11-29 04:39:23 +01:00
  • 585645d791 Somewhat fixed the SDL implementation (frame buffer scaling, hanged on Windows, did not gracefully quit everywhere). - Blitting the frame buffer works for 240p and 480p, though due to the usage of the scale-up values, some lines don't make it through in 480p. Additionally, something is wrong with 16-bit buffers. - Running the window thread on the main thread since the main thread created the window. Windows isn't able to poll SDL events on a different thread. - Disposing the SDL window on the thread which created it instead of relying on the finaliser to destroy it. Not doing so triggers a segfault as DestroyRenderer gets called. No need to destroy textures when disposing of the renderer as it does it. - Display string for Point struct. Nabile Rahmani 2018-11-29 04:17:35 +01:00
  • f05442bb40 Format CP0 instructions in its own function. Nabile Rahmani 2018-11-29 04:08:17 +01:00
  • 6132f8ec15 Compacted CP0 operation dictionaries. Nabile Rahmani 2018-11-29 04:05:19 +01:00
  • 284291774c Debugger: label add <name> [address] Nabile Rahmani 2018-11-21 17:41:50 +01:00
  • 6e8ff81e58 Ensure mapping entry fields are set to sane values. Nabile Rahmani 2018-11-21 17:30:21 +01:00
  • 18c8b8d041 Fixed branching comparisons not being signed. Nabile Rahmani 2018-11-21 17:11:12 +01:00
  • 84f14de487 Fixed ROM header fields, and added an option to display headers. MediaFormat values were guesses from various games (i.e. SM64 is a regular cartridge, OoT was to be expanded, and 64dd.org disk ID listings). Nabile Rahmani 2018-11-21 16:05:28 +01:00
  • 10470e40b1 - Read zipped ROM images. - Change window title on cartridge swap. Nabile Rahmani 2018-07-05 21:36:41 +02:00
  • 9157ead6bb Localise cartridge map (also prevents MonoDevelop's debugger from crashing). Nabile Rahmani 2018-07-05 21:27:32 +02:00
  • 9e41e65552 Updated README. Nabile Rahmani 2018-06-27 16:43:42 +02:00
  • 58a454f112 First pass on video output. - Added SDL video output. - Send VI interrupts when the currently scanned line hits the interrupt register's. - Added some program options related to video. Nabile Rahmani 2018-06-27 16:12:46 +02:00
  • 34dfe21c05 Handle cartridge swap events by updating the memory map. Reduces branching and calls. Nabile Rahmani 2018-06-27 16:08:45 +02:00
  • 599130bf38 Updated submodule. Nabile Rahmani 2018-06-27 16:02:00 +02:00
  • bf58d40556 Added an IDE command for deploy. Nabile Rahmani 2018-06-27 15:46:09 +02:00
  • f9f2cd0250 Fixed casting on LD. Nabile Rahmani 2018-06-21 20:47:29 +02:00
  • 1d65c968e5 Fixed invalid casting on SRL. Nabile Rahmani 2018-06-19 19:17:29 +02:00
  • e17c4c1c4e Fixed Win64 not able to load 64-bit libs (msbuild needs the solution context). Also, restore packages for posterity. Nabile Rahmani 2018-06-17 14:16:14 +02:00
  • 71500b5c68 Updates: don't auto-restart on Windows. Nabile Rahmani 2018-06-17 13:18:05 +02:00
  • 03b71a6b94 Removed unused version property. Nabile Rahmani 2018-06-17 09:20:29 +02:00
  • dade03d7f7 CPUADD wants these. Nabile Rahmani 2018-06-17 04:09:29 +02:00
  • 83f573764b VI registers. Nabile Rahmani 2018-06-16 13:59:56 +02:00
  • 55382b2c14 Make sure the target directory exists. Nabile Rahmani 2018-06-15 07:36:44 +02:00
  • 0f00baae39 - Do not check versions when switching streams. - Manually restore execute bit on Unix. - Use full paths everywhere instead of relying on current working directory. - Less early returns on update operations. - Formatting. Nabile Rahmani 2018-06-15 05:20:57 +02:00
  • 6a15c0ddb8 Added deploy script. Nabile Rahmani 2018-06-15 00:29:33 +02:00
  • e681227e27 - Fixed field masks for device state flags. - Boot from expansion port if no cartridge is present. Nabile Rahmani 2018-06-14 20:24:19 +02:00
  • 22e54a2333 Basic update system, help message. Nabile Rahmani 2018-06-12 03:22:20 +02:00
  • 4d594a6637 Turn DotN64 into a library, reference it and SDL2 for the desktop project. Nabile Rahmani 2018-06-11 19:51:06 +02:00
  • 1520e77849 Added SDL2. Nabile Rahmani 2018-06-11 11:20:52 +02:00
  • 5f868004b7 RCP: Reordered and shortened memory maps. Nabile Rahmani 2018-06-10 17:46:20 +02:00
  • 575f68c549 Debugger: surround register contents with brackets. Nabile Rahmani 2018-06-10 17:33:54 +02:00
  • 6550d7d327 More country codes. Nabile Rahmani 2018-06-09 20:21:54 +02:00
  • a13aa374d3 Instruction: FromOpCode => From. Nabile Rahmani 2018-06-09 18:56:57 +02:00
  • 9762d813ba Ensure GPR[0] is zero. Nabile Rahmani 2018-06-09 18:35:33 +02:00
  • 40d0944418 SysAD: "value" => "data". Nabile Rahmani 2018-06-09 18:31:15 +02:00
  • a7972ebc0a Replaced CP0 register index abstract property by a readonly field. Nabile Rahmani 2018-06-09 18:17:06 +02:00
  • c15c1d0b18 Fixed exceptions not setting the correct branch delay value. Nabile Rahmani 2018-06-09 18:10:39 +02:00
  • eb41337dce CPU: refactored control flow and load/store methods, added new ops. Nabile Rahmani 2018-06-09 17:40:52 +02:00
  • dca7725258 Refactored CP0 stuff. Nabile Rahmani 2018-06-05 20:44:13 +02:00
  • 05cf22619a Mapping entry formatting. Nabile Rahmani 2018-06-05 17:32:59 +02:00
  • 17e13ce564 FPU: - Removed duplicate condition signal variable. - Check for the unimplemented operation flag. Nabile Rahmani 2018-06-05 17:19:02 +02:00
  • be7b7c9827 Refactored flags and renamed registers. Nabile Rahmani 2018-05-11 12:57:20 +02:00
  • ecab40e39e Added ops. Nabile Rahmani 2018-01-24 16:45:29 +01:00
  • a60f8a7dbf SLT comparison is *signed*, duh. Nabile Rahmani 2018-01-24 16:28:24 +01:00
  • 6caa80fb9a More ops. Nabile Rahmani 2018-01-24 03:06:39 +01:00
  • 1800179515 - Added the FPU. - Added an exception handler for the FPU. - Added constants for cartridges and fixed header properties. - PIF HLE determines the console region for the saved register that's used by the OS. - The disassembler shows CP1 opcodes. Nabile Rahmani 2018-01-23 18:46:12 +01:00
  • 9910f7ab0b Added license. Nabile Rahmani 2018-01-17 18:08:30 +01:00
  • 8e076ff0ae Moved CP0.OpCode enum. Nabile Rahmani 2018-01-17 17:30:01 +01:00
  • 4ee50a1f7f Coprocessor, debugger, and exception stuff. Nabile Rahmani 2018-01-17 10:34:02 +01:00
  • da3a886d71 Move IP to a structure. Nabile Rahmani 2018-01-02 15:34:22 +01:00
  • 158f01ccf9 Exception processing, interrupts, registers. Nabile Rahmani 2018-01-01 18:01:59 +01:00
  • 08853d495f The CPU only supports 32-bit physical addresses. No point in keeping the result of translated addresses 64-bit. Nabile Rahmani 2017-12-20 01:41:27 +01:00
  • cc81d9d21d As the external agent, the RCP should define its memory maps. Nabile Rahmani 2017-12-20 01:20:12 +01:00
  • 71904ce63f PI. Nabile Rahmani 2017-12-19 20:24:14 +01:00
  • b2ea1dbdb6 Changed casing to follow naming conventions. Nabile Rahmani 2017-12-18 09:10:07 +01:00
  • 17dbe71cef * VR4300.Exceptions.cs: Added a custom exception. Nabile Rahmani 2017-12-18 08:50:25 +01:00
  • 23b06e69b5 Huge changes (too lazy to separate). * VR4300.SystemControlUnit.StatusRegister.cs: Removed unneeded value. Nabile Rahmani 2017-12-11 15:04:53 +01:00
  • 8905d75136 Updated boot ROM HLE: Removed temporary and cartridge-specific register values. Nabile Rahmani 2017-11-27 08:28:00 +01:00
  • a6ae17a345 Use SysAD pins instead of passing maps. Nabile Rahmani 2017-11-21 12:59:59 +01:00
  • f20f931b12 Aesthetic. Nabile Rahmani 2017-11-16 22:43:43 +01:00
  • 12f287ea12 Make delay slot accessible for the debugger. Nabile Rahmani 2017-11-16 11:41:46 +01:00
  • 449b6ebd0c A debugger appeared. Nabile Rahmani 2017-11-16 08:33:04 +01:00
  • 66e5efff59 Moved members in their respective place. Nabile Rahmani 2017-11-04 17:59:34 +01:00
  • c323daf588 Moved the CPU in its own folder. Nabile Rahmani 2017-11-04 16:28:09 +01:00
  • ea629a6b16 Moved RCP interfaces inside itself. Nabile Rahmani 2017-11-04 15:24:26 +01:00
  • 467ea2a07d Proper CPU reset. Nabile Rahmani 2017-11-04 13:43:15 +01:00
  • 35932316c4 Renames. Nabile Rahmani 2017-11-04 12:14:51 +01:00
  • 59fd18ce2c Unified interfaces. Nabile Rahmani 2017-10-31 12:50:00 +01:00
  • 20c2b5ab78 PI registers. Nabile Rahmani 2017-10-30 22:09:25 +01:00
  • 2ebfa53387 - Fake CACHE. - Pretty print maps. - Main memory get. Nabile Rahmani 2017-10-30 21:46:09 +01:00
  • dbe5cc6559 ... Aren't they more cute as enumerations ? Nabile Rahmani 2017-10-30 19:56:49 +01:00
  • d5efc12872 Added register and defaults from MAME. Nabile Rahmani 2017-10-30 14:06:06 +01:00
  • a605598241 More registers. Nabile Rahmani 2017-10-30 12:55:01 +01:00
  • d7e97d9b46 Changed target framework. Nabile Rahmani 2017-10-30 10:08:44 +01:00
  • 9da7b68741 - Reduced memory allocation and CPU usage by not using LINQ, foreach in hot paths and unsafe writes instead of array copies. - 64-bit addressing in mapping entries instead of down-casting. - Fixed cartridge field length. - Adjusted ops. Nabile Rahmani 2017-10-13 21:02:42 +02:00
  • f938e58c2e Name change. Nabile Rahmani 2017-10-09 08:21:31 +02:00
  • 3eebb0a9ad Updated PIF HLE. Nabile Rahmani 2017-10-08 03:09:48 +02:00