Sorry for the double-post, but I felt like this deserved its own reply and I did not want to create a thread for it.
I thought the idea you proposed of having a character as a dedicated summoner was very interesting. So interesting, in fact, that I implemented it, albeit roughly. Unfortunately, I am not far enough in my current save to find the variable that would allow me to add the restriction of summoning based on story progress, but perhaps it is for the best. I made Rinoa the summoner, for reasons I mentioned in my previous post, but that can be changed. You will see other character-related information, miss learning/Command abilities while Rinoa is not in the party, and miss plot elements (RIP Ifrit x Shiva).
Create an Auto Assembly script in Cheat Engine, paste the following code, and enable it.
[ENABLE]
ALLOC(newmem, 1024)
newmem:
// disable Junction in menu
menu_junction_disable:
push eax
push ebx
test cl,cl
jnz menu_junction_disable_cleanup
mov eax,FF8_EN.exe+1976C75
mov bl,0
menu_junction_disable_begin_loop:
cmp byte ptr [eax],4
je menu_junction_disable_cleanup
inc eax
inc bl
cmp bl,8
jb menu_junction_disable_begin_loop
inc cl
menu_junction_disable_cleanup:
pop ebx
pop eax
menu_junction_disable_original:
mov [esi+40],cl
test dh,-80
jmp menu_junction_disable_return
// disable Junction in sub-menu
submenu_junction_disable:
cmp byte ptr [FF8_EN.exe+1976C80],0
jne submenu_junction_disable_original
cmp byte ptr [FF8_EN.exe+1976C62],4
jne submenu_junction_disable_return
submenu_junction_disable_original:
mov word ptr [esi+10],0004
jmp submenu_junction_disable_return
FF8_EN.exe+C1056:
jmp menu_junction_disable
nop
menu_junction_disable_return:
FF8_EN.exe+C11FC:
jmp submenu_junction_disable
nop
submenu_junction_disable_return:
FF8_EN.exe+DBCF2:
nop
nop
nop
FF8_EN.exe+DBF68:
nop
nop
nop
[DISABLE]
FF8_EN.exe+DBF68:
mov [esi+43],al
FF8_EN.exe+DBCF2:
mov [esi+43],al
FF8_EN.exe+C11FC:
mov word ptr [esi+10],0004
FF8_EN.exe+C1056:
mov [esi+40],cl
test dh,-80
DEALLOC(newmem)