Registrarse

[Rutina] [FR - ASM] Expandir la Bolsa

BluRose

chiste, chiste
lo siento por adelante, mi español no es lo mejor

¡hola a todos! este tema sirve para esos que quieren expandir la bolsa en sus hacks de Pokémon Fire Red (US) de versión 1,0.

hay dos rutinas, una que azurile13 de pokecommunity hizo y la otra que yo hice. mientras no necesito creditos, dale creditos a azurile13 por hacer su parte de esto si la usas, por favor...

primer, tienen que insertar esta rutina con cambios a 0x1083F4:
cambia "largest_pocket_size" a tu cantidad mas grande de todos los "pockets" (BALLS, OBJETOS GENERALES, MTS, etc.)
recuerda que es hex
.equ largest_pocket_size, 0xDB
.equ largest_pocket_size_plus_one, largest_pocket_size + 1
.equ strings_size, largest_pocket_size_plus_one * 19

.org 0x08002B9C
malloc:
push {lr}
mov r1, r0

.org 0x081083F4
main:
push {r4, lr}
ldr r4, =(0x0203AD18)
mov r0, #largest_pocket_size_plus_one
lsl r0, r0, #0x3
bl malloc
str r0, [r4, #0x0]
cmp r0, #0x0
beq return
ldr r0, =strings_size
bl malloc
str r0, [r4, #0x4]
cmp r0, #0x0
beq return
mov r0, #0x1

return:
pop {r4}
pop {r1}
bx r1

esta rutina hace el juego poder reservar la cantidad de espacio en ram para todos los objetos~

ahora, la parte que actualmente expande la bolsa
cambia el numero de objetos que quieres en cada sección y entonces insértalo a 0x099E44
.text
.align 2
.thumb

.equ .OBJETOS_GENERALES, 100
.equ .OBJETOS_IMPORTANTES, 100
.equ .POKE_BALLS, 30
.equ .MTS, 120
.equ .BAYAS, 80

main:
ldr r1, bolsa_informacion
ldr r3, bolsa_nueva_direccion
@ objetos generales
str r3, [r1]
mov r0, #.OBJETOS_GENERALES
strb r0, [r1,#4]
@ objetos importantes
lsl r0, r0, #2
add r3, r0
str r3, [r1,#8]
mov r0, #.OBJETOS_IMPORTANTES
strb r0, [r1,#0xC]
@ poke balls
lsl r0, r0, #2
add r3, r0
str r3, [r1,#0x10]
mov r0, #.POKE_BALLS
strb r0, [r1,#0x14]
@ MTS
ldr r0, saveblock_8
ldr r2, [r0]
mov r3, #0xC4
lsl r3, r3, #2
add r2, r2, r3
str r2, [r1,#0x18]
mov r0, #.MTS
strb r0, [r1,#0x1C]
@ bayas
lsl r0, r0, #2
add r2, r0
str r2, [r1,#0x20]
add r1, r1, #0x24
mov r0, #.BAYAS
strb r0, [r1]
bx lr

.align 2

bolsa_informacion:
.word 0x0203988C
bolsa_nueva_direccion:
.word 0x0203B174
saveblock_8:
.word 0x03005008
no tengo una versión compilada de esa rutina porque cambia de persona a persona~

PD: se me olvidó de decir eso:
a la dirección 0x13B8C2:
1D E0
tienes que desactivar el menú de ayuda que se muestra cuando presionas los botones l or r

PD2: hablemos de limites
si usas más que 0x1000 (4096) objetos en los bolsillos de los objetos generales, importantes, y de los poké balls (cuando las cantidades son combinadas), tu rom rompería
pero el límite de cada bolsillo es 255 objetos porque la byte en ram que guarda la posición del cursor que nos muestra cual objeto seleccionamos
y los bolsillos de las bayas y de los mts usan la ram vieja con esta implementación
así si tienes más mts y bayas de TODOS los objetos que el juego te permitía tener, entonces sí, no puedes hacer eso :p

tl;dr en limites: 255 para los bolsillos de objetos generales, importantes, y poké balls
la cantidad de bayas y mts (combinada) no puede ser más de la cantidad que el juego te permitía tener
algo alrededor de 167

antes de terminar, es importante saber que todos los savefiles (?) de hacks comenzados no funcionarían despues de hacer eso.

si tienen preguntas o necesitas aclaraciones, dime and responderé prontamente~

¡que tengan buena suerte!
 
Última edición:

Sage0ne

Baneado
Una rutina sin duda la mar de interesante, seguramente lo use para el espacio extra en la mochila, más que nada porque durante el juego siempre suele llenarse de objetos que se encuentran por ahí y otros que se dan en la aventura.

Muchas gracias por el aporte! :D
 
Hey! No había visto esto.
Me recuerda a cuando llegaste y dijiste que nuestro foro tenía muchos gráficos. Pero ustedes tienen cosas como esta xD.
Sin duda lo probaré. Pero no sabes cuantos objetos más entrarían?.
Bien aporte ^^
 

Adke

weeeh
Con esto se podrían añadir nuevos bolsillos editando el código o debería ser algo completamente diferente?

De todas formas es un aportazo muy muy útil, la de veces que se habrán tenido que dejar objetos por tener la mochila llena..
 

FEL!X

ᴛᴜ ᴀᴍɪɢᴏ ᴇʟ ᴇsᴘᴀᴅᴀᴄʜíɴ
Usuario de Oro
¡Se agradece el aporte! Es un añadido interesante que dará juego a llevar más objetos. Si no tiene ningún error, pues digo ¿Porqué no?

Gracias por el aporte,
~Un abrazo
 

BluRose

chiste, chiste
Hey! No había visto esto.
Me recuerda a cuando llegaste y dijiste que nuestro foro tenía muchos gráficos. Pero ustedes tienen cosas como esta xD.
Sin duda lo probaré. Pero no sabes cuantos objetos más entrarían?.
Bien aporte ^^
sí, pero cosas como esto no son vistosas, el jugador no sabe que el juego permite que tenga más objetos, ajaja
no sé cuantos objetos esto te permitiría tener; depiende en la rom porque usa más ram
Con esto se podrían añadir nuevos bolsillos editando el código o debería ser algo completamente diferente?

De todas formas es un aportazo muy muy útil, la de veces que se habrán tenido que dejar objetos por tener la mochila llena..
sólo permite que añadas más objetos a cada bolsilla~
 

KanaCn

由紀カクタス
Buena rutina :)
Usualmente para mi opinión la bolsa tiene poquísimo espacio.
Es super útil si quieres tener más cosas en tu bolsa...
¡Sigue aportandonos más tutoriales !

-Yuki!
 

NozZ C

Ando activo
esta es una de esas cosas que no pueden faltar en un HR trabajado.
Gracias por traer esta rutina al foro.
 

BLAx501!

A veces comento en temas :3
Miembro de honor
Usuario de Platino
Excelente tutorial, @BlueRose, pero me pregunto si existe algún tipo de limitación a la hora de expandir la mochila. Desde luego que la SRAM no es infinita, así que supongo que de algún modo estaremos limitados. ¿Es necesario haber aplicado el Save Block Hack de JPAN para conseguir tener más espacio en la SRAM o con la poca memoria libre que queda en el juego es posible?

Mil gracias por el aporte :awesome:
 

BluRose

chiste, chiste
Excelente tutorial, @BlueRose, pero me pregunto si existe algún tipo de limitación a la hora de expandir la mochila. Desde luego que la SRAM no es infinita, así que supongo que de algún modo estaremos limitados. ¿Es necesario haber aplicado el Save Block Hack de JPAN para conseguir tener más espacio en la SRAM o con la poca memoria libre que queda en el juego es posible?

Mil gracias por el aporte :awesome:
oh my
necesito dejar de asumir que todos lo tengan aplicado guau
gracias por notificarme ajaja
también cambié la ram usada porque muchos proyectos usan "0x0203C000," ahora es el inicio de la ram usada por el menú de ayuda (0x0203B174)

PD: actualmente
ahora que pienso en ello
no debemos necesitar el save block hack
eso sólo mueve estos al save file
0203C000 - 0203C0CC
0203C0CC - 0203C324
0203C324 - 0203CEC4
en efecto, el save block hack nos da EC4 bytes que podemos usar
pero los bytes que el menú de ayuda usa son 0203B174 - 0203F173
supongo que los limites son: 0x4000 / cuatro por cada objeto
si usas más que 0x1000 (4096) objetos en los bolsillos de los objetos generales, importantes, y de los poké balls (cuando las cantidades son combinadas)
y los bolsillos de las bayas y de los mts usan la ram vieja
así si tienes más mts y bayas de TODOS los objetos que el juego te permitiría tener, entonces sí, no puedes hacer eso :p
tendrías que estar loco para tener tantos objetos :p
 
Última edición:
Arriba