[FE7] Preparation Screen Making Opening Scene Repeat

I’m currently working on a ROM hack for fire emblem 7. I’m working on my first chapter with a preparations screen and am running into some confusion. After the preparations some Ally characters I had loaded disappear and the opening cutscene that takes place before preparations repeat itself. Not sure what to do. I’ll attach my code for the chapter below (This is my first post so I apologize if this is incorrect formatting).

> //Made by markyjoe1990 of Youtube
> //Modified by Nintenlord
> //Modified by Crazycolorz5 and Arch
> 
> #define DISABLE_TUTORIALS
> #include EAstdlib.event
> 
> EventPointerTable(0x1B,Pointers)
> 
> 
> ORG 0x010E93E0
> Pointers:
> POIN Turn_events 
> POIN Character_events 
> POIN Location_events 
> POIN Misc_events
> POIN TrapData TrapData
> POIN EliwoodNM EliwoodHM HectorNM HectorHM
> POIN Good Good Good Good //Same order as the above line, but we probably don't need to differentiate between them
> POIN Opening_event Ending_event
> 
> EliwoodNM:
> EliwoodHM:
> HectorNM:
> HectorHM:
> UNIT
> 
> Good:
> UNIT 0x03 0x01 0x01 Level(3,Ally,True) [3, 0] [3, 1] [0x09] [0]					//Lydus
> UNIT 0x0A 0x29 0x00 Level(2,Ally,True) [3, 0] [2, 2] [0x01] [0]					//Ramona
> UNIT 0x1C 0x0A 0x00 Level(4,Ally,True) [3, 0] [3, 4] [0x01, 0x05, 0x6B] [0]		//Nevin
> UNIT 0x15 0x2F 0x00 Level(2,Ally,True) [3, 0] [4, 2] [0x2C, 0x6B] [0]			//Cat
> UNIT 0x19 0x2A 0x00 Level(1,Ally,True) [3, 0] [1, 3] [0x03, 0x17, 0x6C] [0]		//Randall
> UNIT 0x25 0x28 0x00 Level(3,Ally,True) [3, 0] [6, 1] [0x01, 0x16] [0]			//Simon
> UNIT 0x2C 0x12 0x00 Level(5,Ally,True) [3, 0] [3, 3] [0x1F, 0x28, 0x6B] [0]		//Briek
> UNIT 0x1A 0x3C 0x00 Level(4,Ally,True) [15, 6] [3, 0] [0x01, 0x6A] [0]			//Gabriel
> UNIT
> 
> Bad:
> UNIT 0x0A 0x39 0x01 Level(8,Enemy,True) [17, 21] [15, 20] [0x2A, 0x28] [0x03, 0x03, 0x09, 0x20]		//Lort
> UNIT 0x14 0x28 0x00 Level(6,Enemy,True) [17, 21] [11, 18] [0x14] [0x00,0x03,0x09,0x00]				//Cavalier
> UNIT 0x14 0x28 0x00 Level(4,Enemy,True) [17, 21] [12, 19] [0x14, 0x01] [0x00,0x02,0x02,0x00]		 //Cavalier
> UNIT 0x14 0x12 0x00 Level(3,Enemy,True) [17, 21] [16, 17] [0x1F] [0x00,0x03,0x09,0x00]				//Fighter
> UNIT 0x14 0x18 0x00 Level(4,Enemy,True) [17, 21] [13, 20] [0x2C] [0x00,0x03,0x09,0x00]				//Archer
> UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [14, 19] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
> UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [17, 19] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
> UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [15, 18] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
> UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [16, 15] [0x01] [0x00,0x02,0x02,0x00]				//Myrm
> UNIT 0x14 0x18 0x00 Level(4,Enemy,True) [0, 12] [5, 17] [0x2C] [0x00,0x03,0x09,0x00]				//Archer
> UNIT 0x14 0x0E 0x00 Level(6,Enemy,True) [0, 12] [6, 15] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
> UNIT 0x14 0x39 0x00 Level(5,Enemy,True) [0, 12] [8, 13] [0x1F] [0x00,0x03,0x09,0x00]				//Bandit
> UNIT 0x14 0x39 0x00 Level(5,Enemy,True) [0, 12] [0, 18] [0x1F] [0x00,0x02,0x02,0x00]				//Bandit
> UNIT 0x14 0x39 0x00 Level(4,Enemy,True) [0, 10] [7, 10] [0x1F] [0x00,0x03,0x09,0x00]				//Bandit
> UNIT 0x14 0x12 0x00 Level(5,Enemy,True) [0, 12] [0, 12] [0x28] [0x00,0x02,0x02,0x00]				//Fighter
> UNIT 0x14 0x18 0x00 Level(4,Enemy,True) [17, 21] [12, 8] [0x2C] [0x00,0x02,0x02,0x00]				//Archer
> UNIT 0x14 0x39 0x00 Level(5,Enemy,True) [17, 21] [17, 5] [0x1F] [0x00,0x02,0x02,0x00]				//Bandit
> UNIT 0x14 0x39 0x00 Level(6,Enemy,True) [17, 21] [15, 8] [0x1F] [0x00,0x02,0x02,0x00]				//Bandit
> UNIT 0x14 0x12 0x00 Level(5,Enemy,True) [17, 21] [14, 10] [0x1F] [0x00,0x03,0x09,0x00]				//Fighter
> UNIT
> 
> HELP:
> UNIT 0x1A 0x3C 0x00 Level(4,Ally,True) [17, 5] [3, 0] [0x01, 0x6A] [0]						//Gabriel
> UNIT
> 
> Recruits:
> UNIT 0x1D 0x15 0x00 Level(6,Ally,True) [15, 4] [15, 5] [0x14, 0x6B] [0] 					//Iris
> UNIT
> 
> NotTheBoys:
> UNIT 0x14 0x3A 0x00 Level(3,Enemy,True) [11, 12] [11, 12] [0x1F] [0x00,0x04,0x01,0x00]		//Village Pirate
> UNIT 0x14 0x3A 0x00 Level(3,Enemy,True) [16, 12] [16, 12] [0x1F] [0x00,0x04,0x01,0x00]		//Village Pirate
> UNIT 
> 
> Turn_events:
> OpeningTurnEvent(Opening_event)
> TURN 0x00 VillageWreckers [03, 03] 0x00 0x00
> TURN 0x00 VillageWreckers [05, 05] 0x00 0x00
> END_MAIN
> 
> VillageWreckers:
> LOU1 NotTheBoys
> ENUN
> END_MAIN
> 
> Character_events:
> END_MAIN
> 
> Location_events:
> Village(0,FriendsBeHere,15,4)
> Door(2,11)
> Chest(0x0D,1,14)
> END_MAIN
> 
> FriendsBeHere:
> MUSI
> FADI 10
> TEX1 0x81B
> REMA
> MUNO
> LOU1 Recruits
> REMA 
> ENDA
> END_MAIN
> 
> Misc_events:
> CauseGameOverIfLordDies
> DefeatAll(Ending_event)
> END_MAIN
> 
> Opening_event:
> BACG 0x1D 				//loads Mountain Background
> FADU 10 				//fade out
> TEX1 0x83C 				//displays that text
> REMA					//Removes Text 
> LOU1 Good				//Loads Good units
> ENUN					//Waits to Load 
> TEX1 0x83D				//Loads the Gabriel bumping text
> REMA					//Clears Text 
> LOU1 Bad				//Loads Bad 
> ENUN					//Waits 
> CAM1 [4, 3]				//Centers Camera
> TEX1 0x83E				//Text Begging for help and explaining Caravan is here
> REMA					//ClearScreen
> ENDB
> END_MAIN  
> 
> Ending_event:
> MoveToChapter(0x05)
> ENDA
> 
> TrapData:
> ENDTRAP
> 
> 
> MESSAGE Events end at offset CURRENTOFFSET
> //The map for this chapter is at offset: ????????

You have the opening event under turn events, don’t do that.

2 Likes

Hey thanks for the input! Getting rid of opening event under turn events fixed the scene repetition issue I was having! However, some of Ally units are still disappearing and my Bad units are no longer loading. I really appreciate your help Im definitely on the right track now. Any more advice towards these remaining issues would be awesome. Thanks again. (I’ll attach the updated code if that helps)

//Made by markyjoe1990 of Youtube
//Modified by Nintenlord
//Modified by Crazycolorz5 and Arch

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x1B,Pointers)


ORG 0x010E93E0
Pointers:
POIN Turn_events 
POIN Character_events 
POIN Location_events 
POIN Misc_events
POIN TrapData TrapData
POIN EliwoodNM EliwoodHM HectorNM HectorHM
POIN Good Good Good Good //Same order as the above line, but we probably don't need to differentiate between them
POIN Opening_event Ending_event

EliwoodNM:
EliwoodHM:
HectorNM:
HectorHM:
UNIT

Good:
UNIT 0x03 0x01 0x01 Level(3,Ally,True) [3, 0] [3, 1] [0x09] [0]					//Lydus
UNIT 0x0A 0x29 0x00 Level(2,Ally,True) [3, 0] [2, 2] [0x01] [0]					//Ramona
UNIT 0x1C 0x0A 0x00 Level(4,Ally,True) [3, 0] [3, 4] [0x01, 0x05, 0x6B] [0]		//Nevin
UNIT 0x15 0x2F 0x00 Level(2,Ally,True) [3, 0] [4, 2] [0x2C, 0x6B] [0]			//Cat
UNIT 0x19 0x2A 0x00 Level(1,Ally,True) [3, 0] [1, 3] [0x03, 0x17, 0x6C] [0]		//Randall
UNIT 0x25 0x28 0x00 Level(3,Ally,True) [3, 0] [6, 1] [0x01, 0x16] [0]			//Simon
UNIT 0x2C 0x12 0x00 Level(5,Ally,True) [3, 0] [3, 3] [0x1F, 0x28, 0x6B] [0]		//Briek
UNIT 0x1A 0x3C 0x00 Level(4,Ally,True) [15, 6] [3, 0] [0x01, 0x6A] [0]			//Gabriel
UNIT

Bad:
UNIT 0x0A 0x39 0x01 Level(8,Enemy,True) [17, 21] [15, 20] [0x2A, 0x28] [0x03, 0x03, 0x09, 0x20]		//Lort
UNIT 0x14 0x28 0x00 Level(6,Enemy,True) [17, 21] [11, 18] [0x14] [0x00,0x03,0x09,0x00]				//Cavalier
UNIT 0x14 0x28 0x00 Level(4,Enemy,True) [17, 21] [12, 19] [0x14, 0x01] [0x00,0x02,0x02,0x00]		 //Cavalier
UNIT 0x14 0x12 0x00 Level(3,Enemy,True) [17, 21] [16, 17] [0x1F] [0x00,0x03,0x09,0x00]				//Fighter
UNIT 0x14 0x18 0x00 Level(4,Enemy,True) [17, 21] [13, 20] [0x2C] [0x00,0x03,0x09,0x00]				//Archer
UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [14, 19] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [17, 19] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [15, 18] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
UNIT 0x14 0x0E 0x00 Level(5,Enemy,True) [17, 21] [16, 15] [0x01] [0x00,0x02,0x02,0x00]				//Myrm
UNIT 0x14 0x18 0x00 Level(4,Enemy,True) [0, 12] [5, 17] [0x2C] [0x00,0x03,0x09,0x00]				//Archer
UNIT 0x14 0x0E 0x00 Level(6,Enemy,True) [0, 12] [6, 15] [0x01] [0x00,0x03,0x09,0x00]				//Myrm
UNIT 0x14 0x39 0x00 Level(5,Enemy,True) [0, 12] [8, 13] [0x1F] [0x00,0x03,0x09,0x00]				//Bandit
UNIT 0x14 0x39 0x00 Level(5,Enemy,True) [0, 12] [0, 18] [0x1F] [0x00,0x02,0x02,0x00]				//Bandit
UNIT 0x14 0x39 0x00 Level(4,Enemy,True) [0, 10] [7, 10] [0x1F] [0x00,0x03,0x09,0x00]				//Bandit
UNIT 0x14 0x12 0x00 Level(5,Enemy,True) [0, 12] [0, 12] [0x28] [0x00,0x02,0x02,0x00]				//Fighter
UNIT 0x14 0x18 0x00 Level(4,Enemy,True) [17, 21] [12, 8] [0x2C] [0x00,0x02,0x02,0x00]				//Archer
UNIT 0x14 0x39 0x00 Level(5,Enemy,True) [17, 21] [17, 5] [0x1F] [0x00,0x02,0x02,0x00]				//Bandit
UNIT 0x14 0x39 0x00 Level(6,Enemy,True) [17, 21] [15, 8] [0x1F] [0x00,0x02,0x02,0x00]				//Bandit
UNIT 0x14 0x12 0x00 Level(5,Enemy,True) [17, 21] [14, 10] [0x1F] [0x00,0x03,0x09,0x00]				//Fighter
UNIT

HELP:
UNIT 0x1A 0x3C 0x00 Level(4,Ally,True) [17, 5] [3, 0] [0x01, 0x6A] [0]						//Gabriel
UNIT

Recruits:
UNIT 0x1D 0x15 0x00 Level(6,Ally,True) [15, 4] [15, 5] [0x14, 0x6B] [0] 					//Iris
UNIT

NotTheBoys:
UNIT 0x14 0x3A 0x00 Level(3,Enemy,True) [11, 12] [11, 12] [0x1F] [0x00,0x04,0x01,0x00]		//Village Pirate
UNIT 0x14 0x3A 0x00 Level(3,Enemy,True) [16, 12] [16, 12] [0x1F] [0x00,0x04,0x01,0x00]		//Village Pirate
UNIT 

Turn_events:
TURN 0x00 VillageWreckers [03, 03] 0x00 0x00
TURN 0x00 VillageWreckers [05, 05] 0x00 0x00
END_MAIN

VillageWreckers:
LOU1 NotTheBoys
ENUN
END_MAIN

Character_events:
END_MAIN

Location_events:
Village(0,FriendsBeHere,15,4)
Door(2,11)
Chest(0x0D,1,14)
END_MAIN

FriendsBeHere:
MUSI
FADI 10
TEX1 0x81B
REMA
MUNO
LOU1 Recruits
REMA 
ENDA
END_MAIN

Misc_events:
CauseGameOverIfLordDies
DefeatAll(Ending_event)
END_MAIN

Opening_event:
BACG 0x1D 				//loads Mountain Background
FADU 10 				//fade out
TEX1 0x83C 				//displays that text
REMA					//Removes Text 
LOU1 Good				//Loads Good units
ENUN					//Waits to Load 
TEX1 0x83D				//Loads the Gabriel bumping text
REMA					//Clears Text 
LOU1 Bad				//Loads Bad 
ENUN					//Waits 
CAM1 [4, 3]				//Centers Camera
TEX1 0x83E				//Text Begging for help and explaining Caravan is here
REMA					//ClearScreen
ENDB
END_MAIN  

Ending_event:
MoveToChapter(0x05)
ENDA

TrapData:
ENDTRAP


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

Try not loading all the units on top of each other, I guess.

I don’t really do events, much less for FE7, but generally when you are having issues you want to minimaize the variables, strip your event from other things and see if the one you are having trouble with starts working or not, stuff like that.

When you’re at the prep screen, the game will use the units from the EliwoodNM, EliwoodHM, HectorNM, or HectorHM labels for enemies (whichever mode applies). For allies, it will use the Good label (this can be a different label for each mode). Any units loaded during the opening event are discarded before displaying the prep screen.

Since the prep screen enemy unit lists are all empty, it doesn’t load anything.

1 Like