61 lines
		
	
	
		
			824 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			824 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "nes_mapper.h"
 | |
|  
 | |
| // Mapper 71
 | |
| void MAP71_Reset()
 | |
| {
 | |
|   // set CPU bank pointers
 | |
|   //set_CPU_banks(0,1,num_8k_ROM_banks-2,num_8k_ROM_banks-1);
 | |
| }
 | |
| 
 | |
| //void MAP71_MemoryWriteSaveRAM(uint32 addr, uint8 data)
 | |
| //{
 | |
| //  set_CPU_bank4(data*2+0);
 | |
| //  set_CPU_bank5(data*2+1);
 | |
| //}
 | |
| 
 | |
| void MAP71_MemoryWrite(uint16 addr, uint8 data)
 | |
| {
 | |
|   switch(addr & 0xF000)
 | |
|   {
 | |
|     case 0x9000:
 | |
|       {
 | |
|         if(data & 0x10)
 | |
|         {
 | |
|           set_mirroring(1,1,1,1);
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|           set_mirroring(0,0,0,0);
 | |
|         }
 | |
|       }
 | |
|       break;
 | |
| 
 | |
|     case 0xC000:
 | |
|     case 0xD000:
 | |
|     case 0xE000:
 | |
|     case 0xF000:
 | |
|       {
 | |
|         set_CPU_bank4(data*2+0);
 | |
|         set_CPU_bank5(data*2+1);
 | |
|       }
 | |
|       break;
 | |
|   }
 | |
| }
 | |
| void MAP71_Init()
 | |
| {
 | |
| 	NES_Mapper->Reset = MAP71_Reset;
 | |
| 	NES_Mapper->Write = MAP71_MemoryWrite; 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |