アットウィキロゴ

風来のシレンDS2 砂漠の魔城 (DS) > 確率

乱数

32-bit 疑似乱数生成器を用いており、その状態 x は次の式で更新されます: x ← (x × 0x5d588b65 + 1) mod 2^{32}
乱数 0〜(n-1) は (x / 2^{16}) × n / 2^{16} によって取得されます。

ソース

+ ...
;----------------------------------------------
; [r0] ← 乱数 0〜65535
;----------------------------------------------
20b1f94: e59f2024  ldr r2, [pc, #36] @ 0x20b1fc0
20b1f98: e59f1024  ldr r1, [pc, #36] @ 0x20b1fc4
20b1f9c: e5923000  ldr r3, [r2]
20b1fa0: e0010193  mul r1, r3, r1
20b1fa4: e2813001  add r3, r1, #1
20b1fa8: e1a01823  lsr r1, r3, #16
20b1fac: e1a01801  lsl r1, r1, #16
20b1fb0: e5823000  str r3, [r2]
20b1fb4: e1a01821  lsr r1, r1, #16
20b1fb8: e5801000  str r1, [r0]
20b1fbc: e12fff1e  bx  lr
20b1fc0: 0216359c
20b1fc4: 5d588b65
 
;----------------------------------------------
; [r0] ← 乱数 0〜(r1-1)
;----------------------------------------------
20b1fc8: e92d4038  push  {r3, r4, r5, lr}
20b1fcc: e1a04000  mov r4, r0
20b1fd0: e28d0000  add r0, sp, #0
20b1fd4: e1a05001  mov r5, r1
20b1fd8: ebffffed  bl  0x20b1f94
20b1fdc: e59d0000  ldr r0, [sp]
20b1fe0: e1a00800  lsl r0, r0, #16
20b1fe4: e1a01820  lsr r1, r0, #16
20b1fe8: e0000591  mul r0, r1, r5
20b1fec: e1a01840  asr r1, r0, #16
20b1ff0: e1a00801  lsl r0, r1, #16
20b1ff4: e58d1000  str r1, [sp]
20b1ff8: e1a00820  lsr r0, r0, #16
20b1ffc: e5840000  str r0, [r4]
20b2000: e8bd8038  pop {r3, r4, r5, pc}
 

ダメージ計算式

シレンからモンスターへの攻撃

敵の防御力を S とするとき、ダメージ量 D は以下の式で計算されます。(補足: round(f) は f の小数第一位を四捨五入するものとします)
  • D := round(round((D_{S} × floor((乱数 87〜111) × 65536 / 100) / 65536) / 65536)
  • D_{n} := floor(D_{n-2^k} / 65536) × C_{2^k} (n ≥ 2 の場合) (ただし、k は 2^k ≤ n を満たす最大の整数とします)
  • D_{n} := (攻撃力) × 65536 (n < 2 の場合)
  • (攻撃力) := floor((シレンの基本攻撃力) × (8 + floor(剣の強さ/2) + ちから) / 16)

参考: (ダメージ量) ≈ round((攻撃力) × (15/16)^{floor(対象の防御力/2)} × (乱数 87〜111) / 100)

表記 固定小数点数換算
C_{2} 61440 0.9375
C_{4} 57600 0.878906
C_{8} 50625 0.772476
C_{16} 39107 0.596725
C_{32} 23336 0.356079
C_{64} 8309 0.126785
C_{128} 1053 0.0160675
C_{256} 17 0.000259399
C_{512} 0 0

参考: Python による処理の再現
import random
def damage(wp, st, lv, df):
    l = 0
    if lv >= 26:
        l = 54 + (lv - 26)
    elif lv >= 2:
        l = 6 + 2 * (lv - 2)
    elif lv >= 1:
        l = 5
    d = (wp//2 + st + 8) * l
    d = (d >> 4) << 16
    c = 0xf000
    df >>= 1
    while df > 0:
        if df & 1:
            d = ((d & 0xffff0000) * c) >> 16
        c = (c * c + 0x8000) >> 16
        df >>= 1
    r = random.randint(87, 111)
    t = (d * (r * 65536 // 100) + 0x8000) >> 16
    ret = (t + 0x8000) >> 16
    return max(1, min(999, ret))
 

モンスターからシレンへの攻撃

(基本的には)上記の式について、(防御力) := (盾の強さ)、(攻撃力) := (モンスターの攻撃力) として計算するようです。

シレンの基本攻撃力

Lv 上位\Lv 下位 0 1 2 3 4 5 6 7 8 9
0 0 5 6 8 10 12 14 16 18 20
10 22 24 26 28 30 32 34 36 38 40
20 42 44 46 48 50 52 54 55 56 57
30 58 59 60 61 62 63 64 65 66 67
40 68 69 70 71 72 73 74 75 76 77
50 78 79 80 81 82 83 84 85 86 87
60 88 89 90 91 92 93 94 95 96 97
70 98 99 100 101 102 103 104 105 106 107
80 108 109 110 111 112 113 114 115 116 117
90 118 119 120 121 122 123 124 125 126 127

モンスターデータ

ソース

+ ...
;-------------------------------------
; アイテムドロップ処理
;-------------------------------------
...
2332070: e28d002c  add r0, sp, #44 @ 0x2c
2332074: e3a01064  mov r1, #100  @ 0x64
2332078: e3a04000  mov r4, #0
233207c: ebf5ffd1  bl  0x20b1fc8          ; [sp + 44] ← 乱数 0〜99
...
 
...
233237c: e1d014b0  ldrh  r1, [r0, #64] @ 0x40
2332380: e59d002c  ldr r0, [sp, #44] @ 0x2c
2332384: e1500001  cmp r0, r1
2332388: aa000015  bge 0x23323e4          ; (乱数値) >= (境界値) の場合
...
 
;-------------------------------------
; 特技使用確率
;-------------------------------------
...
209e5d4: e28d0000  add r0, sp, #0
209e5d8: e3a01064  mov r1, #100  @ 0x64
209e5dc: eb004e79  bl  0x20b1fc8          ; [sp] ← 乱数 0〜99
...
 
...
209e61c: e1d052be  ldrh  r5, [r0, #46] @ 0x2e ; r5 ← (境界値)
...
 
...
209e6c0: e59d0000  ldr r0, [sp]           
209e6c4: e1500005  cmp r0, r5
209e6c8: aa000022  bge 0x209e758           ; (乱数値) >= (境界値) の場合
...
 

アイテム出現率

ソース

+ ...
20b2174: e92d4ff0  push  {r4, r5, r6, r7, r8, r9, sl, fp, lr}
20b2178: e24dd00c  sub sp, sp, #12
20b217c: e3a01028  mov r1, #40 @ 0x28
20b2180: e1a0a000  mov sl, r0
20b2184: e2812e46  add r2, r1, #1120 @ 0x460
20b2188: e000019a  mul r0, sl, r1
20b218c: e3a05000  mov r5, #0
20b2190: e007029a  mul r7, sl, r2
20b2194: e58d0000  str r0, [sp]
20b2198: e58d5004  str r5, [sp, #4]
20b219c: e59f01c8  ldr r0, [pc, #456]  @ 0x20b236c
20b21a0: e3a01013  mov r1, #19
20b21a4: e5903000  ldr r3, [r0]
20b21a8: e59d0000  ldr r0, [sp]
20b21ac: e0832000  add r2, r3, r0
 
20b21b0: e0820081  add r0, r2, r1, lsl #1
20b21b4: e2800b07  add r0, r0, #7168 @ 0x1c00
20b21b8: e1d00dbc  ldrh  r0, [r0, #220]  @ 0xdc
20b21bc: e3500000  cmp r0, #0
20b21c0: 0a000005  beq 0x20b21dc
 
20b21c4: e59d0000  ldr r0, [sp]
20b21c8: e0800003  add r0, r0, r3
20b21cc: e0800081  add r0, r0, r1, lsl #1
20b21d0: e2800b07  add r0, r0, #7168 @ 0x1c00
20b21d4: e1d05dbc  ldrh  r5, [r0, #220]  @ 0xdc
20b21d8: ea000001  b 0x20b21e4
 
20b21dc: e2511001  subs  r1, r1, #1
20b21e0: 5afffff2  bpl 0x20b21b0
 
20b21e4: e28d0008  add r0, sp, #8
20b21e8: e1a01005  mov r1, r5
20b21ec: ebffff75  bl  0x20b1fc8 ; [sp + 8] ← 乱数 0〜(r5-1)
 
20b21f0: e59f0174  ldr r0, [pc, #372]  @ 0x20b236c
20b21f4: e3a01000  mov r1, #0
20b21f8: e5904000  ldr r4, [r0]
20b21fc: e59d0000  ldr r0, [sp]
20b2200: e59d3008  ldr r3, [sp, #8]
20b2204: e1a08001  mov r8, r1
20b2208: e0842000  add r2, r4, r0
 
20b220c: e0820088  add r0, r2, r8, lsl #1
20b2210: e2800b07  add r0, r0, #7168 @ 0x1c00
20b2214: e1d00dbc  ldrh  r0, [r0, #220]  @ 0xdc
20b2218: e3500000  cmp r0, #0
20b221c: 0a000004  beq 0x20b2234
 
20b2220: e1510003  cmp r1, r3
20b2224: ca000001  bgt 0x20b2230
 
20b2228: e1530000  cmp r3, r0
20b222c: ba000003  blt 0x20b2240 ; (1つ前の境界値) <= (乱数値) <= (境界値) の場合
20b2230: e1a01000  mov r1, r0
 
20b2234: e2888001  add r8, r8, #1
20b2238: e3580014  cmp r8, #20
20b223c: bafffff2  blt 0x20b220c
 
20b2240: e3580014  cmp r8, #20
20b2244: 028dd00c  addeq sp, sp, #12
20b2248: 03a000eb  moveq r0, #235  @ 0xeb
20b224c: 08bd8ff0  popeq {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
20b2250: e59f2118  ldr r2, [pc, #280]  @ 0x20b2370
20b2254: e59f1118  ldr r1, [pc, #280]  @ 0x20b2374
20b2258: e0843007  add r3, r4, r7
 
20b225c: e0810202  add r0, r1, r2, lsl #4
20b2260: e5d0000a  ldrb  r0, [r0, #10]
20b2264: e1580000  cmp r8, r0
20b2268: 1a000005  bne 0x20b2284
20b226c: e0830082  add r0, r3, r2, lsl #1
20b2270: e2800c1d  add r0, r0, #7424 @ 0x1d00
20b2274: e1d005b4  ldrh  r0, [r0, #84] @ 0x54
20b2278: e3500000  cmp r0, #0
20b227c: 11a05000  movne r5, r0
20b2280: 1a000001  bne 0x20b228c
20b2284: e2522001  subs  r2, r2, #1
20b2288: 5afffff3  bpl 0x20b225c
 
20b228c: e3a06000  mov r6, #0
20b2290: e59f40dc  ldr r4, [pc, #220]  @ 0x20b2374
20b2294: e1a0b006  mov fp, r6
20b2298: e28d0008  add r0, sp, #8
20b229c: e1a01005  mov r1, r5
20b22a0: ebffff48  bl  0x20b1fc8       ; [sp + 8] ← 乱数 0〜(r5-1)
 
20b22a4: e59f00c0  ldr r0, [pc, #192]  @ 0x20b236c
20b22a8: e59d1008  ldr r1, [sp, #8]
20b22ac: e5900000  ldr r0, [r0]
20b22b0: e1a0200b  mov r2, fp
20b22b4: e0870000  add r0, r7, r0
20b22b8: e1a0900b  mov r9, fp
 
20b22bc: e0843209  add r3, r4, r9, lsl #4
20b22c0: e5d3300a  ldrb  r3, [r3, #10]
20b22c4: e1580003  cmp r8, r3
20b22c8: 1a000009  bne 0x20b22f4
 
20b22cc: e0803089  add r3, r0, r9, lsl #1
20b22d0: e2833c1d  add r3, r3, #7424 @ 0x1d00
20b22d4: e1d335b4  ldrh  r3, [r3, #84] @ 0x54
20b22d8: e3530000  cmp r3, #0
20b22dc: 0a000004  beq 0x20b22f4
20b22e0: e1520001  cmp r2, r1
20b22e4: ca000001  bgt 0x20b22f0
20b22e8: e1510003  cmp r1, r3
20b22ec: ba000003  blt 0x20b2300 ; (1つ前の境界値) <= (乱数値) < (境界値) の場合
20b22f0: e1a02003  mov r2, r3
 
20b22f4: e2899001  add r9, r9, #1
20b22f8: e3590f91  cmp r9, #580  @ 0x244
20b22fc: baffffee  blt 0x20b22bc
 
20b2300: e3590f91  cmp r9, #580  @ 0x244
20b2304: 028dd00c  addeq sp, sp, #12
20b2308: 03a000eb  moveq r0, #235  @ 0xeb
20b230c: 08bd8ff0  popeq {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
...
 
20b236c: 027c007c
20b2370: 00000243
20b2374: 021592e0
 

モンスター出現率

ソース

+ ...
20b2638: e92d4ff8  push  {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
20b263c: e3a02fa6  mov r2, #664  @ 0x298
20b2640: e0090290  mul r9, r0, r2
20b2644: e59f0118  ldr r0, [pc, #280]  @ 0x20b2764
20b2648: e3a060f4  mov r6, #244  @ 0xf4
20b264c: e5900000  ldr r0, [r0]
20b2650: e1a0a001  mov sl, r1
20b2654: e2861057  add r1, r6, #87 @ 0x57
20b2658: e0802009  add r2, r0, r9
20b265c: e3a07000  mov r7, #0
20b2660: e0820081  add r0, r2, r1, lsl #1
20b2664: e2800c17  add r0, r0, #5888 @ 0x1700
20b2668: e1d00abc  ldrh  r0, [r0, #172]  @ 0xac
20b266c: e3500000  cmp r0, #0
20b2670: 11a07000  movne r7, r0
20b2674: 1a000001  bne 0x20b2680
20b2678: e2511001  subs  r1, r1, #1
20b267c: 5afffff7  bpl 0x20b2660
 
20b2680: e3a08000  mov r8, #0
20b2684: e59f40dc  ldr r4, [pc, #220]  @ 0x20b2768
20b2688: e28d5000  add r5, sp, #0
20b268c: e1a0b008  mov fp, r8
20b2690: e1a00005  mov r0, r5
20b2694: e1a01007  mov r1, r7
20b2698: ebfffe4a  bl  0x20b1fc8 ; [sp] ← 乱数 0〜(r7-1)
 
20b269c: e59f00c0  ldr r0, [pc, #192]  @ 0x20b2764
20b26a0: e59d1000  ldr r1, [sp]
20b26a4: e5900000  ldr r0, [r0]
20b26a8: e1a0200b  mov r2, fp
20b26ac: e0890000  add r0, r9, r0
 
20b26b0: e0803082  add r3, r0, r2, lsl #1
20b26b4: e2833c17  add r3, r3, #5888 @ 0x1700
20b26b8: e1d3cabc  ldrh  ip, [r3, #172]  @ 0xac
20b26bc: e35c0000  cmp ip, #0
20b26c0: 0a000003  beq 0x20b26d4
 
20b26c4: e1a03802  lsl r3, r2, #16
20b26c8: e151000c  cmp r1, ip
20b26cc: e1a06823  lsr r6, r3, #16
20b26d0: ba000002  blt 0x20b26e0   ; (乱数値) < (境界値) の場合
 
20b26d4: e2822001  add r2, r2, #1
20b26d8: e3520f53  cmp r2, #332  @ 0x14c
20b26dc: bafffff3  blt 0x20b26b0
...
 
20b2764: 027c007c
20b2768: 0216017c
 

ワナ出現率

ソース

+ ...
...
20b24c4: e5902000  ldr r2, [r0]
20b24c8: e3a09000  mov r9, #0
20b24cc: e3a0101b  mov r1, #27
 
20b24d0: e0820081  add r0, r2, r1, lsl #1
20b24d4: e2800c2a  add r0, r0, #10752  @ 0x2a00
20b24d8: e1d00ebc  ldrh  r0, [r0, #236]  @ 0xec
20b24dc: e3500000  cmp r0, #0
20b24e0: 11a09000  movne r9, r0
20b24e4: 1a000001  bne 0x20b24f0
20b24e8: e2511001  subs  r1, r1, #1
20b24ec: 5afffff7  bpl 0x20b24d0
 
20b24f0: e3a0a000  mov sl, #0
20b24f4: e28d7000  add r7, sp, #0
20b24f8: e1a0600a  mov r6, sl
20b24fc: e1a00007  mov r0, r7
20b2500: e1a01009  mov r1, r9
20b2504: ebfffeaf  bl  0x20b1fc8 ; [sp] ← 乱数 0〜(r9-1)
 
20b2508: e59f111c  ldr r1, [pc, #284]  @ 0x20b262c
20b250c: e59d0000  ldr r0, [sp]
20b2510: e591c000  ldr ip, [r1]
20b2514: e1a03006  mov r3, r6
20b2518: e1a01006  mov r1, r6
 
20b251c: e08c2081  add r2, ip, r1, lsl #1
20b2520: e2822c2a  add r2, r2, #10752  @ 0x2a00
20b2524: e1d22ebc  ldrh  r2, [r2, #236]  @ 0xec
20b2528: e3520000  cmp r2, #0
20b252c: 0a000004  beq 0x20b2544
 
20b2530: e1530000  cmp r3, r0
20b2534: ca000001  bgt 0x20b2540
 
20b2538: e1500002  cmp r0, r2
20b253c: ba000003  blt 0x20b2550 ; (1つ前の境界値) <= (乱数値) < (境界値) の場合
 
20b2540: e1a03002  mov r3, r2
 
20b2544: e2811001  add r1, r1, #1
20b2548: e351001c  cmp r1, #28
20b254c: bafffff2  blt 0x20b251c
 
...
 
20b262c: 027c007c
 

ダンジョン設定値

ソース

+ ...
;----------------------------------------
; - r1 > r2 の場合: 乱数値 r2〜(r1-1) を返す
; - r1 == r2 の場合: r1 を返す
; - r1 < r2 の場合: 乱数値 r1〜(r2-1) を返す
;----------------------------------------
20b2004: e92d4070  push  {r4, r5, r6, lr}
20b2008: e24dd008  sub sp, sp, #8
20b200c: e1a05001  mov r5, r1
20b2010: e1a04002  mov r4, r2
20b2014: e1550004  cmp r5, r4
20b2018: e1a06000  mov r6, r0
20b201c: 028dd008  addeq sp, sp, #8
20b2020: 05865000  streq r5, [r6]
20b2024: 08bd8070  popeq {r4, r5, r6, pc}
 
20b2028: aa000007  bge 0x20b204c
20b202c: e28d0004  add r0, sp, #4
20b2030: e0441005  sub r1, r4, r5
20b2034: ebffffe3  bl  0x20b1fc8
20b2038: e59d0004  ldr r0, [sp, #4]
20b203c: e28dd008  add sp, sp, #8
20b2040: e0800005  add r0, r0, r5
20b2044: e5860000  str r0, [r6]
20b2048: e8bd8070  pop {r4, r5, r6, pc}
 
20b204c: e28d0000  add r0, sp, #0
20b2050: e0451004  sub r1, r5, r4
20b2054: ebffffdb  bl  0x20b1fc8
20b2058: e59d0000  ldr r0, [sp]
20b205c: e0800004  add r0, r0, r4
20b2060: e5860000  str r0, [r6]
20b2064: e28dd008  add sp, sp, #8
20b2068: e8bd8070  pop {r4, r5, r6, pc}
 
;----------------------------------------
; モンスター出現数
;----------------------------------------
...
20b1458: e5d21f50  ldrb  r1, [r2, #3920] @ 0xf50
20b145c: e5d22f51  ldrb  r2, [r2, #3921] @ 0xf51
20b1460: eb0002e7  bl  0x20b2004
...
 
;----------------------------------------
; アイテム出現数
;----------------------------------------
...
20b0d00: e5d21f4c  ldrb  r1, [r2, #3916] @ 0xf4c
20b0d04: e5d22f4d  ldrb  r2, [r2, #3917] @ 0xf4d
20b0d08: eb0004bd  bl  0x20b2004
...
 
;----------------------------------------
; ワナ出現数
;----------------------------------------
...
20b0f48: e5d21f4e  ldrb  r1, [r2, #3918] @ 0xf4e
20b0f4c: e5d22f4f  ldrb  r2, [r2, #3919] @ 0xf4f
20b0f50: eb00042b  bl  0x20b2004
...
 
 
;----------------------------------------
; 呪い確率
;----------------------------------------
...
203368c: e28d0000  add r0, sp, #0
2033690: e3a01064  mov r1, #100  @ 0x64
2033694: eb01fa4b  bl  0x20b1fc8
2033698: e59f02e0  ldr r0, [pc, #736]  @ 0x2033980
203369c: e59d1000  ldr r1, [sp]
20336a0: e5900000  ldr r0, [r0]
20336a4: e2800a05  add r0, r0, #20480  @ 0x5000
20336a8: e5d00f5b  ldrb  r0, [r0, #3931] @ 0xf5b
20336ac: e1510000  cmp r1, r0
20336b0: aa000003  bge 0x20336c4
20336b4: e1d700b0  ldrh  r0, [r7]
20336b8: e3800004  orr r0, r0, #4
20336bc: e3c00b01  bic r0, r0, #1024 @ 0x400
20336c0: e1c700b0  strh  r0, [r7]
 
; かさタヌキ 確率
 
20336c4: e28d0000  add r0, sp, #0
20336c8: e3a01064  mov r1, #100  @ 0x64
20336cc: eb01fa3d  bl  0x20b1fc8
20336d0: e59f02ac  ldr r0, [pc, #684]  @ 0x2033984
20336d4: e5900000  ldr r0, [r0]
20336d8: e2800b03  add r0, r0, #3072 @ 0xc00
20336dc: e1d00eb4  ldrh  r0, [r0, #228]  @ 0xe4
20336e0: e350002b  cmp r0, #43 @ 0x2b
20336e4: 1350002c  cmpne r0, #44 @ 0x2c
20336e8: 1350002d  cmpne r0, #45 @ 0x2d
20336ec: 1350002e  cmpne r0, #46 @ 0x2e
20336f0: 0a00001f  beq 0x2033774
20336f4: e59f0284  ldr r0, [pc, #644]  @ 0x2033980
20336f8: e59d1000  ldr r1, [sp]
20336fc: e5900000  ldr r0, [r0]
2033700: e2800a05  add r0, r0, #20480  @ 0x5000
2033704: e5d00f59  ldrb  r0, [r0, #3929] @ 0xf59
2033708: e1510000  cmp r1, r0
203370c: b1d700b0  ldrhlt  r0, [r7]
2033710: e3a01064  mov r1, #100  @ 0x64
2033714: b3800020  orrlt r0, r0, #32
2033718: b1c700b0  strhlt  r0, [r7]
 
; 祝福 確率
 
203371c: e28d0000  add r0, sp, #0
2033720: eb01fa28  bl  0x20b1fc8
2033724: e59f0254  ldr r0, [pc, #596]  @ 0x2033980
2033728: e59d1000  ldr r1, [sp]
203372c: e5900000  ldr r0, [r0]
2033730: e2800a05  add r0, r0, #20480  @ 0x5000
2033734: e5d00f5a  ldrb  r0, [r0, #3930] @ 0xf5a
2033738: e1510000  cmp r1, r0
203373c: aa00000c  bge 0x2033774
2033740: e3a00000  mov r0, #0
2033744: ebffe474  bl  0x202c91c
2033748: e59f1238  ldr r1, [pc, #568]  @ 0x2033988
203374c: e3a02001  mov r2, #1
2033750: e7910100  ldr r0, [r1, r0, lsl #2]
2033754: e1100412  tst r0, r2, lsl r4
2033758: 0a000005  beq 0x2033774
 
203375c: e1d700b0  ldrh  r0, [r7]
2033760: e3800b01  orr r0, r0, #1024 @ 0x400
2033764: e1c700b0  strh  r0, [r7]
2033768: e1d700b0  ldrh  r0, [r7]
203376c: e3c00004  bic r0, r0, #4 ; 呪い状態を解除する
2033770: e1c700b0  strh  r0, [r7]
...
 
; ゴールド範囲
 
20337e0: e1d215b2  ldrh  r1, [r2, #82] @ 0x52
20337e4: e1d225b4  ldrh  r2, [r2, #84] @ 0x54
20337e8: eb01fa05  bl  0x20b2004
...
 
;----------------------------------------
; 店確率
;----------------------------------------
...
20b3540: e5d10f40  ldrb  r0, [r1, #3904] @ 0xf40
20b3544: e5d11f58  ldrb  r1, [r1, #3928] @ 0xf58
20b3548: eb001fb1  bl  0x20bb414
...
 
;----------------------------------------
; 店設置(サブルーチン)
;----------------------------------------
20bb414: e92d4ff8  push  {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
20bb418: e24dd048  sub sp, sp, #72 @ 0x48
20bb41c: e59f364c  ldr r3, [pc, #1612] @ 0x20bba70
20bb420: e1a06000  mov r6, r0
20bb424: e5933000  ldr r3, [r3]
20bb428: e1a05001  mov r5, r1
20bb42c: e3a040ff  mov r4, #255  @ 0xff
20bb430: e28d002c  add r0, sp, #44 @ 0x2c
20bb434: e3a01064  mov r1, #100  @ 0x64
20bb438: e58d2004  str r2, [sp, #4]
20bb43c: e5c34b2a  strb  r4, [r3, #2858] @ 0xb2a
20bb440: ebffdae0  bl  0x20b1fc8
20bb444: e3560000  cmp r6, #0
20bb448: 028dd048  addeq sp, sp, #72 @ 0x48
20bb44c: 08bd8ff8  popeq {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
20bb450: e59d002c  ldr r0, [sp, #44] @ 0x2c
20bb454: e1560000  cmp r6, r0
20bb458: d28dd048  addle sp, sp, #72 @ 0x48
20bb45c: d8bd8ff8  pople {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
20bb460: ebfdc5a7  bl  0x202cb04
20bb464: e3500000  cmp r0, #0
20bb468: 028dd048  addeq sp, sp, #72 @ 0x48
20bb46c: 08bd8ff8  popeq {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
20bb470: e28d002c  add r0, sp, #44 @ 0x2c
20bb474: e3a01064  mov r1, #100  @ 0x64
20bb478: ebffdad2  bl  0x20b1fc8
20bb47c: e59d002c  ldr r0, [sp, #44] @ 0x2c
20bb480: e1500005  cmp r0, r5
20bb484: aa00001b  bge 0x20bb4f8
 
20bb488: e3a04000  mov r4, #0
20bb48c: e1a00004  mov r0, r4
20bb490: ebfdc521  bl  0x202c91c
20bb494: e59f15d8  ldr r1, [pc, #1496] @ 0x20bba74
20bb498: e59f25d8  ldr r2, [pc, #1496] @ 0x20bba78
20bb49c: e5916000  ldr r6, [r1]
20bb4a0: e7922100  ldr r2, [r2, r0, lsl #2]
20bb4a4: e1a05004  mov r5, r4
20bb4a8: e28d1034  add r1, sp, #52 @ 0x34
20bb4ac: e3a03001  mov r3, #1
20bb4b0: e0860085  add r0, r6, r5, lsl #1
20bb4b4: e2800c1d  add r0, r0, #7424 @ 0x1d00
20bb4b8: e1d000b4  ldrh  r0, [r0, #4]
20bb4bc: e3500000  cmp r0, #0
20bb4c0: 0a000002  beq 0x20bb4d0
20bb4c4: e1120513  tst r2, r3, lsl r5
20bb4c8: 17c15004  strbne  r5, [r1, r4]
20bb4cc: 12844001  addne r4, r4, #1
20bb4d0: e2855001  add r5, r5, #1
20bb4d4: e3550014  cmp r5, #20
20bb4d8: bafffff4  blt 0x20bb4b0
20bb4dc: e28d002c  add r0, sp, #44 @ 0x2c
20bb4e0: e1a01004  mov r1, r4
20bb4e4: ebffdab7  bl  0x20b1fc8
20bb4e8: e59d102c  ldr r1, [sp, #44] @ 0x2c
20bb4ec: e28d0034  add r0, sp, #52 @ 0x34
20bb4f0: e7d04001  ldrb  r4, [r0, r1]
20bb4f4: ea000000  b 0x20bb4fc
...
 
;----------------------------------------
; モンスターハウス確率
;----------------------------------------
...
20b354c: e59d0000  ldr r0, [sp]
20b3550: e3500000  cmp r0, #0
20b3554: 159f0080  ldrne r0, [pc, #128]  @ 0x20b35dc
20b3558: 1a000003  bne 0x20b356c
20b355c: e59f0070  ldr r0, [pc, #112]  @ 0x20b35d4
20b3560: e5900000  ldr r0, [r0]
20b3564: e2800a05  add r0, r0, #20480  @ 0x5000
20b3568: e5d00f41  ldrb  r0, [r0, #3905] @ 0xf41
20b356c: e1a00800  lsl r0, r0, #16
20b3570: e1a00840  asr r0, r0, #16
20b3574: eb002143  bl  0x20bba88
...
 
;----------------------------------------
; サブルーチン
;----------------------------------------
20bba88: e92d4ff8  push  {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
20bba8c: e24dd010  sub sp, sp, #16
20bba90: e59f11a0  ldr r1, [pc, #416]  @ 0x20bbc38
20bba94: e1a04000  mov r4, r0
20bba98: e5912000  ldr r2, [r1]
20bba9c: e3a030ff  mov r3, #255  @ 0xff
20bbaa0: e28d0008  add r0, sp, #8
20bbaa4: e3a01064  mov r1, #100  @ 0x64
20bbaa8: e5c23b2b  strb  r3, [r2, #2859] @ 0xb2b
20bbaac: ebffd945  bl  0x20b1fc8
20bbab0: e59f0180  ldr r0, [pc, #384]  @ 0x20bbc38
20bbab4: e5902000  ldr r2, [r0]
20bbab8: e5d20ce8  ldrb  r0, [r2, #3304] @ 0xce8
20bbabc: e3500002  cmp r0, #2
20bbac0: 1a000007  bne 0x20bbae4
 
20bbac4: e59f1170  ldr r1, [pc, #368]  @ 0x20bbc3c
20bbac8: e2820b03  add r0, r2, #3072 @ 0xc00
20bbacc: e5911000  ldr r1, [r1]
20bbad0: e1d02ebc  ldrh  r2, [r0, #236]  @ 0xec
20bbad4: e1d102bc  ldrh  r0, [r1, #44] @ 0x2c
20bbad8: e1520000  cmp r2, r0
20bbadc: 028dd010  addeq sp, sp, #16
20bbae0: 08bd8ff8  popeq {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
20bbae4: e3540000  cmp r4, #0
20bbae8: 028dd010  addeq sp, sp, #16
20bbaec: 08bd8ff8  popeq {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
20bbaf0: e59d0008  ldr r0, [sp, #8]
20bbaf4: e1540000  cmp r4, r0
20bbaf8: d28dd010  addle sp, sp, #16
20bbafc: d8bd8ff8  pople {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
...
 
最終更新:2024年06月30日 22:56