31 lines
		
	
	
		
			695 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			695 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
 | |
| /////////////////////////////////////////////////////////////////////
 | |
| // Mapper 232
 | |
| void NES_mapper232::Reset()
 | |
| {
 | |
|   // set CPU bank pointers
 | |
|   set_CPU_banks(0,1,num_8k_ROM_banks-2,num_8k_ROM_banks-1);
 | |
| 
 | |
|   regs[0] = 0x0C;
 | |
|   regs[1] = 0x00;
 | |
| }
 | |
| 
 | |
| void NES_mapper232::MemoryWrite(uint32 addr, uint8 data)
 | |
| {
 | |
|   if(addr == 0x9000)
 | |
|   {
 | |
|     regs[0] = (data & 0x18) >> 1;
 | |
|   }
 | |
|   else if(0xA000 <= addr && addr <= 0xFFFF)
 | |
|   {
 | |
|     regs[1] = data & 0x03;
 | |
|   }
 | |
| 
 | |
|   set_CPU_bank4((regs[0] | regs[1]) * 2 + 0);
 | |
|   set_CPU_bank5((regs[0] | regs[1]) * 2 + 1);
 | |
|   set_CPU_bank6((regs[0] | 0x03) * 2 + 0);
 | |
|   set_CPU_bank7((regs[0] | 0x03) * 2 + 1);
 | |
| }
 | |
| /////////////////////////////////////////////////////////////////////
 | |
| 
 |