logo
 drop

Main

Community

Submissions

Help

83972717 visitors

Author Topic: Final Fantasy VII NES Project (Completed!)  (Read 294371 times)

Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #160 on: June 26, 2011, 08:54:12 pm »
The boss music is finally done. Here's the new patch:

http://www.mediafire.com/?6uate0p57qsj1to

It will play during the first fight in the game, and during every other boss fight.
Enjoy :)
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #161 on: July 06, 2011, 03:53:37 pm »
So far this game has a total of 18 songs from FF7. All trace of FF2 and FF3 songs have been removed. I made more pointers, and have room to fit maybe at least 15 more songs.

Shinra Attacks
Prelude
Underneath the rotting pizza
FF7 Main Theme (world map)
Ahead on our Way
Those chosen by the planet
FF7 Battle Theme
FF7 Boss Theme
FF7 Victory
valley of the fallen star
Mark of the traitor
FF7 Chocobo theme
Anxious Heart
Oppressed People
Tifa's theme
Gold Saucer
Don of the Slums
Judgment Day

I wanted to know if anyone happens to know how to change the music when fighting bosses. I already added boss music and it plays during boss fights.
But I want to add new music for the final few boss fights and the fights with Jenova.

I looked and looked and could not figure out how to do it.
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

halkun

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #162 on: July 17, 2011, 12:17:43 am »
Hey there -- This looks VERY interesting...

I was thinking of lending a hand. I have been taking apart FF7 for the last 10 years. I'm a mod over at another FF7 hacking website. I can give you the entire ins and out of the whole FF7 system. I'm also quite fluent in 6502, so if you need code, I can do that too. I want to get started as fast as possable...

1) I'm not familiar with mapper 163. I have the code for it, but I need to know  what the initial bank configuration is and the address and sizes of the bank switches. (for example 4K or 8K). I can figure this out on my own if need be.

2) I'm assuming that the game uses 1M PRG and 1M CHR (wow!) We'll need to separate the banks and get rid of the iNES header to get a clean dump and start picking though the data proper.

3) I need addresses of where everything found is. I can then put it in my wiki and start digging

4) Any FF7 PC/PSX resource you need I have available. In the PSX version, the battle formations an in a file called "scene.bin" that I can decrypt and give you the complete battle formation/enemy loadout for the game.

5) There is no 5

6) Initial game stats and experience growth curves are a file called "Kernel.bin" that I can also decrypt for you as well.

7) I have reversed large chunks of FF1 myself, and have access to another complete source code rewrite. There is a large likelihood that FF7nes is it's own code, but i can guess that similar code and design philosophies is used in this game too. If I can unlock it, I can get you a better menu and hopefully a better battle module. (Multiple materia would be rad!)

Post here ASAP. My tools are at your disposal. :)

==EDIT==

After picking at the ROM,  The bank configuration is 2 PRG banks of 16K at a time,  top being at $8000-$BFFF and the bottom being at $C000-$FFFF. Each individually bankable. The reset vector points to $FFC0 which has a stub to reset/launch the game. On the bottom banks I've seen, they all have this stub, so it's easy to pick which ones bank high and low. I'm Assuming the CHR banks are banked directly into the PPU. I'll research more. I'll probably write a script tonight to split the banks so I can see what is what and label them directly.

==EDIT 2==
HOLY CATS! This system does not use any CHR rom at all  and has 128 banks of 16K PRG rom. This means that code and graphics can intermix, which makes mapping it a little tougher. Just an update...

==EDIT 3==
Ok, I split the original Chinese rom. I have found some interesting things. First, this a very poorly optimized program. There are hundreds of kilobytes that are sitting unused. If I didn't know any better, I would say this was probably compiled with a C compiler. Secondly, It appears that rom banks might be used as stand alone 16k files. It appears that each map is stand-alone after bank $20 or so. I see map tiles and mapmen repeat over and over again at bank boundaries.  This means that it will be pretty easy to make a map editor that can edit one map as a whole. It also means that the text and event data might also be self-contained. Maybe. I need more information on where things are located.

Also there is 64k (4 banks) of chinese character graphics that can be deleted and re-purposed for something else.
« Last Edit: July 17, 2011, 04:44:03 am by halkun »

Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #163 on: July 17, 2011, 11:56:43 am »
Quote
Hey there -- This looks VERY interesting...

I was thinking of lending a hand. I have been taking apart FF7 for the last 10 years. I'm a mod over at another FF7 hacking website. I can give you the entire ins and out of the whole FF7 system. I'm also quite fluent in 6502, so if you need code, I can do that too. I want to get started as fast as possable..

Any help would be great :), I'm still very new to this. This is the first game I've ever worked on.

Quote
I need addresses of where everything found is. I can then put it in my wiki and start digging

I've only worked on the music and graphics. I can give you the music locations and the pointers for them. I know how to find the location of the maps. I also know where the dialogue is located.

I still don't know too much about this ROM, unfortunately.

For the battle engine, I only found the hex numbers that calls on a certain battle animation. It's a shame there are only 3 battle animations for the characters.

I finished the music, there's a total of 29 songs in the game now. They are not all in place just yet, I'm going to start to playing through the game again to place the music in the appropriate places and make new save states along the way.

If you'd like I can send a new patch of the game.

Thanks for offering to help, I really appreciate it. :)
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

halkun

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #164 on: July 17, 2011, 01:47:49 pm »
Sure, can you post the offsets here and what they are?
I only have the raw Chinese rom. I have a 99% english patch I have not applied yet.
If you can generate an IPS of what you have so far against the original chinese ROM so I can see what has changed?

« Last Edit: July 17, 2011, 03:00:45 pm by halkun »

Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #165 on: July 17, 2011, 02:37:08 pm »
Here's the latest patch.
http://www.mediafire.com/?wv7wwjc171qwuv8

It's a patch over the original chinese version.

It'll take me a little bit to write down the hex addresses. I know where they are, I just don't have them written down.
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

Vanya

  • Hero Member
  • *****
  • Posts: 831
  • Location: FL
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #166 on: July 17, 2011, 04:07:35 pm »
Here are all the files I was given from the original translation project:

http://www.mediafire.com/?u3r4bhusauxw6

There *may* be something useful in there.

Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #167 on: July 17, 2011, 04:16:25 pm »
I found the data that selects what sprite is used for each action in battle for all characters at 0x021493, 0x021494, and 0x021495.
It's a set of three numbers, the first is for the battle stance, second one is for attack magic and items, and the third one is for the death sprites.
00: battle stance sprite
18: attack sprite
30: death sprite

And here's a link for what I found for programming the colors for the maps

http://www.mediafire.com/?iz1gzgimogb945l
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

halkun

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #168 on: July 17, 2011, 04:33:03 pm »
Wow, this is tough, they seem to compact the stat data.

The battle module is self contained (yay) and can use a rewrite. The menu system is also self-contained too. I'm having difficulty finding out where the game is pulling it's player/enemy stats from. They seem to be compressed.

Because of the Chinese text, there is a lot of wasted PPU memory. Actually, I'm really shocked that the graphics are as good as they are. The map only uses about10% if it for backgrounds. That should be closer to 50-70%

The text is 1BPP That's fun
« Last Edit: July 17, 2011, 04:42:32 pm by halkun »

Chpexo

  • Sr. Member
  • ****
  • Posts: 372
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #169 on: July 17, 2011, 04:38:14 pm »
I analyzed your patch and found  it to be really good but I found problem. When you climb the rope you to reach the Shinra building you are supposed to insert a battery but when I press A to insert it, it won't work and a weird sound plays.  :-\

One other thing, I see see you've changed the mugshots. I'm not saying they're good or bad but when it comes to manga I'm very OCD about it.


Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #170 on: July 17, 2011, 05:05:12 pm »
Quote
I analyzed your patch and found  it to be really good but I found problem. When you climb the rope you to reach the Shinra building you are supposed to insert a battery but when I press A to insert it, it won't work and a weird sound plays.  :-\

I found that too. I looked all through the rom and used the code data logger to compare it to the original version of the game but could not find the problem.

I found that when the music gets really high pitched, I open up the menu and have about a 50% chance of the item working.

For now I will probably make a new path around that to get to the Shinra Building, until I find a solution.

Also, I noticed that on some areas, the menu doesn't work right. I don't know how to fix this either. I found it to be not that big of a deal though.
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

halkun

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #171 on: July 17, 2011, 05:09:03 pm »
Here is what I have as a general overview....
Code: [Select]
bank 00 - field
bank 01 - field
bank 02 - Title Page graphics
bank 03 -
bank 04 - event
bank 05 - event
bank 06 - dialog
bank 07 - dialog
bank 08 - Battle code
bank 09 - Battle code
bank 0a -
bank 0b -
bank 0c -
bank 0d -
bank 0e -
bank 0f -
bank 10 - Chinese characters
bank 11 - Chinese characters
bank 12 - Chinese characters
bank 13 - Chinese characters
bank 14 -
bank 15 -
bank 16 -
bank 17 -
bank 18 -
bank 19 -
bank 1a -
bank 1b - menu
bank 1c - menu
bank 1d -
bank 1e - Menu graphics
bank 1f - Water graphics at bottom
bank 20 and on --- Map graphics with unknown data (field data?)


to get a bank number you take the offset and divide it by $4000. For example, 0x021493 divided by 0x4000 is 8, which means that data is confirmed to be in the battle section.

syntax error

  • Full Member
  • ***
  • Posts: 230
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #172 on: July 17, 2011, 05:10:52 pm »
The original ROM is a real mess.

halkun

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #173 on: July 17, 2011, 05:19:04 pm »
I'm noticing. Can someone post the offsets to the music?, also where is the map matrix data proper? Where does each map "stop" and "start"

Also where in earth are the character stats held? I need to max my stats so I can run through the game once. This game is massively stupid on difficulty.

Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #174 on: July 17, 2011, 05:22:59 pm »
Quote
The original ROM is a real mess.
I know, I wonder how they ended up with so much unused space.

Quote
Here is what I have as a general overview....
Code: [Select]

bank 00 - field
bank 01 - field
bank 02 - Title Page graphics
bank 03 -
bank 04 - event
bank 05 - event
bank 06 - dialog
bank 07 - dialog
bank 08 - Battle code
bank 09 - Battle code
bank 0a -
bank 0b -
bank 0c -
bank 0d -
bank 0e -
bank 0f -
bank 10 - Chinese characters
bank 11 - Chinese characters
bank 12 - Chinese characters
bank 13 - Chinese characters
bank 14 -
bank 15 -
bank 16 -
bank 17 -
bank 18 -
bank 19 -
bank 1a -
bank 1b - menu
bank 1c - menu
bank 1d -
bank 1e - Menu graphics
bank 1f - Water graphics at bottom
bank 20 and on --- Map graphics with unknown data (field data?)



to get a bank number you take the offset and divide it by $4000. For example, 0x021493 divided by 0x4000 is 8, which means that data is confirmed to be in the battle section.
How do you divide 0x021493 by 0x4000? My calculator gave me 5.37325

July 17, 2011, 05:27:08 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Quote
Also where in earth are the character stats held? I need to max my stats so I can run through the game once. This game is massively stupid on difficulty.

I don't know, I tried finding it. There's supposed to be some game genie codes for this game. Here's the link:http://thegshi.org/?s=v2&sys=5&gid=8126

I'm not sure if they work though, the game genie menu in my emulator doesn't work.
« Last Edit: July 17, 2011, 05:29:30 pm by Lugia2009 »
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

Chpexo

  • Sr. Member
  • ****
  • Posts: 372
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #175 on: July 17, 2011, 05:34:41 pm »
On a side note, right now I am making Rufus' Welcome Ceremony music.

halkun

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #176 on: July 17, 2011, 06:08:38 pm »
How do you divide 0x021493 by 0x4000? My calculator gave me 5.37325

Those are both hexadecimal numbers. You have to divide in hex, not decimal. There are 128 banks numbered 00 to 7F, however, it appears that the game is banking in two banks together when it does a state switch, so it just might be 64 banks of 32K. Still the same amount of data. However, my guess is it's still banking in the upper bank randomly for data access.

There is a bright side, with all this open space, it's pretty roomy to add things. I mean look at the title screen :)

Lugia2009

  • Sr. Member
  • ****
  • Posts: 479
  • Location: New Jersey
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #177 on: July 17, 2011, 06:37:57 pm »
Think it would be possible for this game to be put onto a cartridge?
Enjoy Dissidia 012: Final Fantasy? Check out my Dissidia mods!
http://www.youtube.com/channel/UCz7Z1YGQQul86jnYZzBh5fw/videos

I.S.T.

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 4158
  • I AM NO-AVATAR MAN!
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #178 on: July 17, 2011, 06:48:16 pm »
Unless you mean the hacks done to it by the fan community, this was originally on a cart... It's a Chinese pirate.
http://www.smashwords.com/books/view/12534 The Dragon Thing To Do: The Dragon Creed

halkun

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Final Fantasy VII NES Enemy Graphics
« Reply #179 on: July 17, 2011, 07:48:31 pm »
We will have to make our own cart. The stats, BTW are held in save ram. I found them and in the process of mapping them out.The level/experience curves are WAY off from the original. The stats such as strength and spirit and such as derived from the level. The level goes up to 255 (Maybe higher). The original FF7 goes up to 99

Normally in a final fantasy game, all variables are maintained by the Menu module. This looks to be no different. Once I map the savemap and get a good feel for the menu module, it can be rewritten. The stats are normally kept in a "Kernel" module, but it may be different here.

As soon as I map clouds experience curves, I'll see if I can't find the look-up table for his stats and then cap his level to 99

==EDIT==
I have discovered that there are no experience curves. The experience is a simple linear progression. I'm calculating the slopes now.

==EDIT 2==
Ok, here's the growth "curves" put together by yours truly...

Str = (2.9*level)+9
Vit = (2.54*level+9
Int = (3.22*level)+9
Spr = (3.22*level)+9
Agl = (2.5*level)+9
Exp = (50*level)+250

In the actual FF7, the experience curve is quadratic and the HP growth is mapped. Oh well, Battle needs to be rewritten anyway. I'm working on menu for now.

==Edit 3==
Savemap mapping. The saves start at $6000 in the nes. You can alter these bytes, get into the menu and see the changes.

(This is ram address inside the NES while it is running)
60C1 (byte)      Cloud Max HP lo
60C8   (byte)      Cloud Max HP hi
604A   (byte)      Cloud Cur HP lo
6051   (byte)      Cloud Cur HP hi
602C   (byte)      Cloud Countdown
602E   (3 bytes)      Gil
6074   (byte)      Cloud eqipped weapon
6043   (byte)      Cloud Level
607B   (byte)      Cloud Equiped Materia
6059(byte)                Cloud equipped headgear
605f (byte)                Cloud equpped armor
6066 (byte)                Cloud equpped bracer
606D (byte)                Cloud equpped accessory


Here's a quick run down equipped items of what I found.

Weapons (6074 - cloud)

00 - Nothing

Swords
01 - Buster
02 - Mythryl
03 - Hard
04 - Butterfly
05 - enhance
06 - Organic
07 - Crystal
08 - force
09 - Rune
0a - Murasam
0b - nailbat
0c - Yoshiyu
0d - Apocaly
0e - heaven
0f - Ragnrok
10 - ultima

Guns
11 - Gatling
12 - Assult
13 - Cannon
14 - Atomic

---

Magic (607b - cloud)

00 - Nothing
01 - Fire
--------------

Everything below 60D0 or thereabouts is the inventory. I don't have written down what slot is what but you add values to somewhere in that area and it put that number of that item in your inventory


There is much more, if you open the hex editor in fecux, you can change the memory directly, get out, get back in again and see what you changed, you can also equip/deeqip slots and see memory locations too.
I'm going to bed now...
« Last Edit: July 17, 2011, 11:22:10 pm by halkun »