Page 2 of 2

Re: NES playroutine identifier

Posted: Fri Oct 27, 2017 6:50 pm
by SuperWill24
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. :)

Re: NES playroutine identifier

Posted: Tue Oct 31, 2017 8:28 am
by Gil-Galad
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

Re: NES playroutine identifier

Posted: Tue Oct 31, 2017 8:38 am
by Karmic
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.

Re: NES playroutine identifier

Posted: Sat Dec 30, 2017 9:21 am
by Karmic
Another update.

Re: NES playroutine identifier

Posted: Sun Feb 18, 2018 6:43 pm
by tepples
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?

Re: NES playroutine identifier

Posted: Wed Jul 18, 2018 3:39 pm
by Karmic
New ID for Indies_Soft, now identifies Bishoujo SF Alien Battle

Re: NES playroutine identifier

Posted: Wed Dec 26, 2018 4:16 pm
by TheJuanCarlos64
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"

Re: NES playroutine identifier

Posted: Wed Dec 26, 2018 4:21 pm
by Karmic
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.

Re: NES playroutine identifier

Posted: Tue Sep 10, 2019 5:57 pm
by Karmic
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.

Re: NES playroutine identifier

Posted: Tue Nov 26, 2019 10:22 pm
by Karmic
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.

Re: NES playroutine identifier

Posted: Tue Nov 26, 2019 10:27 pm
by tepples
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.

Re: NES playroutine identifier

Posted: Mon Jan 06, 2020 3:29 pm
by Karmic
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.

Re: NES playroutine identifier

Posted: Thu Feb 13, 2020 1:08 am
by Karmic
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.

Re: NES playroutine identifier

Posted: Fri Feb 14, 2020 12:38 am
by Memblers
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).

Re: NES playroutine identifier

Posted: Fri Feb 14, 2020 12:55 am
by Karmic
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.