News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Open Source ROM Hacking Projects  (Read 69082 times)

Spikeman

  • Hero Member
  • *****
  • Posts: 1063
  • *unce unce unce*
    • View Profile
    • None at the moment, check out my Last.fm page instead?
Open Source ROM Hacking Projects
« on: February 25, 2012, 08:44:37 pm »
In the past ROM hacking projects were often done in teams, while now they seem to be done mostly by individuals, or collaborations between a single hacker and translator. I think a big problem in the modern ROM hacking scene is the lack of a flow open information. RHDN made leaps and bounds in addressing this issue, by acting as a hub where people can share tools, documents, and even code. However, I've yet to have seen something similar in terms of entire projects - it seems like these files are mostly stuffed away on people's computers, and if you're interested you have to ask the person. It's 2012, we can do better!

I think the reasons why open source projects are a good thing are pretty clear, but here's a few examples:
* People can easily fork translations into multiple languages
* Newbies can learn by looking at how more experienced hackers do things
* Abandoned projects can easily be picked up by interested parties

So in an effort to be more open and transparent, both Normmatt and I have put up our most recent projects on GitHub. Feel free to check out our code, fork it, or do whatever you want with it. Here's some links:

https://github.com/moozilla/Telefang-2-English-Translation-Project
https://github.com/Normmatt/Guru-Logic-Champ-GBA-Translation
https://github.com/Normmatt/Bomberman-Jetters-GBA-Translation
https://github.com/Normmatt/Gachasute--Dino-Device-2-Dragon-Translation

And here's a few older projects of mine up on Google Code:

http://code.google.com/p/boktai3trans/
http://code.google.com/p/exe6trans/

My question to the rest of the community is: Are normmatt and I really the first to put up ROM hacking projects on GitHub  or other open source communities? Surely have been other open source projects in the past?

And finally, I urge other hackers to start doing putting their projects up for others to look at and fork. Imagine if someone like Gideon Zhi put up all his projects for others to look at and fork (not to put him in particular on the spot). Let's take the next step towards a better ROM hacking scene! :woot!:
Open Source Hacking Projects: Guru Logic Champ, Telefang 2, (Want more? Check out my GitHub!)

Azkadellia

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 868
  • 提交向你的情妇!
    • View Profile
    • Princess Translations
Re: Open Source ROM Hacking Projects
« Reply #1 on: February 25, 2012, 08:49:44 pm »
I approve of this.  :thumbsup:

As to your question: Nope. Demi released his Radical Dreamers stuff to SourceForge.
Current Projects: On hold indefinitely.
I do the Twitter thing now: https://twitter.com/MistressSaeko (expect lots of game streaming announcements)
Mistress of the RHDN Discord server.

justin3009

  • Hero Member
  • *****
  • Posts: 1655
  • Welp
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #2 on: February 26, 2012, 02:22:11 pm »
For myself, I wouldn't mind doing some open projects but I always end up going back to that fear of people literally 'stealing' the work I've done.  I haven't so much have had that happen with romhacking per se, but other game modifications I've done and worked with in a group HAVE been stolen and used by other people along with sprites and what not.  It's more of a trust issue for me now than anything.

There also seems to be the lack of actual coders to want to get together.  It tends to be a 'You're a coder, do it yourself' attitude.  Though people do love to pitch in ideas either it be story, characters, dialogue, etc..  That's the good part of an open project.
'We have to find some way to incorporate the general civilians in the plot.'

'We'll kill off children in the Juuban district with an infection where they cough up blood and are found hanging themselves from cherry blossom trees.'

FAST6191

  • Hero Member
  • *****
  • Posts: 3089
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #3 on: February 26, 2012, 02:56:32 pm »
Although I always aim to share things I am never quite sure what format to do it in- it is the source code vs specifications debate all over again.
On top of  this given what I might call source code usually wants a bit of preparation (little endian, big endian flips and such), might stack on top of another program (I know I should not but hex workshop format/structure viewers make life that little bit easier) and will tend to make one that enjoys separate data, logic and UI gain a little twitch (kind of amusing given most of the fun parts of rom hacking crop up when developers fail to do the same) making it not all that useful to anybody but me.

LostTemplar

  • Hero Member
  • *****
  • Posts: 906
    • View Profile
    • au-ro-ra.net
Re: Open Source ROM Hacking Projects
« Reply #4 on: February 26, 2012, 03:14:25 pm »
byuu and I intend to go fully open source with our Far East of Eden Zero translation. The script dumper and table are already available at his board. I'll probably release the commented disassemblies I made so far soon. I think it's a very good idea exactly because of the reasons you gave. Maybe one could make something similar to SourceForge and the like, only exclusive to ROM hacks and translations?

IIMarckus

  • Jr. Member
  • **
  • Posts: 68
  • Something terrible has happened here!
    • View Profile
    • IIMarckus’s homepage
Re: Open Source ROM Hacking Projects
« Reply #5 on: February 26, 2012, 05:13:10 pm »
I started a disassembly of Pokémon Red, and put it on Bitbucket in early 2010. As a result, other people have contributed to it, and it is now miles ahead where it would have been had I kept it to myself.

Zoinkity

  • Hero Member
  • *****
  • Posts: 565
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #6 on: February 27, 2012, 04:37:12 pm »
I don't use the open source websites (formatting everything would take forever and they sort of presume a direct connection) but all of my notes, disassemblies, and ASM scripting are public.  The only things that aren't are WIP ASM scripts pending testing, though the notes are always available from them.  The biggest issue is, quite honestly, that's not really how other N64 hackers operate.  They concider such things clutter and don't disect more than what they're working on. 

In fact, I've found that just to submit something here N64-related it had better span at least two games.  I had to resubmit the EDL decompressor twice before it was accepted.  First time mentioned it only working on a single title, second time all Eurocom games.  Three times for the Custom Robo one. 

creeperton

  • Hero Member
  • *****
  • Posts: 604
    • View Profile
.
« Reply #7 on: February 27, 2012, 05:57:09 pm »
.
« Last Edit: November 16, 2015, 01:00:50 am by creeperton »

esperknight

  • Full Member
  • ***
  • Posts: 130
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #8 on: February 28, 2012, 08:25:56 pm »
Filler and I post our work to assembla as open source.  I generally post code too for all our tools if I remember :)  I also have other projects with other translators if they give me permission to post there work.    Transprojects

Spikeman

  • Hero Member
  • *****
  • Posts: 1063
  • *unce unce unce*
    • View Profile
    • None at the moment, check out my Last.fm page instead?
Re: Open Source ROM Hacking Projects
« Reply #9 on: February 29, 2012, 11:35:37 am »
Glad to see so many people open to open source. :)

For those of you who mentioned you released stuff, but didn't provide a link, could you? Since all of our work is sort of decentralized, it'd be nice to at least have a topic with a bunch of links to open source projects.
Open Source Hacking Projects: Guru Logic Champ, Telefang 2, (Want more? Check out my GitHub!)

Nightcrawler

  • Hero Member
  • *****
  • Posts: 5789
    • View Profile
    • Nightcrawler's Translation Corporation
Re: Open Source ROM Hacking Projects
« Reply #10 on: February 29, 2012, 01:52:58 pm »
RHDN made leaps and bounds in addressing this issue, by acting as a hub where people can share tools, documents, and even code. However, I've yet to have seen something similar in terms of entire projects

* Abandoned projects can easily be picked up by interested parties

1. Abandoned: Got it covered already - http://www.romhacking.net/abandoned/

2. Completed projects: We could add a field for a source archive to each project page easy enough.

3. In-progress projects: Projects being actively worked on are better suited on the sites mentioned here for collaborative open source projects with version control. They have elaborate software designed specifically for this that would be difficult to duplicate and likely not worthwhile to re-invent the wheel. A centralized collection of links to such projects however is a fine idea.

Along these lines I might also recommend people might choose to use the 'Announced' category in the translation section, add their project, and link to the open source page in it. That way, it's cataloged and searchable in that manner. No one seems to care about cataloging active projects. *shrug*
TransCorp - Over 20 years of community dedication.
Dual Orb 2, Wozz, Emerald Dragon, Tenshi No Uta, Glory of Heracles IV SFC/SNES Translations

FAST6191

  • Hero Member
  • *****
  • Posts: 3089
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #11 on: March 01, 2012, 11:42:20 am »
If you are going to head down the projects overview path might I suggest you wander over to some of the PC mod making site and look at what our brethren there are doing- I know you all are the last people that need to be told this but there is a rather large difference between "IN PROGRESS" (and in another thread- "my text does not display in a hex editor/notepad") and "In progress" (we are working on a text viewer that parses the in game markup) and they seem to have got something sorted to tell apart those that post some mod concept text and a "here is an original textures/material colours demo during as we are still waiting on our texture artist" with the former category in both cases (sadly?) making up a very significant chunk of the total at best.

If you are heading down that path though what I reckon would be nice is a "related tools and information" option somewhere- I can already refine a search by game I know but it would be nice to have it linked up somewhere else (if nothing else I am sure you have seen the I would like it in something other than the usual 6 languages). Might be troublesome with the shift towards franchise specific or general tools but I guess that means tags instead.

creeperton

  • Hero Member
  • *****
  • Posts: 604
    • View Profile
.
« Reply #12 on: March 01, 2012, 06:21:34 pm »
.
« Last Edit: November 16, 2015, 01:01:00 am by creeperton »

Vague Rant

  • Jr. Member
  • **
  • Posts: 47
  • Deceptively cute
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #13 on: March 02, 2012, 02:05:13 am »
Someone might want to alert Klarth to this if they're in contact with him, but I attempted to build Normmatt's Guru Logic Champ translation from the topic post and had it fail repeatedly in the Atlas script injection step.

Norm and I spent a while going back and forth on IRC trying to figure out what the issue was since it built fine for him, but I finally figured out that the issue was with Atlas's inability to handle Unix formatted line breaks in files --LF instead of Windows-style CRLF--particularly in table files. The (Unix-formatted) script file seemed to be parsing OK, but it would stall upon opening the (also Unix-formatted) table file. After converting the file to use Windows-style linebreaks, I was able to build the translated ROM without issue.

Since the files are Windows-style on Norm's PC, it may be that it's GitHub converting the files on upload. Regardless of the cause, it might be worthwhile for Klarth to update his tool to support Unix-style linebreaks, if he's willing.
I've got nothing to say, but it's OK.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 7088
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #14 on: March 02, 2012, 12:32:31 pm »
it might be worthwhile for Klarth to update his tool to support Unix-style linebreaks, if he's willing.
Is that as simple as using 0x0D 0x0A for linebreak, instead of just 0x0D (I think that's the one Windows uses, I know it's only one of the two)?
"My watch says 30 chickens" Google, 2018

Mauron

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 551
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #15 on: March 02, 2012, 12:56:58 pm »
Is that as simple as using 0x0D 0x0A for linebreak, instead of just 0x0D (I think that's the one Windows uses, I know it's only one of the two)?

I don't know the byte values, but Windows uses /r/n, Unix is /n, and Macs use /r. (although I'm not sure if I have Unix and Mac mixed up).
Mauron wuz here.

Vague Rant

  • Jr. Member
  • **
  • Posts: 47
  • Deceptively cute
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #16 on: March 03, 2012, 12:39:51 am »
Is that as simple as using 0x0D 0x0A for linebreak, instead of just 0x0D (I think that's the one Windows uses, I know it's only one of the two)?

I think you have it reversed, but pretty close, anyway. Windows is 0x0D0A (carriage return + line feed), Unix-like is 0x0A (line feed).

I don't know the byte values, but Windows uses /r/n, Unix is /n, and Macs use /r. (although I'm not sure if I have Unix and Mac mixed up).

You have them around the right way, but it's worth noting that Mac OS X is Unix-like, and uses line feed (0x0A, "/n"). Previous Mac OSes (i.e. OS 9 or below) do indeed use carriage return (0x0D, "/r"). It's probably pretty uncommon to encounter an OS 9 or below file in the wild, though, and support for it would be a lower priority.
I've got nothing to say, but it's OK.

Gideon Zhi

  • Discord Staff
  • Hero Member
  • *****
  • Posts: 3532
    • View Profile
    • Aeon Genesis
Re: Open Source ROM Hacking Projects
« Reply #17 on: March 03, 2012, 12:49:55 am »
When it comes down to it, the main reason I don't do open-source for any of my projects is generally because I'm a control freak when it comes to my stuff. However valid the belief might be, the way I see it is that if I release some of my things as open source, 1) changes will happen to it that I don't approve of, 2) project structure and directory layout (which I'm HIGHLY particular and crotchety about) will change at a whim, and 3) incremental releases will happen, flooding the web with dozens of versions of a translation, none of which fit within my ideals. I don't mind sharing out bits and pieces of code, telling stories about the batshit crazy things I find in games, or even collaborating with others to ensure that a translation becomes everything it can - where appropriate. But at the end my own personal paranoias need to be satisfied, and the fact of the matter is that if I'm heavily invested as project leader in a thing, opening it up to the masses is just not something I can deal with very well on a psychological level.

I'm sorry if that disappoints some people, but that's just the way things are for me.

IIMarckus

  • Jr. Member
  • **
  • Posts: 68
  • Something terrible has happened here!
    • View Profile
    • IIMarckus’s homepage
Re: Open Source ROM Hacking Projects
« Reply #18 on: March 03, 2012, 02:30:13 am »
I used to feel the same way, until I came to the conclusion that the benefit gained from my retaining control over a project and keeping it perfect is less than the benefit gained by releasing it. In particular, it doesn’t just help other people, it helps me, by attracting contributions from other people who do stuff I haven’t done myself.

changes will happen to it that I don't approve of

I think this pales in comparison to the probability that changes will happen that you do approve of.

Example: Someone recently decoded how battle animations work in Pokémon Red, and added the code to the disassembly. I would have gotten to this eventually—I actually had started work on it. Because the work I had done on it was public, he was able to use it as a base to complete the project, disassemble the code and data, and document it all. If I hadn’t released my half-finished work, he would have wasted time reverse engineering it all himself, and I might never have seen the final result. Open-sourcing things helped both him and me.

incremental releases will happen, flooding the web with dozens of versions of a translation, none of which fit within my ideals.

I argue that a well-maintained project actually decreases fragmentation. How many Wikipedias are there? Only one (that people care about). The data on Wikipedia is under an open license, so anyone could create their own Wikipedia mirror with their own subtle changes, but nobody does that—they contribute to the original.

Sure, people take it and sell crappy ebooks on Amazon. But would Wikipedia be what it is if it were under a restrictive license? Even Linux, which is both open source and kept in a source control system specifically designed to make things easy to fork, is rarely forked—the only one I can think of is Android, and they’re even working to merge that into mainline. The point of open source is to reduce the barrier to entry for contributions.

Mauron

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 551
    • View Profile
Re: Open Source ROM Hacking Projects
« Reply #19 on: March 03, 2012, 03:01:06 am »
You have them around the right way, but it's worth noting that Mac OS X is Unix-like, and uses line feed (0x0A, "/n"). Previous Mac OSes (i.e. OS 9 or below) do indeed use carriage return (0x0D, "/r"). It's probably pretty uncommon to encounter an OS 9 or below file in the wild, though, and support for it would be a lower priority.

I had only heard of vague references to Mac line breaks - in as much that I knew there was a distinction somewhere, and some text editors gave me three settings when changing line breaks. Thanks for the details.
Mauron wuz here.