Author Topic: FF7NES. Fire up the wiki guys!  (Read 7296 times)

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
FF7NES. Fire up the wiki guys!
« on: 2011-07-26 02:31:17 »
Ok, I as I announced in the projects thread. I've decided to disassemble and reassemble FF7NES so it's more like it's PSX counterpart. The thread asking for help is there, but I decided to to a memory dump of what I have so far so you guy can see how it's put together. These are pretty much my notes off the top of my head. I may add more, but it also may just go in the wiki.

Here's how it works...

The FF7NES game is a ROM weighing in at 2MB in size. This is split into 64 banks of 32K, labeled $00-$1F. Each bank is a module onto itself. On reset, bank $0F in switched in and boots the initialization code in bank $00. (This is as far as I've gotten). Each bank resides in NES memory from $8000 to $FFFF

There are some Key things that I have discovered that is mechanically different between FF7NES and FF7PSX that I will get into here.

1- Because the game is in Chinese, the characters eat memory, both PPU video memory and ROM space. This can be completely cut out.
2- The engine may look cosmetically similar, but is massively different under the hood.
3- The materia slots are gone. It works more like the FF6 method where you have one "ball" for each spell you learn.
4- The game is massively imbalanced, with no real way of correcting it
5- The growth curves are linear, with no exponential growth.
6- The batte system is a shell of itself. The only thing it has over the FF1 is is the ability to have 4 digit health. No ATB.
7- There is no 7
8- Becuause of the PPU being used for Chinese, little space is left for better graphic tiles.
9- Massive graphic/code duplication
10- The sprites are mostly ripped from other games.

I can go on, but the game deserves better than this.

Now for the big question... What about the Legality?

Well, what is done is done. The game is out and people are playing it. Either Square decided to blind-eye it, or it's under the radar. It's been around for a while now, so I'm gonna consider this "dead code" (Not out of copyright, mind you. There is a difference.) Trust me, if there are murmuring of issues, I'll be the first to know. For now, I'm going forward. Am I being a hypocrite? Well, kind of. But I like to think of this as an old car that has been abandoned. Anyways, the first stages to get this rebuilt is disassembly and reassembly. And that's not relevant because it's not Square's code.

So Yea, off to the Wiki I go. Lemme know if you want info about how things work, be it on the FF7NES side, or just the NES in general. I'll be here to help.
« Last Edit: 2011-07-26 02:40:34 by halkun »

SymphoniC

  • *
  • Posts: 46
  • Mind hack.
    • View Profile
Re: FF7NES. Fire up the wiki guys!
« Reply #1 on: 2011-07-26 03:48:34 »
This is kind of neat. Was it made from scratch or does it re-use FF1's engine with alterations? Either way, interesting.
« Last Edit: 2011-07-26 03:50:53 by SymphoniC »

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Re: FF7NES. Fire up the wiki guys!
« Reply #2 on: 2011-07-26 03:58:23 »
it was originally a scratch build.

SymphoniC

  • *
  • Posts: 46
  • Mind hack.
    • View Profile
Re: FF7NES. Fire up the wiki guys!
« Reply #3 on: 2011-07-26 04:03:38 »
Okay. I haven't checked it out yet, but if it needs help in the music department, let me know. 8-bit FF7 music with only the NES' channels of sound, sounds like an exciting challenge.

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Re: FF7NES. Fire up the wiki guys!
« Reply #4 on: 2011-07-26 04:40:38 »
well, first everything needs to be taken apart, I have the rom split already in 64 chunks of 8K banks each. You wanna run some though da65, or some other 6502 disassembler, more power to you. If you know of a better diasm then da65, let me know.

SymphoniC

  • *
  • Posts: 46
  • Mind hack.
    • View Profile
Re: FF7NES. Fire up the wiki guys!
« Reply #5 on: 2011-07-26 04:54:12 »
MOS 6502. I could use IDA Pro.

Update : I found an NES loader module and some plugins for use with IDA.
« Last Edit: 2011-07-26 05:31:53 by SymphoniC »

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Re: FF7NES. Fire up the wiki guys!
« Reply #6 on: 2011-07-26 12:22:02 »
yea, IDA pro is a $500 program. If you have it, more power to you. I don't so I have to do it the old fashioned way.

If you have the ROM, what you need to do is remove the 16 byte iNES header, and then next 16384 bytes make up bank $00. That's the bank that initializes the game. Each 16K bank sits in NES memory from $8000-$FFFF. Careful, there is a memory section @ $400 (NES memory, not the ROM) that is used for relocatable code. so some parts of the ROM are relocated into RAM for execution.

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: FF7NES. Fire up the wiki guys!
« Reply #7 on: 2011-07-26 13:16:11 »
I don't know if this is helpful or not, but when I was trying to disasm some GBC ROMs I found it helpful to split the ROM into smaller pieces before reading. GBC ROMs work in essentially the same way. They range from 256K to 2MB and they are divided into blocks of 8000h bytes each. The Master block is 0x0000 - 0x7FFF and every other block gets loaded one at a time. So what I did was I made 63 different files of 16K consisting of this Master block and each variable block. That made it easier to decipher what individual blocks do (although I'm far from figuring out what each block does...). You can't run it in a debugger like that, but you can load it up. What threw me off before I did this was I didn't realize I was in block 2 while I was assuming I was in block 1 and making relative calls back into other blocks.

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Re: FF7NES. Fire up the wiki guys!
« Reply #8 on: 2011-07-26 13:51:12 »
I'm a step ahead. Because the NES splits each bank into high and low sectiions, ($8000-$DFFF and $C000-$FFFF), I've broken the rom furthur into 128 16k blocks. Makes it easier

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: FF7NES. Fire up the wiki guys!
« Reply #9 on: 2011-07-26 15:20:43 »
I'm a step ahead. Because the NES splits each bank into high and low sectiions, ($8000-$DFFF and $C000-$FFFF), I've broken the rom furthur into 128 16k blocks. Makes it easier

I'd consider that step 1 so I'd say you're at least on schedule. :)

SymphoniC

  • *
  • Posts: 46
  • Mind hack.
    • View Profile
Re: FF7NES. Fire up the wiki guys!
« Reply #10 on: 2011-07-26 17:20:12 »
yea, IDA pro is a $500 program. If you have it, more power to you. I don't so I have to do it the old fashioned way.

If you have the ROM, what you need to do is remove the 16 byte iNES header, and then next 16384 bytes make up bank $00. That's the bank that initializes the game. Each 16K bank sits in NES memory from $8000-$FFFF. Careful, there is a memory section @ $400 (NES memory, not the ROM) that is used for relocatable code. so some parts of the ROM are relocated into RAM for execution.

Ahhh old fashioned is never the wrong way to do things. Anyways yeah when I get this HP/MP/Damage breaking mod finished up for all other regions of PSX, (which shouldn't take long at this rate, the ASM commands for all of the caps I've found so far have much in common with each other, and are relatively easy for me to find) then I'll get my hands dirty with the NES rom. From the Youtube videos I've seen... some of the music in that game is a bit too original and not quite all that good, too far from the original FF7. Anyways I found lurking on the net a pack of plugins for IDA to Disasm NES roms. So expect me to take a look at that soon enough.

Jenova's Witness

  • Right Wing Safety Squads
  • *
  • Posts: 471
  • I ♥ SCIENCE
    • View Profile
.
« Reply #11 on: 2011-07-26 20:12:21 »
.
« Last Edit: 2015-11-16 10:28:27 by Jenova's Witness »

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Re: FF7NES. Fire up the wiki guys!
« Reply #12 on: 2011-07-26 21:37:29 »
RHDN?

===EDIT===
Oh Romhacking.net

Yea. I announced it there
« Last Edit: 2011-07-26 21:40:55 by halkun »