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);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								/////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 |