Trucos anti-emulación sobre los juegos de NES cubiertos por GBA

Pedro Molina
Pedro Molina

La emulación es difícil de hacer, especialmente cuando intentas copiar una plataforma compleja como una consola de juegos, con poca o ninguna documentación pública disponible. A menudo tendrás que resolver las cosas con fuerza bruta y suerte tonta, y de vez en cuando todo se desatará cuando un programador aleatorio arroje un caso de borde que detiene todo gritando.

La serie Classic NES fue un puñado de juegos de Nintendo Entertainment System portados a Game Boy Advance a principios de la década de 2000. Lo que los hace únicos es una serie de decisiones de programación deliberadamente contundentes que los hacen funcionar de manera muy diferente a otros títulos. Estos trucos utilizan conocimientos avanzados sobre cómo funciona el hardware de Game Boy Advance y parecen utilizarse para dificultar la copia o copia de los juegos.

Los juegos utilizan una variedad de técnicas para confundir y engañar, desde técnicas de “memoria reflejada” que explotan el manejo de anomalías, hasta poner código ejecutable en la RAM de video y escribir en los búferes de sonido de formas inusuales.

Aún más confuso, estas técnicas parecen usarse solo en la serie de juegos Classic NES, y no en otros títulos de Game Boy Advance. No está claro por qué Nintendo ha hecho un esfuerzo especial para proteger estos puertos sobre otros títulos; quizás las técnicas utilizadas fueron por razones distintas a una prueba de protección de copia. Adivinen el uno al otro en los comentarios.

Esta no es la primera vez que hablamos sobre la copia de los sistemas de Nintendo. Eche un vistazo a este esfuerzo para revertir la Sony Pocketstation.

[Thanks to [[[Codifies]]para enviar esto!]

  • Howard dice:

    Hay muchas razones para utilizar estas técnicas, o algo así. La RAM era un bien valioso, por lo que si podía hacer un programa más rápido usando RAM de video, valía la pena. La copia también era un problema que podría resolverse parcialmente complicando el código. También era una buena técnica para usar si deseaba poder identificar el código robado por un competidor.

    Aparte de esas razones, en los 80 a los programadores les gustaba aparecer con trucos de firma tan extraños. El código de Coleco ADAM y ColecoVision está lleno de trucos extraños. Uno de mis servidores ADAM CP / M usó RAM de video como espacio de búfer. Así eran las cosas.

    • Alex Rossie dice:

      Creo que es muy inusual porque eso no parece afectar la copia, los emuladores mientras existían no eran un problema. Y esto no evitaría que las personas usen pararrayos.

      Quizás Nintendo estaba preocupado por los GBA falsos, quiero decir que tenemos el toque GBA y GBC, que creo que son dispositivos fabulosos.

      Creo que estoy de acuerdo contigo en que probablemente alguien mostró las técnicas sin un propósito real.

      Dudo que estas técnicas sean beneficiosas para el rendimiento, ya que una simple copia en GBA funciona bastante bien.

      • sombra dice:

        ¿Puedes profundizar en el GBA / GBC Touch? Nunca oi sobre ellos.

      • arfink dice:

        ¿Puede profundizar en el problema de GBA GBC Touch? Nunca oi sobre ellos.

        • Alex Rossie dice:

          Menos de £ 25 ($ 30).

          http://www.ebay.co.uk/itm/Nintendo-GBC-Touch-Game-Console-Clear-Game-Boy-Advance-Custom-Transparent-/152258408442?hash=item23734eeffa:g:9~YAAOSwzaJX6~u2

          Ligeramente más grande que GameBoy Color, es un clon que alimenta los carros, está retroiluminado * y tiene un carro incorporado con algunos juegos (que se pueden recoger en una tarjeta de memoria flash).

          Por un poco menos el toque GBA.

          http://www.ebay.co.uk/itm/Nintendo-GBA-Touch-Game-Console-Game-Boy-Advance-Custom-/112157268481?hash=item1a1d181a01:g:QFwAAOSwOyJX85W3

          Parece mucho que GBA no está seguro del tamaño, un clon impulsa los carros GBA y GBC.

          Panel de Youtube: https://www.youtube.com/watch?v=wfaehijVodQ

          Revisión de YouTube: https://www.youtube.com/watch?v=Ro4npBMKdmU

        • ulo dice:

          es verdad intente un poco antes de hacer una pregunta básica

          GBA es un Gameboy avanzado

          GBC es un color de Gameboy

          eres un vago

          • Megol dice:

            Entonces eres ignorante. ¿Leíste la publicación antes de que tu mismo te obligara a responder algo que nadie tenía problemas para entender y que nadie pidió?

      • Howard dice:

        En la época de los medios lentos, copiar datos era mucho más rápido si podía tragar muchos a la vez. En el ADAM, los discos y especialmente la cinta fueron solicitados durante mucho tiempo. El uso de RAM de video ha acelerado enormemente las cosas.

        Tiene razón en que los trucos no hicieron nada para evitar que la gente copiara para trabajar con el mismo hardware. Ha sido frustrado por personas que quieren hacer hardware compatible. También hicieron maravillas al noquear a las personas que querían revertir su código.

        Estoy seguro del espectáculo. Culpable como acusado.

    • marca dice:

      La memoria siempre ha sido un problema. En los días de ZX Spectrum, los programas a menudo usaban los 256 bytes del búfer de la impresora para alimentar un pequeño cargador que podía llenar la memoria principal del programa hasta el último byte.

    • Timothy Gray dice:

      Escribir datos en los lugares vacíos era común. la mayoría de los televisores nunca lo mostraron, por lo que era un lugar seguro para usar las cosas pronto.

    • asdf dice:

      Cuando traes un juego de NES a GBA, no corres el riesgo de quedarte sin recursos, así que esa no es la razón. La mayoría de los trucos enumerados también son específicamente trucos anti-emulación, no optimizaciones.

      Como otros aquí, supongo que solo estaban tratando de proteger sus juegos de piratear y jugar en emuladores y / o clonar hardware. Se han utilizado técnicas similares en software informático, como la protección contra copias o los mecanismos anti-depuración. Por ahora, supongo que se trata principalmente de malware que intenta detectar si se está ejecutando en una máquina virtual, para dificultar la detección y el análisis.

      • polobunny dice:

        Estoy de acuerdo con todo esto, pero es una decisión tan extraña porque solo se refería a la serie clásica de NES, que tenía alrededor de 42 juegos de los 1000 juegos disponibles.
        Obviamente, estas son reediciones de juegos de NES / Famicom, y algunas con cambios muy pequeños que apenas importaban en el gran plan. Al parecer, también fueron copiados en lugar de transportados en sí mismos. Tal vez esa sea una razón para difuminar, aunque pocketNES es un emulador de NES completamente funcional para GBA.

  • codigos dice:

    Debo agregar que mgba es, en mi humilde opinión, probablemente el mejor emulador de GBA, ¡actualmente juego Golden Sun nuevamente y me encanta!

    • Alex Rossie dice:

      Utilizo mednafen porque es compatible con todo un sistema, recursos para un sistema limpio.

      Pero si mgba le permite usar sus archivos guardados en un emulador y también extraerlos de nds y con ez-flash, me inclinaría.

  • JIm B dice:

    Un amigo usó un truco de protección contra copias que funcionaba en la computadora de IBM, pero no le importaba a la GBA. En la computadora original, usaron un canal DMA para leer aparentemente innecesariamente un rango de direcciones una y otra vez. Esto se hizo para actualizar la DRAM, ya que las primeras computadoras usaban mucho TTL y, por lo tanto, usar DMA para hacerlo en lugar de agregar una calculadora y mezclarla en la dirección DRAM costaría más chips.

    Así que mi amigo hizo los trucos oscuros habituales y luego desactivó el DMA. Se aseguró de que su ciclo de programa tocara cada una de las 128 o 256 direcciones de compensación en cada ciclo de pantalla de video para preservar la memoria en vivo. Pero si alguien entraba con un depurador y trataba de revisar el código, de repente la DRAM desaparecía y se pudría un poco.

    • Megol dice:

      ¡Truco genial pero muy técnico! IIRC fueron incluso algunos de los primeros clones XT que no usaban DMA de esta manera …

  • marca dice:

    Las ventas de juegos de GBA han sufrido terriblemente por piratería y piratería, así que supongo que Nintendo decidió usar esta serie para probar varias estrategias contra las protecciones de copia sin tener que jugar con su guitarra de desarrollo principal para juegos de GBA.

  • MarkF dice:

    Uno de los problemas de estas estrategias anti-emulación es que eventualmente se vuelven contraproducentes. Algunas de las editoriales más importantes con las que he trabajado a lo largo de los años (EA, Activision, THQ, etc.) han ganado bastante dinero vendiendo paquetes de sus títulos “clásicos” décadas después de la publicación de los originales. El único problema que vi varias veces fue tratar de evitar y deshabilitar nuestra propia protección contra copias años después de la partida de los miembros originales del equipo. ¡Debería descargar una copia de warez y publicarla! 🙂

    • Tago Lewin dice:

      Eso es muy interesante. Si alguna vez escribe sus experiencias sobre tales cosas, ¡asegúrese de informarnos!

      • Alex Rossie dice:

        Si está interesado, fue el caso de Ubisoft que usó una ranura sin CD recargada cuando tuvo problemas con Rainbow Six Vegas 2 en el ’08.

        http://www.bit-tech.net/news/gaming/2008/07/21/ubisoft-uses-reloaded-crack-as-patch/1

  • HowardC dice:

    Por la conversación utilizada aquí, creo que la gente está confundida por el artículo. Las extrañas decisiones utilizadas en la serie clásica de NES (NO en los carros originales de NES) fueron para la protección contra copias. Si tiene un carrito con un emulador de NES que funcione, está bien buscar el bit en la eeprom que contiene el ron y cambiarlo por otro juego. Si no hicieran tan difícil la programación del emulador del carrito, aparecerían en el mercado negro cientos de carritos con juegos antiguos. Incluso entonces, Nintendo protegió en gran medida su catálogo atrasado.

    • jrfl dice:

      Este comentario necesita más atención. No se protegió a los romaníes (estaban disponibles en ese momento), sino al emulador. Esto se debe a que se podría modificar fácilmente un vehículo emulador general para ejecutar algunas ROM nes, lo que permitiría a un hacker lanzar cientos de juegos basados ​​en gba de la biblioteca de ROM nes disponibles.

      • Greenaum dice:

        Ya existen emuladores de NES para GBA, han existido durante años.

        Tal vez porque estos carros son bastante pequeños (solo el emu + como 32K o cualquier cosa de un carrito de juego), los desarrolladores de Nintendo decidieron probar algunos trucos solo para ver cómo les iba. Los carros, sin embargo, no fueron excelentes vendedores.

    • polobunny dice:

      Nintendo todavía está protegiendo en gran medida su catálogo anterior, vea, por ejemplo, el Proyecto AM2R. 🙁

  • Fera Aaron dice:

    Es extraño que pusieran tanto esfuerzo en evitar la simulación de juegos cuyos equivalentes de NES eran fáciles emuladores.

  • Michael Simonds dice:

    Dudo que estos sean trucos anti-emulación o incluso de protección contra copias. Protección de primera copia: ¿alguno de estos le impide copiar rom? Probablemente no. Parece que el autor tiene experiencia escribiendo emuladores, pero ¿tiene experiencia escribiendo un juego en GBA o NES? Quiero decir que escribí un poco de 8 bits y también trabajé en la era GBA en juegos. El juego de 8 bits actual de mis amigos usa muchos trucos y código auto-modificable para desgastar hasta el último bit de rendimiento y memoria RAM, un efecto secundario es que su código es más oscuro.

    • Michael Simonds dice:

      De hecho, veo que escribió algo nacional para la GBA, pero sería interesante investigar cada afirmación y ver si hay otras razones por las que podrías hacer el truco, o razones de hardware.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *