Any interest in an open source GoodNES clone?

A place where you can keep others updated about your NES-related projects through screenshots, videos or information in general.

Moderator: Moderators

proxy
Posts: 68
Joined: Tue Mar 08, 2011 9:45 am
Contact:

Any interest in an open source GoodNES clone?

Post by proxy »

So I've recently decide to revisit some NES related dev and I noticed something. GoodNES is a great ROM organizer, but it has a few faults...

* The database is stored compressed in the .exe itself, so it is difficult for 3rd party tools to use it if they choose.

* It is windows only! I use linux for my primary computer, and I'm sure that OSX has NES emulators too.

* We as a community have little to no control over when and how it gets updated, the last GoodNES was from a few years a go. Since then, iNES 2.0 has been proposed and GoodNES will end up incorrectly "fixing" these headers.

I have already been able to dump the database in plain text from the GoodNES executable, so problem #1 is solved. Now we need some tools which can use this. So, would there be any interest in the community for a GoodNES clone which was open source? I'll probably do some work on this since like I said, I use linux for my day to day computing and do have a need to keep my collection organized.

I think it would be generally beneficial. While the number of official NES ROMs is certainly finite and probably most if not all have been accounted for, certainly home brew and test ROMs can continue to come out as time goes by. It would be nice if there was a way for us as a community to be able to manage these ROM collections in an organized way.

I plan to conform the GoodNES standard as far as naming and all of that. But I also plan to keep the DB as a separate file so it is easy to update it over time.

What do you guys think?
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

I would like to see a Free clone of GoodNES, except for the following:
  • I have qualms about using a database extracted from GoodNES due to compilation copyright and sui generis database rights issues. It might be better to start with BootGod and/or ZapFC databases.
  • The way (PD) games were managed in the old database, if I remember correctly, encourages keeping outdated versions around.
  • Putting the ability to make a report analogous to NESMiss.txt into the standard distribution is a bad idea because it encourages hoarding.
Another killer feature would be automatic correction of not only headers but also the various overdumps and CHR underdumps floating around. I have some ideas on how to do this.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Any interest in an open source GoodNES clone?

Post by lidnariq »

I have no problem with anything else you've said, but
proxy wrote:* It is windows only! I use linux for my primary computer, and I'm sure that OSX has NES emulators too.
WINE (and I assume DarWINE) does a beautiful job of running windows console mode applications like GoodNES, so this isn't any worse than any other closed-source software.
frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Post by frantik »

tepples wrote:[*]Putting the ability to make a report analogous to NESMiss.txt into the standard distribution is a bad idea because it encourages hoarding.
what's wrong with 'hoarding' roms?
User avatar
atarimike
Posts: 38
Joined: Mon May 23, 2005 8:43 pm
Location: Davis, CA

Post by atarimike »

tepples wrote:I would like to see a Free clone of GoodNES, except for the following:
I have qualms about using a database extracted from GoodNES due to compilation copyright and sui generis database rights issues. It might be better to start with BootGod and/or ZapFC databases.
You can't legally extract the DB out of the original GoodNES exe and then license it under an open-source license. You'd have to get the owner of GoodNES to relicense the DB or start a new DB.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

frantik wrote:what's wrong with 'hoarding' roms?
I define ROM hoarders as people who seek out ROMs just to complete their set, not even to play them. A feature useful only to ROM hoarders would likely lead to liability for inducing copyright infringement. I seem to remember one ROM-auditing tool whose license stated that modifying it to make a list of all missing ROMs is forbidden for precisely this reason.
frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Post by frantik »

well im no lawyer but it seems that any complete list of nes games could be construed to say it's encouraging people to infringe copyright


goodnes and any replacement program are primarily going to be used by copyright infringers anyways right?
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers »

tepples wrote:
  • The way (PD) games were managed in the old database, if I remember correctly, encourages keeping outdated versions around.
Yes, this is very annoying. I'm pretty sure everyone would release stuff a little more often if it didn't result in every version getting treated the same as the final version.

Often you don't even get to see the full filename when it's listed, which means someone is just as likely (perhaps more likely if it's listed first) to open the v.001alpha instead of whatever is newest. Better option would be notifying there is a newer version, and deleting/relocating older versions.

The only way people download this stuff, is one at a time when they want it, or all in one big file. So supporting the famous missing.txt is irrelevant pretty much. There aren't any old carts being dumped anymore, except the occasional prototype.
User avatar
Zepper
Formerly Fx3
Posts: 3262
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Post by Zepper »

- One thing: for what special reason would you like to scan homebrew ROMs? What would you like to fix: header? "bad dump"? filename? None of them, right? A way to organize them? Cool, but isn't supposed to the homebrew-guy author to do that when distributing it?
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers »

Assuming the game is released freely, the author isn't going to have much control over distribution. It will end up in a big zip file with all the other ROMs, and the manual and source will be lost, might as well not leave it totally orphaned.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Zepper wrote:- One thing: for what special reason would you like to scan homebrew ROMs? What would you like to fix: header? "bad dump"? filename?
1. Filename, 2. header to take into account further revisions to NES 2.0, and 3. make sure it's not corrupt, hacked, or an outdated version.
proxy
Posts: 68
Joined: Tue Mar 08, 2011 9:45 am
Contact:

Post by proxy »

You make a good point about the GoodNES DB and copyright issues.

I think a reasonable compromise would be to have the DB file I do use to be in a compatible format. This would allow me to write the software in a way that lets me test the correctness of the program, I just wouldn't distribute the GoodNES DB. I do plan on extending the DB format. I would love to have a new field which specifies the actual mapper board name. This would allow me to write tools which can automatically convert between iNES and UNIF and back. Along with being a good source for an emulator to do proper checksum based mapper detection. All sorts of goodies.

Once the program is deemed "functional", we could work on constructing a pure/clean Open Source DB. That shouldn't be hard given all the awesome work that people like BootGod have done.

RE using Wine. Yes that will work, but it shouldn't be a requirement. Simply writing it in c or c++ in a portable way and releasing the source is a much more useful solution.

Anyway, it seems that there is indeed interest in this, so I'll definitely try to make this happen and will keep you guys posted.

PS: and please feel free to give suggestions about improvements over the GoodNES tools that I could implement!
proxy
Posts: 68
Joined: Tue Mar 08, 2011 9:45 am
Contact:

Post by proxy »

So I've started basic work on this project and things are going well. As far as the DB is concerned, I've looked at the GoodNES license:
3. You are NOT authorized to reverse engineer or otherwise extract the
database of names included inside the GoodTools. This includes
generating databases for other renaming programs. All previous licenses
to use the GoodTools databases are REVOKED as of March 13, 2005.
If you wish to continue using GoodTools databases,
please contact the author for a renewal.
So that settles that matter :-). To be honest, after looking more carefully at the GoodNES DB format, it's slightly insane, (specifically the single variable length field is in the middle of the entry!), so I don't mind creating a new similar one.

My current plan since I have a large amount of ROMs handy already is to use a scan of my collection to bootstrap my DB and then I will supplement it with public/open source information like the BootGod stuff.
User avatar
kyuusaku
Posts: 1665
Joined: Mon Sep 27, 2004 2:13 pm

Post by kyuusaku »

If you'd like some dirty Python code I wrote programs to dump the NesCartDB XML to CSV, and scan iNES files and dump the header fields to CSV. Letting the second program loose on an already renamed GoodNES set would be a slightly more legal way of getting the DB. I plan(ed) to splice and clean them up for ROM fixing, but since NesCartDB isn't complete I'm using CSV as an intermediate format to add more games.
proxy
Posts: 68
Joined: Tue Mar 08, 2011 9:45 am
Contact:

Post by proxy »

I've some great progress on my "openGN" project. I have it scanning/confirming (and for test purposes renaming) the contents of my ROM collection and so far it agrees with GoodNES. Currently it is only aware of ordinary iNES files, UNIF and iNES 2.0 will be added once regular iNES support is perfected. I am also going to work on adding the stuff from NesCarts.xml to have a much more complete ROM DB. (I've even found a few minor mistakes in the naming that GoodNES uses :-)).

So I have a question with regard to iNES 2.0. Has the submapper stuff been hashed out, is there any "authority" out there which has designated them? Currently, the way that I imagine them is something like this:

Mapper 4, Sub 0 (MMC3/MMC6 Generic/Unknown)
Mapper 4, Sub 1 (TBROM)
Mapper 4, Sub 2 (TEROM)
Mapper 4, Sub 3 (TFROM)
Mapper 4, Sub 4 (TGROM)
etc...

Is this the idea of how it's going to be? What about generalizations that are compatible like UxROM? For completness sake I would like this see this:

Mapper 2, Sub 0 (UxROM use 8 bits for PRG swap, supports much larger games)
Mapper 2, Sub 1 (UNROM use 3 bits for PRG swap)
Mapper 2, Sub 2 (UOROM use 4 bits for PRG swap)
etc...

But I can see that UxROM is "good enough"

Thoughts? Concerns? Comments?

I'll keep everyone posted as I continue to figure things out.
Post Reply