Source: http://huawei.creaforo.net/t190-modificar-juegos-version-ii
Timestamp: 2017-06-28 12:07:55+00:00

Document:
Modificar juegos (version II)
huaweiPor favor registrate o inicia sesión para ver todo el contenido del foro, graciasforo dedicado a los smartphones de la gran compañia huawei aun bastante desconocida en europa pero que sin duda esta avanzando rapidamente entre las listas de los mas vendidos y mejor valorados relacion calidad/precioBuscarResultados por: Mensajes Temas Búsqueda avanzadaBuscar Interno GoogleResultados por: Mensajes Temas Búsqueda avanzadaPalabras clavesu8160 pantalla g300 para temas Huawei u8650 y511 y300 u8110 roms U8180 ascend mapas android como liberar u8652 g510 cambiar JUEGOS Akiro u9200 root movil idioma Últimos temas» TABLET HUAWEI MEDIAPAD 10 LINKSáb Mar 26, 2016 5:02 am por aldo» rootear huawei u 8650Dom Mar 20, 2016 1:27 pm por dchacon» Huawei ascend P1Jue Jul 23, 2015 8:09 am por LESLIE MEDINA» No funciona el auricularMar Jul 07, 2015 4:24 pm por sirenm» AYUDA para instalar el IDIOMA ESPAÑOLJue Jul 02, 2015 10:11 am por Gerardo Nava» Cambiar idiomaVie Jun 19, 2015 10:33 am por jose sanchez» problemas huawei p6Mar Jun 16, 2015 9:34 pm por jorgesg» Problemas con la camara, el calendario y la linternaDom Jun 07, 2015 6:40 pm por betblas» Huawei y220-u00Miér Jun 03, 2015 11:23 pm por yeiderJunio 2017LunMarMiérJueVieSábDom 123456789101112131415161718192021222324252627282930 Calendario Compañeros
Modificar juegos (version II)huawei :: Principal :: TutorialesPágina 1 de 1. • Comparte • Modificar juegos (version II) por Alex 19 16v el Vie Oct 14, 2011 9:39 amRecientemente, he recibido una gran cantidad en un mensaje personal con preguntas acerca de las pantallas de juego de la optimización en HVGA, QVGA. Dado que esta cuestión es relevante para muchas personas, me decidí a escribir una breve declaración. Sólo quiero advertir que cada juego tiene sus propios matices, y el uso de la información descrita aquí es probable que tenga que ajustar para adaptarse a su caso particular, por otra parte, esta afirmación es más fiel a los juegos de Gameloft. También es conveniente disponer de las habilidades de programación, incluso si no es bajo un androide. En cualquier caso, espero que esta declaración sea de utilidad y le ayudará a entender la secuencia aproximada de las acciones. Plataforma Android que comenzó hace relativamente poco, tal vez hacer algo que no está bien / mejor, en este - el gurú del foro, por favor, no tirar tomates podridos, y señalar un error, ofrecer una opción más óptima.Vamos a empezar ...InstrumentosSpoiler (+/-)Necesitamos los siguientes programas:1. Apk Manager (descarga aquí).2. Cualquier editor de texto (el bloc de notas en forma y vindovuyu).3. Ida Pro 5.5 (se puede encontrar en Internet, el tracker).4. Cualquier editor hexadecimal (yo uso UltraEdit).Ahora vamos a pensar que el juego está optimizado para la pantalla HVGA / QVGA?Se puede dividir en varias etapas.Clave:1. Cambiar la resolución en la prestación HVGA / QVGA.2. Ajuste de la red de la pantalla táctil.Secundaria:3. Cómo desactivar la caché (necesario para poder convertir introducción a una resolución más baja).4. Asignación de un botón de hardware para cualquier acción (necesario para los teléfonos sin multitouch).Antes de comenzar cualquiera de las fases de optimización, es necesario obtener el código fuente, el código fuente original, por supuesto, no se, pero podemos obtener un código de JAVA-byte, que para nuestros propósitos es suficiente. Para ello vamos a utilizar "Administrador de Apk".Instalar y usar un "Administrador de Apk".Spoiler (+/-)La instalación no es gran cosa, simplemente descomprimir en cualquier carpeta. También recomendamos que una script.bat archivo, ubicado en la carpeta "Administrador de Apk", cambie "conjunto Heapy = 64" a un valor superior, por ejemplo, 256 o 512, para evitar problemas con ank archivos de gran tamaño.Trabajar con "Administrador de Apk" tampoco es difícil. Requiere ank-archivo puesto en una carpeta "lugar-APK-aquí-para-modding", ejecute "script.bat" y, con un texto en verde, presione "9" y "Enter". Menos de un minuto después, la carpeta de "proyectos" se descomprimido el archivo APK. Paquetes similares, ejecute "script.bat", presione "11", "Enter", la pregunta "si el sistema APC?", Haga clic en "n". Y al final, cuando el archivo AIC-envasados, lo firme, para ello, haga clic en el "12" y "Enter". Finalmente llegamos a la carpeta de "lugar-APK-aquí-para-modding" archivo con el nombre firmado [el nombre del original AIC-archivo]. Apk. Además de "director de Apk" se puede leer aquí.Además en el texto que se perderá la descripción de los archivos de desempaquetar / ank zapakovki.Asimismo, antes de empezar, recomiendo revisar primero una lista de comandos java-byte de código.Ahora usted puede violar directamente la optimización, por ejemplo voy a utilizar el juego de "Modern Combat: Sandstorm".1. Cambiar la resolución en la prestación HVGA / QVGA.Spoiler (+/-)La mayoría de los juegos en Android, escrita con OpenGL, OpenGL la resolución determinada por la función "glViewport", y se va a utilizar. Lo mejor, creo que la función de "glViewport" lugar en la función "OnDrawFrame". Para ello, mirando en la carpeta "smali", que se encuentra en una carpeta con el archivo raspakovanym ank, busque un archivo que contiene la función "OnDrawFrame". Por lo general, este archivo se denomina "GameRenderer.smali" o "[juego] Nombre Renderer.smali", en este caso, "SandstormRenderer.smali". Abrir en el Bloc de notas u otro editor de texto, y encontrar en él la función de "OnDrawFrame".He aquí un fragmento de esa función.Spoiler (+/-)En este fragmento de código para agregar la función de llamada "glViewport", por lo que obtener, como en el siguiente fragmento de código.Spoiler (+/-)Lo que hemos hecho aquí? Hemos añadido tres constantes (v6, v7, v8), les otorgó el significado de las coordenadas inferior izquierda (v6, v6) y la parte superior derecha (v8, v7) esquina de la pantalla y los transfirió a la función "glViewport". Creo que es comprensible que las coordenadas de la esquina inferior izquierda de la X e Y se utiliza para una constante y también v6? Dado que tanto el X e Y en este rincón son iguales. Además, el cambio de la 2 ª línea de la función ". Locales de 6" sobre ". Locales 9", que determina el número de constantes / variables que se utilizan en las funciones, así que hemos añadido tres constantes, 6 +3 = 9. También tenga en cuenta que los nombres de constantes (v6, v7, v8), no se toman por accidente, según la elección se centra en ya se utiliza en la función de las constantes. Si de repente alguien no entendió, 0x1E0 en decimal es 480 y 0x140 - 320.También presta atención a la función "onSurfaceCreated".Spoiler (+/-)Que es el códigoCódigosget v3, FCM / gameloft / android / Gand / GloftMCHP / SandstormGLSurfaceView; -> mDevice_W: Isget v4, FCM / gameloft / android / Gand / GloftMCHP / SandstormGLSurfaceView; -> mDevice_H: IEn este código, la variable V3, V4 y se le asigna una resolución real de la pantalla del dispositivo y pasar a la función "nativeInit". Dado que el juego todavía está diseñada para 480x800 de resolución, es mejor que el juego parece que tiene un dispositivo de tal resolución. en este código se sustituye porCódigoconst/16 v3, 0x320const/16 0x1E0 v4,Si usted no es un problema.(Se pueden configurar y 480h720, ya que las proporciones de una pantalla con 480x800 y 320x480 son diferentes y "comprimido", la imagen será ligeramente aplanada (gracias por el comentario de G @ sh! Sh). Pero en este caso, en la etapa de "ajuste del sensor de la red pantalla ", el coeficiente debe ser asumida a estar entre 800 y entre 720 y será 1,666666666666667 y 720/480 = 1.5)NotaSpoiler (+/-)Para algunos juegos, nuestro trabajo es suficiente y segura cambiar los permisos de todos los gráficos que usted necesita. Para hacer esto de nuevo los paquetes de archivo APK y comprobar que el teléfono ya que funciona. Si todo va bien y vaya al paso "red de ajuste de la pantalla táctil". Si no, entonces siga leyendo. En nuestro caso, con el juego de combate modernos: Sandstorm, no todo fue como la seda, los gráficos del juego smashtabirovalas hasta los permisos necesarios, y el menú - no. Esto significa que en algún lugar de la función se llama "glViewport", y luego cambiar la resolución a 480x800. Así que, como en los archivos "*. smali" función "glViewport" no llama, se puede comprobar observando, por lo que en el caso de la biblioteca "libsandstorm.so".La idea principal de el siguiente paso, eliminar todas las llamadas a funciones de biblioteca "glViewport".Para el análisis se necesita la biblioteca "Ida Pro". Para mayor comodidad, copie el "libsandstorm.so" en cualquier carpeta, ejecute "Ida Pro" y haga clic en el botón "Nuevo"Reducción del 1%Imagen adjunta321 x 270 (11.43 KB)Vyberaem siguiente "varios archivos", "archivo desconocido" y haga clic en "Aceptar".Redujo en un 29%Imagen adjunta446 x 348 (9,51 MB)En el archivo abierto, indique la ruta a la biblioteca "libsandstorm.so" y haga clic en "Abrir".En la siguiente ventana, cambiar el "Tipo de procesador" a "ARM processorARM710a", a continuación, haga clic en "Set" y "OK".Redujo en un 43%Imagen adjunta388 x 553 (17.32 KB)Si después de esto, habrá más de ventana, o haga clic en "Aceptar". Ahora tenemos que esperar a que el desmontaje. Este proceso es bastante largo, en este se puede ir a fumar o beber caféSmileEl hecho de que la ingeniería inversa está terminado, un mensaje aparecerá "El autoanálisis inicial se ha terminado." en la "ventana de salida" de la ventana inferior.Reducido en un 75%Imagen adjunta1279 x 979 (76.01 KB)Para mayor comodidad, en este caso, haga clic en el botón derecho del ratón sobre un campo azul, y el menú contextual, seleccione "Ver texto". Moverse al principio del código ensamblador para la búsqueda de "glViewport".Reducido en un 75%Imagen adjunta1279 x 981 (78.66 KB)Golpear la combinación de teclas "Alt + T" en el cuadro de diálogo para introducir la búsqueda "glViewport" y haga clic en "Aceptar".Reducido en un 15%Imagen adjunta376 x 254 (6,86 MB)Estamos interesados ​​en función de las llamadas "BLX glViewport", "BL glViewport", "B glViewport", "BX glViewport", etc Cualquier otra mención de "glViewport" ignoramos zhmakaem "Ctrl + T" y continuar la búsqueda.Encontrar el espacio necesario, cambie a la "Hex Ver-A".Reducido en un 45%Imagen adjunta573 x 408 (22.43 KB)Esto es para certificar que la llamada es de 4 bytes y un "CE F7 D4 E8" (en su caso, estas cifras pueden ser diferentes), es necesario con el fin de ver lo que hay que corregir y no accidentalmente sobrescribir nada extra.Redujo en un 48%Imagen adjunta615 x 189 (14,4 KB)Llamar a esta función que necesitamos para beber, lo necesita para reemplazar el marcado "CE F7 D4 E8" (en su caso, estas cifras pueden ser diferentes) sobre "C0 C0 46 46". Recuerde que la dirección "001F994A" y ejecutar el editor hexadecimal, yo uso el "UltraEdit". Abierta en nuestra biblioteca.Reducido en un 75%Imagen adjunta1279 x 983 (104.48 KB)Con el fin de movernos en la dirección correcta, haga clic en "Ctrl + G", en el cuadro de entrada aparecerá "0x001F994A" y haga clic en "Aceptar".Imagen adjuntaEn movimiento, vemos que en el lugar correcto, todo converge el código hexadecimal al hecho de que hemos visto en "Ida Pro" ficha "Hex Ver-A".Redujo en un 50%Imagen adjunta630 x 137 (12,6 KB)La fijación del marcado "CE F7 D4 E8" a "C0 C0 46 46".Redujo en un 50%Imagen adjunta628 x 135 (12.22 KB)Interruptor en "Ida Pro" y continuar la búsqueda de las siguientes llamadas "glViewport", puede haber varias decenas. Actúan de forma similar.Cuando todos los llamamientos a la bebida, nos quedamos. Copiar en lugar de una versión revisada del "libsandstorm.so". Paquetes de Ank archivo e instalar en su teléfono para su verificación. Si se hace correctamente, la programación completa de smashtabiruetsya el permiso requerido.2. Ajuste de la pantalla táctil la redSpoiler (+/-)Incluso cuando hemos optimizado el gráfico en pantalla HVGA / QVGA y todos los botones que aparecen en la pantalla en el lugar correcto en la pantalla táctil la red, se encuentran en el viejo campo, fuera de la pantalla.Se parece a esto.Reducido en un 60%Imagen adjunta800 x 480 (8,72 MB)1 - Este es el lugar actual de representar el botón.2 - Un lugar antiguo y dibujar el botón, la ubicación actual de los botones en la parrilla de la pantalla táctil.Solución es muy simple, usted necesita para asegurarse de que al tocar la pantalla en el punto 1, el juego cree que toque en el punto 2. Para ello, considere un cambio, como resultado de la etapa anterior, las coordenadas dibujado botones de la pantalla. Para averiguarlo, tenemos que calcular el cociente entre el número de veces que la resolución de la pantalla HVGA / QVGA menos WVGA.Código[B] Para HVGA [/ B]X: 800 / 480 = 1,666666666666667Y: 480/320 = 1,5[B] Para QVGA [/ B]X: 800 / 320 = 2.5Y: 480/240 = 2Por lo tanto, si las coordenadas de los botones en la pantalla WVGA, por ejemplo, se 700h360, entonces se coordina HVGA pantalla se 420h240 (700 / 1,666666666666667 = 420, 360 / 1,5 = 240). Este patrón es válido para los otros botones en la pantalla.Ese es nuestro objetivo para asegurarse de que cuando un jugador toca las coordenadas 420h240 juego pensaba que era tocado en las coordenadas 700h360.De esto se desprende que sólo tocar la pantalla para multiplicar las coordenadas X por 1,666666666666667, y 1.5 para la pantalla HVGA de 2,5 y X, Y 2 para QVGA.¿Tenemos que entrar en el controlador de eventos, la pantalla táctil "onTouchEvent". Con la búsqueda, nos encontramos con que se encuentra en los archivos "GameInstaller.smali" y "Sandstorm.smali". Queremos a alguien que está en el archivo "Sandstorm.smali".Spoiler (+/-)Preste atención a la funciónCódigoinvocar virtual {p1, v5}, Landroid / view / MotionEvent; -> getX (I) Finvocar virtual {p1, v5}, Landroid / view / MotionEvent; - getY> (I) FEstas funciones y definir las coordenadas de tocar la pantalla táctil, tras lo cual se multiplican las coordenadas en una coeficientes ya calculados.Para HVGA deben hacerlo.Spoiler (+/-)Aquí está el código que hemos añadido a la funciónCódigomul-int/lit8 v6, v6, 0xadiv-int/lit8 v6, v6, 0x6...mul-int/lit8 v7, v7, 0x3div-int/lit8 v7, v7, 0x2Espero que todos entendieron que multiplicar por 10 (A en hexadecimal) y se divide por 6, esto es lo mismo, multiplicado por 1,666666666666667 y multiplicando por 3 y dividirlo por 2 - lo mismo que multiplicar por 1,5.NotaSpoiler (+/-)En principio es posible hacer un poco diferente, y multiplicar las coordenadas del código de la función "onTouchEvent" no añadir, por el contrario, la creación de roles alternativos "nativeTouchPressedMod", "nativeTouchMovedMod", "nativeTouchReleasedMod". Reemplazar a los que se llaman "onTouchEvent" características originales "nativeTouchPressed", "nativeTouchMoved", "nativeTouchReleased". Y en las funciones de alternativas para multiplicar las coordenadas y los llama a la función original. Esto es especialmente útil en aquellos juegos en los que en vez de 3-función "nativeTouchPressed", "nativeTouchMoved", "nativeTouchReleased" utiliza un "nativeOnTouch" (un ejemplo de un juego "Hero of Sparta"), entonces existe la necesidad de crear sólo la primera función alternativa "nativeOnTouchMod", y sólo uno en su necesidad de añadir la multiplicación de código de coordenadas, que es más conveniente. Aunque este método es más conveniente y me parece que sería más difícil para los principiantes, en este no lo voy a describir en detalle. Si alguien quiere familiarizarse con este método, se puede ver cómo se implementa en el "Hero of Sparta", una mera comparación de los archivos "HeroOfSparta.smali" con la versión original y la versión optimizada para HVGA / QVGA.3. Cómo desactivar la cachéSpoiler (+/-)Este paso es aún más simple, el archivo "GameInstaller.smali" encontrar la función "isRequiredFile"Spoiler (+/-)En lo que estamos interesados ​​en un fragmentoCódigoinvocar virtual {v0}, Ljava io / / archivo; -> exists () Zmovimiento resultado v2si-v2 zona damnificada,: cond_1invocar virtual {v0}, Ljava io / / archivo; -> longitud () Jmovimiento en todo el resultado v2cmp largo v2, v2, p2si-v2 zona damnificada,: cond_2: Cond_1const / 4 v2, 0x0En este pasaje hay un cheque si existe un archivo en la memoria caché y si es así, al igual que su tamaño (o suma) con la referencia? Simplemente corte el cheque por la existencia de archivos, pero comparando el tamaño de la referencia a sí mismo:)Como resultado de ello, debe tener por loSpoiler (+/-)En algunos juegos, sobre todo la nueva función "isRequiredFile" no lo hace, se centran en los fragmentos de "invocar virtual {v0}, Ljava / io / Archivo; -> exists () Z", "invocar virtual {v0}, Ljava / io / Archivo; -> length () J ", si es que van de la mano y después de comprobar si" cmp-...", entonces el 99% de lo que es el control de la caché, se procede con ella similar a la descrita anteriormente._________________Trabajo actual: traduciendo algunos juegosPróximo: intentar pasar algún juego hd a resolución hvga y intentar aprender un poco mas sobre modificación de romshuawei.creaforo.netAlex 19 16vAdminMensajes : 295Fecha de inscripción : 08/10/2011Edad : 31Localización : españa/asturiasHoja de personajeGandroid: 0 Temas similares Temas similares» Awesome face: juegos» Juegos de Transformers! AVGN Review» Como Actualizo el Google Maps a la version 5.0?» Archivo de configuracion convert.conf para Squeezebox Touch y Duet / Version MAC OS X» Más Juegos de Numismática Antigua en www.tesorillo.comhuawei :: Principal :: TutorialesPágina 1 de 1.Cambiar a: Seleccionar un foro||--Principal |--Huawei U8650 | |--Roms | |--Caracteristicas | |--Ayuda | |--Censo de poseedores del terminal | |--Accesorios | |--Encuesta: que rom utilizas? | |--Temas fondos y demas cosas para personalizar el movil | |--Huawei U8110 |--Huawei U8160 (vodafone 858 smart) | |--Roms | |--Caracteristicas | |--Ayuda | |--Juegos | |--Aplicaciones | |--Huawei U8120 |--Huawei U8150 (Ideos) |--Huawei U8800/U8500 |--Huawei U8180 (Gaga) |--Huawei U8220 |--Huawei U9120 |--Huawei UM840 |--Juegos |--Aplicaciones recomendadas |--Navegadores recomendados |--Tutoriales |--General |--Opiniones y mejoras respecto al foro |--Off topic Permisos de este foro:No puedes responder a temas en este foro.ÍndiceCrear foro | © phpBB | Foro gratis de asistencia | Contactar | Denunciar un abuso | foro gratisHTCspain | HTCmania

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución