a4d06cef67Handle 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 Rahmani2018-12-24 21:38:18 +0100
124567fd71The CPU is in kernel mode when EXL or ERL is on.Nabile Rahmani2018-12-22 00:28:05 +0100
68f65d01b8Refactored 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 Rahmani2018-12-21 23:53:47 +0100
48924bdfbaHandle 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 Rahmani2018-11-29 04:39:23 +0100
585645d791Somewhat 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 Rahmani2018-11-29 04:17:35 +0100
84f14de487Fixed 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 Rahmani2018-11-21 16:05:28 +0100
10470e40b1- Read zipped ROM images. - Change window title on cartridge swap.Nabile Rahmani2018-07-05 21:36:41 +0200
58a454f112First 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 Rahmani2018-06-27 16:12:46 +0200
34dfe21c05Handle cartridge swap events by updating the memory map. Reduces branching and calls.Nabile Rahmani2018-06-27 16:08:45 +0200
e17c4c1c4eFixed Win64 not able to load 64-bit libs (msbuild needs the solution context). Also, restore packages for posterity.Nabile Rahmani2018-06-17 14:16:14 +0200
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 Rahmani2018-06-15 05:20:57 +0200
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 Rahmani2018-01-23 18:46:12 +0100
08853d495fThe CPU only supports 32-bit physical addresses. No point in keeping the result of translated addresses 64-bit.Nabile Rahmani2017-12-20 01:41:27 +0100
cc81d9d21dAs the external agent, the RCP should define its memory maps.Nabile Rahmani2017-12-20 01:20:12 +0100
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 Rahmani2017-10-13 21:02:42 +0200