Jump to content

Inserting Map Sprites


Arch
 Share

Recommended Posts

[spoiler=Regarding screwed up palettes]

screwypalette.png

Note the two cavalier map sprites with odd palettes.

(4/1/16): if your image palette is screwing up, it's because the graphics that the game uses have "indexed palettes", which means there's an extra bit of info contained within the image that designates what colours go where. Using Paint and most other image editors destroys indexing, so we recommend ripping a map sprite from the game, opening it in Usenti, and then pasting your new graphic over the top of it. You will know that the image has an indexed palette as to the right side there will be a series of palettes - one for the player side, another for the enemy side, etc. - Agro

indexed_zpsduqkwgd1.png

An image file with an indexed palette.

I was absolutely shocked today when someone (AstraLunaSol) told me they couldn't figure out importing map sprites. It never struck me as something particularly hard, I'd even describe it as a simple procedure. I figured I'd write this tutorial using his hack, in case anyone else. The same procedures work for inserting custom ones, so long as you've formatted them properly (shadowofchaos added onto the tutorial in a post below with extra details). Here's what you'll need:

  • Nightmare Modules.
  • A game to import from and a game to import to (I'm not linking to those tongue.gif).
  • A hex editor, HxD is my personal favorite.
  • Nintenlord's GBAGE (found in here).

For this tutorial, I am going to import the Eirika Lord map sprite into Fire Emblem: Dream of Five.

starting.png
Our starting position in the tutorial.

Alright, so the first thing we need to do is open up the ROM we're importing from in Nightmare. In my case it's FE8. We're going to get the standing sprites and the moving sprites.

[spoiler=Step 1: Importing the Standing Sprites]First we'll tackle the standing sprites. Open the "Standing Map Sprite Editor." Should look something like this:

standingsprites.png

See the highlighted text? That's the pointer to the standing graphics for Eirika Lord. Guess where we're going in GBAGE?

gbage1.png

Click "Save a bitmap," save it to wherever you'd like, and we've got our standing sprites ready and available. Let's import them to FE7, shall we? I'm going to import the map sprites to free space at 00DD0000. Open the ROM that you want the map sprites to be imported to, and with "Image Control" in GBAGE, click "Import a bitmap." This window should come up.

gbage2.png

DD0000 is the offset that I'm writing the data to. You can write it anywhere your heart desires. Click "Ok" and your map sprites will now magically be in the game. But that's not all, folks! Now we need to make sure the game knows where to find your freshly imported map sprites. Open the "Standing map sprites editor" for your respective version (in my case it's FE7).

nmfe71.png
I replaced the original pointer for Lyn Lord with DD0000, where I wrote Eirika Lord.


dof1.png
After Step 1, we have Eirika Lord standing there. But when you move her or hover over her with the cursor we still get Lyn Lord.

[spoiler=Step 2: Importing the Moving Sprites]Alright, now we have to import the other half of a map sprite. Back to FE8 I go! This time, I'm opening the "Misc Map Sprite Editor."

nmm3.png

I highlighted "0x81C3ED4," guess where we're going in FE8 with GBAGE? 1C3ED4!

gbage3.png
Save the bitmap, just like last time!

Okay, now that we've gotten our moving sprites, it's time to import it to FE7. But where do we write it? Well, I'm going to write it where the standing map sprite ended. How do we know where it ended? Open up your hex editor, go to the offset where you wrote it (DD0000 in my case) and scroll down until you're back to free space.

hxd1.png
Looks like DD0160 is our lucky offset!

I'll be writing the moving sprites to DD0160. Time to open up the receiving ROM with GBAGE and complete the transplant. Just like before, on the "Image Control" window click "Import a Bitmap."

write2.png
This should look very familiar.

GBAGE will notify you that the graphics have been inserted. So now it's time for the last leg of our tutorial/journey, referencing the moving sprites in the map sprite's new ROM. Open up the other game's "Misc Map Sprites Editor" (FE7 in my case) and replace the pointers for your map sprite of choice.

nnm4.png

If you've been following along, you'll notice that I replaced Animation Pointer but did not alter Another Pointer. I tested the map sprites and they worked fine with the existing pointer. Just test things out and if everything doesn't work as it should, then you'll have to change the pointer. Sometimes you'll have to change the pointer, sometimes you won't. When you do have to change the pointer, it's safe to just use the same value for both pointers.


dof3.png
The same ROM after importing the map sprites.

Hope you enjoyed the tutorial, hope you learned something. Happy hacking!

Edited by Agro
Link to comment
Share on other sites

Hah you just fixed the extra tag, slick of you, I was about to post about it too...

Anyway it's a nice tutorial, if it didn't have pictures of the Dream of Five hack I'd ask to put it in the Ultimate Tutorial which would save me the time of doing it myself. Good job and all~

Link to comment
Share on other sites

Btw if people want to save said map sprites for editing, for it to be more "editing friendly":

[spoiler=Standing Sprites]For Standing Map Sprites, in GBA Graphics editor, set the width to 2:

EirikaStandingMapSprite.png

When it's like this:

EirikaStandingMapSpriteactual.png

It's the "16x16" option on the Nightmare Module.

When it's spaced a little bit like Ephraim's:

EphraimStandingMapSprite.png

It's the "16x32" option.

When it's something large like the Fire Dragon or Ninian's Ice Dragon form, change it to Length 4:

NinianIceDragon.png

NinianIceDragonMapSprite.png

FireDragon.png

FireDrgonMapSprite.png

As well as it's the "32x32" option on the Nightmare Module.

[spoiler=Moving Sprites]Map sprites are the same way, except they are of Width 4, and Height of 60 (I put 64 just to be safe):

LynMapSprite.png

LynMapSpriteActual.png

Palette offsets (just so you can see if it works with others):

FE7 Map Sprite Palette Offsets:

Player Team (Blue): 194594

Enemy Team (Red): 1945B4

NPC Team (Green): 1945D4

Stoned?: 1945F4

Link Arena Team 4 (Grey): 194614

Flashback Palette: 194654

Evil looking Palette?: 1946F4

FE6 Map Sprite Palette:

Player Team (Blue): 100968

Enemy Team (Red): 100988

(Follows the same pattern, Green and Gray Arena palettes probably are the two after them)

FE8 Map Sprite Palette:

Player Team (Blue): 59EE20

Enemy Team (Red): 59EE40

Alternatively, when you enter the "Player Team (Blue)", you can increase the "Palette Index" from 0 to see the other ones, instead of entering them manually.

Example, I bet you've never seen these before.

EnemyTactician.png

OMGYourescrewed.png

Link to comment
Share on other sites

^You'd be wrong

owned

I had too much freetime one day

but anyway that stuff IMO doesn't belong in an importing tutorial since we usually distinguish between importing and inserting with importing being transferring from one game to another and inserting being inserting an edited/custom creation. Could be easily remedied by changing the topic title though.

Link to comment
Share on other sites

  • 2 months later...

I'm sorry for sounding so noobish, but I tried following the guidelines and apparently I still fail. I'm trying to get the Female Druid map sprite for Lute in FE8. I did use a codebreaker to change her class, and in the battle animations, she is a female druid. The overworld map sprite, however, remains male. I would like to change it, so if anyone would help me with it I would appreciate it, or unless some has the time, could they edit that part of the game so Lute starts as a female Shaman and promotes to Female Druid, with all the sprites? Then just send it to me if possible. If no one wants to or can, then a step-by-step guide showing me would be okay.

Thank you very much~

Link to comment
Share on other sites

I did use a codebreaker to change her class, and in the battle animations, she is a female druid. The overworld map sprite, however, remains male.

This tutorial refers to ROM hacking, not RAM hacking.

There should be a value that makes her sprite a female druid. Heck, if you change her class in memory, it should have the map sprite correspondingly change after it refreshes (aka R button info menu). That or, you're confusing the Male and Female druid battle animations.

Link to comment
Share on other sites

This tutorial refers to ROM hacking, not RAM hacking.

There should be a value that makes her sprite a female druid. Heck, if you change her class in memory, it should have the map sprite correspondingly change after it refreshes (aka R button info menu). That or, you're confusing the Male and Female druid battle animations.

Oh no, I can tell the difference. Male is blocky, female you can see more of a face. The battle animation is female, but not the map sprite. I don't know why, but even as a female shaman, it still was male and not female but her battle animation was definitely female.

And I did exactly that, moved her sprite around, checked info such and such .. didn't change. I know she's not supposed to be a shaman at all, since Lute joins as a mage. When I changed her, she lost her purple color and became a generic blue color like it looks in the multiplayer battle arena thing. The overworld sprite may not have gone through with the female battle animation, which makes no sense.

Edited by ChachaDruid
Link to comment
Share on other sites

  • 3 weeks later...
  • 3 months later...

Hi all,

This is my first time inserting a custom map sprite into FE7, and I am kinda lost as to what to do right now. I tried to import the bitmap but didn't quite work out. (The format and layout is the same as the bitmaps for the current characters. Expert guidance would be well appreciated. Thanks!

Link to comment
Share on other sites

Hi all,

This is my first time inserting a custom map sprite into FE7, and I am kinda lost as to what to do right now. I tried to import the bitmap but didn't quite work out. (The format and layout is the same as the bitmaps for the current characters. Expert guidance would be well appreciated. Thanks!

No one will be able to help you with that little of an amount of information.

Link to comment
Share on other sites

No one will be able to help you with that little of an amount of information.

Problem is, I'm kinda lost as to where I am myself XD.

Ok basically what I have done so far,

I have followed the 2nd post of this tutorial http://forums.grandbell.net/index.php/topic,2709.0.html and finished my map sprites.

However, when I try to do the 1st post, I can't seem to import the picture correct (i.e. after I import, I get junk and when I try to put a pointer to it, the game crashes).

The sprite I am trying to put in is 16x32, and uses the palette provided in the link above.

I suspect I am having a problem at step 3 of the first post, (i.e. I am not sure what is going wrong with my compressor.)

Any help would be greatly appreciated. Thanks!

Alternatively, you can provide a completely different pathway to insert a map sprite if you think this method is inappropriate. ^^

Link to comment
Share on other sites

Problem is, I'm kinda lost as to where I am myself XD.

Ok basically what I have done so far,

I have followed the 2nd post of this tutorial http://forums.grandbell.net/index.php/topic,2709.0.html and finished my map sprites.

However, when I try to do the 1st post, I can't seem to import the picture correct (i.e. after I import, I get junk and when I try to put a pointer to it, the game crashes).

The sprite I am trying to put in is 16x32, and uses the palette provided in the link above.

I suspect I am having a problem at step 3 of the first post, (i.e. I am not sure what is going wrong with my compressor.)

Any help would be greatly appreciated. Thanks!

Alternatively, you can provide a completely different pathway to insert a map sprite if you think this method is inappropriate. ^^

There is probably something wrong with the palette. Make sure it is only using the 16 colors that it is supposed to use, and then paste that image over a pre existing map sprite you already dumped out of the rom. Then, check the palette again and insert it into the rom.

Link to comment
Share on other sites

There is probably something wrong with the palette. Make sure it is only using the 16 colors that it is supposed to use, and then paste that image over a pre existing map sprite you already dumped out of the rom. Then, check the palette again and insert it into the rom.

The palette is the one given on the website right? If yes, then yes, I did go according to the palette.

Just checking, am I supposed to recolour it black and white before compressing it into the ROM?Oh am I supposed to import the palette, no right?

Thanks BTW, and sorry for the slow response. It was 12:00 AM where I was around my last post, and I had school the next day.I attached some samples below JIC I got it wrong and have no idea what you are saying. XD Once again, thanks!

EDIT: Sorry outdated file. Updated

Update: Tried the replacing, worked like a charm. Just can't get the addition to work though. TT

Update 2: The movement one doesn't work though, for some weird reason. It gives me weird lines across it when I import.

Spritestanding.bmp

Spritemoving(glitched).bmp

Edited by go9999
Link to comment
Share on other sites

  • 2 months later...

Everything works fine for me, except one thing. The game doesn't seem to like ephraims standing sprite. When he's on-screen, the sprite blinks in and out with his movements. I tried moving his sprites closer together on his sprite sheet, but all that does is cause the game to reset itself when he loads. Is there any way to fix his standing sprite so it works? All moving sprites are fine.

Link to comment
Share on other sites

Everything works fine for me, except one thing. The game doesn't seem to like ephraims standing sprite. When he's on-screen, the sprite blinks in and out with his movements. I tried moving his sprites closer together on his sprite sheet, but all that does is cause the game to reset itself when he loads. Is there any way to fix his standing sprite so it works? All moving sprites are fine.

The 16 x 16 and the 32 x 16 options. That's usually the main cause.

Link to comment
Share on other sites

The 16 x 16 and the 32 x 16 options. That's usually the main cause.

Yep. Looks like that might have been the problem. But whatever I did to make it keep resetting isn't going away, but I think I know why.

EDIT: Fixed. Thanks guys.

Edited by The Smithy Gang!
Link to comment
Share on other sites

  • 3 months later...

My problems with the animation sprite. Or more specifically 'Another Pointer'

We've inserted our animation at 00FF0150 which is Free Space according to HxD. leaving 'Another Pointer' as is results in the animation not being the inserted one, but rather a Paladin animation.

Changing 'Another Pointer' to 00FF0150 only causes the game to lock up and crash whenever the animation should play.

Nevermind got that working as well. Hooray for experimentation

EDIT

Actually I do have a question. Arch you say you're importing the movement sprite at DD0160. However from my own experimentation, movement sprites write to a much larger area. So are you sure that insertion didn't overwrite something else in the rom?

Edited by Onmi
Link to comment
Share on other sites

  • 2 weeks later...

it's not a necropost if it's the same month

I'm fairly sure that no graphic ever will take up 0x2FEA0 (that's almost two-hundred thousand) bytes of space.

Just for reference - I could assemble ten full-length event scripts and chances are that wouldn't even take up half of that space. The entire area from D00000 to E00000 (well there might be something in the DE0000? area but we don't know) is free. I highly doubt that you'll take up any significant portion of that with graphics.

Link to comment
Share on other sites

  • 3 years later...

For some reason it's never been specified that using Paint will destroy palette indexing, so I've added a slight addendum to this tutorial instructing users to ALWAYS USE USENTI. You're allowed to copy and paste graphics from Paint into Usenti, but your final product should always be put together in Usenti. Sorry to anyone whose lives we fucked up over the last... 5 years.

Edited by Agro
Link to comment
Share on other sites

For some reason it's never been specified that using Paint will destroy palette indexing, so I've added a slight addendum to this tutorial instructing users to ALWAYS USE USENTI. You're allowed to copy and paste graphics from Paint into Usenti, but your final product should always be put together in Usenti. Sorry to anyone whose lives we fucked up over the last... 5 years.

It adds some colors during resizing, right?

Link to comment
Share on other sites

  • 4 months later...

don't b& me please I have a wife and 3 children

I hope I don't come off as dim, but I searched through Resources and couldn't find any other topics about inserting map sprites. I was wondering how I would go about that. Would I just replace a vanilla sprite with the custom one in GBAGE using the import bitmap option, or is there some other way? Do I need to mess with palettes?

Edited by Tchyrimi or halfrohp
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...