C-Sky Based Game Console

I have a powerbank that also acts as a retro game console, but it can’t be used for charging now. I can still use it to play games, but not as a powerbank. I bought this 3 years ago since it was based on SF2000 (using a MIPS based CPU), and there was an active modding community.

HOCO Powerbank with game console

I bought a new powerbank (that is also a game console), and surprisingly, this uses C-Sky architecture. The brand name is HOCO and it costs about 22 USD (740 Thai Baht). It only has a NES emulator and a lot of custom made games. Note that if you only want a retro game console, this is quite bad (CPU is slow), as a powerbank it seems to be ok.

This one is MIPS based

What is C-Sky

C-Sky is a 32 bit CPU architecture, initially based on Motorola MCore developed by C-SKY Microsystems (China). The company has now been acquired by Alibaba group, and they have switched to RISC-V for their newer processors. This is the reason for my surprise: I thought that C-Sky is already dead.

I learned about the existence of this architecture from this 2018 Phoronix article: C-SKY Architecture Approved For The Linux Kernel, Might Be The Last New CPU Arch (spoiler, another new architecture “Loongarch” was added later), and from this cnx-software post $6 C-SKY Linux Development Board Features GX6605S Media SoC with C-SKY ISA.

I did buy the board at that time (because it was discussed in Hacker News) , but there was not much that I can do. Software support was still weak at that time. It is still weak now: current official QEMU still doesn’t support this architecture, and capstone disassembler also doesn’t support this. Note: I can no longer find that board on AliExpress.

LLM Agents vs less known CPU Architecture

If you skim around this blog, I have done a lot of reverse engineering in my life. I have reverse engineered various programs and devices. Before LLM, I would probably just postpone hacking this device because I know that this will involve a lot of detailed work, and hope that someone else will do the hard work (as in the SF2000).

But this time: i don’t think many people are even aware of this console, so I can’t expect someone else to do the work. Fortunately we can use various LLMs to reverse engineer and create new apps for this console.

This console puts some of its games in the micro sd card. I confirmed that there are some games available even without the sd card present.

Starting beginning of this year, I have used LLMs to reverse various apps for ARM and Intel architecture, and they work very well. I was not aware of many projects using C-Sky (official QEMU doesn’t even support it, capstone doesn’t support it), so I was curious if it can do the job that I asked. It did so very well:

  • It correctly identified the CPU used
  • It found some documentation (mostly in Chinese) and toolchain. I need to register and login to Taixin Semi website so the agents can download related SDKs and documentation (via chrome MCP)
  • It reverse engineered the firmware and one game so that we understand how everything works
  • It patches Ghidra to support for C-Sky
  • It patches an existing game (called “Pocket Change”) to run its own code. It patches the main so that all peripherals are already initialized. It dumped the firmware in the built in flash.
  • It finally creates a custom SDK. This one took a while: it generates several small apps that I need to copy to sd card and run, and give back resulting values so it can analyze register initializations.

So the conclusion is: if we have some documentation (doesn’t have to be in English), LLM agents can reverse engineer things quickly, and even build new SDK and apps for it.

Note: I never have to open the device, and I didn’t connect anything via USB, everything was just done via micro SD card. It does not generate new NES game, it generates native binary for the console.

Custom SDK

I used a combination of Claude (Opus 5.5) and Codex (Astra/Sol 6) to reverse engineer and create an SDK for this game console. So now you can create your own app or games.

http://github.com/yohanes/hoco-public

I hope more people will share their LLM-assisted reverse engineering effort, because redoing something like this takes time (and LLM resources).

Some apps made with the SDK

Sad and Happy

I am a bit sad that AI takes the joy out of reverse engineering. But I am also happy because there are so many apps and things in the world that I want to reverse engineer and customize, and AI now makes all of this possible.

Leave a Reply

Your email address will not be published. Required fields are marked *