User

User:Luckytyphlosion/RNG Glitches

From The Rockman EXE Zone Wiki

< User:Luckytyphlosion
Revision as of 23:51, 31 October 2022 by Luckytyphlosion (talk | contribs) (Created page with "== All Games == * Shuffle Bias. See [https://www.i-programmer.info/programming/theory/2744-how-not-to-shuffle-the-kunth-fisher-yates-algorithm.html this explanation]. MMBN1 is...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

All Games

  • Shuffle Bias. See this explanation. MMBN1 is affected less as it swaps 60 times instead of ~30 (depends on game).

MMBN1

MMBN2

?

MMBN3

  • BugStyle movement bug selection: Initial call has mask 0xf, selects movement bug if value is [0x4, 0x9]. Subsequent call has mask 0x2, 0x0 gives up movement bug, 0x1 gives down movement bug Doesn't skew

MMBN4

  • Battle selection, GMD contents

EXE4.5

  • Tournament selection, TODO rediscover this.

MMBN5

  • GMD contents

OSS

  • GMD contents (Dump)
  • Game reseeds using MAC address, potential abuse. Code is below
int sub_2001324() {
   byte[] macAddress = new byte[6];
   RTCDate rtcDate = new RTCDate();
   RTCTime rtcTime = new RTCTime();
   
   RTC_GetDateTime(&rtcDate, &rtcTime);
   OS_GetMacAddress(&macAddress);
   
   int macSum = macAddress[0]
       + (macAddress[1] << 8)
       + (macAddress[2] << 16)
       + (macAddress[3] << 24)
       + macAddress[4]
       + macAddress[5];
   int timeSum = rtcTime.second
       + 60 * rtcTime.minute
       + 3600 * rtcTime.hour;
   int dateSum = rtcDate.day
       + rtcDate.month
       + rtcDate.year;
   
   return macSum + timeSum + dateSum;
}