StrikerX3
7d51dd13c1
Refine ATA channel methods
...
Moved files around
2018-12-03 19:56:13 -02:00
StrikerX3
fa769c1212
Restructure ATA implementation
2018-12-03 19:33:57 -02:00
StrikerX3
7be0a89e32
IRQ assertion level is better represented by a bool
...
Improve documentation on ATA emulation
2018-12-03 18:55:56 -02:00
StrikerX3
685c764f2e
Fix compilation error
...
Namespaces are annoying...
2018-12-03 17:14:22 -02:00
StrikerX3
db01ec0263
Begin structuring the ATA emulator
2018-12-03 16:27:17 -02:00
StrikerX3
9d0c3c8518
Stub ATA device
2018-12-03 12:56:41 -02:00
StrikerX3
26d6f9d529
Write 0 on unimplemented reads
2018-12-03 12:56:33 -02:00
StrikerX3
9f0baa2ef0
Reduce log verbosity
2018-12-03 12:56:12 -02:00
StrikerX3
e1c24c52b9
Sync OHCI code up to Cxbx-R commit 169806b2
...
This is the latest OHCI related code. Nothing related to SDL2 was ported. Needs major improvements.
2018-12-03 01:58:23 -02:00
StrikerX3
b81de821a9
HostBridgeDevice::PCIMMIORead: zero out values
2018-12-02 23:45:03 -02:00
StrikerX3
e1540cb2d4
Allow expanding RAM to 128 MiB on retail systems
...
This allows modified BIOSes to use the extra RAM
2018-12-02 23:44:36 -02:00
StrikerX3
931ed595e0
Fix SMC revision retrieval
2018-12-02 23:02:03 -02:00
StrikerX3
8e9539f8a9
Refactored CPU modules
...
Moved eveything related to modules to a new namespace: openxbox::modules. Likewise, all CPU module source code now belongs to the openxbox::modules::cpu namespace.
CPU code has been moved to openxbox::cpu.
CPU module capabilities are now exported by libraries. Users can check for optional features.
2018-12-02 21:53:50 -02:00
StrikerX3
8015b4a1d7
Remove unused label
2018-12-02 21:48:28 -02:00
StrikerX3
664f3b9ec9
Implemented status codes for CPU modules
...
Added methods to read/write registers in bulk
Made CPU single stepping an optional operation
2018-12-02 19:21:44 -02:00
StrikerX3
f53bcee8cd
Use proper status codes for initialization operations
2018-12-02 17:06:10 -02:00
StrikerX3
3525d85329
Reorganized initialization and cleanup code
...
With this, using the Xbox class is much easier and less error-prone.
Also removed XBE related code since we can't load an XBE into the guest just yet
2018-12-02 16:40:13 -02:00
StrikerX3
e9100ca189
Preinitialize settings within Xbox
...
Settings can now be modified by getting a pointer to the OpenXBOXSettings struct embedded in the Xbox class
2018-12-02 16:22:16 -02:00
StrikerX3
c7f61099c9
Improved/simplified interrupt handling
...
Will no longer skip interrupts, but runs the risk of overloading the CPU with interrupt work or creating a long queue of outstanding interrupt requests
2018-12-02 16:20:55 -02:00
StrikerX3
090755d21d
Make dumping stack and disassembly on exit optional
2018-12-02 16:01:30 -02:00
StrikerX3
de834a3438
Clarify kernel detection message
...
Previously it would seem that the emulator was extracting and decrypting the kernel itself, which is not the case
2018-12-02 15:43:49 -02:00
StrikerX3
5df763cfa7
Extract and log kernel version
2018-12-02 15:40:19 -02:00
StrikerX3
da92a7f38f
Add option to stop emulation on bug checks
...
This will only work on original or modified Microsoft kernels
2018-12-02 15:28:16 -02:00
StrikerX3
30c0a1204c
Always log fatal errors
2018-12-02 15:06:31 -02:00
StrikerX3
55bdef212b
Configurable SMC fatal error code handling
...
One toggle enables fatal error logging, the other causes the emulator to stop when a fatal error is detected
2018-12-02 15:04:30 -02:00
StrikerX3
68f388a219
Reduce log clutter
2018-12-02 15:03:32 -02:00
StrikerX3
810b55a984
Allow Super I/O to be enabled on retail systems
...
Some modified BIOSes run on retail systems and include the kernel debugger that uses the serial port for communication. Having this as an option is very useful, as specifying a debug kit modifies hardware in a way that might be incompatible with those BIOSes.
The Super I/O hardware is always enabled on debug kits.
2018-12-02 14:52:07 -02:00
StrikerX3
9c24a77856
SMBus: handle word reads/writes correctly
2018-12-02 14:41:15 -02:00
StrikerX3
a1adbaad4a
Fix NVAPU initialization
2018-12-02 14:40:57 -02:00
StrikerX3
e10b25cd02
Start fixing SMBus
2018-12-02 14:27:26 -02:00
StrikerX3
4d8d77451c
Parse LED sequences correctly
...
Don't stop emulation when a fatal error occurs (for now)
2018-12-02 13:57:34 -02:00
StrikerX3
d35fd70a2f
Parse fatal error codes sent to the SMC
...
Stop emulation upon hitting a fatal error
Fix kernel executable header parsing; should consistently find the kernel thunk table now
2018-12-02 12:57:06 -02:00
StrikerX3
a74ac1d986
MCPX ROM should only replace the last 512 bytes of x86 address space
2018-12-02 10:38:48 -02:00
StrikerX3
00b5e62d08
Replicate ROM even if MCPX is not enabled
2018-12-02 02:12:12 -02:00
StrikerX3
e047a6c9bb
Let the LPC device handle ROM
...
When the LPC PCI configuration is changed to disable the MCPX ROM, it will restore the original BIOS image automatically
2018-12-02 01:53:09 -02:00
StrikerX3
19a2ca6870
Move IOMapper to common module
2018-12-02 01:50:09 -02:00
StrikerX3
04bcf0970b
Include util.h in precompiled header
2018-12-02 01:49:51 -02:00
StrikerX3
22ab117688
Fix small typo
2018-12-02 01:49:31 -02:00
StrikerX3
7920ed9431
IDE controller PCI BAR for I/O is 4, not 0
2018-12-01 18:58:11 -02:00
StrikerX3
df1fb0680f
Should not check PCI_COMMAND when mapping I/O
2018-12-01 18:57:39 -02:00
StrikerX3
84f770ece0
Properly initialize NV2A structs
2018-12-01 18:56:54 -02:00
StrikerX3
4d7ee3cf0d
Properly initialize NV2A structs
2018-12-01 18:56:34 -02:00
StrikerX3
5113f68040
Add support for guest breakpoints
2018-12-01 17:00:38 -02:00
StrikerX3
cfbe210eb2
Dump CPU registers and stack on a bug check
2018-12-01 15:57:45 -02:00
StrikerX3
7ea044a01a
Stubbed APU I/O functions
2018-12-01 15:57:19 -02:00
StrikerX3
23c736e434
Added some debugging helpers
2018-12-01 12:52:26 -02:00
StrikerX3
678918a172
Stubbed I/O and MMIO handlers for all devices
2018-12-01 12:52:07 -02:00
StrikerX3
9767740735
Simplify ISA bus IRQ initialization
2018-12-01 11:14:59 -02:00
StrikerX3
b2620af07c
Log spew unimplemented SMC functions
2018-12-01 11:13:24 -02:00
StrikerX3
11ebc970f7
Fix i8259 slave IRQ mapping
...
This fixes hangs early on during kernel initialization
2018-12-01 11:13:06 -02:00