• Opcode: 0x069
  • Short name: BATTLE
  • Long name: Start a battle

Argument

none

Stack

Encounter ID

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.