>> EN | English

Puedes directamente editar un archivo de entrada de película. Puedes cambiar cosas como la información del encabezado, o puedes directamente cambiar la entrada. La idea es cambiar alguna entrada anterior en la película sin cambiar lo que sea que venga después de ello.
Aquí esta el retén: No siempre funciona. De hecho, usualmente no funciona.
Dado que los juegos suelen depender de entradas o condiciones anteriores, cambiar algo del pasado puede causar que el resto de la película no se sincronice. Puedes corregir las desincronizaciones caso por caso, pero a menudo habrán muchos y tomaría demasiado tiempo hacerlo.
Algunos formatos de película, como FM2, están en forma de texto plano. Puedes usar un editor de texto como Notepad++ para editarlo. Por otra parte, algunos formatos, como VBM, están en binario. En este caso, puedes usar un editor Hexadecimal como Xvi32 o un editor de archivos ejemplo TAS Movie Editor hecho para ese propósito (mira el tema en el foro (en inglés) para más información).
Tu eres responsable de tu propia película. Haz copias de seguridad antes de editar. Por favor lee Ayuda de desincronización de TAS, ya que cubre las precauciones necesarias en caso de que algo vaya mal.

Formatos de película

Por favor lee las especificaciones del formato de película apropiado para el emulador que estás usando, bajo los Recursos de Emuladores. Es posible que necesites referirse a ello varias veces. Te explica como son grabados los archivos de película y así puedes intentar editarlo directamente.

Cuándo usar la edición de entrada

La edición del archivo de película se puede hacer solo para cambiar la información del encabezado. Esto es fácil de hacer así que no se cubrirá en esta página.

Archivos de texto plano

Los archivos de texto plano son archivos que contienen texto plano, eso es, texto que es fácil de leer en un editor de texto. Para cambiar la entrada, el editor de texto debe enumerar las líneas y tener la habilidad de saltarse a una línea deseada. Notepad++ hace esto.
La mayoría de los formatos de película en texto plano empiezan con un encabezado de algunos números de líneas, seguido por el primer fotograma de entrada (fotograma 0). Así la línea actual mostrada (línea 1929) corresponde al fotograma 1910 (1929 - 19).
Generalmente, si quieres ir al fotograma N, y B es el número de líneas de encabezado, entonces el fotograma N está en la siguiente línea:
N + B
Para cambiar la entrada, solo edítalo directamente. Revisa la especificación del formato de la película en cuanto a como funciona. En la imagen de la derecha, la línea actual muestra que en el fotograma 1910, izquierda (L), B y el gatillo derecho (E) están pulsados. De acuerdo al DSM, si quieres cambiar la entrada de modo que el gatillo derecho no esté pulsado, cambia la E por un punto (.) . Luego, si quieres presionar el gatillo izquierdo, cambia el punto justo antes de que el E solía ser un W. (Puede ser cambiado a cualquier cosa que un espacio o punto, pero por consistencia...)
Para insertar entrada puedes simplemente copiar y pegar de otro archivo. Lleva un registro de donde empieza. También, Lleva un registro de donde termina a no ser que no te importe la entrada después de ese punto. Debes también cambiar la duración de la película para que sea más largo. Si no sabes, hazlo más largo de lo normal. Si es muy largo, puedes arreglarlo en el emulador fácilmente y si es muy corto, no reproducirá toda la entrada.
Un incorporada herramienta Editor TAS de FCEUX también es bastante útil.

Archivos en binario

Los archivos en binario, por otra parte, consiste en un conjunto de bytes no intencionados en la lectura humana. Cuando se ve en un editor de texto, uno solo vería basura (aunque podría verse algo de texto plano si el archivo almacena algo de texto plano, como los campos de comentarios y autor). Para verlos adecuadamente, requiere un editor hexadecimal.
Debido a que los archivos en binario son difíciles de editar y el tamaño de texto plano ya no es un factor hoy en día (de todos modos las subidas están puestas en archivos .ZIP), futuras especificaciones de formato fomentan el uso de archivos de texto plano completos. Sin embargo, aún hay formatos en binario para los emuladores más antiguos.

Bytes

Los bytes son siempre mostrados como números hexadecimales de dos-dígitos. Los números hexadecimales usan la base 16, a diferencia de los números decimales que usan la base 10. Los dígitos van de la siguiente manera: 0, 1, 2, ..., 9, 10=A, 11=B, 12=C, 13=D, 14=E, 15=F. El siguiente número es el número hexadecimal 10, que es 1*16 + 0 = 16 en decimal. Por ejemplo, el número hexadecimal de 1234 es 1*16^3 + 2*16^2 + 3*16 + 4 = 4660 en decimal. Los números hexadecimales con dos o mas dígitos usualmente están prefijados con 0x para evitar confusiones.
Cualquier número de bytes pueden representar lo que sea que quieras representarlo. Por ejemplo, un byte puede representar un número de 0 a 255 (sin signo), o puede representar un número de -128 a 127 (con signo), pueden representar un byte de texto plano o pueden representar entradas. Bytes como esos que representan entradas son campos de bits. Cada byte tienen 8 bits y cada bit representa si algo está encendido o apagado. Los campos de bits son más fáciles de demostrar en binario (base 2). Un bit es ya sea encendido (1) o apagado (0).
76543210
bit 0: 0x01
bit 1: 0x02
bit 2: 0x04
bit 3: 0x08
bit 4: 0x10
bit 5: 0x20
bit 6: 0x40
bit 7: 0x80
Por ejemplo, el campo de bits 01101001 quiere decir que los bits 0, 3, 5 y 6 están apagados y los bits 1, 2, 4 y 7 están encendidos. Tiene el valor hexadecimal 69 (0x01+0x08+0x20+0x40).
Los números (más grandes que 255) que requieran dos o mas bytes para almacenar están típicamente almacenados en un formato de extremidad-baja (little-endian). Eso es, el orden de bytes está invertido cuando se ve en un editor hexadecimal. Por ejemplo, la secuencia de bytes 00 AB CD 12 representa el número hexadecimal 12CDAB00 (si representa un número en lo absoluto). Para evitar confusiones, las secuencias de bytes están dadas con espacios entre los bytes. Los formatos de extremidad-alta (big-endian, lo opuesto) están usados ocasionalmente en otros sistemas. En todos los formatos de película, se usan los formatos de extremidad-baja.
Los bytes en un archivo están direccionados empezando con 0. Los bytes pueden mantener valores que son usadas como punteros (números indicando las direcciones en el comienzo de algo, como la entrada). Esto es importante cuando se almacenan conjuntos de información que no tienen una longitud fija. A diferencia de los archivos en texto plano, el comienzo de la entrada puede no ser reconocida a no ser que esté declarado.

Formatos de película en binario

Los formatos de película en binario comienzan con un encabezado, seguido de la entrada. En la mayoría de los casos, el encabezado contiene un puntero hacia los datos del control (entrada), a pesar de que en algunos casos, el comienzo de la entrada se establece como alguna dirección, por ejemplo, el byte 0x200. Por ejemplo, en archivos SMV, los bytes de 0x1C a 0x1F contienen un puntero al inicio de la entrada. En la imagen de la derecha, de 0x1C a 0x1F contienen B0 00 01 00, así que el inicio de la entrada comienza en el byte 0x100B0.
Para encontrar un fotograma en particular donde la entrada está almacenada, necesitamos encontrar
La especificación del formato de la película debería decirte cuantos bytes por fotograma y donde se ubica el puntero hacia los datos del control si hay uno, o el comienzo de la entrada si no.
A*N + B
Recuerda que tienes que convertir todos los números a ya sea decimal o hexadecimal. Puedes usar una calculadora como la Calculadora de Windows para hacer la conversión y el cálculo por ti. También recuerda que si estás grabando con dos o más controles, los bytes por fotogramas serán diferentes que lo normal.
En la imagen de la derecha, SMV dice que A es 2 y sabemos que B es 0x100B0. Digamos que queremos ir al fotograma 32856. 32856=0x8058, así que usando el modo hexadecimal de una calculadora, 2*0x8058 + 0x100B0 = 0x20160. Selecciona Address -> Goto... y escribe 20160 como la dirección en hexadecimal. Dará como resultado la imagen de abajo.
Para cambiar la entrada, mira la especificación del formato cuidadosamente y luego haz los cambios. Recuerda que las entradas están almacenadas como campos de bit, así que para alternar el pulsado de un botón, necesitas cambiar el bit correspondiente
En la imagen de abajo, el fotograma 32856 (dirección 0x20160) contiene la secuencia de byte 00 20 (recuerda, ya que A=2, hay dos bytes por fotograma). De acuerdo al SMV (que lo da en una forma de extremidad-alta, como se muestra), quiere decir que la tecla seleccionada (0x0020) está presionada, y solo esa tecla. Para añadir el pulso de la tecla derecha a la entrada, cambia 00 20 a 00 21 (ya que derecha es 0x0001). Si en vez de eso quisiste añadir B, cambia 00 20 a A0 (ya que B es 0x0080).
Para insertar entrada, copia y pega de otro archivo. Mira Xvi32 ya que no es intuitivo (tienes que marcar primero un bloque, luego afirma el bloqueo de copia o el bloqueo de pegado). Mantén un registro de donde comienza. Luego, mantén un registro de donde termina a no ser que no te importe la entrada después de ese punto. Debes también cambiar la duración de la película (en el encabezado) para hacerlo más largo. Si no estás seguro, hazlo más largo de lo normal. Si es muy largo, puedes arreglarlo fácilmente en el emulador. Si es muy corto, no reproducirá toda la entrada. Mira las especificaciones de donde está la duración de la película y recuerda que son 4 bytes y de extremidad-baja.

Formatos en binario que no tienen constantes bytes por fotograma.

M64 es un poco diferente ya que ignora los fotogramas con lag. Así que el archivo de película cuenta por entradas que no tengan lag en vez de por fotogramas. Es fácil de resolver dado que la ventana del emulador incluye el recuento de entradas que no tienen lag.
FCM (un antiguo formato en binario usado por FCEU) usa una forma comprimida en vez de una base por fotograma, lo que hace que sea muy difícil de editar. Puedes convertirlo a FMV (un formato aún más viejo de un emulador obsoleto) usando Nesmock, edítalo y conviértelo de vuelta.

Funciona?

Funciona si lo que pensabas hacer ocurre cuando lo reproduces en el emulador. Este es un problema cuando cambias la entrada anteriormente en la película.
Si no funciona, ríndete o sigue editando. Por supuesto, deberías mantener el editor abierto hasta que termines. Cuando termines, cierra el editor de inmediato. Esto previene una sobre-escritura por accidente.
Siempre recrea estados que ocurren antes de donde editaste la película. Si no lo haces y usas esos estados, podrías ya sea:

Estudio de caso: SNES Mega Man X: Eliminando un tiro errado

En el fotograma 58090 o cercano, DeHackEd descubrió un tiro errado en el último segmento de la etapa de Boomer Kuwanger. El enemigo apuntado fue destruido en 3 golpes, pero se dispararon 4 tiros. Después de haber hecho una batalla contra del jefe y comenzando el siguiente nivel, DeHackEd no quería volver a grabar sobre su trabajo para arreglarlo, pero aún así el tiro errado tenía que ser eliminado.
El primer paso es encontrar donde se almacena el tiro. Aquí está el encabezado para el SMV. Es el mismo que el de la sección del formato SMV.
  53 4D 56 1A  01 00 00 00  77 77 77 77  69 29 00 00
  2B B0 01 00  01 01 00 00  20 00 00 00  C3 00 00 00
  1F 8B 08 00  00 00 00 00  00 03 ED C1  31 01 00 00
La compensación del control es 0xC3 (195 bytes). El número de fotogramas es cercano a 58090 y hay 2 bytes por fotograma, así que nuestro punto de inicio será 195 + 2*58090 = 116375 (0x1C697). Aquí hay algunos de los contenidos del archivo alrededor de esa área como se ve desde un editor hexadecimal.
(Posición hexadecimal) (bytes)
0001C670       81 80 81 80  81 80 81 80  81 80 81 80  81 80 81 80
0001C680       81 00 81 00  81 30 81 00  C1 00 81 00  C1 00 81 00
0001C690       C1 00 81 00  41 c0 81 80  81 80 81 80  81 80 81 80
0001C6A0       81 80 80 80  81 80 82 80  82 80 82 80  82 80 82 80
00 40
Recuerda que cada línea es un número par de bytes, pero nuestra compensación inicial es un número impar. La porción en negrita es encontrada en nuestros 7 fotogramas que consisten en disparos. Esto se debe a que disparar es tener un fotograma presionando Disparar (Y), un fotograma sin disparar, un fotograma con el Disparo mantenido, y así sucesivamente. El código para Y es 00 40 que aparecen en fotogramas alternos en la sección en negrita.
0001C690       C1 00 81 00  41 c0 81 80  81 80 81 80  81 80 81 80
se convierte en
0001C690       C1 00 81 00  01 c0 81 80  81 80 81 80  81 80 81 80
Después de ver la película otra vez para asegurarse de que el disparo se eliminó y no hay desincronizaciones (no hubo), se sigue grabando.

ES/InputFileEditing last edited by adelikat on 8/14/2022 6:15 PM
Page History Latest diff List referrers View Source