11 March 2016 - Forum Rules

Main Menu

Wall climb in ninja gaiden 1 (nes)

Started by DANGER X, February 15, 2017, 04:44:40 PM

Previous topic - Next topic


As you see this can be done in ninja gaiden 2 and ninja gaiden 3 but not in ninja gaiden 1, so I was thinking maybe there is a way to take the values from one of these games and put it in ninja gaiden 1, but I realize that is not that easy, and I got no clue how do do it.
Does anybody have any idea what I must do? (Other thing, you can climb in ninja gaiden 1 too but only on ladder, maybe take the values from there...maybe)
Join my nes forum


It may be possible to identify what differentiates regular walls from ladder walls, detect where in the code the game checks for the difference and make it so it works on any wall (by changing the required value). This would be the ideal way.
The hard way would be to change every wall to have the same property as ladders (maybe impossible).


The harder way would be to turn the entire game into a Ninja Gaiden 2/3 hack =)


Join my nes forum


+1 To nesrocks' solution.

The game already has the wall-climbing in the engine.  Just make it so all walls are "ladder" walls.


That was one of my ideas (read the end)
The question is how to do it?  :-X
Join my nes forum


Quote from: DANGER X on February 16, 2017, 12:08:34 PM
That was one of my ideas (read the end)
The question is how to do it?  :-X
This is a quick idea of what I'd try:
1. Start a RAM Search and search for different player states (stand still -> search for equal to previous value -> run left -> search for not equal to previous value -> jump -> etc.)
2. Once you have the RAM address of the current player state and the hex number of the wall grabbing state, use the debugger and set a write breakpoint in that address with the condition being writing that hex number of the wall grabbing state.
3. Once you got the place of the code where this happens, just change the hex number in the ASM code to the hex number of the ladder state.

A better way would be to find where it reads the player state and then branches to the wall grabbing code, and change that to branch to the ladder code instead.
There has to be a better life.


As I recall, ladders were only used for screen transitions in NG1?
If so, there's one bug right there possibly that would have to be fixed for making any wall a "ladder".
"My watch says 30 chickens" Google, 2018


Actually not only for that, some can be found in the middle of the stage.
Join my nes forum


It looks like you can do this for the most part, but it's a little buggy:

In terms of cheat codes (unencrypted)

In a hex editor:
Change x1EC01 to 09
Change x1EC32 to 09

Ladders normally only occur on the right-hand side of walls, so the game expects them to be like that.  This makes it difficult to latch onto left-side walls, since you have to let go of the jump button before you hit (if jump and left are pressed together, you attempt to dismount the wall since this is how you get off of right-facing ladders).  It might be possible to get around this.

Edit: Try copying the following bytestring to x1EC01:
A5 84 29 40 F0 14 A5 28 AA C9 81 F0 36 4C 12 EC

And as mentioned above change x1EC32 to 09.  Those changes get rid of most of the buggy behavior.


Thanks, I will try when I get home!

February 18, 2017, 10:44:20 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Great man, It works thanks a lot, You are in the hack credits, is the least I can do to show my gratitude.
Join my nes forum


Something I noticed when playing around with this: In some situations you can use the wall climbing to go below the screen, and if you keep going you wrap around to the top of the screen.  You can probably change the maps around so that this doesn't happen.  I don't have a fix for this at the moment.  I could possibly make it so that you die if you go below the screen, or I might just be able to stop movement.


Yeah I saw that and I though the same thing, to change the map.
Join my nes forum


To stop the vertical wrap-around without having to redo the maps:

Paste this to x1EC30:
C6 8A A5 8A C9 10 B0 04 E6 8A F0 F4 A9 0C 4C 2D F6

Change x1EC2A from x12 to x0D

It looks like vertical screen transitions still work just fine since Ryu is still on-screen when they happen.  The code above stops him just a little bit off screen.


Well, I think this fixes most of the bug, we are finished with this one.
Join my nes forum


I tested the rom, it work well in most of the stages, seems like stage 1 is the only one with problems now, so I think we are going to redo this stage to avoid having a "glitchy" game.

When you climb on s wall, sometimes when you get to the top, Deadpool will be traspassing the wall instead on going to the top of it, it doesn't happen in another stages, so I believe this are values for those walls


Join my nes forum


Yeah, I'm occasionally encountering glitches with this too.  Sometimes when you climb to the top of a wall and jump off, if you press the d-pad at just the wrong moment you can fall through the floor (it can be difficult to replicate).  I can change the maximum height that you can climb so that you don't go too far above the walls, although I'm not sure if that is what really causes the glitch.

Also, sometimes when you get to the top of a wall, you are high enough above it that if you press up and right at the same time, you start walking on top of the platform without having to jump at all.  I kind of like this, actually.  It didn't really make sense before that a ninja would be able to climb ladders but not actually get to the top of the platform without jumping off.  The downside of this is that the levels weren't really designed for this, so sometimes you get to the "top" of the platform, but it's actually just a little bit too low, such that if you walk forwards you fall through the floor.

Edit: With the changes discussed in previous posts already in place, changing x1EC35 to x4D makes it so that Deadpool can't climb as high above the screen.