[FF7PC-98/Steam] Multiple mods and Modding Framework-The Reunion [R06f]

  • Thread starter Thread starter DLPB_
  • Start date Start date
Status
Not open for further replies.
I had time to take another look at this. Fresh install of FF7; removed existing installs first, and checked the registry afterwards, so I know I've not got some half-and-half affair whose data path points into an old install. Applied 1.02 patch and Aali's drive 0.8.1; Bugenhagen's spiel goes by without problems. Install the Reunion, black screen as before. Haven't touched Anxious Heart yet.
I checked it.  Your flevel/exe plays perfectly on my 1998 version of FF7. This isn't a problem with The Reunion. Unless some sort of freaky combination of things plays a part.  I guess we'll have to see how R06 holds up.
 
Last edited:
New Cid by Kal is much better.  A definite improvement.  I've updated next Reunion to use it and the parachute issue Kaldarasha has also fixed.
 
Code: [Select]
Code:
Procedure FieldSetCharModelID905608; stdcall; //New opcode 1ABegin  asm  xor eax,eax  mov al,[$CC0964]  xor ecx,ecx  mov cx,[eax*2+$CC0CF8]  mov edx,[$CBF5E8]  xor eax,eax  mov al,byte ptr [edx+ecx+01] // CharID  mov dl,byte ptr [edx+ecx+02] // Value  imul ax, ax, $84  mov [eax + ($DBFD38 + $54) ], dl  // Store value  xor edx,edx  mov dl,[$CC0964]  add [edx*2+$CC0CF8],3 //advance script by 3 bytes  mov eax,1  end;End;

Made this for Grimmy.  I'll get Myst6re to add the instruction for it  :-D. It has 2 parameters.  The char ID (vincent is 7) and the Value (0A or 07 in  the case of Vincent and Sep).  I have not tested this in game yet, as I can't until the script has also been added to Makou Reactor. Although my other idea for 1B below would already cover this.

This new function allows the swapping of sephiroth / Vincent.  Cait /Young Cloud from field script.  Next, I'll make opcode 1B stop the resurrection of KOd characters on field (like the needles at Cosmo Canyon Gi cave).
 
Last edited:
While we are at it, does anyone have any problems with field script?  What I mean is... what else could I add to the engine?

At moment I have added materia delete, Set character ID - and I am also adding Check character HP and Change any byte of the Savemap.

Are there any other things I can add that would help modders?

I've added the Savemap changer instead of the char ID change.  It covers it and a whole lot more.

Code: [Select]
Code:
Procedure ChangeSaveMap905608; stdcall; //New opcode 1ABegin  asm  xor eax,eax  mov al,[$CC0964]  xor ecx,ecx  mov cx,[eax*2+$CC0CF8]  mov edx,[$CBF5E8]  mov ax,word ptr [edx+ecx+01] // Offset  mov edx,[edx+ecx+03] // Value  mov cl,byte ptr [edx+ecx+07] // flag (0 = 8 bit,  1 = 16 bit, 2 or above = 32 bit)  cmp ax, 04  jl @label1  // jump if the offset is the checksum  cmp ax, $10F4  jg @label1  // jump if not the SaveMap  cmp cl, $00  jne @label2   mov [$DBFD38 + eax], dl  // Store 8 bit value  jmp @label1  @LABEL2:  cmp cl, $01  jne @label3   mov [$DBFD38 + eax], dx  // Store 16 bit value  jmp @label1  @LABEL3:  mov [$DBFD38 + eax], edx  // Store 32 bit value  @LABEL1:  xor edx,edx  mov dl,[$CC0964]  add [edx*2+$CC0CF8],8 //advance script by 8 bytes  mov eax,1  end;End;
edit.  Allow for value to be a Byte, Word, or DWord.

One example would be the changing of the time value using this opcode to 1000 seconds.  This would be script

1A (Change Save Map).  Parameters (0xB80, 0x3E8, 2).

B80 is the time.  As per the SaveMap offset.  00 being the checksum.  See the wiki.
3E8= 1000.
2 = Set 4 bytes, 32 bit unsigned value.
 
Last edited:
Game Over will now initiate automatically if all 3 characters are KOd in field.

Code: [Select]
Code:
                   if PWord ( (PByte($DBFD38 + $4F8) ^ * $84) + $DBFD38 + $54 + $2C {HP}) ^ = 0 then    //$DC09E5 temp slot member 1                   if PWord ( (PByte($DBFD38 + $4F9) ^ * $84) + $DBFD38 + $54 + $2C {HP}) ^ = 0 then                   if PWord ( (PByte($DBFD38 + $4FA) ^ * $84) + $DBFD38 + $54 + $2C {HP}) ^ = 0 then                   FieldGameOver6142B6;
Next, I have to work out how to deal with the fact that 3 KOd characters can be swapped in PHS. I imagine that if I stop this being allowed, there will be a game hang at points where you are forced to set the party. Unless I can allow it under those circumstances.
 
Last edited:
I like that you turned it into a full savemap changer. It is super versatile like that.
 
Hey all I've been away for awhile so sorry if this has been asked. I install R05C but I don't get any menu enhancement? Everything else works but I still have old menu. Any ideas?

Edit: Never mind I fixed it.
 
Last edited:
While we are at it, does anyone have any problems with field script?  What I mean is... what else could I add to the engine?
There is indeed a few things I would like to have, but that's probably an engine enhancement. So see these ideas as suggestions when you need to clean your mind from another project. ;)
Is it possible to add an additional animation to the eye blink? It would look much better with half closed eyes. I have also a problem that the game use for most models Clouds closed eyes. If the NPC would use another texture as source I could make a big sheet with a lot of eyes for the NPC and another with closed ones.

Another thing I would like to see someday are mouth animation - somehow I like how it looked in ff7 machinabridged. If the mouth will move for every three letters, makes short breaks for spaces and long breaks for dots and commas it may give a good illusion of real speaking.

Dropshadows would still be nice thing to have, I guess to get the shadow to follow a model isn't the big challenge, but disabling it when its not needed and how to disable it seems to be tricky in my eyes. A fade opacity of a model would be perfect, but it doesn't exist, does it? Or maybe a dynamic scale would work better. Anyway there are functions needed to handle the shadows (if they ever will be implemented) to disable them when they are not needed or a character needs a special shadow.

Sound for foot steps. Not a big thing, I guess, but we need a way to tell the game when which place should play which sound file.

I know that I overstate the case, but if I don't ask the chance even lower see something like that.
 
The only one of those that is probably "easy" to add is the footstep sfx. I'm thinking alone lines of field script additions that modders may need. I may look in to what's going on with the eyes, but I doubt I can fix it.
 
Last edited:
I've added a check to see if Red is called Nanaki.  Haven't tested this in field yet, but I think will work.  If not... very minor fixes will be needed. This opcode is needed for my check to implement Charlie's request.


Code: [Select]
Code:
Procedure isNanaki90560C; stdcall; //New opcode 1B. If Red XIII = Nanaki thenVar  i: LongInt;  s: ansistring;Begins:='';  for i:= 0 to 5 do  s:= s+ Char(PByte($DBFFAC + i)^ + $20);if PByte($DBFFAC + 6)^ = $FF then if  UpperCase(s) <> 'NANAKI' then Begin  asm  xor eax,eax  xor ecx,ecx  mov al,byte ptr [$CC0964]  mov cx,word ptr [eax*2+$CC0CF8]  mov edx,[$CBF5E8]  mov ax, word ptr [edx+ecx+01]  end; End else      asm      xor eax,eax // No jump.      end;  asm  xor edx,edx  mov dl,byte ptr [$CC0964]  add word ptr [edx*2+$CC0CF8],ax // Jump amount  add word ptr [edx*2+$CC0CF8],3 //advance script by 3 bytes (opcode + 2 byte jump parameter)  xor eax,eax // Script is allowed to continue without moving to the next group/ID.  end;End;
 
Last edited:
I think we're almost ready for the unveiling of FF7ddraw.  Before I commit to updating Reunion, I need to release it as a quick standalone test along with all SFX.  The sound module needs testing.

The current options are:

[NEW AUDIO]
Enabled=1
Stereo_Output=1
Centre_Battle_SFX=0 The battle SFX panning is rather shoddy.  This option will centre all SFX regardless.
Field_SFX_In_Battle=1   Field SFX (like background alarms) will continue into battle. This is an enhancement, since the original engine in no way supports this.
Music_Balance_Functions=0 Opcodes exist for the music to pan. This was never part of the complete PSX/PC game (although certain scripts do try to use it). This option reinstates it.
Load_SFX_To_Memory=1 Effects 1-999 will be loaded to memory making for super fast access. 1000-65535 will be file only regardless and are for custom effects or voice acting. I didn't notice any delay with file or memory,
 but I use an SSD
Extra_SFX_Reverb=1
Extra_Music_Reverb=1
Audio_Log_Level=1 there are 5 levels.  0 turns off the log entirely.

Although mono currently doesn't work.  I'll add that feature soon enough.

I will have some sort of test in the next week or so.
 
Last edited:
Hello everyone!
First of all, thank you, DLPB, for this mod.

My question is how to make 50% in Junon march mini game? I tried so many times, and the best I can get is 49%. It starts with 23-22% and it's nearly impossible to get 50%. Why this mini game is so hard? It wasn't that hard on PSX as I remember. Or is there another way to beat it easily?
 
The original game didn't have any proper programming or scoring whatsoever and was half unfinished.  I've deliberately made 50% very hard to do (you don't have to be absolutely perfect).  But if you got 49% then you can do 50.  It's a matter of shaving off a frame. You don't HAVE to get 50%. But if you want to, then you must earn it ;)
 
Last edited:
Keep getting distracted... but we really are getting close.  At moment I am tinkering with ff8 though.  May be able to easily remove black bars in world map and battle.  So that will be cool.  And I'm currently trying to remove critical hit flashes and so on for someone.
 
First off, amazing work on The Reunion Mod. I personally consider it to be a VAST improvement in terms of the localization and overall narration. I appreciate all the hard work you and Luksy put into this effort. Suffice to say my wife and I are enjoying this version of the game since I too wanted to introduce her to FF7 and found the original localization 'sloppy' at best.

In any case, the one scene I personally hold dear is the moment we find out what really happened in Nibelheim when Tifa and Cloud enter the Lifestream together. Now, from what I read it's the bad PC port that accounts for the soundtrack being out of sync when Cloud removes his infantry helmet into the subsequent scene where he tosses Sephiroth into the Lifestream. I was curious if there is hex value I could modify or some patch to properly sync this scene as the Overworld music in the PSX version is timed perfectly and relays the proper 'feels' that I believe my wife will most likely experience as well.
 
Status
Not open for further replies.
Back
Top