qna_rh
Thread Id: 26710
Thread Name: Ayuda con esta rutina ASM
#0
Megascep_9 Kuchiki 28187
Hola compañeros, aquí tengo una duda, mejor dicho, necesito ayuda con esta rutina.

La rutina es de como insertar mugshot via ASM, creo que muchos han visto esta rutina, esta rondando por pokeco.

El problema es que a la hora de crear la tabla y cambiar todos los campos de la rutina, al momento de compilarla en el Thum me da error y no aparece el archivo .bin de la rutina.

Alguien me podría decir que hago mal :(

Aquí esta la rutina sin compilar y sin cambiar los campos:



Y aquí esta la rutina con todos los campos cambiados, o sea donde dice [tabla] y donde dice [offset_of_this_code]



Saludos:D
#1
cosarara97 12296
.equ TABLE, 0x08B0E88008C0EC83080E000000

Wat.
EDIT: Ok, vamos a decirlo un poco mejor:
Eso es completamente incorrecto (el número es obviamente demasiado grande).
¿De dónde has sacado la rutina, dices?
#2
Kal!ser 17506
Iniciado por cosarara97
Wat.


No entiendo mucho, pero tal como dice cosarara, esa dirección se te ha ido un poco de las manos no?
#3
pabel 26643
Tio donde dice equ Table debes poner el offset donde empieza la tabla en el editor hecho no la tabla en si.
#4
Megascep_9 Kuchiki 28187
Iniciado por cosarara97
Wat.
EDIT: Ok, vamos a decirlo un poco mejor:
Eso es completamente incorrecto (el número es obviamente demasiado grande).
¿De dónde has sacado la rutina, dices?


Esa es la tabla, mira aquí un fracmento de del tutorial:

''Digamos que tengo una imagen en 0xABCDEF y una paleta en 0x123456
Dividí las compensaciones hasta en 3 partes: [AB] [CD] [EF] / / [12] [34] [56]
Entonces cambio el primer y último bloque: [EF] [CD] [AB] / / [56] [34] [12]
Finalmente añadimos 08 detrás de él: EF CD AB 08 / / 56 34 12 08

Por ejemplo, mi tabla podría tener este aspecto:
Código:
EFCDAB08 56341208 0E 000000
[Imagen] [Paleta] [pal #] [relleno]
Ahora repite que por tanto los mugshots como desee.
Recuerde: La primera entrada de la tabla es 0x0 INDEX.
La segunda entrada es 0x1 INDEX y así sucesivamente.


Esta vez se pone fácil:
Código:
. TABLA equ, 0x08 (MESA)
Reemplazar (MESA) con su tabla de correctores en la ROM.

Y la última cosa que usted debe hacer está cambiando todo [OFFSET_OF_THIS_CODE]
al desplazamiento que se va a insertar el código ASM.
Si usted quiere que la inserta a 0x800000 por ejemplo,
reemplazar todos [OFFSET_OF_THIS_CODE] con 800.000.''
#5
cosarara97 12296
Iniciado por Sceptile9
Esa es la tabla, mira aquí un fracmento de del tutorial:

''Digamos que tengo una imagen en 0xABCDEF y una paleta en 0x123456
Dividí las compensaciones hasta en 3 partes: [AB] [CD] [EF] / / [12] [34] [56]
Entonces cambio el primer y último bloque: [EF] [CD] [AB] / / [56] [34] [12]
Finalmente añadimos 08 detrás de él: EF CD AB 08 / / 56 34 12 08

Por ejemplo, mi tabla podría tener este aspecto:
Código:
EFCDAB08 56341208 0E 000000
[Imagen] [Paleta] [pal #] [relleno]
Ahora repite que por tanto los mugshots como desee.
Recuerde: La primera entrada de la tabla es 0x0 INDEX.
La segunda entrada es 0x1 INDEX y así sucesivamente.


Esta vez se pone fácil:
Código:
. TABLA equ, 0x08 (MESA)
Reemplazar (MESA) con su tabla de correctores en la ROM.

Y la última cosa que usted debe hacer está cambiando todo [OFFSET_OF_THIS_CODE]
al desplazamiento que se va a insertar el código ASM.
Si usted quiere que la inserta a 0x800000 por ejemplo,
reemplazar todos [OFFSET_OF_THIS_CODE] con 800.000.''

Yay, traducción automática! Otra vez danos un link please.
Ya sé lo que has hecho, lo que pasa es que en el código no tenías que poner los datos de la tabla en forma de número, si no que tenías que poner la dirección del sitio en el que has puesto dicha tabla.
De todos modos no acabo de ver muy bien cómo funcionaría esto, por que si no tengo mal entendido no puedes usar ldr con una dirección que esté lejos del código.
#6
Megascep_9 Kuchiki 28187
Iniciado por cosarara97
Yay, traducción automática! Otra vez danos un link please.
Ya sé lo que has hecho, lo que pasa es que en el código no tenías que poner los datos de la tabla en forma de número, si no que tenías que poner la dirección del sitio en el que has puesto dicha tabla.
De todos modos no acabo de ver muy bien cómo funcionaría esto, por que si no tengo mal entendido no puedes usar ldr con una dirección que esté lejos del código.


Entonces dices que debo de insertar la tabla con el HxD, y en la dirección que la ponga, esa es la dirección que tengo que poner en la tabla...

A decir verdad, tiene mucho sentido, lo probaré.

Gracias por responder:D
#7
J.com 12785
Iniciado por Sceptile9
Entonces dices que debo de insertar la tabla con el HxD, y en la dirección que la ponga, esa es la dirección que tengo que poner en la tabla...

A decir verdad, tiene mucho sentido, lo probaré.

Gracias por responder:D

Tu mismo lo has dicho. Lo que tienes que poner en [TABLE] es el offset donde está la tabla. Para crear la tabla ve a un offset vacio en el HxD, que tengas bastantes FF (cuantos más tenga, más mugshots puedes meter). Y en ese offset, dentro del HxD, tienes que poner cada mugshots con la estructuraque indica en el tutorial.

EFCDAB08 56341208 0E 000000
[Imagen] [Paleta] [pal #] [relleno]

Y justo donde acaban esos bytes, metes el siguiente mugshot de la misma manera, y luego el siguiente y así.
#8
Megascep_9 Kuchiki 28187
Iniciado por cosarara97
Yay, traducción automática! Otra vez danos un link please.
Ya sé lo que has hecho, lo que pasa es que en el código no tenías que poner los datos de la tabla en forma de número, si no que tenías que poner la dirección del sitio en el que has puesto dicha tabla.
De todos modos no acabo de ver muy bien cómo funcionaría esto, por que si no tengo mal entendido no puedes usar ldr con una dirección que esté lejos del código.


Iniciado por Jotika
Tu mismo lo has dicho. Lo que tienes que poner en [TABLE] es el offset donde está la tabla. Para crear la tabla ve a un offset vacio en el HxD, que tengas bastantes FF (cuantos más tenga, más mugshots puedes meter). Y en ese offset, dentro del HxD, tienes que poner cada mugshots con la estructuraque indica en el tutorial.

EFCDAB08 56341208 0E 000000
[Imagen] [Paleta] [pal #] [relleno]

Y justo donde acaban esos bytes, metes el siguiente mugshot de la misma manera, y luego el siguiente y así.


Iniciado por pabel
Tio donde dice equ Table debes poner el offset donde empieza la tabla en el editor hecho no la tabla en si.


No lo puede creer, me funcionó a la perfección:



Un millón de gracias :D, son los mejores.

Saludos:D
#9
J.com 12785
Me alegro que lo hayas conseguido.
Midis, mugshots, scripts chulos... Joder, desde luego te está quedando un hack genial.

Bueno, como esto está ya resuelto, cierro el tema