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

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

Mirby

  • Jr. Member
  • **
  • Posts: 61
  • The Power's in the Pins
    • View Profile
    • Mirby Studios
Re: Final Fantasy VII NES Project
« Reply #680 on: July 20, 2012, 08:32:08 pm »
Why, yes! I did use to go to ZFGC quite often and I did do Super Smash Karts. I have to apologize that I don't really recognize you, but then again, my memory's not that great, specially nowadays. Sorry about that!

No worries, I had a slightly different name back then. :P

Thank you  :), but it was Lindblum that did the translation from the Chinese version.


Coatlesscarl definitely knows how to work wonders using Famitracker. It would be nice to have VRC6, but the music is much better now then it was before. So, can't complain too much.




Mt. Coral is finished:





Mt. Coral was not present in the original version of this game. This map I used is one of the unused maps from an earlier part of the game.

Well it's still fun to play. And Mt. Corel looks lovely! ^.^

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #681 on: July 22, 2012, 06:58:57 pm »
Quote
Well it's still fun to play. And Mt. Corel looks lovely! ^.^

Thanks :)



North Coral is done:




Miksy91

  • Jr. Member
  • **
  • Posts: 79
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #682 on: July 23, 2012, 01:03:47 am »
Looking good! And here is another example map the game makers didn't literally f*** up (although it still looks nothing like the way yours does).

Was Gold Saucer in the original game by the way? And how is it going to be in your hack?
I read somewhere that you couldn't get Cait Sith this chinese "remake", I may remember wrong though.

Also, will there be a train quest in the end of the game where you either crash with the train or succeed in stopping it?
Pokemon Dark Energy is a rom hack based on Pokemon Silver. Like most pokemon hacks, it retains the pokemon stylish gameplay but has plenty of elements from other RPGs as well. You'd better check it out!

Eisenwill

  • Jr. Member
  • **
  • Posts: 9
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #683 on: July 24, 2012, 08:42:53 pm »
Looking good! And here is another example map the game makers didn't literally f*** up (although it still looks nothing like the way yours does).

Was Gold Saucer in the original game by the way? And how is it going to be in your hack?
I read somewhere that you couldn't get Cait Sith this chinese "remake", I may remember wrong though.

Also, will there be a train quest in the end of the game where you either crash with the train or succeed in stopping it?
Gold Saucer is in the game, but there aren't any minigames, just plot-related events. I don't know what Lugia might add or change, however.
Cait Sith is in the game as well, though it sounds like he doesn't come back after the Temple of the Ancients (unless the hack changes this).

Also, as the game cuts out most of the third disc, there would be no place for a train quest. The whole huge materia plot apparently doesn't happen in this game, it just jumps from Sephiroth summoning Meteor to Cloud and Tifa resolving Cloud's identity issues, then places the party right before the final battle with Sephiroth. I, like several others, would love to see the missing content return somehow, but right now no one working on the hack has its event coding figured out well enough to expand the game and add those events.

Mind you, I still haven't done a full playthrough yet, (I'm waiting for this excellent hack to be completed  :thumbsup: ) so others might know more details than I do.

Miksy91

  • Jr. Member
  • **
  • Posts: 79
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #684 on: July 25, 2012, 10:21:08 am »
Gold Saucer is in the game, but there aren't any minigames, just plot-related events. I don't know what Lugia might add or change, however.
Cait Sith is in the game as well, though it sounds like he doesn't come back after the Temple of the Ancients (unless the hack changes this).

Also, as the game cuts out most of the third disc, there would be no place for a train quest. The whole huge materia plot apparently doesn't happen in this game, it just jumps from Sephiroth summoning Meteor to Cloud and Tifa resolving Cloud's identity issues, then places the party right before the final battle with Sephiroth. I, like several others, would love to see the missing content return somehow, but right now no one working on the hack has its event coding figured out well enough to expand the game and add those events.
Thanks for clarifying that up :)

No idea how event coding might work in this rom because I've absolutely no knowledge with other games than GB/C and GBA ones (maybe a little bit of SNES but that's all). Surely you would suppose the text to be loaded either through an assembly routine of some sort or through a script but it doesn't sound like they would have created a working scripting system for a pirate game but who knows. But yeah, I can't say how good my definition about finding the event coding is as I haven't bothered searching how nes works.
Pokemon Dark Energy is a rom hack based on Pokemon Silver. Like most pokemon hacks, it retains the pokemon stylish gameplay but has plenty of elements from other RPGs as well. You'd better check it out!

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #685 on: July 27, 2012, 08:24:44 am »
I'm thinking of taking a break from doing maps this weekend and take another shot at trying to figure out more of the event system. Right now I believe that I have most of the event commands figured out. I just need to learn how the pointers work and how the game knows which event takes place on which map.

I have so much left over space from some of the events I worked on and I can't do anything with it.

I took apart the coding at the begining of each of the maps and could not find anything related to the game's event system. So the events are called from somewhere else in the rom.

I just need to figure out where.

Garoth Moulinoski

  • Hero Member
  • *****
  • Posts: 6290
  • Disliking that smoke.
    • View Profile
    • My Stuff including Super Smash Karts.
Re: Final Fantasy VII NES Project
« Reply #686 on: July 27, 2012, 08:52:50 am »
Hmm, if you say there's that much space left, what would plan on using it for? If I may ask...
Who will quote me next?
Disclaimer: If it sounds wrong, I may have been posting while asleep.

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #687 on: July 27, 2012, 09:31:16 am »
Quote
Hmm, if you say there's that much space left, what would plan on using it for? If I may ask...

Mostly I would like to add some of what the creators of the Pirate cut out. Such as the new Cait Sith joining at the Temple of the Ancients. And more explanation of what happened in Cloud's past during the last scenes of the game. And enhance some other scenes.

Once I figure out the event system, I would like to create a new dialogue section so I can add some events that the game cut out. I believe that I can use the space that was set aside for the Chinese characters for a new dialogue section.

Garoth Moulinoski

  • Hero Member
  • *****
  • Posts: 6290
  • Disliking that smoke.
    • View Profile
    • My Stuff including Super Smash Karts.
Re: Final Fantasy VII NES Project
« Reply #688 on: July 27, 2012, 10:04:08 am »
Heh, I figured that's what you would say. Good luck!  :thumbsup: :beer:
Who will quote me next?
Disclaimer: If it sounds wrong, I may have been posting while asleep.

Mauron

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 551
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #689 on: July 27, 2012, 04:10:05 pm »
Can you post some of your notes on decoded events? I wouldn't mind taking a look at this.
Mauron wuz here.

InfamousKnight

  • Sr. Member
  • ****
  • Posts: 321
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #690 on: July 27, 2012, 11:29:10 pm »
I am so making an LP of this game when the hack is complete.

StorMyu

  • Jr. Member
  • **
  • Posts: 65
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #691 on: July 28, 2012, 10:05:26 am »
Youtube account plz !  :woot!:

InfamousKnight

  • Sr. Member
  • ****
  • Posts: 321
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #692 on: July 28, 2012, 02:47:43 pm »

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #693 on: July 28, 2012, 11:12:48 pm »
Quote
Can you post some of your notes on decoded events? I wouldn't mind taking a look at this.

Here's what I have so far on the event system:

http://dl.dropbox.com/u/23698591/Event%20Pointers.txt

http://dl.dropbox.com/u/23698591/Event%20system.txt

InfamousKnight

  • Sr. Member
  • ****
  • Posts: 321
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #694 on: July 29, 2012, 12:33:39 am »
Just a warning guys, don't use JIPS to patch your rom. It will jack up your rom. And remember that this is the original chinese version, not the English patch. Don't download any English patch other then this.

EarlJ

  • Jr. Member
  • **
  • Posts: 47
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #695 on: July 29, 2012, 04:32:39 am »
Quote
13 xx xx xx
This calls for a boss fight
The second byte calls for a specific boss
I don't know what the other two bytes are for.
Background and music to use, maybe? Or screen transition and sound effect to play as fight is triggered, if those differ between boss fights and normal random encounters.

Quote
After this byte set is xx xx xx xx xx
This tells the character to automatically move to a set spot on the map.
I don't know what the first byte does, but I've seen it set to both 06 and 09.
Could be setting sprite animation speed / movement acceleration, if there are instances where the characters 'run' or move around faster than normal.

Quote
18 xx xx xx xx xx xx xx
the first byte calls to shake the screen
I don't know what the rest of the bytes do...
Duration of effect, magnitude of effect, type of effect (if there are different varieties of screen shake [eg circular clockwise, circular counterclockwise, vertical only...])?
Or it could be using different values for X and Y coordinates... that is, shake it from +12 to -12 pixels vertically, and +16 to -16 horizontally and you give those values directly.

There might also be an 'off' command for the screen shake...

Some commands might be a fixed length, so the game will always expect them to be 4 or 8 or whatever bytes long. Others like 0A, which can be a variable length, might be what makes the FF necessary to let the game know 'okay, that's all we're doing with this command'.


Just some random guesswork.
A while ago I was figuring out event commands for another game, and what I did was take a screenshot of a hex block of the event data, and color coded chunks as I figured out what they did so I could isolate the unknowns. You let the event play out, you look at the image of the hex, and you walk yourself through what must be going on. Stuff isn't so scary and opaque when you can break it down.

You might also want to order the commands by their hex, just to keep clear where missing commands might be.
I'm guessing 1D or 1E might force a character into/out of your active party if this game works like I think and you're limited to a party of three.
There might also be commands to set/check/clear flags, unless that's handled some other way...

Lugia2009

  • Hero Member
  • *****
  • Posts: 510
  • Yes that was a banana. No one expects the banana
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #696 on: July 29, 2012, 12:29:02 pm »
Quote
Some commands might be a fixed length, so the game will always expect them to be 4 or 8 or whatever bytes long. Others like 0A, which can be a variable length, might be what makes the FF necessary to let the game know 'okay, that's all we're doing with this command'.

You're right, that's what it's used for.


Quote
Could be setting sprite animation speed / movement acceleration, if there are instances where the characters 'run' or move around faster than normal.

From what I see, the characters only move at one set speed. The character you control can run but only when the map is not scrolling.


For the event commands, here's what I know so far.

Event Commands:

01 Activates event when a certain tile is stepped on.

02 At the beginning of some events

03 At the beginning of some events

04 Calls a single dialogue box at a time

05 Teleport to a different map

06 At the beginning of some events

07 ??? May not be used

08 Tells a character to move or face a direction

09 Tells a character to appear

0a Tells a character or characters to disappear

0b Pauses an event

0c Pans the screen

0d ??? May have something to do with events triggered by talking to a NPC or object

0e Enables character animation

0f Disables character animation

10 ??? May not be used

11 Fades screen to black

12 Fades screen back in from black

13 Calls for a boss fight

14 Moves character and allows the camera to follow that character

15 ??? May not be used

16 Tells two characters to move at the same time

17 ??? May not be used

18 Shakes the screen

19 ??? May not be used

1a Brings up two-choice decision box

1b adds key item to inventory

1c Adds a character to the party

1d ??? May not be used

1e ??? May not be used

1f Removes a character from the party

20 ??? May not be used

21 Adds money to you

22 ??? May not be used

23 ??? May not be used

24 Subtracts money from you

25 ??? May not be used

26 ??? May not be used

27 ??? May not be used

28 ??? May not be used

29 Calls for dialogue

2a Swaps two characters sprites

2b ??? May not be used

2c ??? May not be used

2d ??? May not be used

2e ??? May not be used

2f ??? May not be used

30 Fades screen to black and does something else along with that.

31 Fades screen back in from black and determines the appearance of your character when it does.





The 18 unknown ones may not be used or just don't exist. But I have not come across any of them yet. And I haven't come across any commands past "31".




02 xx, 03 xx, and 06 xx

I don't know what purpose the first byte serves.

I don't know what the second byte is. But I think it may determine the order in which events happen in the game. There are 02 xx, 03 xx, and 06 xx byte sets throughout the event banks in the rom. And the second byte in each set seems to be one digit higher than the second byte of the byte set that preceded it.

Example: At 0x003301 is 03 74
    At 0x0032ff is 20 73
     and At 0x00330a is 06 74

03 74 and 06 74 are both part of the same event, but 02 73 is part of an event that came right before the event with the 03 74 byte set.

I guess since many events in the game take place on the same maps, this determines which events play out first.



So far, I've come across 31 event commands. What I don't know yet is:

1. What command adds an item to the inventory when you open a chest.

2. A conditional event branch for when something is triggered by having the correct key item.

Example: Continuing past the Sleeping forest when you have the Lunar Harp.



When looking at something I don't understand, what I do is create a savestate, turn on the Code Data Logger, and play out the event.

Then I look at all of the data the Code Data Logger highlights and find the part I don't understand.

I then change one or two bytes and replay the event to see what has changed if anything at all.

This is how I've figured out all of the event commands I know.



InfamousKnight

  • Sr. Member
  • ****
  • Posts: 321
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #697 on: July 29, 2012, 08:39:55 pm »
idk why but when I reach the train station after blowing up the reactor, I get in a battle dead. I don't get hit or anything, I just die. So then I loaded my save state, then every time I take a step, I get in a battle just dead.

BTW, are you using a hex editor to hack the game? A hex editor edits bytes in the file so I guess thats what you're using but not sure.
« Last Edit: July 30, 2012, 01:15:19 am by InfamousKnight »

Miksy91

  • Jr. Member
  • **
  • Posts: 79
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #698 on: July 30, 2012, 02:27:00 am »
So far, I've come across 31 event commands. What I don't know yet is:

1. What command adds an item to the inventory when you open a chest.

2. A conditional event branch for when something is triggered by having the correct key item.

Example: Continuing past the Sleeping forest when you have the Lunar Harp.
If I was to explore how these things work, I'd probably try the following at first:

Issue No. 1
-Search for the displayed text "[RAM1] received [RAM2]/Lunar Harp". I don't know how it's written in there but you should find it.
-Find text code that calls it (29 [pointer] ?) so you'd see where the script is located
-Check what kind of code follows that script (it's pretty much possible that the command you're looking for is actually one of the group that you found "not possibly used").

Issue No. 2
There is probably a script/asm routine that's being executed whenever a map is loaded. For most of the maps, it doesn't have to lead into loading any special data but for ones such as the entrance to Sleeping Forest, a certain code is called to change the exit of the map, one way or another, depending on your situation in the game.
Pokemon Dark Energy is a rom hack based on Pokemon Silver. Like most pokemon hacks, it retains the pokemon stylish gameplay but has plenty of elements from other RPGs as well. You'd better check it out!

EarlJ

  • Jr. Member
  • **
  • Posts: 47
    • View Profile
Re: Final Fantasy VII NES Project
« Reply #699 on: July 30, 2012, 04:38:52 am »
Again, just guessing, but...

Given their proximity to each other, I'd think that 02 xx, 03 xx, and 06 xx... and 01 could all be varieties of event trigger. So 01 is on tile, while another might indicate automatic upon loading the map, another might be on tile if quest item is in inventory, another on tile but item has to be equipped or used not just in possession... or something along those lines.

Like you have lists for the character IDs for their join/leave commands, it might be worth cross-checking 'you don't know' bytes to a list of item IDs (and/or quest item IDs, if those are considered a separate grouping), if you've got one. Also a list of map IDs, because 05 might not be the only way those transitions can be done (in the game I worked with, there were three or four different commands that could be used to transition in different ways).

Quote
Then I look at all of the data the Code Data Logger highlights and find the part I don't understand.
I then change one or two bytes and replay the event to see what has changed if anything at all.
This is how I've figured out all of the event commands I know.
Sometimes you can just swap out a command you know for one you don't, and with luck it'll use the same number of bytes as the one you replaced... if so, the effect in the event should be obvious. Even if it doesn't work, the way it breaks the event can give you an idea of what the command might be doing, or how many bytes long it *should* be. I had some fun trial-and-erroring things out like that, especially when I was first starting to figure the event system out.