Looks like you'd want to change a pointer table in GAME.EMI. Here's what I got from tracing assembly:
801b2808 94440000: lhu $a0(80116cf8), 0x0000(v0)([801b52f8] = 80bf)
...
8014c0e0 3084ffff: andi $a0(000080bf), 0xffff
8014c0e4 00042342: srl $a0(000080bf), 0x0d
8014c0e8 14800003: bne $a0(00000004), $r0(00000000), 0x8014c0f8
8014c0ec 00051040: sll $v0(801b52f8), $a1(000000bf), 0x01
8014c0f8 24020002: move $v0(0000017e), 0x0002
8014c0fc 14820008: bne $a0(00000004), $v0(00000002), 0x8014c120
8014c100 24020004: move $v0(00000002), 0x0004
8014c120 14820008: bne $a0(00000004), $v0(00000004), 0x8014c144
8014c124 2482ffff: addiu $v0(00000004), $a0(00000004), 0xffff
8014c128 3c02801e: lui $v0(00000003), 0x801e
8014c12c 3442b000: ori $v0(801e0000), 0xb000
8014c130 00051840: sll $v1(00000002), $a1(000000bf), 0x01
8014c134 00621821: addu $v1(0000017e), $v0(801eb000)
8014c138 94630000: lhu $v1(801eb17e), 0x0000(v1)([801eb17e] = 109c)
I'm looking at the string "action"
First, it loads 0x80bf from the memory (which in turn, is from GAME.EMI), then it extracts only the lower bytes (0xbf), multiplies that by two and adds it to a base address for a pointer table.
0xbf indicates that the 0xbf-th (or 191st) pointer is to be read, and the 191st pointer does point to "action"
The address to this pointer is 0x000202f8 in GAME.EMI, hope that helps