TASEmulators / fceux

FCEUX, a NES Emulator
http://fceux.com
GNU General Public License v2.0
1.19k stars 248 forks source link

Attribution #753

Open parasyte opened 3 weeks ago

parasyte commented 3 weeks ago

Hello!

I am digging through my old archives of various copies of the FCE Ultra forks that I worked on or collected over the years. One of the things I discovered is that the attribution for some of the code is incorrect.

In particular, the name "Ben Parnell" shows up as a pre-2.0 contributor responsible for "debugging tools", e.g. according to the following sources:

For some history, the name "Ben Parnell" appeared with copyright attribution on all source files as late as FCE Ultra 0.96 and was replaced with "Xodnizel" sometime between 0.96 and 0.98.2. See the source distributions available on SourceForge: https://sourceforge.net/projects/fceultra/files/Source%20Code/

I do not believe it to be possible to track down the change to any finer granularity, since the original CVS repository may no longer exist, and other source distributions are unlikely to be found. But my conclusion is that Ben Parnell was the identity of Xodnizel.

The remaining attribution for "Ben Parnell" exists today only in some of the "extended debugging tools" that were written by me and @bbitmaster. I cannot speak for bbitmaster, but my explanation for what happened with this attribution is that the copyright header was copy-pasted from existing files when I started FCEUd in 2002 (based on FCEU 0.81) because I just didn't know any better at the time. And these files were copied over to FCEUXD (based on FCEU 0.97.5), presumably following the name change in the copyright headers on all of the other source files.

Of the files with copyright attribution by "Ben Parnell" in FCEUX, the breakdown to the best of my recollection is:

There was a lot of overlap between who contributed to what, but I think that accurately reflects the majority contributions.

The cheat interface existed in FCEU 0.81 at the time I began working on it, but I significantly updated and refactored the internals, where it was almost unrecognizable. I am unsure of how much of the original cheat code survived to this day, but I rewrote approximately 63% of the original.


The rest of this is speculation.

It seems to also be the case that Xodnizel did their own take on a debugger GUI. I have a 0.90 pre-release build (no source code, unfortunately) that includes a rather crude GUI that I certainly did not design! I do not remember at all where this came from, but it was probably Xodnizel's own work:

image

And some code in the FCEUXD 1.1 source code indicates that some debugger functionality from upstream was merged: https://github.com/parasyte/fceuxd/blob/8a91b18360f0335dbc12d1ecf8370256645bc09e/drivers/win/debug.h#L1-L2

bbitmaster commented 3 weeks ago

ah, I worked on this 20 years ago. It's so strange looking back.

I want to say, that attrition looks correct. I was the original person who invented and built those tools listed (cdlogger, ntview, memview, tracer). I took fceud where parasyte had added the debugger to an earlier version of FCEU, then ported it forward to 0.97.5, and I added those other tools. It was released on christmas day in 2004. I don't know how much it has all changed in the last 20 years. I suspect others have added plenty of new features and the code has grown.

As for that mysterious debugger, it was created by Xodnizel and I think they only kept it around for a few versions before later removing it. It exists in some 0.97.5 source code I have. I think they removed it later after seeing the work parasyte and myself were doing with FCEUXD, although I can't be sure of the reasons for its removal.

Also, just adding, that is probably a correct assessment, that I copied the copyright file over. I really don't remember but I did not pay much attention at that time to copyright details. If I had done it correctly I would've put my name in those specific files I created.

parasyte commented 3 weeks ago

I just found this line in the original FCE Ultra 0.81 source code's AUTHORS file:

Ben Parnell Most of the FCE Ultra code. xodnizel@users.sourceforge.net

(Please refer to the original 0.81 source distribution on SourceForge, or my GitHub fork at https://github.com/parasyte/fceud/blob/77a371fc15f557ca9ada35c3246b5c12be6ac30d/Documentation/AUTHORS#L11)

That confirms my hypothesis of the mysterious Ben Parnell name that shows up on some of these files. I strongly suspect they changed the Copywrite lines in later releases for personal reasons, and we should probably respect that decision.

I've been thinking about how to resolve this issue amicably. The biggest challenge second to respecting Xodnizel's decision is that this code has evolved significantly since it was originally written 20-22 years (!) ago. Several contributors have made many improvements and much of the original code is no longer what we initially created.

So, it would seem that including the original Copywrite years (2002, 2004, etc.) would be enough to resolve any conflicts with other contributors. The reasoning is that attribution for additional contributors may be included with their own contribution dates, if that were something that they would find desirable.

@bbitmaster If you like, I can create a PR that makes the changes detailed in the OP and corrects the Copywrite year as described here. Would you like me to use your Internet handle or given name? FWIW, I'm going to use both for myself as in something like Jay Oster aka Parasyte <jay@kodewerx.org>.

bbben commented 3 weeks ago

I do not have a strong preference, but may as well do the same. Ben Goodrich aka bbitmaster <bbitmaster@gmail.com>

vadosnaprimer commented 3 weeks ago

Nice avatar lol.