- 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.
- Added SDL video output.
- Send VI interrupts when the currently scanned line hits the interrupt register's.
- Added some program options related to video.
* VR4300.SystemControlUnit.StatusRegister.cs: Removed unneeded
value.
* VR4300.SystemControlUnit.cs: Renamed method.
* VR4300.Instruction.cs: Refactored instruction contents. Now
individual parts can be written to as well.
It is also possible to strip an instruction to its bare opcode
identifier, or even create one from a specified opcode, so this can
be used as a key in a dictionary of operations.
A basic ToString implementation displays the opcode of the
instruction.
* VR4300.OpCode.cs:
* VR4300.RegImmOpCode.cs:
* VR4300.SpecialOpCode.cs: Added opcodes.
* VR4300.cs: Unified operations into a single dictionary thanks to the
instruction refactoring.
Added ops: JAL, SLTI, XORI, BLEZL, SB, LBU, SLT, BGEZL.
* Debugger.Command.cs: Basic display of what the command is about.
* Debugger.InstructionFormat.cs: First pass of the formatter.
* Debugger.cs: Proper disassembly of instructions. Stepping also
displays the contents of registers.
~Infinite~ count argument for stepping/disassembling.
Refactored instruction fetch into using the CPU's SysAD bus (no need
to manually access the N64's memory maps).
* DotN64.csproj:
* RealityCoprocessor.SignalProcessor.StatusRegister.cs:
* RealityCoprocessor.DisplayProcessor.StatusRegister.cs:
* RealityCoprocessor.RDRAMInterface.RDRAMConfigIndex.cs:
* RealityCoprocessor.RDRAMInterface.RDRAMConfigRegister.cs:
* MappingEntryExtensions.cs: Saves some typing.
* BitHelper.cs: Reusable methods.
* Nintendo64.cs: More memory maps.
* Program.cs: Minor changes.
* RealityCoprocessor.Interface.cs:
* RealityCoprocessor.AudioInterface.cs:
* RealityCoprocessor.VideoInterface.cs:
* RealityCoprocessor.SerialInterface.cs: Simplified mapping accesses.
* RealityCoprocessor.DisplayProcessor.cs: Added an actual register.
Simplified mapping accesses.
* RealityCoprocessor.MIPSInterface.cs: Added dummy version register
read.
Simplified mapping accesses.
* RealityCoprocessor.PeripheralInterface.cs: Basic DMA.
Simplified mapping accesses.
* RealityCoprocessor.RDRAMInterface.cs: Removed constants that get set
in the boot process.
Added RDRAM registers.
Simplified mapping accesses.
* RealityCoprocessor.SignalProcessor.cs: Better types for existing
registers and handle status writes.
Simplified mapping accesses.