Arc Raiders
PUBG
Russian Fishing 4
Oxide Survival - Rust Mobile
PUBG Black Budget
Fortnite
War Tundra
Battlefield 6
Minecraft
Roblox
Valorant
Path of Exile 2
Standoff 2
Active Matter
Arma Reforger
Arma 3
Neural Cheat
Dead by Daylight
Foxhole
Delta Force Mobile
Dune Awakening
PUBG Mobile
Squad
Rainbow Six Siege
Unturned
Dota 2
Deadside
GeoGuessr
Enlistod
Stella Sora
Arknights: Endfield
Honkai Star Rail
Blue Archive
Zenless Zone Zero
Neverness to Everness
Meccha Chameleon
Marathon
Sea of Thieves
Path of ExileGameFlash: how to flash a DMA board in a couple of minutes
Quick overview
GameFlash is a universal flasher for DMA boards based on Xilinx Artix-7 chips (models 35T, 75T and 100T). It writes the .bin file via CH347, verifies the result itself and restarts the write if a bug occurs. It can also read the Device DNA and run a DMA speed test.
A nice touch: there is nothing extra to install. OpenOCD, the configs and the drivers are already built in and unpack on first launch. Download it, open it, flash.
What you will need:
Windows 10 or 11, 64-bit.
The Artix-7 DMA board itself (35T, 75T or 100T), connected to the PC.
The firmware file strictly in .bin format (the program will not accept other formats).
Board indicator (top right corner)
In the top right corner there is a DMA status - it immediately shows what the program sees:
NO BOARD (gray) - the DMA board is not detected.
JTAG PORT (orange) - the USB is plugged into the JTAG port, you can flash.
DATA PORT (green) - the USB is plugged into the DATA port, you can run the speed test.
Yellow - the device is visible, but the driver is not installed (check the Drivers tab).
Handy: if something did not connect, you can see it right away, even before flashing starts.
Step 1. Drivers
Before flashing anything, you need to make sure the system sees the adapter at all. The Drivers tab is responsible for this. Open it - and you immediately see what is missing.
Next to each driver there is a status: Installed or Missing. If it shows red, you click Install next to it, and the usual system installer opens. Administrator rights are needed, so if Windows asks for permission - that is normal, agree.
There are three drivers in the list in total, and they are needed for different tasks.
CH347 (JTAG) - the main one. Without it you cannot flash the DMA board at all, so we install it first.
FTDI (DATA) - needed only if you are going to run the DMA speed test and for cheats. For flashing the .bin itself it is not required.
DirectX Runtime - for auxiliary utilities. Installed the same way if the status is red.
Once you have installed everything that was red, reconnect the board via USB. The port status in the header updates by itself, there is no need to restart GameFlash. As soon as you see the orange JTAG PORT in the corner - it means the CH347 driver installed correctly and you can move on.
Step 2. Flashing
The Flashing tab is the main screen, this is where everything happens. If the board indicator is orange JTAG PORT, you can start. The process itself is simple, let us go in order.
FPGA chip - select your board model: 35T, 75T or 100T. It is important not to make a mistake here.
Firmware (.BIN) - click Select file or just drag your .bin straight into the window. The file size and the wording ready to flash appear under the field right away.
Press the big FLASH button.
Then watch the progress and the log on the right in the Output block. Writing goes sector by sector, and lines like sector N took ~150-300 ms are normal, that is how it should be. The progress bar and the percentages are visible at the bottom left.
At the end a verdict card pops up. Done on green - writing and verification passed, the board is flashed. Error on red - it did not work, look for the reason in the log.
While writing is in progress, the FLASH button turns into CANCEL, meaning the process can always be stopped - either with the same button, or simply with the Esc key.
Separately about reliability - here you do not need to worry about USB. If the connection glitches, GameFlash makes up to 4 attempts by itself: it lowers the frequency along the chain 10 -> 6 -> 3 MHz and reconnects. You do not need to reach in and re-plug anything by hand, the program sorts it all out itself.
Step 3. Reading the Device DNA
Every Xilinx Artix-7 chip has its own unique number - the DNA ID. It is a serial number embedded right into the card, it cannot be changed or faked. Sometimes this ID is needed for binding or just to make sure that this is exactly the board in front of you. GameFlash can read it over JTAG directly from the program.
You open the DNA tab, and then it is all in three clicks.
You click Read DNA ID.
The ready ID appears in the field and is immediately copied to the clipboard - you can paste it wherever you need right away.
If the clipboard got overwritten somewhere, the Copy DNA button puts the ID there again.
For the reading to work, the board must be visible over JTAG - that same orange JTAG PORT badge in the corner. If the indicator is gray or yellow, first sort out the connection and the CH347 adapter drivers, and only then come back for the DNA.
Step 4. DMA speed test
The Test tab comes in handy if you want to make sure the board is fine, or compare it with another one.
For the test to run at all, the board must be connected via USB to the DATA PORT, and the FTD3XX driver must be installed in the system. If the indicator is green (DATA PORT), then everything is in place and you can run the speed test.
After that it is simple. First you choose the type of test - there are four of them, for different tasks.
Full - both latency and throughput at once, and at the end a general verdict PASS or FAIL. It runs for 5 plus 5 seconds, convenient when you want to quickly understand whether the board is good or not.
Latency - small 4 KB reads. It shows the minimum, maximum and average delay plus how many reads per second the board pulls.
Throughput - large 16 MB reads. Here we look at the sustained speed in MB/s, that is how much the board holds in a stream.
Stress - 16 MB reads in 8 threads, and so on until you stop it yourself. A good check of stability under load.
You set the test time yourself. You click the field and type the number of seconds manually, or adjust it with the minus and plus buttons. For the Full test the time is fixed, there is nothing to change there.
It is launched like this.
Choose the test type.
If needed, enter the time in seconds (for the Full test we skip this step).
Press Start and watch the log.
During the test the metrics scroll by in the log, and at the end - the result. If FAIL came up, the program writes directly what exactly is wrong: many read errors, low speed and the like. You will not have to guess and look for the reason blindly, it is all spelled out on the spot.
Language, guide and about
This block is about the little things at the very bottom of the window that you do not notice right away, but they are useful. The interface language, the guide button and the tab with information about the program itself.
In the bottom left corner there is a language switch - RU, EN and CN. By default GameFlash picks up the language from the system itself, so usually there is nothing to touch. But if you want to switch manually, you just click the option you need, and the choice is remembered - next time it opens in it.
Next to it is the Guide button. You click - the online manual opens in the browser. Handy when you forgot something or want to check the steps without leaving the process.
There is also an About tab - it has the version, a short description of GameFlash features and a link to the website.
If something went wrong
Flashing does not always go smoothly - sometimes something breaks halfway. There is nothing to be scared of here: GameFlash honestly writes to the log what exactly happened. Look for the line marked [!] or [x] and the reason. Below we go over the most common situations and what to do about them.
USB/JTAG failure, data was not written (sectors under 10 ms) - the USB channel glitched and the data did not land on the chip. Check the cable, reconnect the CH347, do not run it through USB hubs, plug it straight into the port on the back of the case.
Verify did not match (contents differ) - what was written does not match your file. Check the board power and the JTAG contact, then flash again.
The adapter does not respond (USB froze) - the CH347 hung on USB. Reconnect the adapter, try another USB port and run the flashing once more.
OpenOCD exited with an error, Code: N - it failed to open the adapter or the chip. Check the CH347 driver on the Drivers tab and verify how the board is connected.
NO BOARD in the header - the adapter is not visible at all. Check the USB cable and the driver, reconnect the CH347.
A couple of general observations that save a lot of nerves. A healthy write goes in sectors of roughly 150-300 ms - that is a normal rhythm. But if took less than 10 ms flashes in the log, that is already a failure, the data did not land. The program notices this itself and restarts the write, so usually you do not need to intervene.
And the main rule: if the flashing did not work four times in a row, the problem is almost always in the hardware around it, not in the board itself. The cable, the USB port, the driver or a bad JTAG contact. Change the cable or the port, seat the board more firmly in the slot - and usually after that everything falls into place.