Update notes

This commit is contained in:
jeffman 2019-02-18 20:39:29 -05:00
parent 2c45ca7a2d
commit 5e58ad7130
1 changed files with 154 additions and 128 deletions

View File

@ -1,5 +1,6 @@
// r0: window
// r1: goods pointer
// Returns 0 if no action, -1 if cancelled with B/select, or item index + 1 if accepted with A/L
080BEB6C (T) push r4-r7,r14 ;9 144
080BEB6E (T) mov r7,r10 ;2 146
@ -940,6 +941,7 @@
080BF1B8 (T) lsl r7,r5,4h ;2 2915
080BF1BA (T) lsl r0,r0,0h ;2 2917
// If not up or down pressed:
080BF1BC (T) mov r0,30h ;2 2919
080BF1BE (T) and r0,r1 ;2 2921
080BF1C0 (T) cmp r0,0h ;2 2923
@ -954,72 +956,85 @@
080BF1D2 (T) mov r0,97h ;2 2957
080BF1D4 (T) lsl r0,r0,1h ;2 2959
080BF1D6 (T) bl m2_soundeffect ;10 2969
// Shadow directions pressed:
080BF1DA (T) ldr r0,[r7] ;4 2973
080BF1DC (T) mov r1,10h ;2 2975
080BF1DE (T) orr r0,r1 ;2 2977
080BF1E0 (T) b 80BF1EAh ;8 2985
080BF1E0 (T) b 80BF1EAh ;8 2985 set flag 0x10
080BF1E2 (T) ldr r0,[r7] ;4 2989
080BF1E4 (T) mov r1,11h ;2 2991
080BF1E6 (T) neg r1,r1 ;2 2993
080BF1E8 (T) and r0,r1 ;2 2995
080BF1EA (T) str r0,[r7] ;5 3000
// No shadow directions pressed:
080BF1E2 (T) ldr r0,[r7] ;4 2989
080BF1E4 (T) mov r1,11h ;2 2991
080BF1E6 (T) neg r1,r1 ;2 2993
080BF1E8 (T) and r0,r1 ;2 2995 unsert flag 0x10
080BF1EA (T) str r0,[r7] ;5 3000
// Check for B/select
080BF1EC (T) ldr r0,=3002500h ;9 3009
080BF1EE (T) ldrh r1,[r0] ;6 3015
080BF1F0 (T) mov r0,6h ;2 3017
080BF1F2 (T) and r0,r1 ;2 3019
080BF1F4 (T) cmp r0,0h ;2 3021
080BF1F6 (T) beq 80BF21Ch ;8 3029
080BF1F8 (T) mov r0,0h ;2 3031
080BF1FA (T) strh r0,[r7,32h] ;5 3036
080BF1FC (T) mov r0,97h ;2 3038
080BF1FE (T) lsl r0,r0,1h ;2 3040
080BF200 (T) bl m2_soundeffect ;10 3050
080BF204 (T) mov r0,0h ;2 3052
080BF206 (T) bl 80A334Ch ;10 3062
080BF20A (T) mov r0,0h ;2 3064
080BF20C (T) bl 80A3384h ;10 3074
080BF210 (T) mov r0,1h ;2 3076
080BF212 (T) neg r0,r0 ;2 3078
080BF214 (T) b 80BF2F0h ;8 3086
080BF216 (T) lsl r0,r0,0h ;2 3088
080BF218 (T) mov r5,0h ;2 3090
080BF21A (T) lsl r0,r0,0Ch ;2 3092
// B/select pressed
080BF1F8 (T) mov r0,0h ;2 3031
080BF1FA (T) strh r0,[r7,32h] ;5 3036
080BF1FC (T) mov r0,97h ;2 3038
080BF1FE (T) lsl r0,r0,1h ;2 3040
080BF200 (T) bl m2_soundeffect ;10 3050
080BF204 (T) mov r0,0h ;2 3052
080BF206 (T) bl 80A334Ch ;10 3062
080BF20A (T) mov r0,0h ;2 3064
080BF20C (T) bl 80A3384h ;10 3074
080BF210 (T) mov r0,1h ;2 3076
080BF212 (T) neg r0,r0 ;2 3078
080BF214 (T) b 80BF2F0h ;8 3086
080BF216 (T) lsl r0,r0,0h ;2 3088
080BF218 (T) mov r5,0h ;2 3090
080BF21A (T) lsl r0,r0,0Ch ;2 3092
// Check for A/L
080BF21C (T) ldr r0,=201h ;9 3101
080BF21E (T) and r0,r1 ;2 3103
080BF220 (T) cmp r0,0h ;2 3105
080BF222 (T) beq 80BF268h ;8 3113
080BF224 (T) ldr r0,=0FFFFh ;9 3122
080BF226 (T) strh r0,[r7,32h] ;5 3127
080BF228 (T) ldr r0,=12Dh ;9 3136
080BF22A (T) bl m2_soundeffect ;10 3146
080BF22E (T) ldr r0,=m2_active_window_pc ;9 3155
080BF230 (T) mov r1,0h ;2 3157
080BF232 (T) ldsh r0,[r0,r1] ;4 3161
080BF234 (T) add r0,1h ;2 3163
080BF236 (T) bl 80A334Ch ;10 3173
080BF23A (T) mov r2,r10 ;2 3175
080BF23C (T) lsl r4,r2,10h ;2 3177
080BF23E (T) asr r4,r4,10h ;2 3179
080BF240 (T) ldr r3,[sp,4h] ;4 3183
080BF242 (T) lsl r0,r3,10h ;2 3185
080BF244 (T) asr r0,r0,10h ;2 3187
080BF246 (T) add r4,r4,r0 ;2 3189
080BF248 (T) add r4,1h ;2 3191
080BF24A (T) mov r0,r4 ;2 3193
080BF24C (T) bl 80A3384h ;10 3203
080BF250 (T) lsl r4,r4,10h ;2 3205
080BF252 (T) asr r4,r4,10h ;2 3207
080BF254 (T) mov r0,r4 ;2 3209
080BF256 (T) b 80BF2F0h ;8 3217
080BF258 (T) lsl r1,r0,8h ;2 3219
080BF25A (T) lsl r0,r0,0h ;2 3221
080BF25C (T) bl lr+0FFEh ;10 3231
080BF25E (T) lsl r0,r0,0h ;2 3233
080BF260 (T) lsl r5,r5,4h ;2 3235
080BF262 (T) lsl r0,r0,0h ;2 3237
080BF264 (T) strh r4,[r4,r1] ;5 3242
080BF266 (T) lsl r0,r0,0Ch ;2 3244
// A/L pressed
080BF224 (T) ldr r0,=0FFFFh ;9 3122
080BF226 (T) strh r0,[r7,32h] ;5 3127
080BF228 (T) ldr r0,=12Dh ;9 3136
080BF22A (T) bl m2_soundeffect ;10 3146
080BF22E (T) ldr r0,=m2_active_window_pc ;9 3155
080BF230 (T) mov r1,0h ;2 3157
080BF232 (T) ldsh r0,[r0,r1] ;4 3161
080BF234 (T) add r0,1h ;2 3163
080BF236 (T) bl 80A334Ch ;10 3173
080BF23A (T) mov r2,r10 ;2 3175 cursor_col
080BF23C (T) lsl r4,r2,10h ;2 3177
080BF23E (T) asr r4,r4,10h ;2 3179
080BF240 (T) ldr r3,[sp,4h] ;4 3183 cursor_y * 2
080BF242 (T) lsl r0,r3,10h ;2 3185
080BF244 (T) asr r0,r0,10h ;2 3187
080BF246 (T) add r4,r4,r0 ;2 3189 cursor_col + cursor_y * 2
080BF248 (T) add r4,1h ;2 3191
080BF24A (T) mov r0,r4 ;2 3193
080BF24C (T) bl 80A3384h ;10 3203
080BF250 (T) lsl r4,r4,10h ;2 3205
080BF252 (T) asr r4,r4,10h ;2 3207
080BF254 (T) mov r0,r4 ;2 3209
080BF256 (T) b 80BF2F0h ;8 3217
080BF258 (T) lsl r1,r0,8h ;2 3219
080BF25A (T) lsl r0,r0,0h ;2 3221
080BF25C (T) bl lr+0FFEh ;10 3231
080BF25E (T) lsl r0,r0,0h ;2 3233
080BF260 (T) lsl r5,r5,4h ;2 3235
080BF262 (T) lsl r0,r0,0h ;2 3237
080BF264 (T) strh r4,[r4,r1] ;5 3242
080BF266 (T) lsl r0,r0,0Ch ;2 3244
080BF268 (T) ldrh r3,[r7,32h] ;4 3248
080BF26A (T) mov r4,32h ;2 3250
080BF26C (T) ldsh r1,[r7,r4] ;4 3254
@ -1027,66 +1042,77 @@
080BF270 (T) neg r0,r0 ;2 3258
080BF272 (T) cmp r1,r0 ;2 3260
080BF274 (T) beq 80BF2EEh ;8 3268
080BF276 (T) add r3,1h ;2 3270
080BF278 (T) strh r3,[r7,32h] ;5 3275
080BF27A (T) ldr r2,=3005270h ;9 3284
080BF27C (T) mov r5,24h ;2 3286
080BF27E (T) ldsh r1,[r7,r5] ;4 3290
080BF280 (T) mov r6,36h ;2 3292
080BF282 (T) ldsh r0,[r7,r6] ;4 3296
080BF284 (T) lsl r0,r0,1h ;2 3298
080BF286 (T) add r1,r1,r0 ;2 3300
080BF288 (T) lsl r1,r1,6h ;2 3302
080BF28A (T) ldr r2,[r2] ;4 3306
080BF28C (T) add r2,r2,r1 ;2 3308
080BF28E (T) mov r1,22h ;2 3310
080BF290 (T) ldsh r0,[r7,r1] ;4 3314
080BF292 (T) mov r4,34h ;2 3316
080BF294 (T) ldsh r1,[r7,r4] ;4 3320
080BF296 (T) add r0,r0,r1 ;2 3322
080BF298 (T) lsl r0,r0,1h ;2 3324
080BF29A (T) add r6,r2,r0 ;2 3326
080BF29C (T) lsl r3,r3,10h ;2 3328
080BF29E (T) asr r3,r3,10h ;2 3330
080BF2A0 (T) cmp r3,7h ;2 3332
080BF2A2 (T) bgt 80BF2C8h ;8 3340
080BF2A4 (T) ldr r3,=30051ECh ;9 3349
080BF2A6 (T) ldrh r0,[r3] ;4 3353
080BF2A8 (T) add r0,99h ;2 3355
080BF2AA (T) ldr r2,=3005228h ;9 3364
080BF2AC (T) ldrh r1,[r2] ;4 3368
080BF2AE (T) orr r0,r1 ;2 3370
080BF2B0 (T) strh r0,[r6] ;5 3375
080BF2B2 (T) add r6,40h ;2 3377
080BF2B4 (T) ldrh r0,[r3] ;4 3381
080BF2B6 (T) add r0,0B9h ;2 3383
080BF2B8 (T) b 80BF2DCh ;8 3391
080BF2BA (T) lsl r0,r0,0h ;2 3393
080BF2BC (T) strh r0,[r6,r1] ;5 3398
080BF2BE (T) lsl r0,r0,0Ch ;2 3400
080BF2C0 (T) str r4,[r5,r7] ;6 3406
080BF2C2 (T) lsl r0,r0,0Ch ;2 3408
080BF2C4 (T) strh r0,[r5,r0] ;5 3413
080BF2C6 (T) lsl r0,r0,0Ch ;2 3415
080BF2C8 (T) ldr r3,=30051ECh ;9 3424
080BF2CA (T) ldrh r0,[r3] ;4 3428
080BF2CC (T) add r0,9Ah ;2 3430
080BF2CE (T) ldr r2,=3005228h ;9 3439
080BF2D0 (T) ldrh r1,[r2] ;4 3443
080BF2D2 (T) orr r0,r1 ;2 3445
080BF2D4 (T) strh r0,[r6] ;5 3450
080BF2D6 (T) add r6,40h ;2 3452
080BF2D8 (T) ldrh r0,[r3] ;4 3456
080BF2DA (T) add r0,0BAh ;2 3458
080BF2DC (T) ldrh r1,[r2] ;4 3462
080BF2DE (T) orr r0,r1 ;2 3464
080BF2E0 (T) strh r0,[r6] ;5 3469
// If counter != 0xFFFF:
080BF276 (T) add r3,1h ;2 3270 r3 is the unsigned counter
080BF278 (T) strh r3,[r7,32h] ;5 3275 increment counter
080BF27A (T) ldr r2,=3005270h ;9 3284
080BF27C (T) mov r5,24h ;2 3286
080BF27E (T) ldsh r1,[r7,r5] ;4 3290
080BF280 (T) mov r6,36h ;2 3292
080BF282 (T) ldsh r0,[r7,r6] ;4 3296
080BF284 (T) lsl r0,r0,1h ;2 3298
080BF286 (T) add r1,r1,r0 ;2 3300
080BF288 (T) lsl r1,r1,6h ;2 3302
080BF28A (T) ldr r2,[r2] ;4 3306
080BF28C (T) add r2,r2,r1 ;2 3308
080BF28E (T) mov r1,22h ;2 3310
080BF290 (T) ldsh r0,[r7,r1] ;4 3314
080BF292 (T) mov r4,34h ;2 3316
080BF294 (T) ldsh r1,[r7,r4] ;4 3320
080BF296 (T) add r0,r0,r1 ;2 3322
080BF298 (T) lsl r0,r0,1h ;2 3324
080BF29A (T) add r6,r2,r0 ;2 3326 tilemap pointer to cursor location
080BF29C (T) lsl r3,r3,10h ;2 3328
080BF29E (T) asr r3,r3,10h ;2 3330
080BF2A0 (T) cmp r3,7h ;2 3332
080BF2A2 (T) bgt 80BF2C8h ;8 3340
// If counter <= 7: draw larger cursor (tile 0x99)
080BF2A4 (T) ldr r3,=30051ECh ;9 3349
080BF2A6 (T) ldrh r0,[r3] ;4 3353
080BF2A8 (T) add r0,99h ;2 3355
080BF2AA (T) ldr r2,=3005228h ;9 3364
080BF2AC (T) ldrh r1,[r2] ;4 3368
080BF2AE (T) orr r0,r1 ;2 3370
080BF2B0 (T) strh r0,[r6] ;5 3375
080BF2B2 (T) add r6,40h ;2 3377
080BF2B4 (T) ldrh r0,[r3] ;4 3381
080BF2B6 (T) add r0,0B9h ;2 3383
080BF2B8 (T) b 80BF2DCh ;8 3391
080BF2BA (T) lsl r0,r0,0h ;2 3393
080BF2BC (T) strh r0,[r6,r1] ;5 3398
080BF2BE (T) lsl r0,r0,0Ch ;2 3400
080BF2C0 (T) str r4,[r5,r7] ;6 3406
080BF2C2 (T) lsl r0,r0,0Ch ;2 3408
080BF2C4 (T) strh r0,[r5,r0] ;5 3413
080BF2C6 (T) lsl r0,r0,0Ch ;2 3415
// Else: draw smaller cursor (tile 0x9A)
080BF2C8 (T) ldr r3,=30051ECh ;9 3424
080BF2CA (T) ldrh r0,[r3] ;4 3428
080BF2CC (T) add r0,9Ah ;2 3430
080BF2CE (T) ldr r2,=3005228h ;9 3439
080BF2D0 (T) ldrh r1,[r2] ;4 3443
080BF2D2 (T) orr r0,r1 ;2 3445
080BF2D4 (T) strh r0,[r6] ;5 3450
080BF2D6 (T) add r6,40h ;2 3452
080BF2D8 (T) ldrh r0,[r3] ;4 3456
080BF2DA (T) add r0,0BAh ;2 3458
080BF2DC (T) ldrh r1,[r2] ;4 3462
080BF2DE (T) orr r0,r1 ;2 3464
080BF2E0 (T) strh r0,[r6] ;5 3469 draw bottom half of cursor
// If counter > 0x10, set to 0
080BF2E2 (T) mov r5,32h ;2 3471
080BF2E4 (T) ldsh r0,[r7,r5] ;4 3475
080BF2E6 (T) cmp r0,10h ;2 3477
080BF2E8 (T) ble 80BF2EEh ;8 3485
080BF2EA (T) mov r0,0h ;2 3487
080BF2EC (T) strh r0,[r7,32h] ;5 3492
// Return 0
080BF2EE (T) mov r0,0h ;2 3494
080BF2F0 (T) add sp,20h ;2 3496
080BF2F2 (T) pop r3-r5 ;6 3502