Skip to content
Snippets Groups Projects
  • Geo Ster's avatar
    690d9651
    Lay the foundation for the DMAC · 690d9651
    Geo Ster authored
    * The BIOS now continues by initializing the DMA Controller.
    This is one of the most important hardware components of the PS2,
    as it assists the EE with transfering data where it needs to be. I've
    even read that at times it can do more work than the EE itself.
    
    * Since the DMAC isn't used at this stage, we only really have to
    implement its registers and reads/writes to them, which is pretty easy.
    However one register D_CTRL is a bit quirky in a sense that writes to it
    clear/reverse its bits, not overwrite them.
    
    * To emulate this, an additional struct is added to the register unions
    and bitwise operators are used to write to the upper and lower parts of
    the register appropriately. You can look into the source code for more details.
    
    * This allows the EE to start initializing the VU1 which is quite exciting!
    690d9651
    History
    Lay the foundation for the DMAC
    Geo Ster authored
    * The BIOS now continues by initializing the DMA Controller.
    This is one of the most important hardware components of the PS2,
    as it assists the EE with transfering data where it needs to be. I've
    even read that at times it can do more work than the EE itself.
    
    * Since the DMAC isn't used at this stage, we only really have to
    implement its registers and reads/writes to them, which is pretty easy.
    However one register D_CTRL is a bit quirky in a sense that writes to it
    clear/reverse its bits, not overwrite them.
    
    * To emulate this, an additional struct is added to the register unions
    and bitwise operators are used to write to the upper and lower parts of
    the register appropriately. You can look into the source code for more details.
    
    * This allows the EE to start initializing the VU1 which is quite exciting!
dmac.h 1.76 KiB