Kirby Triple Deluxe and Planet Robobot - Infinite HP, CT tables for Nintendo 3DS

skolomir

New Member
Newbie
Joined
Mar 21, 2024
Messages
2
Reaction score
0
Trophies
0
Age
44
XP
94
Country
Serbia, Republic of
Tested on:

Cheat Engine 7.7
Azahar 2125.1.3
CPU: i5-10400
RAM: 16 GB
GPU: Nvidia 1650, 4 GB RAM
Windows 10 Pro, 64-bit

Cheat table for the following games:

Kirby Triple Deluxe, USA version
Title ID:
000400000010BF00

Kirby Planet Robobot, USA version
Title ID:
0004000000183600


FOR USERS

Double-click the script and it will load in Cheat Engine.

F1 - enables the cheat
F7 - disables the cheat
Alt+F1 - full scan. This was needed for testing and has no function during gameplay, unless you want to force a full scan.

These keys were chosen because they do not have a native function in the emulator.

This was tested on the Azahar emulator.

It does not matter which emulator you use, or whether it is the MSVC or MSYS2 version, because the cheat uses an AOB scan, and that is the same in every emulator.

You only need to press F1 once, when you load the game or when you are already in a level.

There is no need to press it again when you return to the map or move on to another level, because the code automatically searches for the new memory address where the health value is written.

The F7 key is there just in case you want to disable the cheat for any reason.

Supported emulators:

- Azahar
- Citra
- Lemonade

To add new emulators, see the developer section below.

When you enable the cheat after launching the game, the first scan will take longer, maybe 7-8 seconds, while the following scans should take around one or two seconds.

The first scan takes longer because the data has not been cached yet.

In practice, this means that after starting the game, when you load a playable level, if those 7-8 seconds have not passed yet and you get hit, your health will decrease.

That is why it is best to wait a little when you first enter a level, so that the full scan can complete and the data can be cached.

If an enemy does damage you, one of the next hits will increase your health again, setting it to maximum, because the cheat will activate in the meantime and find the memory address where the health value is written.

Health only increases when you get hit. It does not increase by itself.

The cheat will be most useful during boss fights, but you can also keep it enabled throughout the entire game. I did not notice any side effects.


SIDE EFFECTS

There are three side effects:

1. F1 and the browser
2. Slowdown when the emulator is out of focus
3. Waiting for the cheat to activate


1. F1 and the browser

If you press F1 while Cheat Engine is focused, even if the emulator is running and the game is running in the background, the Lua script help page will open in your browser.

Therefore, do not press F1 until you have started the game and the emulator window is focused.

If you have started the game and then press F1, the browser will not open.

If the browser pop-up bothers you when you press F1 while Cheat Engine is focused, modify the code, or ask an AI model to do it, and choose another key or key combination.


2. Visiting Cheat Engine while you are on the map

If you switch to Cheat Engine while you are on the map and then press F1 for the first time, the code will perform a full scan.

Since this is the first scan and there is no cached data yet, CPU usage may reach 100%, and audio stuttering may occur.

There should be no slowdown in the game while the emulator is focused. The slowdown should only happen if another window is focused while the game is running in the background and Cheat Engine is performing a full scan.

Because the first scan can put a heavy load on the CPU, you can use a smaller number of logical cores, or set the process priority to low.

Keep in mind that if you use a smaller number of logical cores, the scanning process may take significantly longer.

On my system, with 12 cores, the full scan took around 7 seconds. With one core, it took around 40 seconds.

I did not notice any slowdown in the game while Cheat Engine was running in the background. Slowdown only happened when a window other than the emulator was focused, because Windows always gives priority to the window that is currently in focus.

If you start playing a level and an enemy hit reduces your health, move away somewhere for a few seconds until the cheat activates, and then continue playing.


3. Waiting for the cheat to activate

Depending on your computer, a full scan may take anywhere from a few seconds to several dozen seconds.

On my system, a full scan usually took around 7 seconds, while a fast scan, after the full scan had already been completed, took less than one second.

Those are the values I usually saw in the console. In practice, you should add another second or two.

When you start the game and press F1, then enter a level, wait a few seconds for the data to be cached and for the first full scan to complete, and then continue playing.

Or simply keep playing even if your health decreases, because if the full scan takes five seconds, plus one extra second for activation, that is six seconds total. The chance of being killed in six seconds is small.

In any case, it all depends on the speed of your computer.



FOR DEVELOPERS AND OTHERS

1. SUPPORTED EMULATORS

This is handled in this part of the code:

```lua
local EMULATORI = {
"azahar.exe", "azaharplus.exe",
"citra-qt.exe", "citra.exe",
"lemonade.exe", "lemonade-qt.exe"
}
```

If you want another 3DS emulator to be included, simply add it here.

2. VARIABLES

```lua
local KIRBY_HP_FULL = 1000
local GAME = "Triple Deluxe"
local TIMER_INTERVAL_MS = 100
local TICKS_BEFORE_RESCAN = 30 -- 30 * 100ms = 3 seconds without address -> rescan
local PROCESS_PRIORITY = 1 -- 0 - low, 1 - below normal, 2 - normal (above normal, high and realtime not supported)
local CE_MAX_LOGIC_CORES = 0 -- 0 - max, or any other number
```

Here you can add the maximum health value.

For Triple Deluxe it is 1000, and for Planet Robobot it is 560.

If you want the scan to start faster, you can lower the timer by setting TIMER_INTERVAL_MS below 100, or by setting TICKS_BEFORE_RESCAN below 30, but I do not think this is necessary.

WHAT DOES THE CT CHEAT DO?

The table finds a unique AOB sequence.

For Kirby Triple Deluxe, it finds:

```lua
local KIRBY_PATTERN =
"?? ?? 00 00 ?? ?? 00 00 ?? ?? 00 00 00 00 00 00 " ..
"50 00 00 00 44 55 00 00 0C 00 00 00"
```

Then, in the first row, instead of the question marks, it uses the hex values for the number 1000.

It does the same for Kirby Planet Robobot:

```lua
local KIRBY_PATTERN =
"?? ?? 00 00 ?? ?? 00 00 ?? ?? 00 00 00 00 00 00 " ..
"32 00 00 00 44 55 00 00 0C 00 00 00"
```

The only visible difference between the two games here is in the second row, in the value 32.

The difference in the first row is not visible here, but the CT for Planet Robobot writes 560 as the maximum value, while the CT for Triple Deluxe writes 1000.


HOW DOES THE SCRIPT WORK?

1. The program searches for both rows and scans the full pattern.
2. It finds and stores the address of the first row, then adds 0x10 to find the address of the second row.
3. As long as the memory address of the second row stays the same, the maximum value is written into the first row:

- 1000 for Triple Deluxe
- 560 for Planet Robobot
4. If the memory address of the second row changes, that row probably no longer exists, because the player has meanwhile:

- exited the emulator and closed it
- changed the emulator
- restarted the game inside the same emulator
- returned to the map
- moved on to the next level

The program then waits three seconds and searches for both rows again, starting from step 1.

OTHER CHEATS AND PERSONAL EXPERIENCE

Kirby Triple Deluxe, 99 lives, AR cheat:

D3000000 10000000
24000088 00000063

I thought there was also a 99-lives cheat for Kirby Planet Robobot, but I could not find it.

It is also possible to make one using an AOB scan, but I gave up on that, because if you already have unlimited health, that should be enough to finish the game.

At least that is how I finished it.

Although I had a physical 3DS console, the plugin I used to find addresses worked at first, and I could activate it while the game was running, but later it started causing the game to crash.

I tested a few cheats I found for the first few levels of Triple Deluxe on PC, and the cheat for the first level worked.

However, if I added AR cheats for both the first and second level, the emulator crashed on the second level.

Since Kirby has somewhere between 150 and 200 levels, that would be far too many lines for an AR cheat if one line had to be entered for every level.

Of course, someone would also have to go through every one of those levels, both hidden and main levels, which would be even more work.

Another problem is that on my computer the game crashed even with only two rows, meaning only two cheats, so I would rather not even think about what would happen if there were more.

That is why I was forced to use Cheat Engine and an AOB scan.

Besides the AOB scan with Claude Sonnet 4.7, I also tried various other strategies for activating the cheat, but nothing worked.

Pointer scan returned zero results, and all other methods we tried failed as well.

I even tried to convert the 99-lives cheat from Cheat Engine into an AR cheat, but the results were inconsistent.

This means that the same AR code, after losing a life, when the number drops from 99 to 98, sometimes works and sometimes does not.

Sometimes the code would activate at 98 lives, and sometimes only at 93 lives, after which I would again see 99 lives on the computer.

The reason for this strange AR-code behavior on PC, where it sometimes works and sometimes does not, lies in a limitation of Cheat Engine itself.

Since Cheat Engine cannot see some of the memory regions used by the emulator, that is, by the 3DS console being emulated, I could not even find that AOB row, that byte sequence, in Cheat Engine.

I found another row that Cheat Engine could see, but as already mentioned, it behaved strangely.

That is why I gave up on the 99-lives cheat. If it is not reliable, who knows what kinds of problems it could cause.

Also, the 99-lives cheat listed above is not perfect either, because it gives 99 lives only for one level.

It resets, meaning it gives 99 lives again when you move to another level, not every time you die.

AR codes are not all-powerful either.

In any case, with these cheat tables for unlimited health, even without the 99-lives cheat, you will be able to finish the game.
 

Attachments

  • Kirby Cheat Tables.7z
    Kirby Cheat Tables.7z
    4.9 KB · Views: 1
  • kirby-triple-deluxe-100-save.zip
    kirby-triple-deluxe-100-save.zip
    1.9 KB · Views: 1
  • kirby-planet-robobot-100-save.zip
    kirby-planet-robobot-100-save.zip
    1,005 bytes · Views: 1
  • Console with priority.png
    Console with priority.png
    396.9 KB · Views: 1

Site & Scene News

Popular threads in this forum