Fortaleza Reznor
Como usar el Conditional Direct Map16 FLVP3jF¡Bienvenido a Fortaleza Reznor!
¿Que es Fortaleza Reznor?
Fortaleza Reznor es un foro de SMWH (Super Mario World Hacking) Aquí modificamos (hackeamos) el juego de Mario World a nuestro gusto y enseñamos a otros a saber a manejar el hacking de SMW usando la famosa herramienta "Lunar Magic".

¡Regístrate!
Únete a nuestra comunidad!, te ayudaremos en cada duda que tengas respecto al SMWH. Aparte podrás participar en eventos que hay en el foro y descargar los recursos que crean nuestros usuarios.

¡ANÍMATE! ¡Te divertirás en nuestro foro!

Atte:
La administracion.


¡Super Mario World Hacking en español! ¡Ayuda, tips, diversión y más!
 
ÍndiceCalendarioMiembrosRegistrarseConectarseFAQBuscar

Comparte
 

 Como usar el Conditional Direct Map16

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
lx5
Moderador Global
Moderador Global
lx5

Posts Posts : 2095


Como usar el Conditional Direct Map16 Empty
MensajeTema: Como usar el Conditional Direct Map16   Como usar el Conditional Direct Map16 EmptyDom Mayo 12, 2019 9:18 pm

La herramienta Lunar Magic tiene muchas funciones medio ocultas que son bastante utiles, una de ellas es el Conditional Direct Map16. Esta funcion te permite cambiar o borrar tiles segun unas banderas/flags en la RAM sin necesidad de meterte con codigo muy complicado, un ejemplo del uso de esta funcion en el juego original son los blocks de colores de los Switch Palace.

Limites del Conditional Direct Map16
Antes de iniciar a programar o hacer cualquier otra cosa, hay que saber algunas limitaciones de esta funcion.

  • Solo se puede usar con los tiles puestos con Direct Map16, no funciona con Standard Objects, Extended Objects ni Tileset Specific Objects.
  • La RAM dedicada a esta funcion no esta inicializada.
  • Las opciones disponibles son muy pobres y limitadas.
  • Si el nivel ya esta cargado y una bandera se acvita, los cambios seran reflejados hasta que se vuelva a cargar el nivel (u otro nivel).

¿Que se ocupa?
Para poder usar el Conditional Direct Map16 es necesario saber al menos un poco de ASM y tener idea de como funcionan unas cosas basicas del juego. Tambien es necesario saber utilizar UberASMTool 1.4.

Uso del Conditional Direct Map16

  1. Selecciona algun grupo de tiles colocados por Direct Map16 que se encuentren en el nivel.
  2. Ve a Edit -> Conditional Direct Map16...
    [Tienes que estar registrado y conectado para ver esa imagen]

  3. En la ventana que salio, se configura todo lo referente a la funcion.
    [Tienes que estar registrado y conectado para ver esa imagen]

    1. Flag number to check if objects should be displayed. Esta parte nos permite seleccionar cual de las 128 banderas distintas disponibles usaremos para los tiles del Direct Map16 seleccionados. Aqui va un numero hexadecimal, no decimal!

    2. Always show objects, and if flag is enabled then add 0x100 tiles. Esta casilla es la unica opcion de customizacion que tenemos para el Conditional Direct Map16.

      1. Si la casilla esta desactivada, los tiles seleccionados no apareceran cuando la bandera este desactivada (sea 0) y los tiles saldran traslucidos en el Lunar Magic, si la bandera esta activa, entonces los tiles seran generados al cargar el nivel y los tiles ya no saldran traslucidos.

        [Tienes que estar registrado y conectado para ver esa imagen] [Tienes que estar registrado y conectado para ver esa imagen]
        Izquierda: Flag 0x70 desactivado. Derecha: Flag 0x70 activado.

      2. Si la casilla esta activada, entonces cuando la bandera este desactivada (sea 0), los tiles seleccionados apareceran normalmente, pero si la bandera esta activa (es 1), los tiles seleccionados se les sumara 0x100 a su numero de tile. Para no confundir con esto, la casilla funciona como los blocks del Switch Palace: Si el switch palace esta desactivado, usa el tile 0x6A, si esta activo, usa el tile 0x16A.

        [Tienes que estar registrado y conectado para ver esa imagen] [Tienes que estar registrado y conectado para ver esa imagen]
        Izquierda: Flag 0x72 desactivado. Derecha: Flag 0x72 activado.



    3. Remove flag check (converts back to regular Direct Map16 Access). Esta casilla nos permite borrar el chequeo de algun flag de los tiles seleccionadas. Util si seleccionaste alguna tile que no era.


  4. Una vez configurada tu seleccion, tu tile ya esta listo para ser programado!
    Como nota extra, puedes visualizar como se veria(n) los tiles cuando todos los flags del Conditional Direct Map16 estan activos con Ctrl+5 o yendo a View -> Conditional Direct Map16 On
    Tampoco es necesario seleccionar todos los tiles afectados por un mismo flag al mismo tiempo, puedes seleccionar un par de tiles y configurarlos y despues configuras el resto.


Programacion del Conditional Direct Map16
Ahora viene la parte mas complicada, la programacion para activar y desactivar las banderas del Conditional Direct Map16.

Primero que nada hay que saber como estan acomodadas las banderas. Las banderas van de 0 a 7F y estas designadas en la direcciones RAM desde $7FC060 hasta $7FC06F y cada direccion RAM tiene una bandera asignada a cada bit.

RAM Bit 7  Bit 6  Bit 5  Bit 4 Bit 3  Bit 2  Bit 1  Bit 0 
$7FC06076543210
$7FC061FEDCBA98
$7FC0621716151413121110
$7FC0631F1E1D1C1B1A1918
$7FC0642726252423222120
$7FC0652F2E2D2C2B2A2928
$7FC0663736353433323130
$7FC0673F3E3D3C3B3A3938
$7FC0684746454443424140
$7FC0694F4E4D4C4B4A4948
$7FC06A5756555453525150
$7FC06B5F5E5D5C5B5A5958
$7FC06C6766656463626160
$7FC06D6F6E6D6C6B6A6968
$7FC06E7776757473727170
$7FC06F7F7E7D7C7B7A7978

El codigo para poder manipular estos bits debe de ir en el Gamemode 11 o en el label load para niveles.

Manipular los bits no va mas alla de checar una direccion RAM y activar o desactivar las banderas segun se desee. Un ejemplo sencillo seria checar si se tienen 3 o mas Yoshi Coins para desactivar la bandera 1E, si no se cumple la condicion, la bandera se quedara activa.

Código:
load:
    LDA $1420
    CMP #$03
    BCS .Desactiva
.Activa
    LDA $7FC063
    ORA.b #%01000000
    STA $7FC063
    RTL
.Desactiva
    LDA $7FC063
    AND.b #%10111111
    STA $7FC063
    RTL

[Tienes que estar registrado y conectado para ver esa imagen]

[Tienes que estar registrado y conectado para ver esa imagen]

Fin

Esto es todo lo que hay que saber acerca del Conditional Direct Map16, no es muy complicado de programar y hacer setup, solo hay que tener una ligera idea de cuales condiciones quieres usar para activar o desactivar algunas de las 128 banderas que el Lunar Magic nos da para usar esta funcion.

Cualquier duda, queja, pregunta o sugerencia, dejen un post aqui abajo!

fiesta!!! fiesta!!! fiesta!!!

__________________________________________________
Si tienes Wii U, Wii, 3DS o DS, ¡postea en tus friend codes en [Tienes que estar registrado y conectado para ver este vínculo] tema para hacernos amigos!
Espacio en renta.
Volver arriba Ir abajo
 

Como usar el Conditional Direct Map16

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Post-it. Talleres
» FotoMix v.9.2 - Cambios en el Formato
» Nociones básicas de como draftear
» Como hacer para que eBolivia tenga mas poblacion
» A ver, como lo digo....

Permisos de este foro:No puedes responder a temas en este foro.
Fortaleza Reznor ::  Ayuda y Recursos de SMW Hacking :: Tutoriales y consejos-