From b897209fa6a55a9fec236b8f09270d1d8832edbb Mon Sep 17 00:00:00 2001 From: Lesserkuma Date: Wed, 1 Dec 2021 18:55:25 +0100 Subject: [PATCH] 3.1 --- CHANGES.md | 9 ++++ FlashGBX/FlashGBX_GUI.py | 17 ++++--- FlashGBX/Util.py | 2 +- FlashGBX/config/fc_AGB_M36W0R603.txt | 59 ++++++++++++++++++++++ FlashGBX/config/fc_DMG_AM29LV160MB.txt | 6 ++- FlashGBX/config/fc_DMG_AT49F040_AUDIO.txt | 6 ++- FlashGBX/config/fc_DMG_MX29LV320BTC.txt | 4 +- FlashGBX/hw_GBxCartRW.py | 51 ++++++++++--------- FlashGBX/hw_GBxCartRW_ofw.py | 2 +- FlashGBX/res/config.zip | Bin 132920 -> 133967 bytes FlashGBX/res/fw_GBxCart_RW_v1_4.zip | Bin 21929 -> 22441 bytes FlashGBX/res/fw_GBxCart_RW_v1_4a.zip | Bin 22441 -> 22441 bytes README.md | 12 +++-- setup.py | 4 +- 14 files changed, 128 insertions(+), 44 deletions(-) create mode 100644 FlashGBX/config/fc_AGB_M36W0R603.txt diff --git a/CHANGES.md b/CHANGES.md index 29524f2..6a9b903 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,13 @@ # Release notes +### v3.1 (released 2021-12-01) +- Added support for the GBxCart RW Mini v1.0d hardware revision +- Added support for insideGadgets 4 MB (2× 2 MB), 32 KB FRAM, MBC5 flash cartridges *(thanks AlexiG)* +- Bundles GBxCart RW v1.4 firmware version R33+L4 (fixes an issue with accessing save data of some FRAM cartridge modifications) +- Added support for SD007_TSOP_48BALL with AM29LV160DT *(thanks crizzlycruz)* +- Confirmed support for SD007_TSOP_48BALL_V10 with 29LV320CTXEI *(thanks marv17)* +- Added support for AA1030_TSOP88BALL with M36W0R603 *(thanks LucentW)* +- Added support for Ferrante Crafts cart with SST39SF010A *(thanks skite2001)* + ### v3.0 (released 2021-11-15) - Added support for the GBxCart RW v1.4a hardware revision - Bundles GBxCart RW v1.4 firmware version R32+L3 (improves ROM writing speed for Development AGB Cartridge 256M Flash S, E201868) diff --git a/FlashGBX/FlashGBX_GUI.py b/FlashGBX/FlashGBX_GUI.py index 483c298..0d5c908 100644 --- a/FlashGBX/FlashGBX_GUI.py +++ b/FlashGBX/FlashGBX_GUI.py @@ -645,11 +645,10 @@ class FlashGBX_GUI(QtWidgets.QWidget): self.btnConfig.setEnabled(True) self.btnCancel.setEnabled(False) - if self.CONN.CanPowerCycleCart(): - self.mnuConfig.actions()[6].setEnabled(True) - else: - self.mnuConfig.actions()[6].setEnabled(False) - self.mnuConfig.actions()[6].setChecked(False) + # Firmware Update Menu + self.mnuTools.actions()[2].setEnabled(True) + if self.CONN.SupportsFirmwareUpdates() is False: + self.mnuTools.actions()[2].setEnabled(False) self.SetProgressBars(min=0, max=1, value=0) @@ -1727,7 +1726,7 @@ class FlashGBX_GUI(QtWidgets.QWidget): # Save Type msg_save_type_s = "" - if not canSkipMessage and save_type is not False: + if not canSkipMessage and save_type is not False and save_type is not None: if save_chip is not None: temp = "{:s} ({:s})".format(Util.AGB_Header_Save_Types[save_type], save_chip) else: @@ -2030,7 +2029,11 @@ class FlashGBX_GUI(QtWidgets.QWidget): except: return False else: - FirmwareUpdater = self.CONN.GetFirmwareUpdaterClass()[1] + if not self.CONN.SupportsFirmwareUpdates(): + QtWidgets.QMessageBox.information(self, "{:s} {:s}".format(APPNAME, VERSION), "{:s} currently does not support updaing the firmware of your device.".format(APPNAME), QtWidgets.QMessageBox.Ok) + return False + else: + FirmwareUpdater = self.CONN.GetFirmwareUpdaterClass()[1] self.FWUPWIN = None self.FWUPWIN = FirmwareUpdater(self, app_path=self.APP_PATH, icon=self.windowIcon(), device=self.CONN) self.FWUPWIN.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) diff --git a/FlashGBX/Util.py b/FlashGBX/Util.py index 457c585..0045610 100644 --- a/FlashGBX/Util.py +++ b/FlashGBX/Util.py @@ -7,7 +7,7 @@ from enum import Enum # Common constants APPNAME = "FlashGBX" -VERSION_PEP440 = "3.0" +VERSION_PEP440 = "3.1" VERSION = "v{:s}".format(VERSION_PEP440) DEBUG = False diff --git a/FlashGBX/config/fc_AGB_M36W0R603.txt b/FlashGBX/config/fc_AGB_M36W0R603.txt new file mode 100644 index 0000000..b93b445 --- /dev/null +++ b/FlashGBX/config/fc_AGB_M36W0R603.txt @@ -0,0 +1,59 @@ +{ + "type":"AGB", + "names":[ + "AA1030_TSOP88BALL with M36W0R603" + ], + "flash_ids":[ + [ 0x20, 0x00, 0x10, 0x88 ] + ], + "voltage":3.3, + "flash_size":0x800000, + "sector_size_from_cfi":true, + "reset_every":0x100000, + "command_set":"INTEL", + "commands":{ + "reset":[ + [ 0, 0x50 ], + [ 0, 0xFF ] + ], + "read_identifier":[ + [ 0, 0x90 ] + ], + "sector_erase":[ + [ "SA", 0x60 ], + [ "SA", 0xD0 ], + [ "SA", 0x20 ], + [ "SA", 0xD0 ] + ], + "sector_erase_wait_for":[ + [ null, null, null ], + [ null, null, null ], + [ null, null, null ], + [ "SA", 0x80, 0xFFFF ] + ], + "buffer_write":[ + [ "SA", 0xE8 ], + [ "SA", "BS" ], + [ "PA", "PD" ], + [ "SA", 0xD0 ], + [ "SA", 0xFF ] + ], + "buffer_write_wait_for":[ + [ "SA", 0x80, 0xFFFF ], + [ null, null, null ], + [ null, null, null ], + [ "SA", 0x80, 0xFFFF ], + [ null, null, null ] + ], + "single_write":[ + [ 0, 0x70 ], + [ 0, 0x10 ], + [ "PA", "PD" ] + ], + "single_write_wait_for":[ + [ 0, 0x80, 0x80 ], + [ null, null, null ], + [ null, null, null ] + ] + } +} diff --git a/FlashGBX/config/fc_DMG_AM29LV160MB.txt b/FlashGBX/config/fc_DMG_AM29LV160MB.txt index 3699be0..0477f98 100644 --- a/FlashGBX/config/fc_DMG_AM29LV160MB.txt +++ b/FlashGBX/config/fc_DMG_AM29LV160MB.txt @@ -6,7 +6,8 @@ "SD007_TSOP_48BALL with AM29LV160DB", "2006_TSOP_64BALL_QFP48 with AL016J55FFAR2", "SD007_TSOP_64BALL_SOP28 with unlabeled flash chip", - "SD007_TSOP_29LV017D with L017D70VC" + "SD007_TSOP_29LV017D with L017D70VC", + "SD007_TSOP_48BALL with AM29LV160DT" ], "flash_ids":[ [ 0x02, 0x02, 0x4A, 0x4A ], @@ -14,7 +15,8 @@ [ 0x02, 0x02, 0x4A, 0x4A ], [ 0x02, 0x02, 0x4A, 0x4A ], [ 0x02, 0x02, 0x4A, 0x4A ], - [ 0x02, 0xC8, 0x00, 0x00 ] + [ 0x02, 0xC8, 0x00, 0x00 ], + [ 0x02, 0x02, 0xC4, 0xC4 ] ], "voltage":3.3, "flash_size":0x200000, diff --git a/FlashGBX/config/fc_DMG_AT49F040_AUDIO.txt b/FlashGBX/config/fc_DMG_AT49F040_AUDIO.txt index cdff2c4..e3695ac 100644 --- a/FlashGBX/config/fc_DMG_AT49F040_AUDIO.txt +++ b/FlashGBX/config/fc_DMG_AT49F040_AUDIO.txt @@ -2,11 +2,13 @@ "type":"DMG", "names":[ "DIY cart with AT49F040 @ AUDIO", - "GB-CART32K-A with SST39SF020A" + "GB-CART32K-A with SST39SF020A", + "Ferrante Crafts cart with SST39SF010A" ], "flash_ids":[ [ 0x1F, 0x13, 0xFE, 0xFF ], - [ 0xBF, 0xB6, 0x01, 0xFF ] + [ 0xBF, 0xB6, 0x01, 0xFF ], + [ 0xBF, 0xB5, 0x01, 0xFF ] ], "voltage":5, "flash_size":0x8000, diff --git a/FlashGBX/config/fc_DMG_MX29LV320BTC.txt b/FlashGBX/config/fc_DMG_MX29LV320BTC.txt index 96ddfa8..b8f61d0 100644 --- a/FlashGBX/config/fc_DMG_MX29LV320BTC.txt +++ b/FlashGBX/config/fc_DMG_MX29LV320BTC.txt @@ -2,10 +2,12 @@ "type":"DMG", "names":[ "SD007_BV5_V2 with MX29LV320BTC", - "SD007_TSOP_48BALL_V8 with 29LV320CTTC" + "SD007_TSOP_48BALL_V8 with 29LV320CTTC", + "SD007_TSOP_48BALL_V10 with 29LV320CTXEI" ], "flash_ids":[ [ 0xC1, 0xC1, 0xA8, 0xA8 ], + [ 0xC1, 0xC1, 0xA7, 0xA7 ], [ 0xC1, 0xC1, 0xA7, 0xA7 ] ], "voltage":3.3, diff --git a/FlashGBX/hw_GBxCartRW.py b/FlashGBX/hw_GBxCartRW.py index 90516a0..b3ba4f2 100644 --- a/FlashGBX/hw_GBxCartRW.py +++ b/FlashGBX/hw_GBxCartRW.py @@ -15,7 +15,7 @@ from . import Util class GbxDevice: DEVICE_NAME = "GBxCart RW" DEVICE_MIN_FW = 1 - DEVICE_MAX_FW = 3 + DEVICE_MAX_FW = 4 DEVICE_CMD = { "NULL":0x30, @@ -80,7 +80,7 @@ class GbxDevice: "DMG_WRITE_CS_PULSE":[8, 0x09], } - PCB_VERSIONS = {4:'v1.3', 5:'v1.4', 6:'v1.4a'} + PCB_VERSIONS = {4:'v1.3', 5:'v1.4', 6:'v1.4a', 101:'Mini v1.0d'} ACTIONS = {"ROM_READ":1, "SAVE_READ":2, "SAVE_WRITE":3, "ROM_WRITE":4, "ROM_WRITE_VERIFY":4} SUPPORTED_CARTS = {} @@ -135,7 +135,7 @@ class GbxDevice: self.DEVICE = None self.BAUDRATE = 1000000 return False - elif max_baud >= 1700000 and self.FW["pcb_ver"] in (5, 6) and self.BAUDRATE < 1700000: + elif max_baud >= 1700000 and self.FW["pcb_ver"] in (5, 6, 101) and self.BAUDRATE < 1700000: # Switch to higher baud rate self._write(self.DEVICE_CMD["OFW_USART_1_7M_SPEED"]) self.BAUDRATE = 1700000 @@ -166,7 +166,7 @@ class GbxDevice: elif self.FW["fw_ver"] > self.DEVICE_MAX_FW: conn_msg.append([0, "NOTE: The GBxCart RW device on port " + ports[i] + " is running a firmware version that is newer than what this version of FlashGBX was developed to work with, so errors may occur."]) - if (self.FW["pcb_ver"] not in (4, 5, 6)): # only the v1.3 and v1.4/v1.4a pcb revisions are supported + if (self.FW["pcb_ver"] not in (4, 5, 6, 101)): # only the v1.3, v1.4, v1.4a, Mini v1.1 PCB revisions are supported dev.close() self.DEVICE = None return False @@ -238,7 +238,10 @@ class GbxDevice: return self.FW["pcb_ver"] in (5, 6) def GetSupprtedModes(self): - return ["DMG", "AGB"] + if self.FW["pcb_ver"] == 101: + return ["DMG"] + else: + return ["DMG", "AGB"] def IsSupportedMbc(self, mbc): return mbc in ( 0x00, 0x01, 0x02, 0x03, 0x06, 0x0B, 0x0D, 0x10, 0x13, 0x19, 0x1A, 0x1B, 0x1C, 0x1E, 0x20, 0x22, 0xFC, 0xFD, 0xFE, 0xFF, 0x101, 0x103, 0x104, 0x105 ) @@ -247,7 +250,7 @@ class GbxDevice: return True def IsClkConnected(self): - return self.FW["pcb_ver"] in (5, 6) + return self.FW["pcb_ver"] in (5, 6, 101) def UpdateFlashCarts(self, flashcarts): self.SUPPORTED_CARTS = { @@ -275,7 +278,7 @@ class GbxDevice: def Close(self): if self.IsConnected(): try: - if self.FW["pcb_ver"] in (5, 6): + if self.FW["pcb_ver"] in (5, 6, 101): self._write(self.DEVICE_CMD["OFW_CART_MODE"]) self._read(1) self._write(self.DEVICE_CMD["OFW_CART_PWR_OFF"]) @@ -289,7 +292,7 @@ class GbxDevice: return "GBxCart RW" def GetFirmwareVersion(self, more=False): - if self.FW["pcb_ver"] in (5, 6): + if self.FW["pcb_ver"] in (5, 6, 101): s = "R{:d}+{:s}{:d}".format(self.FW["ofw_ver"], self.FW["cfw_id"], self.FW["fw_ver"]) else: s = "{:s}{:d}".format(self.FW["cfw_id"], self.FW["fw_ver"]) @@ -467,7 +470,7 @@ class GbxDevice: print("Error!") def _clk_toggle(self, num): - if self.FW["pcb_ver"] not in (5, 6): return False + if self.FW["pcb_ver"] not in (5, 6, 101): return False for _ in range(0, num): self._write(self.DEVICE_CMD["CLK_HIGH"]) self._write(self.DEVICE_CMD["CLK_LOW"]) @@ -526,7 +529,7 @@ class GbxDevice: self.POS = 0 self.SIGNAL = None - if self.FW["pcb_ver"] in (5, 6): + if self.FW["pcb_ver"] in (5, 6, 101): self._write(self.DEVICE_CMD["OFW_CART_MODE"]) # Reset LEDs self._read(1) self.CartPowerOn() @@ -537,7 +540,7 @@ class GbxDevice: self._set_fw_variable("DMG_READ_CS_PULSE", 0) self._set_fw_variable("DMG_WRITE_CS_PULSE", 0) elif self.MODE == "AGB": - if self.FW["pcb_ver"] in (5, 6) and self.FW["fw_ver"] > 1: + if self.FW["pcb_ver"] in (5, 6, 101) and self.FW["fw_ver"] > 1: self._write(self.DEVICE_CMD["AGB_BOOTUP_SEQUENCE"], wait=True) header = self.ReadROM(0, 0x180) @@ -548,7 +551,7 @@ class GbxDevice: with open("debug_header.bin", "wb") as f: f.write(header) # Unlock DACS carts on older firmware - if self.MODE == "AGB" and (self.FW["pcb_ver"] not in (5, 6) or self.FW["fw_ver"] == 1): + if self.MODE == "AGB" and (self.FW["pcb_ver"] not in (5, 6, 101) or self.FW["fw_ver"] == 1): if header[0x04:0x04+0x9C] == bytearray([0x00] * 0x9C): self.ReadROM(0x1FFFFE0, 20) header = self.ReadROM(0, 0x180) @@ -573,7 +576,7 @@ class GbxDevice: elif self.MODE == "AGB": data = RomFileAGB(header).GetHeader() - if data["logo_correct"] is False: # try to fix weird bootlegs + if data["logo_correct"] is False: # workaround for weird bootlegs self._cart_write(0, 0xFF) time.sleep(0.1) header = self.ReadROM(0, 0x180) @@ -1018,7 +1021,7 @@ class GbxDevice: def WriteROM(self, address, buffer, flash_buffer_size=False, skip_init=False, rumble_stop=False): length = len(buffer) - if self.FW["pcb_ver"] not in (5, 6): + if self.FW["pcb_ver"] not in (5, 6, 101): max_length = 256 else: max_length = 1024 @@ -1268,7 +1271,7 @@ class GbxDevice: return (flash_types, flash_type_id, flash_id, cfi_s, cfi) def CheckFlashChip(self, limitVoltage=False, cart_type=None): # aka. the most horribly written function - if self.FW["pcb_ver"] in (5, 6): + if self.FW["pcb_ver"] in (5, 6, 101): self._write(self.DEVICE_CMD["OFW_CART_MODE"]) self._read(1) self.CartPowerOn() @@ -1916,7 +1919,7 @@ class GbxDevice: if self.MODE == "DMG" and _mbc.GetName() == "MBC7": self.WriteEEPROM_MBC7(address=pos, buffer=buffer[buffer_offset:buffer_offset+buffer_len]) elif self.MODE == "DMG" and _mbc.GetName() == "MBC6" and bank > 7: # MBC6 flash save memory - if self.FW["pcb_ver"] in (5, 6): + if self.FW["pcb_ver"] in (5, 6, 101): self.WriteROM(address=pos, buffer=buffer[buffer_offset:buffer_offset+buffer_len]) self._cart_write(pos + buffer_len - 1, 0xF0) else: @@ -2074,12 +2077,12 @@ class GbxDevice: elif cart_type["type"] == "DMG" and "write_pin" in cart_type and cart_type["write_pin"] == "WR+RESET": self.SetProgress({"action":"ABORT", "info_type":"msgbox_critical", "info_msg":"This cartridge type is currently not supported by FlashGBX. Please try the official GBxCart RW interface software available from https://www.gbxcart.com/ instead.", "abortable":False}) return False - elif (self.FW["pcb_ver"] not in (5, 6) or self.FW["fw_ver"] < 2) and ("pulse_reset_after_write" in cart_type and cart_type["pulse_reset_after_write"] is True): - self.SetProgress({"action":"ABORT", "info_type":"msgbox_critical", "info_msg":"This cartridge type is only supported by FlashGBX using GBxCart RW v1.4 and firmware version R31+L2 or higher. You can also try the official GBxCart RW firmware and interface software available from https://www.gbxcart.com/ instead.", "abortable":False}) + elif (self.FW["pcb_ver"] not in (5, 6, 101) or self.FW["fw_ver"] < 2) and ("pulse_reset_after_write" in cart_type and cart_type["pulse_reset_after_write"] is True): + self.SetProgress({"action":"ABORT", "info_type":"msgbox_critical", "info_msg":"This cartridge type is not supported by FlashGBX using your GBxCart RW hardware revision and/or firmware version. You can also try the official GBxCart RW firmware and interface software available from https://www.gbxcart.com/ instead.", "abortable":False}) return False # Firmware check L1 # Firmware check L2 - elif (self.FW["pcb_ver"] not in (5, 6) or self.FW["fw_ver"] < 3) and ("command_set" in cart_type and cart_type["command_set"] == "SHARP") and ("buffer_write" in cart_type["commands"]): + elif (self.FW["pcb_ver"] not in (5, 6, 101) or self.FW["fw_ver"] < 3) and ("command_set" in cart_type and cart_type["command_set"] == "SHARP") and ("buffer_write" in cart_type["commands"]): if self.FW["pcb_ver"] in (5, 6): print("NOTE: Update your GBxCart RW firmware to version L3 or higher for a better transfer rate with this cartridge.") del(cart_type["commands"]["buffer_write"]) @@ -2178,7 +2181,7 @@ class GbxDevice: self.SetProgress({"action":"ABORT", "info_type":"msgbox_critical", "info_msg":"This cartridge type is currently not supported for ROM flashing.", "abortable":False}) return False - if command_set_type == "GBMEMORY" and self.FW["pcb_ver"] not in (5, 6): + if command_set_type == "GBMEMORY" and self.FW["pcb_ver"] not in (5, 6, 101): self._set_fw_variable("FLASH_WE_PIN", 0x01) dprint("Using GB Memory mode on GBxCart RW v1.3") else: @@ -2195,7 +2198,7 @@ class GbxDevice: [ "SA", 0xFF ] ] dprint("Using Flash2Advance mode with a buffer of {:d} bytes".format(flash_buffer_size)) - elif command_set_type == "GBMEMORY" and self.FW["pcb_ver"] in (5, 6): + elif command_set_type == "GBMEMORY" and self.FW["pcb_ver"] in (5, 6, 101): self._write(0x03) # FLASH_METHOD_DMG_MMSA dprint("Using GB Memory mode on GBxCart RW v1.4") elif flashcart.SupportsBufferWrite() and flash_buffer_size > 0: @@ -2355,7 +2358,7 @@ class GbxDevice: if command_set_type == "GBMEMORY" and self.FW["pcb_ver"] < 5: status = self.WriteROM_GBMEMORY(address=pos, buffer=data_import[buffer_pos:buffer_pos+buffer_len], bank=bank) - elif command_set_type == "GBMEMORY" and self.FW["pcb_ver"] in (5, 6): + elif command_set_type == "GBMEMORY" and self.FW["pcb_ver"] in (5, 6, 101): status = self.WriteROM(address=pos, buffer=data_import[buffer_pos:buffer_pos+buffer_len], flash_buffer_size=flash_buffer_size, skip_init=(skip_init and not self.SKIPPING)) self._cart_write(pos + buffer_len - 1, 0xF0) else: @@ -2440,7 +2443,7 @@ class GbxDevice: def TransferData(self, args, signal): self.ERROR = False if self.IsConnected(): - if self.FW["pcb_ver"] in (5, 6): + if self.FW["pcb_ver"] in (5, 6, 101): self._write(self.DEVICE_CMD["OFW_CART_MODE"]) self._read(1) self.CartPowerOn() @@ -2452,7 +2455,7 @@ class GbxDevice: elif args['mode'] == 3: ret = self._BackupRestoreRAM(args) elif args['mode'] == 4: ret = self._FlashROM(args) - if self.FW["pcb_ver"] in (5, 6): + if self.FW["pcb_ver"] in (5, 6, 101): if ret is True: self._write(self.DEVICE_CMD["OFW_DONE_LED_ON"]) elif self.ERROR is True: diff --git a/FlashGBX/hw_GBxCartRW_ofw.py b/FlashGBX/hw_GBxCartRW_ofw.py index 67a087d..3994390 100644 --- a/FlashGBX/hw_GBxCartRW_ofw.py +++ b/FlashGBX/hw_GBxCartRW_ofw.py @@ -117,7 +117,7 @@ class GbxDevice: "CART_PWR_OFF":'.', "QUERY_CART_PWR":']' } - PCB_VERSIONS = {1:'v1.0', 2:'v1.1', 4:'v1.3', 90:'XMAS', 100:'Mini'} + PCB_VERSIONS = {1:'v1.0', 2:'v1.1', 4:'v1.3', 90:'XMAS', 100:'Mini v1.0', 101:'Mini v1.0d'} SUPPORTED_CARTS = {} FW = [] diff --git a/FlashGBX/res/config.zip b/FlashGBX/res/config.zip index 0544ab792fe2eaed24e215c68243bac30c122ccf..1c66a7d41d2640c4efa7b7aaa92557ecaf3e45b8 100644 GIT binary patch delta 3845 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 E9~h<4yZ`_I diff --git a/FlashGBX/res/fw_GBxCart_RW_v1_4.zip b/FlashGBX/res/fw_GBxCart_RW_v1_4.zip index bcfc50c18eaea157709e3390b9982f9ae8faf795..30840ab2f83bae09e8350e477344bfc5595dd2e8 100644 GIT binary patch literal 22441 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 N<+p#GS?@p7e*x02R#E@} literal 21929 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 YIj`pip3 install -U FlashGBX` -* If you see an error about a conflict involving PySide2, try these commands instead:
`pip3 install pyserial Pillow setuptools requests python-dateutil`
`pip3 install --no-deps -U FlashGBX`
`pip3 install -U PySide2 --ignore-requires-python` +* If you see an error about a conflict involving PySide2, try these commands instead:
`pip3 install pyserial Pillow setuptools requests python-dateutil`
`pip3 install --no-deps -U FlashGBX`
`pip3 install --ignore-requires-python -U PySide2` * Pre-made Linux packages and instructions for select distributions are available [here](https://github.com/JJ-Fox/FlashGBX-Linux-builds/releases/latest). @@ -234,6 +237,7 @@ The author would like to thank the following very kind people for their help and - antPL (flash chip info) - bbsan (flash chip info) - ClassicOldSong (bug reports) +- crizzlycruz (flash chip info) - djedditt (testing) - dyf2007 (flash chip info) - easthighNerd (feature suggestions) diff --git a/setup.py b/setup.py index 084f2ec..cad169e 100644 --- a/setup.py +++ b/setup.py @@ -4,9 +4,9 @@ with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read( setuptools.setup( name="FlashGBX", - version="3.0", + version="3.1", author="Lesserkuma", - description="Reads and writes Game Boy and Game Boy Advance cartridge data. Currently supports the GBxCart RW hardware device by insideGadgets.", + description="Reads and writes Game Boy and Game Boy Advance cartridge data. Supported hardware: GBxCart RW v1.3 and v1.4 by insideGadgets.", url="https://github.com/lesserkuma/FlashGBX", packages=setuptools.find_packages(), install_requires=['PySide2', 'pyserial', 'Pillow', 'setuptools', 'requests', 'python-dateutil'],