Jump to content

Questions about FE7


Krad
 Share

Recommended Posts

So I was insterting this map using Arch's tutorial:

prologue1c1d331fscrn.png

It was placed in DA0000. After this I changed the value in the Event References of the Prologue Map to 0x8DA0000, and changed the values in the Chapter Data Editor to the one from the tileset (1C1D331F). And then, playing the game, I get this screen:

whatq.png

I followed the video step by step, and I'm using a clean rom, so I have no idea why this is happening. What should I do to fix this?

Also, I don't know if this is important or not, but in Arch's video the clean rom has the pointer for the Prologue Map at 0x836AF00, while my rom had it at 0x835EE10. All of the roms I tried (3) had it at 0x835EE10.

Edited by Krad
Link to comment
Share on other sites

You're probably using an outdated NM module, which has the wrong offset. I'd suggest trying to find the latest ones, and trying with them. I've had this problem happen before, as well.

Would you happen to have a link to the latest modules? Because of the ones I've found:

-Nintenlord's doesn't have the Event References.

-The link here is broken.

-The ones for N2 are the ones I'm using right now that point to 0x835EE10.

Link to comment
Share on other sites

Well, since I don't use NM2, I don't think I can help you.

I'm using N1, not 2. I was using N2 module's since they were the only ones I could find, and there hadn't been any problem until this happened.

Link to comment
Share on other sites

Honestly

going to FEU is so retarded

their Nightmare modules are years old

http://www.feshrine.net/hacking/nightmare.html

Would you happen to have a link to the latest modules? Because of the ones I've found:

-Nintenlord's doesn't have the Event References.

-The link here is broken.

-The ones for N2 are the ones I'm using right now that point to 0x835EE10.

- Nintenlord's module downloads are only the modules he made

- :\

- well then the one's for N2 are broken, or some shit. Or you're editing the wrong entry. Just edit the entry that has 0x836AF00, even if it says "0x05" or "0x07". Oh, and revert the old address back, because just judging from the fact that it's in the "0x35XXXX" range, it's probably some tileset related data, which means it might fuck a map if it uses said tileset (idk for sure since this is off the top of my head but just change it from 0x8DA0000 to 0x835EE10 and it should work).

Once you get decent Nightmare Modules and repoint the right pointer, it should work, because just judging by the screenshot it's apparent that you didn't actually repoint the map (the same prologue map is being used, just with a different tileset).

P.S. Download the modules now or forever hold your piece (sp) because my site is going down in 1 day. >_>

Edited by Luffy
Link to comment
Share on other sites

Double posting because I'm dumb and can't figure this out on my own:

1.- How do you make an enemy drop their last item?

2.- It's kind of hard to describe, but sometimes when insterting a portrait, some characters will appear "higher" than some others in the stat screen. Why does this happen, and how can I control it?

That's it for now.

Link to comment
Share on other sites

About that second one, some characters have short mugs, so they decided

to make it so that they don't have their portrait cut off in the stat

screen. It targets particular entries in the portrait table, so if you

don't find a way to control it, you can get around it by not using the

designated entries or use it by have those characters you want to be

raised in the stat screen to use those entries.

Link to comment
Share on other sites

Thanks to both of you.

Now two more questions:

1.-Is it possible to cause a Game Over if any character dies for a single chapter (like 1-P to 1-4 in FE10), then remove that condition for the next chapter? I'm just wondering because it doesn't really make sense for the Lord to arrive in chapter 1 with no one else in his army left.

2.-How do I manage the max unit slots per chapter in the preparation screen (like you can only deploy 10 units this chapter)? Also what makes a unit forced (assuming that unit joined in a previous chapter)?

Link to comment
Share on other sites

The game over is triggered by Event ID 0x65. You can attach that ID to the units' death quotes for one chapter (via the death quote editor in Nightmare) by setting Event ID to 0x65 and selecting a specific chapter in the chapter option (instead of just "any chapter").

The number of units selected are the number of allies loaded before the prep screen, IIRC (haven't dealt with prep screens in some time).

Edited by Optimus OVERTROLL
Link to comment
Share on other sites

In the event data is a pointer to unit data, said pointer contains a list of already joined units. The game recognizes each unit slot as a slot in the battle preps, regardless of whether the character in the data is dead or not.

In other words, you have to edit the number of units deployed onto the map, and that is directly correlated with how many units can be deployed.

Edited by Luffy
Link to comment
Share on other sites

Thanks again.

Now Marcus is just trolling me.

In Chapter 1, Marcus (NPC, and this still persists even when loaded as an Ally) is guarding a castle (40HP, 16 SPD, 8 LCK and 17 DEF). His stat screen however shows him with only 13 avoid, even though he should have 40 at the least, 60 with the gate bonus (he's not weighted down by his weapon). This is not the only problem. The strongest non-boss enemy in this chapter has 22 atk with an Iron Axe, and Marcus should only take 2 damage (+2 def from the gate plus WTA). However, when hit, Marcus loses a whopping 31 HP (OHKO'd if hit when not standing on the gate). Also, when looking at the pre-battle stats, it says that Marcus will receive 68 dmg. Marcus's other stats seem to work well (his attack, hit and crit are correctly displayed, and function well in battle).

And to add to all that, the animations won't turn on for Marcus at all, whether he is an NPC or Ally.

Any idea on how to fix this? Here are the chapter events if it helps:

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x09,Pointers)


org 0xD80280
Pointers:
POIN Turn_events 
POIN Character_events 
POIN Location_events 
POIN Misc_events
POIN BallistaData BallistaData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event

Bad:
UNIT Glass Warrior 0x00 Level(1,Enemy,False) [12,4] [12,4] [steelAxe,Vulnerary,WhiteGem] [0x00,0x03,0x00,0x20] 
UNIT SpecialBandit2 Brigand Glass Level(2,Enemy,True) [5,2] [5,2] [ironAxe,Vulnerary] [0x00,0x03,0x09,0x00] 
UNIT SpecialBandit2 Brigand Glass Level(2,Enemy,True) [12,13] [12,13] [ironAxe,IronSword] [0x00,0x03,0x09,0x00] 
UNIT SpecialBandit2 Brigand Glass Level(3,Enemy,True) [2,8] [2,8] [ironAxe,Vulnerary] [0x00,0x03,0x00,0x20]
UNIT SpecialBandit2 Brigand Glass Level(2,Enemy,True) [4,0] [4,0] [ironAxe,SteelSword] [0x00,0x03,0x09,0x00] 
UNIT Bandit Brigand Glass Level(2,Enemy,True) [12,7] [12,7] [ironAxe] [0x00,0x00,0x00,0x00] 
UNIT Bandit Brigand Glass Level(2,Enemy,True) [13,11] [13,11] [ironAxe] [0x00,0x00,0x00,0x00]
UNIT Bandit Brigand Glass Level(3,Enemy,True) [6,11] [6,11] [ironAxe,Vulnerary] [0x00,0x03,0x00,0x20]
UNIT Bandit Brigand Glass Level(2,Enemy,True) [4,7] [4,7] [ironAxe] [0x00,0x00,0x00,0x00]
UNIT Bandit Fighter Glass Level(3,Enemy,True) [6,15] [6,15] [ironAxe] [0x00,0x03,0x00,0x20]
UNIT Bandit Fighter Glass Level(2,Enemy,True) [7,2] [7,2] [ironAxe] [0x00,0x00,0x00,0x00]
UNIT Bandit Fighter Glass Level(3,Enemy,True) [10,9] [10,9] [ironAxe] [0x00,0x03,0x00,0x20]
UNIT Bandit Fighter Glass Level(2,Enemy,True) [14,5] [14,5] [ironAxe,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Bandit Fighter Glass Level(2,Enemy,True) [8,6] [8,6] [ironAxe] [0x00,0x00,0x00,0x00]
UNIT

Good:
UNIT Lyn_t EliwoodLord 0x00 Level(1,Ally,False) [0,15] [2,13] [Rapier,IronSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Kent Myrmidon Lyn_t Level(1,Ally,False) [0,15] [3,14] [ironSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Sain Myrmidon_F Lyn_t Level(1,Ally,False) [0,15] [2,14] [ironSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Serra Cleric Lyn_t Level(1,Ally,False) [0,15] [1,14] [Heal,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT

Marcus:
UNIT Marcus Paladin Lyn_t Level(5,NPC,False) [12,3] [12,3] [steelSword,SteelSpear,Vulnerary] [0x00,0x03,0x00,0x20]
UNIT

EnemyReinforcements:
UNIT Bandit Fighter Glass Level(2,Enemy,True) [12,0] [12,0] [ironAxe] [0x00,0x00,0x00,0x00]
UNIT Bandit Brigand Glass Level(2,Enemy,True) [9,0] [9,0] [ironAxe] [0x00,0x00,0x00,0x00]
UNIT Bandit Brigand Glass Level(2,Enemy,True) [7,0] [7,0] [ironAxe] [0x00,0x00,0x00,0x00]
UNIT

NewUnits:
UNIT Lowen Cavalier Lyn_t Level(3,Ally,False) [14,7] [14,7] [ironSword,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT Rath Nomad Lyn_t Level(3,Ally,False) [14,8] [14,8] [ironBow,Vulnerary] [0x00,0x00,0x00,0x00]
UNIT

Turn_events:
TURN 0x00 Opening_event [01,00] 0x0 0x00
TURN 0x00 AllyReinforcements [02,02] 0x0 0x00
TURN 0x00 Turns46 [04,06] 0x0 0x00
TURN

Character_events:
CHAR

Location_events:
LOCA

Misc_events:
CauseGameOverIfLordDies
AFEV

Opening_event:
LOU1 Marcus
ENUN
LOU1 Bad
ENUN
OOBB
CURF [12,4]
FADI 10
BACG 0x36
FADU 10
TEX1 0x820
REMA
FIGH Glass Marcus GlassVSMarcus $00000000
UNCR Glass 0x02
MOVE Glass [12,5]
CURF [12,5]
TEX1 0x821
REMA
LOU1 Good
ENUN
CURF [2,13]
FADI 10
BACG 0x1C
FADU 10
TEX1 0x822
REMA
CAM1 [12,5]
CURF [12,5]
TEX1 0x823
ENDA

GlassVSMarcus:
AttackerMiss(01)
DefenderHit(17,02)
EndOfBattle

AllyReinforcements:
LOU1 NewUnits
ENUN
ENDA

Turns46:
LOU1 EnemyReinforcements
ENUN
ENDA

Ending_event:
//MNCH 0x??
ENDA

BallistaData:
BLST


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

The rest of the units in this chapter all work correctly.

Link to comment
Share on other sites

Ok, managed to fix that issue by myself. For some reason, all the data at the end of the Paladin class in the Class Editor was at 0x00 instead of their actual values. Weird, since I'm pretty sure I hadn't touched that at all.

However, something else rose up. I'm trying to get an AREA event where Sain stands on a certain tile, and gets a Killing Edge.

Misc_events:
CauseGameOverIfLordDies
AREA 0x01 SainKillingEdge [8,13] [8,13]
AFEV

SainKillingEdge:
IFCA 0x01 Sain
TEX1 0x0823
REMA
ITGC Sain KillingEdge
ELSE 0x02
ENIF 0x01
ENUF 0x01
ENIF 0x02
ENDA

If Sain steps on the specific tile, he will get the item. However, if anyone else steps on that tile, and later on Sain steps there, he won't get it, even though the ENUF should make him stil get it. Could someone please tell me where I messed up in the code?

Link to comment
Share on other sites

You got most of it down. However, I don't suggest using event ID 0x01 (or 0x02 0x03) because the game tends to reserve these ID's for things (0x01 is for boss battle quotes, 0x02 is for boss death quotes, 0x03 is for seize, and idk about 0x04-0x05 but just to be safe I don't use them).

Also, the area ID shouldn't be the same as the conditional event.

After changes, it should look something like this:

Misc_events:
CauseGameOverIfLordDies
AREA 0x06 SainKillingEdge [8,13] [8,13]
AFEV

SainKillingEdge:
IFCA 0x07 Sain
TEX1 0x0823
REMA
ITGC Sain KillingEdge
ELSE 0x08
ENIF 0x07
STAL 50
ENUF 0x06
ENIF 0x08
ENDA

I haven't actually tested that but it should work. FYI the random STAL is just so that when a character besides Sain waits on the tile, you'll know that the event is working properly because you'll see the game "stall" for a moment. You can remove it if you want (I would remove it once I'm sure everything is working).

The game should read the events as "if character is Sain, load text and give Killing Edge; if not, stall, deactivate the event trigger, and end the event". In the future, if you're doing conditional events, it might be a good idea to comment each section and translate the code into words you can understand easier, or else it can get confusing (this is a simple conditional event though so meh). Then again, it might also be a waste of time. Idk, I'm just throwing out random thoughts.

Good luck with it.

Edited by Luffy
Link to comment
Share on other sites

The event ID's 0x06, 0x07, and 0x08, aren't being used anywhere else, are they? If they are, that could totally interfere with the problem.

Meh, I was going to ask whether you were testing it right, but you said that the STAL is visible, so it can't be that you're not making the appropriate changes.

If that really isn't working for whatever stupid reason, try:

Misc_events:
CauseGameOverIfLordDies
AREA 0x00 SainKillingEdge [8,13] [8,13]
AFEV

SainKillingEdge:
IFCA 0x07 Sain
TEX1 0x0823
REMA
ITGC Sain KillingEdge
ELSE 0x08
ENIF 0x07
ENUF 0x07
ENIF 0x08
ENDA

The area event will always be activate-able, but we're changing how the game recognizes whether the event is activated or not. So the event will constantly activate, and if Sain goes, he'll get a killing edge, and that SHOULD mark event 0x07 as used such that it can't happen anymore (but if not you can always add an "ENUT 0x07"), but if it's not Sain, it'll make event 0x07 unused such that the game can check for Sain again.

Try the code given and if that doesn't work, try it again with ENUT 0x07 after the "ITGC" code, and if that doesn't work, you're on your own, and consider yourself an official member of the "I hate conditional events" club.

Link to comment
Share on other sites

0x06, 0x07 and 0x08 aren't used.

I tried using the code you posted, and it worked aside from Sain being able to farm unlimited Killing Edges. Added the ENUT 0x07 to get this:

IFCA 0x07 Sain
TEX1 0x0823
REMA
ITGC Sain KillingEdge
ENUT 0x07
ELSE 0x08
ENIF 0x07
ENUF 0x07
ENIF 0x08
ENDA

But Sain can still get unlimited Killing Edge's. So I know that the game is just trolling me right now.

What I was thinking of doing to sort of "fix" this, is afer the ITGC, have Sain move to [8,14], and then trigger a Tile change in [8,13] so that the tile which gave KE's wasn't accessible again. Kind of a shitty fix, but when the game just refuses to cooperate...

Link to comment
Share on other sites

It's workable, Arch did it in FE4A and I've probably done it somewhere else...

For one, I doubt you'll be able to move Sain during this event. I don't feel like getting into the specifics.

Try this:

IFCA 0x07 Sain // If character is Sain
IFEF 0x08 0x09 // If event ID 0x09 hasn't been used, activate events
TEX1 0x0823
REMA
ITGC Sain KillingEdge
ENUT 0x09 // Mark event ID 0x09 as used
ELSE 0x0A // if event ID 0x09 has been used, do this event (i.e. nothing)
ENIF 0x08 // end event activation condition +
STAL 10
ENIF 0x0A // end event activation condition -
ELSE 0x0B // if character is NOT Sain execute this event (i.e. nothing)
ENIF 0x07 // end check for Sain +
STAL 10
ENIF 0x0B // end check for Sain -
ENDA

Try that, see what happens, alter it as you think you should if it doesn't work. I said I'd give up but somehow I wound up here again...

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...