Hebereke’s Popoitto is a puzzle game from Sunsoft and Success. It skipped North America, but was published in Japan and in PAL regions in 1995. It’s a block elimination game that plays like a mashup of Puyo Puyo and Dr. Mario.
That information is all well known; you don’t need me to summarize the game’s Wikipedia for you. But here’s something new: Hebereke’s Popoitto is also a fairly sophisticated slot machine simulator.
This bit of code stood out to me in Ghidra’s decompiler — I’ve added variable labels so you can see why:
if (p1_held_06067914 == 0x4628) {
launch_slot_dat_06029888();
}
In English:
p1_held_06067914refers to a memory address that changes when player one holds down buttons on the controller.0x4628is the logical OR of the patterns used to represent the buttons Left (0x4000), A (0x400), C (0x200), Y (0x20), and L (0x8).launch_slot_dat_06029888is a function that refers to a file calledSLOT.DAT.
Those points translate to these instructions. At the title screen, hold Left+A+C+Y+L and tap Start. Keep holding the five non-Start buttons.
If you got it right, you’ll see the slot machine screen:
The basic controls are:
- Up: Increase your wager. You can bet 1, 2, or 3 credits.
- Down: Start spinning the reels.
- A, B, and C: Stop spinning the left, middle, and right reels, respectively.
You start with 200 credits. The game ends when you run out of credits or when you hold A+B+C and tap Start.
Getting a match on the Bar symbol puts you in a special bonus mode, where payouts for wins are increased. A row of hearts indicates how many bonus mode spins you have remaining:
A look into this mini-game’s code reveals that somebody put some effort into it. For example, it actually simulates six different slot machines with different odds. Which one you get is determined at startup by this code:
do {
rand_value = get_random_06029500();
machine_id_0606665e = rand_value & 7;
} while (5 < machine_id_0606665e);
This is using the game’s pseudorandom number generator to get a value between 0 and 5. However, it’s going to some lengths to avoid the most straightforward way of doing that, which is dividing the PRNG value by 6, and taking the remainder. That’s because division on the Saturn’s SH-2 processor is quite an involved operation:

The code simulates various slot machine behaviors, like rewarding higher bets and randomly giving wins regardless of player input.
There’s even more beneath the surface. While the reels are spinning, the code below is executing:
if ((&slot_code_06057432)[slot_code_counter_0606666e] == p1_pressed_06067918) {
slot_code_counter_0606666e += 1;
if (slot_code_counter_0606666e == 6) {
slot_code_effect_0606666a += 1;
}
}
else {
slot_code_counter_0606666e = 0;
}
This is a cheat code detector! Enter Right, Down, Left, Up, L, R to improve your odds of getting a match.
The effect eventually wears off, but you can enter the code as many times as you like.
Outro
Alas, this slot machine game doesn’t appear to be in the PlayStation version of Hebereke’s Popoitto.
Thanks for reading. For more on inexplicably hidden mini-games, see my articles on Battle Athletes, Kaitou Saint Tail, and Shining the Holy Ark. And for even more retro game reverse engineering posts, see my website!




Be the first to comment