User

Luckytyphlosion/RNG Glitches: Difference between revisions

From The Rockman EXE Zone Wiki

< User:Luckytyphlosion
(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...")
 
No edit summary
Line 6: Line 6:


== MMBN2 ==
== MMBN2 ==
?
* Although Chip Traders are coded to have up to 6 codes per chip, only the first 5 codes of any chip can drop. This applies to both normal draws and redraws; unlike later games, you cannot get the 6th code through a redraw. RetroChip Traders work differently and do allow you to get 6th code (thanks Greiga Master). TODO: do normal chip traders list * code in their reward lists?


== MMBN3 ==
== MMBN3 ==
* <s>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</s> Doesn't skew
* <s>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</s> Doesn't skew.
* Although Chip Traders are coded to have up to 6 codes per chip, only the first 5 codes of any chip can drop. This applies to both normal draws and redraws; unlike later games, you cannot get the 6th code through a redraw. Traders do list * code in their reward lists.


== MMBN4 ==
== MMBN4 ==
* Battle selection, GMD contents
* Battle selection, GMD contents
* Can only choose 4th code for chips from a redraw.


== EXE4.5 ==
== EXE4.5 ==
Line 19: Line 21:
== MMBN5 ==
== MMBN5 ==
* GMD contents
* GMD contents
* Can only choose 4th code for chips from a redraw.
== MMBN6 ==
* JP only: Can only choose 4th code for chips from a redraw.


== OSS ==
== OSS ==

Revision as of 00:11, 1 November 2022

All Games

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

MMBN1

MMBN2

  • Although Chip Traders are coded to have up to 6 codes per chip, only the first 5 codes of any chip can drop. This applies to both normal draws and redraws; unlike later games, you cannot get the 6th code through a redraw. RetroChip Traders work differently and do allow you to get 6th code (thanks Greiga Master). TODO: do normal chip traders list * code in their reward lists?

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.
  • Although Chip Traders are coded to have up to 6 codes per chip, only the first 5 codes of any chip can drop. This applies to both normal draws and redraws; unlike later games, you cannot get the 6th code through a redraw. Traders do list * code in their reward lists.

MMBN4

  • Battle selection, GMD contents
  • Can only choose 4th code for chips from a redraw.

EXE4.5

  • Tournament selection, TODO rediscover this.

MMBN5

  • GMD contents
  • Can only choose 4th code for chips from a redraw.

MMBN6

  • JP only: Can only choose 4th code for chips from a redraw.

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;
}