User:Koitsu/Game cheats: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Created page with "= Game cheats = Throughout the years I've reverse-engineered a lot of games, as well as Game Genie or Pro Action Replay/Rocky codes, to figure out the internals. In most cas...")
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 21: Line 21:
* For infinite energy, setting $0410, $0411, and $0412 all to $09 is needed -- just $0412 by itself is insufficient: you CAN die in some situations!
* For infinite energy, setting $0410, $0411, and $0412 all to $09 is needed -- just $0412 by itself is insufficient: you CAN die in some situations!


== Code Name: Viper ==
== Adventures of Dino Riki, The ==


{| class="wikitable"
{| class="wikitable"
! Location !! Description
! Location !! Description
|-
|-
| $06E0 || Handgun bullet count.  Range $00 to $80
| $0089 || Current health (energy) value.  Range $00 to $04
|-
|-
| $06E2 || Machine gun bullet count.  Range $00 to $80
| $009D || Active weapon type: $00 = rock, $01 = axe, $02 = boomerang, $03 = torch.  Other values result in glitches and/or game crashing
|-
|-
| $06F8 || Current health (energy points) value.  Range $00 to $04
| $009E || Wings status: $00 = player lacks wings, $01 or greater = player has wings
|-
|-
|}
|}
* Current health (energy points) value can exceed the number of health containers (ex. if health container count is 2 and $06F8 = $04, then player will actually have 4 health)


== River City Ransom ==
== Code Name: Viper ==


{| class="wikitable"
{| class="wikitable"
! Location !! Description
! Location !! Description
|-
|-
| $04C7 || Player 1 money, cents value.  BCD encoded.  Range $00 to $99
| $06E0 || Handgun bullet count.  Range $00 to $80
|-
|-
| $04C8 || Player 1 money, dollars value.  BCD encoded.  Range $00 to $99
| $06E2 || Machine gun bullet count.  Range $00 to $80
|-
|-
| $04C9 || Player 1 money, 100-dollars value.  BCD encoded.  Range $00 to $09
| $06F8 || Current health (energy) value.  Range $00 to $04
|-
|-
|}
|}
* Money example: for player 1 to have $367.49, you'd need $04C7 = $49, $04C8 = $67, $04C9 = $03
* The current health (energy) value can exceed the number of health containers (ex. if health container count is 2 and $06F8 = $04, then player will actually have 4 health)


== Zelda 1 (The Legend of Zelda) ==
== Legend of Zelda, The ==


{| class="wikitable"
{| class="wikitable"
Line 65: Line 64:
* Invincibility timer: the game core decrements this by 1 fairly quickly (a value of $FF will reach $00 in approximately 8 seconds).  For "visually accurate" permanent invincibility, use a value $FF with a compare value of $00 (i.e. timer resets to $FF once reaching $00)
* Invincibility timer: the game core decrements this by 1 fairly quickly (a value of $FF will reach $00 in approximately 8 seconds).  For "visually accurate" permanent invincibility, use a value $FF with a compare value of $00 (i.e. timer resets to $FF once reaching $00)
* [http://forums.nesdev.org/viewtopic.php?p=173537#p173537 Details of how the bomb/rupie/key printing code works]
* [http://forums.nesdev.org/viewtopic.php?p=173537#p173537 Details of how the bomb/rupie/key printing code works]
== Mega Man 2 ==
{| class="wikitable"
! Location !! Description
|-
| $004B || Invincibility timer value.  Range $00 to $FF.  See below notes
|-
|}
* Invincibility timer: the game core decrements this by 1 fairly quickly (a value of $FF will reach $00 in approximately 4 seconds).  For "visually accurate" permanent invincibility, use a value $FF with a compare value of $00 (i.e. timer resets to $FF once reaching $00)
== River City Ransom ==
{| class="wikitable"
! Location !! Description
|-
| $04C7 || Player 1 money, cents value.  BCD encoded.  Range $00 to $99
|-
| $04C8 || Player 1 money, dollars value.  BCD encoded.  Range $00 to $99
|-
| $04C9 || Player 1 money, 100-dollars value.  BCD encoded.  Range $00 to $09
|-
|}
* Money example: for player 1 to have $367.49, you'd need $04C7 = $49, $04C8 = $67, $04C9 = $03

Latest revision as of 03:51, 29 June 2016

Game cheats

Throughout the years I've reverse-engineered a lot of games, as well as Game Genie or Pro Action Replay/Rocky codes, to figure out the internals. In most cases I do this because I don't want have to "grind" -- given enough time, I'd be able to accomplish the task at hand, so why not skip all that nonsense? A good example is gold/currency. I paid my dues sitting in front of a TV for hours as a kid, so I think I've earned the right.  :-)

Anyway, I wanted to make a list of games and memory locations locations of such things. I tend to focus on just zero page/RAM data and not stuff in ROM, but technically any memory location can be used (the tricky part with NES games is being precise about which PRG page has the cheat applied to it -- that's one of the reasons many emulators have a "Compare" field alongside "Location" and "Value"!).

All below games are assumed to be the NTSC versions. I'll try to denote differences between game versions (e.g. PRG0 vs. PRG1) if it applies.

1943 - The Battle of Midway

Location Description
$0410 Current energy, ones place. Range $00 to $09
$0411 Current energy, tenths place. Range $00 to $09
$0412 Current energy, hundredths place. Range $00 to $09
  • For infinite energy, setting $0410, $0411, and $0412 all to $09 is needed -- just $0412 by itself is insufficient: you CAN die in some situations!

Adventures of Dino Riki, The

Location Description
$0089 Current health (energy) value. Range $00 to $04
$009D Active weapon type: $00 = rock, $01 = axe, $02 = boomerang, $03 = torch. Other values result in glitches and/or game crashing
$009E Wings status: $00 = player lacks wings, $01 or greater = player has wings

Code Name: Viper

Location Description
$06E0 Handgun bullet count. Range $00 to $80
$06E2 Machine gun bullet count. Range $00 to $80
$06F8 Current health (energy) value. Range $00 to $04
  • The current health (energy) value can exceed the number of health containers (ex. if health container count is 2 and $06F8 = $04, then player will actually have 4 health)

Legend of Zelda, The

Location Description
$04F0 Invincibility timer value. Range $00 to $FF. See below notes
$0658 Current bombs. Range $00 to $10, though game core will work with values up to $FF
$066D Current rupies. Range $00 to FF
$066E Current keys. Range $00 to $09, but game core will work with values up to $FF
  • Invincibility timer: the game core decrements this by 1 fairly quickly (a value of $FF will reach $00 in approximately 8 seconds). For "visually accurate" permanent invincibility, use a value $FF with a compare value of $00 (i.e. timer resets to $FF once reaching $00)
  • Details of how the bomb/rupie/key printing code works

Mega Man 2

Location Description
$004B Invincibility timer value. Range $00 to $FF. See below notes
  • Invincibility timer: the game core decrements this by 1 fairly quickly (a value of $FF will reach $00 in approximately 4 seconds). For "visually accurate" permanent invincibility, use a value $FF with a compare value of $00 (i.e. timer resets to $FF once reaching $00)

River City Ransom

Location Description
$04C7 Player 1 money, cents value. BCD encoded. Range $00 to $99
$04C8 Player 1 money, dollars value. BCD encoded. Range $00 to $99
$04C9 Player 1 money, 100-dollars value. BCD encoded. Range $00 to $09
  • Money example: for player 1 to have $367.49, you'd need $04C7 = $49, $04C8 = $67, $04C9 = $03