Commit graph

343 commits

Author SHA1 Message Date
StrikerX3
a1637d3bbb Display EBP on stack dump 2019-01-25 17:34:01 -02:00
StrikerX3
7d15a0d331 Set all Xbox device pointers to nullptr on construction
We should replace them with std::unique_ptr in the future
2019-01-25 17:34:01 -02:00
StrikerX3
c39937c9ea Require C++17 features 2019-01-25 17:34:01 -02:00
StrikerX3
48ebcfd53b Renamed SharedMemory to DynamicVariant 2019-01-25 17:34:01 -02:00
StrikerX3
068dcfce27 Use std::forward and rvalue references to simplify SharedMemory.Allocate invocations with reference arguments 2019-01-25 17:34:01 -02:00
Ivan Roberto de Oliveira
3bf2988b34 Update README.md 2019-01-25 17:34:01 -02:00
StrikerX3
23d81bce64 Make ATA commands use shared memory instead of allocating/deallocating objects every time 2019-01-13 15:09:57 -02:00
StrikerX3
c5f0363c61 Initialize PCI config space of all devices
Based on a DVT4 dump using an official 5558 debug ROM as seen in http://xboxdevwiki.net/PCI
2018-12-30 14:49:18 -02:00
StrikerX3
71d18c70a0 PCI class/subclass bytes were swapped 2018-12-30 11:55:52 -02:00
StrikerX3
0f4942ae1b Return reference to emulator settings instead of pointer 2018-12-30 11:38:18 -02:00
StrikerX3
5049ff3bd9 That serial port change broke serial comm... 2018-12-30 11:37:58 -02:00
StrikerX3
11d870a555 Fix infinite loop and occasional crashes on shutdown in Win32 serial driver 2018-12-29 21:59:57 -02:00
StrikerX3
c39df02a04 Handle CPU_EXIT_ERROR 2018-12-29 21:59:20 -02:00
StrikerX3
9afadeb7af Add 1.1+ compatible EEPROM (commented out for now) 2018-12-29 21:59:04 -02:00
StrikerX3
a0a4b8c909 Improve WHPX initialization 2018-12-29 21:58:35 -02:00
StrikerX3
42139f684b A few minor fixes in NV2A 2018-12-11 13:02:48 -02:00
StrikerX3
db16858dea Disable some logs 2018-12-10 18:19:01 -02:00
StrikerX3
0fc7143228 Implement a basic ADM1032 2018-12-10 18:18:49 -02:00
StrikerX3
673307a2bf Reenable VHD writes 2018-12-10 16:55:40 -02:00
StrikerX3
a7e6b0dd96 Only assert INTRQ on PIO transfers in the PACKET ATA command 2018-12-10 16:34:40 -02:00
StrikerX3
31f456efe6 Fill in more READ DVD STRUCTURE fields 2018-12-10 16:33:55 -02:00
StrikerX3
48ee1f364f Fix READ DVD STRUCTURE CDB 2018-12-10 14:54:01 -02:00
StrikerX3
b5d4d7e442 Disable some log instructions 2018-12-10 14:52:49 -02:00
StrikerX3
b465a540dd Fix large packet data transfers 2018-12-10 13:53:42 -02:00
StrikerX3
b68e17b1e9 Refactored ATAPI commands
READ (10) still doesn't work correctly with large transfers, but it's a huge step in the right direction
2018-12-10 13:33:03 -02:00
StrikerX3
8cf4830d0c This thing really needs a rework... 2018-12-09 19:58:09 -02:00
StrikerX3
84f6dd48bc Fix double INTRQ assertion on certain occasions involving DMA transfers and ATAPI commands
Still doesn't fix broken DMA transfer for the READ DVD STRUCTURE
2018-12-09 19:14:21 -02:00
StrikerX3
bd501ac359 WIP: Poorly implemented READ DVD STRUCTURE
The ATAPI command processing code needs a refactor, similar to the ATA commands
2018-12-09 17:59:19 -02:00
StrikerX3
6398536b97 Fix inconsistent nomenclature 2018-12-09 15:52:30 -02:00
StrikerX3
0281d2ebff READ(10) transfer length was not being set on ValidateCommand
This caused some DMA transfers from the DVD drive to fail
2018-12-09 14:54:18 -02:00
StrikerX3
ad0fbc9a29 More CMOS initialization 2018-12-09 14:30:51 -02:00
StrikerX3
25490129f2 Implemented enough of the CMOS to make the kernel happy 2018-12-09 14:22:03 -02:00
StrikerX3
d94bdf2225 Basic DVD image reader
Implemented SCSI READ(10) command
2018-12-09 11:37:53 -02:00
StrikerX3
52b2549ac5 Fix typo 2018-12-08 22:23:08 -02:00
StrikerX3
cfe29552b5 Fixed a bug on DMA transfers when byte count is zero (which means a transfer of 65536 bytes) 2018-12-08 21:39:30 -02:00
StrikerX3
3acc9559a3 Respond to a few ATAPI commands in the early initialization procedure
Still getting stuck waiting for a DMA read
2018-12-08 14:33:59 -02:00
StrikerX3
d913d6695f Add several definitions for ATAPI / SCSI data structures and constants 2018-12-08 13:55:03 -02:00
StrikerX3
1218931776 Flesh out the Packet Command protocol 2018-12-07 21:30:55 -02:00
Ivan Roberto de Oliveira
1b3eab6227
Update README.md 2018-12-07 16:50:19 -02:00
StrikerX3
00bbebde21 Build Packet protocol skeleton and implement the basics of the Packet command 2018-12-07 16:47:28 -02:00
StrikerX3
f3c1a44acf Fix typo 2018-12-07 16:45:32 -02:00
StrikerX3
cacd467043 Hide some log messages for now 2018-12-07 14:35:27 -02:00
Ivan Roberto de Oliveira
564e86d52b
Update README.md 2018-12-07 14:15:33 -02:00
StrikerX3
15bf901bd2 DMA read/write should consider total number of bytes, not sectors
With this, viXen can now load the dashboard!
2018-12-07 14:03:01 -02:00
StrikerX3
2c25197423 Iron out the kinks, part 4 2018-12-07 13:14:07 -02:00
StrikerX3
ab985d10e9 Iron out the kinks, part 3 2018-12-07 12:45:29 -02:00
StrikerX3
9c10cd1188 Iron out the kinks, part 2 2018-12-07 11:36:38 -02:00
StrikerX3
79ed453fc6 Iron out the kinks, part 1 2018-12-07 11:25:32 -02:00
StrikerX3
a88dea4b4a Convert DMA protocol commands to the new structure
Document the IATACommand interface more clearly

Make SetPIOTransferMode and SetDMATransferMode actually change the values returned by Identify Device

Temporarily disable writes to hard disk image; need to ensure it's not going to wreck the image
2018-12-07 10:54:39 -02:00
StrikerX3
ed468a9c6d WIP: Refactor ATA commands into classes
Implement protocols as base classes on top of a common interface so that command processing and usage is uniform. Commands are much easier to implement on this platform, and most of the complicated state management in ATADevice is eliminated.

Next step is to move the DMA operations out of ATADevice and have ATAChannel delegate them to the current command
2018-12-07 00:53:45 -02:00