Página 1 de 1

Uso de pokes para los juegos

Publicado: Lun 22 Jul , 2013 2:21 pm
por Constriptor
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...

Re: Uso de pokes para los juegos

Publicado: Lun 22 Jul , 2013 10:55 pm
por litos.net
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

Re: Uso de pokes para los juegos

Publicado: Mar 23 Jul , 2013 12:34 am
por MiguelSky
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.

Re: Uso de pokes para los juegos

Publicado: Mar 23 Jul , 2013 8:16 am
por Constriptor
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...

Re: Uso de pokes para los juegos

Publicado: Mar 23 Jul , 2013 9:55 am
por robcfg
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!

Re: Uso de pokes para los juegos

Publicado: Mar 23 Jul , 2013 11:12 am
por Constriptor
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)...

Re: Uso de pokes para los juegos

Publicado: Mié 24 Jul , 2013 1:51 am
por KaosOverride
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 ;)

Re: Uso de pokes para los juegos

Publicado: Vie 19 Ago , 2016 2:45 pm
por XeNoMoRPH
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.

Re: Uso de pokes para los juegos

Publicado: Vie 19 Ago , 2016 3:41 pm
por Artaburu
El merluzo es un spamer. Usuario borrado.

Re: Uso de pokes para los juegos

Publicado: Vie 19 Ago , 2016 3:51 pm
por 6128
Me da que esta semana se nos han colado al menos otro par aparentemente semi-inteligentes.

Re: Uso de pokes para los juegos

Publicado: Vie 19 Ago , 2016 3:53 pm
por Artaburu
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:

Re: Uso de pokes para los juegos

Publicado: Mar 25 Oct , 2016 2:02 pm
por dragon131
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: