Jump to content



Toggle shoutbox Shoutbox Open the Shoutbox in a popup

@  Elwood : (02 May 2025 - 07:37 AM) When it was active, this place was some of the most fun I've ever had on the internet.
@  Elwood : (02 May 2025 - 07:37 AM) Really wish I liked Discord better so I could hang out with you guys again. I just really prefer forums to Discord. :/
@  Elwood : (02 May 2025 - 07:34 AM) Lol Blazer probably just keeping it up so I can leave it as my homepage for Firefox!
@  Valke : (04 April 2025 - 10:57 AM) wow i cant believe this site is still up
@  acceptance : (27 January 2025 - 08:32 PM) You're right, it really is nostalgic. Totally with Shu on that.
@  Shu : (15 November 2024 - 09:50 PM) Right you are
@  Elwood : (01 August 2024 - 03:41 AM) Wow a new post! ....aaaand it's a bot. Still, it's strangely nostalgic.
@  Oblivion Knight : (26 February 2024 - 11:30 AM) Whoa I can edit a typo. The technology.
@  Oblivion Knight : (26 February 2024 - 11:29 AM) Obligatory message.
@  Elwood : (02 January 2024 - 04:19 AM) Happy New Year!!!
@  Aaron : (13 February 2023 - 09:19 PM) I'm still out here alive. If you remember me, I hope you're doing well!
@  Aaron : (13 February 2023 - 09:09 PM) 2023 and this place is still up huhh
@  Elwood : (05 January 2023 - 07:58 AM) Ah a Christmas greeting from Wolfie! Even if I saw it way late Merry Christmas and Happy New Year to everybody!
@  Cero : (31 December 2022 - 09:27 PM) Man that bot went crazy
@  Whitewolf8 : (24 December 2022 - 10:02 AM) I return once more on the eve of Christmas to haunt you all again!... Mainly Elwood. Hello!
@  Elwood : (25 November 2022 - 04:58 AM) A bot! Ah the nostalgia!
@  Elwood : (02 November 2022 - 02:30 PM) Yo ho ho ho! Thar be the white wolf!
@  Whitewolf8 : (24 October 2022 - 12:29 AM) Well, blimey it's been a while. Hoy there! If anyone's still alive here anyway.
@  Valke : (21 April 2022 - 12:12 PM) im taking the 2nd shout of 2022 😂
@  Elwood : (03 March 2022 - 10:12 PM) Mwuhahaha! The first shout of 2022 is mine!

Photo

How do I make villages enterable in the Event Assembler?


  • Please log in to reply
25 replies to this topic

#1 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 10 July 2010 - 10:03 PM

I recently got back from my vacation and want to work on my Fire Emblem hack again. I wanted to know how you can make villages visit-able so ican finish my first chapter (which is near complete).

#2 Fire Blazer

Fire Blazer

    You ready?

  • Creator
  • 12,103 posts
  • Gender:Male
  • Location:U.S.A.
  • Interests:Too many to list. =P

Posted 11 July 2010 - 06:07 AM

Um, we can haz more info?

Do you have completely custom events? Or do you want to edit events?

If you want to edit events, that could be uh... tricky. I could give some info on it, maybe (I've never really done it, TBH--I always create events from scratch). Also, I'm assuming your situation is that the map already has a village, but when you go there the 'visit' command doesn't show up?

Bblazer2.png

Signature thanks to Shu.


#3 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 11 July 2010 - 06:26 AM

You're assumption is correct! My map has two villages that I would like to be visitable and I don't know how to make them visit-able. You make it sound like creating events from scratch is easier than editing them so I'm gonna try to start my hack over and do that. I know how to do the beginning stuff due to previous help from Blazer/you.

#4 shadowofchaos

shadowofchaos

    ??????

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 721 posts

Posted 11 July 2010 - 06:43 AM

Source: http://www.feunivers...38


If you have the most recent event assembler, you can use the very useful macro that is defined in EAstdlib.event:

QUOTE
Village(event#,nameofevent,x-coordinate,y-coordinate)

user posted image

#5 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 11 July 2010 - 10:06 AM

!
That link has...everything I could want to know about event assembler! Thank you so much shadowofchaos! You're awesome for this. I'm loving these forums people are so helpful!

#6 Fire Blazer

Fire Blazer

    You ready?

  • Creator
  • 12,103 posts
  • Gender:Male
  • Location:U.S.A.
  • Interests:Too many to list. =P

Posted 11 July 2010 - 01:04 PM

Right, there's now 2 tutorials on event-editing, and thus it should be even easier to learn how to hack them.Even though my tutorial still needs some more revisions done.

The thing with disassembling is that you'll have to know what you're doing. If you're adding new data, you have to know where to add it, and you have to repoint it. I guess I haven't covered this in the Ultimate Tutorial yet, which is why said tutorial is still a WIP despite it being 180+ pages...

Pretty much, to edit what you want to edit:

- Load Nightmare
- Load ROM
- Load Event Reference Module (assuming you're hacking FE7)
- Find the pointer to the events events for whatever chapter you're hacking. So for the prologue, that'd be 0x8CA0720, but you take off the '8'.
- Open up the Event Assembler.
- For "input", open your ROM.
- For "output", type in the name of a text file for the disassembeld events.
- Hit "Offset to chapter event pointer list"
- Type in the offset you got earlier (in this case, 0xCA0720)
- Hit "diassemble"
- Open up your text file it creates. Find the location events (it'll either say Location_events for the label or you'll see a bunch of LOCA events, either clue should help you find it)
- Before those events should be an org 0xOffset. We need to repoint this, so change it to some free space.
- Add a village event using the macro (or 2 village events, in your case). Make sure not to edit anything out of that "group" (you can't insert data because that'll cause problems, so if you want to add data [text = data], you have to repoint it to free space first, so it doesn't interfere with other data--hopefully that made some sense).
- Save
- Assemble the events (Arch's tutorial and the UT both cover that, somewhere--it's pretty much just input text file, output ROM, hit assemble).

That's my generic guide to editing events with disassembling. As I said, it's a little bit tricky, and one little mistake could be "blargh" (which is why you always back up your ROM, especially before trying out something new). It's a lot less work than making your events though, so don't spend your life doing the latter if you don't need to.

Bblazer2.png

Signature thanks to Shu.


#7 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 11 July 2010 - 10:39 PM

I'm almost far enough to actually show a preview of the hack biggrin.gif! Thanks again Blazer and shadowofchaos for all the help you've given me. I wanted to know though...
How do I extend the amount of space on my ROM?

#8 Fire Blazer

Fire Blazer

    You ready?

  • Creator
  • 12,103 posts
  • Gender:Male
  • Location:U.S.A.
  • Interests:Too many to list. =P

Posted 12 July 2010 - 12:40 AM

You have to insert data.

I guess I can add another part to my tutorial on this too, huh.

Pretty much load HxD (a hex editor), load your ROM (drag it onto HxD and that'll do it, or do File-> Open, or Ctrl+O), and go to the end of the game (you can drag the scroll bar to the right all the way to the bottom). At the top menu hit Edit-> Insert Bytes... You can put in a hex or decimal value (just make sure to check which one you want to use).

If you want to know how many bytes are needed to add 1MB or something, use google's built-in converter. Type in "1 megabyte to bytes" or something similar to fit your needs and then enter the number it gives (making sure to check 'decimal'). Alternatively just add 0x100000 which is equal to 1MB.

Also, google has a built-in converter to hex, too. Just type "<decimal number> to hex" and it'll do it. Just a heads-up. XP

And I'm glad to be of help.

Bblazer2.png

Signature thanks to Shu.


#9 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 12 July 2010 - 07:30 AM

Big problem...
I think I messed up creating more space. I put my new map into the empty space and repointed it as the new ultimate tutorial specified (offset +0x08000000) and my game froze with a high pitched noise after creating the tactician sad.gif. I didn't have a back-up of my hack either so now I'm back to square one (learned my lesson). This is how I expanded my space...
Did I do anything wrong?

Attached Files

  • Attached File  442   4KB   0 downloads


#10 Ryrumeli

Ryrumeli

    Hit by a meteor

  • Members
  • PipPipPipPipPipPipPipPip
  • 424 posts
  • Location:Inside a giant Mecha, fighting monsters in your city.

Posted 12 July 2010 - 05:21 PM

Dude, where was your cursor when you inserted the bytes? >___>


The bytes are inserted where your cursor is, so... If your cursor wasn't in address 00FFFFFF, you might have inserted the bytes in the wrong place, effectively pushing things in the rom.


Alternatively, you did remember to, when repointing to the data in the expanded area, use a 09 instead of a 08 in your pointer, right? Else your game would be trying to load something else thinking it was a map, which wouldn't be pretty. >__O




Either of these would be very fixable, so you wouldn't need to restart.
user posted image
QUOTE (Akaihinata)
No Grey you have gay needs


QUOTE (Holy Kensai)
BECAUSE HE CAN CREATE ALL LIFE AND ALL EXISTANCE, BUT HE NEEDS YOUR MONEY!

#11 Fire Blazer

Fire Blazer

    You ready?

  • Creator
  • 12,103 posts
  • Gender:Male
  • Location:U.S.A.
  • Interests:Too many to list. =P

Posted 12 July 2010 - 06:11 PM

The problem is that you put "0x100000" for hex-values. You just put whatever value you want to fill it with there. Sorry for not specifying, that's kinda my fault. I think the default is '00', which is for the best, because '00' is the generic null terminator (usually the game uses '00' or 'FF' to signify the end of same data).

That being said maybe if you upload a patch someone could try and fix it (I have a knack for fixing lame bugs, which is why you never see my ask questions--i usually just answer them myself XD) but if you didn't get very far, you could always just restart... :\

Bblazer2.png

Signature thanks to Shu.


#12 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 12 July 2010 - 09:12 PM

Sorry about the crossed out name :/ . I wouldn't care if it was mine but I'm on my dads account on this computer.

Attached Files

  • Attached File  445   4KB   0 downloads


#13 shadowofchaos

shadowofchaos

    ??????

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 721 posts

Posted 12 July 2010 - 10:04 PM

Try "0x09000010" for your entry on the Nightmare module...
user posted image

#14 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 12 July 2010 - 11:23 PM

I literally palmed my face when you pointed that out. It worked...thanks...

#15 Fire Blazer

Fire Blazer

    You ready?

  • Creator
  • 12,103 posts
  • Gender:Male
  • Location:U.S.A.
  • Interests:Too many to list. =P

Posted 13 July 2010 - 03:38 AM

That's good to hear yo.

Also, instead of attaching large pictures that stretch the page like that, please just upload them onto photobucket, imageshack, or some other image website, and then link to them (or if it doesn't stretch the page, you can just show them with the [ IMG ] tags). Just a heads-up, thanks.

Bblazer2.png

Signature thanks to Shu.


#16 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 15 July 2010 - 11:51 PM

My portraits are inserted, my backups created, map finished, my event beta is ready to be inserted but... My event won't insert. Here's what it looks like...

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,Pointers)


org 0x01000130
Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN BallistaData BallistaData
POIN BadEN BadEH BadEN BadEH
POIN GoodEN GoodEH GoodEN GoodEH
POIN Opening_event Ending_event

Turn_events:
CODE 0x00

Character_events:
CODE 0x00

Location_events:
House(0x01,House1,12,18)
Village(0x02, Village1,2,12)
CODE 0x00

House1:
FADI 0x10
BACG 0x01
FADU 0x10
TEX1 0x819
REMA
ENDA

Village1:
FADI 0x10
BACG 0x35
FADU 0x10
TEX1 0x081A
ITGV Rapier
REMA
ENDA

Misc_events:
CauseGameOverIfLordDies
CODE 0x00

Ballista_events:
CODE 0x00

Opening_event:
CAM1 [2,12]
UnitClear
BlackOff
CAM1 [2,12]
SHCG 00
MUS1 0x32
TEX1 0x813
REMA
FADI 0x10
BACG 0x35
FADU 0x10
TEX1 0x814
REMA
LOEV 0x01 0x01 [2,12]
ENUN
CAM1 [2,12]
MOVE [2,12] [2,13]
ENUN
FADI 0x10
BACG 0x03
FADU 0x10
TEX1 0x815
REMA
ENDA

Ending_event:
MNCH 0x??
ENDA

GoodEN:
UNIT 0x01 0x00 Level(1,Ally,True) [2,13] [2,13] [None] [00000000]
UNIT Empty

GoodEH:
UNIT 0x01 0x00 Level(1,Ally,True) [2,13] [2,13] [None] [00000000]
UNIT Empty

BadEN:
UNIT 0x86 0x46 Level(5,Enemy,True) [7,3] [7,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 Level(1,Enemy,True) [3,4] [3,4] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 Level(1,Enemy,True) [12,3] [12,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT Empty

BadEH:
UNIT 0x86 0x46 Level(5,Enemy,True) [7,3] [7,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 Level(1,Enemy,True) [3,4] [3,4] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 Level(1,Enemy,True) [12,3] [12,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT Empty


#ifdef _FE7_
#define TileMap(TCN,X1,X2,L1,L2,TilePointer) "CODE TCN X1 X2 L1; CODE L2 0x00 0x00 0x00; POIN TilePointer"
#endif

org 0xC9C9C8+(4*0x??) // - Pointer to tile map changes

POIN TileChanges

org 0x????????

TileChanges:
TileMap(0x00,X1,X2,Y1,Y2,TilePointer)
CODE $FF
CODE $00
CODE $00

TilePointer:
CODE (Tile hex)
CODE $00

MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: ????????

Anyone have any idea on what could be wrong?

#17 Fire Blazer

Fire Blazer

    You ready?

  • Creator
  • 12,103 posts
  • Gender:Male
  • Location:U.S.A.
  • Interests:Too many to list. =P

Posted 16 July 2010 - 12:20 AM

What do you mean "it won't insert"? What does the EA do? :\

EDIT: I just realized I put a bad template in my Ultimate Tutorial. Heheheh... *sweats*

CODE
#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,Pointers)


org 0x01000130
Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN BallistaData BallistaData
POIN BadEN BadEH BadEN BadEH
POIN GoodEN GoodEH GoodEN GoodEH
POIN Opening_event Ending_event

Turn_events:
CODE 0x00

Character_events:
CODE 0x00

Location_events:
House(0x01,House1,12,18)
Village(0x02,Village1,2,12)
CODE 0x00

House1:
FADI 0x10
BACG 0x01
FADU 0x10
TEX1 0x819
REMA
ENDA

Village1:
FADI 0x10
BACG 0x35
FADU 0x10
TEX1 0x081A
REMA
ITGV Rapier
REMA
ENDA

Misc_events:
CauseGameOverIfLordDies
CODE 0x00

BallistaData:
CODE 0x00

Opening_event:
CAM1 [2,12]
UnitClear
BlackOff
CAM1 [2,12]
SHCG 00
MUS1 0x32
TEX1 0x813
REMA
FADI 0x10
BACG 0x35
FADU 0x10
TEX1 0x814
REMA
LOEV 0x01 0x01 [2,12]
ENUN
CAM1 [2,12]
MOVE [2,12] [2,13]
ENUN
FADI 0x10
BACG 0x03
FADU 0x10
TEX1 0x815
REMA
ENDA

Ending_event:
MNCH 0x01
ENDA

GoodEN:
UNIT 0x01 0x00 0x00 Level(1,Ally,True) [2,13] [2,13] [0x00] [00000000]
UNIT Empty

GoodEH:
UNIT 0x01 0x00 0x00 Level(1,Ally,True) [2,13] [2,13] [0x00] [00000000]
UNIT Empty

BadEN:
UNIT 0x86 0x46 0x00 Level(5,Enemy,True) [7,3] [7,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [3,4] [3,4] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [12,3] [12,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT Empty

BadEH:
UNIT 0x86 0x46 0x00 Level(5,Enemy,True) [7,3] [7,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [3,4] [3,4] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [12,3] [12,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT Empty


MESSAGE Events end at offset currentOffset


Problems I fixed with your script:

- Unit data didn't have the character leader byte (you have to put the '0x00' in between the class and level data)
- Ballista data was messed up
- You left in unfilled, blank event data, such as the MNCH code still having '0x??', and the tile changes not being done at all.
- IIRC you can't put in "None" for something. Even if you can, just use '0x00' to mean 'none'.
- You had an extra space in your village event
- You don't have any turn events. Unless you have battle preps on, you need a turn event for the first chapter, which I added. Also, if you don't have battle preps, you have to load both ally and enemy units MANUALLY, meaning the game won't know to load 'GoodEN', 'GoodEH', 'BadEN', and 'BadEH' units. Alternatively turn battle preps on in the Chapter Data Editor and use 'ENDB' at the end of your ending scene. This is all in the Ultimate Tutorial btw
- You need to include macros to let them be used. Codes like 'UnitClear' and 'BlackOff' won't work unless you include the macros. To include macros, you can constantly copy/paste them onto your events, or better yet, paste them in a different file, like "NewMacros.txt", and then include them at the top with a code like "#include NewMacros.txt". I may have forgotten to mention this in the Ultimate Tutorial... >_> that's why it's a WIP though
- For the opening event, you used a UnitClear code which seems sort of useless since no units were loaded. But it doesn't really matter anyway.
- WHen you do music, you have to do MUS1 0xMMMM, meaning when you used the code 'MUS1 0x32', it might mess up, you have to do 'MUS1 0x0032'. I'm not sure if this is an actual problem or not but I think it is.

I didn't actually test your events in an event assembler so that's all I found wrong with it just by looking at it. I fixed everything except for the macros (you have to make your own file and do it yourself) so once you do that, try and insert it and hopefully it'll work. If not, let us know what the EA said.

Bblazer2.png

Signature thanks to Shu.


#18 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 24 July 2010 - 04:51 PM

I just got back into doing this due to outside stuff and somethings already come up D:! After inserting my event everything loads normal until the chapter loads. When I press restart chapter it loads the chapter but after that it's just a black screen. I believe it's due to my opening scene so I tampered with it in many ways but with no success. I'm trying to avoid asking as much questions as before but I'm stuck at this one. I used the fixed event you posted and made the changes you said I should. I'll post it if you want but please help.

#19 Fire Blazer

Fire Blazer

    You ready?

  • Creator
  • 12,103 posts
  • Gender:Male
  • Location:U.S.A.
  • Interests:Too many to list. =P

Posted 24 July 2010 - 08:50 PM

Post it...

Bblazer2.png

Signature thanks to Shu.


#20 S84 PATCH

S84 PATCH

    Member

  • Members
  • PipPipPipPip
  • 50 posts

Posted 24 July 2010 - 09:33 PM

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,Pointers)


org 0x01000130
Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN BallistaData BallistaData
POIN BadEN BadEH BadEN BadEH
POIN GoodEN GoodEH GoodEN GoodEH
POIN Opening_event Ending_event

Turn_events:
CODE 0x00

Character_events:
CODE 0x00

Location_events:
House(0x01,House1,12,18)
Village(0x02,Village1,2,12)
CODE 0x00

House1:
FADI 0x10
BACG 0x01
FADU 0x10
TEX1 0x819
REMA
ENDA

Village1:
FADI 0x10
BACG 0x35
FADU 0x10
TEX1 0x081A
REMA
ITGV Rapier
REMA
ENDA

Misc_events:
CauseGameOverIfLordDies
CODE 0x00

BallistaData:
CODE 0x00

Opening_event:
CAM1 [2,12]
MUS1 0x0032
TEX1 0x813
REMA
FADI 0x10
BACG 0x35
FADU 0x10
TEX1 0x814
REMA
LOEV 0x01 0x01 [2,12]
ENUN
CAM1 [2,12]
MOVE [2,12] [2,13]
ENUN
FADI 0x10
BACG 0x03
FADU 0x10
TEX1 0x815
REMA
ENDB

Ending_event:
MNCH 0x01
ENDA

GoodEN:
UNIT 0x01 0x00 0x00 Level(1,Ally,True) [2,13] [2,13] [0x00] [00000000]
UNIT Empty

GoodEH:
UNIT 0x01 0x00 0x00 Level(1,Ally,True) [2,13] [2,13] [0x00] [00000000]
UNIT Empty

BadEN:
UNIT 0x86 0x46 0x00 Level(5,Enemy,True) [7,3] [7,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [3,4] [3,4] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [12,3] [12,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT Empty

BadEH:
UNIT 0x86 0x46 0x00 Level(5,Enemy,True) [7,3] [7,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [3,4] [3,4] [0x8F] [0x03,0x03,0x00,0x20]
UNIT 0x86 0x46 0x00 Level(1,Enemy,True) [12,3] [12,3] [0x8F] [0x03,0x03,0x00,0x20]
UNIT Empty


MESSAGE Events end at offset currentOffset


That's it. I have ENDB on so I can try what I've done so far and I plan to change it after testing :]




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users