From 37a8b400a472664513b786c3252696b4cc8bd95c Mon Sep 17 00:00:00 2001 From: Justin Beeson Date: Thu, 17 Sep 2026 13:54:17 -0700 Subject: [PATCH] Add ChisFlash MBC5 MAX flash cart profiles Two configurations for the 32 MiB ChisFlash MBC5 MAX, one per flash chip it ships with. Both were provided by GBMake, who sell the cartridge, and are included here unmodified. - 28EW256A, flash ID 89 89 7E 7E - S29GL256N, flash ID 01 01 7E 7E --- .../fc_DMG_ChisFlash-MBC5-MAX_28EW256A.txt | 95 +++++++++++++++++++ .../fc_DMG_ChisFlash-MBC5-MAX_S29GL256N.txt | 93 ++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_28EW256A.txt create mode 100644 FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_S29GL256N.txt diff --git a/FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_28EW256A.txt b/FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_28EW256A.txt new file mode 100644 index 00000000..d85806dc --- /dev/null +++ b/FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_28EW256A.txt @@ -0,0 +1,95 @@ +{ + "type":"DMG", + "names":[ + "ChisMBC5 MAX(32 MiB)(28EW256A)" + ], + "flash_ids":[ + [ 0x89, 0x89, 0x7E, 0x7E ] + ], + "voltage":3.3, + "voltage_variants":true, + "flash_size":0x2000000, + "buffer_size":0x100, + "start_addr":0, + "first_bank":0, + "write_pin":"WR", + "sector_size":0x20000, + "chip_erase_timeout":120, + "mbc":"manual", + "command_set":"AMD", + "commands":{ + "reset":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0x0, 0xF0 ] + ], + "read_identifier":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x90 ] + ], + "read_cfi":[ + [ 0xAAA, 0x98 ] + ], + "sector_erase":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x80 ], + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ "SA", 0x30 ] + ], + "sector_erase_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ "SA", 0xFF, 0xFF ] + ], + "chip_erase":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x80 ], + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x10 ] + ], + "chip_erase_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ 0, 0xFF, 0xFF ] + ], + "buffer_write":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ "SA", 0x25 ], + [ "SA", "BS-1" ], + [ "PA", "PD" ], + [ "SA", 0x29 ] + ], + "buffer_write_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ "SA", "PD", 0xFF ] + ], + "single_write":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0xA0 ], + [ "PA", "PD" ] + ], + "single_write_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ] + ] + } +} diff --git a/FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_S29GL256N.txt b/FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_S29GL256N.txt new file mode 100644 index 00000000..e9a9a118 --- /dev/null +++ b/FlashGBX/config/fc_DMG_ChisFlash-MBC5-MAX_S29GL256N.txt @@ -0,0 +1,93 @@ +{ + "type":"DMG", + "names":[ + "ChisMBC5 MAX(32 MiB)(S29GL256N)" + ], + "flash_ids":[ + [ 0x01, 0x01, 0x7E, 0x7E ] + ], + "voltage":3.3, + "voltage_variants":true, + "flash_size":0x2000000, + "buffer_size":0x20, + "start_addr":0, + "first_bank":0, + "write_pin":"WR", + "sector_size":0x20000, + "chip_erase_timeout":120, + "mbc":"manual", + "command_set":"AMD", + "commands":{ + "reset":[ + [ 0x0, 0xF0 ] + ], + "read_identifier":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x90 ] + ], + "read_cfi":[ + [ 0xAAA, 0x98 ] + ], + "sector_erase":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x80 ], + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ "SA", 0x30 ] + ], + "sector_erase_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ "SA", 0xFF, 0xFF ] + ], + "chip_erase":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x80 ], + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0x10 ] + ], + "chip_erase_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ 0, 0xFF, 0xFF ] + ], + "buffer_write":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ "SA", 0x25 ], + [ "SA", "BS" ], + [ "PA", "PD" ], + [ "SA", 0x29 ] + ], + "buffer_write_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ "SA", "PD", 0xFF ] + ], + "single_write":[ + [ 0xAAA, 0xAA ], + [ 0x555, 0x55 ], + [ 0xAAA, 0xA0 ], + [ "PA", "PD" ] + ], + "single_write_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ null, null, null ] + ] + } +}