Why did the original PC port suck so bad?


More info:

Located below is a small collection of useful links. Am I missing something? Let me know.


- SF Page
- Browse SVN
- Qhimm
- Google

Version: 1.1
(March 26, 2007)

SourceForge.net Logo Bitrock Installers
Please take the time to read the following if you are new here, it answers a lot of questions on what the project is about.

Part, the first.

What is Q-gears?
Q-gears is an attempt to make a clone of Squaresoft's Final Fantasy 7 game engine. It is designed to be cross-platform and run on modern operating systems such as Win32 and Linux. In the future this is to serve as a framework for compatibility with other Square games. Many games after this were created with the same same code base and design philosophy. Written in C++, it uses cross-platform graphics libraries (SDL and OpenGL) along with GCC, a cross platform C/C++ compiler. It is named after "Gears" which is a wholly inaccurate and incredibly incomplete refrence for the original FF7 engine. The "Q" means nothing, other than it's a cool letter to differentiate between the document and the program.

Why C++?
I was coerced. (^_^)

So I can download q-gears and play Final Fantasy 7 without buying the game?
No. The goal of Q-gears is to make a drop-in replacement for the Final Fantasy 7 executable. The main idea is to use only data supplied by Square. (This means you *MUST* have the original media to play the game). User-defined data is something to consider only after we can use Square's data properly. In a perfect world, this would be a pretty cool engine to use so you could make your own FF7-style engine by way of a Total Conversion. This is something waaay in the future though.

That sounds cool, how can I help?
Well, there are lots of things to do. First you should probably learn how the original Final Fantasy 7 works. You do this by grab a copy of the reference document, "Gears" from here.
This gives you an overview of the system, but it is woefully incomplete. It's enough to get you started on the system and is a cool read if you just want to know how the program ticks. For more information on Gears (the document), read Part, the second, later on.

After getting Gears, and have an itch to code, you will want to download the latest Q-gears source code form Sourceforge. Keep in mind that in this stage of the project, the code really doesn't do much but compile. However, you can see how we are laying everything out.

The Sourceforge page is here:
To get the code, you must have a Subversion client to retrieve the directory tree. There are only test executables at this stage of development. Refer to the Subversion link on the Q-gears page to assist you with getting access to the SVN tree.

How do I upload my changes?
You need a sourceforge username. Email me with that and a diff of what you have and I'll most likely add you as a developer.

Why are you using Subversion. Can I have CVS access?
Nope, SVN is simply a better system that has already payed off. If you are unfamilliar with SVN, you can get the offical book online for free. It's loacted here.

I can't program, can I help any other way?
Why yes, you can. As it stands right now, I could use help with the homepage for Q-gears. Email me if you want to be a webmister The webmaster job's been filled for now.
http://q-gears.sourceforge.net/   <---- That (this) is the current page.

I can also use someone to help fill out the technical spec for FF7 in the wiki. That will require you know scour both here and the Tech-related forum for intresting gems of data, and then get that into the wiki to fix it's broken-ness. See Part, the second, for that.

Lastly a news person would be helpful. This person can write the news of the state of the code for semi-regular posts to sourceforge news (which will be repeated on the web page). In a perfect world, something like a bi-weekly newsletter would be nice, that's if we produce enough code to warrent a newsletter. Something like the Wine Weekly Newsletter. (Wine is a portable win32 interface to allow windows programs to run on other computers).

How about Enhancements? I would like Bump mapping/MP3 Muisc/Per-pixel lighting/Particle effects....
No, as it stands right now, the clear goal is to get an engine up and running. Things like enhanced backgrounds, battle effects, and music are only considered if it's critical to the program. (For example, an increase in resolution to support newer systems.) We need it running as close to the original executables as possable. If you want to add your own effects or functions go ahead and fork the code and go wild. If it's orthogonal enough, we could add it back to the main trunk. Forking, for now, must be done in an external repository. Consider the /branches directory closed until 1.0

Can you make it mod friendly? How about some mod tools?
No, not right away. I'm keen on using Square's original data first. If anything at least our engine will be a little more forgiving with what's accepted as input. However, there is a large likelihood that the system will be designed to make Square and non-Square data non-interchangeabe. This means you won't be able to add your mods to a stock game, but use new data with a different format to create new games. (most likely, text or XML) The less we step on Square's toes, the better.

Which port of FF7 are you supporting? The PC version? The PSX version?
Both would be nice, however, as for right now, the PSX dataset is the one activly being worked on. This is for serveral reasons.
First, it is by far the most common. The PC version is getting harder and harder to come by.
Second, as for me, I can work with the PSX data while it's running in a sandboxed environment. I can watch data get accessed in-situ and change it without the system knowing I've got my fingers in it.

Part, the second.

Holy mother of all that's good! Your Gears document is wholly inaccurate and incredibly incomplete!
Yea, I know. I haven't updated after I almost lost it in a very bad hard drive crash. But fear not. It is now in process of being converted to a wiki. Here you can update the information contained in Gears and add your own. Keep in mind, the wiki is even more incomplete and inaccurate than the Gears PDF file. One day, it will be the central repository for engine documentation.

The original Gears document can be found here:

The wiki can be found here:

Hey! I can't edit anything. Can I have write access?
If you have any good gems to add to the wiki, PM me with a username, a password, and an email address. I'll most likely add you.

Part, the third.
Taking it apart.

If you are more apt at taking things apart than putting things together, you can go to the tech-related topic in the forum. Here we talk about disconstucting FF7 and understanding it's technology so we can put it back together again. I'm a mod there too.

Part, the fourth.

Hey, isn't this illegal? I mean, this sounds kind of like Chrono Trigger Resurrection, and that was shut down by Square.

No, because at the core of it all, Q-gears is just a virtual machine that does nothing without external game data, which is not included. The creation of virtual machines to play games is nothing new. Others exist, such as ScummVM, FreeSCI, Sarien, and Fortz. Making an implementation isn't illegal or else Linux wouldn't be around right now.

(Note: The IBM v. SCO lawsuit not withstanding. That lawsuit is a scam. The upshot is that SCO says that they own UNIX and Linux is an illegal derivative. However, it has been three years and SCO hasn't even told IBM *what* they have done that's illegal. It's just wasting time and hasn't even gone to trial. It's still in discovery. Sub-Note: Discovery takes about two months, not three years. Sub-sub-Note: The president of SCO hired his brother to represent the company during the lawsuit. The millions of dollars in lawyer fees goes from SCO to the brother. See? It's a scam.)

In the end, if a C&D letter comes down. It was a fun ride.