Código:
;K790 SW-R8BF003
;Muestra el nivel de volumen en porcentaje
;(c) Therion
;(r) MaPkiZzz
; Update2
include "x.inc"
code16
org 0x452777E4 ;call item
ldr r3, _zamain2
bx r3
_zamain2 dw patch+1
org 0x45277806 ;player item
ldr r3, _zamain
bx r3
nop
_zamain dw patch+1
org 0x45B1FCE0
patch:
push {r5,r6}
add r6, r0, 0
ldr r0, IsVolumeControllerBook
bl findBook
mov r1, 0x2C
ldr r0, [r0,r1]
cmp r6, 1
beq isCallNow
bl volumePersent
add r5, r0, 0
b setupVolumePercent
isCallNow:
bl volumePersentCall
add r5, r0, 0
setupVolumePercent:
curaddr=$
org curaddr
mov r0, 0x2C ;font
curaddr=$
org curaddr
bl SetFontSize
ldr r0, brushColor
ldr r1, penColor
push {r0,r1}
curaddr=$
org curaddr
mov r0, 0x34 ;x2
curaddr=$
org curaddr
mov r1, 0x16 ;y2
curaddr=$
org curaddr
mov r2, 0x14
mov r3, 4
push {r0-r3}
add r0, r5, 0
curaddr=$
org curaddr
mov r1, 0 ;align
curaddr=$
org curaddr
mov r2, 2 ;x1
curaddr=$
org curaddr
mov r3, 6 ;y1
curaddr=$
org curaddr
bl DrawSting
add sp, sp, 0x18
pop {r5,r6}
ldr r3, return
bx r3
volumePersent:
push {r4,lr}
sub sp, sp, 0xC
add r4, r0, 0
cmp r4, 0xF
beq Volume100%
cmp r4, 0
beq Volume0%
cmp r4, 0xE
beq Volume94%
cmp r4, 0xD
beq Volume87%
cmp r4, 0xC
beq Volume80%
cmp r4, 0xB
beq Volume74%
cmp r4, 0xA
beq Volume67%
cmp r4, 9
beq Volume60%
cmp r4, 8
beq Volume54%
cmp r4, 7
beq Volume47%
cmp r4, 6
beq Volume40%
cmp r4, 5
beq Volume34%
cmp r4, 4
beq Volume27%
cmp r4, 3
beq Volume20%
cmp r4, 2
beq Volume13%
cmp r4, 1
beq Volume7%
b Volume0%
Volume100%:
mov r0, 0x64
b volumeSetup
Volume94%:
mov r0, 0x5E
b volumeSetup
Volume87%:
mov r0, 0x57
b volumeSetup
Volume80%:
mov r0, 0x50
b volumeSetup
Volume74%:
mov r0, 0x4A
b volumeSetup
Volume67%:
mov r0, 0x43
b volumeSetup
Volume60%:
mov r0, 0x3C
b volumeSetup
Volume54%:
mov r0, 0x36
b volumeSetup
Volume47%:
mov r0, 0x2F
b volumeSetup
Volume40%:
mov r0, 0x28
b volumeSetup
Volume34%:
mov r0, 0x22
b volumeSetup
Volume27%:
mov r0, 0x1B
b volumeSetup
Volume20%:
mov r0, 0x14
b volumeSetup
Volume13%:
mov r0, 0xD
b volumeSetup
Volume7%:
mov r0, 7
b volumeSetup
Volume0%:
mov r0, 0
volumeSetup:
bl int2StrID
str r0, [sp]
mov r1, 0
mov r2, 1
adr r0, percent
bl str2ID
str r0, [sp, 4]
mov r1, 5
mov r2, 2
add r0, sp, 0
bl str2ID
add sp, sp, 0xC
pop {r4,pc}
volumePersentCall:
push {r4,lr}
sub sp, sp, 0xC
add r4, r0, 0
cmp r4, 0
beq CallBook_Volume0%
cmp r4, 1
beq CallBook_Volume13%
cmp r4, 2
beq CallBook_Volume25%
cmp r4, 3
beq CallBook_Volume38%
cmp r4, 4
beq CallBook_Volume50%
cmp r4, 5
beq CallBook_Volume63%
cmp r4, 6
beq CallBook_Volume75%
cmp r4, 7
beq CallBook_Volume88%
cmp r4, 8
beq CallBook_Volume100%
CallBook_Volume0%:
mov r0, 0
b volumeSetup
CallBook_Volume13%:
mov r0, 0xD
b volumeSetup
CallBook_Volume25%:
mov r0, 0x19
b volumeSetup
CallBook_Volume38%:
mov r0, 0x26
b volumeSetup
CallBook_Volume50%:
mov r0, 0x32
b volumeSetup
CallBook_Volume63%:
mov r0, 0x3F
b volumeSetup
CallBook_Volume75%:
mov r0, 0x4B
b volumeSetup
CallBook_Volume88%:
mov r0, 0x58
b volumeSetup
CallBook_Volume100%:
mov r0, 0x64
b volumeSetup
align 4
return dw 0x45277822+1
IsVolumeControllerBook dw 0x4527D4A5
brushColor dw 0xE0403f3f ;textColor
penColor dw 0x00929292 ;border
percent du '%', 0
int2StrID:
ldr r3, _int2StrID
bx r3
_int2StrID dw 0x45302879
SetFontSize:
ldr r3, _SetFontSize
bx r3
_SetFontSize dw 0x453198C4+1
findBook:
ldr r3, _findBook
bx r3
_findBook dw 0x4526A355
str2ID:
ldr r3, _str2ID
bx r3
_str2ID dw 0x45302B2D
DrawSting:
push {r3}
ldr r3, _DrawSting
mov r12, r3
pop {r3}
bx r12
nop
_DrawSting dw 0x45318E69
PD: Si este tema es solo de asm hechos por miembros del foro favor de borrar
Marcadores