NES playroutine identifier

Discuss NSF files, FamiTracker, MML tools, or anything else related to NES music.

Moderator: Moderators

SuperWill24
Posts: 31
Joined: Sat May 13, 2017 7:54 pm

Re: NES playroutine identifier

Post by SuperWill24 » Fri Oct 27, 2017 6:50 pm

Karmic wrote:Another small update with only a few fixes for existing IDs. Still 356 unidentified NSFs in Knurek's archive.
You should try identifying all the files in MrNorbert1994's NSF archive. :)

User avatar
Gil-Galad
Posts: 321
Joined: Sat Nov 13, 2004 9:43 pm
Location: Ohio, USA
Contact:

Re: NES playroutine identifier

Post by Gil-Galad » Tue Oct 31, 2017 8:28 am

Is it possible to update the program so that it displays the signature in a readable form on the console?

I am working on a game that was detected as Namco_1. It's programmed by Pony Canyon.

Namco_1
F0 ?? C9 05 90 ?? 38 E9 05 ?? A9 01 END
A0 04 BD ?? ?? 90 03 9D 00 40 E8 88 D0 END
A0 04 90 06 BD ?? ?? 9D 00 40 E8 88 D0 END
A9 01 99 ?? ?? A0 00 98 91 ?? C8 C0 END
(Micronics)
85 ?? 98 29 07 A8 B9 ?? ?? A0 00 11 ?? 91 END

I converted two lines to show you what I mean, generally.

BEQ ?? CMP #$05 BCC ?? SEC SBC #$05 ?? LDA #$01 END

LDY #$04 LDA $????,x BCC 03 STA $4000,x INX DEY BNE END

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Tue Oct 31, 2017 8:38 am

One thing I forgot to mention about the tool: the -m switch should be used to nake it possible to see the sub-IDs (in brackets).

@Gil: Unfortunately not. I still don't really know C.
Visit this dropbox folder to download all of my music rips.

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Sat Dec 30, 2017 9:21 am

Another update.
Attachments
nsfid.zip
(51.4 KiB) Downloaded 446 times
Visit this dropbox folder to download all of my music rips.

tepples
Posts: 21946
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: NES playroutine identifier

Post by tepples » Sun Feb 18, 2018 6:43 pm

A few bug reports (is there a more formal issue tracker?):
  1. Thank you for including my makefile. But the part before gcc needs to be an actual tab character, not spaces. (phpBB corrupted this.)
  2. -c nsfid.cfg doesn't work; it has to be -cnsfid.cfg. It's traditional for programs to accept both.
  3. On non-Win32, the result of GetModuleFileName() is stored in argv[0], so you can mostly just strncpy that into place, then deal with the presence or absence of an executable extension.
  4. ishex() already exists in <ctype.h> under the name isxdigit().
Are you looking for someone else to take over as maintainer?

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Wed Jul 18, 2018 3:39 pm

New ID for Indies_Soft, now identifies Bishoujo SF Alien Battle
Attachments
nsfid.zip
(51.41 KiB) Downloaded 417 times
Visit this dropbox folder to download all of my music rips.

TheJuanCarlos64
Posts: 27
Joined: Wed Dec 14, 2016 8:53 pm

Re: NES playroutine identifier

Post by TheJuanCarlos64 » Wed Dec 26, 2018 4:16 pm

Hey Karmic.
Needs to be updated because some Famicompo entities uses both FT and 0cc entities
Yeah. Still "Famitracker" here.
I need to be added
"0CC-FT 0.3.1X.X"
"j0CC-FT 0.X.X"

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Wed Dec 26, 2018 4:21 pm

TheJuanCarlos64 wrote:Hey Karmic.
Needs to be updated because some Famicompo entities uses both FT and 0cc entities
Yeah. Still "Famitracker" here.
I need to be added
"0CC-FT 0.3.1X.X"
"j0CC-FT 0.X.X"
Try using the /m command line option, where I've added a sub-id for (0CC-FamiTracker). j0CC as far as I know has an identical NSF driver so it can't be identified.
Visit this dropbox folder to download all of my music rips.

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Tue Sep 10, 2019 5:57 pm

Renamed Nice_Code_1 to TXC as I've found it first used in "Qi Wang - Chinese Chess", and updated Hirokazu_Tanaka to identify Stroke & Match Golf.

Remember to use the -m switch, always.
Attachments
nsfid.zip
(51.59 KiB) Downloaded 182 times
Visit this dropbox folder to download all of my music rips.

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Tue Nov 26, 2019 10:22 pm

Slowly but surely scratching more games off the "unidentified" list. Added several players and fixed some IDs, mostly ones only used in a couple games.
Attachments
nsfid.zip
(52.03 KiB) Downloaded 101 times
Visit this dropbox folder to download all of my music rips.

tepples
Posts: 21946
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: NES playroutine identifier

Post by tepples » Tue Nov 26, 2019 10:27 pm

Thank you for the update. But I saw this and couldn't resist:
Rare
AUTHOR: Mark Betteridge, Chris Stamper
Headline: Serious Issues in Rare's Sound Driver?

Article body: No.

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Mon Jan 06, 2020 3:29 pm

I have finally gotten around to creating a github repository for this program. All updates will be pushed there from now on.

I will accept modifications from others, but be prepared to justify any modifications you make.
Visit this dropbox folder to download all of my music rips.

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Thu Feb 13, 2020 1:08 am

OK, major update, not in the signatures but in the utility itself.

I have finally gotten around to rewriting the tool to fix the annoyances I had, including only being able to search by directory, and one at a time. Now you may specify as many directories or files as you wish, with (in my tests at least) limited wildcard support. You can search for any amount of specific drivers. I am using a more sophisticated command line argument parser. -m is no longer an option- it's all you have.

But the real reason I have made this new program is so I could extend the same concept to different systems easily. I have added a new "FILETYPES" directive in the config files that allows you to specify which file types the configuration file is intended to scan, which means you no longer have to make another modification of the program just to scan any other system's rip formats. Additionally, multiple types may be assigned to a config file, so you can scan not only audio rips but ROM dumps too. This of course may be overridden by the user if they still wish to only search through rips, or if they want to scan any file regardless of extension.

The name is now a bit awkward with this new facelift, I guess. Any backronym suggestions or new names would be interesting to hear.
Visit this dropbox folder to download all of my music rips.

User avatar
Memblers
Site Admin
Posts: 3820
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: NES playroutine identifier

Post by Memblers » Fri Feb 14, 2020 12:38 am

I appreciate this program and database, thanks for making this. I've used it now to add driver info display to my NSF player using _popen(). Instead of parsing the output I took a shortcut, and added a -q option into nsfid.c. With that, on an error-free run it prints only the driver name to stdout. I just pass it one NSF file at a time, this is really cool.

Looks like the code has changed since then, if that feature is interesting I could try to merge it in. It worked well for me, at least. If not, I'll just post that source whenever I start doing releases (rest of my program will probably be MIT or BSD license or something).

User avatar
Karmic
Posts: 274
Joined: Sun Jun 05, 2016 2:10 am
Location: Canada

Re: NES playroutine identifier

Post by Karmic » Fri Feb 14, 2020 12:55 am

Memblers wrote:
Fri Feb 14, 2020 12:38 am
I appreciate this program and database, thanks for making this. I've used it now to add driver info display to my NSF player using _popen(). Instead of parsing the output I took a shortcut, and added a -q option into nsfid.c. With that, on an error-free run it prints only the driver name to stdout. I just pass it one NSF file at a time, this is really cool.

Looks like the code has changed since then, if that feature is interesting I could try to merge it in. It worked well for me, at least. If not, I'll just post that source whenever I start doing releases (rest of my program will probably be MIT or BSD license or something).
Interesting use case. Actually I think it might be a good idea for me to restructure the program so you can just use it as a library- you would load a configuration file from disk with a loadcfg() function and I'd have to change the scanfile() function so it returns simply a list of driver names instead of printing them out right then and there. Of course I'd keep a command line version that acts identically to the one now.
Visit this dropbox folder to download all of my music rips.

Post Reply