FlashGBX 4.2__py3-none-any.whl → 4.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- FlashGBX/DataTransfer.py +1 -2
- FlashGBX/FlashGBX.py +2 -2
- FlashGBX/FlashGBX_CLI.py +40 -29
- FlashGBX/FlashGBX_GUI.py +484 -191
- FlashGBX/Flashcart.py +3 -1
- FlashGBX/GBMemory.py +3 -1
- FlashGBX/LK_Device.py +408 -199
- FlashGBX/Mapper.py +46 -7
- FlashGBX/PocketCamera.py +2 -2
- FlashGBX/PocketCameraWindow.py +35 -5
- FlashGBX/RomFileAGB.py +4 -1
- FlashGBX/RomFileDMG.py +13 -2
- FlashGBX/Util.py +86 -16
- FlashGBX/fw_GBFlash.py +0 -5
- FlashGBX/fw_GBxCartRW_v1_4.py +2 -5
- FlashGBX/fw_JoeyJr.py +23 -8
- FlashGBX/hw_GBFlash.py +16 -7
- FlashGBX/hw_GBxCartRW.py +18 -16
- FlashGBX/hw_JoeyJr.py +2 -2
- FlashGBX/res/Third Party Notices.md +21 -1
- FlashGBX/res/config.zip +0 -0
- FlashGBX/res/fw_GBFlash.zip +0 -0
- FlashGBX/res/fw_GBxCart_RW_v1_4.zip +0 -0
- FlashGBX/res/fw_GBxCart_RW_v1_4a.zip +0 -0
- FlashGBX/res/fw_JoeyJr.zip +0 -0
- {FlashGBX-4.2.dist-info → FlashGBX-4.4.dist-info}/METADATA +101 -52
- FlashGBX-4.4.dist-info/RECORD +43 -0
- {FlashGBX-4.2.dist-info → FlashGBX-4.4.dist-info}/WHEEL +1 -1
- FlashGBX-4.2.dist-info/RECORD +0 -43
- {FlashGBX-4.2.dist-info → FlashGBX-4.4.dist-info}/LICENSE +0 -0
- {FlashGBX-4.2.dist-info → FlashGBX-4.4.dist-info}/entry_points.txt +0 -0
- {FlashGBX-4.2.dist-info → FlashGBX-4.4.dist-info}/top_level.txt +0 -0
FlashGBX/hw_GBxCartRW.py
CHANGED
|
@@ -9,13 +9,13 @@ class GbxDevice(LK_Device):
|
|
|
9
9
|
DEVICE_NAME = "GBxCart RW"
|
|
10
10
|
DEVICE_MIN_FW = 1
|
|
11
11
|
DEVICE_MAX_FW = 1
|
|
12
|
-
DEVICE_LATEST_FW_TS = { 4:1709317610, 5:
|
|
12
|
+
DEVICE_LATEST_FW_TS = { 4:1709317610, 5:1747991884, 6:1747991884, 2:0, 90:0, 100:0 }
|
|
13
13
|
PCB_VERSIONS = { 5:'v1.4', 6:'v1.4a/b/c', 2:'v1.1/v1.2', 4:'v1.3', 90:'XMAS v1.0', 100:'Mini v1.0' }
|
|
14
14
|
BAUDRATE = 1000000
|
|
15
15
|
MAX_BUFFER_READ = 0x1000
|
|
16
16
|
MAX_BUFFER_WRITE = 0x400
|
|
17
17
|
|
|
18
|
-
def Initialize(self, flashcarts, port=None, max_baud=
|
|
18
|
+
def Initialize(self, flashcarts=None, port=None, max_baud=1500000):
|
|
19
19
|
if self.IsConnected(): self.DEVICE.close()
|
|
20
20
|
if platform.system() == "Darwin": max_baud = 1000000
|
|
21
21
|
|
|
@@ -31,7 +31,7 @@ class GbxDevice(LK_Device):
|
|
|
31
31
|
if len(ports) == 0: return False
|
|
32
32
|
|
|
33
33
|
for i in range(0, len(ports)):
|
|
34
|
-
for baudrate in (1000000,
|
|
34
|
+
for baudrate in (1000000, 1500000):
|
|
35
35
|
if max_baud < baudrate: continue
|
|
36
36
|
try:
|
|
37
37
|
if self.TryConnect(ports[i], baudrate):
|
|
@@ -49,8 +49,8 @@ class GbxDevice(LK_Device):
|
|
|
49
49
|
continue
|
|
50
50
|
|
|
51
51
|
if self.FW is None or self.FW == {}: continue
|
|
52
|
-
if max_baud >=
|
|
53
|
-
self.ChangeBaudRate(baudrate=
|
|
52
|
+
if max_baud >= 1500000 and self.FW is not None and "pcb_ver" in self.FW and self.FW["pcb_ver"] in (5, 6, 101) and self.BAUDRATE < 1500000:
|
|
53
|
+
self.ChangeBaudRate(baudrate=1500000)
|
|
54
54
|
self.DEVICE.close()
|
|
55
55
|
dev = serial.Serial(ports[i], self.BAUDRATE, timeout=0.1)
|
|
56
56
|
self.DEVICE = dev
|
|
@@ -74,14 +74,15 @@ class GbxDevice(LK_Device):
|
|
|
74
74
|
self.MAX_BUFFER_WRITE = 0x100
|
|
75
75
|
|
|
76
76
|
conn_msg.append([0, "For help with your GBxCart RW device, please visit the insideGadgets Discord: https://gbxcart.com/discord"])
|
|
77
|
-
if self.FW["pcb_ver"] == 4:
|
|
78
|
-
|
|
77
|
+
#if self.FW["pcb_ver"] == 4:
|
|
78
|
+
# conn_msg.append([0, "Note: Your GBxCart RW hardware revision does not fully support the latest features due to technical limitations. Please consider upgrading to a newer device."])
|
|
79
79
|
|
|
80
80
|
self.PORT = ports[i]
|
|
81
81
|
self.DEVICE.timeout = self.DEVICE_TIMEOUT
|
|
82
82
|
|
|
83
83
|
# Load Flash Cartridge Handlers
|
|
84
|
-
|
|
84
|
+
if flashcarts is not None:
|
|
85
|
+
self.UpdateFlashCarts(flashcarts)
|
|
85
86
|
|
|
86
87
|
# Stop after first found device
|
|
87
88
|
break
|
|
@@ -172,11 +173,12 @@ class GbxDevice(LK_Device):
|
|
|
172
173
|
def ChangeBaudRate(self, baudrate):
|
|
173
174
|
if not self.IsConnected(): return
|
|
174
175
|
dprint("Changing baud rate to", baudrate)
|
|
175
|
-
if baudrate ==
|
|
176
|
-
self._write(self.DEVICE_CMD["
|
|
176
|
+
if baudrate == 1500000:
|
|
177
|
+
self._write(self.DEVICE_CMD["OFW_USART_1_5M_SPEED"])
|
|
177
178
|
elif baudrate == 1000000:
|
|
178
179
|
self._write(self.DEVICE_CMD["OFW_USART_1_0M_SPEED"])
|
|
179
180
|
self.BAUDRATE = baudrate
|
|
181
|
+
self.DEVICE.close()
|
|
180
182
|
|
|
181
183
|
def CheckActive(self):
|
|
182
184
|
if time.time() < self.LAST_CHECK_ACTIVE + 1: return True
|
|
@@ -251,10 +253,10 @@ class GbxDevice(LK_Device):
|
|
|
251
253
|
return ["DMG"]
|
|
252
254
|
else:
|
|
253
255
|
return ["DMG", "AGB"]
|
|
254
|
-
|
|
256
|
+
|
|
255
257
|
def IsSupported3dMemory(self):
|
|
256
258
|
return True
|
|
257
|
-
|
|
259
|
+
|
|
258
260
|
def IsClkConnected(self):
|
|
259
261
|
return self.FW["pcb_ver"] in (5, 6, 101)
|
|
260
262
|
|
|
@@ -268,7 +270,7 @@ class GbxDevice(LK_Device):
|
|
|
268
270
|
dprint("LinkNLoad detected:", is_lnl)
|
|
269
271
|
if is_lnl: return False
|
|
270
272
|
return self.FW["pcb_ver"] in (2, 4, 5, 6, 90, 100, 101)
|
|
271
|
-
|
|
273
|
+
|
|
272
274
|
def FirmwareUpdateAvailable(self):
|
|
273
275
|
if self.FW["fw_ver"] == 0 and self.FW["pcb_ver"] in (2, 4, 90, 100, 101):
|
|
274
276
|
if self.FW["pcb_ver"] == 4:
|
|
@@ -277,12 +279,12 @@ class GbxDevice(LK_Device):
|
|
|
277
279
|
self.FW_UPDATE_REQ = 2
|
|
278
280
|
return True
|
|
279
281
|
if self.FW["pcb_ver"] not in (4, 5, 6): return False
|
|
280
|
-
if self.FW["pcb_ver"] in (5, 6) and self.FW["fw_ts"]
|
|
282
|
+
if self.FW["pcb_ver"] in (5, 6) and self.FW["fw_ts"] != self.DEVICE_LATEST_FW_TS[self.FW["pcb_ver"]]:
|
|
281
283
|
return True
|
|
282
|
-
if self.FW["pcb_ver"] == 4 and self.FW["fw_ts"]
|
|
284
|
+
if self.FW["pcb_ver"] == 4 and self.FW["fw_ts"] != self.DEVICE_LATEST_FW_TS[self.FW["pcb_ver"]]:
|
|
283
285
|
self.FW_UPDATE_REQ = True
|
|
284
286
|
return True
|
|
285
|
-
|
|
287
|
+
|
|
286
288
|
def GetFirmwareUpdaterClass(self):
|
|
287
289
|
if self is None or self.FW["pcb_ver"] in (5, 6): # v1.4 / v1.4a/b/c
|
|
288
290
|
try:
|
FlashGBX/hw_JoeyJr.py
CHANGED
|
@@ -9,7 +9,7 @@ class GbxDevice(LK_Device):
|
|
|
9
9
|
DEVICE_NAME = "Joey Jr"
|
|
10
10
|
DEVICE_MIN_FW = 1
|
|
11
11
|
DEVICE_MAX_FW = 12
|
|
12
|
-
DEVICE_LATEST_FW_TS =
|
|
12
|
+
DEVICE_LATEST_FW_TS = 1747991884
|
|
13
13
|
PCB_VERSIONS = { -1:"", 0x01:"V2", 0x81:"V2", 0x02:"V2C", 0x82:"V2C", 0x03:"V2CC", 0x83:"V2CC/V2++" }
|
|
14
14
|
|
|
15
15
|
def __init__(self):
|
|
@@ -256,7 +256,7 @@ class GbxDevice(LK_Device):
|
|
|
256
256
|
if self.FW["cfw_id"] == "G":
|
|
257
257
|
self.FW_UPDATE_REQ = True
|
|
258
258
|
return True
|
|
259
|
-
if self.FW["fw_ts"]
|
|
259
|
+
if self.FW["fw_ts"] != self.DEVICE_LATEST_FW_TS:
|
|
260
260
|
return True
|
|
261
261
|
self.FW_UPDATE_REQ = False
|
|
262
262
|
return False
|
|
@@ -11,6 +11,27 @@
|
|
|
11
11
|
<p>Qt and the Qt logo are trademarks of The Qt Company Ltd.</p>
|
|
12
12
|
<p>Qt is The Qt Company Ltd product developed as an open source project. See <a href="https://qt.io/">qt.io</a> for more information.</p>
|
|
13
13
|
|
|
14
|
+
# Python
|
|
15
|
+
|
|
16
|
+
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
|
17
|
+
--------------------------------------------
|
|
18
|
+
|
|
19
|
+
1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python software in source or binary form and its associated documentation.
|
|
20
|
+
|
|
21
|
+
2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright © 2001-2021 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.
|
|
22
|
+
|
|
23
|
+
3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python.
|
|
24
|
+
|
|
25
|
+
4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
|
|
26
|
+
|
|
27
|
+
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
|
28
|
+
|
|
29
|
+
6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.
|
|
30
|
+
|
|
31
|
+
7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.
|
|
32
|
+
|
|
33
|
+
8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement.
|
|
34
|
+
|
|
14
35
|
# Pillow
|
|
15
36
|
|
|
16
37
|
The Python Imaging Library (PIL) is
|
|
@@ -108,7 +129,6 @@ IN THE SOFTWARE.
|
|
|
108
129
|
|
|
109
130
|
# requests
|
|
110
131
|
|
|
111
|
-
|
|
112
132
|
Apache License
|
|
113
133
|
Version 2.0, January 2004
|
|
114
134
|
http://www.apache.org/licenses/
|
FlashGBX/res/config.zip
CHANGED
|
Binary file
|
FlashGBX/res/fw_GBFlash.zip
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
FlashGBX/res/fw_JoeyJr.zip
CHANGED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: FlashGBX
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.4
|
|
4
4
|
Summary: Reads and writes Game Boy and Game Boy Advance cartridge data
|
|
5
5
|
Home-page: https://github.com/lesserkuma/FlashGBX
|
|
6
6
|
Author: Lesserkuma
|
|
@@ -17,19 +17,29 @@ Classifier: Intended Audience :: Developers
|
|
|
17
17
|
Requires-Python: >=3.7
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: pyserial
|
|
20
|
+
Requires-Dist: pyserial>=3.5
|
|
21
21
|
Requires-Dist: Pillow
|
|
22
22
|
Requires-Dist: setuptools
|
|
23
23
|
Requires-Dist: requests
|
|
24
24
|
Requires-Dist: python-dateutil
|
|
25
25
|
Provides-Extra: qt5
|
|
26
|
-
Requires-Dist: PySide2
|
|
26
|
+
Requires-Dist: PySide2>=5.14; extra == "qt5"
|
|
27
27
|
Provides-Extra: qt6
|
|
28
|
-
Requires-Dist: PySide6
|
|
28
|
+
Requires-Dist: PySide6; extra == "qt6"
|
|
29
|
+
Dynamic: author
|
|
30
|
+
Dynamic: classifier
|
|
31
|
+
Dynamic: description
|
|
32
|
+
Dynamic: description-content-type
|
|
33
|
+
Dynamic: home-page
|
|
34
|
+
Dynamic: project-url
|
|
35
|
+
Dynamic: provides-extra
|
|
36
|
+
Dynamic: requires-dist
|
|
37
|
+
Dynamic: requires-python
|
|
38
|
+
Dynamic: summary
|
|
29
39
|
|
|
30
40
|
# FlashGBX (by Lesserkuma)
|
|
31
41
|
|
|
32
|
-
for
|
|
42
|
+
for Windows, Linux, macOS (→ [Download](https://github.com/lesserkuma/FlashGBX/releases))
|
|
33
43
|
|
|
34
44
|
<img src="https://raw.githubusercontent.com/lesserkuma/FlashGBX/master/.github/01.png" alt="FlashGBX on Windows 11" width="500"><br><img src="https://raw.githubusercontent.com/lesserkuma/FlashGBX/master/.github/02.png" alt="GB Camera Album Viewer" width="500">
|
|
35
45
|
|
|
@@ -44,52 +54,13 @@ for [Windows](https://github.com/lesserkuma/FlashGBX/releases), [Linux](https://
|
|
|
44
54
|
- A flash chip query (including Common Flash Interface information) can be performed for flash cartridges
|
|
45
55
|
- Decode and extract Game Boy Camera photos from save data
|
|
46
56
|
- Generate ROM dump reports for game preservation purposes
|
|
47
|
-
- Delta flashing support, useful for development by writing only differences between two ROMs (if named `rom.gba` and `rom.delta.gba`)
|
|
48
57
|
|
|
49
58
|
### Compatible cartridge reader/writer hardware
|
|
50
59
|
|
|
51
|
-
- [GBxCart RW](https://www.gbxcart.com/) (tested with v1.
|
|
60
|
+
- [GBxCart RW](https://www.gbxcart.com/) (tested with v1.4, v1.4a and v1.4c)
|
|
52
61
|
- [GBFlash](https://github.com/simonkwng/GBFlash) (tested with v1.2 and v1.3)
|
|
53
62
|
- [Joey Jr](https://bennvenn.myshopify.com/collections/game-cart-to-pc-interface/products/usb-gb-c-cart-dumper-the-joey-jr) (tested with V2++)
|
|
54
63
|
|
|
55
|
-
## Installing and running
|
|
56
|
-
|
|
57
|
-
### Windows Packages
|
|
58
|
-
|
|
59
|
-
Available in the GitHub [Releases](https://github.com/lesserkuma/FlashGBX/releases) section:
|
|
60
|
-
|
|
61
|
-
* Windows Setup: An installer that will add the application to the start menu and optionally create a desktop icon
|
|
62
|
-
* Windows Portable: Have everything in one place including the config files
|
|
63
|
-
|
|
64
|
-
These work for installing fresh and upgrading from an older version.
|
|
65
|
-
|
|
66
|
-
### Run using Python (Linux, macOS, Windows)
|
|
67
|
-
|
|
68
|
-
#### Installing
|
|
69
|
-
|
|
70
|
-
1. Download and install [Python](https://www.python.org/downloads/) (version 3.10.11 is recommended)
|
|
71
|
-
2. Open a Terminal or Command Prompt window
|
|
72
|
-
3. Install FlashGBX with this command:<br>`pip3 install "FlashGBX[qt6]"`
|
|
73
|
-
* If installation fails, try this command instead:<br>`pip3 install "FlashGBX[qt5]"`
|
|
74
|
-
* If installation still fails, you can install the minimal version (command line interface) with this command:<br>`pip3 install FlashGBX`
|
|
75
|
-
|
|
76
|
-
* Pre-made Linux packages and instructions for select distributions are available [here](https://github.com/JJ-Fox/FlashGBX-Linux-builds/releases/latest), contributed by JJ-Fox.
|
|
77
|
-
* Pre-made macOS packages and instructions are available [here](https://github.com/Cliffback/FlashGBX-macOS) (in the “Releases” section), contributed by Cliffback.
|
|
78
|
-
|
|
79
|
-
#### Running
|
|
80
|
-
Use this command in a Terminal or Command Prompt window to launch the installed FlashGBX application:
|
|
81
|
-
|
|
82
|
-
`python3 -m FlashGBX`
|
|
83
|
-
|
|
84
|
-
*FlashGBX should work on pretty much any operating system that supports Qt-GUI applications built using [Python](https://www.python.org/downloads/) with [PySide2](https://pypi.org/project/PySide2/) or [PySide6](https://pypi.org/project/PySide6/), [pyserial](https://pypi.org/project/pyserial/), [Pillow](https://pypi.org/project/Pillow/), [setuptools](https://pypi.org/project/setuptools/), [requests](https://pypi.org/project/requests/) and [python-dateutil](https://pypi.org/project/python-dateutil/) packages. To run FlashGBX in portable mode without installing, you can also download the source code archive and call `python3 run.py` after installing the prerequisites yourself.*
|
|
85
|
-
|
|
86
|
-
*Note: On Linux systems, the `brltty` module may render serial communication devices non-accessible. See the troubleshooting section for details.*
|
|
87
|
-
|
|
88
|
-
#### Upgrading from an older version
|
|
89
|
-
|
|
90
|
-
1. Open a Terminal or Command Prompt window
|
|
91
|
-
2. Enter this command:<br>`pip3 install -U FlashGBX`
|
|
92
|
-
|
|
93
64
|
## Cartridge Compatibility
|
|
94
65
|
### Supported cartridge memory mappers
|
|
95
66
|
- Game Boy
|
|
@@ -114,6 +85,7 @@ Use this command in a Terminal or Command Prompt window to launch the installed
|
|
|
114
85
|
- Unlicensed Xploder GB Mapper
|
|
115
86
|
- Unlicensed Sachen Mapper
|
|
116
87
|
- Unlicensed Datel Orbit V2 Mapper
|
|
88
|
+
- Unlicensed MBCX Mapper
|
|
117
89
|
|
|
118
90
|
- Game Boy Advance
|
|
119
91
|
- All cartridges without memory mapping
|
|
@@ -128,7 +100,8 @@ Use this command in a Terminal or Command Prompt window to launch the installed
|
|
|
128
100
|
|
|
129
101
|
- 29LV Series Flash BOY with 29LV160DB
|
|
130
102
|
- Action Replay
|
|
131
|
-
- BennVenn MBC3000 RTC cart
|
|
103
|
+
- BennVenn MBC3000 v4 RTC cart
|
|
104
|
+
- BennVenn MBC3000 v5 RTC cart
|
|
132
105
|
- BLAZE Xploder GB¹
|
|
133
106
|
- BUNG Doctor GB Card 4M
|
|
134
107
|
- BUNG Doctor GB Card 16M
|
|
@@ -148,14 +121,18 @@ Use this command in a Terminal or Command Prompt window to launch the installed
|
|
|
148
121
|
- DIY cart with MX29LV640
|
|
149
122
|
- DIY cart with SST39SF040
|
|
150
123
|
- DMG-MBC5-32M-FLASH (G/A) Development Cartridge, E201264
|
|
124
|
+
- DMG-MBC5-32M-FLASH (G/A-I) Development Cartridge, E201264
|
|
151
125
|
- Ferrante Crafts cart 32 KB
|
|
152
126
|
- Ferrante Crafts cart 64 KB
|
|
153
127
|
- Ferrante Crafts cart 512 KB
|
|
154
128
|
- FunnyPlaying MidnightTrace 4 MiB Flash Cart
|
|
129
|
+
- Gamebank-web DMG-29W-04 with M29W320EB
|
|
155
130
|
- Gamebank-web DMG-29W-04 with M29W320ET
|
|
156
131
|
- GameShark Pro
|
|
157
132
|
- GB-CART32K-A with SST39SF020A
|
|
158
133
|
- GB Smart 32M
|
|
134
|
+
- GBFlash MBCX (8 MiB)
|
|
135
|
+
- GBFlash MBCX (32 MiB)
|
|
159
136
|
- GBFlash RTC with MX29LV320EB
|
|
160
137
|
- HDR Game Boy Camera Flashcart
|
|
161
138
|
- insideGadgets 32 KiB
|
|
@@ -168,6 +145,8 @@ Use this command in a Terminal or Command Prompt window to launch the installed
|
|
|
168
145
|
- insideGadgets 4 MiB, 128 KiB SRAM/FRAM
|
|
169
146
|
- insideGadgets 4 MiB, 32 KiB FRAM, MBC3+RTC
|
|
170
147
|
- insideGadgets 4 MiB (2× 2 MiB), 32 KiB FRAM, MBC5
|
|
148
|
+
- insideGadgets MegaDuck 32K
|
|
149
|
+
- ModRetro Chromatic Cartridge with 39VF1681
|
|
171
150
|
- Mr Flash 64M
|
|
172
151
|
- Sillyhatday MBC5-DUAL-FLASH-4/8MB
|
|
173
152
|
- Squareboi 4 MiB (2× 2 MiB)
|
|
@@ -192,6 +171,7 @@ Use this command in a Terminal or Command Prompt window to launch the installed
|
|
|
192
171
|
- FunnyPlaying MidnightTrace 32 MiB Flash Cart
|
|
193
172
|
- GBA Movie Player v2 CF (with SST39VF400A)¹
|
|
194
173
|
- GBFlash 1M FLASH RTC (AGB-R1M-02V3)
|
|
174
|
+
- GBFlash 1M FLASH RTC (AGB-R1M-02V4)
|
|
195
175
|
- insideGadgets 16 MiB, 64K EEPROM with Solar Sensor and RTC options
|
|
196
176
|
- insideGadgets 32 MiB, 1M FLASH with RTC option
|
|
197
177
|
- insideGadgets 32 MiB, 512K FLASH
|
|
@@ -213,7 +193,8 @@ Use this command in a Terminal or Command Prompt window to launch the installed
|
|
|
213
193
|
- DRV with 29LV320DB and ALTERA CPLD
|
|
214
194
|
- DRV with AM29LV160DB and ALTERA CPLD
|
|
215
195
|
- DRV with AM29LV160DT and ALTERA CPLD
|
|
216
|
-
- DVP DRV with MX29LV320CB
|
|
196
|
+
- DVP DRV with MX29LV320CB¹
|
|
197
|
+
- DVP DRV with MX29LV320CT¹
|
|
217
198
|
- ES29LV160_DRV with 29DL32TF-70
|
|
218
199
|
- GB-M968 with 29LV160DB
|
|
219
200
|
- GB-M968 with M29W160EB
|
|
@@ -341,6 +322,68 @@ Many different reproduction cartridges share their flash chip command set, so ev
|
|
|
341
322
|
|
|
342
323
|
*¹ = Cannot always be auto-detected, select cartridge type manually*
|
|
343
324
|
|
|
325
|
+
## Installing and running
|
|
326
|
+
|
|
327
|
+
### Pre-compiled binaries and packages
|
|
328
|
+
|
|
329
|
+
Available in the GitHub [Releases](https://github.com/lesserkuma/FlashGBX/releases) section are pre-compiled downloads available for:
|
|
330
|
+
|
|
331
|
+
* **Windows (64-bit)** *(Windows 8 or newer)*
|
|
332
|
+
* Setup: An installer that will add the application to the start menu and optionally create a desktop icon
|
|
333
|
+
* Portable: Have everything in one place including the config files
|
|
334
|
+
|
|
335
|
+
* **Linux**
|
|
336
|
+
* Pre-made packages are contributed by JJ-Fox [here](https://github.com/JJ-Fox/FlashGBX-Linux-builds/releases/latest).
|
|
337
|
+
|
|
338
|
+
* **macOS** *(Monterey 12 or newer)*
|
|
339
|
+
* x86-64/arm64 (.dmg file): Install by opening the .dmg file and copying over the “FlashGBX” application to the desktop.<br>If it doesn’t run, it probably got quarantined during download. Run the following command in a Terminal window to unquarantine it: `xattr -d com.apple.quarantine /path/to/FlashGBX.app`.<br>*(Based on a contribution by [Cliffback](https://github.com/Cliffback))*
|
|
340
|
+
|
|
341
|
+
*(If you have a Joey Jr and use macOS, please run the [Joey Jr Firmware Updater](https://github.com/lesserkuma/JoeyJr_FWUpdater) before using FlashGBX.)*
|
|
342
|
+
|
|
343
|
+
### Run via Python
|
|
344
|
+
|
|
345
|
+
FlashGBX can also be run in a Python environment like so:
|
|
346
|
+
|
|
347
|
+
1. Download and install [Python](https://www.python.org/downloads/) (version 3.10.11 is recommended)
|
|
348
|
+
2. Open a Terminal or Command Prompt window
|
|
349
|
+
3. Install FlashGBX with this command:<br>`pip3 install "FlashGBX[qt6]"`
|
|
350
|
+
* If installation fails, try this command instead:<br>`pip3 install "FlashGBX[qt5]"`
|
|
351
|
+
* If installation still fails, you can install the minimal version (command line interface) with this command:<br>`pip3 install FlashGBX`
|
|
352
|
+
* Update to the latest version by replacing `install` with `install -U`.
|
|
353
|
+
|
|
354
|
+
#### Running
|
|
355
|
+
Use this command in a Terminal or Command Prompt window to launch the installed FlashGBX application:
|
|
356
|
+
|
|
357
|
+
`python3 -m FlashGBX`
|
|
358
|
+
|
|
359
|
+
*FlashGBX should work on pretty much any operating system that supports Qt-GUI applications built using [Python](https://www.python.org/downloads/) with [PySide2](https://pypi.org/project/PySide2/) or [PySide6](https://pypi.org/project/PySide6/), [pyserial](https://pypi.org/project/pyserial/), [Pillow](https://pypi.org/project/Pillow/), [setuptools](https://pypi.org/project/setuptools/), [requests](https://pypi.org/project/requests/) and [python-dateutil](https://pypi.org/project/python-dateutil/) packages. To run FlashGBX in portable mode without installing, you can also download the source code archive and call `python3 run.py` after installing the prerequisites yourself.*
|
|
360
|
+
|
|
361
|
+
*Note: When using GBxCart RW or GBFlash on some Linux systems, the `brltty` module may render serial communication devices non-accessible. See the troubleshooting section for details.*
|
|
362
|
+
|
|
363
|
+
### Steam Deck
|
|
364
|
+
#### Installation
|
|
365
|
+
1. Boot your Steam Deck in Desktop Mode.
|
|
366
|
+
2. Open System Settings → Users.
|
|
367
|
+
3. Set a password for your user account (“deck”), if you do not have one set yet. (Make sure you do not forget this password in the future.)
|
|
368
|
+
4. Create a new folder where you want to install FlashGBX.
|
|
369
|
+
5. Right click the folder and select “Open Terminal Here”.
|
|
370
|
+
6. Enter the following commands in order:<br>
|
|
371
|
+
`python3 -m venv FlashGBX_venv`<br>
|
|
372
|
+
`source FlashGBX_venv/bin/activate`<br>
|
|
373
|
+
`wget https://bootstrap.pypa.io/get-pip.py`<br>
|
|
374
|
+
`python3 get-pip.py`<br>
|
|
375
|
+
`python3 -m pip install "FlashGBX[qt6]"`<br>
|
|
376
|
+
`deactivate`<br>
|
|
377
|
+
`sudo usermod -a -G uucp $USER`<br>
|
|
378
|
+
(You may need to enter the password you set earlier.)
|
|
379
|
+
7. Restart your Steam Deck.
|
|
380
|
+
|
|
381
|
+
#### Running
|
|
382
|
+
1. In Desktop Mode, right click your FlashGBX folder and select “Open Terminal Here”.
|
|
383
|
+
2. Use these commands to launch the installed FlashGBX application:<br>
|
|
384
|
+
`source FlashGBX_venv/bin/activate`<br>
|
|
385
|
+
`python3 -m FlashGBX`<br>
|
|
386
|
+
|
|
344
387
|
### Troubleshooting
|
|
345
388
|
|
|
346
389
|
* If something doesn’t work as expected, first try to clean the game cartridge contacts (best with IPA 99.9%+ on a cotton swab) and reconnect the device. An unstable cartridge connection is the most common reason for read or write errors.
|
|
@@ -357,25 +400,31 @@ Many different reproduction cartridges share their flash chip command set, so ev
|
|
|
357
400
|
|
|
358
401
|
* On some Linux systems like Fedora, you may need to install the `python3-pillow-qt` package manually in order for the GUI mode to work.
|
|
359
402
|
|
|
360
|
-
* On some Linux systems you may see the message “No devices found.” with the GBxCart RW hardware device, even though you’re using a USB cable capable of data transfers. This may be caused by a module called `brltty` (a driver for refreshable braille displays) that is erroneously interfering and taking over control of any connected USB device that uses the CH340/341 chipset. The solution would be to uninstall or blacklist the `brltty` driver and then reboot the system.
|
|
403
|
+
* On some Linux systems you may see the message “No devices found.” with the GBxCart RW or GBFlash hardware device, even though you’re using a USB cable capable of data transfers. This may be caused by a module called `brltty` (a driver for refreshable braille displays) that is erroneously interfering and taking over control of any connected USB device that uses the CH340/341 chipset. The solution would be to uninstall or blacklist the `brltty` driver and then reboot the system. This is not an issue with Joey Jr devices.
|
|
361
404
|
|
|
362
405
|
* If you’re using macOS version 10.13 or older, there may be no driver for serial communication devices installed on your system. You can either upgrade your macOS version to 10.14+ or manually install a driver which is available [here](https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver).
|
|
363
406
|
|
|
364
|
-
* If you’re using macOS and get a “Segmentation Fault: 11.” error, try
|
|
407
|
+
* If you’re using macOS and get a “Segmentation Fault: 11.” error, try the “Run via Python” method with Python version 3.10.11 and install FlashGBX with `pip3 install "FlashGBX[qt5]"`.
|
|
408
|
+
|
|
409
|
+
* If the save data detection says “512K FLASH (64 KiB) or 1M FLASH (128 KiB)”, that means the size can not be determined until actual save data is written to the cartridge.
|
|
365
410
|
|
|
366
411
|
## Miscellaneous
|
|
367
412
|
|
|
368
413
|
* To use your own frame around extracted Game Boy Camera pictures, place a file called `pc_frame.png` (must be at least 160×144 pixels) into the configuration directory. (GUI mode only)
|
|
369
414
|
|
|
415
|
+
* To write only the differences between two ROMs, name the original one `<name>.gba` and the edited one `<name>.delta.gba`.
|
|
416
|
+
|
|
370
417
|
## Contributors
|
|
371
418
|
|
|
372
419
|
The author would like to thank the following very kind people for their help, contributions or documentation (in alphabetical order):
|
|
373
420
|
|
|
374
|
-
2358, 90sFlav, AcoVanConis, AdmirtheSableye, AlexiG, ALXCO-Hardware, AndehX, antPL, aronson, Ausar, bbsan, BennVenn, ccs21, chobby, ClassicOldSong, Cliffback, CodyWick13, Corborg, Cristóbal, crizzlycruz, Crystal, Därk, Davidish, DevDavisNunez, Diddy_Kong, djedditt, Dr-InSide, dyf2007, easthighNerd, EchelonPrime, edo999, Eldram, Ell, EmperorOfTigers, endrift, Erba Verde, ethanstrax, eveningmoose, Falknör, FerrantePescara, frarees, Frost Clock, gandalf1980, gboh, gekkio, Godan, Grender, HDR, Herax, Hiccup, hiks, howie0210, iamevn, Icesythe7, ide, inYourBackline, iyatemu, Jayro, Jenetrix, JFox, joyrider3774, jrharbort, JS7457, julgr, Kaede, kane159, KOOORAY, kscheel, kyokohunter, Leitplanke, litlemoran, LovelyA72, Lu, Luca DS, LucentW, manuelcm1, marv17, Merkin, metroid-maniac, Mr_V, olDirdey, orangeglo, paarongiroux, Paradoxical, Rairch, Raphaël BOICHOT, redalchemy, RetroGorek, RevZ, RibShark, s1cp, Satumox, Sgt.DoudouMiel, SH, Shinichi999, Sillyhatday, simonK, Sithdown, skite2001, Smelly-Ghost, Sonikks, Squiddy, Stitch, Super Maker, t5b6_de, Tauwasser, TheNFCookie, Timville, twitnic, velipso, Veund, voltagex, Voultar, Warez Waldo, wickawack, Winter1760, Wkr, x7l7j8cc, xactoes, xukkorz, yosoo, Zeii, Zelante, zipplet, Zoo, zvxr
|
|
421
|
+
2358, 90sFlav, AcoVanConis, AdmirtheSableye, AlexiG, ALXCO-Hardware, AndehX, antPL, aronson, Ausar, bbsan, BennVenn, ccs21, chobby, ClassicOldSong, Cliffback, CodyWick13, Corborg, Cristóbal, crizzlycruz, Crystal, Därk, Davidish, delibird_deals, DevDavisNunez, Diddy_Kong, djedditt, Dr-InSide, dyf2007, easthighNerd, EchelonPrime, edo999, Eldram, Ell, EmperorOfTigers, endrift, Erba Verde, ethanstrax, eveningmoose, Falknör, FerrantePescara, frarees, Frost Clock, Gahr, gandalf1980, gboh, gekkio, Godan, Grender, HDR, Herax, Hiccup, hiks, howie0210, iamevn, Icesythe7, ide, infinest, inYourBackline, iyatemu, Jayro, Jenetrix, JFox, joyrider3774, jrharbort, JS7457, julgr, Kaede, kane159, KOOORAY, kscheel, kyokohunter, Leitplanke, litlemoran, LovelyA72, Lu, Luca DS, LucentW, luxkiller65, manuelcm1, marv17, Merkin, metroid-maniac, Mr_V, Mufsta, olDirdey, orangeglo, paarongiroux, Paradoxical, Rairch, Raphaël BOICHOT, redalchemy, RetroGorek, RevZ, RibShark, s1cp, Satumox, Sgt.DoudouMiel, SH, Shinichi999, Sillyhatday, simonK, Sithdown, skite2001, Smelly-Ghost, Sonikks, Squiddy, Stitch, Super Maker, t5b6_de, Tauwasser, TheNFCookie, Timville, twitnic, velipso, Veund, voltagex, Voultar, Warez Waldo, wickawack, Winter1760, Wkr, x7l7j8cc, xactoes, xukkorz, yosoo, Zeii, Zelante, zipplet, Zoo, zvxr
|
|
422
|
+
|
|
423
|
+
Thanks to the No-Intro project for their game databases which FlashGBX’s databases are partly based on.
|
|
375
424
|
|
|
376
425
|
## Third Party Notices and Licenses
|
|
377
426
|
|
|
378
|
-
Please view the <a href="https://
|
|
427
|
+
Please view the <a href="https://github.com/lesserkuma/FlashGBX/blob/master/Third%20Party%20Notices.md">Third Party Notices</a>.
|
|
379
428
|
|
|
380
429
|
## DISCLAIMER
|
|
381
430
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
FlashGBX/DataTransfer.py,sha256=bE4ZW3iQNceGMgS_SyDQKrXTZcdQxeRSni8GkxBtXIY,1750
|
|
2
|
+
FlashGBX/FlashGBX.py,sha256=bCxU0sTeQrxOMtTBzVQhD-_YBF8AlXuFJtep15YakFc,12784
|
|
3
|
+
FlashGBX/FlashGBX_CLI.py,sha256=xWhAH4jjMlao3VKF3A1l3v3OYKSUWeUfRApR5xQyUs4,65007
|
|
4
|
+
FlashGBX/FlashGBX_GUI.py,sha256=PfPu6jf_OxasoMFdo3jK850Dk4vDV631AcbE9dCdfeU,186657
|
|
5
|
+
FlashGBX/Flashcart.py,sha256=ZbwgPo9__IiYbc2ZndoDChn6_nq25bUwJs2nYppZhwM,36465
|
|
6
|
+
FlashGBX/GBMemory.py,sha256=BoM8_3rgIVQoxYin20t_-_pLHHPdNnuGXoPl2hRYGOY,13463
|
|
7
|
+
FlashGBX/LK_Device.py,sha256=GfS1XIqHGM9hfr7qbsIO5fABisiiQibCvou9v5vuCKE,195976
|
|
8
|
+
FlashGBX/Mapper.py,sha256=ALNZTki3Q9WOp5UPvYntrRnnKlQOMNuTJrfBMq5ITUw,57855
|
|
9
|
+
FlashGBX/PocketCamera.py,sha256=zLspGfQcX_fjplI54VPJXWk9dHP_3Ix99a4tqFU3Vf4,4898
|
|
10
|
+
FlashGBX/PocketCameraWindow.py,sha256=CErgsMf-z7RklC84XKTkghpF1G0I4p_bbX77Gg8HY0E,17262
|
|
11
|
+
FlashGBX/RomFileAGB.py,sha256=S5iMw-KLOhWvKoNjflbCRoUM-zrOofPcpYmLLsF8WRw,8967
|
|
12
|
+
FlashGBX/RomFileDMG.py,sha256=QarLMwTYoPPpKA4Txv3KtCFcNiVg5bDslvfrqoN6J8k,21720
|
|
13
|
+
FlashGBX/UserInputDialog.py,sha256=aYe3CeYlzQoCLI4DQulL5K9euB0HcMpcKZCFZfIJzqE,2911
|
|
14
|
+
FlashGBX/Util.py,sha256=w2c3AY_ujhbJK-Hg_E1tYxami8luXRKkl8obKqjN8FA,42616
|
|
15
|
+
FlashGBX/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
+
FlashGBX/__main__.py,sha256=L3ibKoTXOlTCepGzrgcktk_Jwp25xBCmGpNQO7W8Bbc,120
|
|
17
|
+
FlashGBX/fw_GBFlash.py,sha256=aNn8_jjGGWeDaRCSnXPbQ-e_JN98cn9-22Nv_waY3wA,15184
|
|
18
|
+
FlashGBX/fw_GBxCartRW_v1_3.py,sha256=qiYReJi1C-UDTjJVY0VujIsM5wPolnUrl_3TQYV-Drw,21498
|
|
19
|
+
FlashGBX/fw_GBxCartRW_v1_4.py,sha256=wVjjjdxY0ugg6B9e4QA_ErySdZCYHL3ljoQzWnheL6A,14259
|
|
20
|
+
FlashGBX/fw_JoeyJr.py,sha256=_ru3hcBQDJeTXk3yd0wHSlWDOXem0MaBiEy8nngFzSI,21328
|
|
21
|
+
FlashGBX/hw_GBFlash.py,sha256=hZ1Cga07AmpqtmiZsG2RSibIP69DSrfBR7iy6hZutvc,8336
|
|
22
|
+
FlashGBX/hw_GBxCartRW.py,sha256=meXKAGfS6v3e51VmVXBBHdPA99u13unwgwZFq59D_ZU,11243
|
|
23
|
+
FlashGBX/hw_JoeyJr.py,sha256=F9uqoRw3hR-p21POgNY-dUU7wAhegOD-rp1Vz7odBYg,9335
|
|
24
|
+
FlashGBX/pyside.py,sha256=hlvYbV29AFJ1Epv0R41Sz-wuo4I9-gH8hgS8sfwJyCk,1662
|
|
25
|
+
FlashGBX/res/Third Party Notices.md,sha256=hTl66zRJfRgj20L6d4HxiFrBUXS0osI1cQIalJ1F_KY,21380
|
|
26
|
+
FlashGBX/res/config.zip,sha256=weBRVFqS8-AFIveXwmitBBoEsGT9YO2iUAq7W4T3L10,383438
|
|
27
|
+
FlashGBX/res/fw_GBFlash.zip,sha256=rTLStKSMcl160UO16djRxpaVCTmwE-CbGsGXKnp7ZDU,18467
|
|
28
|
+
FlashGBX/res/fw_GBxCart_RW_Mini_v1_0.zip,sha256=-QpHSw2JsjPG2WQ7E6mRqre4D3VThau2U7bFZYPY6r0,4774
|
|
29
|
+
FlashGBX/res/fw_GBxCart_RW_XMAS_v1_0.zip,sha256=ai6ithbSsEst22lCcDyJhr8KIlixqhg3HF4XV16Fdto,8093
|
|
30
|
+
FlashGBX/res/fw_GBxCart_RW_v1_1_v1_2.zip,sha256=H9tTjRMovpRkR89tUCsMMpwPslCoRml_cEWu8oYfMLs,8137
|
|
31
|
+
FlashGBX/res/fw_GBxCart_RW_v1_3.zip,sha256=zi2f7fdulQcSATuiIFMaCrpz3mCF5RGftVpbZNVedq0,15681
|
|
32
|
+
FlashGBX/res/fw_GBxCart_RW_v1_4.zip,sha256=KYEsS8k5mUAAia5QqfoGBzSJBjOaumXxtkR-J820dvw,37284
|
|
33
|
+
FlashGBX/res/fw_GBxCart_RW_v1_4a.zip,sha256=IrZ0uI1v_mErR5Mi2ETgwmojee5GYS_Fqlia48ODT88,36772
|
|
34
|
+
FlashGBX/res/fw_JoeyJr.zip,sha256=vJBBplHFiLdjkx3w-wjyD-sLKhAmf8ZSLZlYo_E0ohc,72013
|
|
35
|
+
FlashGBX/res/icon.ico,sha256=2FNNCkh2W0IFQNYNdy8cmodh69NC0gYfpw81GZtr9rU,129959
|
|
36
|
+
FlashGBX/res/icon.png,sha256=WtE7XqPKr2538lw4gVbm6slWvMLJpwYjre8_z1q70GY,19286
|
|
37
|
+
FlashGBX/res/pc_frame.png,sha256=Hp8cUT_e7kc3-nrTD9ekB8gNVgKNEZRr75ggNDihJOg,653
|
|
38
|
+
FlashGBX-4.4.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
39
|
+
FlashGBX-4.4.dist-info/METADATA,sha256=0dkjr10xlg8h8bvVWWWVERuv6ncWrQsbM1SzeNBaK24,21560
|
|
40
|
+
FlashGBX-4.4.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
41
|
+
FlashGBX-4.4.dist-info/entry_points.txt,sha256=lsg7RmPUIvEI_Q8bA3jIRh8MLF1qIBzUX_yEjD4lJ-g,52
|
|
42
|
+
FlashGBX-4.4.dist-info/top_level.txt,sha256=y6Ssb3YnEYYHNJIPsG_b5ifITM1STAyQXMpjtNOtyzA,9
|
|
43
|
+
FlashGBX-4.4.dist-info/RECORD,,
|
FlashGBX-4.2.dist-info/RECORD
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
FlashGBX/DataTransfer.py,sha256=9o3BSBed-SMIWkl-TcmolUjBdrGwem8TqjnktWScgBA,1766
|
|
2
|
-
FlashGBX/FlashGBX.py,sha256=QbLvnqN5K9JLOYhQX6xvrC-H5fl9bYhWDzkOgo8pdUo,12736
|
|
3
|
-
FlashGBX/FlashGBX_CLI.py,sha256=eJ4DJP6u-HDn8hZjsReHTRckme0c_T718NzKzEgF6eQ,64741
|
|
4
|
-
FlashGBX/FlashGBX_GUI.py,sha256=p2H-ThzXcWLAbJaBiiTy8TvJ0XBbl8cARdkSyGIxYoA,171638
|
|
5
|
-
FlashGBX/Flashcart.py,sha256=S-af7YjsIOCx3sYsS4GjrHt80HD4-RrdLd0EBipXZ-Q,36396
|
|
6
|
-
FlashGBX/GBMemory.py,sha256=c1AMjW-TCtKfyexFLCS0pUA7dNmWyUXqUikN_QUf0MU,13320
|
|
7
|
-
FlashGBX/LK_Device.py,sha256=31SdJ4LG00YXcP6SAF1TwG6-zphA6GOi-QlLN6_AK1g,188140
|
|
8
|
-
FlashGBX/Mapper.py,sha256=eLw3xwxb43SLGbSmjXfzjPHK2w87NWbVsHt53Ac7F64,56964
|
|
9
|
-
FlashGBX/PocketCamera.py,sha256=uTkhpvlKfDy7fQRLoHTIxTXh-WdvYj2OUeNo45KhLoY,4899
|
|
10
|
-
FlashGBX/PocketCameraWindow.py,sha256=sqWv94gUeFBmUa8Zn1u-Zb4-qVcw5j-Q_tE7hz3sYpc,16185
|
|
11
|
-
FlashGBX/RomFileAGB.py,sha256=ad9WBGnPbW6a2y7B5R3rwizhocPFANMAwKCXJYBPQdA,8908
|
|
12
|
-
FlashGBX/RomFileDMG.py,sha256=gm9_m41Jv70mLxQzrol3acCoCpOoivllrVtizrSuWss,21466
|
|
13
|
-
FlashGBX/UserInputDialog.py,sha256=aYe3CeYlzQoCLI4DQulL5K9euB0HcMpcKZCFZfIJzqE,2911
|
|
14
|
-
FlashGBX/Util.py,sha256=XFP-FQaNLz6F4CuNKep1ma7IgcN7jErhUkBrv__eJnA,40132
|
|
15
|
-
FlashGBX/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
FlashGBX/__main__.py,sha256=L3ibKoTXOlTCepGzrgcktk_Jwp25xBCmGpNQO7W8Bbc,120
|
|
17
|
-
FlashGBX/fw_GBFlash.py,sha256=ebRADjLw_2eOckLYCoUlepRpLD_eTtLTXOxCJ4zskKM,15629
|
|
18
|
-
FlashGBX/fw_GBxCartRW_v1_3.py,sha256=qiYReJi1C-UDTjJVY0VujIsM5wPolnUrl_3TQYV-Drw,21498
|
|
19
|
-
FlashGBX/fw_GBxCartRW_v1_4.py,sha256=K6eWc6_hy5WZUhCHHxTbigUvvWa3csjnomPEj7TMocM,14733
|
|
20
|
-
FlashGBX/fw_JoeyJr.py,sha256=YJP68_gE2djJ3dPjnQVenEk91LtFUAyy1WHK6bwXwSg,20689
|
|
21
|
-
FlashGBX/hw_GBFlash.py,sha256=DZQGb1NG1tp9ProCirrbrSH6XPrfEFSi5lGq7BlWe0c,7668
|
|
22
|
-
FlashGBX/hw_GBxCartRW.py,sha256=KOR0wmh9FsBopFnfe0Ed1GM4uySrMdFMTSOs6jrHbaw,11193
|
|
23
|
-
FlashGBX/hw_JoeyJr.py,sha256=1Bv9AD5cTGqIYgnjuPMW9BBLrLx59jMnyqVUv6H11jM,9334
|
|
24
|
-
FlashGBX/pyside.py,sha256=hlvYbV29AFJ1Epv0R41Sz-wuo4I9-gH8hgS8sfwJyCk,1662
|
|
25
|
-
FlashGBX/res/Third Party Notices.md,sha256=X-1MRGTAQB8ZuskoWvbhq4IBYj-G0jJoklya3jGwzcQ,18994
|
|
26
|
-
FlashGBX/res/config.zip,sha256=iVZ2yoVsNK9jR0bkW5gQvbPswurYS3L8Pr3tfAWYyp4,379194
|
|
27
|
-
FlashGBX/res/fw_GBFlash.zip,sha256=u9d0Y6N74EjqEWt68355mqIfxfTMPMTnypmjIopm4JU,17507
|
|
28
|
-
FlashGBX/res/fw_GBxCart_RW_Mini_v1_0.zip,sha256=-QpHSw2JsjPG2WQ7E6mRqre4D3VThau2U7bFZYPY6r0,4774
|
|
29
|
-
FlashGBX/res/fw_GBxCart_RW_XMAS_v1_0.zip,sha256=ai6ithbSsEst22lCcDyJhr8KIlixqhg3HF4XV16Fdto,8093
|
|
30
|
-
FlashGBX/res/fw_GBxCart_RW_v1_1_v1_2.zip,sha256=H9tTjRMovpRkR89tUCsMMpwPslCoRml_cEWu8oYfMLs,8137
|
|
31
|
-
FlashGBX/res/fw_GBxCart_RW_v1_3.zip,sha256=zi2f7fdulQcSATuiIFMaCrpz3mCF5RGftVpbZNVedq0,15681
|
|
32
|
-
FlashGBX/res/fw_GBxCart_RW_v1_4.zip,sha256=5H2ZSDaxhJCzeYshKwj8CBDQPsxS30hJKuYbPEVYYtg,36772
|
|
33
|
-
FlashGBX/res/fw_GBxCart_RW_v1_4a.zip,sha256=skp6LC3qvEyVZf7Txs8chSqsT-JoeZt0ZbvoqMb_3Lk,36260
|
|
34
|
-
FlashGBX/res/fw_JoeyJr.zip,sha256=quBrdbe3Kbr30_eP3nqix-ye4v8H5C3fvOZ7m-dxwes,69078
|
|
35
|
-
FlashGBX/res/icon.ico,sha256=2FNNCkh2W0IFQNYNdy8cmodh69NC0gYfpw81GZtr9rU,129959
|
|
36
|
-
FlashGBX/res/icon.png,sha256=WtE7XqPKr2538lw4gVbm6slWvMLJpwYjre8_z1q70GY,19286
|
|
37
|
-
FlashGBX/res/pc_frame.png,sha256=Hp8cUT_e7kc3-nrTD9ekB8gNVgKNEZRr75ggNDihJOg,653
|
|
38
|
-
FlashGBX-4.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
39
|
-
FlashGBX-4.2.dist-info/METADATA,sha256=LaWjis17ix7y3b7UmPWpE-NHYP0YP8fHE8fkpayLfZc,19273
|
|
40
|
-
FlashGBX-4.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
41
|
-
FlashGBX-4.2.dist-info/entry_points.txt,sha256=lsg7RmPUIvEI_Q8bA3jIRh8MLF1qIBzUX_yEjD4lJ-g,52
|
|
42
|
-
FlashGBX-4.2.dist-info/top_level.txt,sha256=y6Ssb3YnEYYHNJIPsG_b5ifITM1STAyQXMpjtNOtyzA,9
|
|
43
|
-
FlashGBX-4.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|