Users browsing this thread: 1 Guest(s)
Assembly Programming

#11
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
I see you are using a headerless ROM. If you had a header, the A9 0A bytes would not be found at that address, but at C1/66FF (you need to add +200 because of the header).

Anyone can go and change those bytes, what I wanted you to notice was if you saw anything peculiar between using bytes 0A and 0B?
What is the difference between displaying the offset in Hi-ROM and in Standard (Linear)?

You also probably figured already that the 0A byte you're changing is in a hexadecimal base, and that it translates to 10 in decimal base. 0B in hexadecimal translates to 11 in decimal, and so on.

You need to be comfortable changing regular numbers (100, 200, 234) that are in a decimal base into numbers in a hexadecimal base. How do you change 100, 200 and 234 into their Hex counterparts?
Quote  

#12
Posts: 109
Threads: 11
Thanks Received: 2
Thanks Given: 4
Joined: Jun 2011
Reputation: 1
Status
None
Oops....I was confused as to what you wanted me to do....Sorry for being such noob. But yeah, I used SnesPurify to remove the header and know I know to add 200 bytes to where it is I'm look for, and as far as converting decimal to hex, it's something I have problems with whatsoever. So in this case, 100 would be 64, 200 would be C8 and 234 would be EA if I were to convert it to hex.

Here are my REAL findings (the differences, such as the offsets, bytes and so on)

Part one (HiRom and Standard)
https://www.ff6hacking.com/misc/imgshk.png

Part two (LoRom/Slow and LoRom/Fast)
https://www.ff6hacking.com/misc/imgshk.png

With the inevitability of school starting back up tomorrow, I'm having a hard time concentrating right now, so bear with me Tongue



-Edit by Zeemis.
Images are too big; thus, they need to be regular URL links.
  Find
Quote  

#13
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
(01-08-2012, 06:25 PM)the_randomizer Wrote: Guess I'll have to look for help on getting this taken care of elsewhere....

That's probably the best idea as this site focuses on hacking FF6 lol.
Your best bet is romhacking.net
  Find
Quote  

#14
Posts: 109
Threads: 11
Thanks Received: 2
Thanks Given: 4
Joined: Jun 2011
Reputation: 1
Status
None
(01-09-2012, 12:49 AM)Zeemis Wrote:
(01-08-2012, 06:25 PM)the_randomizer Wrote: Guess I'll have to look for help on getting this taken care of elsewhere....

That's probably the best idea as this site focuses on hacking FF6 lol.
Your best bet is romhacking.net

I know, that's something I'm in the process of correcting (meaning, FF6 will be my training grounds/battlefield when it comes to using hex).

Besides, the people over there seem a little, oh I don't know, unforgiving...?
  Find
Quote  

#15
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
You seem to be learning fast. With the magitek attacks, changing the byte 0A to 0F will expand the names to 15 characters, but if you look at it more closely, that menu can't hold more than 13 or 14 letters per attack, so that's a limitation.

Since you wanted to play so badly with names, here's the code associated with it.
Code:
C1/601A:   A907        LDA #$07            
C1/6031:   BF68F5E6    LDA $E6F568,X    
C1/65A3:   A907        LDA #$07
C1/65E8:   A907        LDA #$07            
C1/65F3:   BF67F5E6    LDA $E6F567,X    
C1/6B1D:   A907        LDA #$07
C1/6B2E:   BF67F5E6    LDA $E6F567,X
What is the 07 byte for? Play with each instance in the code and see what each one does. What is BF67F5E6 doing? what's in $E6F567? Is this code changing something in the menu, or in battle?
Is there a way to relocate whatever is stored in BF67F5E6? What if I replace BF67F5E6 with BFE6F9FD?
Why is there an instance with BF68F5E6 and two other with BF67F5E6?
Think about those things while you play. Have FUN!
Quote  

#16
Posts: 109
Threads: 11
Thanks Received: 2
Thanks Given: 4
Joined: Jun 2011
Reputation: 1
Status
None
Will do!
  Find
Quote  

#17
Posts: 109
Threads: 11
Thanks Received: 2
Thanks Given: 4
Joined: Jun 2011
Reputation: 1
Status
None
Weird.....So I'm messing with the bytes A907 at addresses C1/601A, C1/65A3, C1/65E8 and C1/6B1D as well as the corresponding offsets that use the bytes BF67F5E6, but to no avail. I'm not seeing any difference... I changed the A907 to "A9FF" to increase the no. of characters to support up to 255 just to see what would happen. Would I need to know which bytes correspond to which letters in the magitek names? Is there a reason I'm not seeing any difference, or are there other bytes you want me to change?
  Find
Quote  

#18
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
If you're checking for magitek names, that's not the code for it. The code I provided is for something else.
Quote  

#19
Posts: 109
Threads: 11
Thanks Received: 2
Thanks Given: 4
Joined: Jun 2011
Reputation: 1
Status
None
Oops. My bad. I'm pretty sure it's for magic (as I remember seeing those offsets before). Will report back in a little while with results Tongue

Edit 5:15PM - Yep, the offsets 0x0C1601A, 0x0C165A3, 0x0C165E8 and 0x0C16B1D (which all have the bytes A9 07) tell the game the number of characters displayed for spells in-battle only and not the in the menu.

The offsets 0x0C16031, 0x0C165F3 and 0x0C16B2E with the bytes BF67F5E6 tell the game WHERE and the A907 bytes are for, essentially, these bytes serve as pointers for the offsets, thus avoiding conflicting values. Should these bytes be altered (in this case, A907 changed to "A908" and the pointers are changed from "BF67F5E6" to "BFE6F9FD", the names of the spells in-battle will become garbled, showing disorganized weapon and armor icons, random capitalized and lower-case letters and other bizarre effects.

This is my report thus far, and I'm hoping I wasn't too far off with my explanation.

Yep. Changing those bytes in those offsets (A907) makes the spell names garbled/missing by throwing off the pointer offsets. But as far as the whole "LDA #$07, LDA $E6F568,X etc" values....I'll need to look more into that since I'm not completely familiar with them, but I believe it may have something to do with how/where the cursor is placed next to the spell name(s), and how they're arranged in columns.
  Find
Quote  

#20
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
(01-11-2012, 07:46 PM)the_randomizer Wrote: I'm pretty sure it's for magic
Yes :p

(01-11-2012, 07:46 PM)the_randomizer Wrote: Yep, the offsets 0x0C1601A, 0x0C165A3, 0x0C165E8 and 0x0C16B1D (which all have the bytes A9 07) tell the game the number of characters displayed for spells in-battle only and not the in the menu.
Yes, and no. There are one or two instances in where the code ensures that, when you're scrolling through the magic menu in battle, 7 letters are always deleted. Mismatching letters and code will result in garbage being displayed when scrolling around.

As you're discovering things, try to understand a little bit about opcodes for the SNES (65816 programming). LDA loads a number or the contents of an address to the accumulator. What is the accumulator? Who knows? XD
Don't get me wrong here, I'm not bragging that I'm the god of assembly or anything like that. I know just a little bit, but I want to motivate you to do the search on your own.

(01-11-2012, 07:46 PM)the_randomizer Wrote: The offsets 0x0C16031, 0x0C165F3 and 0x0C16B2E with the bytes BF67F5E6 tell the game WHERE and the A907 bytes are for, essentially, these bytes serve as pointers for the offsets, thus avoiding conflicting values. Should these bytes be altered (in this case, A907 changed to "A908" and the pointers are changed from "BF67F5E6" to "BFE6F9FD", the names of the spells in-battle will become garbled, showing disorganized weapon and armor icons, random capitalized and lower-case letters and other bizarre effects.

BF67F5E6 is the location for.......something.
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite