Via Mame is there way to make games store player data?
IE in NBA Jam you can enter in your initials to store a profile. I'd like to have this information saved so next time I play I can load my profile.
Isn't NVRam supposed to do this or do I have to create savestates?
It's possible if you completely rewrite the code for the games themselves, and completely rewrite the emulator itself. In other words; No. It ain't happening.

When an arcade game saves your information or your high score, it does so via code written in the game itself and saved to the Non Volatile Random Access Memory (NVRAM). If the game did not specifically record information to this NVRAM, neither will MAME.
When running MAME, it's akin to turning a machine on. When you exit, it's as if you unplugged the machine. If the original machine did not save your high scores or your information, neither will MAME. NBA Jam saves your information because the actual hardware itself did so. Donkey Kong does NOT save your information because the original hardware never did.
There is a hack that used to be in MAME but was subsequently removed. This "hack" (and I'm not using hack in a bad way. Hack just means that it is not how the original hardware worked) allows you to save your high scores when the emulation has ended. You'll just need to learn how to compile your own version of MAME with this high score support added back in. That is the best you can hope for with regards to saving player data unless you are an expert programmer and can reprogram every single game in MAME.
