It is currently Mon Dec 17, 2018 4:38 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 31 posts ]  Go to page 1, 2, 3  Next
Author Message
PostPosted: Tue Mar 08, 2011 3:46 pm 
Offline

Joined: Tue Mar 08, 2011 9:45 am
Posts: 64
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?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 4:05 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20887
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
PostPosted: Tue Mar 08, 2011 4:43 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7833
Location: Seattle
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.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 4:43 pm 
Offline

Joined: Tue Mar 03, 2009 3:56 pm
Posts: 316
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?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 4:47 pm 
Offline
User avatar

Joined: Mon May 23, 2005 8:43 pm
Posts: 38
Location: Davis, CA
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.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 5:35 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20887
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 5:54 pm 
Offline

Joined: Tue Mar 03, 2009 3:56 pm
Posts: 316
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?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 6:02 pm 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3601
Location: Indianapolis
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.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 7:51 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3155
Location: Brazil
- 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?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 8:13 pm 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3601
Location: Indianapolis
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.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 8:49 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20887
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 08, 2011 9:09 pm 
Offline

Joined: Tue Mar 08, 2011 9:45 am
Posts: 64
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!


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 09, 2011 9:40 am 
Offline

Joined: Tue Mar 08, 2011 9:45 am
Posts: 64
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:

Quote:
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.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 09, 2011 11:11 am 
Offline
User avatar

Joined: Mon Sep 27, 2004 2:13 pm
Posts: 1668
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.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 11, 2011 11:39 am 
Offline

Joined: Tue Mar 08, 2011 9:45 am
Posts: 64
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 31 posts ]  Go to page 1, 2, 3  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group