Skip to content

Super Nintendo · Improvement

Holy Randomness Batman!

By Lenophis

Final Fantasy III · All hacks & resources →

About this project

This patch replaces the old random number generator (RNG) with a newer one. The old one was a lookup table of 255 values which were “randomly” loaded. The new one adapts a constantly-tweaked frame counter in with the lookup table.

Original game requirements

Final Fantasy III (USA).sfc - NOINTRO
CRC32: A27F1C7A
MD5: E986575B98300F721CE27C180264D890
SHA-1: 4F37E4274AC3B2EA1BEDB08AA149D8FC5BB676E7
SHA-256: 0F51B4FCA41B7FD509E4B8F9D543151F68EFA5E97B08493E4B2A0C06F5D8D5E2

Creator credits

Lenophis
Listed creator

RELEASE 1.6a

Readme & instructions

255readme.txt

Title: Holy Randomness Batman! Author: Lenophis Version: v1.6 Applies to: FF3us v1.0 Tested on: FF3us v1.0 Contents: Tweak - Holy Randomness Batman! - No header.ips Tweak - Holy Randomness Batman! - header.ips Anti random - header.ips Anti random - no header.ips readme.txt random - New C0.txt random - New C1.txt random - New C2.txt random - New C3.txt ROM addresses: C0/0636 - C0/0639 C0/4012 - C0/4015 C0/6879 - C0/687B C0/C48C - C0/C48F C0/C4A9 - C0/C4AC C0/BB32 - C0/BB35 C0/C17A - C0/C17C C0/C331 - C0/C334 C0/C48C - C0/C48F C0/C4A9 - C0/C4AC C0/D6B0 - C0/D705 C1/1861 - C1/1864 C1/CD53 - C1/CD56 C1/CECF - C1/CED2 C2/4B5F - C2/4B62 C2/4B6F -…

Read moreRead less
Title: Holy Randomness Batman!
Author: Lenophis
Version: v1.6
Applies to: FF3us v1.0
Tested on: FF3us v1.0

Contents: Tweak - Holy Randomness Batman! - No header.ips
          Tweak - Holy Randomness Batman! - header.ips
          Anti random - header.ips
          Anti random - no header.ips
          readme.txt
          random - New C0.txt
          random - New C1.txt
          random - New C2.txt
          random - New C3.txt

ROM addresses: C0/0636 - C0/0639*
               C0/4012 - C0/4015**
               C0/6879 - C0/687B*
               C0/C48C - C0/C48F**
               C0/C4A9 - C0/C4AC**
               C0/BB32 - C0/BB35*
               C0/C17A - C0/C17C*
               C0/C331 - C0/C334*
               C0/C48C - C0/C48F**
               C0/C4A9 - C0/C4AC**
               C0/D6B0 - C0/D705
               C1/1861 - C1/1864**
               C1/CD53 - C1/CD56**
               C1/CECF - C1/CED2**
               C2/4B5F - C2/4B62**
               C2/4B6F - C2/4B72**
               C2/BBEC - C2/BBEF**
               C2/BC9B - C2/BC9E**
               C3/A445 - C3/A448*
               C3/F0FC - C3/F16B
               EE/149D - EE/14A0**
               EE/150D - EE/1510**
               EE/2515 - EE/2718**
               EE/2523 - EE/2527**
               EE/3281 - EE/3284**
               EE/32CF - EE/32D2**
               EE/5071 - EE/5074**
               EE/5081 - EE/5084**
               EE/5092 - EE/5096**
               EE/54C6 - EE/54C9**
               EE/54D6 - EE/54D9**
               EE/54E7 - EE/54EA**
               EE/56BF - EE/56C2**
               EE/56CF - EE/56D2**
               EE/56E0 - EE/56E3**
               EE/86A6 - EE/86A9**
               EE/86B4 - EE/86B7**

*: I replaced a 3-byte instruction with JSR $xxxx to increment the frame counter
then did the instruction I had delayed.

**: These are LDA $C0FD00,X calls that were replaced with JSL $C0D6B0 calls.

Urgency: Medium to annoyingly high
It depends on if you really believe that FF6 uses a random number generator. ;)

--------------------------------------------------------------------------------
Description:

Final Fantasy 6 uses a table of 256 values that it "randomly" loads from, which
then returns the psuedo-random-but-predictable-number.

--------------------------------------------------------------------------------
What this patch does:

Eliminates the old random number generator, of course. It is replaced with
something that I at least hope is better in the long run.

Note: The anti patches will remove the patch.

--------------------------------------------------------------------------------
Version history:

v1.6a - October 30, 2008
        I've righted a wrong, and finally added BMF54123 to the credits section.
        No changes made to patch.

v1.6  - January 18, 2008
        Removed the two last calls in bank C1, as they were causing massive
        spell animation slowdown. Added a ton of calls in bank EE.

v1.5  - There were more LDA $C0FD00,X calls than I thought.
        WARNING: This patch is no longer compatible with v1.1 of the rom!
        The code at C1/CD53 and C1/CECF has been shifted left three bytes. So,
        v1.6 of this patch will include a patch for v1.1 :)

v1.0a - Minor changes made in readme and in Random - new C3.txt
        While the branches were correct, where the text file said they were
        going was not correct.
        No changes made to patch.

v1.0  - Initial release

--------------------------------------------------------------------------------
Credits:

Imzogelmo - For writing the C0, C1, and C3 disassemblies. He also pointed out
            that I had missed a few LDA's.
Terii Senshi & assassin - For writing the C2 bank disassembly.
assassin - Double notice for looking at my code and making sure that I can
           indeed program with this insane assembly. :P
BMF54123 - For originally helping me with the idea.

Download 255readme.txt ↓

FROM THE COMMUNITY

Player reviews

0 reviews
No ratings yet

Played this project? Tell other players how it holds up.

Your take on Holy Randomness Batman!

Spam has been overwhelming. To help us approve your review, sign up and introduce yourself in the Introductions forum so we know you’re not a bot.

Sign in with your Retro Replay account to rate this project and share your experience.

Sign in to review