I previously wrote this:
When doing reverse engineering, it’s good to have a starting place – a piece of code that does something that you understand. That’s why I search memory snapshots for naughty words.
Since many games forbid certain strings from appearing on the high score screen, it’s a good bet that finding a list with XXX and SEX will lead you to a sanitizing function.
This has come up enough times that I decided to write an article about it. Below are some of the weird and wonderful sanitization regimes you’ll find in Saturn games.
Try entering your name as SEX in Virtua Fighter for Saturn, and you might find that it’s been replaced with OKA:
Why OKA? Presumably it’s because the main programmer for the Saturn port was Keiji Okayasu:
The game checks for these names: SEX, XXX, XX_, X_X, _XX. If it finds one of them, it replaces it with a random one of these names: OKA, R_Y, SHO, J_I, M_K, FUJ, MOR, TAN. In the U.S. version, the forbidden strings table is at 0606a2a0.
Some of these are identifiable from the game credits: Ryoya Yui was a designer; Hiroaki Shoji, Junichi Ishito, and Motoi Kaneko were programmers. But the others are obscure.
Other games also replace forbidden words with names of developers. For example, Golden Axe: The Duel will replace SEX with TAK in honor of game planner Motoshi Takabe. Or is it in honor of programmer Tomoaki Takayanagi?
There are games that swap out naughty words with a name that refers to the game itself. For example, Decathlete uses DEC:
Amusingly, so does the arcade version of the next game from the same team, Winter Heat:
This is fixed in the Saturn versions, which use W_H.
Several Capcom games use CAP as their replacement word:
Most Taito games seem to use AAA – Darius Gaiden and Elevator Action Returns are two examples on Saturn. Layer Section 2 would use AAA, but doesn’t due to a bug!
Here’s part of Ghidra’s decompilation of the sanitization function with labels added:
The issue is on the first line: it should be checking whether the insertion index is greater than 2, not 3. As-is, it interprets the END pseudo-character as part of the name, and winds up replacing it with a space. This causes the string comparisons to fail – the first one looks for "SEX " instead of "SEX":
Other games have some fun with players who are being edgy. Cotton 2 replaces SEX with SFX, for example:
If you enter SEX into Sonic Wings Special, it might record your name as PEE:
It chooses from eight different replacements at random:
In addition to the usual XXX, SEX, and such, Virtua Fighter 2 has some weird ones. HAC gets replaced with YES and OSI gets replaced with NO:
OSI gets replaced in several games, but I don’t understand what the reference is.
Some games censor AUM, like Last Bronx:
Aum Shinrikyo is the name of the death cult that attacked the Tokyo subway with a chemical weapon in 1995, so this one I do understand.
My favorite of all of the high score name replacements is Bubble Symphony, which won’t let you put in AAA, BBB, CCC, etc. It replaces them with a randomly-selected Taito game title:
You can see the full list of replacements on Gaming Hell’s page.
Daytona USA also has a selection of high score initial Easter eggs – see the list at Sega Retro.
There are plenty of non-Saturn games that censor certain words, too. Battle Arena Toshinden 2 on PlayStation blocks various extremist group names in addition to aforementioned AUM – it won’t let you put in ETA, IRA, or PLO.
As games moved online, worries about inappropriate user-generated content increased. Outrigger for Dreamcast has a comical list of misspellings of “masturbate,” but somehow misses the correct one:
Phantasy Star Online has a very similar list.
I hope you enjoyed this little detour into an understudied phenomenon in gaming. Leave a comment if you have more examples of this sort of thing! And in case you’re wondering, I cheated to get high scores at all of these games.












