10
10
11
11
namespace NES {
12
12
13
- MapperSxROM::MapperSxROM (Cartridge & cart, std::function<void (void )> mirroring_cb) :
13
+ MapperSxROM::MapperSxROM (Cartridge* cart, std::function<void (void )> mirroring_cb) :
14
14
Mapper (cart),
15
15
mirroring_callback (mirroring_cb),
16
16
mirroing (HORIZONTAL),
@@ -25,20 +25,20 @@ MapperSxROM::MapperSxROM(Cartridge &cart, std::function<void(void)> mirroring_cb
25
25
second_bank_prg (nullptr ),
26
26
first_bank_chr (nullptr ),
27
27
second_bank_chr (nullptr ) {
28
- if (cart. getVROM ().size () == 0 ) {
28
+ if (cart-> getVROM ().size () == 0 ) {
29
29
has_character_ram = true ;
30
30
character_ram.resize (0x2000 );
31
31
LOG (Info) << " Uses character RAM" << std::endl;
32
32
} else {
33
33
LOG (Info) << " Using CHR-ROM" << std::endl;
34
34
has_character_ram = false ;
35
- first_bank_chr = &cart. getVROM ()[0 ];
36
- second_bank_chr = &cart. getVROM ()[0x1000 * register_chr1];
35
+ first_bank_chr = &cart-> getVROM ()[0 ];
36
+ second_bank_chr = &cart-> getVROM ()[0x1000 * register_chr1];
37
37
}
38
38
// first bank
39
- first_bank_prg = &cart. getROM ()[0 ];
39
+ first_bank_prg = &cart-> getROM ()[0 ];
40
40
// last bank
41
- second_bank_prg = &cart. getROM ()[cart. getROM ().size () - 0x4000 ];
41
+ second_bank_prg = &cart-> getROM ()[cart-> getROM ().size () - 0x4000 ];
42
42
}
43
43
44
44
NES_Byte MapperSxROM::readPRG (NES_Address address) {
@@ -70,22 +70,22 @@ void MapperSxROM::writePRG(NES_Address address, NES_Byte value) {
70
70
// Recalculate CHR pointers
71
71
if (mode_chr == 0 ) { // one 8KB bank
72
72
// ignore last bit
73
- first_bank_chr = &cartridge. getVROM ()[0x1000 * (register_chr0 | 1 )];
73
+ first_bank_chr = &cartridge-> getVROM ()[0x1000 * (register_chr0 | 1 )];
74
74
second_bank_chr = first_bank_chr + 0x1000 ;
75
75
} else { // two 4KB banks
76
- first_bank_chr = &cartridge. getVROM ()[0x1000 * register_chr0];
77
- second_bank_chr = &cartridge. getVROM ()[0x1000 * register_chr1];
76
+ first_bank_chr = &cartridge-> getVROM ()[0x1000 * register_chr0];
77
+ second_bank_chr = &cartridge-> getVROM ()[0x1000 * register_chr1];
78
78
}
79
79
} else if (address <= 0xbfff ) { // CHR Reg 0
80
80
register_chr0 = temp_register;
81
81
// OR 1 if 8KB mode
82
- first_bank_chr = &cartridge. getVROM ()[0x1000 * (temp_register | (1 - mode_chr))];
82
+ first_bank_chr = &cartridge-> getVROM ()[0x1000 * (temp_register | (1 - mode_chr))];
83
83
if (mode_chr == 0 )
84
84
second_bank_chr = first_bank_chr + 0x1000 ;
85
85
} else if (address <= 0xdfff ) {
86
86
register_chr1 = temp_register;
87
87
if (mode_chr == 1 )
88
- second_bank_chr = &cartridge. getVROM ()[0x1000 * temp_register];
88
+ second_bank_chr = &cartridge-> getVROM ()[0x1000 * temp_register];
89
89
} else {
90
90
// TODO: PRG-RAM
91
91
if ((temp_register & 0x10 ) == 0x10 ) {
@@ -110,15 +110,15 @@ void MapperSxROM::writePRG(NES_Address address, NES_Byte value) {
110
110
void MapperSxROM::calculatePRGPointers () {
111
111
if (mode_prg <= 1 ) { // 32KB changeable
112
112
// equivalent to multiplying 0x8000 * (register_prg >> 1)
113
- first_bank_prg = &cartridge. getROM ()[0x4000 * (register_prg & ~1 )];
113
+ first_bank_prg = &cartridge-> getROM ()[0x4000 * (register_prg & ~1 )];
114
114
// add 16KB
115
115
second_bank_prg = first_bank_prg + 0x4000 ;
116
116
} else if (mode_prg == 2 ) { // fix first switch second
117
- first_bank_prg = &cartridge. getROM ()[0 ];
117
+ first_bank_prg = &cartridge-> getROM ()[0 ];
118
118
second_bank_prg = first_bank_prg + 0x4000 * register_prg;
119
119
} else { // switch first fix second
120
- first_bank_prg = &cartridge. getROM ()[0x4000 * register_prg];
121
- second_bank_prg = &cartridge. getROM ()[cartridge. getROM ().size () - 0x4000 ];
120
+ first_bank_prg = &cartridge-> getROM ()[0x4000 * register_prg];
121
+ second_bank_prg = &cartridge-> getROM ()[cartridge-> getROM ().size () - 0x4000 ];
122
122
}
123
123
}
124
124
0 commit comments