Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - FF Hacking FAQ/Running Q&A | |
Pages: 1 2 3 4 5 6 7Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Gavin

Fuzzy
Rhinoceruses don't play games. They fucking charge your ass.
Level: 43

Posts: 163/799
EXP: 551711
For next: 13335

Since: 03-15-04
From: IL, USA

Since last post: 13 hours
Last activity: 13 hours
Posted on 09-05-04 02:13 PM Link | Quote
ack, i'm having a little bit of trouble finding a routine in the game. i've located where the game writes to $2005 to scroll the screen as the character moves on the town map.. but i haven't yet found where it (or maybe i misunderstand how) the game checks to see whether it can advance on the next tile.

i haven't done too much searching for it yet, the later it gets time wise the slower my brain is working over here . I just figured i'd post and see if anyone had the data already, save me a tid bit of time. if not, i'm sure it really shouldn't take too much to find it, probably just a clear head

and if there is a difference between checking to advance on the town map and the world map, i'd prefer the world map. not to be picky though, because any help would be appreciated.
windwaker

Ball and Chain Trooper
WHY ALL THE MAYONNAISE HATE
Level: 61

Posts: 81/1797
EXP: 1860597
For next: 15999

Since: 03-15-04

Since last post: 4 days
Last activity: 6 days
Posted on 09-17-04 09:17 AM Link | Quote
I'm having some trouble editing Mario's jump height... isn't it $4014 in RAM? Or is that his running speed? I'm so confused .
drjayphd

Beamos
What's that spell?




pimp!
Level: 56

Posts: 640/1477
EXP: 1387410
For next: 10766

Since: 03-15-04
From: CT

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-17-04 09:49 AM Link | Quote
... uhm... ... Windwaker? wrong thread.

Gavin: Whatcha need that routine for? And let me also concur that DTE in battles would be BADASS.
Gavin

Fuzzy
Rhinoceruses don't play games. They fucking charge your ass.
Level: 43

Posts: 205/799
EXP: 551711
For next: 13335

Since: 03-15-04
From: IL, USA

Since last post: 13 hours
Last activity: 13 hours
Posted on 09-17-04 10:04 AM Link | Quote
Originally posted by drjayphd
... uhm... ... Windwaker? wrong thread.

Gavin: Whatcha need that routine for?


going to switch a few things with the airship, and i was attacking the locating of the routine from a rather awkward angle, i've now realized. I haven't searched for it quite yet as i've been very very busy, but i know where to start on that one.

and i thought i'd just throw a few values at you guys:

Main Menu Hand Pointer Data
===========================

3B636 - X position of Character4 Sprite
3B64A - Y position of Character4 Sprite

3B8AC - X position of ORB 1

3B7E9 - X position of Character1 Hand Cursor
3B7EA - Y position of Character1 Hand Cursor

3B7EB - X position of Character2 Hand Cursor
3B7EC - Y position of Character2 Hand Cursor

3B7ED - X position of Character3 Hand Cursor
3B7EE - Y position of Character3 Hand Cursor

3B7EF - X position of Character4 Hand Cursor
3B7F0 - Y position of Character4 Hand Cursor

3B7F1 - Y position of ITEM Hand Cursor
3B7F2 - Y position of MAGIC Hand Cursor
3B7F3 - Y position of WEAPON Hand Cursor
3B7F4 - Y position of STATUS Hand Cursor

$9C02 - routine that clears the screen (blanks the Name Table)

$B635 - character sprite display on main menu

$B8EF - character main menu window loading routine


INTRO SCREEN TEXT FADE JUNK
===========================
3A2E3 - Text 'default' color after flicker, returns to this color
3A2B8 - Text color that the above flicker math routine is applied to
3EB40 - Text color after flicker effect has been applied on text line
3EB48 - Text 'color number 02' after flicker effect


RANDOM WINDOW STUFF
===================
3E0AA - horizontal spacing between text and left boundary of window
3E0B1 - vertical spacing between text and top boundary of window

3E082 - horizontal window border subtraction
3E089 - vertical window border subtraction


BATTLE
======
- Where on the pattern table to load each tile for the window from:
3E0C8 - ($FA) left
3E0CD - ($FF) background
3E0D5 - ($FB) right
3E11F - ($F7) upper-left
3E124 - ($F8) top
3E12C - ($F9) upper-right
- ($FD) bottom


3F2F5 - main battle border X & Y position
3F2FA - main battle border Width (should not be below 3)
3F2FC - main battle border Height (should not be below 3)

3F301 - character battle border X position
3F306 - character battle border Y position
3F308 - character battle border Width
3F30A - character battle border Height

$F3C6 - draws the battle stat windows

3F3E0 - stat battle width for all 4 stat windows
3F30F - stat battle x position for all 4 stat windows
3F311 - stat battle window 4 y position
3F316 - stat battle window 3 y position
3F31B - stat battle window 2 y position
3F320 - stat battle window 1 y position

$C006 - routine to transfer window X,Y coordinates to text location
X,Y coordinates. Then calls $DCAB to set up text draw
locations. i beleive draw routine is $DCBF

$E0FC - draws top border of window
$E0A5 - draws sides border of window
$E0D7 - draws bottom border of window

$F3BF - stores current A and X values into the VRAM write address

$F314 - loads the attribute table for the battle screen

$F33D - loads which palette set to use for BG

$F347 - loads which palette set to use for Enemies

$F3F1 - turn off the PPU

3F39D - how many tiles the first section of the BG should draw
3F3AA - how many tiles the second section of the BG should draw

$F385 - draws the BG environment tiles

3F35D - row 1 BG environment tile set (00,04,08,0C)
3F364 - row 2 BG environment tile set (00,04,08,0C)
3F36B - row 3 BG environment tile set (00,04,08,0C)
3F372 - row 4 BG environment tile set (00,04,08,0C)

3F9F5 - Enemy window X coordinate
3F9F6 - Enemy window Y coordinate
3F9F7 - Enemy window Width
3F9F8 - Enemy window Height

3F9FA - current Attacker window X coordinate
3F9FB - current Attacker window Y coordinate
3F9FC - current Attacker window Width
3F9FD - current Attacker window Height
3F9FF - current Attacker text X coordinate
3FA00 - current Attacker text Y coordinate

3FA02 - hit number window X coordinate
3FA03 - hit number window Y coordinate
3FA04 - hit number window Width
3FA05 - hit number window Height
3FA07 - hit number text X coordinate
3FA08 - hit number text Y coordinate

3FA0A - current Attackee window X coordinate
3FA0B - current Attackee window Y coordinate
3FA0C - current Attackee window Width
3FA0D - current Attackee window Height
3FA0F - current Attackee text X coordinate
3FA10 - current Attackee text Y coordinate

3FA12 - Attack Status window X coordinate
3FA13 - Attack Status window Y coordinate
3FA14 - Attack Status window Width
3FA15 - Attack Status window Height
3FA17 - Attack Status text X coordinate
3FA18 - Attack Status text Y coordinate

3FA1A - Battle Info window X coordinate
3FA1B - Battle Info window Y coordinate
3FA1C - Battle Info window Width
3FA1D - Battle Info window Height
3FA1F - Battle Info text X coordinate
3FA20 - Battle Info text Y coordinate

3FA22 - Magic window X coordinate
3FA23 - Magic window Y coordinate
3FA24 - Magic window Width
3FA25 - Magic window Height

3FA27 - Drink window X coordinate
3FA28 - Drink window Y coordinate
3FA29 - Drink window Width
3FA2A - Drink window Height

3FA2C - Battle options window X coordinate
3FA2D - Battle options window Y coordinate
3FA2E - Battle options window Width
3FA2F - Battle options window Height

3FA31 - "FIGHT" battle X coordinate
3FA32 - "FIGHT" battle Y coordinate
3FA33 - Text pointer byte (Low)
3FA34 - Text pointer byte (High)

3FA36 - "MAGIC" battle X coordinate
3FA37 - "MAGIC" battle Y coordinate
3FA38 - Text pointer byte (Low)
3FA39 - Text pointer byte (High)

3FA3B - "DRINK" battle X coordinate
3FA3C - "DRINK" battle Y coordinate
3FA3D - Text pointer byte (Low)
3FA3E - Text pointer byte (High)

3FA40 - "ITEM" battle X coordinate
3FA41 - "ITEM" battle Y coordinate
3FA42 - Text pointer byte (Low)
3FA43 - Text pointer byte (High)

3FA45 - "RUN" battle X coordinate
3FA46 - "RUN" battle Y coordinate
3FA47 - Text pointer byte (Low)
3FA48 - Text pointer byte (High)

3FA49 - Pattern table location for "FIGHT" tiles (through 3FA4C)
3FA4E - Pattern table location for "MAGIC" tiles (through 3FA51)
3FA53 - Pattern table location for "DRINK" tiles (through 3FA56)
3FA58 - Pattern table location for "ITEM" tiles (through 3FA5B)
3FA5D - Pattern table location for "RUN" tiles (through 3FA5F)

3FA61 - value for which string to display in Enemy name slot 1
3FA63 - value for which string to display in Enemy name slot 2
3FA65 - value for which string to display in Enemy name slot 3
3FA67 - value for which string to display in Enemy name slot 4

$F59B - Main battle window SRAM setup routine

$6AA1 - (RAM) holds the value of the battle menu width


INTRO SCREEN
============
$9B2D - routine that aquires the X,Y values for the cursor
on the Select Button Screen

$A219 - sets up the PPU for displaying stuff, global

$C06C - jumps to flashy text screen stuff

$A0EE - flashy screen routine
Deleted User
Banned
Level: 8

Posts: 1/12
EXP: 1736
For next: 451

Since: 01-23-01

Since last post: 13089 days
Last activity: 21 days
Posted on 09-27-04 12:34 PM Link | Quote
Hi guys, this thread is prety cool. I had no idea so many people were interested in FF1 hacks. I was encouraged enough that I found this little hack (didn't see it documented anywhere):

At 3f6e4 we have "ee 9e 6a ee 9f 6a ee 9f 6a".
i.e., "inc $6a9e, inc $6a9f, inc $ 6a9f".
What this piece of code is doing is taking the upper left corner of the enemy window in the battle screen, and then incrementing the vertical coordinate once and the horizontal coordinate twice. This is done in preparation for printing the enemy names.

So if you change 3f6e7 to "ea ea ea" then it will shift the monster names to the left one and get rid of an unused space. I verified that this works even for multiple monster names.

There are three other occurances of "ee 9e 6a ee 9f 6a" above 30000 or so, probably they probably have a similar meaning for different windows.



(edited by Goongyae on 09-27-04 03:37 AM)
Gavin

Fuzzy
Rhinoceruses don't play games. They fucking charge your ass.
Level: 43

Posts: 217/799
EXP: 551711
For next: 13335

Since: 03-15-04
From: IL, USA

Since last post: 13 hours
Last activity: 13 hours
Posted on 09-28-04 02:43 PM Link | Quote
Originally posted by Goongyae
Hi guys, this thread is prety cool. I had no idea so many people were interested in FF1 hacks. I was encouraged enough that I found this little hack (didn't see it documented anywhere):

At 3f6e4 we have "ee 9e 6a ee 9f 6a ee 9f 6a".
i.e., "inc $6a9e, inc $6a9f, inc $ 6a9f".
What this piece of code is doing is taking the upper left corner of the enemy window in the battle screen, and then incrementing the vertical coordinate once and the horizontal coordinate twice. This is done in preparation for printing the enemy names.

So if you change 3f6e7 to "ea ea ea" then it will shift the monster names to the left one and get rid of an unused space. I verified that this works even for multiple monster names.

There are three other occurances of "ee 9e 6a ee 9f 6a" above 30000 or so, probably they probably have a similar meaning for different windows.



cool cool, somewhat along those lines, i have the offsets for the Main Window text's relative locations. Since about half of the battle Windows aren't drawn using the main Common Window drawing routine . The bottom set of windows that display the Battle Options, Enemy Names, Battle Status windows, et cetera are all drawn kinda funky; read from the format and then written into the SRAM (which serves just like an extension of normal RAM during the game play) and then just does a small loop writing to the VRAM at $2007.

that routine was, i think, located at $F59B as i posted a little earlier. I'm terribly tired right now, so i can't verify that, and i honestly can't remember if that was the singular routine for all of the battle windows that were written into the SRAM or not. I hadn't checked it things like the Magic Menu yet either, so i'll have to do that sometime when i get the chance.

my guess as to why it chose this rather annoying (or annoying to hack, anyway) method was for the vertical screen "whipe" effects, in which the battle menis are drawn and erased slowly.. but i could be wrong. i'm still working with it, although i have many other areas of the game to focus on as well, so i might not find out right away.

3E0AA - horizontal spacing between text and left boundary of window
3E0B1 - vertical spacing between text and top boundary of window

3E082 - horizontal window border subtraction
3E089 - vertical window border subtraction



and yah, FF1 hacking is my passion
Deleted User
Banned
Level: 8

Posts: 1/12
EXP: 1736
For next: 451

Since: 01-23-01

Since last post: 13089 days
Last activity: 21 days
Posted on 09-30-04 10:19 PM Link | Quote
Does anyone know where and/or how the game calculates whether the battle gives you "chance to strike first", or "monsters strike first", or neither? I'd like to edit it so that your characters' Luck scores influence it.
Deleted User
Banned
Level: 8

Posts: 1/12
EXP: 1736
For next: 451

Since: 01-23-01

Since last post: 13089 days
Last activity: 21 days
Posted on 10-15-04 10:55 PM Link | Quote
Does anyone have a mirror of the docs that were on vgsites? The link seems to be down.
Keikonium
Banned
Level: NAN

Posts: 793/-2459
EXP: NAN
For next: 0

Since: 04-02-04

Since last post: 63 days
Last activity: 9 hours
Posted on 11-07-04 09:51 PM Link | Quote
I am trying to change it so that a default party and names are selected. I have accomplished the party and so you can't change names part but Ii can't set the names.

So I have 4 default characters with no names. Everything I read tells me to use a DTE table, and I have no clue what that is, so I just edit the names thru hex.

I am making my hack like FFX-2, so I will have to start learning some 6502, but if someone could tell me how to delete one character so I only have 3 that would be great.

So my questions are:

1. What is a DTE table?
2. How do I make default names (BTW, I have it set so its 5 letters not 4)
3. How can I get rid of one character?

Any help would be great, thanks
Dish

Spiny
Level: 38

Posts: 173/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-07-04 10:45 PM Link | Quote
1) DTE is short for Dual Tile Encoding... a common method of simple compression. Typically... 1 byte represents one character, but many games use DTE methods to have 1 byte represent 2 characters (or even more, in the case of MTE). FF1 can use DTE to compress most of its text (basically everything except whatever is displayed in battle). There are copies of both the regular table file, as well as a table file which contains DTE information floating around for FF1 (some are included in the FFHackster download) However, since character names are displayed in battle, you should NOT use DTE when making default names (if you do they will be distorted in battle). Any docs that said you should must have been referring to class names (ie: "Fighter", "Black Belt", etc) which are never displayed in battle.

2) If I'm not mistaken... the same doc that explains how to expand names to 5 characters also explains how to add default names (I forget the link to those docs... are they listed in the first post in this thread?)

3) This would be a lot more work than you may be thinking. Most of the game revolved around there being a fixed number (4) of characters in the party. If you want to cut it down to 3 you'll have to do a lot of hunting and change a lot of stuff. Shop routines, clinics, all the menu screens, a bunch of stuff in battle, treasure chest opening routines.... everywhere that the game does something which interacts with the individual characters in the party would potentially need changing. Needless to say this would be a fairly large hack to complete.
drjayphd

Beamos
What's that spell?




pimp!
Level: 56

Posts: 736/1477
EXP: 1387410
For next: 10766

Since: 03-15-04
From: CT

Since last post: 2 hours
Last activity: 2 hours
Posted on 11-08-04 07:29 AM Link | Quote
Does anyone know how you could go about enabling DTE in battle? I mean, what exactly DOES FF1 do so those values for bytes can't be used in battle?

EDIT: Also, the people demand insight on how to get the music engine to detect which battle's being fought. You know, for boss music purposes. (I'm thinking of it in if-then statements, which I'm fairly certain isn't in NES ASM.)


(edited by drjayphd on 11-07-04 10:32 PM)
Lenophis

Super Koopa
Level: 44

Posts: 222/830
EXP: 584360
For next: 26925

Since: 03-15-04
From: Duluth, MN

Since last post: 4 hours
Last activity: 3 hours
Posted on 11-08-04 02:35 PM Link | Quote
Originally posted by drjayphd
Does anyone know how you could go about enabling DTE in battle? I mean, what exactly DOES FF1 do so those values for bytes can't be used in battle?

Well, I'll take a guess. I believe that the DTE is still programmed for the Japanese language. So it's trying to stack the characters vertically. That.....obviously doesn't work in the English language. To fix, you'd need to find the battle routine (that'd be my guess) and change what is needed.

PS. You may have some luck finding the battle routine in the Prototype translation of FF2. I say that because DTE was enabled in battles... Find that, then you may get a head start. But, you might have better luck ripping apart FF1. *shrug*


EDIT: Also, the people demand insight on how to get the music engine to detect which battle's being fought. You know, for boss music purposes. (I'm thinking of it in if-then statements, which I'm fairly certain isn't in NES ASM.)

Since the battle routine only has one song to refer to, there is no special code that would check for a different song. It simply loads the battle music. Although, I have no idea how music is handled, hell, I have no idea on most of what I'm to in this response. =\

*hides*
Dish

Spiny
Level: 38

Posts: 179/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-08-04 10:05 PM Link | Quote
Originally posted by drjayphd
Does anyone know how you could go about enabling DTE in battle? I mean, what exactly DOES FF1 do so those values for bytes can't be used in battle?


It doesn't prohibit DTE in battle... it just doesn't enable DTE in battle. For general, run-of-the-mill text output in FF1, there is no conversion. So when the game reads $99 for the letter 'P'... it doesn't think "okay, this value is $99, so output the letter 'P'". Instead, it just outputs the raw value $99 as the tile number(without any checking [except for null termination] or conversion). It just so happens that the 8x8 tile which represents the character 'P' is stored at tile ID $99

For DTE to work... the game has to check each value to see if it's a DTE code character... and it if is, it has to load 2 extra bytes and output them. This not only means that the routine to load the text takes a bit longer (which isn't really that big of a deal)... but also that the routine takes up more space (which is the big problem). AFAIK, the game has 2 (or more) text loading routines... one which is 'minimized' (used in battle... DTE not supported), and one which is used for menus (and possibly dialogue and stuff). Both routines [presumably] appear in different banks... so either the game is unable to swap in the needed bank to run the DTE routine... or they just didn't think to do so.

Anyway... you probably could work around getting DTE supported in battle. If you find out where both routines are and simply cut off the battle's routine and have it hop to the other routine (of course this will entail bank-hopping, which means you'll probably have to free up some code in the 'master' bank which is always a pain). There might be complications, too. The menu screen doesn't draw the text directly to the screen... it writes it to an area in RAM first, and is later drawn to the screen (maybe the battle routine won't work that way for some reason?).


EDIT: Also, the people demand insight on how to get the music engine to detect which battle's being fought. You know, for boss music purposes. (I'm thinking of it in if-then statements, which I'm fairly certain isn't in NES ASM.)


'If' statments (conditionals), must be in every programming language... ever. There's simply no [practical] way around them (and yes... 6502 has conditionals... they're sometimes referred to as branches)

So yeah.. you could figure out when the game is loading the battle and have it check for certain battle ID numbers to load a different song when you want. Could be a relatively simple hack. The hard part would be squeezing in a new song.
The Great Guy

Octoballoon
Level: 22

Posts: 125/170
EXP: 53084
For next: 5266

Since: 04-08-04

Since last post: 130 days
Last activity: 73 days
Posted on 12-12-04 02:57 AM Link | Quote
Ummm... I need to do some of the things mentioned in those documents but all the links are dead. Could someone post working links for them? Thank you.

EDIT: I know some people are going to say "Use google" but I've been using google for the last 1 1/2 hours with no good results. If there's no more web page, then could someone put up a file dl or something please?

EDIT2: Ooops... I just realised someone already posted that here. Sorry guys.

EDIT3: So many Edits! anyway I thought it might be worth mentioning that just now I found a dl link to a few of the files linked to on the first page. FFbytes is easy to find but I found some of the other ones at a REALLY old topic at Elric's board which came up when I searched on google for the 20th time. Anyway This is the url for it(forgot how to do hyperlink w/out the button ): http://eds.castledragmire.com/board/thread.php?id=3651&page=0#13749
scroll down a bit until there's a linking to a downoload labeled FFbytes, even though it isn't the FFbytes we all know.(LONG edit! )


(edited by The Great Guy on 12-11-04 07:22 PM)
(edited by The Great Guy on 12-11-04 07:26 PM)
(edited by The Great Guy on 12-12-04 08:15 AM)
(edited by The Great Guy on 12-12-04 08:15 AM)
drjayphd

Beamos
What's that spell?




pimp!
Level: 56

Posts: 960/1477
EXP: 1387410
For next: 10766

Since: 03-15-04
From: CT

Since last post: 2 hours
Last activity: 2 hours
Posted on 04-19-05 11:35 AM Link | Quote
I'm too lazy to re-edit this. Gentlemen... BEHOLD!

Bonus Bytes, rev .1.

------------------------------------------------------------
Default Party:
------------------------------------------------------------
Offsets:

Char. 1: $3A0BE
Char. 2: $3A0CE
Char. 3: $3A0DE
Char. 4: $3A0EE

Values:

Standard:Upgrade (*):
00 = Fighter06 = Knight
01 = Thief07 = Ninja
02 = Black Belt08 = Master
03 = Red Mage09 = Red Wizard
04 = White Mage0A = White Wizard
05 = Black Mage0B = Black Wizard

*: Use these at your own risk; they're glitched after class change.

Names:

Char. 1: $3A0C0
Char. 2: $3A0D0
Char. 3: $3A0E0
Char. 4: $3A0F0

There are four bytes to change there, all set by default at $FF, which is a
space. You can change these to whatever... grab a table if need be.
Remember, though, this will only give suggested names; you still have to
enter the names at selection. There is a way to make those names stick,
though. It'll be in here in the next revision.

------------------------------------------------------------
Background Colors:
------------------------------------------------------------
This refers to menus, intro text, etc. The main tipoff for these is that the
palette is $0F-$00-$01-$30, which would be, in that order, black, white,
blue, gray. The blue, as you probably know, is the background, so change all
$01 values for the background.

Menu Colors: $3EB3A (thanks, Square! Just one value!)
"Equip/Trade/Drop" Menu Color: $3AD8E (highlight for selected option)
"Weapon/Armor" Menu Title Highlight: $3AD92
Intro BG Color: $3A12C (This will not change the text fade-in color.)

Towns:

Ooh, FUN. Each map has a pair of palettes, one for when you're in a room and
one for when you're outside. Everything in this series is a standard map, so
it goes towns, castles, dungeons. These are the palettes themselves, not
just the locations of the $01 bytes.

Coneria:Indoors:$201C
Outdoors:$203C
Pravoka:Indoors:$204C
Outdoors:$206C
Elfland:Indoors:$207C
Outdoors:$209C
Melmond:Indoors:$20AC
Outdoors:$20CC
Crescent Lake:Indoors:$20DC
Outdoors:$20FC
Gaia:Indoors:$210C
Outdoors:$212C
Onrac:Indoors:$213C
Outdoors:$215C
Lefein:Indoors:$216C
Outdoors:$218C
Coneria Castle (1F):Indoors:$219C
Outdoors:$21BC
Coneria Castle (2F):Indoors:$21CC
Outdoors:$21EC
Elfland Castle:Indoors:$21FC
Outdoors:$22BC
Northwest Castle:Indoors:
Outdoors:
...and so on.
------------------------------------------------------------
Speeds
------------------------------------------------------------
Walking: $3D088
Ship/Airship Multipliers: $3D08D, $3D096

Warning: Don't set higher than original airship speed, or you'll get palette
glitches. If you use different speeds, the game may crash in battle. Their
present values are $4A. Changing them to, say, $EA or $0A will speed up or
lower their speeds.

Canoe:

Intro Fade-In: $3A2C8

Currently set at $0F. Setting it lower makes the fade-in go faster. Raising
it to, say, $FF builds in a nice bathroom break for your players, because it
goes REALLY slow.

------------------------------------------------------------
Black Belt/Master Attributes
------------------------------------------------------------
As you may have heard, the Black Belt and Master have their stats determined
differently. Unarmed, their Damage will be double their current level.
Without armor, their Absorb will be equal to their level. They also get
double the hits of other classes. You can reassign them to other classes, as
well.

At 2D97A, the code reads "C9 02 F0 05 C9 08 F0".
At 32DCF, the code reads "C9 02 F0 04 C9 08 D0".
At 3EED2, the code reads "C9 02 F0 04 C9 08 D0".
At 3EEF0, the code reads "C9 02 F0 04 C9 08 D0".

The $02 and $08 bytes select the Black Belt and Master classes, respectively.
Change all of them using the values listed under "Default Party" and you can
reassign them to those classes. If you select a value that isn't in the list
(ie, anything higher than $0B), no one will get the bonuses. In other words,
you can give none, 1, or 2 classes the bonuses. In addition, you can also
reassign them to a range of classes.

Change all the $F0 bytes to $90.
Change all the $D0 bytes to $B0.

Now, as long as the first class's value is less than the second class, all
classes between the two numbers, including the first number, but not the
second, get the bonuses. For instance, if you change the $F0 and $D0 bytes,
but not the classes, all classes between Black Belt and Master get the
bonuses (Black Belt, Red/White/Black Mages, Knight, Ninja, Master). The
doubled hits may not carry over.

------------------------------------------------------------
Hold Magic Switches
------------------------------------------------------------
By default, the Fighter and Thief get no MP until class change. They can
gain MP if they start off as Knights or Ninjas, though. Here's how to tweak
that.

$2DC7D reads "F0 40 C9 01 F0 3C".

Change the $01 to whatever class you want to be without MP. So if you don't
want the Red Mage to have magic, you'd change it to 03.

Just like the Black Belt stats, you can tweak this, to include a range.
Here's how. Change the second $F0 byte to read $30:

$2DC7D should now read "F0 40 C9 01 30 3C".

However, if you're using FFHackster, this WILL be overwritten. Until someone
changes that...

------------------------------------------------------------
Text Locations
------------------------------------------------------------
Intro: $37F30
Bridge: $36843 "And so...our world."
Item Descriptions: $385BD
Spell Descriptions: $38A17
Ending: $368F3 "The Time-Loop...continue to shine..."
Character Name Menu: $3A021
Shop Text: $38095



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OK, so here's what I've found:

On the Continue/New Game screen:

The C 1987 SQUARE & C 1990 NINTEDO offset is: 384B8. The numbers are:
00 - Waits for a button press to display next window of text
05 - Line feed
01 - Blank text window
80 - 0
81 - 1
82 - 2
83 - 3
84 - 4
85 - 5
86 - 6
87 - 7
88 - 8
89 - 9
FF - SPACE

NINTENDO in Bridge scene is at 2FF72.

C1, E7-EA

2FEB9

The Continue/New Game/Respond Rate text is at 3A263.

On the name input screen:
The Name Input alphabet is at 3A021.
The Select Name text is at 3A0B1.

Shop screens:
Shop names are at 3805C.
The word OK when you buy something is at 380DE.
The word RESET at the Inn is at 38211, and POWER is at 38225.

Specific Item Descriptions:
TENT/CABIN/HOUSE HP/SAVE Message - 387B6

Status Screen Text starts at 388C2.

EQUIP/TRADE/DROP is at 38B30.
ARMOR for Equip screen is at 38B57.

OK, that's normal stuff. Now for fun stuff...

Main Menu commands:
ITEM - 38956
MAGIC - 3859C
WEAPON - 385A3*
ARMOR - 385AA

*If you want to change this to use standard text, don't use a word that is
more than 5 letters long. 385A8 and 385A9 MUST be 01 and FF, respectivly, or
it will mess up the menu. It will also cause the word STATUS to vanish. If
you ever want to restore it, the default values are CF D0 D1 D2 D3 01 FF.

Unknown Use Text
WARRIOR @ 38281
EQUIP/TRADE/DROP @ 38C4D, 38CDF
ARMOR @ 38C74, 38C8A, 38CFF
STONE @ 38AAE, 38BA0
WEAPON @ 38CD5

I'm thinking that at least one of those STONEs is for when a character is petrified, but I haven't been able to test that yet....












Open the FF1 ROM in your hex editor and go to the addresses listed below.
In each location you'll find an 01 (representing blue). Simply change all of
these 01s to whatever color value, in your case you'll use 0F for black.

$3a12c
$3a2e3
$3ad8a
$3ad8e
$3ad92
$3eb3a

3AD8E = menu color for "Equip" "Trade" "Drop"
3AD92 = color for "Weapon" "Armor"

The color for the text is immidiatly after (3AD8F, 3AD93).

http://www.zophar.net/trans/docs/paletdat.html


Default Party Info

Char. 1: 3A0BE
Char. 2: 3A0CE
Char. 3: 3A0DE
Char. 4: 3A0EE

Classes
0 - Fighter
1 - Thief
2 - Black Belt
3 - Red Mage
4 - White Mage
5 - Black Mage
6 - Knight
7 - Ninja
8 - Master
9 - Red Wizard
A - White Wizard
B - Black Wizard


The default names are at the following offsets:

Char. 1: $3A0C0
Char. 2: $3A0D0
Char. 3: $3A0E0
Char. 4: $3A0F0

The default names all have $FF values for the 4 bytes in the original ROM,
which of course, represents empty text.

The C 1987 SQUARE & C 1990 NINTEDO offset is: 384B8. The numbers are:
80 - 0
81 - 1
82 - 2
83 - 3
84 - 4
85 - 5
86 - 6
87 - 7
88 - 8
89 - 9
FF - SPACE

The Name Input alphabet is at 3A021.
The Select Name text is at 3A0B1.
The Continue/New Game/Respond Rate text is at 3A263.
Shop names are at 3805C.
The word OK when you buy something is at 380DE.
The word RESET at the Inn is at 38211, and POWER is at 38225.

Main Menu commands:
ITEM - 38956
MAGIC - 3859C
WEAPON - 385A3*
ARMOR - 385AA

*If you want to change this to use standard text, don't use a word that is
more than 5 letters long. 385A8 and 385A9 MUST be 01 and FF, respectivly, or
it will mess up the menu. It will also cause the word STATUS to vanish. If
you ever want to restore it, the default values are CF D0 D1 D2 D3 01 FF.

Specific Item Descriptions:
CROWN - 3860A
CRYSTAL - 3861C
KEY - 38649
SLAB - 3867B
ROD - 386B1
AIRSHIP - 386D0
MADE IN LEFEIN OOHH - 3870F
CUBE - 3875D
OXYALE - 3878E
TENT/CABIN/HOUSE HP/SAVE Message - 387B6

Status Screen Text starts at 388C2.

EQUIP/TRADE/DROP is at 38B30.
ARMOR for Equip screen is at 38B57.

Unknown Use Text
EQUIP/TRADE/DROP @ 38C4D, 38CDF
ARMOR @ 38C74, 38C8A, 38CFF
STONE @ 38AAE, 38BA0
WEAPON @ 38CD5




Bypass N A S I R Checksum by Vagla

Do either one of these:

3CFEF- A900
-or-
3CFEF- 2900

There's really no difference. Both feed it 00, which is what the hack requires (one does it by loading the current value as 00, and the other ANDing the current value to 00).

I really wonder why it was so hard for anyone to figure this out, since it's been an issue for years. I simply dumped the RAM, found out where N A S I R was in it, and watched for reads to that data in FCEUd when entering a town. It brought me to a line of code very near the code at 3CFEF, and a few opcodes down was a BEQ which was the source of all of the trouble. It branches on 00, which is what it gets from its checksum if it's true, so I just changed the EOR #$AE (checks to make sure the values sum to $AE) to LDA #$00/AND #$00. Thus, it always branches, simple as that.




More Bytes! by Dark Steak
Offset 0x3A12C is for the starting screen background.

Offset 0x3A2E3 is for the fade-in text on the starting screen. While the blue doesn't look all that bad (for the fade-in) against most colours, the effect just isn't quite the same. This one staying the same as the others isn't as critical.

Offset 0x3EB3A is the "general background." Nearly all of the normal sub-screen, the item screen, magic screen, most of the weapon and armor screens, status screen, party select windows, and party lineup screen backgrounds (all of them) are determined by this byte. What's fun is how this colour over-rides the starting screen background in block chunks behind the fading-in text. Those two must be the same, or it looks...off.

Offset 0x3AD92 is on the weapon and armor screens of the main sub-screen. This controls a block of the background in the upper window where the hand-pointer starts, and stays behind most of what word the hand is pointing at. Must be the same as the rest of the sub-screen background or it looks just plain icky.

Offset 0x3AD8E is also on the weapon and armor screens. This goes as the main part of the background on the box in the upper-lefthand corner, where is says either weapon or armor. This also looks amazingly bad if it's not the same as the rest of the sub-screen.


The Black Belt/Master's fist's palette determiner is at 0x32DE4.

The palette for the lit Orbs is from 0x3AD88 to 0x3AD8B.

Name select screen's red window's background is at 0x39C7E.

Shop Title window's palette is from 0x3EB84 to 0x3EB87.

Current money in shop window's palette is from 0x3EB88 to 3EB8B.




$32ACB-$32AD0: Code changes affecting printing of blank space and status string in battle character windows; supports 5 character player names.

CB - 0A
CC - 20
CD - FC
CE - AA
CF - A0
D0 - 0B


$32B17: Code change affecting printing of text in battle character windows and possibly others; supports 5 character player names.

17 - 05


$39C3F-$39C54: ???Code change related to 5-character names?

3F - A0
40 - 00
41 - BD
42 - 02
43 - 61
44 - 99
45 - 5B
46 - 00
47 - E8
48 - C8
49 - C0
4A - 05
4B - D0
4C - F4
4D - EA
4E - EA
4F - EA
50 - EA
51 - EA
52 - EA
53 - A9
54 - 5B
55 - 85


$39CEF-$39D06: Code change ensures all 5 characters of name are copied properly from party creation dialogue to game.

CEF - A9
CF0 - 05
CF1 - 48
CF2 - BD
CF3 - 01
CF4 - 03
CF5 - 99
CF6 - 02
CF7 - 61
CF8 - E8
CF9 - C8
CFA - 68
CFB - 38
CFC - E9
CFD - 01
CFE - D0
CFF - F1
D00 - EA
D01 - EA
D02 - EA
D03 - EA
D04 - EA
D05 - EA
D06 - EA


$39D70-$39D8A: Makes default names stick.

70 - 64
71 - 85
72 - 65
73 - A9
74 - 05
75 - 85
76 - 62
77 - 20
78 - 02
79 - 9C
7A - 20
7B - B0
7C - 9F
7D - 20
7E - 7D
7F - 9F
80 - EA
81 - EA
82 - EA
83 - EA
84 - EA
85 - EA
86 - EA
87 - EA
88 - EA
89 - EA
8A - EA


$39DEC: Code change - use 0xCC (a dash character) when you erase characters from your name.

EC - CC


$39E22: Allows five-letter names in naming window.

22 - 05


$39E2E: Code change; enter 5 characters into the right place in memory when choosing name

2E - 01


$39EA5-$39EC2: Code changes affect positioning of names in party select dialogue
NOTE: Older copies of this document tell you to change they byte at $39EBF to A5,
which is wrong, and will cause the window to mess up after you finalize the
name of the first character. They proper value to change the byte to is 85.
Thanks go out to Dark Steak for discovering what the problem was, and the fix.

A5 - A1
A6 - 9E
A7 - A5
A8 - 1F
A9 - 18
AA - 69
AB - 10
AC - 85
AD - 1F
AE - 60
AF - EA
B0 - EA
B1 - A6
B2 - 1F
B3 - BD
B4 - 0C
B5 - 03
B6 - 85
B7 - 38
B8 - BD
B9 - 0D
BA - 03
BB - 85
BC - 39
BD - A9
BE - 0F
BF - 85
C0 - 3C
C1 - A9
C2 - 12

$39F07-$39F1A: ??? Code change related to display of names in party select dialogue?

07 - A0
08 - 00
09 - BD
0A - 01
0B - 03
0C - 99
0D - 5B
0E - 00
0F - E8
10 - C8
11 - C0
12 - 05
13 - D0
14 - F4
15 - CA
16 - CA
17 - CA
18 - CA
19 - CA
1A - EA


$39F26: Code change displays names in party select dialgoue by reading them from correct place in memory

26 - 5B


$39F8F-$39FA8: Code change copies all 5 characters for display while editing name

8F - A0
90 - 00
91 - BD
92 - 01
93 - 03
94 - 99
95 - 5B
96 - 00
97 - E8
98 - C8
99 - C0
9A - 05
9B - D0
9C - F4
9D - EA
9E - EA
9F - EA
A0 - EA
A1 - EA
A2 - EA
A3 - A9
A4 - 00
A5 - 85
A6 - 3F
A7 - A9
A8 - 5B


$39FF7: Lengthens name window in naming screen.

F7 - 07


$3A02B-$3A0FC: Default party, names, naming window.

2B - A4
2C - FF
2D - A5
2E - FF
2F - A6
30 - FF
31 - A7
32 - FF
33 - A8
34 - 01
35 - 8F
36 - FF
37 - 90
38 - FF
39 - 91
3A - FF
3B - 92
3C - FF
3D - 93
3E - FF
3F - A9
40 - FF
41 - AA
42 - FF
43 - AB
44 - FF
45 - AC
46 - FF
47 - AD
48 - 01
49 - 94
4A - FF
4B - 95
4C - FF
4D - 96
4E - FF
4F - 97
50 - FF
51 - 98
52 - FF
53 - AE
54 - FF
55 - AF
56 - FF
57 - B0
58 - FF
59 - B1
5A - FF
5B - B2
5C - 01
5D - 99
5E - FF
5F - 9A
60 - FF
61 - 9B
62 - FF
63 - 9C
64 - FF
65 - 9D
66 - FF
67 - B3
68 - FF
69 - B4
6A - FF
6B - B5
6C - FF
6D - B6
6E - FF
6F - B7
70 - 01
71 - 9E
72 - FF
73 - 9F
74 - FF
75 - A0
76 - FF
77 - A1
78 - FF
79 - A2
7A - FF
7B - B8
7C - FF
7D - B9
7E - FF
7F - BA
80 - FF
81 - BB
82 - FF
83 - BC
84 - 01
85 - A3
86 - FF
87 - C2
88 - FF
89 - BE
8A - FF
8B - C4
8C - FF
8D - C5
8E - FF
8F - BD
90 - FF
91 - F3
92 - FF
93 - F6
94 - FF
95 - EF
96 - FF
97 - FF
98 - 01
99 - 80
9A - FF
9B - 81
9C - FF
9D - 82
9E - FF
9F - 83
A0 - FF
A1 - 84
A2 - FF
A3 - 85
A4 - FF
A5 - 86
A6 - FF
A7 - 87
A8 - FF
A9 - 88
AA - FF
AB - 89
AC - 01
AD - 01
AE - 99
AF - 45
B0 - 3F
B1 - 1A
B2 - 3A
B3 - 53
B4 - 44
B5 - A4
B6 - FF
B7 - B1
B8 - A4
B9 - 34
BA - 00
BB - B1
BC - 26
BD - 3E
BE - 00
BF - 8C
C0 - A8
C1 - A6
C2 - F3
C3 - FF
C4 - 0D
C5 - 09
C6 - 0D
C7 - 08
C8 - 50
C9 - 3A
CA - 08
CB - 06
CC - 38
CD - 40
CE - 02
CF - A2
D0 - A4
D1 - B1
D2 - AA
D3 - FF
D4 - 0D
D5 - 0D
D6 - 0D
D7 - 0C
D8 - 50
D9 - 5A
DA - 97
DB - 98
DC - 38
DD - 60
DE - 04
DF - 99
E0 - B2
E1 - B5
E2 - B2
E3 - B0
E4 - 0D
E5 - 11
E6 - 0D
E7 - 10
E8 - 50
E9 - 7A
EA - 9D
EB - 9E
EC - 38
ED - 80
EE - 05
EF - 99
F0 - A4
F1 - AF
F2 - B2
F3 - B0
F4 - 0D
F5 - 15
F6 - 0D
F7 - 14
F8 - 50
F9 - 9A
FA - 9C
FB - 8E
FC - 38

$3DEEE-$3DF06: Code change; copies all 5 characters of name for display in party screen.

EEE - A0
EEF - 00
EF0 - BD
EF1 - 02
EF2 - 61
EF3 - 99
EF4 - 5B
EF5 - 00
EF6 - E8
EF7 - C8
EF8 - C0
EF9 - 05
EFA - D0
EFB - F4
EFC - EA
EFD - EA
EFE - EA
EFF - EA
F00 - EA
F01 - EA
F02 - 20
F03 - 3E
F04 - E0
F05 - A9
F06 - 5B


$3F2FA-$3F308: Eliminates border between windows.

2FA - 18
2FB - 0A
2FC - 12
2FD - 20
2FE - E2
2FF - F3
300 - A9
301 - 01
302 - 8D
303 - 38
304 - 00
305 - A9
306 - 01
307 - A2
308 - 18


$3F39D-$3F3A8: Extends battle BG. Combined with the above offsets, fixes top of window.

9D - 08
9E - 84
9F - 9B
A0 - 20
A1 - A0
A2 - F3
A3 - 20
A4 - A0
A5 - F3
A6 - EA
A7 - EA
A8 - EA


$3F3E0-$3F3E7: Sets character window width (name, HP) in battle.

E0 - 07
E1 - 86
E2 - 3C
E3 - A2
E4 - 07
E5 - EA
E6 - 86
E7 - 3D


$3F64C-$3F653: Fixes the bottom part of the battle window.

4C - EA
4D - EA
4E - EA
4F - A9
50 - FE
51 - EA
52 - EA
53 - EA

$3FC79: Code change; displays all 5 characters of name in battle character windows

79 - 05




Oh yeah, and if you see a lot of EA's in a change, you should know that EA is just the NOP code (no operation, ie. do nothing). This means there is a bit more room to squeeze code in.

$0039A-$0039F: Palette changes for outdoors
$003B2-$003C7: Palette changes for party members on map
$03221-$0322B: Palette changes for battle background(s)
$0323A-$0323B: Ditto?
$035A0: ???
$04012-$07E81: ???
$085A5: Graphics fix.
$09013-$0908F: Graphics fix.
$090A6-$0950F: Graphics fix.
$09557: Graphics fix.
$09567-$09587: Graphics fix.
$095B7-$0974C: Graphics fix.
$097A5: Graphics fix.
$097B7-$097BF: Graphics fix.
$097D0-$09C0F: Graphics fix.
$09D12-$09D1E: Graphics fix.
$09D30-$09D5F: Graphics fix.
$09D71-$09D8F: Graphics fix.
$09DB2-$09DCE: Graphics fix.
$09DF3-$09E0F: Graphics fix.
$09E34-$09E4E: Graphics fix.
$09E75-$09E8F: Graphics fix.
$0A313-$0A70F: Graphics fix.
$0A916-$0A938: Graphics fix.
$0A950-$0A98A: Graphics fix.
$0A996-$0AA0F: Graphics fix.
$0AB10-$0AFOF: Graphics fix.
$0C040-$0C04F: Graphics fix.
$0C070-$0C09F: Graphics fix.
$0C0B0-$0C0CE: Graphics fix.
$0C105-$0C10D: Graphics fix.
$0C105-$0C14F: Graphics fix.
$0C132-$0C14F: Graphics fix.
$0C132-$0C19F: Graphics fix.
$0C170-$0C19F: Graphics fix.
$0C170-$0C1CF: Graphics fix.
$0C1B0-$0C1CF: Graphics fix.
$0C1F0-$0C22F: Graphics fix.
$0C250-$0C2CF: Graphics fix.
$0C2F0-$0C32F: Graphics fix.
$0C351-$0C3AE: Graphics fix.
$0C3F1-$0C40F: Graphics fix.
$0C431-$0C44F: Graphics fix.
$0C460-$0C4DE: Graphics fix.
$0C4F0-$0C50F: Graphics fix.
$0C530-$0C54E: Graphics fix.
$0C560-$0C57F: Graphics fix.
$0C5A0-$0C5DD: Graphics fix.
$0C5F0-$0C60F: Graphics fix.
$0C630-$0C68E: Graphics fix.
$0C730-$0C76F: Graphics fix.
$0C7B7-$0C80F: Graphics fix.
$0CAB2-$0CACF: Graphics fix.
$0CBB2-$0CBCD: Graphics fix.
$0CC71-$0CC98: Graphics fix.
$0CCA8: Graphics fix.
$0CD70-$0CDAC: Graphics fix.
$0CFB7-$0D00F: Graphics fix.
$0D4D1-$0D4EF: Graphics fix.
$0D5D2-$0D5ED: Graphics fix.
$0D63A-$0D65A: Graphics fix.
$0D668-$0D66B: Graphics fix.
$0D7B7-$0D80F: Graphics fix.
$0DAB2-$0DACF: Graphics fix.
$0DBB2-$0DBCD: Graphics fix.
$0DC11-$0DC2F: Graphics fix.
$0DD12-$0DD2D: Graphics fix.
$0DE31-$0DE58: Graphics fix.
$0DE68: Graphics fix.
$0DF31-$0DF6C: Graphics fix.
$0DFB7-$0E00F: Graphics fix.
$0E2B2-$0E2CF: Graphics fix.
$0E3B2-$0E3CD: Graphics fix.
$0E7B7-$0E80F: Graphics fix.
$0EAB2-$0EACF: Graphics fix.
$0EBB2-$0EBCD: Graphics fix.
$0EFB7-$0F00F: Graphics fix.
$0F612-$0F627: Graphics fix.
$0F710-$0F712: Graphics fix.
$0F720-$0F723: Graphics fix.
$0F7B7-$0F80F: Graphics fix.
$0FAB2-$0FACF: Graphics fix.
$0FBB2-$0FBCD: Graphics fix.
$0FFB7-$1000F: Change Japanese characters to miscellaneous characters (tent, tail, etc.) never displayed in battle

$10010-$10088: Slight bug fix to Coneria map - the wrong tile was being used to the upper right of fountain

$10194-$101FF: Slight bug fix to miscellaneous maps - get rid of spurious isolated tiles; helps w/ compression

$10200-$181F8: Slight bug fix to miscellaneous maps - get rid of spurious isolated tiles; helps w/ compression

$181FA-$181FF: Slight bug fix to miscellaneous maps - get rid of spurious isolated tiles; helps w/ compression

$18200-$1ACAA: Slight bug fix to miscellaneous maps - get rid of spurious isolated tiles; helps w/ compression

$1C02C: Graphics fix.
$1C060: Graphics fix.
$1C070: Graphics fix.
$1C080: Graphics fix.
$1C090-$1C0AB: Graphics fix.
$1C0B6-$1C0BE: Graphics fix.
$1C0D8-$1C0EA: Graphics fix.
$1C100-$1C11D: Graphics fix.
$1C136-$1C228: Graphics fix.
$1C7B7-$1C80F: Graphics fix.
$1CFB7-$1D00F: Graphics fix.
$1D57E-$1D79D: Graphics fix.
$1D7AB-$1D80F: Graphics fix.
$1D826-$1D913: Graphics fix.
$1DFB7-$1E00F: Graphics fix.
$1E020-$1E11F: Graphics fix.
$1E134-$1E22E: Graphics fix.
$1E340-$1E38F: Graphics fix.
$1E3A0-$1E451: Graphics fix.
$1E45C-$1E4AF: Graphics fix.
$1E4C0-$1E50F: Graphics fix.
$1E520-$1E7AF: Graphics fix.
$1E7B7-$1E80F: Graphics fix.
$1E820-$1E91F: Graphics fix.
$1E987-$1E98F: Graphics fix.
$1E99F: Graphics fix.
$1E9C0-$1E9DB: Graphics fix.
$1ED85-$1EF99: Graphics fix.
$1EFB7-$1F00F: Graphics fix.
$1F0A0-$1F0EA: Graphics fix.
$1F0F8-$1F0FA: Graphics fix.
$1F108-$1F10C: Graphics fix.
$1F118-$1F11C: Graphics fix.
$1F7B7-$1F80F: Graphics fix.
$1F935-$1FA2C: Graphics fix.
$1FB30-$1FD08: Graphics fix.
$1FD20: Graphics fix.
$1FD30-$1FD5B: Graphics fix.
$1FFB7-$2000F: Graphics fix.
$20020-$2011F: Graphics fix.
$20231-$20565: Graphics fix.
$207B7-$2080F: Graphics fix.
$20931-$20A18: Graphics fix.
$20FB7-$2100F: Graphics fix.
$21061-$2111F: Graphics fix.
$21232-$2132F: Graphics fix.
$21342-$21387: Graphics fix.
$213A2-$213E4: Graphics fix.
$21400-$2143F: Graphics fix.
$21460-$21794: Graphics fix.
$217B7-$2180F: Graphics fix.
$21FB7-$2200F: Graphics fix.
$22344-$2243F: Graphics fix.
$22450-$2249F: Graphics fix.
$224B0-$2256B: Graphics fix.
$227B7-$2300F: Graphics fix.
$23131-$231C2: Graphics fix.
$231D0-$23400: Graphics fix.
$23410-$2346E: Graphics fix.
$237B7-$2380F: Graphics fix.
$23FB7-$2400F: Graphics fix.
$24410-$2444A: Graphics fix.
$247B7-$24A47: Graphics, font fix.
$24A52-$24A67: Font fix.
$24A72-$24A87: Font fix.
$24A92-$24AA7: Font fix.
$24AB2-$24B07: Font fix.
$24B12-$24B17: Font fix.
$24B22-$24B27: Font fix.
$24B32-$24B37: Font fix.
$24B42-$24B47: Font fix.
$24B52-$24B57: Font fix.
$24B62-$24B67: Font fix.
$24B72-$24B77: Font fix.
$24B82-$24B87: Font fix.
$24B92-$24B97: Font fix.
$24BA2-$24BA7: Font fix.
$24BB2-$24BB7: Font fix.
$24BC2-$24BC7: Font fix.
$24BD2-$24BD7: Font fix.
$24BE2-$24BF4: Font fix.
$24C04-$24C07: Font fix.
$24C15-$24C26: Font fix.
$24C44-$24C87: Font fix.
$24C93-$24DEF: Icons.
$24DFD-$24E57: Icons.
$24E62-$24FFD: Icons, borders.
$25010-$2514E: Graphics fix.
$25173-$251B7: Graphics fix.
$251D6-$2554F: Graphics fix.
$2555C-$2555F: Graphics fix.
$2556C-$2560F: Graphics fix.
$25624-$25626: Graphics fix.
$25631-$2568F: Graphics fix.
$256A4-$256A6: Graphics fix.
$256B1-$2574F: Graphics fix.
$25766: Graphics fix.
$25772-$2577F: Graphics fix.
$25790-$25798: Graphics fix.
$257A3-$257B6: Graphics fix.
$257C1-$257C2: Graphics fix.
$257D1-$2594F: Graphics fix.
$2597A: Graphics fix.
$25996-$259AE: Graphics fix.
$259BA-$25A0F: Graphics fix.
$25A37-$25A88: Graphics fix.
$25AB1-$25B2F: Graphics fix.
$25B41-$25B5D: Graphics fix.
$25B77-$25B98: Graphics fix.
$25BB4-$25EE1: Graphics fix.
$25FC6-$25FCF: Graphics fix.
$25FDF-$2614F: Graphics fix.
$2615C-$261AF: Graphics fix.
$261C7-$2680F: Graphics fix.
$28012-$281FF: Pointer changes corresponding to text changes.
$28200-$2B60F: Text changes.
$2B645-$2B6F3: Enemy attack text changes.
$2B701: Meaningless change to unused memory 2b6f5 - 2b70f.
$2B714-$2B906: Pointer changes correspnding to item, weapon, armor, spell, and class text changes.

$2B911-$2BFD0: Item description, weapon, armor, item, spell, class, status text.
$2CC51-$2CC53: Effect text.
$2CC6E-$2CF5A: Effect text.
$2CF68-$2CFF8: Pointer changes corresponding to battle message changes.
$2D4F2-$2D95E: Enemy names.
$2E024-$2E026: ???
$2E03D-$2E048: ???
$2EFC0-$2F00F: Enemy names.
$2F610-$2F7AF: Graphics fix.
$2FBB0-$2FBBF: Graphics fix.
$2FBF0-$2FC0E: Graphics fix.
$30339: ???
$303C1: ???
$30B7F: ???
$31019-$3101D: ???
$31FCF-$31FED: Changes cursors in battle magic and battle item menus.

$32ACB-$32AD0: Code changes affecting printing of blank space and status string in battle character windows; supports 5 character player names.

$32B17: Code change affecting printing of text in battle character windows and possibly others; supports 5 character player names.

$36876-$368BD: Bridge text.
$369C3-$369C6: Changes "CHAOS" in the ending.
$36A2A-$36A36: Changes "LIGHT WARRIORS" in the ending.
$36BF2-$36BFE: Changes another "LIGHT WARRIORS" in the ending.
$36CEC-$36CF7: Changes yet another "LIGHT WARRIORS" in the ending.
$36D0F-$36DD6: Removes the end of the ending.
$37620-$3762B: Changes orbs to crystals in menu.
$37651-$3774F: Changes orbs to crystals in menu.
$37771-$3780F: Changes orbs to crystals in menu.
$37F35-$38020: Changes the opening.
$3805D-$3809A: Changes shop titles.
$380DA-$380DC: Changes "Gold" in shops to "Gil".
$38103-$38104: Changes "will" to use the "il" tile instead of "i" and "l".
$38146: Shop text.
$38163-$38164: Shop text.
$38172: Shop text.
$3817E: Shop text.
$381BD: Shop text.
$38219-$3821A: Shop text.
$38243: Shop text.
$38272: Shop text.
$38295-$38299: Shop text.
$382A7-$382AD: Shop text.
$382FB-$38302: Shop text.
$384B8-$384D8: Copyright text.
$38514: Pointer change to point to Item in Item/Magic/Weapon/Armor/Status command text.
$3852E-$3853A: Pointer changes to point to Item text.
$38594-$3860F: Menu, item description text.
$3861B-$38623: Item descriptions.
$38635-$386A4: Item descriptions.
$386AF-$38761: Item descriptions.
$3876D-$387B3: Item descriptions.
$387C2-$387DA: Tent save text.
$387F9-$38822: Cabin save text.
$38830-$38857: House save text.
$3888D-$388B5: Pure/Soft potion text.
$388C3-$38A15: Changes status screen text.
$38A2A-$38A6D: Heal/Pure magic text.
$38A88-$38AC1: Warp/Soft magic text.
$38AD8-$38AD9: Exit spell text.
$38B0C-$38B41: Magic inappropriate, "Equip/Trade/Drop" text.
$38B58-$38B5B: "ARMOR" label.
$38B6B-$38C5E: Magic, "Equip/Trade/Drop" text.
$38C74-$38C9C: Armor, save text.
$38CD4-$38CEF: "WEAPON", "Equip/Trade/Drop" text.
$38D00-$38D03: "ARMOR".
$39C3F-$39C54: ???Code change related to 5-character names?
$39CEF-$39D06: Code change ensures all 5 characters of name are copied properly from party creation dialogue to game.

$39D70-$39D8A: Makes default names stick.
$39DEC: Code change - use 0xCC (a dash character) when you erase characters from your name.
$39E22: Allows five-letter names in naming window.
$39E2E: Code change; enter 5 characters into the right place in memory when choosing name
$39EA5-$39EC2: Code changes affect positioning of names in party select dialogue
$39F07-$39F1A: ??? Code change related to display of names in party select dialogue?
$39F26: Code change displays names in party select dialgoue by reading them from correct place in memory

$39F8F-$39FA8: Code change copies all 5 characters for display while editing name
$39FF7: Lengthens name window in naming screen.
$3A02B-$3A0FC: Default party, names, naming window.
$3A264-$3A280: "Continue", "New Game", "Battle Speed" on main menu
$3A9BF: Code change; in the shops use plain old L character to show magic level instead of the duplicate L character.

$3AC5C-$3AC5E: Changes various shop window locations and sizes.
$3B4AF-$3B4BC: ???
$3B7D2: ???
$3B82C-$3B839: ???
$3B9ED-$3B9F7: Code change displays MP instead of MAGIC in party screen.
$3BA52: Code change displays L character for player level instead of the duplicate L character.
$3BAC6-$3BAC8: Positioning and size of gold menu in party screen.
$3BE8E-$3BE92: Changes Weapon/Armor Equip/Trade/Drop windows
$3DEEE-$3DF06: Code change; copies all 5 characters of name for display in party screen.
$3EBB6: Spacing in Magic menu?
$3ECED: Spacing in Weapon/Armor equip menus?
$3ED29-$3ED3F: Fixes characters which pop up from changing $3ECED?
$3ED52: Fixes border which is altered from $3ECED?
$3ED60-$3ED65: Changes "E-" to "eep" in equip menus.
$3EF90: Code change accounts for length of item names so items are displayed properly
$3EF9C: ??? Code change affects display of items in item window?
$3EFB7-$3EFBC: Code change ensures proper display of items. Specifically, store item quantity digits in appropriate memory, accounting for new item name length.

$3F2FA-$3F308: Eliminates border between windows.
$3F39D-$3F3A8: Extends battle BG. Combined with the above offsets, fixes top of window.
$3F3C9-$3F3CE: Unused memory marked as "Unused"
$3F3E0-$3F3E7: Sets character window width (name, HP) in battle.
$3F414-$3F41C: Sets palette for divider bar.
$3F64C-$3F653: Fixes the bottom part of the battle window.
$3F7D1-$3F7D6: Code displays spell quantity in battle for first 4 spell levels
$3F829-$3F82E: Code displays spell quantity in battle for last 4 spell levels
$3F857-$3F8A4: Code displays spell list in battle
$3F8F6: ???
$3F9F7-$3FA17: Shortens battle options, damage windows.
$3FA22-$3FA2E: Lengthens enemy name window.
$3FA49-$3FA5F: Decapitalizes/squishes options (Fight, Item, etc.).
$3FC79: Code change; displays all 5 characters of name in battle character windows
$3FC9E: Code change; displays all 9 characters of monster in battle
Lenophis

Super Koopa
Level: 44

Posts: 442/830
EXP: 584360
For next: 26925

Since: 03-15-04
From: Duluth, MN

Since last post: 4 hours
Last activity: 3 hours
Posted on 04-28-05 07:14 AM Link | Quote
Some problem code.... with no assembly hacks at all currently in place, or anything for that matter... (other than the 5 letter limit, but that works)

$3F2FA-$3F308: Eliminates border between windows.


2FA - 18
2FB - 0A
2FC - 12 <-- found to be the problem, change that to 21, not 12
2FD - 20
2FE - E2
2FF - F3
300 - A9
301 - 01
302 - 8D
303 - 38
304 - 00
305 - A9
306 - 01
307 - A2
308 - 18


$3F39D-$3F3A8: Extends battle BG. Combined with the above offsets, fixes top of window.

9D - 08
9E - 84
9F - 9B
A0 - 20
A1 - A0
A2 - F3
A3 - 20
A4 - A0
A5 - F3
A6 - EA
A7 - EA
A8 - EA


Coding this as I see it, produces these results:



Eek?

Edit: Schpune is the only emu that runs the rom after that hack, FCEUXD and NNNesterJ crash when a battle starts...


(edited by Lenophis on 04-27-05 02:16 PM)
(edited by Lenophis on 04-27-05 02:28 PM)
(edited by Lenophis on 04-27-05 03:32 PM)
Mewtwo

Red Goomba
Level: 12

Posts: 28/45
EXP: 6759
For next: 1162

Since: 06-19-04
From: Dreamland

Since last post: 119 days
Last activity: 3 days
Posted on 05-08-05 06:58 AM Link | Quote
How do you edit the music? The vgsite is not working.Also how do i edit the picture of the airship and what text does Garland (Chaos Time) say?


(edited by Mewtwo on 05-07-05 02:21 PM)
drjayphd

Beamos
What's that spell?




pimp!
Level: 56

Posts: 1004/1477
EXP: 1387410
For next: 10766

Since: 03-15-04
From: CT

Since last post: 2 hours
Last activity: 2 hours
Posted on 05-08-05 09:55 AM Link | Quote
Garland's text should be in three separate entries... FFHackster will edit it. Music? FFBytes... check the music doc. Airship graphics should be fairly self-evident... crack the ROM open in a tile editor.
The Great Guy

Octoballoon
Level: 22

Posts: 159/170
EXP: 53084
For next: 5266

Since: 04-08-04

Since last post: 130 days
Last activity: 73 days
Posted on 06-21-05 05:42 AM Link | Quote
Is there any data on the MP RAM addresses or the XY data for the 4 "MAGIC"s on the menu screen or the MP numbers themselves? I'm trying to get it to display 2-digit MP numbers(I'll probably fail, since I'm VERY new to ASM but meh) and I have the code partially worked out in my head, but I have no idea where any of the adresses are except for what "MAGIC" says, but I barely understand it, I can just get it to say stuff like "[knife]GIC" and "caGIC" and once it said "M' yIC", lol. I suck, badly, at least at figuring out how this thing is compressing the text, though it seems close to the DTE for the regular text, since the equip symbols are the same values and the letters alone are, but 2 at once, I die. But anyway, with 1 address for the RAM magic and the XY stuff I could probably find the rest, I doubt square would be crazy enough to throw them all over the place, heh. There probably isn't anything uncovered since I haven't seen it yet in this topic, but if anyone has something, it'll save me alot of corrupting and guesswork! Thanks.

EDIT: I found some RAM addresses, one I got while looking for the MP data the others are the MP data, so I don't need that anymore. Here it is straight from the notepad file it's stored in:

RAM Addresses:

0061A0: Char 3's "damage" rating on the stat screen (unsure if it affects battle)
006320-006327: Char 1's current MP in order from level 1-8
006328-00632F: Char 1's Max MP in order from level 1-8
006360-006367: Char 2's current MP
006368-00636F: Char 2's Max MP
0063A0-0063A7: Char 3's current MP
0063A8-0063AF: Char 3's Max MP
0063E0-0063E7: Char 4's current MP
0063E8-0063EF: Char 4's max MP

Man, I should've looked through FCEUXD's Hex editor earlier, I am such an idiot.

EDIT2: Found what seems to be part of the drawing code for MP, when I change it it places MP values in odd places on the stat screen though some parts are intact, it only changes the main menu screen though, the magic menu branch of the pause screen and battle magic menu are unaffected. It's one byte located in the ROM at 3B9EB, the two offsets "next" to it crash if the value is changed even by 1 so I have no clue what those are for.

EDIT3: Man I wish I didn't have to edit this much. Anyway 3B9E9 has something to do with the 1st row of magic points, for every char, I've got it to crash, act like it's normal, and get rid of the 1st row of MP, I'm going to need to look deeper into the data around 3B9EB to understand what's going on, unfortunatly, I don't know how to do that.


(edited by The Great Guy on 06-20-05 08:55 PM)
(edited by The Great Guy on 06-21-05 09:32 AM)
(edited by The Great Guy on 06-21-05 09:33 AM)
(edited by The Great Guy on 06-21-05 09:34 AM)
(edited by The Great Guy on 06-21-05 05:06 PM)
(edited by The Great Guy on 06-21-05 05:30 PM)
(edited by The Great Guy on 06-21-05 05:30 PM)
(edited by The Great Guy on 06-21-05 05:31 PM)
(edited by The Great Guy on 06-22-05 05:29 PM)
Don Killmi

Level: 8

Posts: 1/29
EXP: 1764
For next: 423

Since: 06-27-05

Since last post: 11 hours
Last activity: 11 hours
Posted on 06-27-05 09:14 PM Link | Quote
Whee!
I managed to add a B-button dash, like the remake versions.
I used the space freed when i removed that annoying noise that plays when you open/close a dialog window. Who would've thought that noise would come out usefull? --

I also added a way to class-change to any class.
You put the character you want to change classes at the lead of the party.
You talk to the Priest of Dharma/Bahamut/whatever
Your character gets changed to the next base class.
It follows the standart character order:
Fighter -> Thief -> Black belt -> RedMage -> WhiteMage -> BlackMage.
Now i need to find a way to make intelligence matter when casting spells. It wouldn't make sense to have a black belt cast NUKE with the same proficiency as a black mage.
Does anyone know if magic is factored at all when casting spells?
Has anyone made a working MP system (like the origins and GBA versions? It would make more sense than having class change with the spell charge system.
Thanks in advance.
Pages: 1 2 3 4 5 6 7Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - FF Hacking FAQ/Running Q&A | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.031 seconds.