Karoshi MSX Community
05 de Julio de 2021, 09:33:15 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]
  Imprimir  
Autor Tema: Popurrí  (Leído 6064 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« : 10 de Marzo de 2006, 03:31:22 pm »

Como estoy hoy especialmente porculero, aquí vengo con una serie de cuestiones:

-estaba empezando a teclear algunos juegos de revistas (paré hace unas semanas) para luego repartirlas en plan "nostálgico msx-club". Hoy mismo he recordado estar seguro de haber visto juegos como la rana del espacio y el Karate knight pero no recuerdo dónde. Sé que están el Peras, Penalty y el Jack Exploring en la web de Konamito. Aprovecho desde aquí para pedir permiso a Jordi  para su inclusión (si no está por aquí, ya le mandaré un privado anyway)  Wink

-Consejo: para aumentar por ejemplo el valor de una variable, ¿es mejor:
ld hl,variable
inc (hl)

que

 ld a,(variable)
inc a
ld (variable),a?

-No he usado aún el conjunto de registros duplicados. ¿Qué utilidad tienen?

-¿Dónde puedo buscar info acerca de hacer tiros parabólicos y cosas de esas? Por ejemplo, rotar la pantalla (la tabla de nombres) a partir del centro de la misma 1º a izquierda o derecha. Ese tipo de cosas.

-Por último, los snippets del antiguo foro. Quisiera ver el del scroll de texto de Robsy y el de disparar una bala siguiendo una trayectoria. Es que he perdido el directorio donde lo tenía, junto con la promo del Final Lap, que no encuentro por ningún lado  Undecided

Y eso es todo por ahora, a las 15:31 Smiley Ya se me ocurrirán más cosas, ya...  Wink
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #1 : 10 de Marzo de 2006, 05:17:36 pm »

Citar
-Consejo: para aumentar por ejemplo el valor de una variable, ¿es mejor:
ld hl,variable
inc (hl)

que

ld a,(variable)
inc a
ld (variable),a?

Depende de lo que hagas después con el contenido de la variable. Si no vas a operar con él es mejor la 1ª, si vas a  hacer algo con él usa la 2ª ya que lo tendrás cargado en A.

Citar
-No he usado aún el conjunto de registros duplicados. ¿Qué utilidad tienen?

A veces son muy útiles para salvaguardar los valores de los registros estandar sin necesidad de meter un montón de PUSH/POP. EXX es el ejemplo perfecto, te ahorras mucho trajín con la pila si lo manejas con cuidado. EX AF,AF' es el más útil, es más rápido que un PUSH y te permite conservar el valor de A (más o menos Wink)

Citar
-¿Dónde puedo buscar info acerca de hacer tiros parabólicos y cosas de esas? Por ejemplo, rotar la pantalla (la tabla de nombres) a partir del centro de la misma 1º a izquierda o derecha. Ese tipo de cosas.

Páginas de Física o matemáticas. Si buscas "tiro parabólico" te saldrán miles de páginas con las formulas de los diferentes tiros, caidas libres y demás zarandajas. Las formulas de rotación son tema matemático (el amigo Sapphire seguro que sabe de eso) y también son bastante sencillas de encontrar.

Los snippets los debe conservar Jon. Si no puede publicar los dos que comentas, yo puedo meter el de la trayectoria lineal y la versión original del scroll de texto  Smiley
En línea

Doom dee doom dee doom
SapphiRe
Visitante
« Respuesta #2 : 10 de Marzo de 2006, 05:43:55 pm »

Las formulas de rotación son tema matemático (el amigo Sapphire seguro que sabe de eso) y también son bastante sencillas de encontrar.

¿Quieres hacer un rotozoom? En SC1 sería relativamente sencillo de hacer (pixelacos de 8x8, eso sí), en SC3 también se podría. Buscaré las rutinas de rotozoom que hice en su día para PC (en ensamblador, por supuesto) e intentaré hacer un mini-tutorial con snippets.

Pero primero el KV2, que va avanzando Tongue
En línea
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #3 : 10 de Marzo de 2006, 05:59:04 pm »

¡Gracias por las prontas respuestas! Ahí va la ración habitual:  Kiss Kiss KissKiss

¿Un rotoquéeee? ¿Mande? Bueno, ahora sé que se llama así  Cheesy

Bueno, sí, quiero rotar la pantalla tomando el centro como eje, y no píxel a píxel, sino con caracteres, o sea que si se puede hacer fácilmente en sc1, se puede hacer también en sc2  Cheesy

Ahora mismo estoy con tonteridas pantallescas. Creo que aún no he entendido bien las instrucciones de transferencia de bloques. Tengo la pantalla en un buffer y quiero bajarla un renglón (scroll hacia abajo). Hago lo siguiente:

   ld   hl,PANT_BUFFER
   ld   de,PANT_BUFFER+32
   ld   bc,23*32
   lddr

Pero sólo veo la primera línea, eso sí, va cambiando su contenido, por lo que creo que estoy mostrando toda la pantalla pasando por la misma línea.  Embarrassed

Bueno, voy a estar aquí toda la tarde, tengo muchas cosas que probar  Cheesy
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #4 : 10 de Marzo de 2006, 06:04:18 pm »

Por cierto,la rotación a la que me refiero no sólo es de 90 o 45 grados, sino aún más precisa (aunque ahora que lo pienso, 45º me vendría muy bien).

Y J.L., si puedes publicar esos snippets, porfaplís Smiley (beneplácito de los autores por delante, of course)  Smiley
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #5 : 10 de Marzo de 2006, 06:05:57 pm »

Pero primero el KV2, que va avanzando Tongue


Nunca he hecho una pantalla en KV2, pero creo que va siendo hora de aprender.  Cheesy
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #6 : 10 de Marzo de 2006, 06:35:07 pm »

Citar
Ahora mismo estoy con tonteridas pantallescas. Creo que aún no he entendido bien las instrucciones de transferencia de bloques. Tengo la pantalla en un buffer y quiero bajarla un renglón (scroll hacia abajo). Hago lo siguiente:

   ld   hl,PANT_BUFFER
   ld   de,PANT_BUFFER+32
   ld   bc,23*32
   lddr

Ah, tate, es que eso te hará cosas un poco raras. Lo que tendrías que hacer es algo así como :

Código:
   ld   hl,PANT_BUFFER+22*32+31
   ld   de,PANT_BUFFER+23*32+31
   ld   bc,23*32
   lddr

Lo he hecho de corrido; pero creo que está bien Tongue
En línea

Doom dee doom dee doom
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #7 : 10 de Marzo de 2006, 06:59:28 pm »

Asias  Wink Sigue igual, pero lo hice usando un buffer intermedio donde colgar el desplazamiento y de ahí vuelta al buffer original. No es nada elegante, pero acabo de leer el easymbler y creo que lo que pido no se puede hacer (si no me equivoco)  Undecided

Otra cosilla, ¿el tope en ensamblador estaría en la 61568?
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #8 : 10 de Marzo de 2006, 08:11:53 pm »

Otra cosilla, ¿el tope en ensamblador estaría en la 61568?

  Spank  Toma, por usar decimales!

Por cierto, q no recordaba q existia la instruccion lddr  Grin Spank
En línea

--

Cindy Lauper She Bops!
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #9 : 10 de Marzo de 2006, 08:50:19 pm »

Citar
Sigue igual, pero lo hice usando un buffer intermedio donde colgar el desplazamiento y de ahí vuelta al buffer original.

No se si te pillo; pero si tienes la tabla de nombres en un buffer (PANT_BUFFER), haces ese LDDR y luego vuelcas a VRAM debería verse el scroll. El LDDR va restando 1 a HL,DE y BC, por eso el que pusiste no debía chutar, porque HL se perdía fuera del buffer nada más empezar. ¡Tu cuenta, hombre, cuenta, que por el Goonies II hacemos cualquier cosa : scroll abajo, arriba y de lado! Grin

Citar
Otra cosilla, ¿el tope en ensamblador estaría en la 61568?

Yo también me uno a la tunda, que se que le gusta
 Spank

El límite en teoría te lo da HIMEM ($FC4A). Si se trata de una ROM (y no inicializas el disco Wink) tienes hasta $F37F para tí; descontando, claro está, lo que destines a pila y que situarás hábilmente con un LD SP al principio del programa. De todas formas es mejor si no subes tanto y te metes lo menos posible por las $Fxxx Tongue
En línea

Doom dee doom dee doom
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #10 : 11 de Marzo de 2006, 10:44:42 am »


No se si te pillo; pero si tienes la tabla de nombres en un buffer (PANT_BUFFER), haces ese LDDR y luego vuelcas a VRAM debería verse el scroll. El LDDR va restando 1 a HL,DE y BC,

Tengo que probar otra vez entonces Smiley

Citar
¡Tu cuenta, hombre, cuenta, que por el Goonies II hacemos cualquier cosa : scroll abajo, arriba y de lado! Grin

No es para eso ni para scroll multidireccional, es una prueba tonta que estaba haciendo. Lo he hecho con un buffer intermedio, pero tengo que probarlo así Wink


Citar
Yo también me uno a la tunda, que se que le gusta
 Spank

Mira que sois... ¿contáis los polvos en hexadecimal (bueno, sí, porque para contar 2 da lo mismo uno que otro)? Grin Pero, ¿y el sueldo? ¿y lo que cuesta un MSX2? ¿Para qué esa manía del hexadecimal? Ahora tengo que usar la calculadora del windows para hacerme una idea de esas cifras Grin

Citar
situarás hábilmente con un LD SP al principio del program


¿Qué utilidad tiene cambiar la dirección de la pila? (Lo que aprende uno en un día) Cheesy

Añadido: me autorespondo: para recuperarla si hay un error en el programa.
« Última modificación: 11 de Marzo de 2006, 10:46:26 am por Darth_Fistro » En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #11 : 11 de Marzo de 2006, 11:22:41 am »

Citar
¿Qué utilidad tiene cambiar la dirección de la pila? (Lo que aprende uno en un día)

Pues por ejemplo, si la pila está en la parte alta de la memoria cuando arranca tu ROM y aprovechas hasta el último byte de RAM, fijo que te la cargas y el programilla acabaría haciendo cosas raras. Si la resituas la tendrás perfectamente controlada y sabrás con seguridad a partir de que zona no puedes meter mano Smiley
En línea

Doom dee doom dee doom
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #12 : 12 de Marzo de 2006, 09:18:51 pm »

Citar
-Por último, los snippets del antiguo foro. Quisiera ver el del scroll de texto de Robsy y el de disparar una bala siguiendo una trayectoria. Es que he perdido el directorio donde lo tenía, junto con la promo del Final Lap, que no encuentro por ningún lado

Pues como ñapa y hasta que se repongan los originales, ahí tienes los snippets. El de scroll tenía un error que ahora mismo no recuerdo exactamente (un problema de desbordamiento de BUFFER); pero como la versión corregida no la guardo no he podido colgarla Sad
En línea

Doom dee doom dee doom
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #13 : 13 de Marzo de 2006, 03:27:58 pm »

Gracias, JL, voy ahora mismo a verlas  Cheesy

Sigo con el tema asm con tu permiso:

-Leyendo una msx-extra encuentro un artículo donde se menciona que los registros índice ocupan mucho y son lentos, y que es mejor usar hl+desplazamiento. En la realidad me encuentro con que a la hora de consultar tablas es muy cómodo, a no ser que para usar hl+desplazamiento, hay que copiar el trozo de la tabla en un buffer y no sé si compensa. ¿Deslíz de los de la msx-extra?

-Ahora me estoy dando cuenta del valor de un  puñetero byte, que parece ahora que valen su peso virtual en oro Smiley Tengo que depurar los programas porque ahora son un batiburrillo de bugs y bytes que, como funcionan, uno se queda maravillado, pero la verdad es que hay derroches por todos lados.

¡Gracias de nuevo! Smiley
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!