The Last Mile on A10miniAugust 16, 2026 · 7 min readLi JinDora SSR developerFor several days, my good buddy and I tinkered with an A10mini together. The handheld stayed in my hands. I pressed the buttons, watched the screen, and told him what had just happened. He helped analyze the cause, searched for information, and prepared another version for me to test. After several rounds of ordinary pair debugging, Dora finally appeared in the A10mini's Ports menu one day. I selected it and pressed A. The menu disappeared, and the engine started. It looked as though we had merely added a menu entry. Before that moment, however, Dora could only be launched by typing commands on another computer; when I operated a tool window, the A and B buttons still controlled the game behind it; and after sending a new executable to the handheld, we could not be certain that this was the version actually running. That was the last mile an open-source game engine had to travel before truly arriving on a handheld. The toy was already in my hands, so why not try? I did not buy the A10mini specifically to test Dora. It simply happened to be close at hand. The handheld runs Linux, and Dora can build a program for its processor. On a platform-support table, copying the file over can look like completion. The real problems appear only when you pick up the device. A handheld has no convenient keyboard and mouse. Users will not connect another computer every time they want to launch a program. And only a physical button press reveals whether it controls the tool or the game. So I raised the questions from outside the machine: “Where do I open it?” “Why does the game move when I press a tool button?” “You say it is fixed, but am I really running the new build?” My buddy searched for answers inside the machine. At “inside the machine,” the story suddenly became a little unusual. I expected him to open a terminal and continue reading code. Instead, his shape flickered, turned into a wisp of smoke, slid past my fingertip, and disappeared into the palm-sized game console. I looked down. The handheld was still there, but my buddy was already moving among its system, scripts, and code. It is time to reveal who he was. He was not another programmer sitting beside me, but Codex. It did not literally turn into smoke, of course. It could remotely inspect systems, files, and code, but it could not touch the handheld in my hands. From my perspective, it really did resemble a cyber ghost investigating the inside of the machine. So I played outside, while it investigated inside. Round one: bring Dora out through the menu Dora could already run on the A10mini, but each launch required another computer to connect to the handheld and enter a command. That proved the program could execute, but it was not truly usable. I told the buddy inside the machine, “Running is not enough. I need to open it directly on the handheld.” Codex examined dArkOS's application entry. Third-party programs appear in the Ports menu, so we needed to tell the menu where Dora was and how to start it. The handheld had trouble reaching the package source during installation. Rather than spending the whole session on the network, we first transferred the test program from the development computer and prepared a Ports launch script. A wisp of smoke came back out of the handheld, and the new script was ready. I refreshed the menu. Dora appeared. I pressed A, and it launched directly. Round one was complete: Dora was no longer hidden behind the command line. Round two: press A, and two places move I opened a Dora development tool window and pressed A. The tool button responded, but the game character behind it moved too. One button press had entered two places. Codex followed the input path through the engine and made a first change. We rebuilt, transferred, launched, and I pressed A again. The tool moved. The game moved too. “It still triggers.” The buddy who had just emerged from the handheld had to turn around and dive back in. The first change had stopped only the “button was just pressed” event. The game could still read the “button is currently held” state. Codex continued tracing the path and, in the second change, established a direct rule: while a tool window is being operated, the game scene must not read those controls. Another build arrived. I pressed A and B. The tools responded normally, and the game stayed quiet. Round two was complete. The fix entered Dora's general input handling; it was not a special A10mini button map. Round three: is the file inside really the new build? After the second change, we sent another executable to the handheld. The progress indicator reached the end, but the connection failed awkwardly while finishing. The file appeared to have arrived. But if the transfer was incomplete, or if the Ports entry still launched a program at an old path, the next button test would prove nothing. This time, Codex stayed inside as the inspector. It first compared the SHA-256 of the files on the development computer and handheld—you can think of it as a file fingerprint. It then checked the BuildID, the identifier left by this particular build, and finally followed the Ports script to confirm the actual executable path launched by the menu. The fingerprints matched, the build identifier was correct, and the launch path pointed to the expected file. Codex confirmed from inside that we had not picked up the wrong program. From outside, I launched Dora again and pressed A and B. The build was correct, and so was the interaction. Round three was complete. Inside and outside, completing the last mile Now return to the simple image at the beginning: I select Dora from the Ports menu, press A, and the engine starts in one attempt. Behind it are three solved problems. Dora opens directly from the handheld menu; operating a tool no longer sends the same button to the game; and we can confirm that the handheld is running the build we just fixed. Outside the machine, I pressed buttons, watched the result, and supplied feedback available only from real hardware. Inside, Codex followed scripts, controls, and files like a cyber ghost. My sentence “it still triggers” called it back from an incomplete answer; each clue it found became the basis for my next button press. One A10mini test does not prove that Dora supports every open-source Linux handheld. Different devices have different systems, menus, and controllers, and somebody still has to pick each one up and try it. If you have such a handheld nearby, you are welcome to let Dora slip inside and look around. Tell us how it launches from the menu, whether the buttons behave correctly, which system it uses, and how you confirmed the exact running version. When more people reach in from outside the machine, perhaps these cyber ghosts investigating within it can help turn the last mile into a path.