Comments
Minnesota, USASlush.filter3 years ago

More progress on this - I've been able to get a grip on how the map seed and Jason spawn algorithm works.

Lately I've been hammering on Jason's spawn and behaviors during the game while he's not on screen : Jason takes an Action ever so often. His actions are driven by a script that is running on a loop, I'll refer to this as Jason's Action Table.

Each entry in the Action Table sets 4 properties of Jason to determine what he's doing. The four properties of an entry are:

  • Jason's current area (Outer Loop, Inner Loop, Forest, Cave, etc. etc.)
  • Jason's approximate progress on the path. ( how far along the path he is )
  • The number of seconds where Jason will stay at this location.
  • Whether or not he's visiting a cabin, and if so, what cabin number he's in.

During map setup, Jason can start on one of three positions in his Action Table, I'll call these positions Route A, B and C. This is governed by the global timer during the randomization screen (the black screen between title and counselor selection)

Due to the way the game selects his starting position, he will have a 50% chance to be on Route A (spawn outside of caves), a 25% chance to be on Route B (spawn on outer loop, heading to woods), and a 25% chance to be on Route C (spawn on outer loop, heading to cave loop)

I've pulled a ton of data from the Rom and compiled some tables, but there are a few more things I need to verify before posting to make sure it's all accurate.

SqueekJ and PGHGuitarGuy like this
Minnesota, USASlush.filter3 years ago

Indeed, I'm having lots of fun in the code! :) It's a bit messy, and somewhat brilliant at the same time.

I found the counselor placement mechanism; The basics go like this :

  • Use the global timer to pick a memory address from $0000 - $FFFF
  • Use that selected memory address and read forward to pick a cabin for Counselor 0 (George)
  • If the cabin is occupied, do run a loop until we find an empty cabin.
  • Place the counselor in the cabin.
  • Step forward in memory from the last selected memory address to prep for the next placement.
  • Repeat this process for each Counselor

At the end of the process you have 6 cabins occupied and 4 unoccupied. There is also a "failover" cabin if this process couldn't find a good spot for some reason.

Minnesota, USASlush.filter3 years ago

Verified Dugongue's findings on the RNG seed at boot and he's 100% right. The initial global timer starts as a sum of the memory addresses from $000 - $7FF. It's a byte value though, so its only a 'checksum' byte of sorts that gets shoved in as the initial global timer value at boot.

Furthermore, the global timer ticks up and finally locks in RNG for counselor spawn at the black screen right before you see the map. I'm working out how the game picks out the counselor start locations.

Looks like counselors can only exist in 10 of the cabins. Not sure if this is true during gameplay (maybe someone else can verify?) I'll post findings when I know more.

Chimp likes this
Minnesota, USASlush.filter3 years ago

Hello Ft13 runners!

Was doing some shenanigans with this game's code last night and thought I'd share this Game Genie code with you. It allows you to access glitched counselors from the map screen.

Normally in the game, the counselors are assigned an ID number from 0-5. This code lets you access counselors with much higher ID numbers.

A couple of notes :

  • To access the glitch counselors, just keep pressing right on the first map screen. You'll eventually see the glitch names.
  • Some of the glitch counselors will crash the game.
  • For a good time, try Gemark :)

Game : Friday the 13th Game Genie Code : NNLTYE

Have fun!

Minnesota, USASlush.filter3 years ago

Great theory!

I rewatched the clip and yes indeed, the health pickup from the friendly bullet during the death anim restores your health a bit.

I think I have a way we can put this to the test, stay tuned! :)

beerfullofbelly likes this
Minnesota, USASlush.filter4 years ago

Coming back to this post because this was the first milestone I set for myself. Happy to say that I PB'd on Ninja Gaiden (NES) last night at 12:53!

Thanks to all you Ninjas for the feedback and encouragement during the process! Not done with this game yet, there is plenty of time left to save. Lets Go! :D

Minnesota, USASlush.filter4 years ago

I run Ninja Gaiden in FCEUX and was wondering if anyone knew of any autosplitter scripts for this game?

Minnesota, USASlush.filter4 years ago

Hi all, I've been watching speedruns for a while now and absolutely love the format. I'm also a big fan of the 80's and 90's era console games / tech.

Current goal is a sub 13min on Ninja Gaiden for the NES by the end of 2020. This game was a juggernaut when I was a kid. Lets go!

Deleted
and jaystew like this
About Slush.filter
Joined
6 years ago
Online
2 years ago
Runs
8
Games run
Ninja Gaiden (NES)
Ninja Gaiden (NES)
Last run 3 years ago
7
Runs
Games followed
Ninja Gaiden (NES)
Ninja Gaiden (NES)
Last visit 2 years ago
341
visits
Games moderated
Ninja Gaiden (NES)
Ninja Gaiden (NES)
Last action 2 years ago
1
action