Commit Graph

1306 Commits

Author SHA1 Message Date
BacteriaMage
ab5f94af85 fix superfx sram size detection
The header offsets were wrong so the size wasn't correctly computed and generally ended up defaulting to 32KB. Stunt Race FX, at least, uses 64KB and so only half the save data was being read.
2022-10-25 19:54:40 -05:00
nsx0r
cc6494857f
PRG 97 = 180 -> merged code
PRG 97 = 180 -> merged code
2022-10-25 19:59:52 +02:00
nsx0r
9506005c6b
fixed NES mapper 200
fixed NES mapper 200
2022-10-25 12:28:38 +02:00
nsx0r
6590f7e583
added 2 missing mapper labels
added 2 missing mapper labels
2022-10-25 09:33:22 +02:00
sanni
9cabf64a0e
Merge pull request #583 from nsx0r/patch-21
fixed NES mapper 203
2022-10-24 16:36:50 +02:00
sanni
012f73437a
Merge pull request #582 from nsx0r/patch-20
added NES mapper 202
2022-10-24 16:36:40 +02:00
nsx0r
afe7440ead
fixed NES mapper 203
fixed NES mapper 203
2022-10-24 15:04:51 +02:00
nsx0r
cda710940c
added NES mapper 202
added NES mapper 202
2022-10-24 14:50:33 +02:00
sanni
820fceef29
Merge pull request #581 from nsx0r/patch-19
added 8 more NES mappers
2022-10-23 20:58:25 +02:00
nsx0r
3396aeb532
added 8 more NES mappers
added NES mappers 58 + 200 + 201 + 203 + 213 + 225 + 229 + 232
2022-10-23 20:57:34 +02:00
sanni
b686017fab
Merge pull request #576 from nsx0r/patch-18
Added NES mapper 60
2022-10-22 11:01:53 +02:00
nsx0r
707b314a7a
Added NES mapper 60
Added NES mapper 60 for reset-based NROM-128 4-in-1 multicarts.
Tested working on 7 different NES carts.
2022-10-22 09:01:18 +02:00
sanni
3b0a046d79
Merge pull request #573 from nsx0r/patch-17
added NES mapper 242
2022-10-21 00:54:35 +02:00
nsx0r
7264477bc1
added NES mapper 242
added NES mapper 242, tested working with "1992" 190-in-1 multicart (ET-113 PCB), both on FC and NES
2022-10-21 00:43:45 +02:00
sanni
c659aee96e
Merge pull request #572 from nsx0r/patch-16
Added NES mapper 235
2022-10-20 14:04:07 +02:00
nsx0r
c2648157c9
Added NES mapper 235
Added NES mapper 235, tested working with Golden Game 260-in-1 (GS-2018 PCB)
2022-10-20 14:01:23 +02:00
sanni
9c74fd8847
Merge pull request #571 from nsx0r/patch-15
added NES mapper 62
2022-10-19 14:45:20 +02:00
nsx0r
84da646ac9
added NES mapper 62
added NES mapper 62, tested working with a multicart using K-1017P PCB
also expanded max PRG size for these big multicarts
2022-10-19 14:43:42 +02:00
sanni
7cd5734aa5
Merge pull request #570 from nsx0r/patch-14
added NES mapper 15
2022-10-19 11:36:02 +02:00
nsx0r
8064397836
added NES mapper 15
added NES mapper 15, tested working with 2 carts using a K-1030P PCB
2022-10-19 11:08:13 +02:00
sanni
80886549c5 Change N64 controller connector pitch to 2.54mm 2022-10-17 14:29:40 +02:00
sanni
57f2833322 Update MD.ino 2022-10-16 14:51:15 +02:00
sanni
9d80d2497b
Change Street Fighter Alpha/Zero 2 to 64 banks, fix Star Ocean typo 2022-10-14 10:16:59 +02:00
sanni
f5aa69f827
Change Star Ocean to 96 banks 2022-10-14 09:23:41 +02:00
sanni
3bf6004e79 Fix menu navigation bug 2022-10-13 10:31:17 +02:00
sanni
4badfff458 Move to Arduino IDE 2.0.0 (different auto formatting, no code changes) 2022-10-13 09:49:03 +02:00
sanni
6ddb206a63
Merge pull request #558 from nsx0r/patch-13
added NES mapper 11
2022-10-12 23:08:33 +02:00
nsx0r
e279359f16
added NES mapper 11
added NES mapper 11 (Color Dreams)
tested working with Shockwave
2022-10-12 23:07:43 +02:00
sanni
f6c239ecfe
Merge pull request #557 from nsx0r/patch-12
added mapper 146
2022-10-12 22:13:10 +02:00
nsx0r
67905aee5a
added mapper 146
not tested but identical to mapper 79 according to https://www.nesdev.org/wiki/NINA-003-006
2022-10-12 22:11:35 +02:00
sanni
5413cc4734
Merge pull request #556 from nsx0r/patch-11
added NES mapper 79
2022-10-12 19:50:12 +02:00
nsx0r
3bbad14bb8
added NES mapper 79
added NES mapper 79: NINA-03 and NINA-06 circuit boards, produced by American Video Entertainment.
tested working with Deathbots and Dudes with Attitude
2022-10-12 19:49:32 +02:00
sanni
e4adfce8dd
Update README.md 2022-10-12 10:16:08 +02:00
sanni
24642b8607
Update README.md 2022-10-10 13:30:44 +02:00
sanni
26d025e82f Update Cart_Reader.ino 2022-10-09 11:38:25 +02:00
sanni
be9e384783 Update Cart_Reader.ino 2022-10-09 11:23:42 +02:00
sanni
1769d2f273 Update Cart_Reader.ino 2022-10-09 10:49:20 +02:00
sanni
21e7468dfd Fix flicker in Controller Test 2022-10-08 23:07:15 +02:00
sanni
a49d8c6590 Remove crc file after successful Controller Pak read 2022-10-08 19:20:21 +02:00
sanni
2c009230cd Fix bugged map select screen on HW3 with new display lib 2022-10-08 18:19:31 +02:00
sanni
bdee198286
Update README.md 2022-10-08 16:25:41 +02:00
sanni
0ab7a18b05 V10.1 Move HW1/2/3 to same display lib as HW4/5
... bugs are to be expected :D
2022-10-08 16:23:33 +02:00
sanni
18b37c72d8 Selecting [?] now forwards to manual mapper config for NES 2022-10-07 10:15:18 +02:00
sanni
b7fa65a3de Add MMC3 auto detect 2022-10-06 19:58:04 +02:00
sanni
1a8d127011 Increase romName array size from 17 to 22
Crashed with Lufia II(Estpolis II) before.
2022-10-06 10:20:02 +02:00
sanni
132b2e7031
Only wanted to change MMC3, not the other MMCs (yet)
````
 // Convert iNES to useful info (thx to fceux)
    mapper = (romFile[6] >> 4);
    mapper |= (romFile[7] & 0xF0);
    mapper |= ((romFile[8] & 0x0F) << 8);

    // PRG size
    if ((romFile[9] & 0x0F) != 0x0F) {
      // simple notation
      prgsize = (romFile[4] | ((romFile[9] & 0x0F) << 8)); //*16
    }
    else {
      // exponent-multiplier notation
      prgsize = (((1 << (romFile[4] >> 2)) * ((romFile[4] & 0x3) * 2 + 1)) >> 14); //*16
    }
    if (prgsize != 0)
      prgsize = (int(log(prgsize) / log(2)));
              
    prgsize = (int_pow(2, prgsize)) * 16;
    
    byte[] first512 = new byte[512];
     
    // MMC1
    //if(mapper == 1){}
     // MMC2
    //else if(mapper == 9){}
    // MMC3
    if(mapper == 4){
      int startoffset = (prgsize/8 - 1) *8 *1024;  
      // Get crc32 of first 512 bytes
      for(int l = 0; l < 512; l++){
        first512[l] = romFile2[startoffset + l];
      }  
    }
    // MMC4
    //else if(mapper == 10){}
    // MMC5
    //else if(mapper == 5){}
    else {
      // Get crc32 of first 512 bytes
      for(int l = 0; l < 512; l++){
      first512[l] = romFile2[l];
      }
    }
    
    CRC32 crc2 = new CRC32();
    crc2.update(first512); 
    checksum512 = String.format("%08X", crc2.getValue());
````
2022-10-05 08:46:35 +02:00
sanni
f52df29266
Add auto mapper detecting for MMC3 carts
"E000-FFFF is always fixed to the last bank of ROM." Source: http://kevtris.org/mappers/mmc3/index.html
Therefore calculate CRC32 of the first 512 bytes of the last bank of the PRG ROM instead of the first bank.

Database creation code example:

````
// Convert iNES to useful info (thx to fceux)
    mapper = (romFile[6] >> 4);
    mapper |= (romFile[7] & 0xF0);
    mapper |= ((romFile[8] & 0x0F) << 8);

    // PRG size
    if ((romFile[9] & 0x0F) != 0x0F) {
      // simple notation
      prgsize = (romFile[4] | ((romFile[9] & 0x0F) << 8)); 
    }
    else {
      // exponent-multiplier notation
      prgsize = (((1 << (romFile[4] >> 2)) * ((romFile[4] & 0x3) * 2 + 1)) >> 14); 
    }
    if (prgsize != 0)
      prgsize = (int(log(prgsize) / log(2)));
              
    prgsize = (int_pow(2, prgsize)) * 16;
    
    byte[] first512 = new byte[512];
     
    // MMC1
    if(mapper == 1){
    }
     // MMC2
    if(mapper == 9){
    }
    // MMC3
    if(mapper == 4){
	// MMC3 has 8KB banks
      int startoffset = (prgsize/8 - 1) *8 *1024;  
      // Get crc32 of first 512 bytes of last PRG bank
      for(int l = 0; l < 512; l++){
        first512[l] = romFile[16 + startoffset + l];
      }  
    }
    // MMC4
    else if(mapper == 10){
    }
    // MMC5
    else if(mapper == 5){
    }
    else {
      // Get crc32 of first 512 bytes after iNES header
      for(int l = 0; l < 512; l++){
      first512[l] = romFile[16 + l];
      }
    }
````
2022-10-04 22:31:23 +02:00
sanni
3d7c424344 Update NES.ino 2022-10-04 21:11:13 +02:00
sanni
bef9d0f5f9 Don't log manual mapper selection to file for NES/GBA 2022-10-04 20:30:53 +02:00
sanni
20898cf3d3 Update NES.ino 2022-10-04 15:48:11 +02:00