Author Topic: (FF7) Randomness Version Difference: Bug or Feature?  (Read 5996 times)

antd

  • *
  • Posts: 49
    • View Profile
In the PC version, the 'random' offsets to the Random Number Lookup Table (RNLUT) increment even while the game is paused.

A random byte is accessed in this way at sub_5C8BA1 (decompiler output):
Code: [Select]
{
  return b_RNLUT[byte_C06740[dword_C06738]++];
}

The c06740 and c06738 offsets increment in a simple way which attempts to point to a random number each time.

However, in the PSX version the offsets are frozen when the game is paused.

It turns out that both implementations can be abused (only useful in a TAS).

So, the mechanics were changed to have the randomness always running in-battle, even when paused, was this change intentional?

I don't know why they would make this change. I haven't seen any problem with the in-battle randomness in the PSX version.
« Last Edit: 2013-09-22 13:34:33 by antd »

Cyberman

  • *
  • Posts: 1572
    • View Profile
Re: (FF7) Randomness Version Difference: Bug or Feature?
« Reply #1 on: 2013-09-22 15:02:59 »
In the PC version, the 'random' offsets to the Random Number Lookup Table (RNLUT) increment even while the game is paused.

A random byte is accessed in this way at sub_5C8BA1 (decompiler output):
Code: [Select]
{
  return b_RNLUT[byte_C06740[dword_C06738]++];
}

The c06740 and c06738 offsets increment in a simple way which attempts to point to a random number each time.

However, in the PSX version the offsets are frozen when the game is paused.

It turns out that both implementations can be abused (only useful in a TAS).

So, the mechanics were changed to have the randomness always running in-battle, even when paused, was this change intentional?

I don't know why they would make this change. I haven't seen any problem with the in-battle randomness in the PSX version.
Our local historian "halkun" probably would answer this as "the PS1 version is actually a more recent revision". I beleive the PC was derived from an older set of FF7 code (and data) because of "internal screw up" stuff going on at Square.

That being said thier are bugs in the PC version that don't exist in the PS1 version as a consequence (shock).

Anyhow that is more likely a reason for this too be the case. It does mean the source is different between PC and PS1 game systems and not just at the low level part (IE display system and IO).

Cyb

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: (FF7) Randomness Version Difference: Bug or Feature?
« Reply #2 on: 2013-09-23 13:36:56 »
...It does mean the source is different between PC and PS1 game systems and not just at the low level part (IE display system and IO).

The "PC is an older PSX build" thing makes sense if the history is to be believed. We've known for a long time that the libraries are identical between both, but this is the first actual evidence I've seen that the PC has difference code.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: (FF7) Randomness Version Difference: Bug or Feature?
« Reply #3 on: 2013-09-23 13:50:37 »
The "PC is an older PSX build" thing makes sense if the history is to be believed. We've known for a long time that the libraries are identical between both, but this is the first actual evidence I've seen that the PC has difference code.

The submarine mini-game is based on the older Japanese version, and not the updated versions released in the west, or international version.

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: (FF7) Randomness Version Difference: Bug or Feature?
« Reply #4 on: 2013-09-23 15:17:53 »
The submarine mini-game is based on the older Japanese version, and not the updated versions released in the west, or international version.

I've never seen the code in the PSX version regarding the mini-games. Indeed, I've seen very little based on ANY mechanics of the PSX game...

Cyberman

  • *
  • Posts: 1572
    • View Profile
Re: (FF7) Randomness Version Difference: Bug or Feature?
« Reply #5 on: 2013-09-23 21:19:13 »
I've never seen the code in the PSX version regarding the mini-games. Indeed, I've seen very little based on ANY mechanics of the PSX game...
Well I am a bit more familiar with it since I spoke with individuals who were playing with the PS1 code on emulators with debuggers and decompilers. (ahem) They seem to think the code had some definate differences and that the PS1 release had significant engine polishing (IE functionally improved) in the PS1 version.

halkun related a story to this I believe it may be in the archives, that the PC version was developed from an inferior version because Square had not the policy to properly archive released code as it were and the version they sent to get ported (Ahem) was an inferior version of the Japanese initial release.
This is nothing new as such things do happen. Square fixed this on future projects by initiating a more stringent policy on code and data. The video I believe suffered a similiar fate I suspect as well. I do believe the ORIGNAL video was rendered in a higher quality and decimated for the PS1 this did mean the PC had better quality video BUT they did some things caused by  PC software limitations (heh).

:D
Cyb

Kaldarasha

  • *
  • Posts: 2449
  • Prince of Model Editing
    • View Profile
Re: (FF7) Randomness Version Difference: Bug or Feature?
« Reply #6 on: 2013-12-05 12:40:59 »
Quote
The "PC is an older PSX build" thing makes sense if the history is to be believed.
It all is mentioned more detailed here:
Why The FF7PC Port Sucked