Yu-Gi-Oh! Dungeon Dice Monsters/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Created page with "{{rommap|game=Yu-Gi-Oh! Dungeon Dice Monsters}} ==PRNG== ===PRNG Advance=== 08025D3C B510 push r4,r14 ; 08025D3E 4C09 ldr r4...")
 
No edit summary
Line 3: Line 3:
==PRNG==
==PRNG==
===PRNG Advance===
===PRNG Advance===
r3 = (seed2 << 31) | (seed1 >> 1)
seed2 << 1
seed2 += seed1 & 1
seed1 << 12
r3 ^ seed1
seed1 = (r3 >> 20) ^ r3
  08025D3C B510    push    r4,r14                                  ;
  08025D3C B510    push    r4,r14                                  ;
  08025D3E 4C09    ldr    r4,=30008E0h                            ;r4 points to prn1
  08025D3E 4C09    ldr    r4,=30008E0h                            ;r4 points to prn1
  08025D40 6861    ldr    r1,[r4,4h]                              ;r1 = [prn2]
  08025D40 6861    ldr    r1,[r4,4h]                              ;r1 = [prn2]
  08025D42 07CB    lsl    r3,r1,1Fh                              ;
  08025D42 07CB    lsl    r3,r1,1Fh                              ;r3 = r1 << 31
  08025D44 6822    ldr    r2,[r4]                                ;r2 = [prn2]
  08025D44 6822    ldr    r2,[r4]                                ;r2 = [prn1]
  08025D46 0850    lsr    r0,r2,1h                                ;r0 = r2 >> 1
  08025D46 0850    lsr    r0,r2,1h                                ;r0 = r2 >> 1
  08025D48 4303    orr    r3,r0                                  ;
  08025D48 4303    orr    r3,r0                                  ;r3 = r3 | r0
  08025D4A 2001    mov    r0,1h                                  ;r0 = 1
  08025D4A 2001    mov    r0,1h                                  ;r0 = 1
  08025D4C 4010    and    r0,r2                                  ;r0 = r0 & r2
  08025D4C 4010    and    r0,r2                                  ;r0 = r0 & r2
Line 16: Line 23:
  08025D52 6061    str    r1,[r4,4h]                              ;prn2 = r1
  08025D52 6061    str    r1,[r4,4h]                              ;prn2 = r1
  08025D54 0312    lsl    r2,r2,0Ch                              ;r2 << 12
  08025D54 0312    lsl    r2,r2,0Ch                              ;r2 << 12
  08025D56 4053    eor    r3,r2                                  ;r3 = r3 r2
  08025D56 4053    eor    r3,r2                                  ;r3 = r3 ^ r2
  08025D58 0D18    lsr    r0,r3,14h                              ;r0 = r3 >> 20
  08025D58 0D18    lsr    r0,r3,14h                              ;r0 = r3 >> 20
  08025D5A 4058    eor    r0,r3                                  ;r0 = r0 r3
  08025D5A 4058    eor    r0,r3                                  ;r0 = r0 ^ r3
  08025D5C 6020    str    r0,[r4]                                ;prn1 = r0
  08025D5C 6020    str    r0,[r4]                                ;prn1 = r0
  08025D5E BC10    pop    r4                                      ;
  08025D5E BC10    pop    r4                                      ;

Revision as of 20:11, 20 January 2018

Chip tiny.png The following article is a ROM map for Yu-Gi-Oh! Dungeon Dice Monsters.

PRNG

PRNG Advance

r3 = (seed2 << 31) | (seed1 >> 1)
seed2 << 1
seed2 += seed1 & 1
seed1 << 12
r3 ^ seed1
seed1 = (r3 >> 20) ^ r3
08025D3C B510     push    r4,r14                                  ;
08025D3E 4C09     ldr     r4,=30008E0h                            ;r4 points to prn1
08025D40 6861     ldr     r1,[r4,4h]                              ;r1 = [prn2]
08025D42 07CB     lsl     r3,r1,1Fh                               ;r3 = r1 << 31
08025D44 6822     ldr     r2,[r4]                                 ;r2 = [prn1]
08025D46 0850     lsr     r0,r2,1h                                ;r0 = r2 >> 1
08025D48 4303     orr     r3,r0                                   ;r3 = r3 | r0
08025D4A 2001     mov     r0,1h                                   ;r0 = 1
08025D4C 4010     and     r0,r2                                   ;r0 = r0 & r2
08025D4E 1808     add     r0,r1,r0                                ;r0 += r1
08025D50 1809     add     r1,r1,r0                                ;r1 += r0
08025D52 6061     str     r1,[r4,4h]                              ;prn2 = r1
08025D54 0312     lsl     r2,r2,0Ch                               ;r2 << 12
08025D56 4053     eor     r3,r2                                   ;r3 = r3 ^ r2
08025D58 0D18     lsr     r0,r3,14h                               ;r0 = r3 >> 20
08025D5A 4058     eor     r0,r3                                   ;r0 = r0 ^ r3
08025D5C 6020     str     r0,[r4]                                 ;prn1 = r0
08025D5E BC10     pop     r4                                      ;
08025D60 BC02     pop     r1                                      ;
08025D62 4708     bx      r1                                      ;