Use DMA for GPU
This commit is contained in:
@@ -18,9 +18,11 @@ namespace DMA {
|
||||
static constexpr auto CD_OneBlock = Bit<uint16_t>(16);
|
||||
};
|
||||
|
||||
struct __no_align SyncMode1 {
|
||||
static constexpr auto BlockSize = BitRange<uint16_t>::from_to(0, 15);
|
||||
static constexpr auto BlockAmount = BitRange<uint16_t>::from_to(16, 31);
|
||||
struct __no_align SyncMode1 : public ComplexBitMap<uint32_t> {
|
||||
__io_port_inherit_complex_bit_map(SyncMode1);
|
||||
|
||||
static constexpr auto BlockSize = BitRange<uint32_t>::from_to(0, 15);
|
||||
static constexpr auto BlockAmount = BitRange<uint32_t>::from_to(16, 31);
|
||||
};
|
||||
|
||||
struct __no_align SyncMode2 {
|
||||
@@ -83,9 +85,9 @@ namespace DMA {
|
||||
};
|
||||
|
||||
struct __no_align Registers {
|
||||
MADR adr;
|
||||
BCR block_ctrl;
|
||||
CHCHR channel_ctrl;
|
||||
IOPort<MADR> adr;
|
||||
IOPort<BCR> block_ctrl;
|
||||
IOPort<CHCHR> channel_ctrl;
|
||||
};
|
||||
|
||||
//0: Highest, 7: Lowest
|
||||
@@ -130,7 +132,7 @@ namespace DMA {
|
||||
|
||||
__declare_io_port_global(Registers, MDECin, 0x1F801080);
|
||||
__declare_io_port_global(Registers, MDECout, 0x1F801090);
|
||||
__declare_io_port_global(Registers, GPU, 0x1F8010A0);
|
||||
__declare_io_port_global_struct(Registers, GPU, 0x1F8010A0);
|
||||
__declare_io_port_global(Registers, CDROM, 0x1F8010B0);
|
||||
__declare_io_port_global(Registers, SPU, 0x1F8010C0);
|
||||
__declare_io_port_global(Registers, PIO, 0x1F8010D0);
|
||||
|
||||
Reference in New Issue
Block a user