Deokishisu
Mr. Magius
- 993
- Posts
- 19
- Years
- If I'm online, it's a safe bet I'm at a computer.
- Seen Apr 27, 2025
Thought this might help out a couple people...
How to Kill the "Killing PC" Glitch
The "Killing PC Glitch" occurs when the player heals at a PC you created (i.e. one that you made out of another map or inserted into a blank map, not a PC that was already in the game and was edited) and hasn't healed at a "real" or "default" PC beforehand. It messes everything up and freezes the game as most of you know. Well, I've done some research, and I've learned how to fix it.
Now, default Nintendo PCs have two levelscripts in the map. The first goes like this:
The second is always the same on every PC map, whose offset is: 1BC05C.
The first is what we have to worry about. When the command "sethealingplace" is used, it's basically setting that this was the last Pokémon Center the player has visited, and allows the Nurse to heal your Pokémon with the generic Nurse script without freezing. The "#" is a value in hex from 1 to 14 in Firered and Leafgreen. That means there are a total of 20 default PCs in Firered and Leafgreen.
Simply add these two levelscripts to your custom Pokémon Center, and your PC won't kill anyone.
However, there is a catch. As far as I can tell, you can't go past the default amount of Pokémon Centers included in the game. That means you can't increase the sethealingplace value past 14 and magically add another PC. If you do that, you'll appear at the last default PC, which happens to be Six Island in FR. The sethealingplace value should correspond to the previous Pokémon Center the player would have normally visited. That way, when your unsuspecting victims-I mean-loving playerbase finds their Pokémon have been eaten by a Lvl. 100 wild Cleffa, they'll go back to the previous town to heal and not, say, your unedited Seven Island's Pokemon Center.
The values go in order. In Firered they start with:
As a totally random example, if you wanted to add a PC between Viridian and Pewter right before Viridian Forest, you would use 0x2 as your value for sethealingplace in your custom PC. That way, if the player dies, they will appear at Viridian's Pokémon Center and not Pewter's or Fuchsia's or another PC.
I don't hack R/S/E, but I'd imagine it'd work in a similar fashion. Someone's welcome to confirm it.
EDIT:
How to Kill the "Killing PC" Glitch
The "Killing PC Glitch" occurs when the player heals at a PC you created (i.e. one that you made out of another map or inserted into a blank map, not a PC that was already in the game and was edited) and hasn't healed at a "real" or "default" PC beforehand. It messes everything up and freezes the game as most of you know. Well, I've done some research, and I've learned how to fix it.
Now, default Nintendo PCs have two levelscripts in the map. The first goes like this:
Code:
#org 0x(offset)
sethealingplace 0x(#)
end
The first is what we have to worry about. When the command "sethealingplace" is used, it's basically setting that this was the last Pokémon Center the player has visited, and allows the Nurse to heal your Pokémon with the generic Nurse script without freezing. The "#" is a value in hex from 1 to 14 in Firered and Leafgreen. That means there are a total of 20 default PCs in Firered and Leafgreen.
Simply add these two levelscripts to your custom Pokémon Center, and your PC won't kill anyone.
However, there is a catch. As far as I can tell, you can't go past the default amount of Pokémon Centers included in the game. That means you can't increase the sethealingplace value past 14 and magically add another PC. If you do that, you'll appear at the last default PC, which happens to be Six Island in FR. The sethealingplace value should correspond to the previous Pokémon Center the player would have normally visited. That way, when your unsuspecting victims-I mean-loving playerbase finds their Pokémon have been eaten by a Lvl. 100 wild Cleffa, they'll go back to the previous town to heal and not, say, your unedited Seven Island's Pokemon Center.
The values go in order. In Firered they start with:
Code:
0x01 = Player's House
0x02 = Viridian City
0x03 = Pewter City
0x04 = Cerulean City
0x05 = Lavender Town
0x06 = Vermilion City
0x07 = Celadon City
0x08 = Fuchsia City
0x09 = Cinnabar Island
0x0A = Indigo Plateau/Pokemon League Entrance
0x0B = Saffron City
0x0C = Route 4/Mt. Moon Entrance
0x0D = Route 10/Rock Tunnel Entrance
0x0E = One Island
0x0F = Two Island
0x10 = Three Island
0x11 = Four Island
0x12 = Five Island
0x13 = [B]Seven Island[/B]
0x14 = [B]Six Island[/B]
^Notice Seven and Six Island are switched.
NOTE: The levelscript for the player's house is actually in the player's room,
and not on the first floor.
I don't hack R/S/E, but I'd imagine it'd work in a similar fashion. Someone's welcome to confirm it.
EDIT:
Sorry to bump, but here are the values for Pokemon Emerald:
Code:0x01 = Player's Room (male) 0x02 = Player's Room (female) 0x03 = Petalburg City 0x04 = Slateport City 0x05 = Mauville City 0x06 = Rustboro City 0x07 = Fortree City 0x08 = Lilycove City 0x09 = Mossdeep City 0x0A = Sootopolis City 0x0B = Ever Grande City (Victory Road) 0x0C = Littleroot Town (left) 0x0D = Littleroot Town (right) 0x0E = Oldale Town 0x0F = Dewford Town 0x10 = Lavaridge Town 0x11 = Fallarbor Town 0x12 = Verdanturf Town 0x13 = Pacifidlog Town 0x14 = Ever Grande City (Pokemon League) 0x15 = Southern Island 0x16 = Battle Frontier
EDIT: Updated the list. Thanks colcolstyles.
Last edited: