Romhacking.net

Romhacking => Personal Projects => Topic started by: Vanya on December 27, 2008, 10:58:55 pm

Title: Project: FF7 NES Upgrade
Post by: Vanya on December 27, 2008, 10:58:55 pm
(http://i48.tinypic.com/2v3kev9.jpg)

Project Overview:
The aim of this project is to take Lindblum's FF7 NES translation and make it more FF7-ish. Basically it will be a face-lift project.

Objectives:
*Redraw all sprites in the game to match FF7 better. This will include changing a lot of enemies into those from FF7 instead of FF3. The spell effects could use a face-lift also.
*Redraw all tile sets to match their FF7 locations better. The train station shouldn't look like Castle Sasoon, right?
*Arrange FF7 music and insert to replace FF2 & 3 tunes.
*Any other cool ideas we come up with. ^_^

Team:
Vanya > director, digital artist.
Lindblum > Special adviser.


------------------------------------------------------------------------------------------------
Update (12/14/2009): Lindblum Lives!!
As stated in my last post, Lindblum has gotten into contact with me about he project once more.
He will be providing support in the form of notes and tools he developed for the translation and subsequent enhancements he was working on. Yay!!

I've been slowly working on some new tiles for the game and will have some screen shots up by months end. Huzzah!!


Update (10/28/2009): Project Reset!
After several months of nothing going on here, and much real life happening, I'm back to work on this project.
At this point I'm going to start anew and will be asking for help from anyone that is interested in getting this project done.

I'm going to need help in two particular areas; music and ASM. I still don't know jack about composing, remixing or what not so I will need someone who can down-mix the FF7 music. I'm still learning ASM myself, so I could really use a hand on that end as well. There are some improvements to the games engine and some additional features that will require someone fluent in 6502 ASM. If you are interested in contributing or were on the team before and would like to help out again, please feel free to drop me a PM.


*******************************************************************************
Screen shots for sprite reference
*******************************************************************************
Enemies:
Witch & Nightmare (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_002.png) --- BigRat (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_003.png) --- Ninja (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_004.png) --- Griffin (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_005.png) --- Pygman & Naga (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_006.png) --- Pteragon (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_007.png)

Bosses:
Soldier (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_001.png) --- Scorpion (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIxlation_008.png)

*******************************************************************************
Screen shots for tile reference
*******************************************************************************
NES Platform 1 (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIT_001.png) --- NES Platform 2 (http://i256.photobucket.com/albums/hh189/koala_knight/FinalFantasyVIIT_002.png)
PSX Platform 1 (http://i256.photobucket.com/albums/hh189/koala_knight/SCUS_94163_24012009_233944_0593.png) --- PSX Platform 2 (http://i256.photobucket.com/albums/hh189/koala_knight/SCUS_94163_24012009_233946_0046.png) --- PSX Platform 3 (http://i256.photobucket.com/albums/hh189/koala_knight/SCUS_94163_24012009_233950_0453.png)
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Lindblum on December 28, 2008, 01:01:01 am
If you want to change the overhead sprites you'll have to do it for every location.  Sprite tilesets appear across the entire ROM, so you'd probably have to search for their tiles' byte sequences to make sure you've found every instance in the file. 
Avatars, enemies, and spells are all coded similarly.  Their tilesets are preceded by data chunks that contain layout maps of tile reference numbers and what I suspect are palette references.  Each object has a local tileset that starts with a local index of 0x00.  Avatars have 4x4 maps.  Spells have three 4x4 contiguous maps to account for their 3-frame animations. 

Please excuse if I'm about to explain things that you already know.

If you have to insert an object larger than the original, then you will need to know how to correct the pointers to all its consecutive objects.  The pointer arrays are almost always at the top of the bank page (a multiple of 0x8000 + 0x10).  These are 2-byte big-endian and point to their corresponding addresses as they appear in the FCEUX hex editor.  $8000-$FFFF is the currently loaded bank of the ROM, so these pointer values will always be above $8000 (The game bank switches by writing the bank# to $5000.  e.g. Soldier tiles are stored at 0x1A00B2, 0x1A0000 = 0x8000*0x34, so it's in bank 0x34).  0x1A0020 is loaded to $8010, and is a pointer to $806B, which is 0x1A007B in the ROM.  The tileset starts at $80A2, so graphic object header is 0x37 (55) bytes.  Notice the 4x6 pattern grid starting at 0x1A0082 (actually I don't understand every byte in there yet).  Since this is the first enemy in the game, play around with 0x1A007B-0x1A00B1 (header) and 0x1A00B2-1A0221 (tiles)  to learn to manipulate its appearance.  Palette references are around the end of the header.  They let you change palettes of 16x16 blocks of the sprite.

Understand all the above and you're pretty much set to figure out the rest.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on December 28, 2008, 03:30:04 pm
Cool! Thanks for all the info. I'll start looking into what needs to be changed. Meanwhile if anyone has any specific ideas to contribute please feel free to post them here. ^_^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on December 30, 2008, 02:22:07 am
I'm on my wii right now so I can't post them, but I have some mugshots you could use if you wanted
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on December 30, 2008, 10:33:55 am
Sweet! I can't wait to see them. ^_^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Lindblum on December 30, 2008, 02:28:34 pm
Dr Mario sent them to me once. Unless he has new ones, they're:
(http://img444.imageshack.us/img444/7193/ff7png2qm9.png)
Here's something that should help guide you with all the other avatars:
http://www.mediafire.com/?v4ecnng1dzy (http://www.mediafire.com/?v4ecnng1dzy)


I've noticed that enemies have 2 4-byte palettes stored right inside the header, using the standard NES color values.  They start with 0x0F (as the black color).  There are some bytes before the palettes that affect the way the palettes are deployed to the tiles, but I didn't find a pattern.

Let me know if you need savestates.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on December 30, 2008, 06:39:42 pm
Those would be them. I'll check out the file you posted to see if I can't do anything with the rest of them.
**EDIT**
(http://e.imagehost.org/0439/FF7Mugs.png)
2nd draft of all of them
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: RedComet on December 31, 2008, 01:19:30 pm
Now get started on the maps. ;)
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on December 31, 2008, 02:01:24 pm
Those mugs are sweet, dude! Nice work.

I'll begin work on the tiles on Jan 2nd.

I'd start today, but I'm hosting a new years part and have to fix my place up.

I'd start tomorrow, but I'll be nursing a hangover. ^_^

???

"I was going to edit graphics, but I just played Tetris all day because I was high!"
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Lindblum on December 31, 2008, 04:50:23 pm
Will the patch go onto the original ROM or the translation?  If for the translation you'll have to specify upon release which version of the translation it patches to.  I'm going to replace some mugshots with better SRW mugshots by the time I'm through.  At this pace it looks like v1.00 may be ready for unveiling in just a couple of weeks.  It probably makes little difference as long as IPS overwrites instead of XOR's the data.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Darkdata on December 31, 2008, 11:28:18 pm
Random Notes
Palette for the first area is at $81335
Every area has it\s own tileset. It's crazy! All the shops each load a different tileset! :S

Sprite doodles to be added later:
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 01, 2009, 01:02:16 pm
@Lindblum: I think I should make this for your translation and I was going to wait for v1.0 to be released at least before inserting any graphics. ^_^

@Darkdata: Thanks for that. And please, if you find any more data that could be helpful to this project feel free to post it! ^_^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 01, 2009, 10:19:35 pm
Part of Shinra Tower?
(http://e.imagehost.org/0060/tower.png)
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Darkdata on January 02, 2009, 03:54:15 am
My attempt at it:
(http://i129.photobucket.com/albums/p202/darkdatatrc/X2/tileset-1.png)
(http://i129.photobucket.com/albums/p202/darkdatatrc/X2/FF7NESGFXEDIT-3.png)(http://i129.photobucket.com/albums/p202/darkdatatrc/X2/FF7NESGFXEDIT-2.png)

Some notes:
It seems like each area uses it's own palette too. The Palette is repeated 3 times thought the rom. (Well, that area's palette).
For added fun, the textbox tile palette is shared with the roof tiles palette (hence the reason it's only simple)
I can't seem to find the tile assembly (meta-tiles) searches for them with wxyz, and wyxz orders do not find them. Could they be compressed?
I tried to copy Dr. Mario's style, unfortunately I still have quite a bit to learn. :P
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 02, 2009, 04:27:43 am
Wow, I really like that. I'm thinking about maybe starting to mess around with some ideas for enemy graphics. I think maybe Reno shouldn't look like some sort of mythical god creature...
(http://e.imagehost.org/0578/safer.png)
Think this might be too big?
(http://e.imagehost.org/0433/FF7Mugs.png)
This is how the mugs would ACTUALLY have to look color wise. (The blue is a lot harsher than it actually looks in an emulator)
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 02, 2009, 10:01:15 am
Great work so far guys.

I love that Safer Sephiroth!

I would like to eliminate any trace of FF3 enemy graphics.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 02, 2009, 05:13:08 pm
(http://e.imagehost.org/0099/Sephiroth.png)
I dunno, I'm playing with it.
**EDIT**
(http://e.imagehost.org/0042/safer.png)
Cleaned this up some, and added color.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 03, 2009, 10:11:48 am
Sweet!
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 03, 2009, 04:24:52 pm
(http://e.imagehost.org/0181/Sephiroth.png)
This one looks better.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 03, 2009, 04:49:41 pm
He looks a bit stiffer than the first one. Maybe spread his legs a little and bend the knees a bit to give him a more natural look. Also, don't forget to bend the tip of the sword downward.  There's also something 'wrong' about how he's holding the sword, but I can't pinpoint it. Good start though! ^_^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 03, 2009, 06:13:02 pm
Actually he should be stiffer, that was the problem with the first one. Play the PSX game, He just stands like that. I was using gameplay videos for reference on him this time around.

(http://e.imagehost.org/0401/enemies.png)
Also here's the guard scorpion, Air Buster, MP, and Proto Machine Gun. If someone wants to do me a huge favor, play through the game and take screenshots of all the boss fights so I can get a size reference.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 04, 2009, 10:11:08 am
Actually he should be stiffer, that was the problem with the first one. Play the PSX game, He just stands like that. I was using gameplay videos for reference on him this time around.

No reason not to make improvements. I think you should give yourself a little more artistic license. Be accurate sure, but make changes where you think they work or make sense. ^_^

I see what you mean about the stance, but you should definitely curve the blade. The way it is looks unnatural to the point that one would have trouble launching an attack from that position. I know because I tried that stance and grip with my boken.

Nice work on those new sprites. I especially like the Guard Scorpion. I think you should try more of these 3 color designs. ^_^

I'm going to see if I can dig up any boss illustrations for you to work with too. ^_^

I'll be working on some new sprites starting tomorrow as well. I think I'll begin with some character sprites.

BTW, are you going to be working on enemy sprites too or just the bosses?
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 04, 2009, 05:20:35 pm
MP and Proto Machinegun are both regular enemies. MPs are just more like "event" enemies, where you fight them after triggering an event. I might be working mostly on regular enemies as of right now. I'm taking a pass on Reno, someone else can do him.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 05, 2009, 02:15:15 pm
Sounds cool. I want to try my hand at some of these myself. ^_^

Updated first post.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Withope on January 08, 2009, 03:44:51 am
Hello,

I've been following this project for the past week, and I am interested in remaking the songs from FFVII into 8-bit style. Yes, I'm aware that some instruments will be missing, but I feel some FFVII songs (at least melodies) would make the experience all the more enjoyable.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 08, 2009, 08:38:44 am
Excellent! With the addition of Withope this project will be truly memorable. ^_^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Nerd42 on January 09, 2009, 05:18:01 pm
Hey if there are any enemies in FF7 that were also in any of the old NES games, just reuse the graphics from the old NES games. Otherwise, sure it'd be cool to replace graphics :)

Withope, I've heard that getting custom songs into an exsiting closed-source rom can be really really hard ... but that was SNES .... I dunno if NES sound is different

heck by the time this is all said and done you guys will probably have completely disassembled and documented the thing.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Withope on January 09, 2009, 11:23:24 pm
I think the idea is making new 8-bit graphics based off of the FFVII PS release.

Well, about the only thing I know how to do is arrange these pieces of music, and give the programmers-for this project-the NSF files.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: 108 Stars on January 10, 2009, 11:17:55 am
Nice work overall, although I see a serious problem with safer Sephiroth; the battles are strictly sideview, yet you have redrawn it right from the front view perspective of that battle in the PS1 game. It will look akward if the enemy does not look at the party, but stares at the player.^^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Lindblum on January 10, 2009, 01:13:53 pm
Astos, Kraken, Lich, Beelzebub, Malboro, Iron Giant, Planktae, and Scylla didn't have to look at the party. Maybe they thought they were too good to make eye contact with the enemy, or just wanted to break the 4th wall.

If anyone is more motivated to do the music than I, the music RAM starts around $6E00.
$6E54 Square1 Note (??-3F)
$6E55 Square2 Note (??-3F)
$6E56 Triangle (?) Note
$6E57 Noise (?) Note
This will help you use the debugger to find where the notes from each stream are loaded from.  I think $A2FB LDA's Square1 notes.
15, 1B, 27, 33, 3F are all for C notes, so you can figure out your scales from there.
I keep forgetting there are 2 battle themes; the random battle theme (FF2j battle theme), and the boss/scripted battle theme (FF3j boss theme (makes me think of dancing clowns somewhy)).

Edit: I haven't been able to rip a working NSF from the ROM.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 10, 2009, 06:05:01 pm
Thanks for that info, Lindblum! That will make things much easier.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Withope on January 11, 2009, 04:55:27 am
If anyone is more motivated to do the music than I, the music RAM starts around $6E00.
$6E54 Square1 Note (??-3F)
$6E55 Square2 Note (??-3F)
$6E56 Triangle (?) Note
$6E57 Noise (?) Note
This will help you use the debugger to find where the notes from each stream are loaded from.  I think $A2FB LDA's Square1 notes.
15, 1B, 27, 33, 3F are all for C notes, so you can figure out your scales from there.
I keep forgetting there are 2 battle themes; the random battle theme (FF2j battle theme), and the boss/scripted battle theme (FF3j boss theme (makes me think of dancing clowns somewhy)).

Edit: I haven't been able to rip a working NSF from the ROM.


Admittedly I hardly know enough about programming ROMs for NES. I assumed I could merely arrange any piece from FFVII in 8-bit style in FamiTracker, export an NSF of such piece, send it your way, and everything would be alright.  Is this still a possibility?
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Lindblum on January 11, 2009, 03:47:09 pm
Quote
Admittedly I hardly know enough about programming ROMs for NES. I assumed I could merely arrange any piece from FFVII in 8-bit style in FamiTracker, export an NSF of such piece, send it your way, and everything would be alright.  Is this still a possibility?
I already have FF7 MIDI's, and can transcribe the note sequences to byte values, but that's far from being enough to insert custom music.  SliverX is probably the guy who best understands NES music hacking.  So far I can only find where to find a track sequence in RAM and ROM.  I don't know how they're addressed, synchronized, or how the control bytes work.  I'd also like to know how and where songs are indexed, so that we can tell events to point to new songs.  It's shameful they didn't even implement the chocobo music. 
Just a few months ago I knew zilch about using the FCEUX debugger.  Now it's the best way I can figure out how to figure things out. 
I can give you a little demonstration of what the music looks like.  Open the ROM and look at 0x1C242-0x1C2B2. This is the Boss Music Square1 Track.  You'll hear it in the 1st fight of the game (2 soldiers).  It starts out:
Code: [Select]
6B 6C 68 65 64 65 68 6C 6F 6E 6A 6D 0C 6C 06 68 C9
G# A  F  D  C# D  F  A  C  B  G  A# A  A  D# F  F#
Brandish your favorite instrument and jam it out.  You can throw your own notes into there and become a step closer to being a 'music hacker'.

Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 12, 2009, 06:30:34 pm
Update:

Added pics of some of the enemies to the first post. This should help spriters create new enemy graphics.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Azkadellia on January 12, 2009, 06:52:57 pm
Vanya: The link for the ninja leads to the Witch and Nitemare image.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 12, 2009, 07:01:40 pm
Vanya: The link for the ninja leads to the Witch and Nitemare image.

Fixed. ^_^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: 108 Stars on January 13, 2009, 09:48:21 am
Astos, Kraken, Lich, Beelzebub, Malboro, Iron Giant, Planktae, and Scylla didn't have to look at the party. Maybe they thought they were too good to make eye contact with the enemy, or just wanted to break the 4th wall.

Sorry, I did not mean any offense or to bash someone´s work; it was meant as constructive critic. :)
As for the fiends you mentioned, at least they have all been turned a bit in the remakes, so they are not quite as front-viewed as before, they turned around just a bit so that they can see the party now too^^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Thanatos-Zero on January 17, 2009, 04:42:28 pm
Greetings.
One of your team on Board2 asked me to do some 8-bit sprites for you, so ask me wich ones I should do.
Also don´t forget to tell me how big they should be. Besides of monster sprites I can do for you tiles and such. Here a little example of what I can do.
(http://img508.imageshack.us/img508/8049/heatman8bittilesvh4.png)

Also here a nice suggestion for the overworld music ( not mine).
http://www.newgrounds.com/audio/listen/13435

One thing about the Safer Sephiroth sprite. His angle must be turned, so he faces the protagonists. I will redo him for you, if you don´t mind.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 17, 2009, 07:12:38 pm
One thing about the Safer Sephiroth sprite. His angle must be turned, so he faces the protagonists. I will redo him for you, if you don´t mind.

I do.
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Vanya on January 17, 2009, 08:30:10 pm
Well right now we don't have a 'team' set in stone or anything like that. Mostly this is all volunteer work.
I guess since I started this thing I should organize some of the effort. These are the contributors so far:

Myself - Organizer, general support.
Lindblum - Advisor. (Has given us some great info on the game so far, Thanks!)
Dr. Mario - Monster/Boss & portrait spriter.
Darkdata - Data support & tile spriter.
Withope - Music.

I'll contact everyone via PM to see where we all stand on this loose collaboration.
You too, Thanatos.

I'll add a quick update to the front post once I've solidified the team.

Everyone, thanks for your contributions so far! I'm sure we can make this into a really great hack! ^_^
Title: Re: Project: FF7 NES Graphics Upgrade
Post by: Dr. Mario on January 17, 2009, 08:35:04 pm
I mean if someone else wants to step in and do some boss sprites, they totally should. I mean my main efforts are going towards my CV3 hack. I'm really only doing work for this when things aren't really moving in my main project. So if anyone else wants to jump in with some enemy sprites, feel free.
Title: Re: Project: FF7 NES Upgrade
Post by: 108 Stars on January 18, 2009, 07:37:04 am
I´d really love to help out, but I m damn busy with Pier Solar-gfx atm...
How lonh do you think the gfx-upgrade will take anyway? I might be able to help in 2 months or so, if it is not finished by then....
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 18, 2009, 11:14:11 am
Right now I'm gathering resources and accepting work, but I don't plan on inserting the new media until Lindblum finishes his translation.

Edit
Update on front page!!
Title: Re: Project: FF7 NES Upgrade
Post by: Darkdata on January 23, 2009, 12:55:57 pm
If someone can figure out how the tile data is stored for tiles I would be glad to have it.

I can't seem to find it no matter what order I search in. Unless I missed something completely obvious. [more than likely]
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 25, 2009, 12:23:36 am
Updated added to first post.

Darkdata. You might be interested in the new tile resource section. ^_^

I'll be posting more screen shots there in the future. ^_^

EDIT:Another new member added! Check first post. ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on February 19, 2009, 11:46:15 am
Things are slow right now, but this project won't die. I actually got to work for a week on an IT job as a subcontractor, but now it's back to being unemployed. ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on February 26, 2009, 10:40:03 am
good luck :)
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on February 26, 2009, 04:49:00 pm
I just got finished reverse engineering the sound engine for The Guardian Legend, so I may have the skills now to reverse engineer the sound engine for this game.  I can give it a shot if you'd like.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on February 26, 2009, 05:06:04 pm
Dude that would ROCK ... then we could add more ff7 music ! :)
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on February 26, 2009, 05:38:32 pm
tummai,
I can give you the research I've done on it so far.  I can change notes and keys, but beyond that it's got me quite confused.  Tonight I'll look for my Excel file where I tried to break apart and figure out the boss battle song (it also plays when you fight the soldiers at the beginning).  I'll root for your success. 
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on February 27, 2009, 12:03:54 am
That would be awesome, tummai! Please feel free to try. ^_^

And, a quick question. Have you ever tried messing with MM5's music engine?
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on February 27, 2009, 08:23:27 am
tummai,
I can give you the research I've done on it so far.  I can change notes and keys, but beyond that it's got me quite confused.  Tonight I'll look for my Excel file where I tried to break apart and figure out the boss battle song (it also plays when you fight the soldiers at the beginning).  I'll root for your success. 

Cool.  Send it my way.  I'm sure it will save me a lot of time.  Going in knowing where the songs are stored and what some of the music engine RAM does is much better than going in knowing nothing.  :)

Quote from: Vanya
That would be awesome, tummai! Please feel free to try. ^_^

And, a quick question. Have you ever tried messing with MM5's music engine?

No I haven't yet.  The Guardian Legend sound engine stuff that I've been working on for the past week or two is actually my first foray into ROM-hacking.  I have a little NES homebrew project that I want to start soon, but I didn't know what the hell I was doing as far as music/APU stuff, so I just put my face into the grindstone (with the help of blargg's handy APU reference document) to see if I could figure it out.  It worked.  I understand NES sound a lot better than I did two weeks ago. :)

I actually found your MM Powered Down thread the other day and downloaded the MM5 and MM1 ROMs, anticipating offering to help there.  So they are sitting on my hard drive waiting to be looked at.  It just happened that this FF7 thread came up with a new message first, so I posted in here.  I'm interested in taking a crack at both though.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on February 27, 2009, 09:57:23 am
tummai,
If you want to give it a try this weekend take a look at this.  I've slacked off this research for almost 2 months, so it's good someone's interested. 

FF7NES-Boss Music.xls (http://www.mediafire.com/download.php?tdgyim4j15d)
Each line in this file is a chronology of what bytes are loaded from PRG-ROM to play the song, and a there's a guide for identifying notes from byte values, before or after bit truncation (AND #$3F if I recall).  I don't remember what breakpoints I used, but if you know how to use the debugger you can figure it out. 

Watch the following values in FCEUX while the game runs and play with them.  These are a good starting point if you want to study the engine.

RAM Byte Adresses:
$C7-$C8   Dynamic Note Pointer
$6E54   Square1 (??-3F)
$6E55   Square2 (??-3F)
$6E56   Triangle(?) (??-3F)
$6E57   Noise(?) (??-3F)
$6EAC   Pitch shift
RAM Command Adresses:
$A341   Push note
$A342   Pitch shift
$A345   Truncate to 00-3F
$A347   Set note
$A352   Set note

ROM(RAM) Byte Adresses:
0x1C242-0x1C2B2($C232-$C2A2)   Boss Music Square1 (113B)
0x1C2CD-0x1C339($C2BD-$C329)   Boss Music Square2 (109B)
0x1C34C-0x1C3A9($C33C-$C399)   Boss Music Triangle(?) (94B)
0x1C3BB-0x1C36E($C3AB-$C45E)   Boss Music Noise(?) (180B)
*Don't forget the soldiers at the beginning count as bosses.

The RAM addresses (in parentheses) are the ones you'll see in the xls (where I used 0x instead of $ for Excel formatting reasons). 

I'd like to understand how the headers are set up, and what the control bytes do. 

Tip of the day: Use a cheat to set $6F62 to 00 so Bosses stay under 256HP.  (KFF, to clarify, this zeroes the high byte)
Title: Re: Project: FF7 NES Upgrade
Post by: KungFuFurby on February 27, 2009, 11:27:10 am
The max HP is 32767 or 65535 if you didn't account for the cheat code.  :o
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on February 27, 2009, 11:36:26 am
Quote from: Vanya
That would be awesome, tummai! Please feel free to try. ^_^

And, a quick question. Have you ever tried messing with MM5's music engine?

No I haven't yet.  The Guardian Legend sound engine stuff that I've been working on for the past week or two is actually my first foray into ROM-hacking.  I have a little NES homebrew project that I want to start soon, but I didn't know what the hell I was doing as far as music/APU stuff, so I just put my face into the grindstone (with the help of blargg's handy APU reference document) to see if I could figure it out.  It worked.  I understand NES sound a lot better than I did two weeks ago. :)

I actually found your MM Powered Down thread the other day and downloaded the MM5 and MM1 ROMs, anticipating offering to help there.  So they are sitting on my hard drive waiting to be looked at.  It just happened that this FF7 thread came up with a new message first, so I posted in here.  I'm interested in taking a crack at both though.

Excellent! I look forward to working with you on both projects! If you need any assistance please feel free to ask. As project director I'll be glad to support any of our members as best I can with research etc. ^_^

Just a heads up for everyone. I'll be making an update next week with lots of new resource files and an updated team roster!
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on February 27, 2009, 12:15:33 pm
tummai,
If you want to give it a try this weekend take a look at this.  I've slacked off this research for almost 2 months, so it's good someone's interested. 


ROM(RAM) Byte Adresses:
0x1C242-0x1C2B2($C232-$C2A2)   Boss Music Square1 (113B)
0x1C2CD-0x1C339($C2BD-$C329)   Boss Music Square2 (109B)
0x1C34C-0x1C3A9($C33C-$C399)   Boss Music Triangle(?) (94B)
0x1C3BB-0x1C36E($C3AB-$C45E)   Boss Music Noise(?) (180B)
*Don't forget the soldiers at the beginning count as bosses.

The RAM addresses (in parentheses) are the ones you'll see in the xls (where I used 0x instead of $ for Excel formatting reasons). 

I'd like to understand how the headers are set up, and what the control bytes do. 

Thanks a lot!  Actually I do most of my work on the weekdays.  Oddly enough my job allows more free time than home life does (infant at home).  At least right now it does. 

I took a quick peek though and I figured out a few details about the song format:

1) Any value #$C0 and above is an opcode.  Each opcode takes one or more operands (looks like most take 1, but #$DB for example takes 4). I don't quite know what all of these do yet, (I will soon though!) but it is clear that #$C9 is a rest. (your red question marks in the xls file).  And #$D0 appears to be the repeat opcode (notice it occurs at the end of each channel).  Also, that last string of bytes after the #$D0 on the triangle channel is likely your percussion.  The Guardian Legend does this same kind of thing (encoding the percussion into one of the other channels).  I think the reason this is done is because the percussion is very simple and often overwritten (by SFX that use the noise channel).

2) I think values less than #$40 will be your Note Length indicators.  The song first uses #$06, plays a long string of notes, then uses $0C (twice the value of# $06) and that note in the song is twice as long.  Then it goes back to #$06.  When it gets to the fast part near the end of the song, we find a #$04.  Actually, I'm not 100% sure that #$40 is the upper limit, since you list tone values down to #$0D.  I am just guessing from how the code branches.  This will become more clear as I go through the engine more.

3) Values between #$40 and #$C0 are probably note values.

Another thing I noticed is that the ROM has a LOT of #$00s.  How lucky :).  I think it will be possible to use this space for music if we need to.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on February 27, 2009, 12:35:00 pm
I'm glad you were able to understand my file and give us this info so quickly!  I believe i we figure out how songs are indexed and how they're called, we can figure out how to add a few new songs from FF7 and FF7AC (I don't think Anxious Heart or Yakusoku no Chi would digitize very well).  It's quite clear they put the minimal effort in this soundtrack.  If we change battle songs I'd like to make them faster to distract you from the tortoise-like gameplay (which I wish I could figure out how to accelerate). 

Hey, do you know how to rip/insert an NSF for this?  Would that make it easier to work on?  I only have failed experiences in music hacking. 
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on February 27, 2009, 12:43:39 pm
I'm glad you were able to understand my file and give us this info so quickly!  I believe i we figure out how songs are indexed and how they're called, we can figure out how to add a few new songs from FF7 and FF7AC (I don't think Anxious Heart or Yakusoku no Chi would digitize very well).  It's quite clear they put the minimal effort in this soundtrack. 

Hey, do you know how to rip/insert an NSF for this?  Would that make it easier to work on?  I only have failed experiences in music hacking. 

I've never tried to insert an NSF into a ROM, but my guess is that it isn't possible.  Pretty much every NES game has its own unique sound engine (minus the case of a company reusing code for several of its own games), with its own file formats for the music.  NSFs, if I understand them correctly, actually have the sound engine built in.  If they are ripped directly from a game, they will have that game's sound engine stored in the file with them.  If they are produced using a tracker like Famitracker, they will have that tracker's sound engine.  (If I'm dead wrong on this, someone please correct me).

So what we'll have to do is figure out this NES FF7 music format, then convert whatever music we want to use from an NSF or MIDI or whatever into the FF7 NES music format.

I'm new at this though, so I might be wrong.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on February 27, 2009, 01:05:23 pm
I think if we have the MIDIs (they're easy to find), we can look at the tracks in something like Anvil Studio, and transcribe the notes by hand.  The songs aren't THAT long.  If you find out how to call a song, then it might be worth adding the Chocobo theme, and I'd insert the code to call it when mounting a chocobo, and to call the default music when dismounting.  Another thing I should've done is document every song in the game (they don't use as many as should), find their approximate address ranges, and have an ordered list of tracks, which will become useful for figuring out how to call songs by index. 
Figuring out notes, loops and timing is all great, but it's useless if we don't know what's going to be enough to add additional tracks, even if it's a small "Hello World" ditty. 

Here are some savestates (http://www.mediafire.com/?ktt3ywy2umj) to help jump around the game.  I play 3 identical ROMs so I can use more states. 
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on February 27, 2009, 11:45:47 pm
I was wondering about adding more songs. In the end I don't think we'll have all the songs since the FF7's soundtrack is very long indeed. However if only a few songs make it in the hack will immediately be pure pwnage. ^_^

And, I believe you have the right idea about how nsf's work there, tummai.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 01, 2009, 10:54:57 pm
I was giving this a look today at work.  It's going a little slower than I thought it would, since the version of FCEUX that I found that could actually run the game has a buggy Trace Logger, but I was able to locate some songs, which should help me trace back to how to call songs.

I have a question though.  Searching through the ROM I found only 8 songs.  That seems like so few.  Someone who has played through the game, can you confirm if there are only 8 songs (songs that repeat over and over) in the game?  It will help me move onto the next step if I can get this confirmed.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 02, 2009, 01:30:39 am
I was only able to find 8 songs:
   01   FF* Prelude   0x1B8DD($B8CD-$B9??)
   02   Unident. Town   0x1B9DF($B9CF-$BB??)
   03   FF2 Town   0x1BB78($BB68-$BC??)
   04   FF2 Main Theme   0x1BC76($BC66-$BD??)
   05   FF2 Rebel Army   0x1BDEB($BDDB-$BF??)
   06   FF2 Battle   0x1BF73($BF63-$C1??)
   07   FF3 Boss   0x1C21B($C20B-$C4??)
   08   FF* Victory   0x1C470($C460-$C6??)

Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 02, 2009, 02:05:50 am
Yes, those are the ones I found.  When you were playing the game, you didn't hear any other songs, did you?
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 02, 2009, 03:02:53 am
I've noticed $6E00-$6E01 happens to store the address of the current song.  This address is loaded from $C7-$C8 (dynamic music pointer).  Set an execution breakpoint at $9DAD to watch this pointer get set when the song changes.  Yadda yadda yadda, the song pointers are stored at 0x1B8B2:
   MusicPtrLo = $B8A1 + 2*Index
   MusicPtrHi = $B8A2 + 2*Index
It looks like there are 12 repetitive pointers for Rebel Army at the end of this array, so I bet we could turn those into pointers to new songs :laugh:

At 0x6156($E146-$E1EB) is a list of song indices.  Each index represents a location, and its value is the song to be loaded.  For example:
   $E146==05   World Map is FF2 Rebel Army
   $E170==03   Kalm is FF2 Town
   ...Don't bother figuring out the rest, I have most of that done already.
You can set an execution breakpoint at $E12B to see where a song Index is loaded from.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 02, 2009, 08:48:35 am
I've noticed $6E00-$6E01 happens to store the address of the current song.  This address is loaded from $C7-$C8 (dynamic music pointer).  Set an execution breakpoint at $9DAD to watch this pointer get set when the song changes.  Yadda yadda yadda, the song pointers are stored at 0x1B8B2:
   MusicPtrLo = $B8A1 + 2*Index
   MusicPtrHi = $B8A2 + 2*Index
It looks like there are 12 repetitive pointers for Rebel Army at the end of this array, so I bet we could turn those into pointers to new songs :laugh:

At 0x6156($E146-$E1EB) is a list of song indices.  Each index represents a location, and its value is the song to be loaded.  For example:
   $E146==05   World Map is FF2 Rebel Army
   $E170==03   Kalm is FF2 Town
   ...Don't bother figuring out the rest, I have most of that done already.
You can set an execution breakpoint at $E12B to see where a song Index is loaded from.

Cool.  That matches my notes, except for the $E146 part which I hadn't gotten to yet.

As a test, I copied one of the songs into some free space at 0x1DBA0 (in the same bank as the loading routines), thus creating a 9th song.  I made a pointer to it at the end of the $B8A1 table (the first repeat of the Rebel Army pointer) and then changed all of the bytes in the E146 table to 09 (the new 9th pointer) and guess what, it worked!  Looks like this will be possible :)

The only snag is that some songs are hard-coded (ie, their song number is loaded directly into A and not pulled from the 0x6156/$E146 table), so we will have to find all of these instances and hard-code the song we want.  The title-screen for example is a hard-coded load at 0x071719 (execution breakpoint $9709).  The introduction soldier "boss" battle is hard-coded too at 0x23FDF (execution breakpoint BFCF).

Still, it looks like you nailed it.  If we can decode the song format, we can add our own songs in.  Cool deal.
Title: Re: Project: FF7 NES Upgrade
Post by: Tauwasser on March 02, 2009, 09:08:55 am
Now, remember to write a doc about the song format and upload it to RHDN and we're all cool :D
This is going to be serious good news for other hacks that want to incorporate somewhat different themes!

cYa,

Tauwasser
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 02, 2009, 11:03:17 am
I agree with that completely! The more knowledge we put down for others to read, the more the community will grow. ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 03, 2009, 01:27:36 pm
Found more info. 
All songs start with "FF 00 __ __ 01 __ __ 02 __ __ 03 __ __ FF"
00-03 seem to be channel indexes, and the 2 bytes after them are the bigendian addresses of those channel streams relative to the song's root address.  That's super important. 
After the song header comes the header of the first channel, which is a series of opcodes and values that I hope tummai can figure out (I'm pretty sure "D8 __" sets the pitch shift).  Then there's the actual melody block (notes, note lengths and rests), followed by the D0 repeat byte. 

By my calculations for FF3 Boss, each of the 4 channels add up to exactly 624 ticks, so I think we can synchronize channels without much trouble! 

Once the other channel header opcodes are figured out (C4, C7, CC, CD, DB, DE), we've got this code cracked!

The bad news is, I calculate we only have enough room for about 3 or 4 more songs (about 400-500 bytes each).  I'm all for destroying a few present songs to fit in better ones, even if they're truncated versions. 

Songs I'm considering:
Prelude   //Already present
Tifa's Theme
Red XIII's Theme/Cosmo Canyon
Cid's Theme
Aeris's Theme
Chocobo Theme   //Short version from FF2j
Turks Theme   //Could use little mem
Fighting/Hurry Faster!   //Battle music
Still More Fighting   //Boss battle music
JENOVA/Jenova Absolute
The Birth Of A God/One Winged Angel
Victory Fanfare   //Already present
Bombing Mission/Mako Reactor
Shinra Company
Main Theme/Holding My Thoughts In My Heart
Those Chosen by The Planet   //Could use little mem
You Can Hear The Cry Of The Planet
Anxious Heart/On That Day, 5 Years Ago
Ahead On Our Way   //To maybe replace town music
Underneath The Rotting Pizza   //Could use little mem
Off The Edge Of Despair
Gold Saucer
Reunion
Judgment Day
The Promised Land (Yakusoku no Chi)
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 03, 2009, 06:11:21 pm
Found more info. 
All songs start with "FF 00 __ __ 01 __ __ 02 __ __ 03 __ __ FF"
00-03 seem to be channel indexes, and the 2 bytes after them are the bigendian addresses of those channel streams relative to the song's root address.  That's super important. 
After the song header comes the header of the first channel, which is a series of opcodes and values that I hope tummai can figure out (I'm pretty sure "D8 __" sets the pitch shift).  Then there's the actual melody block (notes, note lengths and rests), followed by the D0 repeat byte. 

This is already in my notes.  :)

Quote
The bad news is, I calculate we only have enough room for about 3 or 4 more songs (about 400-500 bytes each).  I'm all for destroying a few present songs to fit in better ones, even if they're truncated versions. 

It may be possible to introduce a new opcode to place in the channel headers (or even just the first channel header) that can indicate a bank and an address, and then we can write some code for that opcode that will:

1)dynamically write some copy code to RAM (so that it can be executed after we've bankswitched away from the sound engine bank)
2)switch banks to the bank specified in the opcode
3)go to the address specified in the opcode and copy the song data to RAM
4)switch back to the sound engine and reroute pointers to the song data in RAM.

If we can pull something like this off, then we can scatter songs all across the ROM in any open space we find.

This will require:

1) enough RAM to hold the data for one song at a time.
2) enough RAM to hold the song-copying code (which should be quite short). 
3) enough ROM space in the sound engine bank to hold the new opcode code (shouldn't be a problem)

If we don't have the RAM, we'll have to find another solution.  But we might have it!  Is the RAM in $7000-7999 used by the game at all?
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 04, 2009, 05:23:50 pm
I have sequenced (short versions of):
TitleSizeQuality
Ahead On Our Way233Good
Those Chosen by The Planet319Painful
Chocobo Theme214Decent
Main Theme in progress...

//I've noticed that in my document the bytes don't match up with the right notes.  I must've accidentally stepped on the equation while working on the document. 

G :D :D D NEWS: I miscalc'd before, I think I was looking at the wrong ROM bank.  We've got over 8,700 bytes of free space!  We can fit 20 more songs easy!  On the down side I should head backwards to rework my dinky loops into fuller songs. 
Title: Re: Project: FF7 NES Upgrade
Post by: SFSeiei on March 05, 2009, 01:46:15 pm
Awesome, good work and good idea, i hope someday play this game at 100% :thumbsup:
Bye.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 05, 2009, 08:51:02 pm
I have sequenced (short versions of):
TitleSizeQuality
Ahead On Our Way233Good
Those Chosen by The Planet319Painful
Chocobo Theme214Decent
Main Theme in progress...

//I've noticed that in my document the bytes don't match up with the right notes.  I must've accidentally stepped on the equation while working on the document. 

G :D :D D NEWS: I miscalc'd before, I think I was looking at the wrong ROM bank.  We've got over 8,700 bytes of free space!  We can fit 20 more songs easy!  On the down side I should head backwards to rework my dinky loops into fuller songs. 

Awesome.  That's good news!  Hopefully we don't have to do any crazy bankswitching at all!  BTW, I've traced through a little ways and found the note tables.  This should help you sequencing the songs.  The note table actually has a big error too, so three notes in octave 2 are completely wrong.  To fix this, please change the following bytes in the ROM:

1ADBB: from 04 to 03
1ADBC: from 04 to 03
1ADBD: from 04 to 03

Note Table:
Acceptable values: #$40-#$80.  Note that NES octaves start at A, not C.

Octave 1
40: A
41: A#
42: B
43: C
44: C#
45: D
46: D#
47: E
48: F
49: F#
4A: G
4B: G#

Octave 2:
4C: A
4D: A#
4E: B
4F: C
50: C#
51: D
52: D#
53: E
54: F
55: F#
56: G
57: G#

Octave 3:
58: A
59: A#
5A: B
5B: C
5C: C#
5D: D
5E: D#
5F: E
60: F
61: F#
62: G
63: G#

Octave 4:
64: A
65: A#
66: B
67: C
68: C#
69: D
6A: D#
6B: E
6C: F
6D: F#
6E: G
6F: G#

Octave 5
70: A
71: A#
72: B
73: C
74: C#
75: D
76: D#
77: E
78: F
79: F#
7A: G
7B: G#

Octave 6
7C: A
7D: A#
7E: B
7F: C
80: C#
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 05, 2009, 09:49:51 pm
My new table is *almost* like that, except I have 0x40 start at G# instead of A.  I'm still confused, it doesn't seem like I could be fooled by a half step so easily. 
Note123456
A0x410x4D0x590x650x710x7D
A#0x420x4E0x5A0x660x720x7E
B0x430x4F0x5B0x670x730x7F
C0x440x500x5C0x680x740x80
C#0x450x510x5D0x690x75
D0x460x520x5E0x6A0x76
D#0x470x530x5F0x6B0x77
E0x480x540x600x6C0x78
F0x490x550x610x6D0x79
F#0x4A0x560x620x6E0x7A
G0x4B0x570x630x6F0x7B
G#0x4C0x580x640x700x7C
Is it just me, or does FCEUX's sound seem a little flatter than Nestopia, or is that just because it's slower (yes, I set the speed to 100%)?
Title: Re: Project: FF7 NES Upgrade
Post by: Killa B on March 05, 2009, 10:41:47 pm
I don't know about yours, but the version of FCEUX I have uses 11kHz for sound by default. I had to change it to 44.1kHz manually (you might want to change it to 48kHz, depending on your sound card).
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 06, 2009, 12:20:39 am
My new table is *almost* like that, except I have 0x40 start at G# instead of A.  I'm still confused, it doesn't seem like I could be fooled by a half step so easily. 

Is it just me, or does FCEUX's sound seem a little flatter than Nestopia, or is that just because it's slower (yes, I set the speed to 100%)?

All of the period values for the tones that the game uses are a little flat, so that might be why your table is a half-step down, since the first note is actually somewhere in between a G# and an A.  Traditionally though the highest period value possible (#$7FF) is considered an A.

As for the emulators, I have no idea.   PAL vs. NTSC makes a difference.   Are you running both emulators in NTSC mode?
Title: Re: Project: FF7 NES Upgrade
Post by: Killa B on March 06, 2009, 12:27:38 am
Oh, wow, I though you meant flat as in poor quality, not flat as in ♭. :P
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 06, 2009, 02:00:18 am
Here is some opcode information for the Square channels.  I'm not 100% on them, but since there are some people working on songs already, I thought I should throw them out there for experimentation.  Let me know if I have anything wrong (let me know if I'm right too :) ).  Again, this is just for the Square channels.

C4: takes one operand.  The right side (0-F) is used as the base volume (pre-envelope) for the channel.  Not sure about the left side yet.

CD: takes two operands.  The first operand can be a value 0-9 and selects the volume envelope.  The second operand can be a value 0-3 and selects the duty cycle for your square wave (but backwards.  3 sets the duty cycle to #%00xxxxxx, and 0 sets it to #%11xxxxxx).

Below are the volume envelopes.  These envelopes are applied to each note, so for fast notes they will likely be very subtle to the ear.  The maximum volume in these envelopes is the base volume set in opcode C4.  Please experiment with them:

1: Slow fadedown
2: low to high quick, then fade down (might sound like a pluck?)
3: fade down to half volume, then fade back up
4: fade up from half volume, then fade back down to half
5: fade down fast two times
6: down a little, up a little, then down to 0
7: down a lot, up a little, then down to 0
8: constant low volume, then rises to high, finally drops to half volume
9: fade down to half volume fast two times, then fade from half volume down.

I don't have #0 down in my notes.  I must have overlooked it.  I think it's not like the others though.  I'll have to look it over again later and do an update.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 06, 2009, 08:12:33 am
Cool, I'm definitely gonna play with those opcodes later, see if I can balance those channels and get the best volume envelope.  I wonder if there's another one for instrument. 
I played around with the regions.  Big difference.  I live in NTSC, but Nanjing is in PAL, but regardless I don't know which the game's supposed to be.  I'm probably going to trust that 0x40 is A, because I think I saw another document also have it that way.  I write down my notes by what sounds best in a MIDI editor, then run a script to parse my notes into a hex string. 
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 06, 2009, 09:32:17 am
Cool, I'm definitely gonna play with those opcodes later, see if I can balance those channels and get the best volume envelope.  I wonder if there's another one for instrument. 

Changing the duty cycle is a lot like changing instruments.  Pop in different values as the 2nd operand to opcode CD and you'll notice right away the difference in tone for your square wave.  Actually, I don't even know what duty cycle means, that's just what those bits are called in the NES sound docs I've looked at. :)

I'll keep digging at the other opcodes, but it may take some time.  This sound engine is pretty complicated for something that only plays 8 songs.

Quote
I played around with the regions.  Big difference.  I live in NTSC, but Nanjing is in PAL, but regardless I don't know which the game's supposed to be.  I'm probably going to trust that 0x40 is A, because I think I saw another document also have it that way.  I write down my notes by what sounds best in a MIDI editor, then run a script to parse my notes into a hex string. 

The ROM is for NTSC I think.  If it were PAL, the period value for the low A would be something like $760, not $7FF.  BTW, these NES note tables by Celius on nesdev are nice little references to have around: http://nesdev.parodius.com/bbs/viewtopic.php?t=3728&start=0 (http://nesdev.parodius.com/bbs/viewtopic.php?t=3728&start=0)
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 06, 2009, 11:18:59 am
Does the meaning of an A-note change from region to region?  (I'm only asking for the rhetoric)

I didn't get to do any more work last night.  It's too much work to make a patch, upload it, and set up a link for every little thing, so i'll give you my works-in-progress as hex strings so you can just paste them into the ROM at 0x1B8DD (over the Prelude) to audit them.  If it would save on thread-clutter (we've been talking for 3 pages) I could maybe send these strings to you directly in future.  Anyway...

Ahead On Our Way (v1)
Code: [Select]
FF 00 0E 00 01 62 00 02 BB 00 03 D6 00 FF CC C8 C7 FF C4 6E CD 03 00 DB 07 00 1E 78 D8 00 DE 06
CD 03 01 D8 00 04 71 6F 6E 6F 08 71 04 67 6A 6E 6C 14 6C 04 C9 6C 73 71 6F 0C 71 02 73 75 04 76
73 14 73 04 C9 73 74 73 71 0C 6F 04 71 73 67 68 6A 6E 0C 6C 04 6C 73 71 6F 0C 71 08 6E 18 6F 04
C9 D0 CC FE C7 FF C4 0E CD 03 00 DB 07 00 1E 78 D8 00 DE 06 CD 03 01 D8 00 04 C9 57 5B 57 63 57
5B 57 C9 57 5B 57 60 57 5B 57 C9 59 5C 60 C9 59 5E 62 C9 5B 5E 5B 62 5B 5E 5B C9 5B 60 63 C9 5A
5F 63 C9 57 5B 63 C9 57 5B 60 C9 59 5C 60 C9 59 5E 62 C9 57 5B 57 63 57 5B 57 D0 CC FE C7 FF C4
6E DB 07 00 1E 78 D8 00 DE 06 20 67 63 65 67 68 67 6C 10 6B 6A D0 CC FE C7 FF C4 4E CD 45 00 D8
00 DE 06 20 C9 C9 C9 C9 C9 C9 C9 C9 D0

Those Chosen By The Planet (v1)
Code: [Select]
FF 00 0E 00 01 33 00 02 62 00 03 B6 00 FF CC C8 C7 FF C4 6E CD 03 00 DB 07 00 1E 78 D8 00 DE 06
CD 03 01 D8 00 10 52 C9 52 C9 52 C9 52 C9 52 C9 53 C9 D0 CC FE C7 FF C4 0E CD 03 00 DB 07 00 1E
78 D8 00 DE 06 CD 03 01 D8 00 20 C9 24 C9 04 59 59 58 14 C9 04 59 58 5A 18 C9 08 59 58 5A 59 18
C9 D0 CC FE C7 FF C4 6E DB 07 00 1E 78 D8 00 DE 06 20 C9 C9 02 46 48 46 48 49 4B 49 48 46 48 46
48 49 4B 49 48 46 48 46 48 49 4B 49 48 46 48 46 48 49 4B 49 48 46 48 46 48 49 4B 49 48 46 48 46
48 49 4B 49 48 46 4B 49 4B 4D 4B 49 48 46 4B 49 4B 4D 4B 49 48 D0 CC FE C7 FF C4 4E CD 45 00 D8
00 DE 06 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06
C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01
46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46
06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 01 46 46 06 C9 D0

Chocobo Theme (v1)
Code: [Select]
FF 00 0E 00 01 4C 00 02 88 00 03 A7 00 FF CC C8 C7 FF C4 6E CD 03 00 DB 07 00 1E 78 D8 00 DE 06
CD 03 01 D8 00 04 6A 02 67 65 63 6A 67 63 04 67 63 06 67 02 65 63 01 63 65 02 63 61 06 63 02 61
63 01 63 68 02 6A 6C 06 6D 02 C9 D0 CC FE C7 FF C4 0E CD 03 00 DB 07 00 1E 78 D8 00 DE 06 CD 03
01 D8 00 04 57 02 5E 59 57 5B 55 59 57 5E 57 5B 04 57 02 59 55 04 57 02 5E 59 57 5B 55 59 57 5E
57 5B 04 57 02 59 55 D0 CC FE C7 FF C4 6E DB 07 00 1E 78 D8 00 DE 06 10 63 08 5E 6A 10 67 04 5E
02 5E 5E 04 67 65 D0 CC FE C7 FF C4 4E CD 45 00 D8 00 DE 06 02 61 5A 5A 61 61 5A 5A 61 61 5A 5A
61 61 5A 65 63 61 5A 5A 61 61 5A 5A 61 61 5A 5A 61 61 5A 61 63 D0
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on March 13, 2009, 11:14:18 am
Last night I got stuck in Final Fantasy IV in the underworld. (Not sure where to go next) so I fired up the 98% translation patch for this game in "PSP NesterJ for CN Mapper" and FINALLY found that guy who heals you right before you get Barrett. It's like IMPOSSIBLE to finish the first mission without him.

I guess I'm gonna become the Feature Creature for a little bit here... hope I'm not annoying anyone, but you did say:
Quote from: Vanya
Any other cool ideas we come up with. ^_^

So ... here are some ideas ... whether you think they're cool or not is up to you.

I dunno if anybody has mentioned this yet ... but it would be really fun to add secrets to this game. You know, items hidden in pots and behind bookcases and stuff. My favorite secrets in FF games are those you get by finding sneaky ways to get out of the area you're supposed to be walking in. I suggest making it so in one of the train cars after the first mission, you can walk out of one of the windows into the black no-mans-land area to find a secret chest after zigzagging through a miniature invisible maze type thing. (dunno if that's possible, but it would be COOL if it was) and there could be a piece of armor or an ether or extra gil or something in there - something helpful to make it worth it to find the secret

Also ... it would make the first mission alot easier if the person by the stairs healed you also just like the guy right before you get Barrett. Then you'd be able to level up alot quicker right at the beginning without all this screwing around on the bridge. I think that would really help the game's pacing. People don't like the feeling of losing the first mission. If I remember correctly, in the real Final Fantasy 7 your characters basically come strong enough to finish the first mission by default without alot of work that early anyway.

In the first town, it REALLY SUCKS that you can't take Barrett shopping with you so you can enhance his weapon ... I suggest having Barrett stay in the party during the first town if possible

(later edit) Oh, and by the way, I don't mind the thread clutter :) but patches are always nice too
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 13, 2009, 12:39:54 pm
A character's stats recover every time he/she has a level up.  It's weird as heck, but it balances the insanity of the gameplay, so I embraced it by making leveling up faster. 

I'd add treasure chests liberally if it were so easy, but they made it too awkward to hack it.  Every chest is linked to a predefined text string - L.A.M.E.

I've been planning on changing the Wep/Armor shops.  EVERY DAMN ONE OF THEM HAS THE SAME CRAPPY ITEMS!  I think it wouldn't be too hard for me change the way it loads inventory lists based on location, so I plan to work on that sometime. 

I think I can insert an instruction to keep Barret and Tifa in the party when you wake up in 7th Heaven, I did the same thing to make Cloud fight Sephiroth alone at the end, and *hopefully* fixed it (I forget) so you fight DemonGate as a group in the Temple of the Ancients.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on March 13, 2009, 01:36:22 pm
wow that IS lame that you can't add treasure chests ........ how about easter eggs? Maybe add some quotes from LOVELESS (as quoted by Genesis in Crisis Core) or something
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 13, 2009, 02:02:34 pm
Loveless was the most annoying thing from Crisis Core, though I'd prolly throw in an easter egg if there were more opportunities to do so.  In my earlier translation (different thread) I seized the opportunity to include a reference to Zack's last words to cloud in the Cloud/Tifa Lifestream scene, since the Chinese script had deviated from the original game by that point.  Once I learned how to add more exchanges in a dialog I converted it to the original's text.  I was also hoping to have a "This guy are sick" moment, but there are no sick guy in the game (hope I can add one).  I wanted to maybe have a materia thief enemy that looks like Yuffie (the graphics improvement team is on this thread, maybe they'll consider it).  I was also thinking of having a guy who says "Where can I buy a phone?" or some way to reference Yuff & Vinny. 
Title: Re: Project: FF7 NES Upgrade
Post by: Killa B on March 13, 2009, 02:13:47 pm
I just realized that when you're done with this, people are going to want to translate it back into Chinese. :crazy:
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on March 13, 2009, 06:06:23 pm
Loveless was the most annoying thing from Crisis Core, though I'd prolly throw in an easter egg if there were more opportunities to do so.  In my earlier translation (different thread) I seized the opportunity to include a reference to Zack's last words to cloud in the Cloud/Tifa Lifestream scene, since the Chinese script had deviated from the original game by that point.  Once I learned how to add more exchanges in a dialog I converted it to the original's text.  I was also hoping to have a "This guy are sick" moment, but there are no sick guy in the game (hope I can add one).  I wanted to maybe have a materia thief enemy that looks like Yuffie (the graphics improvement team is on this thread, maybe they'll consider it).  I was also thinking of having a guy who says "Where can I buy a phone?" or some way to reference Yuff & Vinny. 
Aww ... I liked Loveless. It made the game sound so philisophical and stuff
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 13, 2009, 07:32:39 pm
At Gaea's Cliff there is a Sephiroth "shadow" that attacks you and says "Ugh...Errgaahh!" (in the original I think it was one of the clones dying).  Maybe it could say "Even if the morrow is barren of promises,nothing shall forestall my return.If this world seeks my destruction...It goes with Me."

Oh Sweet!  Go to 0x26ADC, overwrite the branch instruction with "EA EA."  This lifts the restriction that a person's materia can only level up if its bearer's level is 10x as high.  It always pissed me off how I could get all the experience needed to level up a materia (earned by casting), but it still wouldn't level up until my guy grew another 10 levels. 
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 15, 2009, 06:08:43 pm
I wouldn't mind having "Materia Thief" as a new enemy. I want to have cameos for Yuffie & Vincent any way I can get it.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 15, 2009, 10:48:10 pm
I was worried if the graphics project had stopped, so here's a link to the game's enemy sprites (http://www.mediafire.com/download.php?mwzrfyy03y2).

EDIT: Hey, I'm making good progress in figuring out how to speed up battle animations (it's almost as hard as music hacking).  By the time I'm finished battles will actually be more exciting than walking!
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 16, 2009, 06:01:31 pm
It isn't stopped, I've just been really busy lately. I actually got to work for actual pay in the past few weeks. Now that I'm back to being unemployed I'll have some time to work on stuff. Thanks for the sprites, though! That'll really help put some more fuel on the fire! ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 18, 2009, 04:27:39 am
I made a little patch that should help out with people writing new songs.  It:

1) extends the note table to a full 8 octaves.  So instead of note values going from #$40-#$7F, they now go from #$40-#$9D.
2) tuned all of the notes.  They should no longer be flat (though some precision is lost at the highest octave)
3) added a new opcode (DF) that allows for musical branching.  This new opcode works with the loop opcodes (CE and CF), which I'll explain how to use below.

here is the file: http://www.mediafire.com/?sharekey=db15991d3853f45abda4076e811714c8e04e75f6e8ebb871

How to loop

There are two opcodes for looping, CE and CF.  They both work exactly the same way, but they each have their own loop counter so you can nest them.  Here's how they work:

Let's say you have a set of notes you want to repeat:

02 6A 5E 6A 5E 6B 5F 6B 5F

To do so, you stick one of the loop opcodes on the end, followed by three operands: CE/CF [num] [lo offset] [hi offset].

[num] is how many times to play the phrase, including the first playthrough.
[lo offset] and [hi offset] tell where the beginning of the repeating musical phrase is, relative to the first byte of the song's header (the first FF).  This is kinda a pain in the ass because you have to count bytes every time.  For simplicity, let's pretend our little repeating phrase is at the beginning of our Square 1 data:

Code: [Select]
FF 00 0E 00 01 ?? ?? 02 ?? ?? 03 ?? ?? FF
;song header.  We only care about square1 for our example

CC C8 C7 FF C4 6B DB 07 00 00 00 DE 05 CD 03 02 D8 00
;square1 header

02 6A 5E 6A 5E 6B 5F 6B 5F
;our phrase that we want to loop

CE 08 20 00
;our loop opcode.

This will play our phrase 8 times.  the "20 00" tells us that the start of our looping phrase is at songheader+#$0020 (you can count to check).

This saves us a lot of space.  If we didn't use the loop opcode, we would have the following data instead:

Code: [Select]
FF 00 0E 00 01 ?? ?? 02 ?? ?? 03 ?? ?? FF
CC C8 C7 FF C4 6B DB 07 00 00 00 DE 05 CD 03 02 D8 00
02 6A 5E 6A 5E 6B 5F 6B 5F
02 6A 5E 6A 5E 6B 5F 6B 5F
02 6A 5E 6A 5E 6B 5F 6B 5F
02 6A 5E 6A 5E 6B 5F 6B 5F
02 6A 5E 6A 5E 6B 5F 6B 5F
02 6A 5E 6A 5E 6B 5F 6B 5F
02 6A 5E 6A 5E 6B 5F 6B 5F
02 6A 5E 6A 5E 6B 5F 6B 5F

After the loop opcode, you can put more music data like normal.  After all repeats are done, it will continue on to whatever data you have after the loop opcode.

Branching Opcode

Ok, it's nice to loop, but what if we have a song structured like this:

A
A
B C
B D


The Chocobo song has this structure.  Hum it to yourself.  You can see that it repeats the first phrase (A) twice, and then changes to a new phrase (B) which has two different endings (C and D).

Our loop opcodes can take care of playing A twice in a row, but there is no support for something like BCBD.  We'd have to write out B manually two times, which wastes space.  So I wrote a new opcode (DF) in that will allow you to branch on the last iteration of a loop.

The format is:  [B Phrase] DF ?? ?? ?? [C Phrase] CE ?? ?? ?? [D Phrase].   The question marks denote operands.  The CE opcode is the loop one I explained above, so you should be able to fill in those question marks.  The DF is new, so here goes:

DF [which loop] [lo offset] [hi offset]

[which loop] should be either CE or CF.  Whichever loop opcode you use after your [C Phrase] should be the one you use here.
[lo offset] and [hi offset] tell the location of [D Phrase], relative to the first FF in the song's header.  Let's look at an example.  Here is the chocobo melody:

Code: [Select]
FF 00 0E 00 01 ?? ?? 02 ?? ?? 03 ?? ?? FF
;song header. We only care about square1 for now

CC C8 C7 FF C4 6B DB 07 00 00 00 DE 05 CD 03 02 D8 00
;square 1 header

02 6A C9 67 63 60 6A 67 63 67 C9 63 C9 06 67 02 65 01 63 C9 63 65 02
63 61 05 63 01 C9 02 61 01 63 C9 63 68 02 6A 6C 06 6D 02 C9 CE 02 20 00
;this is our [A Phrase].  Notice the CE loop opcode at the end that tells this to play twice.
 
6C C9 68 65 62 65 68 6C 6A C9 6F C9 06 6A DF CE 7B 00
;this is our [B Phrase] with the new DF opcode.
;It will be used in conjunction with the CE loop, and it tells us that our [D Phrase]
;is located at songheader+#$007B

02 6A 68 C9 65 62 5E 62 65 68 01 67 C9 67 68 02 67 65 06 67 02 C9 CE 02 4F 00
;this is our [C Phrase].
;At the end we have our loop opcode CE, which points us to the
;beginning of [B Phrase] (songheader+#$004F)
 
02 67 01 65 C9 65 67 02 65 63 06 65 02 63 01 65 C9 65 67 02 68 6A 04 6C 6E D0
;this is our [D Phrase].
;On the last repeat of [B Phrase], the DF opcode will send us here instead of to [C Phrase]

Chocobo Song
Here is some Chocobo Song data.  The bassline sucks and there's no percussion, but it will play.  Copy and paste it into 0x1B8DD and it will play as the intro song so you can listen.

Try to find all the loop and branch opcodes and see if you can understand what they're doing.  Can you figure out the sneaky trick I used to get the delay effect on the square2 channel?

Code: [Select]
FF 00 0E 00 01 95 00 02 B1 00 03 EC 00 FF

CC C8 C7 FF C4 6B DB 07 00 00 00 DE 05 CD 03 02 D8 00
02 6A C9 67 63 60 6A 67 63 67 C9 63 C9 06 67 02 65 01 63 C9 63 65 02 63 61
05 63 01 C9 02 61 01 63 C9 63 68 02 6A 6C 06 6D 02 C9 CE 02 20 00
6C C9 68 65 62 65 68 6C 6A C9 6F C9 06 6A DF CE 7B 00
02 6A 68 C9 65 62 5E 62 65 68 01 67 C9 67 68 02 67 65 06 67 02 C9 CE 02 4F 00
02 67 01 65 C9 65 67 02 65 63 06 65 02 63 01 65 C9 65 67 02 68 6A 04 6C 6E D0

CC FE C7 FF C4 08 DB 07 00 00 00 CD 03 03 DE 05 D8 00
DF CE 20 00 01 C9 CE 02 A7 00

CC FE C7 FF C4 6E DB 07 00 1E 78 DE 05 D8 00
02 63 5E 63 5E CE 10 C0 00
02 65 60 65 60 68 62 68 62 63 5E 63 5E 63 5E 63 5E CE 03 C9 00
02 65 60 65 60 65 60 65 60 CE 02 DE 00 D0

CC FE C7 FF C4 4A CD 45 00 D8 00 DE 00
C9 D0

The Patch

And just in case you missed it at the top, here is the patch: http://www.mediafire.com/?sharekey=db15991d3853f45abda4076e811714c8e04e75f6e8ebb871
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 18, 2009, 12:54:15 pm
Amazing job on that, dude! ^_^
I can't wait to see what comes of this. With the proper music in place this hack will be epic!!
I've gotta get my butt working on some graphics to go along with this!
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 18, 2009, 06:24:28 pm
O Happy day, I have good news too!  It was a real headache, but my first speed patch (http://www.mediafire.com/download.php?4owyyzdlzxd) is out.  It speeds up several battle animations so things like simple attacks don't feel so much like Knights of Round (if only they were that powerful though).  Also, holding down B lets you walk twice as fast --as long as the screen isn't scrolling (hey, better than nothing).  I'll try out tummai's stuff soon. 
Title: Re: Project: FF7 NES Upgrade
Post by: mrspoon on March 18, 2009, 10:02:44 pm
Glad to see the progress on thi is coming along.  :)
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 18, 2009, 11:47:46 pm
Sweet, Lindblum!! That's awesome. That's a separate patch from the translation, right?

BTW, I looked over the enemy sprites you gave me. I'm going to go ahead and look for info on the FF7 psx enemies and decide what changes need to be made. I'll take the info on the attacks they use into account while I do the research, too. I'll be making a big update to the first post soon after that.

Great work guys! Keep it up and we'll have one of the most epic improvement hacks ever! ^_^

Cookies for everyone!!!
:cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie:
:cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie:
:cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie: :cookie:
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 19, 2009, 09:32:04 am
I added another opcode, so there's another patch.  This patch does everything the previous patch did, plus the new pitch shift opcode.  You can download it here: http://www.mediafire.com/?sharekey=db15991d3853f45abda4076e811714c8e04e75f6e8ebb871

Setting the Pitch Shift

There is an existing opcode D8 that will set the pitch shift.  The pitch shift is added to the note value to get a final note value.  For example, if you have a note 4C (an A), and your pitch shift is set to 01, the sound engine will do a 4C+01, giving you 4D (a B). 

The D8 opcode takes one operand (the pitch shift value) and is usually found in channel headers.  Most channels set it to 00, meaning no change in pitch.  It's not a terribly useful opcode.

Adjusting the Pitch Shift

Adjusting the pitch shift on the fly however is very useful.  So I made a new opcode to allow you to add or subtract from the pitch shift value.

The new opcode is D2.  It takes one operand, which is added to the pitch shift.  How is this useful?  Let's look at the first chord arpeggio of the classic FF intro song.  It's a major/9 arpeggio that spans five octaves.  It goes something like this:

(Octave 1)A B C# E (Oc2)A B C# E  (Oc3)A B C# E (Oc4)A B C# E (Oc5)A (Oc4)E C# B A (Oc3)E C# B A (Oc2)E C# B A (Oc1)E C# B.

If we were to write it out manually for the FF7 sound engine, we'd get something like this:

Code: [Select]
01 4C 4E 4F 53 58 5A 5C 5F 64 66 68 6B 70 72 74 77 7C 77 74 72 70 6B 68 66 64 5F 5C 5A 58 53 4F 4E
That's 33 bytes.  And this is only one chord.  The FF intro song has a few more, so we'd exceed 100 bytes just for one channel!

Luckily, with the new D2 opcode, we can take advantage of the arpeggio pattern and turn the above data into something like this:

Code: [Select]
01
4C 4E 4F 53 D2 0C CE 04 21 00
4C 47 44 42 D2 F4 CE 04 2B 00

That's 21 bytes, or 2/3 the size!

Let's look at what is happening:

1) First we play the phrase 4C 4E 4F 53.
2) Then we encounter the D2 opcode, which tells the sound engine to adjust the pitch by #$0C.  #$0C is hex for 12.  There are 12 notes on the music scale, so adding 12 to the pitch will raise it an octave.
3) After the D2 opcode, we encounter the CE opcode, which is our loop opcode.  It sends us back to the beginning.
4) We find our phrase again 4C 4E 4F 53, but this time #$0C will be added to them, effectively turning them into 58 5A 5C 5F.
5) We encounter D2 0C again.  This will add #$0C AGAIN (it stacks), so now our pitch adjustment is +#$18, or two octaves higher.
6) Loop again (+#$24), and again (+#$30) for a total of 4 times.  At the end of our loop we will be 4 octaves higher than we started.

7) Next we get to the descending phrase: 4C 47 44 42.  But remember, we are still four octaves higher, so these will actually turn into 7C 77 74 72 for the first playthrough.
8 ) We encounter the D2 opcode.  This time we add #$F4 to our pitch adjustment.  WTF?  #$F4?  Yes.  Adding #$F4 is actually like subtracting #$0C.  Since #$FF is the highest number on an 8-bit machine, the addition will loop around to #$00 and then count up and fall #$0C short of the previous value.  We throw away the carry.  Maybe this table will help make it clear:

00  00   adding 00 is the same as subtracting 00
FF -01   adding FF is the same as subtracting 01
FE -02   adding FE is the same as subtracting 02, etc
FD -03
FC -04
FB -05
FA -06
F9 -07
F8 -08
F7 -09
F6 -0A
F5 -0B
F4 -0C
etc...

So again, adding #$F4 to our pitch adjustment is essentially subtracting #$0C, which will lower the octave.
9) We loop to the beginning of the descending phrase and repeat 4 times.

Look at this data.  It is four chords arpeggiated (A/9, F#m/9, D/9, E/9):

Code: [Select]
;note length
01

;A/9 Chord
4C 4E 50 53 D2 0C CE 04 21 00
4C 47 44 42 D2 F4 CE 04 2B 00

;F#m/9 chord.  I put the D2 F4 in a different place. See explanation below.
49 4B 4C 50 D2 0C CE 04 32 00
D2 F4 55 50 4C 4B CE 04 3C 00

;D/9 chord
51 53 55 58 D2 0C CE 04 46 00
51 4C 49 47 D2 F4 CE 04 50 00

;E/9 chord
D2 02 CF 02 46 00

;song loop
D0

That's 68 bytes.  Without opcodes, this same phrase would be 130 bytes.  That's almost 50% savings!

The A/9 chord should look familiar, since we already stepped through it above.

Next is the F#m/9 chord.  Same concept, different notes.

After the F#m/9 chord, we have the D/9 chord.  It looks very similar to the A/9 chord.

Finally, for the E/9 chord, we pitch shift up a step (D2 02) and use the CF loop opcode to replay the D/9 chord, but this time shifted up a step (to E).  Doing this saves us 14 bytes.  Pretty nice!  Notice that we use the CF loop here, not CE.  This is because we have a CE loop nested inside our bigger CF loop.

Normally we'd want to zero our pitch shift out and put a D2 FE after our E/9 chord to cancel out the D2 02, but since we are at the end of the channel data we don't have to.  The D0 song loop opcode rereads the header, and our header will have a D8 00 in it.  I introduced the D8 opcode at the beginning of this post.  It sets the pitch shift.  The channel header's D8 00 will reset our pitch shift to 0 for us!  Sweet!

Prelude

Here is data for the FF intro song (but in the key of C).  I used the triangle channel as the main instrument for its soft sound, and I used the delay effect trick again.  Please look at the song header, as I have the channels in a nonstandard order (square1 and noise both point to the dead rests at the end).  You can paste this data in at 0x1B8DD and hear it as the new intro song.  It could still use some work, but I think it's an improvement over the crappy 1-chord version in the Chinese original. :) And about half the size too!

Code: [Select]
FF
00 9D00
01 8100
02 0E00
03 9D00
FF

CC C8 C7 FF C4 6B DB 07000000 DE 0A D8 0C

01
4F 51 53 56 D2 0C CE 04 1E 00
4F 4A 47 45 D2 F4 CE 04 28 00
4C 4E 4F 53 D2 0C CE 04 32 00
4C 47 43 42 D2 F4 CE 04 3C 00 CF 02 1E 00
4C 4F 54 56 D2 0C CE 04 4A 00
D2 F4 58 56 54 4F CE 04 54 00
D2 02 CF 02 4A 00
D2 FE
4B 4F 52 56 D2 0C CE 04 66 00
4B 4A 46 43 D2 F4 CE 04 70 00
D2 02 CF 02 66 00
D0

CC FE C7 FF C4 04 DB 07000000 CD 0301 DE 0A D8 00

DF CE 1D 00 02 C9 CE 02 93 00

00 C9 C9 D0

Patch

If you missed it above, here is the patch: http://www.mediafire.com/?sharekey=db15991d3853f45abda4076e811714c8e04e75f6e8ebb871

And if you missed the little lesson on looping/branching, you can read that post here (http://www.romhacking.net/forum/index.php/topic,7739.msg129004.html#msg129004).
Title: Re: Project: FF7 NES Upgrade
Post by: burn_654 on March 19, 2009, 03:05:00 pm
that is extremely impressive, I'm even more impressed with the documentation of it all. I'm sure the community will be able to help with the tunes because of this :thumbsup:

great job.

I may have a go at working with this, if I get anything worthwhile I'll post it of course.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 19, 2009, 04:30:39 pm
Excellent work, tummai! I'm very impressed. ^_^

For anyone interested in doing some enemy sprites here's a page from the Final Fantasy wiki with images of the original enemies: http://finalfantasy.wikia.com/wiki/List_of_Final_Fantasy_VII_Enemies (http://finalfantasy.wikia.com/wiki/List_of_Final_Fantasy_VII_Enemies)

Also, here's an archive with images of the NES enemies that Lindblum provided:
http://www.mediafire.com/file/uwjkykzlmcz/FF7NES-Enemy Sprites.zip (http://www.mediafire.com/file/uwjkykzlmcz/FF7NES-Enemy Sprites.zip)

I'm currently researching both the psx & nes enemies. I already have a list of all the nes enemys' attacks, courtesy of Lindblum, now I just have to decide what out-of-place enemies need to be changed.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 20, 2009, 03:50:14 am
The new intro is cool.  The harmony you created is, dare I say, hypnotic and "trippy."  Feel free to improve the songs I posted earlier, they should give you a head start. 
Have you developed any tools, batches, or organized techniques to convert a song or composition into a chunk of bytes?  I ask because if not...
Proposal:
I want to make a program to do the tedious stuff for me, and if we're making so many songs that you're concerned about saving space, then it would be a good investment of time.  It would be cool to abstract it so it could use codecs to write to any game if you feed it the encoding scheme in some kind of syntax.  Maybe xml interpretation, have a piano roll editor, or accept MIDIs if they fit a certain set of constraints, and if I use a language with a good MIDI interpreter in its API.  For my ignorance it may miss the mark in terms of instruments and timing.  No one should have to overexert himself over music hacking, I'm just surprised I've never seen such a tool yet.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 20, 2009, 10:00:20 am
Thanks.  No, I haven't made any tools or a music editor or anything like that.  I wouldn't even know where to begin trying to make something like that.  Sounds like a great idea though! :)
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 20, 2009, 02:21:12 pm
I agree. It would be a great boon to the hacking community in general. ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 20, 2009, 05:32:13 pm
I'm starting to get some basic results with the Sanford C# MIDI Toolkit API.  .NET's XML API will be useful later on.  From now on any efforts of my own make to encode more songs will come through the use and development of this utility.  If this gets off the ground I'll discuss that project on a new thread. 
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 24, 2009, 09:03:12 am
BTW, if anyone is out there is good at using FamiTracker and wants to help out, feel free to make NSFs and send them my way and I can convert them to FF7's sound format.  I'd do it directly from the Playstation or MIDI versions, but I'm not good at picking the best 8-bit instruments to use for different song parts, and it's a nightmare switching them all around by hand.  If I had a completed 8-bit song, to where I knew which parts were on triangle, which were on the squares, etc, I imagine I could pump songs out pretty quickly. 

Anybody wanna try just one song at least? :)
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 24, 2009, 12:48:17 pm
I figured out how to load a song when mounting/dismounting a chocobo, but in the meantime it'll be the battle fanfare.

I've noticed the music engine patch messes up the music and sound effects.  I understand that you changed the entire scale, but among other things it sounds weird when lightning attacks now sound like birds chirping (Chidori™ (千鳥)???)

When I open a MIDI I pick the best Melody channel as Sq1, Harmony/Accompaniment as Sq2, Bass/"Atmospheric" as Tri, and Percussion as Noise, remove the other channels or move certain notes to the main channels.  Each channel will only hold one note at a time, but MIDI can hold more, so you have to remove all overlaps. 
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on March 24, 2009, 04:49:01 pm
tummai, maybe try asking around at the FamiTracker forums? There may even be some ppl there that have already done some of the songs. The NES music archive also has some traffic at their forums too. ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 24, 2009, 05:23:16 pm
I figured out how to load a song when mounting/dismounting a chocobo, but in the meantime it'll be the battle fanfare.

I've noticed the music engine patch messes up the music and sound effects.  I understand that you changed the entire scale, but among other things it sounds weird when lightning attacks now sound like birds chirping (Chidori™ (千鳥)???)

When I open a MIDI I pick the best Melody channel as Sq1, Harmony/Accompaniment as Sq2, Bass/"Atmospheric" as Tri, and Percussion as Noise, remove the other channels or move certain notes to the main channels.  Each channel will only hold one note at a time, but MIDI can hold more, so you have to remove all overlaps. 


It's possible that one or more of the "unused" opcodes that I overwrote were actually used afterall.  Either that or the sound effects expect the notes to stop in the 6th octave and are getting messed up when they continue beyond.  I'll try to see if I can track down what went wrong and fix it.   Thanks for telling me.

I'll try to finish up the Chocobo song too :)

EDIT: Fixed.  The sound effects weren't getting truncated.  Now they are :).  Thanks a lot!  Let me know if you run into any more bugs with the sound development patch.  I'm still working on the Chocobo Theme.

Sound Patch #3 (Does everything the other two patches do, plus fixes the SFX bug): http://www.mediafire.com/?sharekey=db15991d3853f45abda4076e811714c8e04e75f6e8ebb871
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 27, 2009, 03:25:57 am
Sorry, I haven't gotten further with music this week.  I've recoded enemy HP loading to be simple, fixed a glitch that forces Cloud to fight DemnGate alone, and I just finished a ton of work on the armor shops.  I expanded their inventory to include every article of defense (there are a LOT though), and best of all, after lots and lots of tweaking/new functions/replaced arrays, the armor shop now sells weapons!  Now getting a new weapon doesn't require an enemy to randomly drop one after battle.  No patch until I've gotten a few more things done.  Killa B might be right, people are going to want to translate it back to Chinese when we're done  :laugh:
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on March 27, 2009, 09:21:10 am
awesome man!  You're kicking ass.  Not to mention that you already kicked some major ass by translating this into English and speeding up the gameplay.  good work!

I've been working a little bit on the music stuff.  Here's my current version of the chocobo song, based on the "Cinco de Chocobo" version from the original game.  Tell me what you think:

Code: [Select]
FF
00 0E00
01 8E00
02 D200
03 0016
FF

CC DA  C7 FF  C4 6B  DB 07000000  DE 08  CD 0302 D8 00

02 69 01 C9 69 66 62 5F 69 66 62
02 66 01 C9 62 02 C9 66 64
   62 01 C9 64 62 60 02 62 60
   62 01 C9 66 69 6B 04 6C
CE 02 20 00
 
02 6B 01 C9 6B 67 64 61 64 67 6B
02 69 01 C9 03 6E 04 69
DF CE 78 00
02 67 01 C9 67 64 61 5D 61 64 67
02 66 01 C9 03 67 02 69 66
CE 02 49 00
02 64 01 C9 66 64 62 64 66 67 66
03 64 01 66 67 69 02 6B 67 68
D0

CC FE C7 FF C4 08 DB 07000000 CD 0301 DE 08 D8 00

01 C9 60 02 C9 60 5F 5D CE 08 A0 00

01 C9 62 02 C9 62 64 5F
01 C9 62 02 C9 62 66 62
CE 03 AC 00
01 C9 60 02 C9 60 C9 60
01 C9 61 02 C9 61 C9 60 61
D0

CC FE C7 FF C4 6E DB 07001E78 DE 08 D8 00

02 62 01 C9 03 62 02 5D 60
CE 08 E1 00

67 01 C9 03 67 02 69 6B
62 01 C9 03 62 02 66 69
CE 03 EE 00
02 60 01 C9 03 60 02 67 66
02 69 01 C9 03 69 02 5F 60 61
D0

Now I'm working on the main battle song.  Hopefully I can produce something good. 

Btw, there was a little bug in the last music development patch.  Here's a new one that fixes a bug related to the BCBD branching:
http://www.mediafire.com/?sharekey=db15991d3853f45abda4076e811714c8e04e75f6e8ebb871
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on March 27, 2009, 10:29:08 am
I was never crazy about the Cinco de Chocobo version.  All the staccato stops take away from the playful pace of the original classic versions.  Impressive work and faithfully done, but, not to be an artistic diva, I preferred the continuous style of my unfinished version from page 6.  You only ride the bird for about 5 seconds in the whole game anyway.  Can't wait for the battle music though.

Edit: Why do you use "00 16" for the noise channel pointer? Isn't that outside of the song block?

I gave "Yakusoku No Chi" my best.  I plan to use it for the ending
Spoiler:
which is the prologue of Advent Children.
Code: [Select]
FF
00 0E 00
01 76 00
02 EB 00
03 53 01
FF
CC C8 C7 FF C4 6E DB 07 00 1E 78 CD 03 01 D8 00 DE 07
06 64 02 63 61 63 64 66 04 68 69 61 02 C9 64 06 66 02
66 04 63 5F 0C 61 04 C9 06 64 02 63 61 63 64 66 04 68
69 06 61 02 64 C9 06 66 02 66 04 63 5F 0C 61 14 C9 04
63 61 66 68 10 66 0C 68 04 C9 06 68 02 68 04 69 68 0C
6B 02 68 6B 0C 6D 02 6F 6B 0C 6D 04 C9 D0
C7 FF C4 0E DB 07 00 1E 78 CD 03 01 D8 00 DE 07
06 5D 02 5D 04 58 02 58 5D 04 61 61 58 02 C9 58
06 5F 02 5F 04 5C 5A 0C 59 08 C9 02 5C 5C 04 5D
02 5D 5F 04 61 61 06 58 02 58 C9 06 5F 02 5D 04
5C 5A 0C 58 04 C9 06 57 02 57 04 58 57 08 55 04
57 58 06 57 02 57 04 57 58 08 5A 04 58 C9 06 55
02 55 04 55 55 0C 5C 04 5C 06 5D 02 5D 04 5D 57
0C 5C 04 C9 D0
C7 FF C4 6E DB 07 00 1E 78 D8 0C DE 07
06 61 02 5F 5D 5D 61 63 04 64 66 5D 02
C9 5D 06 63 02 63 04 5F 14 C9 06 61 02
5F 5D 5F 61 63 04 64 66 06 5D 02 5D C9
06 63 02 61 04 5F C9 0C 5D 18 C9 04 5D
5F 61 06 5F 02 5F 04 61 5F 08 63 04 61
C9 06 64 02 64 04 66 64 0C 63 04 63 06
66 02 66 04 66 63 08 66 04 65 04 C9 D0
C7 FF C4 4E CD 45 00 D8 00 DE 07
43 C9 C9 C9 C9 C9 C9 D0

Say, how do you test your sound?  FCEU/Nestopia?  NTSC/PAL?
Title: Re: Project: FF7 NES Upgrade
Post by: Zeemis on June 27, 2009, 10:29:10 am
I don't mean to bumb this topic, but I was always a lurker in this topic. Is it dead now or still in progress?
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on June 27, 2009, 01:19:57 pm
I may come back to it at a later time, but for right now it seems everyone is leaving be for now.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on June 27, 2009, 01:38:20 pm
I'm still around! I think part of this "pause" may have been due to the difficulties the whole site has had lately, and also the whole Crimson Echoes drama.

The lesson we should take from this is: Don't spam/hype our project on any other forums until it's DONE and RELEASED
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on June 27, 2009, 05:06:54 pm
Let's get to work then.
If we do a little bit at a time, it should at least get somewhere.
I suggest concentrating on the Train Station area first.
What about you, Nerd42?
Title: Re: Project: FF7 NES Upgrade
Post by: Zeemis on June 27, 2009, 08:20:30 pm
I'm glad I bumped this topic, er ...
Title: Re: Project: FF7 NES Upgrade
Post by: nonme345 on June 29, 2009, 05:12:22 am
Thanks Zeemis, for reviving the project! :thumbsup:
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on June 29, 2009, 10:01:13 am
What about you, Nerd42?
My almost total ignorance of how to help with this project and my busy lifestyle / lack of time to focus on learning how at the present has not changed, but neither has my being a fan of the project ... I could help with beta testing on the PSP some I guess
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on June 29, 2009, 05:30:07 pm
OK, then.
I'll work on doing some graphical changes to the train station tile set this week.
I'll use Lindblum's last patch of course.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on November 25, 2009, 09:53:33 am
OK, then.
I'll work on doing some graphical changes to the train station tile set this week.
I'll use Lindblum's last patch of course.
Any news??

I'm still totally interested in this project
Title: Re: Project: FF7 NES Upgrade
Post by: Zeemis on November 26, 2009, 08:42:52 pm
As am I, you guys have come along way and have a small fan base to back it.
Title: Re: Project: FF7 NES Upgrade
Post by: Gilgamesh on November 28, 2009, 08:01:47 am
I'm also quite interested.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on November 28, 2009, 06:32:36 pm
Wow. I better do some work on this then.
I never did do much with the graphics since I had this whole getting married thing I had to do.
But now that I'm settled in I can go back to some of my previous projects.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on November 28, 2009, 06:51:00 pm
Wow. I better do some work on this then.
I never did do much with the graphics since I had this whole getting married thing I had to do.
But now that I'm settled in I can go back to some of my previous projects.
Congratulations on getting married.

Watch out for men with black trench coats, long white hair and reeaally long thin swords ... they have a way of ruining relationships like that.

And yeah I don't think the lack of posts in these threads reflects any lack of community interest. There was just some upheaval with the whole Crimson Echoes thing
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on November 28, 2009, 10:33:19 pm
Thanks! ^_^
Yeah that whole thing sucked ass. I was really looking forward to that hack  as I'm sure most of us were as well.

Anyway, I updated the first post. I'm rebooting this project. I just need the 99% complete translation patch for the game and I can get started again. I lost all the previous work, what little of it there was, to an HDD crash.
Title: Re: Project: FF7 NES Upgrade
Post by: Lilinda on November 28, 2009, 10:44:00 pm
There was just some upheaval with the whole Crimson Echoes thing

You give too much credit to that project. There were dead periods before that happened as well.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on November 29, 2009, 07:56:00 pm
You give too much credit to that project. There were dead periods before that happened as well.
I don't think any of them were that long.
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on November 29, 2009, 08:15:35 pm
There was a dead period?
Title: Re: Project: FF7 NES Upgrade
Post by: Lilinda on November 29, 2009, 09:18:54 pm
You give too much credit to that project. There were dead periods before that happened as well.
I don't think any of them were that long.


You clearly have not been around this site for very long.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on November 29, 2009, 10:17:50 pm
Alright, guys. Can we get back on topic?

Are there any suggestions or ideas for this project? Anyone want to contribute/join?
I want this thing to get off the ground in a more meaningful way so I'd appreciate some help.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on November 30, 2009, 01:13:12 am
Alright, guys. Can we get back on topic?

Are there any suggestions or ideas for this project? Anyone want to contribute/join?
I want this thing to get off the ground in a more meaningful way so I'd appreciate some help.
Well, even with the speed patch, things seem a little slow. I'm more used to the FFIV and FFV style I guess ...
Title: Re: Project: FF7 NES Upgrade
Post by: GOREslinger on November 30, 2009, 09:31:33 pm
Holy freaking crap. Just found this and checked out the original... Had to post and show some support for an update. Epic sh*t. I would help, but all I know is a little java and python (seriously not a lot)... Also have to deal with the Air Force right now. I support the hell out of it though.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on November 30, 2009, 09:59:16 pm
I appreciate the support! ^_^

Yeah the game is a bit slow. I only really know rudimentary 6502 ASM so I can look into speeding things up, but it will take a while to get anything done.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 15, 2009, 08:53:24 am
Update!!

Good news to those following this thread. I got in contact with Lindblum, and he will be passing on his notes and tools to me so that I can go forward with this project! Woohoo!

Expect some screen shots with new tile graphics by the end of December!
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 15, 2009, 09:27:41 am
Update!!

Good news to those following this thread. I got in contact with Lindblum, and he will be passing on his notes and tools to me so that I can go forward with this project! Woohoo!

Expect some screen shots with new tile graphics by the end of December!
Excellent!
Title: Re: Project: FF7 NES Upgrade
Post by: Psychlonic on December 16, 2009, 11:30:24 pm
That's great news. I'm sure plenty of people are following along, it just feels silly to keep saying "Good job!" over and over. I'd love to help out, but I'm already swamped with projects, and I think all I could really help with are graphics.

Speaking of graphics, maybe I can make a spiffy box art for kicks.  :thumbsup: I've been really busy making stuff for thecoverproject.net lately, and I've already got a big slew of NES/Famicom and FF7 art on hand.

Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 16, 2009, 11:36:10 pm
That'd be cool if you have the time.
It would make a good rallying symbol for the project, too.
Title: Re: Project: FF7 NES Upgrade
Post by: Psychlonic on December 17, 2009, 02:04:02 am
Here's a quick low-res IMANDIX preview of the WIP so far:

(http://i48.tinypic.com/2v3kev9.jpg)

Right now it's sporting the Chinese screenshots temporarily, and I'll probably do some more tweaking later. I used Amano art instead of Nomura's since it fits the era better. I'm done for tonight.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on December 17, 2009, 08:37:42 am
^_^ LOL, that's gorgeous.  I feel like I'm looking into a parallel universe where console technology development stopped at NES.  It is still a good world.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 17, 2009, 08:59:07 am
Dude I agree. That's awesome! :)
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 18, 2009, 09:33:30 am
Absolutely amazing! That really gives me motivation to get those graphics upgrades finished so I can get you some screen shots. If you don't mind I'm gonna go ahead and add it to the first post. Even if only as a place holder for now, it will give the project much more weight.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 18, 2009, 11:30:39 am
^_^ LOL, that's gorgeous.  I feel like I'm looking into a parallel universe where console technology development stopped at NES.  It is still a good world.
You know ... that's kind of what really great rom hacks and some of the best of these Famiclones do. It's almost steam-punkish.
Title: Re: Project: FF7 NES Upgrade
Post by: Tomato on December 20, 2009, 09:59:13 am
I found a Japanese blog based on that concept (if game systems hadn't evolved) a while back:

http://anothersystem1983.blog80.fc2.com/
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 20, 2009, 03:40:42 pm
A little update on my situation. I'm currently at the last fund raiser event of the year that my wife and I will be participating in, so I'll have the next couple of weeks open to work on my various projects including this one.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 20, 2009, 04:22:59 pm
A little update on my situation. I'm currently at the last fund raiser event of the year that my wife and I will be participating in, so I'll have the next couple of weeks open to work on my various projects including this one.
OK.

hey does this game have Gold Saucer in it?
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on December 20, 2009, 04:52:42 pm
Gold Saucer, yes.  Much of Disc 2 was dropped completely
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 20, 2009, 06:21:40 pm
Gold Saucer, yes.  Much of Disc 2 was dropped completely
Hmm I really need to play this more. It just takes sooo looong to fight battles and level up your guys though. I really wish the battle speed could be upped somehow
Title: Re: Project: FF7 NES Upgrade
Post by: 108 Stars on December 20, 2009, 09:28:22 pm
Maybe it could be hacked so that battle animations can be skipped by pressing a button? Then it would be possible to get through standard battles more quickly.
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on December 20, 2009, 10:32:58 pm
I found the enemy initial HP code to be too complicated, so I rewrote it to load directly from a table at 0x27550($F540) in the 99% patch.  Many of these numbers are several orders of magnitude lower than the old HP.  That speeds up the game more than anything.  Once some more exciting battle music is in place it'll actually seem faster.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 21, 2009, 02:28:17 pm
I found the enemy initial HP code to be too complicated, so I rewrote it to load directly from a table at 0x27550($F540) in the 99% patch.  Many of these numbers are several orders of magnitude lower than the old HP.  That speeds up the game more than anything.  Once some more exciting battle music is in place it'll actually seem faster.
I doubt it, since I often play with the sound off while listening to something else. I played through Mario 64 this year while listening to Pink Floyd's "The Wall" - that was groovy. :)
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 22, 2009, 06:57:22 am
I don't know. I think it would help greatly to have the correct battle music in the game.
Title: Re: Project: FF7 NES Upgrade
Post by: Psychlonic on December 22, 2009, 11:39:03 pm
Here's some boss music inspiration:
http://ff7nesremix.ytmnd.com/

 ;D
Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on December 23, 2009, 12:00:44 am
Cute.  Coincidentally, I've been working on that song a bit today - preparing a MIDI to be sequenced into the game's format.  Lotta work.
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on December 23, 2009, 02:10:48 am
That remix certainly sounds like the song in some ways, but it doesn’t sound an awful lot like Uematsu’s NES tunes, which usually used the triangle wave for bass notes (very beefy in some NSF player and speaker configurations!), and due to the way the games were programmed, very little percussion I can recall (his taste for percussion tends to be wayyy on the soft side to begin with). And the PSX version of the song definitely had some pronounced bass tones I can’t hear in the remix (which lots of covers simply drive up because it’s so insistent in its simplicity... dun duN DUN DUN!).
Title: Re: Project: FF7 NES Upgrade
Post by: Psychlonic on December 23, 2009, 06:09:29 am
Yeah it's not totally accurate, but it definitely gets the imagination going eh? I thought it was hilarious when I first saw that years ago. Who knew an actual game would turn up like it did?

Lindblum, I find it admirable you're tackling the music. As I recall, it's quite difficult to create music for the NES as it has to be programmed in, correct?


Title: Re: Project: FF7 NES Upgrade
Post by: Lindblum on December 23, 2009, 09:26:28 am
It is time consuming, but I have the tools, knowledge, and skills to do it.  Maybe the persistence.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on December 23, 2009, 07:15:48 pm
I don't know. I think it would help greatly to have the correct battle music in the game.

For what it's worth, I still have a scratch version of the main battle theme that I was working on way back when.  It's incomplete but maybe someone can take it and finish it.  I'll post the byte block later when I get home from work.

Edit: here it is.  Squares are complete for the whole song.  Triangle is incomplete (and sounds an octave too high).  No drums.

FF7 Battle Theme
Code: [Select]
FF
00 1400
01 1801
02 3C02
03 0E00
FF

00 C9 C9 c9 c9 D0

CC FF C7 FF C4 6B DB 07000000 CD 0300 DE 0A D8 00

01
   6C 02 C9 01    CE 03 27 00    6C 67 6A 6D 6C 6A 6D
   6C 02 C9 01    CE 03 36 00    DF CF 4B 00    6C 02 6A 6A 6A
            CF 02 26 00
   6C 6A 67 6A 67 6A 67

03 54 56 57 59 02 5B 5E    D2 0C    CE 03 52 00    D8 00
01 60 6C 6C    CE 03 62 00    60 62 63 65 63 62 65
   63 6C 6E 6F 71 6F 6E 71 6F 6C 6A 02 6D 01 6D 02 6A
            CF 02 52 00

01 60 6C 6C    CE 03 87 00    60 62 63 65 63 62 65
   63 6C 6E 6F 71 6F 6E 67 6C 6A 6C 6E 6F 6E 6F 71

   C9 73 71 73 71 6F 6C 6E 02 6F 01 68 02 67 6A 6C
01 C9 63 62 02 63 01 65 67 68 02 6A 01 68 02 6A 01 6C 6E 6F
   C9 6F 6A 6C 6E 6C 6A 68 6C 65 67 68 6A 68 6C 68
   C9 02 68 03 67 65 01 65 67 68 6A 6C 6E 6F
   
   C9 6C 02 6F 01 6E 02 71 01 6F 02 73 01 71 02 74 01 73 6F 6C
            CE 02 E7 00
   C9 6A 02 6E 01 6C 02 6F 01 6E 02 71 01 6F 02 73 01 71 6E 6A
            CF 02 E7 00
   D0
   
CC FF C7 FF C4 6B DB 07000000 CD 0301 DE 0A D8 00
01
   67 02 C9 01    CE 03 2B 01    6C 67 6A 6D 6C 6A 6D
   67 02 C9 01    CE 03 3A 01    DF CF 4F 01    C9 02 67 65 65
            CF 02 2A 01
   6C 6A 67 6A 67 6A 67

03 54 56 57 59 02 5B 5E 03 5C 59 5B 5E 02 60 63 03 68 65 68 6A 04 6C
01 5B 67 67    CE 03 6D 01    60 62 63 65 63 62 65
   63 6C 6E 6F 71 6F 6E 71 6F 6C 6A 02 6D 01 6D 02 6A
            CF 02 56 01
           
01 5B 67 67    CE 03 92 01    60 62 63 65 63 62 65
   63 6C 6E 6F 71 6F 6E 67 6C 6A 6C 6E 6F 6E 6F 71
   
   C9 73 71 73 71 6F 6C 6E 02 6F 01 68 02 67 6A 6C
01 C9 60 5E 02 60 01 62 63 65 02 67 01 65 02 67 01 67 6A 6C
   C9 6F 6A 6C 6E 6C 6A 68 6C 65 67 68 6A 68 6C 68
   C9 02 60 03 5E 5C 01 60 63 65 67 68 6A 6C
   
0E 60 02 60 0E 5C 02 5C 0E 5E 02 5E
01 C9 67 02 6C 01 6A 02 6E 01 6C 02 6F 01 6E 02 6F 01 6E 6F 6C
   c9 68 02 6C 01 6A 02 6E 01 6C 02 73 01 6E 02 71 01 6F 6F 6C
   C9 65 02 6A 01 6C 02 6C 01 6A 02 6E 01 6C 02 73 01 6E 6B 65
D0   

CC FF C7 FF C4 6E DB 07000000 DE 0A D8 00

03 6C 01 6C 02 C9 6C 01 C9 03 6C 02 6C 6A
01 73 02 78 01 73 02 C9 73 C9 73 71 71
03 73 01 73 02 C9 73 01 C9 03 73 02 73 74
03 73 01 73 02 C9 73 01 C9 73 02 71 71 71

03 73 01 73 02 C9 73 01 C9 03 73 02 C9 71
03 6C 01 6F 02 C9 6F 01 C9 03 6F 02 6F 02 6E
03 6C 01 6C 02 C9 6C 01 C9 03 6C 04 6C
00 C9 C9
d0

Paste into 0x1B8DD to preview it as the intro song. 
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 23, 2009, 11:05:27 pm
Awesome. Nice to see you around, tummai. ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: Eternal248 on December 26, 2009, 02:12:13 am
Not sure what I can do to help, but I support this project all the way. I may dislike VII, but the amount of effort you're all putting into this is admirable.

I'm quite glad you all decided to try and add VII's music. The music that is currently in this hack is... creepy (at best).
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 27, 2009, 01:39:05 am
Thanks for your support, dude! ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on January 19, 2010, 12:06:34 am
think this will be done in 2010 sometime?
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 19, 2010, 01:07:29 am
I can't comment on done, but definitely SOME work will get done.
The easiest thing to get done will be the graphics, the rest is more... complicated.
Title: Re: Project: FF7 NES Upgrade
Post by: kando on January 19, 2010, 05:54:40 pm
great work moves at its own pace. do not set a release date :D
Title: Re: Project: FF7 NES Upgrade
Post by: syntax error on January 20, 2010, 05:02:27 pm

I am NOT the requesting guy,but
 think some maps need to be rewritten.
If a slum under a plate looks green like in this game I would like to live in a place like that.The power plants and town outsides should look more like cyberpunk.
This game features airships instead of helis but the player cant use one,
while in every FF game there is alt least 1 airship available to use.

thought about recommending you games to rip tiles and sprites but that would be
the same way this game was created >:D


other NES games have a much more interesting dungeon style


About the creepy music >:(: is from FF3,but the battle music is from FF2
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 20, 2010, 08:53:26 pm
Tummai & Lindblum were getting some great work done on replacing the music, but it currently incomplete.

An airship is a big addition as it would mostly have to be programmed from scratch.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on January 22, 2010, 09:27:19 am
Tummai & Lindblum were getting some great work done on replacing the music, but it currently incomplete.

An airship is a big addition as it would mostly have to be programmed from scratch.

btw, if anybody is proficient with FamiTracker and wants to help this project along, make some NES versions of FF7 songs.  I can take the FamiTracker file and convert it to the FF7 music engine pretty easily.  I'm just not very good at composing with FamiTracker.
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on January 22, 2010, 09:42:12 am
What tunes would you like to have?
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on January 22, 2010, 02:30:18 pm
What tunes would you like to have?
What tunes do we already have?

I think I might give it a try, depends on how hard FamTracker is to learn.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 22, 2010, 04:22:23 pm
I'll see if I can find anything out 'there' and contact any authors I come across for permissions.

Edit: I found one FF7 cover at the Famitracker forum. I'm gonna contact the composer.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on January 22, 2010, 07:34:52 pm
Why not put out a call for arrangers on 8bc.org? (Pretty much the main chiptune site I think)
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on January 22, 2010, 08:33:24 pm
Famitracker is not that hard to learn if you know how to use a tracker. Of course, you still need an ear for music if you want the tune to sound like a good cover when it’s all done. But the reason I ask what tunes you would like to have is because FF7 has a soundtrack approaching five hours long, and converting them all would be a tad unreasonable... on time and under budget, anyway.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on January 23, 2010, 07:39:22 am
The #1 request is the Battle Theme.  The game only has about 8 songs coded in, so to replace those we'd need the following:

Battle Theme
Town Theme #1
Town Theme #2
Boss Battle Theme
Overland Walking Theme
Dungeon Theme
Victory Song (when you win a battle)

As far as which Town or Dungeon songs to use, it would really be up to you.  Anything would be better than what is in there now :)  And by no means do I expect any one person to volunteer to do all of them.  If you could knock even one of them out it would be a great help!

Once we have all the default songs replaced, we could think about adding in more of the soundtrack if ROM-space allows.  No need to worry about that now though.

As far as composing goes, the only specific restriction I can think of off the top of my head is no samples (DPCM).  The FF7NES sound engine doesn't support them.
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on January 23, 2010, 04:35:20 pm
Final question (before anyone gets too ahead of themselves): arpeggios? FF7’s musical structures have more polyphony going on than you might expect. In the battle theme, there’s a lot of harmony and really neat countermelodies, for example. And when you’ve already lost most of your percussion (and swap out the timpani for the triangle channel), the song loses a lot :\
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on January 23, 2010, 04:55:37 pm
Are you able to add more songs or only able to replace songs?
Title: Re: Project: FF7 NES Upgrade
Post by: Zeemis on January 23, 2010, 05:08:19 pm
I'm just another fan asking a fan question, when can we get a glimpse at this?
Perhaps a beta, a video?
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on January 23, 2010, 07:29:11 pm
Final question (before anyone gets too ahead of themselves): arpeggios? FF7’s musical structures have more polyphony going on than you might expect. In the battle theme, there’s a lot of harmony and really neat countermelodies, for example. And when you’ve already lost most of your percussion (and swap out the timpani for the triangle channel), the song loses a lot :\

If by arpeggios you mean note envelopes (playing several notes on a single channel very very fast to simulate a chord), I don't think FF7's sound engine supports them.  I think we're stuck with just three voices.
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on January 23, 2010, 07:47:51 pm
Poop. Ah well.

But... I do mean arpeggio, because that’s what FamiTracker calls ’em :V
Title: Re: Project: FF7 NES Upgrade
Post by: DarknessSavior on January 23, 2010, 08:38:49 pm
Final question (before anyone gets too ahead of themselves): arpeggios? FF7’s musical structures have more polyphony going on than you might expect. In the battle theme, there’s a lot of harmony and really neat countermelodies, for example. And when you’ve already lost most of your percussion (and swap out the timpani for the triangle channel), the song loses a lot :\

If by arpeggios you mean note envelopes (playing several notes on a single channel very very fast to simulate a chord), I don't think FF7's sound engine supports them.  I think we're stuck with just three voices.
In music, an arpeggio is just (in possibly the most simple definition of the term) the notes of a chord that are played separately instead of all at once. The speed doesn't matter.

~DS
Title: Re: Project: FF7 NES Upgrade
Post by: Zeemis on January 23, 2010, 09:23:12 pm
The screenshots on the first page are dead links now.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on January 23, 2010, 11:00:56 pm
In music, an arpeggio is just (in possibly the most simple definition of the term) the notes of a chord that are played separately instead of all at once. The speed doesn't matter.

~DS

That's why I asked for clarification.  I play guitar and my image of an arpeggio is one thing, usually slower than 60 notes a second.  Although I guess if you play a chord with a pick it must technically be an arpeggio too :).  NES music composers usually use "arpeggio" to mean specifically the simulation of chords with pitch envelopes. 
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 23, 2010, 11:07:27 pm
Oh crap! I forgot that I rearranged my photobucket folders.
I'll fix up the links as soon as I get a chance.
Thanks for letting me know. ^_^

Tummai, I'd like to know as well if more music can be added.
After all, even FF1 has more tracks than that.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on January 24, 2010, 12:37:44 am
Yes, it should be possible to add more music.  If I remember correctly we have a pretty large area of empty ROM space in the music bank.  We could use that for extra songs.  And Lindblum found the table that assigns song number to game area, so it should be easy to assign any new songs we add to the different areas in the game.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 24, 2010, 01:14:49 am
Sweet! I'm gonna do a play through of the game and write down some notes about what upgrades are needed including the music! ^_^
Title: Re: Project: FF7 NES Upgrade
Post by: vivify93 on January 24, 2010, 01:49:56 am
Hey, I noticed that the mugshots of Barret, Tifa and Aerith could use some tweaking, so I went ahead and did that. I dunno if they're wanted or not though.

The ones on the left are the ones on the first page of this topic; the ones right are my edits.
[unwanted image removed]

 Good luck on this project guys!
Title: Re: Project: FF7 NES Upgrade
Post by: Zeemis on January 24, 2010, 07:01:25 pm
I liked the left ones the best. :s
Except the bottom right, I liked that as well.
Title: Re: Project: FF7 NES Upgrade
Post by: vivify93 on January 24, 2010, 08:10:58 pm
Oh...oh, I didn't clarify at all, did I.

The ones on the right are my edits.

Well, I guess I wasn't needed after all. Ah well, I just used this to waste a bit of time anyway.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on January 24, 2010, 08:11:05 pm
Yes, it should be possible to add more music.  If I remember correctly we have a pretty large area of empty ROM space in the music bank.  We could use that for extra songs.  And Lindblum found the table that assigns song number to game area, so it should be easy to assign any new songs we add to the different areas in the game.
That's excellent. In that case, we definitely need the introduction, the main map theme, the main battle theme, the Aerith theme and One Winged Angel as a minimum.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on January 25, 2010, 11:58:42 am
Thanks for the work on the mugs, vivify!
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on January 25, 2010, 01:45:41 pm
The Tifa on the right has serious droopy-eye ._.;;
Title: Re: Project: FF7 NES Upgrade
Post by: vivify93 on January 25, 2010, 05:28:17 pm
How's this then? I also made one that isn't smiling since she doesn't in her PS1 face pic...as far as I remember, anyhow.

[unwanted image removed]
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on January 25, 2010, 07:40:02 pm
It just doesn’t work. The original facial structure (and placement of the hair!) is drawn specifically for the under-angle shot. If you want to make it look like a normal 3/4 shot, you’re going to have to redraw significant portions, and at that point, it’s just better to do it from scratch. I’m not too hot on the other mods, either.

I may sound like I’m being nitpicky, but this is Cartooning 101 stuff (drawing is of my many interests, even if I’ve got no talent for it), and I don’t know how to make this not sound rude.

(so have 25% of the battle theme (http://members.cox.net/brpxqzme/FF7-bat.ftm) instead)
Title: Re: Project: FF7 NES Upgrade
Post by: vivify93 on January 25, 2010, 10:44:22 pm
Alrigty, fine, like I said it wasn't wanted. Again, good luck on the project, guys, I'll just be lurking from now on.
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on January 26, 2010, 05:40:58 am
(so have 25% of the battle theme (http://members.cox.net/brpxqzme/FF7-bat.ftm) instead)

Great start!  Thanks!
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on February 02, 2010, 12:14:21 am
LOL @ http://teamteamwork.bandcamp.com/album/vinyl-fantasy-7

As with most video game hip hop mashes, they picked the crappy mainstream artists. This one's nowhere near as awesome as mine (http://nerd42.net/chronotied/) but I thought it was notable to this thread because we're also doing an illegal ff7 project :)
Title: Re: Project: FF7 NES Upgrade
Post by: Killa B on February 02, 2010, 01:02:44 pm
they picked the crappy mainstream artists
Other than Jay-Z and possibly Outkast I don't see how you could consider those mainstream artists. Maybe things are different in the alternate universe where Fort Minor doesn't suck. :V
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on February 02, 2010, 01:07:52 pm
they picked the crappy mainstream artists
Other than Jay-Z and possibly Outkast
OK, I admit, I just saw Jay-Z and Outkast and immediately assumed "same old, same old." But the beats have turned out to be pretty good.

I don't see how you could consider those mainstream artists. Maybe things are different in the alternate universe where Fort Minor doesn't suck. :V
The alternative universe is real - you just don't realize it cause you're living in the Matrix :)

February 04, 2010, 11:08:44 am - (Auto Merged - Double Posts are not allowed before 7 days.)
OMG IF YOU HAVE A PSP, CHECK THIS OUT http://www.qj.net/qjnet/psp/psp-homebrew-nesterj-112-plus-061-rm-rewind-mirror.html (It's supposed to support the Chinese mapper AND allow rewinding!)

February 05, 2010, 09:49:15 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Just tested the patched game out on the new PSP emulator. Appears to be running fine. :)
Title: Re: Project: FF7 NES Upgrade
Post by: Zeemis on February 06, 2010, 12:41:36 am
Can we get some updated screenshots of anything new? I'm very interested and want to see progress shots, however don't interpret it as me rushing you guys.
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on February 06, 2010, 03:55:41 pm
About 50% now. (http://members.cox.net/brpxqzme/temp.mp4) Stops right before it gets to the part of the song I actually like :laugh:
Title: Re: Project: FF7 NES Upgrade
Post by: tummai on February 07, 2010, 08:49:37 am
About 50% now. (http://members.cox.net/brpxqzme/temp.mp4) Stops right before it gets to the part of the song I actually like :laugh:

Very cool.  Sounds good.  The only thing I'd change would be to un-staccato the little fill part at 0:20, 0:33.  Looking forward to the 100% version
Title: Re: Project: FF7 NES Upgrade
Post by: BRPXQZME on February 07, 2010, 11:51:01 am
It actually comes from the piano version (http://www.youtube.com/watch?v=kciuUivJ9R8), which I know better off the top of my head than the actual score for practical reasons :V

I’ll see what I can/should do about it (the original indeed uses strings... strings that aren’t quite loud enough to count as melody). The reason for cribbing off the piano arrangement in some spots is that the song does not split into NES voices very well. Uematsu got to use a whole orchestra on the PSX hardware, and what does he do? He puts in a big-ass virtual trumpet section and tells everyone else but the virtual flutists, cellists, violists, violinists, and percussionists to go home! Okay, there’s an electric guitar in there somewhere, but he only plays a couple of notes near the beginning. You can’t hear him.

The boss music will be much easier to track in that regard (in case someone else is willing to do it before I get to it); there is a clear bass-line, a clear treble line, and a clear mid-section, and that will translate to the NES very well.

EDIT: Yeah, now I remember why I didn’t do it. I did try making it accurate, but the more technically accurate options I tried sounded too muddy; not quite as energetic as making marcato chords. And that’s what matters in this song the most: energy. I’d post comparison samples, but it’s a bit tough to do and I’ve got homework and snow shoveling on the backlog.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on February 17, 2010, 01:05:07 am
Update on current status at my end.
I'm playing through the game again taking notes about the changes that need to be made in comparison to the PSX version which I am also playing at the same time.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on September 28, 2010, 05:34:06 pm
Anything going on with this? Both this and the translation patch thread (http://www.romhacking.net/forum/index.php/topic,6915.msg170525.html#msg170525) seem to have gone dead, but I bet there's still interest in seeing a completed, polished FF7 on the NES :)
Title: Re: Project: FF7 NES Upgrade
Post by: tcaudilllg on October 02, 2010, 08:13:39 pm
I'd like to see this finished. Love what you've done with Shinra Building.
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on November 28, 2010, 12:09:29 pm
Anything going on with this? Both this and the translation patch thread (http://www.romhacking.net/forum/index.php/topic,6915.msg170525.html#msg170525) seem to have gone dead, but I bet there's still interest in seeing a completed, polished FF7 on the NES :)

This project also seems dead. Sad, I was looking forward to this. Oh well.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on November 28, 2010, 02:52:07 pm
if I ever continue with this it will be as a retro game for pc.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on November 28, 2010, 04:50:43 pm
if I ever continue with this it will be as a retro game for pc.
Well post the final patch that contains all the work you did as far as you got to the romhacking.net database then. Somebody else might wanna finish it up for ya but whether they will or not, it's still good to have.
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on November 28, 2010, 05:19:21 pm
Also if you don't, your work will be for nothing!
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on November 28, 2010, 09:44:55 pm
Also if you don't, your work will be for nothing!
Yeah, for real man. You got too far to not post it. I mean, if you decide you don't wanna work on it anymore that makes sense but not throwing away what you've already done
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on November 29, 2010, 07:07:59 pm
And if you finish this project it will be one of the biggest improvement hacks!

I altered the character pictures slightly. Do you like it (http://img715.imageshack.us/img715/3015/imgpj.png)?
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 13, 2010, 06:58:46 pm
I don't think he's going to do it.
Title: Re: Project: FF7 NES Upgrade
Post by: Garoth Moulinoski on December 13, 2010, 07:35:53 pm
Well, Romhacking is actually a lengthy process and a hard one at that. Whoever is doing this project is probably taking his or her time doing it while still attending school, fulfilling jobs, or any other duty. :/
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 13, 2010, 08:19:59 pm
Well, Romhacking is actually a lengthy process and a hard one at that. Whoever is doing this project is probably taking his or her time doing it while still attending school, fulfilling jobs, or any other duty. :/
Read the things before my post. I really should stop talking in context.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 13, 2010, 09:26:56 pm
Well be ye aware, world, this project has and will always have at least one huge fan, ME.  :angel:
Title: Re: Project: FF7 NES Upgrade
Post by: Garoth Moulinoski on December 13, 2010, 10:19:07 pm
Well, Romhacking is actually a lengthy process and a hard one at that. Whoever is doing this project is probably taking his or her time doing it while still attending school, fulfilling jobs, or any other duty. :/
Read the things before my post XD

Well, I admit I did tl;dr'd... :( Sorry. I just didn't really see any reason to say that this person is never going to continue this project just like that...

Still, I don't blame the person for giving up, if that's what happened. Romhacking is hard stuff.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 13, 2010, 10:24:52 pm
Well anybody could pick up where he left off from his last patch you know
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 14, 2010, 05:44:38 pm
Well anybody could pick up where he left off from his last patch you know
Well that is true only if he left a patch.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 14, 2010, 08:33:25 pm
Well there was the speed patch and I think a music patch and of course the 99% translation patch which I think included those
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 14, 2010, 08:46:51 pm
Well there was the speed patch and I think a music patch and of course the 99% translation patch which I think included those

Mind putting them into the database. It will draw attention to the game.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 14, 2010, 08:49:22 pm
Well there was the speed patch and I think a music patch and of course the 99% translation patch which I think included those

Mind putting them into the database. It will draw attention to the game.
Is that OK when I didn't write them?
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 14, 2010, 09:27:15 pm
Well there was the speed patch and I think a music patch and of course the 99% translation patch which I think included those

Mind putting them into the database. It will draw attention to the game.
Is that OK when I didn't write them?

I don't think so >_>. But I did see a patch submitted that wasn't by the person but just corrected. The original patch was a faulty. So I guess the answer is yes if you say it isn't yours and give credit.

The patch was for the Famicom or Nes and it was a translation.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 14, 2010, 10:12:28 pm
Here's the 99% translation patch: https://sites.google.com/site/nerd42/FF7NES-CH2EN-99.ips?attredirects=0&d=1

Here's the title screen: https://sites.google.com/site/nerd42/FinalFantasyVII%2899pCtoE%29_001.png?attredirects=0&d=1

Here's a screen shot: https://sites.google.com/site/nerd42/FinalFantasyVII%2899pCtoE%29_002.png?attredirects=0&d=1

I hate it when somebody goes AWOL on a project in such a stupid way that they don't even post the results as far as they got. That's just stupid. It's like, worse than not working on it at all.
Title: Re: Project: FF7 NES Upgrade
Post by: danke on December 15, 2010, 05:41:15 am
I hate it when somebody goes AWOL on a project in such a stupid way that they don't even post the results as far as they got. That's just stupid. It's like, worse than not working on it at all.

Actually, it's his work, and completely up to him if he wants to release it or not. Whether you find it "stupid" or not is your problem. If he has no urge to finish it due to the limitations of the NES (which is likely the case), then why release a partial patch?

Maybe he's AGAINST someone 'finishing' the upgrade using his work as a base, which could be why he hasn't released a partial patch?

Maybe he just doesn't want an unfinished project?

All in all, it's his work, his effort, his patch, and his decision. It's not really fair to pester him and try to "convince" him to release just because you want someone else to finish his work. There are more than enough tools and documents on this site for to start an upgrade patch of your own.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 15, 2010, 10:38:13 am
I hate it when somebody goes AWOL on a project in such a stupid way that they don't even post the results as far as they got. That's just stupid. It's like, worse than not working on it at all.
Actually, it's his work, and completely up to him if he wants to release it or not. Whether you find it "stupid" or not is your problem. If he has no urge to finish it due to the limitations of the NES (which is likely the case), then why release a partial patch?

Maybe he's AGAINST someone 'finishing' the upgrade using his work as a base, which could be why he hasn't released a partial patch?

Maybe he just doesn't want an unfinished project?

All in all, it's his work, his effort, his patch, and his decision. It's not really fair to pester him and try to "convince" him to release just because you want someone else to finish his work. There are more than enough tools and documents on this site for to start an upgrade patch of your own.
The guy did release a partial patch. He just didn't get it put in the database. And don't give me that BS, people ought not to cause useless duplications of efforts. It's a waste of human brain time. I'm not saying the guy had to stick around and finish anything. Just that he ought to have posted the final stage of what he got done, cause he's got fans and he's wasted whatever time he's put in if he doesn't.

And this thing is so close to being done that I'm not even sure why he hasn't just stuck 100% on it and called it "done." I'm guessing it's some untranslated stuff near the end of the game, cause I've been playing it and I haven't run into any Chinese yet.

If RHDN doesn't want his patches in the database unless the guy responds, I'm gonna start my own freaking web site to make sure people can get them. So it's not up to RHDN whether this 99% patch gets distributed, only whether it's in their database.
Title: Re: Project: FF7 NES Upgrade
Post by: Garoth Moulinoski on December 15, 2010, 11:21:51 am
My understanding is that if there is a patch you want to put on the database, it's okay to put it even if it's not yours as long as you don't claim credit for it and you give credit to the original creator as best you can. If the creator is against seeing his or her patch on here, they request a takedown.

I am not 100% on this, however, but you can try it out if you want to.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 15, 2010, 10:22:04 pm
Alright I think this has gone on long enough.
I'm not working on this because I don't have the time or desire to work on it as a NES project at the moment.
I posted earlier that if I ever go back to this it will be as an 8-bit style fan project.
I didn't post a final patch because there was never any significant work done on the ROM itself.
Mostly a lot of research and some graphics were made and what was made was never inserted.
As for the bgm work that was being done on this, I don't know. I wasn't involved with that aspect of things.
Anyone is free to use the stuff that was posted in this thread to continue the work if they please.
Here's the address for all the resources Lindblum shared for this project:

http://www.mediafire.com/?sharekey=ec6ac6d00741e6faab1eab3e9fa335ca6baaa4c4355ae99c

(It's a public folder so I'm sure he won't care if I post it.)
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 16, 2010, 12:33:22 pm
Alright I think this has gone on long enough.
I'm not working on this because I don't have the time or desire to work on it as a NES project at the moment.
I posted earlier that if I ever go back to this it will be as an 8-bit style fan project.
I didn't post a final patch because there was never any significant work done on the ROM itself.
Mostly a lot of research and some graphics were made and what was made was never inserted.
As for the bgm work that was being done on this, I don't know. I wasn't involved with that aspect of things.
Anyone is free to use the stuff that was posted in this thread to continue the work if they please.
Here's the address for all the resources Lindblum shared for this project:

http://www.mediafire.com/?sharekey=ec6ac6d00741e6faab1eab3e9fa335ca6baaa4c4355ae99c

(It's a public folder so I'm sure he won't care if I post it.)
Awesome, thanks. Good luck with whatever you're doing in future and thanks for everything you've done to help with this. Just one question: do you know what's left untranslated?

(later edit) In addition to what's in Vanya's folder, I have two moar files:
The game's world map as a PNG: http://www.mediafire.com/i/?g644ava1a785o9a
Some cheat codes: http://www.mediafire.com/i/?g644ava1a785o9a
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 16, 2010, 05:33:29 pm
I don't think there was anything significant left untranslated, unused bits you would never see normally.
I think Lindblum left it at 99% because the didn't finish the weapon shop stuff and wanted to work on the speed up some more.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 16, 2010, 05:37:03 pm
OK, thanks. :)

Does anyone know whether it matters what order you apply the patches in? Speed first or translation first or does it matter?
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 16, 2010, 08:00:28 pm
It doesn't matter. But I would create a back-up just in case.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 16, 2010, 08:16:23 pm
It doesn't matter. But I would create a back-up just in case.
Oh yeah, I'm never losing this stuff.  8)
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 17, 2010, 09:19:12 pm
Yo vanya, do you know how to hack the tiling of the palettes of the mugshots?

I edited the image and it looks like this

(http://img513.imageshack.us/img513/2240/83687927.png)
her hair is partially green D:

Edit: Holy Seinfeld! I found it!
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 18, 2010, 04:09:32 am
You have to look at the graphics data in RAM, then get the ROM address for it and then you can change the properties permanently.
I don't have the addresses for the data, so you'll have to find it on your own.
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 19, 2010, 12:30:02 pm
You have to look at the graphics data in RAM, then get the ROM address for it and then you can change the properties permanently.
I don't have the addresses for the data, so you'll have to find it on your own.

I found her menu palette but there are 105 others. I think they're all repeated for different maps (0F36120F0F36190F). Some are used for sprites. This game is very unorganized.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 19, 2010, 06:42:35 pm
The game's code is very sloppy and unoptimized. All the graphics that are shared among maps are repeated for each area for example.
Title: Re: Project: FF7 NES Upgrade
Post by: syntax error on December 20, 2010, 09:42:33 am
disch made an editor for FF II called Jade.He has the VC++ source for version 0.2d on his page.You could adapt it to this game.
Title: Re: Project: FF7 NES Upgrade
Post by: Azkadellia on December 20, 2010, 10:32:49 am
No. Disch made FFHackster. Lenophis made Jade.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on December 20, 2010, 10:53:43 am
disch made an editor for FF II called Jade.He has the VC++ source for version 0.2d on his page.You could adapt it to this game.

I seriously doubt it would be easy to adapt any editor for a Square game to the Chinese made FF7 ROM.
Title: Re: Project: FF7 NES Upgrade
Post by: darkmew5 on December 20, 2010, 04:18:03 pm

Quote
I seriously doubt it would be easy to adapt any editor for a Square game to the Chinese made FF7 ROM.
Yes because the two games are made by two different creators. But it is possible it could work though...
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 20, 2010, 06:13:35 pm
Look, no. Just no. There's no way there's gonna be anything in a Square game editor that would help with modifying this game. If you don't know anything about programming, you're just going to have to take my word for it that computers don't work as seen on MegaMan Battle Network. And if you do know something about programming, you don't have to take my word for it cause you'd already know that.

That is, unless FFVII isn't really an original game but a rom hack of an actual Final Fantasy title. I was under the impression that the Chinese FFVII was not a "rom hack" but an original game that borrowed some graphics from various FF titles but that's all.
Title: Re: Project: FF7 NES Upgrade
Post by: Bregalad on December 21, 2010, 03:23:50 pm
If you don't know anything about programming, you're just going to have to take my word for it that computers don't work as seen on MegaMan Battle Network. And if you do know something about programming, you don't have to take my word for it cause you'd already know that.

- Jack in
- Solve a few mazes
- Delete the boss
- Jack out
- The game suddently turned back into a legitimate Playstation version of the game. YEAH THE WORLD IS SAVED!
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on December 21, 2010, 09:38:00 pm
If you don't know anything about programming, you're just going to have to take my word for it that computers don't work as seen on MegaMan Battle Network. And if you do know something about programming, you don't have to take my word for it cause you'd already know that.

- Jack in
- Solve a few mazes
- Delete the boss
- Jack out
- The game suddently turned back into a legitimate Playstation version of the game. YEAH THE WORLD IS SAVED!
LOL  :D
Title: Re: Project: FF7 NES Upgrade
Post by: syntax error on December 22, 2010, 01:50:30 pm
I would say this ROM needs a lot of work,thats why I only talk about it and code nothing :D
All bosses and a lot of enemies need to look like their name,some game coding needs optimizing and difficulty grade balance,the music is crippled in battles,most tilesets dont look like the FF7 (cyberpunk+natural+medieval+tropic) design style,there are less NPCs and key items,events are bad looking,no minigames ,crazy..........
At my research I found out that this game is very similar to FF2 and III,that is why I suggested here to use the only FOSS editor fo FFII and chang a bit of c++

In short words its too much of work for me,
Lindblum left most of what you need and the rest can be found at this site.
Title: Re: Project: FF7 NES Upgrade
Post by: Anonymous6 on May 06, 2011, 12:37:23 pm
Is any one still working on this?
A Final Fantasy VII nes rom would be great for my letcool.  >:D
I would seriously pay money for this if I could.
Title: Re: Project: FF7 NES Upgrade
Post by: Nerd42 on May 06, 2011, 02:37:18 pm
Nope. The main guy left and it hasn't been worked on since. But a substantial amount did get done. It's a real shame. If you know anybody tell them to give it a shot :) I have backed up all the files that have been publicly released if anybody wants them
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on May 10, 2011, 04:55:16 am
I was working on this, but my recent divorce has left me with no taste fo romhacking at all.
Title: Re: Project: FF7 NES Upgrade
Post by: Lilinda on May 10, 2011, 05:28:57 am
Didn't you just get married? o_O Damn, dude. That sucks. Sorry.
Title: Re: Project: FF7 NES Upgrade
Post by: Vanya on May 25, 2011, 06:01:15 pm
Yeah. Only lasted a year and 3 months.
Her loss.
Thanks for the kind words, though.
Title: Re: Project: FF7 NES Upgrade
Post by: Flaviogames on May 13, 2021, 07:57:55 am
very interesting project, ps5 will be forgotten, but the Nes 8 bit will never die ;D
Title: Re: Project: FF7 NES Upgrade
Post by: KAGE-008 on May 13, 2021, 08:46:53 am
very interesting project, ps5 will be forgotten, but the Nes 8 bit will never die ;D

It was already finished a very long time ago:
http://www.romhacking.net/hacks/1657/