Author Topic: Zen and the art of Final Fantasy module communication  (Read 8607 times)

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
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

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Zen and the art of Final Fantasy module communication
« Reply #1 on: 2001-03-13 18:13:00 »
*gasp* it ate all my whitespace!!!
I'll post a picture of it later.

-halkun


The SaiNt

  • *
  • Posts: 1300
    • View Profile
Zen and the art of Final Fantasy module communication
« Reply #2 on: 2001-03-13 19:29:00 »
halkun, use the
Code: [Select]
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

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Zen and the art of Final Fantasy module communication
« Reply #3 on: 2001-03-13 19:39:00 »

code:

     ---- status------
    /         |        
world --------|------- town----minigame
|            |        / |
|     ----dungoen-----   |
|       /               |
|      /               /
battle------------drama

[/quote]

Zen and the art of Final Fantasy module communication
« Reply #4 on: 2001-03-14 21:13:00 »
Thanks for all the info. Into the doc you go.  :wink:

tulkk

  • *
  • Posts: 52
    • View Profile
Zen and the art of Final Fantasy module communication
« Reply #5 on: 2001-03-14 23:16:00 »
Hehe, i'd love to see a ff7 port for snes... hehe, i would infact pay to see a port of it...  :))

If you really know how to port for snes, it would be kewl with just a small demo port or sum like that... anybdu agree  :wink:

linux? sounds kewl.... sounds waaaay kewl  :)


Sephiroth 3D

  • *
  • Posts: 1679
    • View Profile
    • ModCitizen 42
Zen and the art of Final Fantasy module communication
« Reply #6 on: 2001-03-18 07:00:00 »
Ahem...

FF7 for the NES:

http://members.nbci.com/_XMCM/Sephiroth3D/art/nes-b.jpg" border=0>

FF7 for the SNES:

http://members.nbci.com/_XMCM/Sephiroth3D/art/snes-b.jpg" border=0>

FF7 for the N64:

http://members.nbci.com/_XMCM/Sephiroth3D/art/n64-b.jpg" border=0>

Sorry for the massive img post...

Sephiroth 3D

"One who seeks knowledge from another person, doesn't learn half as much as the one who seeks knowledge for himself." - Vincent Valentine, The Sephiroth Chronicals, Book 1: Resurrection

[email protected]  
 http://www.sephiroth3d.com" TARGET=_blank>Sephiroth 3D's Final Fantasy  
 http://members.tripod.com/~EmperorTim/index.html" TARGET=_blank>Sephiroth's 3D Lair  
 http://members.tripod.com/~Sephiroth3D/index.html" TARGET=_blank>Sephiroth 3D's Promised Land


ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Zen and the art of Final Fantasy module communication
« Reply #7 on: 2001-03-18 15:40:00 »
You can't link direct to images on Xoom (like a lot of website providers); they block requests unless it came from one of their own pages.

The SaiNt

  • *
  • Posts: 1300
    • View Profile
Zen and the art of Final Fantasy module communication
« Reply #8 on: 2001-03-21 07:16:00 »
Ok, you guys might have to pardon my absence for the last few days since I have been extremely busy with my work. In fact, I've will be quite busy for the next 3 weeks. I have a 2 week holiday after that though  :)

Anyway, should I not be able to work on this project for the time being, I think I should just let all of you know of what I've decided to test to learn more about the field stuff.

1. Look for the .P files that have textures (their specified in the .RSD files) so we can find out which section relates to the textures in the P files.

2. I have come to suspect that the shading of colours for the models in FF7 require the lines. I believe we need to know how the numlines section works before we can get the shading section done. The shading is done by gradually changing the colours line by line, I believe.

3. Like halkun said, the analyze the field files, we should use the debug room field files. What we can do is look for similarities in 2 field files to help us out. For example, in some debug rooms, you will see cloud with his headache problems. Now look for the dream section that has the exact same movement and compare both the files. That should make our work much easier. Another example would be to find out which option actually send's you to the field file in to let's say to rocket town. Then, we compare this field file with another one which takes you to rocket town when you exit that screen. Do you get where I'm going?


halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Zen and the art of Final Fantasy module communication
« Reply #9 on: 2001-03-21 11:39:00 »
the shading should be held in the vertexs. To give an example, you know in the menus when you can change the window color by manupualating the colors at the corners, Thats how it's done. lets take a triangle for instnce.

if the top point is red and the two bottom points are blue, the triangle will gradiate from red to blue. with purple in the center (gouraud shading) take a look at my PSX doc and see if it doen't use a gpu packet format to define the points (like they do with ff8)

good luck


ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Zen and the art of Final Fantasy module communication
« Reply #10 on: 2001-03-21 22:24:00 »
Why all the discussion about shading polygons?

The LGP Editor can preview .P files, and it puts up colours on my PC with shading. Has somebody found a file where it *doesn't*?

Textures, OTOH, it doesn't do.


The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Zen and the art of Final Fantasy module communication
« Reply #11 on: 2001-03-22 02:41:00 »
sorry to burst your bubble fice' but it doesnt show goroud shading tho, thats a down side  :(

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Zen and the art of Final Fantasy module communication
« Reply #12 on: 2001-03-22 03:23:00 »
Doesn't it?

Damn. That's something I'll have to fix...I was sure I'd got that working...


Joey

  • *
  • Posts: 1095
    • View Profile
Zen and the art of Final Fantasy module communication
« Reply #13 on: 2001-04-11 15:05:00 »
Well, do you actually practise Zen, Halkun?

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Zen and the art of Final Fantasy module communication
« Reply #14 on: 2001-04-12 11:20:00 »
no

tulkk

  • *
  • Posts: 52
    • View Profile
Zen and the art of Final Fantasy module communication
« Reply #15 on: 2001-04-13 17:21:00 »
Hehe... the NES version of FF7 looked great Sephiroth3D =)) hehe..