Author Topic: [FF8] What gameplay enhancements interest you?  (Read 950 times)

gaaasstly

  • Fast newbie
  • *
  • Posts: 26
  • Karma: 2
    • View Profile
[FF8] What gameplay enhancements interest you?
« on: 2017-06-07 15:53:25 »
I began playing FF8 again and have been making small adjustments to gameplay I feel are quality of life improvements. One could argue the vanilla game is too easy and certain proposed changes will make it easier, but that is not the focus of this thread. I want to take suggestions the community has and possibly implement them.

I'll begin with something I posted in another thread:

Save Anywhere:
Spoiler: show
Save Anywhere - Address (set value to 1 and freeze):
Code: [Select]
FF8_EN.exe+18FEA89
Save Anywhere - Patch:
Code: [Select]
Save Point

FF8_EN.exe+1221CF | 8A 88 D1 00 00 00        | mov cl,byte ptr ds:[eax+D1]             | mov cl, 1
FF8_EN.exe+1221D7 | 80 C9 01                 | or cl,1                                 | nop
FF8_EN.exe+1221E6 | 80 E1 FE                 | and cl,FE                               | nop

Loading Zone

FF8_EN.exe+12BE1D | 8A 90 D1 00 00 00        | mov dl,byte ptr ds:[eax+D1]             | mov dl, 1
FF8_EN.exe+12BE2D | 80 E2 FC                 | and dl,FC                               | nop


I was also interested in allowing any GF to be junctioned simultaneously by all of the characters. I had partial success by writing the value (flag) that determines which GF(s) a character has junctioned. I will eventually determine which instruction(s) disable the GF once it has been junctioned and modify them accordingly. For now, you will have to live with this screenshot:

« Last Edit: 2017-06-10 03:10:50 by gaaasstly »

Girl next door

  • Cool newbie
  • *
  • Posts: 86
  • Karma: 1
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #1 on: 2017-06-07 20:03:35 »
I don't think it's a good idea, the game is already too easy as you can kill all the ennemies until Adel just by using Gfs. I think it's more interesting to give the summoner status to a character (like Yuna in FFX for example). I don't know if it's possible. In FFVIII Reloaded by mexico, all the GFs commands have been removed and you received a GF Scroll at the end of test seed. That's the only way to use GFs in battle. That's not perfect because if you like GFs, you should have to change your junctions often. But well, that's a possible way.

gaaasstly

  • Fast newbie
  • *
  • Posts: 26
  • Karma: 2
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #2 on: 2017-06-10 03:00:07 »
Having a "summoner" is an interesting idea for FF8, but I do not think it would work well with the plot or mechanics without significant modification. It could be done, roughly, with code patches, but it would not "feel good". The only character that makes sense (at least to myself) would be Rinoa, but not until after the party defeats Edea and her powers are passed on to Rinoa. That is a long time to not have access to your GF's. If you are really pressed to do something like this, it would be much easier to not junction anything until you have access to Rinoa after that point in the story. I would categorize this type of thing as a mod or, if taking the latter approach, a challenge run, but not a gameplay enhancement.

Again, I am not interested in discussing if changes make the game easier/harder in this thread. If you really want the game to be as hard as possible: run from every battle, do not junction, do not use magic, do not upgrade your weapons, do not use items, etc.; there are countless ways to challenge yourself in the vanilla game.

As for junctioning all GF's simultaneously to any character, I found the instructions I needed. Currently, you cannot unequip a GF once it has been junctioned while the patch is enabled, but I am working on that.
« Last Edit: 2017-06-11 04:49:21 by gaaasstly »

gaaasstly

  • Fast newbie
  • *
  • Posts: 26
  • Karma: 2
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #3 on: 2017-06-11 04:48:07 »
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.

Code: [Select]
[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)
« Last Edit: 2017-06-15 19:35:41 by gaaasstly »

CoolMitten

  • Fast newbie
  • *
  • Posts: 15
  • Karma: 0
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #4 on: 2017-06-17 18:48:37 »
I like your idea of creating a "summoner class." I've been playing around with something similar but a little different: creating a class-based character set and dividing GFs accordingly (with rebalance/reassignment of a few abilities to make the classes more delineated/distinct). Give it some flavor and spice to really bring out the characters' personalities, also adding value to the fun in acquiring a new GF.

What I've really wanted for a while is to find a way to implement FFVII-style limit breaks in VIII (cumulative damage counter to pass threshold to make attack -> limit, and then reset). Would be wonderful to change threshold value multiplier too to make 1 -> 2 -> 3 -> 4 style tiers in vein of Omnislash = Lionheart. I think that this would add a ton of identity to the characters and really make big battles POP.

Who didn't love it in VII when the limit bar would flash rainbows, while you were down on your luck in a big boss battle, and a character would start popping off big hits, coming up with a clutch victory. This, of course, would be with enemy rebalance to avoid making the game "too easy" (but also not too tough).

That's what I'd like to work on and create VIII (trying to figure out where to start). Foreseeable problems with creating something like this? Thoughts? Questions? Feelings? Anyone know of any attempt to do something like this before?
« Last Edit: 2017-06-17 18:51:12 by CoolMitten »

gaaasstly

  • Fast newbie
  • *
  • Posts: 26
  • Karma: 2
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #5 on: 2017-06-18 02:28:20 »
There are a few things I plan to change/improve with the summoner mod and I might take it further if it does not take too much time. Unfortunately, changing portions of the story is not one of them, so unless someone wants to put that effort in, whatever I come up with will have to suffice.

As for your 7 x 8 Limit Break idea, I can help make that a reality, though not until Tuesday-ish. Contact me through Personal Message to stay updated on development.
« Last Edit: 2017-06-19 01:03:36 by gaaasstly »

volvania

  • Fast newbie
  • *
  • Posts: 48
  • Karma: 0
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #6 on: 2017-06-19 04:16:28 »
I have alot of ideas and we can change everything in the game so far story dialog quests items abilites cards , and i want to make my perfect ffviii mod but there is one thing stopping the mod to be fun and that is the stupid Ai . We can change that in .dat files but so far two people know or rather understand the code (not fully) if only there is explnation or a tool to change the dump ai we could make the perfect ffviii mod

gaaasstly

  • Fast newbie
  • *
  • Posts: 26
  • Karma: 2
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #7 on: 2017-06-20 19:44:25 »
... (cumulative damage counter to pass threshold to make attack -> limit, and then reset) ...

The obstacle I am facing is an intuitive way to represent the Limit Gauge value (because there is not one) without extensive patches. I would like to figure this out before I begin.

... Would be wonderful to change threshold value multiplier too to make 1 -> 2 -> 3 -> 4 style tiers in vein of Omnislash = Lionheart. ...

There is no easy way to select which Limit Break/Final Blow to use from a menu. The game was programmed with space for one sub-command (Attack>Limit Break). The bytes immediately after are for Quistis' Blue Magic.
« Last Edit: 2017-06-21 01:41:38 by gaaasstly »

gaaasstly

  • Fast newbie
  • *
  • Posts: 26
  • Karma: 2
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #8 on: 2017-06-26 03:27:54 »
There is no ETA on an updated Summoner or the FF7 x FF8 Limit Break scripts. I will probably finish the Summoner script next, after I finish a request to always draw 100 magic, unless someone can help me RE the UI or has some slick idea on how to add a Limit Gauge and select Limit Breaks from the Command list (like Quistis' Blue Magic).

I finally had time to finish the idea I mentioned in the OP. I have not tested this beyond Squall and Qusitis, but I am confident it will work as intended; however, if it does not, let me know so I can fix it.

Video (gif):


Instructions:
Quote
To equip a GF:
Enable the script and equip any GF to any character

To unequip a GF:
Enable the Unequip <Character> script

Break GF Limit:
Code: [Select]
[ENABLE]
FF8_EN.exe+DF5E6:
db 90 90 90 90 90 90 90

FF8_EN.exe+E2D6F:
db 90 90
db 90 90
db 90 90

[DISABLE]
FF8_EN.exe+E2D6F:
test esi,ebx
je FF8_EN.exe+E2D75
mov [eax],dl

FF8_EN.exe+DF5E6:
mov [eax*4+"FF8_EN.exe"+198B2E5],bl

Unequip All:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
xor ecx,ecx
// Field
loop1_begin:
mov eax,98
mul ecx
inc ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
cmp ecx,7
jb loop1_begin
xor ecx,ecx
// Quezacotl -&gt; Eden
loop2_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop2_begin
xor ecx,ecx
// Menu
loop3_begin:
mov eax,1C
mul ecx
inc ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
cmp ecx,7
jb loop3_begin
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)[code]

[b]Unequip Squall:[/b]
[code][ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,0
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,0
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)

Unequip Zell:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,1
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,1
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)

Unequip Irvine:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,2
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,2
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)

Unequip Quistis:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,3
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,3
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)

Unequip Rinoa:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,4
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,4
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)

Unequip Selphie:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,5
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,5
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)

Unequip Seifer:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,6
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,6
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)

Unequip Edea:
Code: [Select]
[ENABLE]
ALLOC(newmem,1024)

newmem:
// Prologue
push eax
push ecx
// Field
mov eax,98
mov ecx,7
mul ecx
mov word ptr [eax+FF8_EN.exe+18FE140],0
xor ecx,ecx
// Quezacotl -&gt; Eden
loop_begin:
mov eax,C
mul ecx
inc ecx
mov byte ptr [eax+FF8_EN.exe+198B2E5],FF
cmp ecx,10
jb loop_begin
// Menu
mov eax,1C
mov ecx,7
mul ecx
mov word ptr [eax+FF8_EN.exe+198B6AE],0
// Epilogue
pop ecx
pop eax
retn

CREATETHREAD(newmem)

[DISABLE]
DEALLOC(newmem)
« Last Edit: 2017-06-26 03:39:22 by gaaasstly »

slothica

  • Fast newbie
  • *
  • Posts: 6
  • Karma: 1
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #9 on: 2017-07-02 23:14:01 »
Probably something to replace the terrible Junction system and add new TT cards.

Lunareste

  • Fast newbie
  • *
  • Posts: 5
  • Karma: 0
    • View Profile
Re: [FF8] What gameplay enhancements interest you?
« Reply #10 on: 2017-07-29 03:19:20 »
Actually, I think having Rinoa not need any junctions after the Ragnarok scene would be justified by the plot.