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