Miscellaneous Forums > Scripting and Reverse Engineering

Zen and the art of Final Fantasy module communication

(1/4) > >>

halkun:
Ok, you guys went and made me now want to port FF7 to linux. I origialy wanted to port FF7 to the SNES for giggles and to give the nintendo heads something to play, but most nintendo fans who are left are about the age of 5 and probably wouldn't appricate it.I will now proceed to braindump everything I know about FF7. My disks are still in storage and will not be cracked out until firday. I will uninstall FF8 and throw FF7 on the lab.I also still do not have a linux box as a test bed. I'll be doing pliminary coding on a cross-platform game programming lib called "allegro" for it's fast 2d subsystem and openGL intagration.Lets start with how the silly program works.Every Final Fantasy has been split into differnt program modules. This makes it easier to have mutiple people work on it and have the effect of many games in one. The root modules in FF7 is status, dungoen, town, battle, world, drama, and minigame. The following ascii art shows how the systems communicate with each other. you may need to view with a fixed-width font.
       --- status------
     /        |        
world --------|------- town----minigame
  |          |        / |
  |    ----dungoen-----  |  
  |       /             |  
  |      /              /  
  battle------------drama  
                           
     In FF7 town, dungoen, and drama are lumped into "field"Let me explan what each one does.Status is you status menu, but it's much much more. It conatins *all* the global varibles for the entire game. This is also in charge of what gets saved to the memory card, such as inventoy, money, time, field flags, field location, characters, stats, everything. you can not access the status screen for everywherem especally in drama, battle and minigame. Towns are "safe" areas that you can rest and buy things in, but isn't reqired. You can batte here, but not random battles. Only though a plot point or "drama". you can follow the lines to so where that can go.Dungoens have monsters every few steps. (atcually FF picks a number between 0 and 255 and cound down using modifiers, when it gets to 0, there is a fight) no inns, no shops.Drama is a plot script that runs when you enter a field file. notice you cant get to status when people are acting out a scene. (you are in drama) but can when you talk to people (you are in "town" then)battle: you fight bad guys get experince or die.world is the world map, you can enter towns, dungoens and battles and get to status. you commonly fly airships here ^_^minigames are the games you can play in "towns". Cards and such.Now you can follow the lines to see what can go to where. you can only play games in towns. You can't get to status from a battle.
see how it works.When you enter a field (a new scene) a script will run when you first get in. puts in people, what they say, and triggers. The debug room has a collection of all the fileds and executes the scrips when you select them.This it for now. I'm going to start on status first as it's the most documented. Loding and  saving is the man thing right now. for now. You are doing a good job on the field files. After I'm done with status I will move into attempting to execute field files, loading up the picture and displaying the text in the windows in the correct locations and colors. This is what I have planned so far. That is all for now.. Have to go home. I have already talked about field execution and flow and triggers in a previos post. More about fileds when I get to it...-halkun

halkun:
*gasp* it ate all my whitespace!!!
I'll post a picture of it later.-halkun

The SaiNt:
halkun, use the
--- Code: ---
--- End code ---
tags to achieve the same effect as the HTML tags for this UBB. If you don't already know, the tags are keep your text preformatted.

halkun:

code:      ---- status------
    /         |        
world --------|------- town----minigame
|            |        / |
|     ----dungoen-----   |
|       /               |
|      /               /
battle------------drama [/quote]

Srethron Askvelhtnod:
Thanks for all the info. Into the doc you go.  :wink:

Navigation

[0] Message Index

[#] Next page

Go to full version