FR | ASM | Tutoriales Jpan 5ta Entrega | Mugshot mediante Special 0x18b

Like Tree9Gracias
  • 8 Post By Naren Jr.
  • 1 Post By Rock
Respuesta
 
Herramientas Desplegado
  #1  
Hace 3 Semanas
Corazón FR | ASM | Tutoriales Jpan 5ta Entrega | Mugshot mediante Special 0x18b
Buenas gente! vengo siguiendo la serie de tutoriales de mi colega @Jo7a .

En esta ocasión les traigo la clase N°5 sobre los tutos de Jpan, ahora con el metodo de expandir la tabla de fosiles Pokémon para que puedan ser utilizados como gusten, muchos lo usan como mugshot, esta rutina es la edición del Special de los fosiles Pokémon de Ciudad Plateada, lo que harémos será expandir esta tabla para poder colocar 255 imagenes más.

Bueno, antes que nada necesitaremos la rutina y el compilador ASM, el Thumb pueden bajarlo de acá:

Acá esta la rutina que necesitaremos:

Código:
		.align 2
		.thumb 

.org 0x9d504
Replacer:	push {r4-r6, lr}
		mov r6, r8
		push {r6}
		ldr r0, Place_d6d5
		bl 0x1119d4
		lsl r0, r0, #0x18
		lsr r0, r0, #0x18
		cmp r0, #0x1
		beq 0x9d5f2
		ldr r0, Place_d495
		bl 0x77688
		lsl r0, r0, #0x18
		lsr r0, r0, #0x18
		cmp r0, #0xff
		bne end
		ldr r0, var_8004
		ldrh r0, [r0, #0x0]
		ldr r1, table_index
		mov r2, #0x2
		lsl r2, r2, #0x8
		cmp r0, r2
		bgt 0x9d5f4
		lsl r0, r0, #0x3
		add r1, r0, r1
		ldr r0, [r1, #0x0]
		push {r1}
		bl 0x8720
		pop {r1}
		add r1, #0x4
		ldr r0, [r1, #0x0]
		mov r1, #0xe8
		lsl r1, r1, #0x1
		mov r2, #0x20
		bl 0x703ec
		b 0x9d572
end:		mov r0, #0x0
		b 0x9d5f4
.hword 0x0000
Place_d6d5: 	.word 0x0809d6d5
Place_d495: 	.word 0x0809d495
var_8004:	.word 0x020370c0
table_index:	.word 0x08[La tabla Principal]
Bueno es todo muy sencillo gente, antes que nada debemos escoger una tabla principal para colocar los datos, cuando coloquen el offset sencillamente proceden a compilar la Rutina ASM con THUMB y la insertan en 0x9d504 sobre escribiendo esos datos.

Bueno esta tabla es bastante diferente, consiste en los siguientes datos:

Código:
[Puntero de Imagen Permutado]+08+[Paleta SIN COMPRIMIR Permutado]+08
Pero ahora me dirán, ¿Qué coño es "Puntero de imagen"? ¿No es la dirección donde esta la imagen?, pues no lo es jaja.

Por alguna razón esta rutina apunta a otra tabla... en donde si estarán las imágenes más unos caracteres diferentes, acá una muestra:


Como pueden ver mi tabla principal se encuentra en 0x08C00000 Y el primer puntero que he seleccionado en la imagen es el "Puntero de mi fosil", ok ahora vayamos a ese puntero qué en mi caso es: 0x08BFFDD0


Pues aquí esta el offset de mi imagen sin comprimir que es 7F0000, luego viene el respectivo 08 que indica que esta en la ROM luego siguen estos caracteres: 00 08 58 1B 00 00 00 00 00 00 00 00, que corresponden a obligación en la tabla.

Por lo tanto la tabla de "Puntero fosil" debe ser:

Código:
[Puntero Permutado de imagen sin comprimir]+08+00 08 58 1B 00 00 00 00 00 00 00 00
La tabla debe ocupar toda una linea de 0F datos como se puede ver en la imagen.

Ok deben tener MUY en cuenta toda esa información para la estructura de la tabla... porque si no la colocan bien no cargará la imagen y se crasheara el juego.

Anexo esto para quienes no sepan colocar imagenes sin comprimir en la ROM:

Tutorial para novatos que no saben colocar una imagen sin comprimir


Se debe utilizar NSE 2.0 (venga para hacerlo mas práctico)
  • Primero abren su ROM, creo que no necesito poner imagenes de eso...
  • Ahora vamos a abrir el Sprite que vamos a insertar, debe ser de 64*64 la imagen y 16 colores, venga lo normal:

  • Una vez este abierto su sprite en el NSE 2.0 hacemos esto:

  • Ahora elegimos el espacio donde lo vamos a poner:


    Esa dirección la deben escribir y guardar, ya que ese es el offset de su imagen, para la paleta hacen lo mismo y listo, esta su imagen sin comprimir en la ROM.


Ok una vez conciendo como se estructura la tabla y como son las imagenes, ya deberían tener sus dos tablas listas.

Recuerden, tabla principal (La que se coloca en la rutina) es donde debe ir así:

Código:
[Puntero de Imagen Permutado]+08+[Paleta SIN COMPRIMIR Permutado]+08
Si se quiere añadir otra imagen, pues al lado se hace igual en la tabla, se pone el puntero del "fosil" y la paleta.

Y bueno una vez estado todo listo ya en teoria nuestra rutina debe funcionar usando el special 0x18b!

Aquí les dejo la muestra del script de como debe ir:

Código:
#dynamic 0x800000

'---------------
#org @start
setvar 0x8004 0x0              'Numero de Imagen
setvar 0x8005 0x1              'Posición X Imagen
setvar 0x8006 0x4              'Posición Y Imagen
special 0x18B                  'Special que hace magia
msgbox @msgbox1 0x6 '"Los PSS Icon son lo mejor en mugs!..."
special 0x18C                  'Con este se acaba la magia.
end


'---------
' Strings
'---------
#org @msgbox1
= Los PSS Icon son lo mejor en mugs!\n<3
Todo se explica en el script, Special 0x18B hace la imagia que aparezca la imagen con la variable anteriormente fijada, con Special 0x18C desaparece el mug.

Si han hecho todo bien debería funcionar, acá una muestra:


Y es todo♥

ANOTACIONES IMPORTANTES
  • Dicho por SouL
    "El cuadro de atrás" xD anda al offset 09D696 y cambiar 66 F7 25 FB 04 por 00 00 00 00 00 y listo
    Aquí esta la direcion en hex para los que quieran editar el cuadro de atrás, eso tiene sus consecuencias, como que en los Multichoise personalizados no se verá el fondo del recuadro, pero en los YES/NO sí, y en las opciones del PC tambien funciona.

  • Esta rutina es incompatible con la de paletas dinamicas, la rutina de paletas dinamicas edita un par de cosas de la rutina normal de FR, cosa que se me escapa de los conocimientos que tengo ahora, si alguien sabe hacer esto compatible con paletas dinamicas, hable ahora o calle para siempre.
  • Los Mugshot se oscurecen si tienes el DNS, supongo que se puede editar para que el DNS no le afecte, pero tambien se escapa de mis manos x'D

CREDITOS
  • Jpan, Creador de rutina.
  • @Jo7a , por permitirme confirmar como iba la rutina en la ROM (aunque no tenias ni puta idea tio x'D)

¡GRACIAS A TODOS!



Última edición por Naren Jr.; Hace 3 Semanas a las 12:19
  #2  
Hace 3 Semanas
Predeterminado Respuesta: FR | ASM | Tutoriales Jpan 5ta Entrega | Mugshot mediante Special 0x18b
Útil y sencillo.

Soy aun malisimo con esto para el ASM y la programación en general, pero viendo esto me puede dar un MONTON de ayuda con los mugshots para el hack feo que estoy haciendo.

No digo mucho mas debido a mi poco conocimiento (tengo pero básico y pequeño) en esta materia, aun así gracias!!.

Nota: curioso Mughshot el tuyo...mmm?.

See ya!!.
Gracias: Naren Jr.
  #3  
Hace 3 Semanas
Predeterminado Re: FR | ASM | Tutoriales Jpan 5ta Entrega | Mugshot mediante Special 0x18b
Un tutorial útil y muy bien explicado, como yo no trabajo mucho con la base de JPAN se me escapan cosas tan buenas como esta.

El único punto que me rehúsa a usarlo es que no combine con el sistema de paletas dinámico, pero bueno eso no quita de que le sea de utilidad a mucha gente.

Gracias por compartirnos por aquí este tipo de aportes.
Un saludo
La diferencia entre la genialidad y la estupidez es que la genialidad tiene un límite.
~Albert Einstein

  #4  
Hace 3 Semanas
Predeterminado Respuesta: Re: FR | ASM | Tutoriales Jpan 5ta Entrega | Mugshot mediante Special 0x18b
Dicho por SouL Ver mensaje
"El cuadro de atras" xD anda al offset 09D696 y cambiar 66 F7 25 FB 04 por 00 00 00 00 00 y listo
Aquí esta la direcion en hex para los que quieran editar el cuadro de atrás, eso tiene sus consecuencias, como que en los Multichoise personalizados no se verá el fondo del recuadro, pero en los YES/NO sí, y en las opciones del PC tambien funciona.

Gracias a los que han comentado.

¡GRACIAS A TODOS!


  #5  
Hace 3 Semanas
Predeterminado Respuesta: FR | ASM | Tutoriales Jpan 5ta Entrega | Mugshot mediante Special 0x18b
Me asombras, has sido el unico que ah podido hacer que entienda las rutinas,
Mis respetos, ademas hace tiempo buscaba un tutorial de como poner esas imagenes
Ni siquera sabia que se llamaban mugshot(con razon no encontraba nada XD), muy
buen tutorial, sobre todo yo lo veo muy sencillo y rapido, De verdad espero que
sigas sacando tutoriales sobre rutinas, ese es tu don. XD

Muchas gracias por este maravilloso aporte!!
Saludos!!


Let justice be done though the heavens fall
  #6  
Hace 3 Semanas
Predeterminado Respuesta: FR | ASM | Tutoriales Jpan 5ta Entrega | Mugshot mediante Special 0x18b
Hola Naren, además de para Mugshots, para que más puede servir expandir la tabla? Y perdona la ignorancia, pero, para qué sirve la tabla original? (Me gustaría saberlo, será para mugshots también?).

Pd: monte preocupes, en 1 año haré que funcione para la wea dinámica :v
"Un sueño puede sustentarte; puede matarte o atormentarte. Pero si tú abandonas tu sueño, lo ocultas en tu corazón, es como suicidarse. Cada hombre, en su tiempo de vida, debería por lo menos tener esperanza por una vida que pueda sacrificar al dios de los sueños. La vida que busca solo vivir otro día, ¡es inaceptable!"
~Berserk

"El triunfo quedará siempre fuera del alcance de quienes temen constantemente al fracaso. El verdadero guerrero perfecciona cuerpo y mente y mira más allá de las tribulaciones del momento."
~Dark Souls II

"Un sueño es algo que haces para ti mismo, no para otros. Algunos sueñan con dominar el mundo. Algunos solo viven por una espada. Si te juegas la vida por un sueño como un torbellino ese sueño se tragará todos los demás."
~Berserk
Respuesta

Etiquetas
asm , colocar mugshot , fire red , fosiles pokémon , jpan , mugshot , special 0x18b

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 19:50.
Skin Afternoon por Sage