Jump to content

FE9-styled portrait changing


CT075
 Share

Recommended Posts

this is the hackiest hack i've ever made in my life

Dan asked me to make a hack to allow him to change the portrait of a character in-game. Like how in FE9/10 the main characters mug changes when they promote. I did so in the hackiest way possible - I changed the character's pointer in memory.

This allows for a series of things - You can change growths, affinity, mug, character name and r-button info. To get the effect Astra was after, just make a duplicate character (yes this uses up a character slot) with identical stats and everything with a different mug. For now, I wouldn't recommend using this on a lord until I finish with my alteration of the ASM promotion routine.

[edit]fe7 only i'll port if you give me the memory offset of each character [/edit]

Due to the extreme bootstrap nature of this patch, I claim no warranty over the contents of your ROM. Make a backup.

Instructions can be found in the readme. Patch is impl.dmp for use with my assembly patcher.

Note: if you are using an unexpanded ROM then the patcher may screw up. read the you readme fools

[spoiler=WHY THE HELL DOESN'T THIS WORK skype convo also instructions if you really need a step-by-step][4:53:46 PM] Super Dumpy_Kitteh: just dl'd your patcher

[4:53:53 PM] Super Dumpy_Kitteh: i already have python installed

[4:54:04 PM] Cam: Use python 2.6 or 2.7 by the way

[4:54:09 PM] Cam: i think 3.x breaks it

[4:54:26 PM] Super Dumpy_Kitteh: idk which i have

[4:54:31 PM] Super Dumpy_Kitteh: when did 3.x come out

[4:54:48 PM] Cam: well just go into your cmd and type "print 'hello world'"

[4:54:54 PM] Cam: er

[4:54:57 PM] Cam: go into your cmd

[4:54:59 PM] Cam: type python

[4:55:00 PM] Super Dumpy_Kitteh: okay it's 2.7

[4:55:04 PM] Cam: okay cool

[4:55:05 PM] Super Dumpy_Kitteh: 2.7.1

[4:55:08 PM] Cam: Perfect.

[4:55:16 PM] Cam: Put your ROM and your patch in the same folder as the patcher

[4:55:18 PM] Cam: and run the patcher

[4:56:07 PM] Cam: (if you have nothing at 010952A0 or whatever the offset is it'll mess up so you might want to change that)

[4:56:23 PM] Super Dumpy_Kitteh: nope i already checked

[4:56:51 PM] Super Dumpy_Kitteh: so i'm guessing all these .dmps should be in the folder as well?

[4:57:10 PM] Cam: Just the impl.dmp

[4:57:14 PM] Cam: caller.dmp is a bit different

[4:57:31 PM] Cam: if you didn't repoint the initial asm patch then you have very little work to do

[4:57:42 PM] Super Dumpy_Kitteh: i did not need to, no

[4:57:46 PM] Cam: cool

[4:57:57 PM] Super Dumpy_Kitteh: it might be beneficial to later

[4:58:00 PM] Super Dumpy_Kitteh: but eh

[4:58:01 PM] Cam: assuming you have your hex editor set on 0x10 bytes per line

[4:58:01 PM] Super Dumpy_Kitteh: anyway

[4:58:03 PM] Cam: well that's up to you

[4:58:06 PM] Super Dumpy_Kitteh: yeah i do

[4:58:12 PM] Cam: copy the second line

[4:58:18 PM] Cam: (should only be like 0xC bytes)

[4:58:22 PM] Super Dumpy_Kitteh: wait a sec though

[4:58:30 PM] Cam: ?

[4:58:34 PM] Super Dumpy_Kitteh: it's asking for the patch name

[4:58:41 PM] Cam: impl.dmp

[4:58:43 PM] Cam: is the patch name

[4:58:46 PM] Super Dumpy_Kitteh: okay

[4:59:05 PM] Cam: (it means a filename)

[4:59:22 PM] Super Dumpy_Kitteh: yeah i know derp

[4:59:28 PM] Cam: kk

[4:59:35 PM] Super Dumpy_Kitteh: didn't know what kind of file the patch was supposed to be

[4:59:40 PM] Cam: sorry about that

[4:59:42 PM] Super Dumpy_Kitteh: patching success! though

[4:59:45 PM] Cam: cool

[4:59:52 PM] Cam: you should get a file called like

rom_patched.gba

[4:59:53 PM] Cam: or whatever

[4:59:57 PM] Super Dumpy_Kitteh: yep

[4:59:59 PM] Cam: good

[5:00:00 PM] Super Dumpy_Kitteh: going to the offset

[5:00:11 PM] Cam: Now, copy the last line of caller.dmp (from a hex editor i mean)

[5:00:15 PM] Super Dumpy_Kitteh: oh it's pretty small, cool

[5:00:29 PM] Cam: and paste it somewhere word-aligned in your ROM

[5:00:41 PM | Edited 5:00:42 PM] Cam: (word-aligned means it ends with 0, 4, 8 or C)

[5:00:47 PM] Super Dumpy_Kitteh: yah i know lol

[5:00:53 PM] Cam: kk

[5:00:59 PM] Super Dumpy_Kitteh: anywhere is fine?

[5:01:01 PM] Cam: yeah

[5:01:04 PM] Super Dumpy_Kitteh: okay

[5:01:06 PM] Super Dumpy_Kitteh: uh...

[5:01:12 PM] Cam: done?

[5:01:32 PM] Super Dumpy_Kitteh: yes

[5:01:42 PM] Cam: okay remember that offset first

[5:01:49 PM] Super Dumpy_Kitteh: already written down

[5:01:50 PM] Cam: Second look at the first four bytes

[5:01:59 PM] Cam: you should have

00 20 01 21

or something right

[5:02:02 PM] Super Dumpy_Kitteh: yes

[5:02:06 PM] Cam: okay

[5:02:14 PM] Cam: the 00 is the charid of the character you want to change

[5:02:20 PM] Cam: the 01 is the id of the character to change to

[5:02:35 PM] Super Dumpy_Kitteh: oh i see, you do this for each character

[5:02:45 PM] Cam: so say i wanted to change lyn to sain

03 20 XX 21 (xx is sain's id)

[5:02:46 PM] Cam: yeah

[5:02:54 PM] Super Dumpy_Kitteh: is this how fe7 did it?

[5:03:00 PM] Cam: this changes mugs, r-button text, names and growths

[5:03:01 PM] Cam: I don't think so

[5:03:04 PM] Super Dumpy_Kitteh: or this something--okay

[5:03:10 PM] Cam: this is me being super hacky

[5:03:19 PM] Super Dumpy_Kitteh: lol

[5:03:19 PM] Cam: if i can think of a better way I'll let you know

[5:03:33 PM] Super Dumpy_Kitteh: let's change raven to pent then

[5:03:37 PM] Cam: anyway to trigger the change use

ASMC offset + 1

[5:03:41 PM] Cam: the +1 is important

[5:04:15 PM] Super Dumpy_Kitteh: in the events right?

[5:04:22 PM] Cam: yeah

[5:04:33 PM] Super Dumpy_Kitteh: this sounds subtly like how to change modes

[5:04:34 PM] Super Dumpy_Kitteh: okay

[5:04:36 PM] Cam: the +1 makes it not fuck up with the different ASM modes

[5:04:37 PM] Cam: and yeah it is

[5:04:46 PM] Cam: +1 makes it work in THUMB mode which is what I want it to do

[5:04:58 PM] Cam: ...oh fuck

[5:05:02 PM] Super Dumpy_Kitteh: ?

[5:05:15 PM] Cam: err wait no try it first

[5:05:18 PM] Super Dumpy_Kitteh: k

[5:05:19 PM] Cam: i may be overreacting here

[5:06:49 PM] Super Dumpy_Kitteh: [Friday, June 15, 2012 5:01 PM] Cam:

<<< ASMC offset + 1should be 0x1000575 or without the 0x

[5:06:53 PM] Super Dumpy_Kitteh: or 0x9

[5:06:56 PM] Super Dumpy_Kitteh: ?

[5:07:01 PM] Cam: 01

[5:07:01 PM] Super Dumpy_Kitteh: don't remember

[5:07:04 PM] Super Dumpy_Kitteh: okay

[5:07:22 PM] Cam: (ea will automatically add the 0x08000000 for you)

[5:07:35 PM] Super Dumpy_Kitteh: o

[5:07:37 PM] Super Dumpy_Kitteh: did not know

[5:07:58 PM] Cam: i didn't either until i looked at the source

[5:11:41 PM] Super Dumpy_Kitteh: okay

[5:11:44 PM] Super Dumpy_Kitteh: time to try this

[5:12:11 PM] Super Dumpy_Kitteh: lyn froze

[5:12:15 PM] Cam: ...fuck

[5:12:20 PM] Cam: OKAY BACK TO THE DRAWING BOARD

[5:12:44 PM] Super Dumpy_Kitteh: okay

[5:14:17 PM] Super Dumpy_Kitteh: just to clarify i didn't fuck anything up

[5:14:20 PM] Super Dumpy_Kitteh: MUS1 0x3F

TEX1 0x833

REMA

ASMC 01000575

ENUN

ENDA

was the event

[5:14:54 PM] Super Dumpy_Kitteh: http://puu.sh/Bb6R

is what I have at the offset

[5:19:33 PM] Cam: looks right to me

[5:19:37 PM] Cam: i'm just fucking something up here

[5:21:38 PM] Cam: okay i'm stupid again

[5:21:39 PM] Cam: one sec

[5:21:51 PM] Super Dumpy_Kitteh: okay

[5:32:00 PM] *** Cam sent impl.dmp ***

[5:32:05 PM] Cam: OKAY THAT ONE SHOULD WORK

[5:32:34 PM] Super Dumpy_Kitteh: okie dokie

[5:36:27 PM] Super Dumpy_Kitteh: uh...

[5:36:35 PM] Cam: uh oh

[5:36:37 PM] Cam: that sounds bad

[5:36:42 PM] Super Dumpy_Kitteh: http://puu.sh/Bbpx

[5:36:46 PM] Super Dumpy_Kitteh: that's the patched version

[5:36:50 PM] Cam: ...

[5:36:53 PM] Cam: oh right

[5:36:54 PM] Cam: fuck me

[5:37:02 PM] Cam: i changed the offset to assemble to because i'm dumb

[5:37:06 PM] Super Dumpy_Kitteh: no thank you, we should get to know each other first

[5:37:10 PM] *** Cam sent impl.dmp ***

[5:37:21 PM] Cam: oh sorry man i thought you were into that stuff

[5:37:48 PM | Removed 5:38:00 PM] Super Dumpy_Kitteh: This message has been removed.

[5:37:49 PM] Super Dumpy_Kitteh: ...

[5:37:50 PM] Super Dumpy_Kitteh: whoops

[5:37:52 PM] Cam: haha

[5:37:58 PM] Super Dumpy_Kitteh: i did not write that

[5:38:05 PM] Cam: |D

[5:38:06 PM] Super Dumpy_Kitteh: nope nope nope

[5:39:20 PM] Super Dumpy_Kitteh: okay there it is

[5:39:26 PM] Super Dumpy_Kitteh: same thing as before?

[5:40:10 PM] Cam: yeah

[5:40:35 PM] Cam: (just fyi the first patch [the one that fucked up just now] wrote to DA0000 if you had anything there)

[5:40:38 PM] Super Dumpy_Kitteh: no changes to caller

[5:40:41 PM] Super Dumpy_Kitteh: yeah i know

[5:40:43 PM] Cam: kk

[5:40:49 PM] Super Dumpy_Kitteh: it displayed that in the results

[5:40:51 PM] Cam: shouldn't need any changes to caller

[5:40:53 PM] Cam: lolk

[5:40:54 PM] Super Dumpy_Kitteh: okay

[5:42:03 PM] Super Dumpy_Kitteh: she froze again

[5:44:31 PM] Cam: ..

[5:44:32 PM] Cam: what

[5:44:32 PM] Cam: how

[5:44:33 PM] Cam: but

[5:44:38 PM] Cam: puush?

[5:45:47 PM] Super Dumpy_Kitteh: http://puu.sh/BbxK

[5:46:08 PM] Super Dumpy_Kitteh: http://puu.sh/Bby0

[5:46:09 PM] Cam: Wait

[5:46:13 PM] Cam: what are you having her do

[5:46:13 PM] Super Dumpy_Kitteh: --?

[5:46:22 PM] Super Dumpy_Kitteh: talk and someone else changs

[5:46:26 PM] Cam: ah

[5:46:27 PM] Super Dumpy_Kitteh: florina up there

[5:46:30 PM] Cam: that might cause a problem

[5:46:35 PM] Cam: unfortunately

[5:46:35 PM] Super Dumpy_Kitteh: oh?

[5:46:37 PM] Super Dumpy_Kitteh: hmm

[5:46:39 PM | Edited 5:46:46 PM] Cam: (also you need an ENDA just in case)

[5:46:45 PM] Super Dumpy_Kitteh: how should i set that up?

[5:46:48 PM] Cam: Uhhhhhhhhh

[5:46:50 PM] Super Dumpy_Kitteh: there is an enda

[5:47:14 PM] Cam: Well I would do it with a turn event so it changes on the next phase but i know that causes story issues

[5:47:53 PM] Cam: The only thing I can think of is that you're still using the old value (0x4) instead of the new one for your events

[5:48:02 PM] Cam: (if you send me your rom i can debug further)

[5:48:12 PM] Super Dumpy_Kitteh: doesn't cause story issues lol, it's just a test

[5:48:18 PM] Super Dumpy_Kitteh: can change it to a turn event

[5:48:20 PM] Cam: alright

[5:48:31 PM] Super Dumpy_Kitteh: [Friday, June 15, 2012 5:45 PM] Cam:

<<< The only thing I can think of is that you're still using the old value (0x4) instead of the new one for your eventsI don't follow

[5:49:22 PM] Cam: like if you do something like

[5:49:25 PM] Cam: MOVE 0x4

[5:49:28 PM] Cam: after the event

[5:49:32 PM | Edited 5:49:33 PM] Cam: i'd imagine it'd fuck up

[5:49:36 PM] Super Dumpy_Kitteh: nope

[5:49:44 PM] Cam: well okay that was just an example

[5:49:45 PM] Super Dumpy_Kitteh: MUS1 0x3F

TEX1 0x833

REMA

ASMC 01000575

ENUN

ENDA

is the whole event

[5:49:48 PM] Super Dumpy_Kitteh: okay

[5:49:54 PM] Cam: 0x01000575 for one thing

[5:50:02 PM] Super Dumpy_Kitteh: welp

[5:50:05 PM] Cam: loooool

[5:50:15 PM] Super Dumpy_Kitteh: watch it work now

[5:50:32 PM] Cam: if it does i will laugh

[5:51:02 PM] Super Dumpy_Kitteh: derp reset

[5:51:09 PM] Cam: herp

[5:51:35 PM] Cam: change the a0 52 09 09

[5:51:40 PM] Cam: to a1 52 09 09

[5:51:51 PM] Cam: (since that was something i COMPLETELY missed the first few times i tested)

[5:52:34 PM] Super Dumpy_Kitteh: okay

[5:52:41 PM] Cam: err change it in wherever you pasted caller

[5:52:52 PM] Cam: don't change it in the patch because that'll just kill everything

[5:53:27 PM] Super Dumpy_Kitteh: yeah

[5:53:31 PM] Super Dumpy_Kitteh: did that

[5:53:37 PM] Cam: cool

[5:54:15 PM] Super Dumpy_Kitteh: http://puu.sh/BbEn

can i say

fuck yeah?

[5:54:33 PM] Cam: you may

[5:55:56 PM] Super Dumpy_Kitteh: should i edit the caller or will you do that

[5:56:08 PM] Cam: i'll do that

[5:56:13 PM] Super Dumpy_Kitteh: okie dokie

[5:56:15 PM] Cam: since i'm releasing this anyway

[5:56:21 PM] Super Dumpy_Kitteh: yeah i assumed so

[5:57:50 PM] Cam: ...I'm gonna have a chat log of "oh fuck i'm stupid why doesn't this work" for every single asm patch i release probably

[5:57:59 PM] Super Dumpy_Kitteh: pff

Edited by Camtech
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...