Uso de pokes para los juegos

... o cómo llegar al final
Avatar de Usuario
Constriptor
Lechoncillo
Lechoncillo
Mensajes: 4
Registrado: Vie 19 Jul , 2013 11:45 am

Uso de pokes para los juegos

Mensajepor Constriptor » Lun 22 Jul , 2013 2:21 pm

La pregunta puede parecer tonta y ante todo disculpad mi ignorancia, pero no tengo ni idea ¿Cómo se usan los pokes? Partiendo de la base que cuando era pequeño sólo sabía meter la cinta y cargar el juego y siempre me pregunté cómo poder utilizar esos "códigos tan raros" que salían en las revistas para poner vidas infinitas por ejemplo.

Si alguien pudiera explicármelo se lo agradecería (para neófitos como yo). Al hilo de esto ¿es posible también usarlos en cualquier emulador?

Muchas gracias de antemano y un saludo a todos...

Avatar de Usuario
litos.net
Loading, Please Wait...
Loading, Please Wait...
Mensajes: 5357
Registrado: Mié 05 Oct , 2005 7:57 pm
Ubicación: Madrid
Contactar:

Re: Uso de pokes para los juegos

Mensajepor litos.net » Lun 22 Jul , 2013 10:55 pm

Técnicamente no soy el más indicado para contarte como funcionan pero, básicamente, los pokes los utilizábamos utilizando prgamas "cargadores" que sustituían al original del juego o, en su defecto, "retocando" el código original del cargador y "metiendo" los pokes pertinentes. Existían métodos más sofisticados, como cargadores universales, "Pokeadores", hardware que permitía interrumpir el programa para "Pokearlo".
Por ejemplo: http://www.amstrad.es/images/amstrad-us ... -pokes.jpg
Aquí como conseguir vidas infinitas, en un tutorial más avanzado y técnico, por Abraxas, aquí: http://www.amstrad.es/tutoriales/varios ... nitas.html
Si es CPC es en Color

Avatar de Usuario
MiguelSky
Siempre vigilo
Siempre vigilo
Mensajes: 5652
Registrado: Sab 08 Oct , 2005 2:02 am
Contactar:

Re: Uso de pokes para los juegos

Mensajepor MiguelSky » Mar 23 Jul , 2013 12:34 am

Entonces, los códigos obtenidos con algún sistema como el que nos cuenta Abraxas eran los que nos enseñaban en las revistas: la dirección a modificar y su contenido. Desde un emulador, detendríamos la ejecución (preferiblemente nada más arrancar el juego) e introduciríamos el segundo dato en la posición de memoria que nos indica el primero. De vuelta a la ejecución, tendríamos los pokes funcionando. A veces, los pokes de la version cinta no coinciden con los de la version disco.

Avatar de Usuario
Constriptor
Lechoncillo
Lechoncillo
Mensajes: 4
Registrado: Vie 19 Jul , 2013 11:45 am

Re: Uso de pokes para los juegos

Mensajepor Constriptor » Mar 23 Jul , 2013 8:16 am

Vamos a ver si lo he entendido bien:

En el ejemplo que muestras de "Turbo Girl" ¿debería teclear ese código, ejecutarlo y después me pediría el juego original? ¿habría que salvarlo previamente (en disco o en cinta)? ¿cómo habría que ejecutarlo?

Cuando en alguna publicación aparecía código con la instrucción POKE ¿se haría de la misma manera?

Ya se que son muchas preguntas pero he descubierto esta página recientemente y estoy empezando después de 25 años...
Gracias...

Avatar de Usuario
robcfg
Keeper of The Forum
Keeper of The Forum
Mensajes: 752
Registrado: Jue 03 Abr , 2008 5:32 pm

Re: Uso de pokes para los juegos

Mensajepor robcfg » Mar 23 Jul , 2013 9:55 am

No te preocupes, que has venido al sitio correcto para resolver esas dudas!

Si hay un programa entero, lo normal es teclearlo, salvarlo en cinta o disco, lo cargas y lo ejecutas con RUN como cualquier otro programa normal en basic y, generalmente el propio programa te da las instrucciones necesarias (que suele reducirse a meter la conta o disco del juego).

Si vienen los pokes sueltos, suele ser para usarlos con un dispositivo que detiene la ejecucion del juego y te deja cambiar los valores de memoria directamente.

Un saludo!

Avatar de Usuario
Constriptor
Lechoncillo
Lechoncillo
Mensajes: 4
Registrado: Vie 19 Jul , 2013 11:45 am

Re: Uso de pokes para los juegos

Mensajepor Constriptor » Mar 23 Jul , 2013 11:12 am

Pues muchas gracias por vuestras respuestas... voy a ver si me pongo y si me surge alguna duda (que seguro que sí) volveré a preguntarla. A ver si me aclaro...

PD: La verdad es que está página es cojonuda (y perdón por la expresión)...

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 691
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Uso de pokes para los juegos

Mensajepor KaosOverride » Mié 24 Jul , 2013 1:51 am

Suponiendo que el juego esta en bruto dentro de un fichero binario, y se carga con un BASIC similar a esto:

10 OPENOUT"D":MEMORY &2FFF
20 LOAD"code.bin",&3000
30 CALL &3000

(Lo que viene a ser un desprotegido de toda la vida :) )

Los pokes se deberian poner antes del CALL, en este caso agregando una linea 25 por ejemplo

10 OPENOUT"D":MEMORY &2FFF
20 LOAD"code.bin",&3000
25 POKE &6D07,0
30 CALL &3000

Solo funciona con desprotegidos que carguen de esta manera desde BASIC. La base es que cargas el binario en memoria, y aun bajo control del BASIC, metes el POKE y ejecutas el programa ya cargado y modificado con el CALL

Es posible que te encuentres algun FOR NEXT, lineas DATA y un LOAD"pantalla.scr",&C000 o parecido antes de la linea 10 de mi ejemplo, es para cargar la pantalla de presentacion del juego pero no influye en la operacion

Todos los juegos protegidos, o que carguen con un binario intermedio, no podran pokearse asi... :( Puedes ver que los cargadores de las revistas son mas complejos que el retoque que te propongo, ya que SI estan preparados para las versiones originales/protegidas ;)
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Avatar de Usuario
XeNoMoRPH
Keeper of The Forum
Keeper of The Forum
Mensajes: 589
Registrado: Lun 08 Abr , 2013 5:55 pm
Ubicación: Galaxia de Magallanes
Contactar:

Re: Uso de pokes para los juegos

Mensajepor XeNoMoRPH » Vie 19 Ago , 2016 2:45 pm

merluzo escribió:[u]Yo todavia no entiendo que son los pokes, ahora oigo


Pues , a ver si te lo explico facil , se llamaba POKE , porque era un comando del Amstrad CPC , que se puede usar desde BASIC , basicamente es como usar trucos , energía inifinita , inmortalidad , etc .. yo antes preguntaba entre mis amigos " Eh .. Alguien tiene los pokes del Green Beret .. ? " por ejemplo , o... Alguien tiene el cargador del Green Beret ? ... porque claro , con los pokes solo no haces nada , hay que meterlos al juego.

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 6296
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Uso de pokes para los juegos

Mensajepor Artaburu » Vie 19 Ago , 2016 3:41 pm

El merluzo es un spamer. Usuario borrado.
Salu2,
Arta

Avatar de Usuario
6128
Moderador
Moderador
Mensajes: 5903
Registrado: Lun 12 Dic , 2005 6:08 pm

Re: Uso de pokes para los juegos

Mensajepor 6128 » Vie 19 Ago , 2016 3:51 pm

Me da que esta semana se nos han colado al menos otro par aparentemente semi-inteligentes.

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 6296
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Uso de pokes para los juegos

Mensajepor Artaburu » Vie 19 Ago , 2016 3:53 pm

6128 escribió:Me da que esta semana se nos han colado al menos otro par aparentemente semi-inteligentes.

Al menos 3 contra los que he intervenido. :evil:
Salu2,

Arta

dragon131
Megaforero
Megaforero
Mensajes: 335
Registrado: Mar 08 Jun , 2010 12:36 pm

Re: Uso de pokes para los juegos

Mensajepor dragon131 » Mar 25 Oct , 2016 2:02 pm

KaosOverride escribió:Suponiendo que el juego esta en bruto dentro de un fichero binario, y se carga con un BASIC similar a esto:

10 OPENOUT"D":MEMORY &2FFF
20 LOAD"code.bin",&3000
30 CALL &3000

(Lo que viene a ser un desprotegido de toda la vida :) )

Los pokes se deberian poner antes del CALL, en este caso agregando una linea 25 por ejemplo

10 OPENOUT"D":MEMORY &2FFF
20 LOAD"code.bin",&3000
25 POKE &6D07,0
30 CALL &3000

Solo funciona con desprotegidos que carguen de esta manera desde BASIC. La base es que cargas el binario en memoria, y aun bajo control del BASIC, metes el POKE y ejecutas el programa ya cargado y modificado con el CALL

Es posible que te encuentres algun FOR NEXT, lineas DATA y un LOAD"pantalla.scr",&C000 o parecido antes de la linea 10 de mi ejemplo, es para cargar la pantalla de presentacion del juego pero no influye en la operacion

Todos los juegos protegidos, o que carguen con un binario intermedio, no podran pokearse asi... :( Puedes ver que los cargadores de las revistas son mas complejos que el retoque que te propongo, ya que SI estan preparados para las versiones originales/protegidas ;)


El truco que uso yo muchas veces. (depende del juego claro). Es que muchos juegos no tocan la zona de memoria de &0050 a &0170 Esto significa que si escribes algo ahi, aun con el juego cargado seguira ahi,O en todo caso lo sobreescribira mas tarde de que lo hayas usado tu.

Entonces te buscas el &jp mas alejado que puedas encontrar desprotegido. Y con el editor hexadecimal lo cambias a que salte a &0050

Y te haces un.bin que diga por ejemplo.(mi codigo del cosmic sheriff).

org &9000

ld hl,&900c
ld de,&0050
ld bc,&0050
ldir
ret



org &0050

;miramos en &100 si hemos activado las variables de truco 1, y truco 2 &0100, y &0101

ld a,(&0100)
cp 01

jp nz,freezetime
ld a,&14
ld (&d812),a

:freezetime
ld a,(&0101)
cp 01
jp nz,fin
ld a,&00
ld (&60fc),a

:fin

jp &4c90

Esto que parece una cosa rara con los org, es simplemente para manterner las etiquetas en la zona de &0050.Yo los guardo en un .bin con save as de la memoria del winape los junto . Y luego lo cargo en &9000 con el editor de mochilote como uno solo.

en el caso del cosmic sheriff no hacia falta porque luego los pisaba, pero lo normal es hacer un push af, push hl y al principio y luego un pop hl, pop af al final Para conservar registros.

Y en basic me queda esto:

1 CLS
10 LOCATE 14,5
20 PRINT "Dragon pokes"
30 LOCATE 7,13
40 PRINT "Infinite lives? (1=No/2=Yes)
50 a$=INKEY$
60 IF a$="" THEN 50
70 IF a$="X" OR a$="x" THEN 110
80 IF a$="Z" OR a$="z" THEN 100
90 GOTO 50
100 POKE &100,&1
110 LOCATE 7,13
120 PRINT "Infinite time? (1=No/2=Yes) "
130 a$=INKEY$
140 IF a$="" THEN 130
150 IF a$="X" OR a$="x" THEN 200
160 IF a$="Z" OR a$="z" THEN 190
170 GOTO 130
190 POKE &101,&1
200 MEMORY &8FFF
210 LOAD"cosmicsh.bin",&9000
220 CALL &9000
230 RUN"cosmic


Y Cosmic sherif de kino & funno trucado. Y me salto la limitación de que este cargado previamente.

Siendo el cargador de kino & funo este:

10 MODE 1:PRINT"PRESENTADO POR HUFO & KINO"
20 MEMORY &5FFF:LOAD"!COSMIC.B00":CALL &6000

Hacer un poke despues del load no funcionaria,porque estaría la pantalla de los crackers cargada en memoria no el juego y no necesito cargadores largos y complicados. Y en caso de estar protegido, pues te vas pokeando los saltos hasta que llegues al que te interese.:mrgreen:


Volver a “Pokes, trucos, mapas...”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro

La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD El portal del CPC Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) El sitio del Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic