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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Lindblum

Pages: [1] 2 3 4 5
It's hard to find a patch file for this. I found the message boards telling which bytes are changed, but who has the time to manually type in a patch?

Great job, guys! It looks gorgeous!

Personal Projects / Re: Final Fantasy VII NES Project
« on: March 12, 2013, 03:22:03 pm »
It feels good to see that after all this time there is still interest and activity in this project. I hope I get a chance to try the new patches soon, and make sure all my old bugs have been weeded out. I get too busy, though.

ROM Hacking Discussion / Re: Toilet Mario
« on: December 26, 2011, 10:30:15 pm »
Have you tried this tool yet?  It fixes the no-title-screen ROM. 
It probably wouldn't hurt to look for another SMB1 dump somewhere else.  I have played Wheelchair Mario before, so I know it can work. 

Personal Projects / Re: Final Fantasy VII NES Project
« on: December 08, 2011, 10:08:38 pm »
I tried the new patch, and the Shinra HQ changes look good, but found new bugs in the weapon store.  Please read the following before applying changes.

In WeaponUserName after the ADC opcode [69] I had typed the wrong number [01] (Which resulted in "Shenzhen Nanjing" being printed near the weapon stats), so I changed it to [49] to point to the characters' abbreviated names in a string array (as my translation had it), but this crashed the game.  I went to 0x3030A to see that instead of the abbreviated names being stored there (After "Equipped" in the string array) there were bytes I didn't expect or understand.  Have the pointer arrays been manipulated?  With that being said, if the abbreviated names can't be restored to the array, you can change my [49] to [02] to use their full names, which will work, but be partially overwritten by weapon stats in the store menus.
Also, all weapons had the wrong prices.  I opened the patched ROM to the NewWeaponPriceArray and saw a completely different array than what was supposed to be stored there ([00][11][22][33][44]...).  I have no explanation for this. 

Code: [Select]
Function WeaponUserName, 0x76390, [AD][CA][6F][C9][04][D0][07][AD][2B][6F][18][69][49][60][AD][2B][6F][18][69][09][60]
Array NewWeaponPriceArray, 0x2F480, [0A][14][1E][28][32][3C][46][50][5A][64][6E][78][82][8C][96][A0]

Personal Projects / Re: Final Fantasy VII NES Project
« on: December 05, 2011, 10:39:50 am »
I think it's Scarlet/Palmer (they're one character in this game).

Even though the original game had a purposeless glowing yellow panel on the floor, it just gives the room an awkward asymmetry here.

Personal Projects / Re: Final Fantasy VII NES Project
« on: December 05, 2011, 12:44:34 am »
at 0x072282 you put 20 B0 E3 EA EA EA EA EA, when it should be 20 B0 E3 EA EA EA 91 02
The STA is handled from within my function, so the 91 02 shouldn't have to exist outside of it. 

Great work on the maps and event modifications.  I feel almost sorry about how much work is still ahead of you though. 

Personal Projects / Re: Final Fantasy VII NES Project
« on: December 04, 2011, 01:04:40 pm »
I'm not completely sure you applied 4 of the changes.  Just double check these. 
Code: [Select]
FunctionCall SubtractInvt, 0x72115, [20][40][E4][EA]
Pointer NewInvtPtrArray, 0x72154, [A0][E3]
Pointer NewInvtPtrArray, 0x7215A, [A0][E3]
FunctionCall InvtLimit, 0x72227, [20][F0][E3][EA][EA][EA][EA][EA]

The part that's definitely my fault is where I typed a byte in Function SubtractInv wrong (0x7646B should be ED, not 13), which caused a branch opcode to jump the wrong direction, and into bad memory.  I'll correct it here and in my other post.
Code: [Select]
Function SubtractInv, 0x76450, [AD][CA][6F][C9][04][D0][18][A2][00][BD][74][60][4D][24][6F][29][7F][D0][03][9D]

Personal Projects / Re: Final Fantasy VII NES Project
« on: December 03, 2011, 11:07:07 pm »
I tried the changes for the weapon shop, but I noticed some problems.
You can make an IPS from your modified ROM and send it to me so I can compare it to my own and figure out if either of us made a mistake. 

ROM Hacking Discussion / Re: New TMNT editor?
« on: December 03, 2011, 11:00:40 pm »
SharpDevelop won't compile it for me, but I'm pretty handy with FCEUX debugging.  I should be able to trace enemy properties and write hacks for their AI if you need me to.
e.g. I already played around a little to find 0x17263 holds Bebop's charging speed, and 0x16C4D holds Rocksteady's charging speed.

Personal Projects / Re: Final Fantasy VII NES Project
« on: December 03, 2011, 04:25:14 pm »
Non-graphical menu modifications (Pre-requisite: any patch built on my 99% patch (which contains tummai's final sound patch changes))
Code: [Select]
Pointer TummaiFix, 0x1FF33, [E0][6F]
Pointer TummaiFix, 0x1FF40, [E0][6F]
Pointer NewPricePtrArray, 0x2802C, [60][F4]
FunctionCall WeaponStats, 0x714FC, [20][10][E3]
FunctionCall GoLeftCol, 0x71EC1, [20][F0][E2][EA][EA]
FunctionCall GoRightCol, 0x71ED2, [20][00][E3][EA][EA]
Pointer NewInvtPtrArray, 0x720B7, [A0][E3]
Pointer NewInvtPtrArray, 0x720BD, [A0][E3]
Pointer NewInvtPtrArray, 0x72106, [A0][E3]
Pointer NewInvtPtrArray, 0x7210C, [A0][E3]
FunctionCall SubtractInvt, 0x72115, [20][40][E4][EA]
Pointer NewInvtPtrArray, 0x72154, [A0][E3]
Pointer NewInvtPtrArray, 0x7215A, [A0][E3]
FunctionCall InvtLimit2, 0x72161, [20][10][E4][EA]
FunctionCall InvtLimit, 0x72227, [20][F0][E3][EA][EA][EA][EA][EA]
Pointer NewInvtPtrArray, 0x72275, [A0][E3]
Pointer NewInvtPtrArray, 0x7227B, [A0][E3]
FunctionCall SetInvt, 0x72282, [20][B0][E3][EA][EA][EA][EA][EA]
Pointer NewInvtPtrArray, 0x72307, [A0][E3]
Pointer NewInvtPtrArray, 0x7230D, [A0][E3]
Pointer NewStoreSelectArray, 0x72317, [30][E4]
Pointer NewStoreSelectArray, 0x7231D, [30][E4]
Pointer NewInvtPtrArray, 0x723D5, [A0][E3]
Pointer NewInvtPtrArray, 0x723DB, [A0][E3]
FunctionCall LoadWeaponLevel, 0x723E0, [20][D0][E3]
FunctionCall WeaponUserName, 0x724C7, [20][80][E3][EA][EA][EA]
ChocoboSongReference, 0x75C8, [0B]
Function GoLeftCol, 0x76300, [D0][03][A9][04][60][38][E9][01][60]
Function GoRightCol, 0x76310, [C9][04][D0][03][A9][00][60][18][69][01][60]
Function WeaponStats, 0x76320, [AD][CA][6F][C9][04][D0][63][C0][01][D0][28][A9][00][85][03][AD][24][6F][85][02]
Function WeaponUserName, 0x76390, [AD][CA][6F][C9][04][D0][07][AD][2B][6F][18][69][49][60][AD][2B][6F][18][69][09][60]
Array NewInvtPtrArray, 0x763B0, [DF][60][16][61][96][61][FF][61][3B][62]
Function LoadWeaponLevel, 0x763E0, [A8][AD][CA][6F][C9][04][D0][08][B1][02][F0][03][A9][01][60][60][B1][02][60]
Function InvtLimit, 0x76400, [AD][CA][6F][C9][04][D0][09][B1][02][18][6D][19][6F][C9][01][60][B1][02][18][6D]
Function InvtLimit2, 0x76420, [AD][CA][6F][C9][04][D0][05][B1][02][C9][01][60][B1][02][C9][63][60]
Array NewStoreSelectArray, 0x76440, [01][38][01][81][01][6A][01][3B][01][65]
Function SubtractInv, 0x76450, [AD][CA][6F][C9][04][D0][18][A2][00][BD][74][60][4D][24][6F][29][7F][D0][03][9D]
Array NewPricePtrArray, 0x2F470, [FF][F2][36][F3][B6][F3][1F][F4][70][F4]
Array NewWeaponPriceArray, 0x2F480, [0A][14][1E][28][32][3C][46][50][5A][64][6E][78][82][8C][96][A0]

Should we have a patch to the Chinese ROM that we all pass around, and every time someone wants to commit a set of changes to it he uploads it with a new version number?

Personal Projects / Re: Final Fantasy VII NES Project
« on: December 03, 2011, 02:33:31 pm »
I think I've finished work on weapon buying/selling, but I don't know how we coordinate all our alterations. 

Personal Projects / Re: Final Fantasy VII NES Project
« on: November 30, 2011, 03:56:28 pm »
Maybe all we need to do is modify the calls at 0x1FF32 and 0x1FF3F to reference $6FE0 instead of $6F1A, and use $6FE4-$6FFF as our free RAM for other things.  So far this fix is working for me.
To boil it down, write [E0][6F] to 0x1FF33 and 0x1FF40, and see what it does for you.  There's a chance that your savestates could load with minor audio glitches before the functions adapt to the new address. 

* If your patch is based on my 99% release there are a number of bugs left over from the graphics/assembly hack I put in to allow buying/selling weapons in the armor stores.  So far I have made a fix for buying, but selling is still dangerous. 
* I don't know if all our versions match, but in the store menu the sword icon and the word Gil have incorrect tiles. 
* The patch also contained a speed hack that lets you run doublespeed if you hold B, but it doesn't work if the screen is scrolling.  I hope I'll have time for this. 
* Occasionally if you encounter a number of enemies with long names the tiles for their names overflow onto the enemy graphics tiles in the PPU, and scrambles their appearance.  This can be prevented by not having a blank tile after every letter tile (to reduce PPU usage), but I got tired of trying to fix it years ago, even though it seemed it would be easy. 
* I plan to make weapon enhancements stronger, and enhancement eligibility more frequent. 
* I believe a few more people should be considered a spot on the title screen (ZhongTian and LittleChiba didn't actually work on the hack, I just thanked them for their FF7 transcripts which were vital to the translation).  Personally, I miss the old text gradient style.

Personal Projects / Re: Final Fantasy VII NES Project
« on: November 29, 2011, 04:17:39 am »
Thank you for addressing every note.  Without a formalized repository system It's getting tricky to keep track of every patch and version. 

I have new intel on the menu bug...
The index of the cursor's position in the main menu screen is at $6F1D.  00=Status, 01=item, 02=Magic, 03=Equip, 04=Party, 05=Save.  When you move the cursor up or down it modularly increments or decrements the index (Increment function starts at $A692, 0x726A2 in the ROM).  If you press A it computes the function address to load the next menu (This starts at $A69E, 0x726AE in the ROM). 
The cause of all the trouble is that $6F1D gets rewritten to 00 at times when it should not.  Even in the overworld where the problem seems to be absent, if you wait long enough $6F1D will eventually automatically reset to 00.  I think certain circumstances in the music will trigger it.
The cursor index corruption happens in a function that starts at $FF20, 0x1FF30 in the ROM, specifically the "STA $6F1A,X" when the X register == 3 (not that that's the only address that should be avoided).  I have found this function does not exist in the original ROM, but is created by Tummai's sound engine patch.  Tummai probably used this part of the memory without realizing that it had a purpose, and we never noticed it probably because no song that was encoded at the time was triggering it.  That should give us a start to figure out how to fix it.  So far I don't see any problem with using the RAM from $6FE0-$6FFF for our own purposes.  Maybe all we need to do is modify the calls at 0x1FF32 and 0x1FF3F to reference $6FE0 instead of $6F1A, and use $6FE4-$6FFF as our free RAM for other things.  So far this fix is working for me. 

I could make some changes to the overworld music, but I don't think I can make the chocobo theme into the full version, there's hardly any more space for songs. There is a lot of space right above where the songs are but, for some reason, the game won't load music from there.
Songs are encoded from 0x1B8DD onward, with your own inserted in the formerly blank space around 0x1D8C0. 
In case you're referring to the blank space from 0x16B30 to 0x17C10 you can't load that because that is outside of the 32kB page.  Just in case you don't know, the $8000-$FFFF space in memory is loaded from the ROM by saving the page number to $5000 (e.g. LDA #$02, STA $5000 loads page 02, i.e. 0x10010-0x1800F).  In the case of music (0x1B8DD and up) this is typically page 03 (0x18010-0x2000F).  It is theoretically possible to store songs on other pages if you modify the code to decide the page number based on the song number.  You can use breakpoints to detect load events. 

Tummai once said:
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?
* I think he meant $7FFF, and it does seem to be accessed from time to time, but I'm not sure what for.

Personal Projects / Re: Final Fantasy VII NES Project
« on: November 27, 2011, 04:03:02 am »
Since I've been unemployed for a while I was curious to see how the FF7NES improvement threads have been doing.  I am pleasantly surprised and impressed to see how much progress has been made, especially by Lugia2009.  I played through his newest patch and wrote a list of thoughts and issues. 

* Someone tried to overwrite Tifa:"Turn all the gears." to Tifa:"Hit all the buttons", but ended up corrupting her line (and Barret's next line) as "TurHit all the buttonsDamn man,get a hold of yourself!". 
* Waiter:"The boss is out,please come back in a few days!" is corrupted to "The boss is out,please come back in a few Hit the Button__", which seems to be corrupting the "Got Potion." in one of the first treasures at the first mako reactor to "e Button__". 
* If you talk to Elmyra as you sneak out of her house she says "Aeris is an unfortunate child.", which was an improvised translation.  I'm not sure what her actual line should be here, but the [40][4E] code for her image isn't scripted to appear. 
* When "A chocobo came!" we can remove the [40][31] for Cloud's image.  It just seems weird for him to say it. 
* Editing text and maintaining format is tricky, but that's partly my fault for the way I worked around the game's text engine. 
* The Main Theme (Overworld) is just the intro part on loop (played way too drawn out). If you're going to loop any part of the song I suggest jumping to its main melody. 
* The Chocobo Theme only loops a small part of the song (a la FF2j).  I can live with it, but I'd prefer a fuller version. 
* Speaking of chocobo music, my patch already had code to change the music when you mount/dismount, but since no Chocobo song was implemented at the time I used the victory fanfare as a placeholder.  In the ROM change 0x75C8 from 08 to 0B to fix this. 
* Nibelheim doesn't seem to have its well in the flashback. 
* I'm not sure what you did at the Golden shiny wire of hope, but I got past without the Battery.  I guess you removed that sidequest. 
* Event code seems to not kick in when I climb up to Shinra HQ, but you pretty much warned that on page 17. 
* For anyone who was brave enough to dig through my old archive of files related to this ROM, I had already converted some songs, and in another thread shared work with Tummai about song encoding.  I don't know whether those have been used or compared to the versions presently implemented.  I can check into that. 
* I'm trying to trace that wretched menu screen corruption (works fine in overworld).  Let me know if you already know something about it. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: May 22, 2011, 07:29:39 am »
I remember doing a lot of work to straighten out the dialog at the end, and the epilogue (with some Advent Children in there).  I don't know what version you're using if that's not in there.  I have no time to work on this anymore.

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: January 20, 2010, 05:21:00 pm »
That's really not a useful bug report.

Personal Projects / Re: Project: FF7 NES Upgrade
« 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.

Personal Projects / Re: Project: FF7 NES Upgrade
« 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.

Personal Projects / Re: Project: FF7 NES Upgrade
« 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.

Pages: [1] 2 3 4 5