Año: 1987
Plataforma: DOS
Tambien para: Amiga, Amstrad CPC, Apple II, Apple IIgs, Atari 2600, Atari ST, Commodore 64, Genesis, J2ME, Lynx, MSX, NES, SEGA Master System, Wii, ZX Spectrum
Compañia: Epyx
Textos: :en:
Sonido: PC-Speaker
Graficos: CGA 4-color, CGA composite, CGA 16-color, MCGA/VGA, Tandy 1000, EGA/VGA [Recomendado], Hercules monocromo
Manual: :es:
Ficha en mobygames: https://www.mobygames.com/game/dos/california-games
(https://i.postimg.cc/rFnnWZNS/7688-california-games-dos-screenshot-title-screen-mcga-vga.gif) (https://i.postimg.cc/cLvDc7FP/7689-california-games-dos-screenshot-main-menu-mcga-vga.gif)
(https://i.postimg.cc/BvDMrS9g/7690-california-games-dos-screenshot-skateboarding-mcga-vga.gif) (https://i.postimg.cc/RZ2gp38h/7692-california-games-dos-screenshot-surfing-mcga-vga.gif) (https://i.postimg.cc/PxQKqSqv/7694-california-games-dos-screenshot-surfing-judge-panel-mcga-vg.gif) (https://i.postimg.cc/1tQJPkyZ/7704-california-games-dos-screenshot-gnarly-score-cga.gif)
Juego de deportes secuela de las series Summer Games y Winter Games.
El jugador/es elige un patrocinador y una modalidad: monopatin, manejo del balon, surfing, patinaje, disco volador y BMX. El objetivo es llegar a lo mas alto de la lista de puntuacion.
==Instrucciones:
Ejecutar RUNME.BAT y jugar.
Funciona perfecto en DOSBox.
==¿Que tiene de especial esta subida?
California Games tiene un bug en la parte donde se introduce el nombre del jugador/es. El bug hace que solo se pueda introducir un nombre con un teclado de los de 84/85 teclas, si tienes un teclado extendido de 101/102 teclas el juego no detecta nada. En la practica la version EGA/VGA no funciona en DOSBox, solo CGA/Tandy.
¿Por que?
Pues resulta que el juego captura la INT de teclado del DOS (INT_16) y redirige las funciones 0, 1 y 2 a su propia rutina de manejo de teclado.
CS:6D5F 0AE4 or ah,ah ; ¿nos llaman para funcion 0?
CS:6D61 740B je 6D6E ; SI: Saltamos la rutina de teclado del juego para gestionar funcion 0
CS:6D63 FECC dec ah ; ¿funcion 1?
CS:6D65 7438 je 6D9F ; SI: gestionarla
CS:6D67 FECC dec ah ; ¿funcion 2?
CS:6D69 7445 je 6DB0 ; SI: gestionarla
En la parte de introducir nombres el juego llama a INT 21/8 para leer caracteres del teclado, y el bug esta en que el juego asume que el DOS acabara llamando a INT 16/0.
Con un teclado no extendido el DOS acaba llamando a INT 16/0, y todo va bien, pero con uno extendido resulta que el DOS acaba llamando a INT 16/10h, que el juego no redirige, por lo tanto no ocurre nada, y lo que el usuario ve es que el juego parece quedarse colgado.
CS:9830 B608 mov dh,08
(...)
CS:9841 92 xchg dx,ax
CS:9842 CD21 int 21 ; llamar a INT 21/8
No es problema de DOSBox, el bug tambien existe en un DOS real.
En CGA y Tandy (machine=cga o machine=tandy) funcionara, ya que en estas dos dosbox emula un teclado no extendido que si soporta el juego.
Para poder jugar en dosbox con EGA/VGA, el fix que se me ocurrio fue modificar la parte de codigo donde se llama a INT 21/8 para que llame a INT 16/0.
CS:9830 30F6 xor dh,dh ; ESTA LINEA ES EL CRACK
(...)
CS:9841 92 xchg dx,ax
CS:9842 CD16 int 16 ; llamar a INT 16/0 ; ESTA LINEA ES EL CRACK
Para aplicar el fix abririamos CALGAMES.EXE con nuestro editor hexadecimal favorito y sustituimos:
b6 08 a1 5c 5e 0a e4 75 08 c7 06 5c 5e ff ff eb 05 92 cd 21
por
30 f6 a1 5c 5e 0a e4 75 08 c7 06 5c 5e ff ff eb 05 92 cd 16
En la subida el ejecutable ya tiene aplicado el fix, no es necesario hacer nada mas.
Se incluye el ejecutable original renombrado a CALGAMES.EX_
==Curiosidades:
Si en el evento "disco volador" estamos sin pulsar ninguna tecla el tiempo suficiente, llega un momento en que aparece un alien que secuestra a tu compañero en el radar, en la parte superior de la pantalla.
La musica de la intro es "Louie Louie" de Richard Berry sonando por PC Speaker. Este tema ha sido versioneado por bandas como The Sonics o Motorhead.
==Descarga (~200KB comprimido 7z)
Juego: :dosbox: :disco: :en: http://www.mediafire.com/file/q05c735ttkgoqf7/CALGAMES.7z/file
Manual [pdf] :es: cortesia de Lolocop https://mega.nz/file/1gQVFaBS#dvx1hIm8U0XBB9X2jTC6Dz8Mh72Dj8_8OUHLL746Y9I
Pues creo que eso es todo. Have fun :)