29812-\[Duda]_Sobre_Scriptin
#2
cosarara97 12296
La CPU de la GBA tiene el ROM mapeado en las direcciones a partir de 0x8000000, es decir, el byte 0 del ROM está en 0x8000000, el byte 1 en 0x8000001, el byte 0x800000 en 0x8800000, etc. De este modo, cuando un número lo tiene que leer el juego en ejecución, tiene que llevar ese 0x8 delante.
La directiva #org, en cambio, es para el compilador, y solo puede ser una dirección del ROM (por eso no empieza a partir de 0x8000000).
Aún así, para facilitar las cosas, muy a menudo el compilador te añadirá el mismo esos 0x8000000. Por ejemplo:

#org 0x800000
msgbox 0x123123
callstd 6
end

#org 0x123123
= sup?

Va a convertirse en esto, al compilar:

#org 0x800000
msgbox 0x8123123
callstd 6
end

#org 0x123123
= sup?


Iniciado por MaskedMarowak
Te sugiero que lo modifiques mediante la Refactorización.
A menudo los offsets originales son cambiados (Y ni idea de por qué), sin embargo, si usas punteros será mucho más fácil.
La refactorización se hace yendo a "Opciones-> Opciones de Descompilación-> Marcar la palomilla "Refactorización", cerrar y volver a abrir el Script.
Espero haberte ayudado.


Si en lugar de usar cosas como la refactorización intentaras tener idea de porqué, quizá entenderías mejor lo que haces. Es decir, no digo que esté mal usarla, pero si a alguien que pregunta el porqué de algo le dices que la use y se olvide de ello, nunca va a entender cómo funcionan las cosas.

PD: Además, usas los términos incorrectamente. "@asdf" no es un puntero, es una etiqueta dinámica.
========
Mensaje combinado por doble post