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

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

Chalkie

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #760 on: August 24, 2012, 12:52:56 pm »
Talking about stats and things, not sure if its been mentioned before, but when I equipped an armour to a character which increased HP, the HP stayed increased after removing it. Anyone else had this happen?

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #761 on: August 24, 2012, 03:06:57 pm »
Quote
Talking about stats and things, not sure if its been mentioned before, but when I equipped an armour to a character which increased HP, the HP stayed increased after removing it. Anyone else had this happen?

I believe that is caused by using an older savestate or save on a newer patched version of the game. Level up your character and try it again to see if it still happens.

You must be using a savestate that was made before the character's stats were altered. Then when you equipped and unequipped the armor, the HP remained the same because the game was trying to bring the HP up to the level that it should be.



Here's Tifa's Sprites:


Item


Walking


Victory


Magic


Damage

Zoinkity

  • Hero Member
  • *****
  • Posts: 565
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #762 on: August 24, 2012, 04:18:08 pm »
This ROM was, basically, a pirate built on the original FF3?  Does that mean all the same glitches and exploits from FF3 rolled over?

Couldn't an unbeatable boss have the 'immune to all instodeath', 'immune to all status effects', and a 'reduce all damage to zero' effect combo?  If it is based on FF3, then the first Bahamut on the road to the summit is completely invulnerable and his life resets back to -1 every turn.  The final boss was also conditionally unbeatable, so that would be an angle to approach too.

Chpexo

  • Hero Member
  • *****
  • Posts: 727
    • View Profile

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #764 on: August 24, 2012, 04:55:46 pm »
Quote
This ROM was, basically, a pirate built on the original FF3?  Does that mean all the same glitches and exploits from FF3 rolled over?

This game was actually made from scratch, the only thing that was carried over from FF3 was graphics. And some of the music was poorly reproduced using this company's sound engine.



Aerith's Sprites are done:


Walking


Victory


Magic


Item


Damage

InfamousKnight

  • Sr. Member
  • ****
  • Posts: 321
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #765 on: August 24, 2012, 07:12:32 pm »
I made a title screen patch some time ago.

Could you possibly find out how much HP that final boss had? That speech was hilarious!

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 7131
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #766 on: August 24, 2012, 07:31:10 pm »
This ROM was, basically, a pirate built on the original FF3?  Does that mean all the same glitches and exploits from FF3 rolled over?

Couldn't an unbeatable boss have the 'immune to all instodeath', 'immune to all status effects', and a 'reduce all damage to zero' effect combo?  If it is based on FF3, then the first Bahamut on the road to the summit is completely invulnerable and his life resets back to -1 every turn.  The final boss was also conditionally unbeatable, so that would be an angle to approach too.

I destroyed the Nept Dragon by using a Game Genie code to force the high byte of his max HP to 0. While I did get some EXP/Gil/CP from it, the events just went on as if I had lost. So I'd guess they made the boss technically impossible to defeat without cheating, and set a "don't game over on loss" flag? (now that I think about it, were you allowed to lose the fight, or were you expected to run?)
"My watch says 30 chickens" Google, 2018

Chpexo

  • Hero Member
  • *****
  • Posts: 727
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #767 on: August 24, 2012, 07:46:38 pm »
I destroyed the Nept Dragon by using a Game Genie code to force the high byte of his max HP to 0. While I did get some EXP/Gil/CP from it, the events just went on as if I had lost. So I'd guess they made the boss technically impossible to defeat without cheating, and set a "don't game over on loss" flag? (now that I think about it, were you allowed to lose the fight, or were you expected to run?)
If you die to Nept Dragon, in the NES version I believe you die. The boss is a plot block until you beat the ocean dungeon.

Edit:
What happened to Aeris' white skirt?
« Last Edit: August 24, 2012, 07:54:55 pm by Chpexo »

Zoinkity

  • Hero Member
  • *****
  • Posts: 565
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #768 on: August 24, 2012, 11:56:22 pm »
You had to run.  At least they didn't block run out like with that crazy sea serpent thing.  Sure, it's technically killable, but that doesn't mean you can actually kill it.

Dr. Mario

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #769 on: August 25, 2012, 11:38:50 am »
Nope it's from Vanya's abandoned Final Fantasy VII NES project. Though I did modify it a little

I can't find where the original image is though.

I didn't make them, though. I don't remember who did.
I totally made those. I'm actually surprised that no one has made anything better since.
What is a man? Baby don't hurt me, don't hurt me, no more.

vivify93

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 1171
  • Guardian of Mystery
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #770 on: August 25, 2012, 12:35:00 pm »
What happened to Aeris' white skirt?
Initially it looked like a palette issue to me, and that Aerith couldn't have a white skirt or else she'd have to sacrifice the peach color, but looking at Lugia2009's palettes...

Peach, yellow, and blue.
Peach, white, and red.
Orange, green, and brown.
Peach, red, and brown.

It looks like it wouldn't conflict with anything... The brown of her hair is in the top two parts of her sprite in pretty much all of these, and there isn't any brown showing on the last row.

Maybe it was changed because peach is closer to pink, and her ribbon and skirt are supposed to match?
All my life I've tried to fight what history has given me.

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #771 on: August 25, 2012, 02:15:11 pm »
For Bahamut, you have to run. There was nothing else you could do. And for Nept. Dragon, there's nothing you can do. If you encounter him, you may as well just reset the NES/Emulator or load up the most recent savestate.

That's how the Midgar Zolom is in this game, if you encounter him, you can't run and you can't win. So just reset it from your most recent save.


Quote
What happened to Aeris' white skirt?

I changed it because it matches more with the PS1 version of her.



I was also thinking of changing her boots and bracelets from red to brown later on.


Quote
I totally made those. I'm actually surprised that no one has made anything better since.

It's because there wasn't any need to, you did a great job on them. :thumbsup:




Cait Sith's sprites are done:


Walking


Victory


Magic


Item


Damage

InfamousKnight

  • Sr. Member
  • ****
  • Posts: 321
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #772 on: August 25, 2012, 07:33:40 pm »
I have a question about the rom map of this game.

For example: 0x02c2b4 is where the Airbusters hp is I guess. So I take the first byte and its 70 and in decimal thats 112 and that cant be right. Then I combine both 70 and 09(09 is the second byte) and I get some high number like 28681 and I know thats not correct..

Is it some error in the rom map doc?

Also, do you notice how scarlet is palmer in the game? I know you guys didn't get that one messed up. Its just that company being retarded again. I would say the FFVII pirate probably had the story really down pat. That's probably the most interesting thing these pirated games.
« Last Edit: August 25, 2012, 07:43:41 pm by InfamousKnight »

Mauron

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 551
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #773 on: August 26, 2012, 02:11:01 am »
Does 2,416 sound right? The NES is little-endian, so larger values are stored with the byte order reversed from our interpretation.
Mauron wuz here.

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #774 on: August 26, 2012, 06:56:40 pm »
Quote
Does 2,416 sound right? The NES is little-endian, so larger values are stored with the byte order reversed from our interpretation.

2,416 sounds about right.




I've spent this day trying to create the Colosseum battle event and here is what I found out:

For the events in the first event bank, there is a set of pointers. These pointers are what tells the game which events occur on which map. They go in order, with the building insides at the end. Even though there isn't an event on every map, there is a pointer for every map. I'll call them Pointer Set A

Now at the end of that event bank, there are a set of pointers that point to the actual event in the event bank.  I'll call them Pointer Set B

Pointer Set A, points to Pointer Set B, which then points to the actual event. That's how the game knows which events occur on which map.

And for maps that don't have an event, Pointer Set A points them to somewhere at the beginning of the bank. And many of them leads to the number 60. and others lead to a group of bytes that look something like this "A9 XX 20 7D 9F". "XX seems to be the only byte that changes. Why, I don't know.

Then when I tried to set the pointer for the battle square to lead to an empty space in the ROM, the ROM interpreted that as code, not data.

So I tried changing it so that it would lead to one of the pointers in Pointer Set B, but it still interpreted that as code and not data.



So it won't work, something is telling those pointers to behave differently than the other pointers in Pointer Set A. And I just can't figure it out.
So for now, the Battle Square mini game will not be doable.

So, I'm going to go back to working on the rest of the maps for the Gold Saucer.


Zoinkity

  • Hero Member
  • *****
  • Posts: 565
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #775 on: August 26, 2012, 07:16:15 pm »
Sounds good.  Better to have done what you were intending to first and then worry about frills and their technical issues.

Really liking the wonkiness of the Gold Saucer maps.  All the maps have been excellent, but it's an especially fun theme.

verifiaman

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #776 on: August 26, 2012, 08:35:09 pm »
May i use your maps, please? I'm not trying to make a game or anything, and your 8bit stuff is really detailed. i cant honestly find many 8bit games, hack or otherwise that uses that much detail. if you say no, can you reccomend me a game so i can try to rip it?

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 7131
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #777 on: August 26, 2012, 09:08:42 pm »

And for maps that don't have an event, Pointer Set A points them to somewhere at the beginning of the bank. And many of them leads to the number 60. and others lead to a group of bytes that look something like this "A9 XX 20 7D 9F". "XX seems to be the only byte that changes. Why, I don't know.


Those look like ASM instructions.
A9 nn is LDA #$nn (load A with the value in the instruction)
20 7D 9F is JSR $9F7D (jump to subroutine at 9F7D, call the routine and then return after a RTS instruction)
60 is RTS (return from subroutine. End the current subroutine)
"My watch says 30 chickens" Google, 2018

Dizzy9

  • Jr. Member
  • **
  • Posts: 38
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #778 on: August 27, 2012, 03:32:12 pm »
Did you see how when it comes time to select a command for the characters during battle, and then perform that action, the characters just slide forward and slide back.
I was wondering if you could add a walking animation so the characters take a step forward and then take a step back rather than slide.
Will do.

Quote
For the victory animation, I wanted to know if you could put a loop so the characters go back and forth from their battle stance to their victory stance during the victory music. Like they do on the other NES final fantasy games.
I can't even thing about leaving it as it is now.

Quote
For the damage animation, did you see how when the character takes physical damage, the sprite shakes back and forth?
Could you make the damage animation do that when the character takes any kind of damage?
Comes as last on my "To do" list. Might require more coding.

I don't know why they programmed the Phoenix downs the way they did.
It's different in original game? Want me to take a look?

Quote
Plus, when a character levels up, their HP and MP are completely replenished.
I did try to remove that, but couldn't figure out how.
Requires ASM knowledge.  Just say how you want it to be changed.

Does 2,416 sound right? The NES is little-endian, so larger values are stored with the byte order reversed from our interpretation.
We are talking about Enemies HP. little-endian apply only with addresses. It's up to programmer to make it any format sees as best.

Those look like ASM instructions.
A9 nn is LDA #$nn (load A with the value in the instruction)
20 7D 9F is JSR $9F7D (jump to subroutine at 9F7D, call the routine and then return after a RTS instruction
60 is RTS (return from subroutine. End the current subroutine)
Indeed. It's code. So event pointers points to the code instead of set of opecodes?
Anyway, It's easy to write Colosseum battle minigame once you disassemble other codes for some info.
We know that $9F7D have some code that uses current value loaded into A register. But what it does? Who knows :)
So since you don't know about ASM much, I'll be writing that battle thing.

About Animation work.
1 out of 4 steps is completed.
I repointered pointers to the empty space in ROM. I also imported all sprites for all characters into ROM. Next step is to plan out NES's PPU space. Almost all space in PPU is used so I'll have to plan it out carefully. Damage animations are taking most space and are most troublesome. I'm sorry for being so slow, but I have to work a part job to make money for my studies. 11 hours 6 days in week. Don't worry, though. I'll get it done. Not gonna give up  ;)

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #779 on: August 27, 2012, 03:34:28 pm »
Quote
May i use your maps, please? I'm not trying to make a game or anything, and your 8bit stuff is really detailed. i cant honestly find many 8bit games, hack or otherwise that uses that much detail. if you say no, can you reccomend me a game so i can try to rip it?

You can if you like. May I ask what it's for?



@KingMike, I was wondering if you could tell me what this might be. This is the string of code that comes right before Pointer Set A.

A5 89 C9 80 B0 0F 0A A8 B9 11 9C 85 02 B9 12 9C
85 03 6C 02 00 E9 80 0A A8 B9 11 9D 85 02 B9 12
9D 85 03 6C 02 00