This commit is contained in:
Lesserkuma 2024-06-30 12:14:50 +02:00
parent dbe68ee069
commit c8cd8ed340
10 changed files with 22 additions and 12 deletions

View File

@ -1,4 +1,7 @@
# Release notes
### v4.0.1 (released 2024-06-30)
- Bug fixes *(thanks marv17, RibShark)*
### v4.0 (released 2024-06-30)
- Updated GBxCart RW firmware to version R42+L12 (improves flash cart compatibility)
- Improved support for M5M29-39VF512 with M5M29HD528 *(thanks marv17)*
@ -16,7 +19,7 @@
- Added support for GBFlash RTC with MX29LV320EB *(thanks simonK)*
- Added support for GBFlash 1M FLASH RTC (AGB-R1M-02V3)
- Added support for GBA Movie Player v2 CF (SST39VF400A)
- Added support for the GBflash v1.2 and v1.3 hardware device *(thanks simonK)*
- Added support for the GBflash hardware device *(thanks simonK)*
- Added support for M36XXX_32A_EARTH with M36L0R8060B *(thanks Herax)*
- Added support for BUNG Doctor GB Card 4M *(thanks chobby)*
- Added support for BUNG Doctor GB Card 16M *(thanks chobby)*
@ -24,7 +27,7 @@
- Added support for the Joey Jr hardware device *(thanks BennVenn)*
- Confirmed support for F0088_2G_BGA48 with F0088H0
- Added support for DVP DRV with MX29LV320CB *(thanks Lu)*
- The insideGadgets firmware protocol of older GBxCart RW devices (Mini, v1.2, v1.3 and older) is no longer supported
- The insideGadgets firmware protocol of older GBxCart RW devices (Mini, v1.2 and older) is no longer supported
- Minor bug fixes and improvements *(thanks aronson, simonK, marv17)*
### v3.37 (released 2024-03-01)

View File

@ -409,7 +409,7 @@ class LK_Device(ABC):
def _try_write(self, data, retries=5):
while retries > 0:
ack = self._write(data, wait=self.FW["fw_ver"] >= 12)
ack = self._write(data, wait=True)
if "from_user" in self.CANCEL_ARGS and self.CANCEL_ARGS["from_user"]:
return False
if ack is not False:
@ -532,8 +532,11 @@ class LK_Device(ABC):
buffer.extend(struct.pack(">I", key))
buffer.extend(struct.pack(">I", value))
self._try_write(buffer)
if self.FW["fw_ver"] >= 12:
self._try_write(buffer)
else:
self._write(buffer)
def _cart_read(self, address, length=0, agb_save_flash=False):
if self.MODE == "DMG":
if length == 0:
@ -595,7 +598,10 @@ class LK_Device(ABC):
buffer.extend(struct.pack(">I", address >> 1))
buffer.extend(struct.pack(">H", value & 0xFFFF))
self._try_write(buffer)
if self.FW["fw_ver"] >= 12:
self._try_write(buffer)
else:
self._write(buffer)
if self.MODE == "DMG" and sram: self._set_fw_variable("DMG_WRITE_CS_PULSE", 0)
@ -2523,6 +2529,7 @@ class LK_Device(ABC):
self.INFO["dump_info"]["vf_addr_reorder"] = addr_reorder
self.INFO["dump_info"]["vf_value_reorder"] = value_reorder
self.INFO["dump_info"]["agb_read_method"] = self.AGB_READ_METHODS[self.AGB_READ_METHOD]
else:
self.INFO["dump_info"]["agb_read_method"] = self.AGB_READ_METHODS[self.AGB_READ_METHOD]

View File

@ -8,9 +8,9 @@ from enum import Enum
# Common constants
APPNAME = "FlashGBX"
VERSION_PEP440 = "4.0"
VERSION_PEP440 = "4.0.1"
VERSION = "v{:s}".format(VERSION_PEP440)
VERSION_TIMESTAMP = 1719702722
VERSION_TIMESTAMP = 1719742346
DEBUG = False
DEBUG_LOG = []
APP_PATH = ""

View File

@ -191,7 +191,7 @@ class GbxDevice(LK_Device):
if self.FW["fw_ver"] >= 12:
temp = bytearray([self.DEVICE_CMD["QUERY_CART_PWR"]])
self._get_fw_variable("CART_MODE")
else:
elif self.CanPowerCycleCart():
temp = bytearray([self.DEVICE_CMD["OFW_QUERY_CART_PWR"]])
self._write(temp)
self._read(1)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -19,7 +19,7 @@ for [Windows](https://github.com/lesserkuma/FlashGBX/releases), [Linux](https://
### Compatible cartridge reader/writer hardware
- [GBxCart RW](https://www.gbxcart.com/) (tested with v1.4, v1.4a and v1.4c)
- [GBxCart RW](https://www.gbxcart.com/) (tested with v1.3, v1.4, v1.4a and v1.4c)
- [GBFlash](https://github.com/simonkwng/GBFlash) (tested with v1.2 and v1.3)
- [Joey Jr](https://bennvenn.myshopify.com/collections/game-cart-to-pc-interface/products/usb-gb-c-cart-dumper-the-joey-jr) (tested with V2++)

View File

@ -8,9 +8,9 @@ with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read(
setuptools.setup(
name="FlashGBX",
version="4.0",
version="4.0.1",
author="Lesserkuma",
description="Reads and writes Game Boy and Game Boy Advance cartridge data using the GBxCart RW by insideGadgets",
description="Reads and writes Game Boy and Game Boy Advance cartridge data",
url="https://github.com/lesserkuma/FlashGBX",
packages=setuptools.find_packages(),
install_requires=['pyserial>=3.5', 'Pillow', 'setuptools', 'requests', 'python-dateutil'],