35 lines
		
	
	
		
			565 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			565 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "nes_mapper.h"
 | |
|  
 | |
| // Mapper 3
 | |
| void MAP3_Reset()
 | |
| {
 | |
| //  // set CPU bank pointers
 | |
| //  if(num_8k_ROM_banks > 2)
 | |
| //  {
 | |
| //    set_CPU_banks(0,1,2,3);
 | |
| //  }
 | |
| //  else
 | |
| //  {
 | |
| //    set_CPU_banks(0,1,0,1);
 | |
| //  }
 | |
| 
 | |
|   // set VROM banks
 | |
|   set_PPU_banks(0,1,2,3,4,5,6,7);
 | |
| }
 | |
| 
 | |
| void MAP3_MemoryWrite(uint16 addr, uint8 data)
 | |
| {
 | |
|   uint32 base;
 | |
| 
 | |
|   data &= (num_1k_VROM_banks>>1)-1;
 | |
| 
 | |
|   base = ((uint32)data) << 3;
 | |
|   set_PPU_banks(base+0,base+1,base+2,base+3,base+4,base+5,base+6,base+7);
 | |
| }
 | |
| void MAP3_Init()
 | |
| {
 | |
| 	NES_Mapper->Reset=MAP3_Reset;
 | |
| 	NES_Mapper->Write=MAP3_MemoryWrite;
 | |
| }
 | |
| 
 |