Exemplo n.º 1
0
            public SingleSoundDMA(GBReg Enable_RIGHT, GBReg Enable_LEFT, GBReg Timer_Select, GBReg Reset_FIFO)
            {
                this.Enable_RIGHT = Enable_RIGHT;
                this.Enable_LEFT  = Enable_LEFT;
                this.Timer_Select = Timer_Select;
                this.Reset_FIFO   = Reset_FIFO;

                timerindex = 0;
                fifo       = new List <UInt32>();
                playfifo   = new List <byte>();
                any_on     = false;

                outfifo = new List <byte>();
                outfifo.Add(0);
                tickcount = 0;
            }
Exemplo n.º 2
0
 public static void write_reg(UInt32 value, GBReg reg)
 {
     if (reg.msb < 8)
     {
         GBRegs.data[reg.address] = (byte)value;
     }
     else if (reg.msb < 16)
     {
         GBRegs.data[reg.address]     = (byte)(value & 0xFF);
         GBRegs.data[reg.address + 1] = (byte)((value >> 8) & 0xFF);
     }
     else
     {
         GBRegs.data[reg.address]     = (byte)(value & 0xFF);
         GBRegs.data[reg.address + 1] = (byte)((value >> 8) & 0xFF);
         GBRegs.data[reg.address + 2] = (byte)((value >> 16) & 0xFF);
         GBRegs.data[reg.address + 3] = (byte)((value >> 24) & 0xFF);
     }
 }
Exemplo n.º 3
0
        public SingleTimer(UInt16 irpmask, GBReg CNT_L, GBReg Prescaler, GBReg Count_up, GBReg Timer_IRQ_Enable, GBReg Timer_Start_Stop)
        {
            this.irpmask = irpmask;

            this.CNT_L            = CNT_L;
            this.Prescaler        = Prescaler;
            this.Count_up         = Count_up;
            this.Timer_IRQ_Enable = Timer_IRQ_Enable;
            this.Timer_Start_Stop = Timer_Start_Stop;

            on       = false;
            startnow = false;
            stopnow  = false;
            irp_on   = false;
            reload   = 0;
            value    = -1;
            prescale = 0x10000;
            retval   = 0;
        }
Exemplo n.º 4
0
        public SingleDMA(UInt16 irpmask,
                         GBReg SAD, GBReg DAD, GBReg CNT_L,
                         GBReg Dest_Addr_Control, GBReg Source_Adr_Control, GBReg DMA_Repeat, GBReg DMA_Transfer_Type,
                         GBReg Game_Pak_DRQ, GBReg DMA_Start_Timing, GBReg IRQ_on, GBReg DMA_Enable)
        {
            this.irpmask = irpmask;

            this.SAD   = SAD;
            this.DAD   = DAD;
            this.CNT_L = CNT_L;

            this.Dest_Addr_Control  = Dest_Addr_Control;
            this.Source_Adr_Control = Source_Adr_Control;
            this.DMA_Repeat         = DMA_Repeat;
            this.DMA_Transfer_Type  = DMA_Transfer_Type;
            this.Game_Pak_DRQ       = Game_Pak_DRQ;
            this.DMA_Start_Timing   = DMA_Start_Timing;
            this.IRQ_on             = IRQ_on;
            this.DMA_Enable         = DMA_Enable;

            running = false;
            waiting = false;
        }