Cheat Device History and Lessons Learned

I created a cheat device for PlayStation 2 similar to CodeBreaker, GameShark, and Action Replay. In this post I share my motivations and experiences while developing it.

Cheat Device approaching version 2.0!

I’ve been very busy with life stuff but have been working on Cheat Device occasionally for a few months and am ready to share a new update! A feature many people have asked for is now available: console-side cheat database editing! This took me a while due to how I was allocating memory in older versions but the code has been refactored to allow for editing without imposing large loading times.

Cheat Device for PS2 Update

I’ve updated cdb-util (formerly makecdb) to support extracting text cheats from CDB files. CDB (CheatDataBase) is the format used by Cheat Device for storing its cheat database (as the name implies ūüôā ). A few users requested a way to extract cheats from existing CDB files so I figured it would be a useful addition. Download:¬†cdb-util v1.2

No-name Altera MAX II Dev Board

Microcontrollers are the heart of many DIY projects, but there are some situations where a CPLD or FPGA is more appropriate.¬†There are many development boards available from Terasic, but I wanted to try something different. I’ve heard “no-name Chinese FPGA boards” can often be more trouble than their worth, but I decided to take a chance with a rather inexpensive CPLD one. This is a¬†fairly bare bones Altera MAX II development board from a seller on AliExpress named “EDA Board”.

Cheat Device for PS2

I started work on this in October of last year, and after a few months of working on it on-and-off, I released the first version in April. It’s a sequel of sorts to my previous PS2 cheat device project, but I wanted to make something from scratch. The code got gnarly on the old menu so I decided to discontinue working on it and create this. Maybe I’ll move on from PS2 stuff some day, who knows :-).

Release of pactool and gimtool

My tools for modifying Initial D are ready to go! I’ve uploaded the source here¬†for anyone who is interested.

Initial D Progress

Some good progress has been made on the Initial D project.¬†pactool seems more or less solid and has been able to extract and create PAC archives without issues. gim2png (really gimtool now) can convert GIM textures to PNG as well as inject a PNG back into a GIM. It’s much easier to inject a PNG rather than create the whole GIM structure from scratch since I don’t fully understand the format.

New host

My Hostgator subscription is coming due next in October, but I’ve decided to switch to Namecheap. I never had any issues with HostGator, but Namecheap’s offerings are much cheaper for what I need (nothing special, just PHP and MySQL access). Everything has been copied over, so hopefully no snags will come along.

Initial D Special Stage Translation

Initial D Special Stage is a port of the popular arcade game released by Sega. There are English releases of the arcade versions, but none of the home versions have ever¬†been released¬†outside of¬†Asia. This is¬†too bad, since Special Stage was a great port considering the hardware limitations of the PlayStation 2 (the arcade version’s hardware uses TWO video processors and has 8 times more video memory than a¬†PS2!). Nevertheless, I’ve decided to start work on a translation patch for this game. Yes it’s a racing game and the text is probably not that important to read, but it¬†can be challenging to navigate the menus that are entirely Japanese.

ps2rd Cheat Device GUI Update

Last year I began work on a cheat device GUI for ps2rd (an excellent remote debugger for the PlayStation 2). The goal of the project is to create a menu-driven cheat device similar to CodeBreaker or Action Replay using ps2rd’s ASM cheat engine. I wanted this to be just a cheat device, so I removed most of the debugging functionality from ps2rd for my project. I had some freetime over the past few days and made some updates to it.

Text Encoding in Kingdom Hearts

Over the past few weeks, I’ve taken a look at the way text is stored in the game¬†Kingdom Hearts.¬†Like other games made by Square, Kingdom Hearts uses a special character map for strings throughout the game. The US and PAL versions of the game use a character map consisting of Latin characters and common symbols. The Japanese releases use a¬†different¬†table containing Japanese characters as well as uppercase Latin letters (there are a few lower case ones though, but not a full alphabet). Mirror

Last year, I created a WaybackMachine-style backup of CodeTwink and posted it here. For those who don’t know, CodeTwink is the semi-official site for the CodeBreaker line of video game cheat devices (similar to Action Replay and GameShark). Anywho, here’s my copy: link. At the time I was wondering if the site was going to stay around for much longer (it hasn’t been receiving any updates for quite a while now).


Hi! I’m a software engineer who likes to drive change and deliver impactful results through technology and collaboration. I have had the privilege of working with bright minds and talented professionals who share this vision. I enjoy the challenge of developing solutions and seeing them through to completion. This site primarily focuses on my personal projects. If you have any questions about my projects or the work I do, please feel free to email me!