- Opcode: 0x069
- Short name: BATTLE
- Long name: Start a battle
Argument
none
Stack
Battle Flags
BATTLE
Description
Begin a battle with the given encounter id.
Runtime function: SCRIPT_BATTLE (0x523294). The opcode pops the battle flags first, then the encounter id:
ENCOUTER_BATTLE_FLAG = script_pop();
MenuState_opcode_menu_id = script_pop();
globalFieldNextModuleID = 3;
The field module hands MenuState_opcode_menu_id to the main module handler, which writes it to COMBAT_SCENE_ID before launching the battle module. See Encounter Trigger Runtime for the complete handoff.
Battle Flags
+0: Regular battle.
+1: No escape?
+2: Suppress normal battle music handling (reported as disabling victory fanfare / music behavior)
+4: Inherit countdown timer from field.
+8: No Item/XP Gain?
+16: Use current music as battle music.
+32: Force preemptive attack
+64: Force back attack
+128: Suppress preemptive/back-attack, forcing a normal battle start.
Runtime-confirmed bits on PC 2000: +1 sets the cannot-run state, +2 changes normal battle music handling, +4 enables inherited countdown timer handling, +32 forces preemptive attack, +64 forces back attack, and +128 suppresses preemptive/back-attack. +8 and +16 need further verification.