Dejo el ASM de un buen parche, es la segunda actualizacion

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

Saludos