The ending event in this test code I’ve been using (which is a copy/paste from the last bit of Cog of Destiny) fairly clearly demonstrates that _0x87 prevents the player from skipping Eliwood’s forced promotion, then re-enables the Start button after he has promoted (by using _0x89).
[spoiler=Test Code]
#define DISABLE_TUTORIALS
#include EAstdlib.event
EventPointerTable(0x06,Pointers)
ORG 0x0A06D0
BYTE 0x02 0x25 // Force Eliwood mode
ORG 0x0A0748
BYTE 0x01
ORG 0xD00000
Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN TrapData TrapData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event
Bad:
UNIT 0xA0 General 0x00 Level(5,Enemy,0) [04,04] [04,04] [IronSpear] Guard
UNIT Batta Druid Glass Level(10,Enemy,0) [08,07] [08,07] [Flux] Guard
UNIT
Good:
UNIT Eliwood EliwoodLord 0x00 Level(10,Ally,True) [3,3] [3,3] [Rapier, KillingEdge, BodyRing, Elixir] NoAI
UNIT Lyn_t LynLord Eliwood Level(10,Ally,True) [12,06] [12,06] [ManiKatti,EmblemSword,Elixir] NoAI
UNIT
Turn_events:
OpeningTurnEvent(Opening_event)
END_MAIN
Character_events:
END_MAIN
Location_events:
Seize(03,02)
END_MAIN
Misc_events:
CauseGameOverIfLordDies
END_MAIN
Opening_event:
OOBB
LOU1 Good
ENUN
STAL 16
LOU1 Bad
ENUN
ENDA
Ending_event:
MUS1 Triumph
TEX1 0xDEF
MUEN 6
FADI 4
HIDEMAP
STAL 120
_0x87 // Disable Start
BACG 0x1C
FADU 4
SHOWMAP
CAM1 0x1
MUS1 0x3A4
IFET 0x2D 0x87
TEXTIFEM 0xDF0 0xDF3
ELSE 0x2E
ENIF 0x2D
TEXTIFEM 0xDF1 0xDF4
ENIF 0x2E
REMA
MUEN 8
STAL 130
MUS1 0x0
_0x95 0x80 0x2 0x7FFF
HIDEMAP
_0x96 0x80 0x2 0x7FFF
SHOWMAP
ASMC 0x79AF5 // Promote main lord
STAL 1250
_0x89 // Re-enable Start
MUEN 1
IFEM 0x33
FADI 16
HIDEMAP
BACG 0x1C
MUS1 0x3D
FADU 16
SHOWMAP
ELSE 0x34
ENIF 0x33
FADI 16
HIDEMAP
BACG 0x1C
MUS1 0x3E
FADU 16
SHOWMAP
ENIF 0x34
TEXTIFEM 0xDF2 0xDF5
IFEM 0x30
MoveToChapter(0x01)
ENDA
TrapData:
ENDTRAP
MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: ???
[/spoiler]
However, I will say I misspoke about the B button being usable. It isn’t.