Registrarse

¡Humor Wahero!... Entra y ríe :D

Kalawus

El fantasmaricón
Joder, Sage, me encanta tu humor. Tan sutil e inteligente...
Soy un verdadero fan de tus memes. Además de que ese ''When'' tiene mucho gancho.
Me encanta, lo amo, amemos el ''When'' de Sage.

Es que en serio, me encanta, felicidades, el mejor aporte de Whack a Hack. 10/10.
 

Berserker1523

2-Intentando discernir qué es lo más importante...


Aunque tiene sus fallos argumentales, me encantó la historia de superación personal. Que sí, el anime pudo haber tratado de la vida de un estudiante en su colegio, o lo que sea, pero el universo de los ángeles y los EVAs me gustó mucho también, además de como los personajes afrontan este mundo. El final de la serie, pues de lo que intenté comprender, es que ya se llevó a cabo la instrumentalización y Shinji no quiere aceptarla, o algo así, y al final lo hace. Luego, al verme la película, leí en un comentario que afirma que el final de la serie ocurre, y se complementa, cuando Shinji tiene que elegir una decisión para lo que pasará con la humanidad.
Recomiendo mucho este anime, no es perfecto pero sí es muy bueno y tiene una gran enseñanza. Además de dejarte huecos argumentales que puedes llenar con tu imaginación.

-----------------------------------------------------------------------------------------------------------------------------------------
@MichaKing @Markuzz

 
Última edición:

Kaiser de Emperana

Called in hand
Vamos con un poco de humor avanzado (?

Como cuando te ponés a ver tu primera rutina ASM, la cual a pesar de tener como 20 llamadas a subrutinas completamente innecesarias, hace su trabajo. Pero tiene un problema bastante raro como lo es que funcione únicamente si es insertada en offset terminado en cuatro ceros (que encima ni a eso le pegué, eran sólo dos)

Código:
.align 2
.thumb

Main:
	push {r0,lr}
	bl CERRAR_MENU
	bl RUTINASONICARVALHO
	pop {r0,pc}

CERRAR_MENU:
	ldr r0, RUTINA_EXIT
	bx r0

RUTINASONICARVALHO:
	push {lr}
	ldr r0, SCRIPT_ADRESS
	bl SCRIPT_ROUTINE
	pop {pc}

SCRIPT_ROUTINE:
	ldr r1, SCRIPT_EXECUTER
	bx r1

.align 2

RUTINA_EXIT:
	.word 0x08YYYYYY
SCRIPT_ADRESS: 
	.word 0x08XXXXXX
SCRIPT_EXECUTER: 
	.word 0x08ZZZZZZ

Pero ahora que tenés un poco de idea del tema y te pones a ver cual es la verdadera causa del problema... Y te das cuenta que a única razón por la que anda es una tremenda serie de casualidades.

Resulta que la rutina que estaba remplazando es una rutina que el juego esperaba que retorne un número de 8 bits. Si retornaba 1 la rutina se dejaría de ejecutar, retornando cualquier otra cosa, la rutina se volvería a ejecutar pasado un tiempo. En mi caso la rutina se debía ejecutar una sola vez, por lo que debería de retornar 1.

Ahora, ¿qué tiene que ver todo esto?
Bueno... Resulta que esta rutina es llamada mediante un "bx r0", por lo que el offset de la rutina está en el registo r0 cuando esta es ejecutada.
Eso sumando a que era un noob que hacía push y pop a r0, a pesar de ser totalmente innecesario (que en esta situación resultaba ser muy necesario), da como resultado un función que retorna su propio offset.
Como yo inserté la rutina en un offset que terminaba en dos ceros, digamos "XXXXXX00", para llamarla, el offset que habría que usar es "XXXXXX01". Una vez llamada pushea ese valor y cuado termina popea el mismo valor a r0 (el registro de retorno).
El juego como esperaba que esa función retorne un número de 8 bits, procede a eliminar los número que no necesita, es decir, convierte "XXXXXX01" en "01".
Consecuencia, una función que retorna 1 por pura casualidad.

Si uno la insertaba en un offset terminado en 4 por ejemplo, la rutina devolvería siempre 5. Causando que se ejecute infinitamente y que el juego se clave...

Pero es que me meo xDD
 

Corbitto

espantaviejas
Respuesta: Re: ¡Humor Wahero!... Entra y ríe :D

Vamos con un poco de humor avanzado (?

Como cuando te ponés a ver tu primera rutina ASM, la cual a pesar de tener como 20 llamadas a subrutinas completamente innecesarias, hace su trabajo. Pero tiene un problema bastante raro como lo es que funcione únicamente si es insertada en offset terminado en cuatro ceros (que encima ni a eso le pegué, eran sólo dos)

Código:
.align 2
.thumb

Main:
	push {r0,lr}
	bl CERRAR_MENU
	bl RUTINASONICARVALHO
	pop {r0,pc}

CERRAR_MENU:
	ldr r0, RUTINA_EXIT
	bx r0

RUTINASONICARVALHO:
	push {lr}
	ldr r0, SCRIPT_ADRESS
	bl SCRIPT_ROUTINE
	pop {pc}

SCRIPT_ROUTINE:
	ldr r1, SCRIPT_EXECUTER
	bx r1

.align 2

RUTINA_EXIT:
	.word 0x08YYYYYY
SCRIPT_ADRESS: 
	.word 0x08XXXXXX
SCRIPT_EXECUTER: 
	.word 0x08ZZZZZZ

Pero ahora que tenés un poco de idea del tema y te pones a ver cual es la verdadera causa del problema... Y te das cuenta que a única razón por la que anda es una tremenda serie de casualidades.

Resulta que la rutina que estaba remplazando es una rutina que el juego esperaba que retorne un número de 8 bits. Si retornaba 1 la rutina se dejaría de ejecutar, retornando cualquier otra cosa, la rutina se volvería a ejecutar pasado un tiempo. En mi caso la rutina se debía ejecutar una sola vez, por lo que debería de retornar 1.

Ahora, ¿qué tiene que ver todo esto?
Bueno... Resulta que esta rutina es llamada mediante un "bx r0", por lo que el offset de la rutina está en el registo r0 cuando esta es ejecutada.
Eso sumando a que era un noob que hacía push y pop a r0, a pesar de ser totalmente innecesario (que en esta situación resultaba ser muy necesario), da como resultado un función que retorna su propio offset.
Como yo inserté la rutina en un offset que terminaba en dos ceros, digamos "XXXXXX00", para llamarla, el offset que habría que usar es "XXXXXX01". Una vez llamada pushea ese valor y cuado termina popea el mismo valor a r0 (el registro de retorno).
El juego como esperaba que esa función retorne un número de 8 bits, procede a eliminar los número que no necesita, es decir, convierte "XXXXXX01" en "01".
Consecuencia, una función que retorna 1 por pura casualidad.

Si uno la insertaba en un offset terminado en 4 por ejemplo, la rutina devolvería siempre 5. Causando que se ejecute infinitamente y que el juego se clave...

Pero es que me meo xDD
 

Lon

La concha de la dragona
Buscando Whack a Hack por lugares random.


Qué c*jones es esta mierda xD

The Necromancer~
 

Lon

La concha de la dragona
Hola, pequeños nigromantes


Era tan maravilloso que no podía dejar que acabase en el pozo.
Y recordad: Cineres cineribus, pulverem pulveri~

The Necromancer~
 

Lon

La concha de la dragona
Antes que nada, perdón por el doble post, si molesta demasiado considerad hacer lo oportuno, pero pls, no borréis el meme que me da pereza volver a sacar captura. Las mentiras hacen llorar al niño Jesús.


@AaRóN
xdd
¡ERIALCATUP!
The Necromancer~
 

Lon

La concha de la dragona
Premio a historia más original del foro en RH 2017



Y ahora kieres bengarte :c​

Créditos a @Frax, que el tío es un vago de c*jones y no ha querido subirlo él a pesar de habérselo inventado x'D

Sugar Babeeee~
 

BagBoy

3D Artist | NDS Hacker
Cuando eres streamer famoso y Nintendo te regala Labo para que lo pruebes.



Cuando tu madre te dice que ya llevas muchas horas jugando a Labo y te pongas a estudiar y hacer deberes.

 
Última edición:
Arriba