Spring cleaning
@ -1,7 +1,8 @@
|
|||||||
![image](https://dl.dropboxusercontent.com/s/w39fnwop0yypt8a/free.png?dl=1) ![image](https://dl.dropboxusercontent.com/s/94j412n2inh681p/c3378c2cb507ebb.pn?dl=1)
|
![image](https://dl.dropboxusercontent.com/s/w39fnwop0yypt8a/free.png?dl=1) ![image](https://dl.dropboxusercontent.com/s/94j412n2inh681p/c3378c2cb507ebb.pn?dl=1)
|
||||||
|
|
||||||
# Open Source Cartridge Reader
|
# Open Source Cartridge Reader
|
||||||
This project represents a community-driven effort to provide an easy to build and easy to modify cartridge dumper. All the Arduino source code along with the PCB design files and detailed build guides can be found in this Github. Happy making. 🔧🔨😊
|
This project represents a community-driven effort to provide an easy to build and easy to modify cartridge dumper.
|
||||||
|
Happy making. 🔧🔨😊
|
||||||
|
|
||||||
[![image](https://dl.dropboxusercontent.com/s/0udh1gkl7kem90v/cartbatttop.jpg?dl=1)](https://dl.dropboxusercontent.com/s/p1s0selosoxr86f/1.jpg?dl=1)
|
[![image](https://dl.dropboxusercontent.com/s/0udh1gkl7kem90v/cartbatttop.jpg?dl=1)](https://dl.dropboxusercontent.com/s/p1s0selosoxr86f/1.jpg?dl=1)
|
||||||
|
|
||||||
@ -43,5 +44,3 @@ And be sure to check the guides in the [Wiki](https://github.com/sanni/cartreade
|
|||||||
- Reads NeoGeo Pocket cartridges
|
- Reads NeoGeo Pocket cartridges
|
||||||
- Programs flashrom chips like AM29F016B/D, AM29F032B, MBM29F033C, MX29F1601, MX29F1610, MX29L3211, MX29LV160, MX29LV320, S29GL032M, MX26L6420, MBM29F800BA, AM29F800BB, LH28F016SUT, AM29F400AB, E28FXXXJ3A and AM29LV033C
|
- Programs flashrom chips like AM29F016B/D, AM29F032B, MBM29F033C, MX29F1601, MX29F1610, MX29L3211, MX29LV160, MX29LV320, S29GL032M, MX26L6420, MBM29F800BA, AM29F800BB, LH28F016SUT, AM29F400AB, E28FXXXJ3A and AM29LV033C
|
||||||
- Programs M27C322 eproms
|
- Programs M27C322 eproms
|
||||||
|
|
||||||
[![](https://dl.dropboxusercontent.com/s/h2e08skmn9pbi2y/savegameyouprev.jpg?dl=1)](https://www.youtube.com/watch?v=r0J9Dplejjg)
|
|
||||||
|
BIN
cartreader.skp
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 45 KiB |
@ -1,5 +0,0 @@
|
|||||||
#### pocketsnes.zip is a smaller variant of the Cart Reader PCB made by Niltonn. To order the PCB please refer to: https://docs.easyeda.com/en/PCB/Order-PCB
|
|
||||||
|
|
||||||
![image](https://dl.dropboxusercontent.com/s/g0bhixbcrzjuye8/pocketsnes.jpg?dl=1)
|
|
||||||
|
|
||||||
More info: https://forum.arduino.cc/index.php?topic=158974.msg4381465#msg4381465
|
|
BIN
sd/NBAJAMTE.eep
105
sd/README.md
@ -31,105 +31,18 @@ Savetypes:
|
|||||||
5 = 4K Eeprom
|
5 = 4K Eeprom
|
||||||
6 = 16K Eeprom
|
6 = 16K Eeprom
|
||||||
|
|
||||||
|
#### nes20db.txt
|
||||||
|
Database for NES cartridges.
|
||||||
|
|
||||||
|
#### PCE_CRC_LIST.txt
|
||||||
|
Placing this file into the root of the SD card will enable verify and automatic game name identifier.
|
||||||
|
|
||||||
#### snes.txt
|
#### snes.txt
|
||||||
This file is needed for odd sized SNES games like Final Fantasy (JAP), Super Metroid(US/JAP) or Tales of Symphonia. Without this file you will get overdumps and the checksum calculation will fail. This list was generated by a simple script and might contain many errors.
|
This file is needed for odd sized SNES games like Final Fantasy (JAP), Super Metroid(US/JAP) or Tales of Symphonia. Without this file you will get overdumps and the checksum calculation will fail. This list was generated by a simple script and might contain many errors.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
A172,24,48
|
A172,24,48
|
||||||
checksum, size in Mbit, number of banks (lorom needs twice as many banks as hirom for the same rom size, lorom: 32kb banks, hirom: 64kb banks)
|
checksum, size in Mbit, number of banks (lorom needs twice as many banks as hirom for the same rom size, lorom: 32kb banks, hirom: 64kb banks)
|
||||||
|
|
||||||
#### PCE_CRC_LIST.txt
|
#### snes_clk.txt
|
||||||
Placing this file into the root of the SD card will enable verify and automatic game name identifier.
|
Calibration data for clock generator.
|
||||||
|
|
||||||
#### hirom64.map
|
|
||||||
This is a Nintendo Power SF Memory mapping file that changes the mapping to a single 4MB HiRom game with 64Kbit/8KByte save. The first byte is used to specify the mapping.
|
|
||||||
|
|
||||||
Bit0-1 SRAM Size (0=2K, 1=8K, 2=32K, 3=None) ;ie. 2K SHL (N*2)
|
|
||||||
Bit2-4 ROM Size (0=512K, 2=1.5M, 5=3M, 7=4M) ;ie. 512K*(N+1)
|
|
||||||
Bit5 Zero (maybe MSB of ROM Size for carts with three FLASH chips) (set for HIROM:ALL)
|
|
||||||
Bit6-7 Mode (0=Lorom, 1=Hirom, 2=Forced HIROM:MENU, 3=Forced HIROM:ALL)
|
|
||||||
More info: http://problemkaputt.de/fullsnes.htm#snescartnintendopowerflashcard
|
|
||||||
|
|
||||||
Example:
|
|
||||||
0x5d = 0b 01 0 111 01
|
|
||||||
01 -> Hirom
|
|
||||||
0
|
|
||||||
111 -> 4M
|
|
||||||
01 -> 8K
|
|
||||||
|
|
||||||
#### lorom256.map
|
|
||||||
This is a Nintendo Power SF Memory mapping file that changes the mapping to a single 4MB LoRom game with 256Kbit/32 KByte save.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
0x1e = 0b 00 0 111 10
|
|
||||||
00 -> Lorom
|
|
||||||
0
|
|
||||||
0b111 -> 7 -> 4M
|
|
||||||
0x10 -> 2 ->32k
|
|
||||||
|
|
||||||
#### mbc5.map
|
|
||||||
This is a Nintendo Power GB Memory mapping file that changes the mapping to a single 1MB MBC5 game with 32 KByte save.
|
|
||||||
|
|
||||||
GB Mapping Info (by skaman)
|
|
||||||
Entries start at 0x0 divided into 3 Byte segments
|
|
||||||
|
|
||||||
For example, let's look at the start of the mapping for a multi-game cart:
|
|
||||||
A8 00 00 71 04 00 48 94 04 separates into
|
|
||||||
A8 00 00 MENU
|
|
||||||
71 04 00 GAME 1
|
|
||||||
48 94 04 GAME 2
|
|
||||||
|
|
||||||
Byte 00 of each entry contains the MBC Type, ROM Size, and SRAM Size (start).
|
|
||||||
SRAM Size is 3 bits across Byte 00 and Byte 01.
|
|
||||||
MBC SZE SRAM
|
|
||||||
A8 = 101 010 00 0 MBC5, size 2 = 128KB
|
|
||||||
71 = 011 100 01 0 MBC3, size 4 = 512KB, SRAM 8KB
|
|
||||||
48 = 010 010 00 1 MBC2, size 2 = 128KB, SRAM MBC2
|
|
||||||
|
|
||||||
Byte 00: 1st 3 Bits = MBC Type
|
|
||||||
000 = MBC0
|
|
||||||
001 = MBC1
|
|
||||||
010 = MBC2
|
|
||||||
011 = MBC3
|
|
||||||
101 = MBC5
|
|
||||||
|
|
||||||
Byte 00: 2nd 3 Bits = ROM Size (minimum size is 128KB due to block size)
|
|
||||||
010 = Size 2 - 128KB
|
|
||||||
011 = Size 3 - 256KB
|
|
||||||
100 = Size 4 - 512KB
|
|
||||||
101 = Size 5 - 1MB
|
|
||||||
|
|
||||||
Byte 00: Last 2 Bits (bit1..bit0) + Byte 01: 1st Bit (bit7) = SRAM Size
|
|
||||||
00 0 = NONE
|
|
||||||
00 1 = SRAM MBC2
|
|
||||||
01 0 = SRAM 8KB
|
|
||||||
01 1 = SRAM 32KB
|
|
||||||
|
|
||||||
Byte 01 contains the SRAM Size (end) and ROM Block in the Flash.
|
|
||||||
ROM Blocks are 128KB (8 total)
|
|
||||||
Byte 01: Last 7 Bits (bit6..bit0) = ROM Block
|
|
||||||
00 = ROM Block 0 start offset 0KB
|
|
||||||
04 = ROM Block 1 start offset 128KB
|
|
||||||
08 = ROM Block 2 start offset 256KB
|
|
||||||
0C = ROM Block 3 start offset 384KB
|
|
||||||
10 = ROM Block 4 start offset 512KB
|
|
||||||
14 = ROM Block 5 start offset 640KB
|
|
||||||
18 = ROM Block 6 start offset 768KB
|
|
||||||
1C = ROM Block 7 start offset 896KB
|
|
||||||
|
|
||||||
Byte 02 contains the RAM Block in the SRAM.
|
|
||||||
RAM Blocks are 8KB (16 total)
|
|
||||||
Byte 02: RAM Block:
|
|
||||||
00 = RAM Block 0 start offset 0KB
|
|
||||||
04 = RAM Block 1 start offset 8KB
|
|
||||||
08 = RAM Block 2 start offset 16KB
|
|
||||||
0C = RAM Block 3 start offset 24KB
|
|
||||||
and so on until RAM Block 15.
|
|
||||||
|
|
||||||
Going back to our example cart:
|
|
||||||
A8 00 00 MENU: MBC5, size 2 = 128KB, ROM Block 0, RAM Block 0 (Ignored since SRAM is 000)
|
|
||||||
71 04 00 GAME 1: MBC3, size 4 = 512KB, SRAM 8KB, ROM Block 1, RAM Block 0
|
|
||||||
48 94 04 GAME 2: MBC2, size 2 = 128KB, SRAM MBC2, ROM Block 5, RAM Block 1
|
|
||||||
|
|
||||||
#### NBAJAMTE.eep
|
|
||||||
NBA Jam T.E. Rev 0 has faulty code that will erase the EEPROM when the cart is played on the console. Solution: Write the included save file to the cart. Play the cart on the console as normal. Create new saves as needed. When done playing, HOLD THE RESET BUTTON DOWN BEFORE TURNING THE CONSOLE OFF.
|
|