Karoshi MSX Community
06 de Julio de 2021, 12:01:47 am *
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] 2 3
  Imprimir  
Autor Tema: Desarrollo en C para MSX  (Leído 17794 veces)
0 Usuarios y 1 Visitante están viendo este tema.
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« : 11 de Enero de 2006, 03:48:22 pm »

Buenas,

Pues estoy tonteando con el SDCC (compilador de C/Z80 para PC) y a la hora de pulir una librería para desarrollo sobre MSX que me estoy montando, me surge una duda...

¿Que comandos, instrucciones o funcionalidad en general debería poseer una librería a la hora de dar soporte a desarrolladores de juegos (principalmente)?. Para muchas cosas estoy tomando como modelo GFXlib, que viene a ser igual; pero para Hitech-C, que es nativo de MSX. Mi intención es soportar, sobre todo, gráficos (MSX1 y MSX2), sonido (PSG) y características específicas de los MSX.

Por supuesto todo ello en C, que aunque es la alternativa más próxima a CM, ya sabemos que no es comparable. Valga como ejemplo las rutinas 3D de GFXlib, que aunque están majas su uso no es viable ya que son muuuuy lentas. Sad

A ver que se os ocurre...
En línea

Doom dee doom dee doom
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #1 : 11 de Enero de 2006, 04:46:50 pm »

Werks, yo de "C" ni flowers... Robsy, tu sabes más de esto así que te dejo la guitarra, si es que andas por ahí!!!

"Le llaman el desaparecidooooo!". Rooobys, ¿no te habrán secuestrado los de Aiky, no?  2 Guns Firing
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #2 : 11 de Enero de 2006, 05:24:38 pm »

No, si ya no es tanto de C, si no de desarrollar juegos en general. ¿Que comandos son los que estaría bien integrar en un lenguaje de alto nivel?. Por poner un ejemplo, siempre me han parecido imprescindibles los LDIRVM y LDIRMV, no se como el BASIC de los MSX1 no incorpora algo parecido, transferir datos a la VRAM a base de VPOKEs es una pasada; por eso ya tengo implementados los comandos "vram2ram" y "ram2vram" que hacen exactamente eso...


En línea

Doom dee doom dee doom
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #3 : 11 de Enero de 2006, 05:41:42 pm »

Se me ocurre, ahora mismo:

- Accesos a VRAM y a RAM
- Accesos a los puertos de joystick
- Accesos a PSG
- Macros: (tipo PUT SPRITE, o PLAY)
- Macros para trabajar con cadenas: (MID$, STRING$, LEFT$, RIGHT$, LEN, SPC...)
- Comprobaciones/Cambios de slots

No se, esto se me ha ocurrido ahora mismo... alguien?  Wink
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #4 : 11 de Enero de 2006, 10:27:21 pm »

Pues vaya! He oído críticas poco constructivas respecto al SDCC, pero lo cierto es que no lo tengo muy claro: no he practicado nada. Al parecer no optimiza demasiado - genera código compatible con 8080, con lo cual no saca partido de las instrucciones propias del Z80 -. Y el HItech C es el que es.

Creo que el C de ASCII funciona bastante bien. De hecho, el R-TYPE está hecho con él y no funciona nada mal. Respecto a la idea de una librería, suena muy bien. De hecho, está el frontend que se hizo para el SDCC específico para MSX y parece funcionar bien.

De nuevo, me quedo con el GCC para PC. Maravilla de cosa!
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #5 : 11 de Enero de 2006, 10:51:26 pm »

Tanto el SDCC como el z88dk están totalmente desasistidos, cada uno a su manera; pero por lo menos el SDCC y gracias a las contribuciones de Avelino Herrera y Boukichi es medianamente usable para el MSX. No conozco el grado de optimización, seguro que uno nativo de MSX aprovecha mejor los recursos; sin embargo el código generado (lo puedes ver en formato .asm) si que parece soportar 100% el Z80. Tiene además detalles curiosos como el de un "peephole optimizer" especifíco para cada procesador de manera que al listado de ensamblador se le pueden aplicar automáticamente reglas de optimizado. He conseguido la tabla de reglas para el Amstrad, totalmente compatible con el MSX (comparten Z80) Smiley.
Además mi objetivo es que el 90% del código sea ensamblador, de manera que cuando el compilador interpreta una de estas funciones se limita a inyectar (al 99%) mi código.
De momento y por las pruebas que hecho con las librerías que ya tengo, parece funcionar bastante bien Smiley. El único problema serio hasta ahora ha sido solucionar el tema de la memoria dinámica (malloc y demás), para Z80 lo que había era una CHAPUZA.
Bueno, espero que me deis ideas al respecto...


En línea

Doom dee doom dee doom
nitrofurano
Karoshi Maniac
****
Mensajes: 259



WWW
« Respuesta #6 : 11 de Enero de 2006, 11:18:20 pm »

i'm curious for C code, snippets step-by-step tutorial for newbies, etc....
En línea
nitrofurano
Karoshi Maniac
****
Mensajes: 259



WWW
« Respuesta #7 : 11 de Enero de 2006, 11:25:07 pm »

Citar
De hecho, está el frontend que se hizo para el SDCC específico para MSX y parece funcionar bien.

public stuff url for download? where? :-)



(sorry all people i'm not writing here in castellano, my fluency is worse than from Columbus (that one from 15th century) (he wroten castellano mistakes only a portuguese would write, like 'depiende') - and if i try to write in castellano here, surelly you all will make fun of me! ;-)  )
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #8 : 11 de Enero de 2006, 11:47:10 pm »

Do not worry about English as far as you can understand Spanish - fluent communication is the key, language does not matter.

About SDCC frontend, you can download it from here
En línea
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #9 : 12 de Enero de 2006, 08:38:16 pm »

¡Mil ánimos con eso, José Luis! No tengo ni papa de C, pero ya me gustaría hacer algo parecido en pascal. Lo malo es que los ficheros me parece que los genera para MSX-DOS solo, lo cual me tira para atrás. Pero a ver si algún día la cosa cambia...  Embarrassed
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 #10 : 12 de Enero de 2006, 09:03:33 pm »

Bueno, de momento los mejores resultados son generando COMs, con la ventaja de que tienes casi 55Kb a tu disposición en fila india. El backend para hacer ROM de Boukichi me lo tengo que mirar todavía ya que el concepto me resulta todavía un poco "alienígena".
Para proyectos grandes siempre puedes hacer un megarom; pero bueno, no hace falta estar constreñido por ese esquema. La comodidad del C es muy grande y te planteas ya cosas como usar alegremente un disquete como soporte (aventuras gráficas con una tocho-imagen por pantalla, multifases con niveles curradisimos, editores de niveles incluidos, etc). Con las ROMs se sabe que tambien se puede llegar a usar la disquetera; pero está todavía por homologar el método.  Tongue
En línea

Doom dee doom dee doom
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #11 : 30 de Abril de 2006, 04:06:54 pm »

Pues yo me he puesto con el SDCC y voy a ver .. me parece ok.
Lo que no tengo ni una libreria de gráficos ni de sonido ni de nada.
A ver que consigo. :-)

Lo que si necesito es saber (al menos) como crear un ROM usando el SDCC. ¿Alguién puede ayudarme?
En línea

MSX4EVER2GETHER
www.nerlaska.com
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #12 : 30 de Abril de 2006, 06:58:15 pm »

La comodidad del C es muy grande y te planteas ya cosas como usar alegremente un disquete como soporte (aventuras gráficas con una tocho-imagen por pantalla, multifases con niveles curradisimos, editores de niveles incluidos, etc). Con las ROMs se sabe que tambien se puede llegar a usar la disquetera; pero está todavía por homologar el método.  Tongue

Pero es que todo eso tambien se puede hacer en ASM, que no todo el ASM es ROM! Smiley
En línea

--

Cindy Lauper She Bops!
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #13 : 01 de Mayo de 2006, 03:52:34 am »

Ya me imagino.
Al igual que me se que no solo de C vive el hombre .. y en el MSX muchas cosas va a tocar hacerlas en ASM.
De todos modos .. el BIn que consigo tras compilar y linkar con el SDCC no es un ROM.
Imagino que hay que añadir alguna marca o algo .. he estado viendo algo sobre una cabecera de 16 bytes .. voy bien?
Supongo que si el ROM es de 16 Kbytes .. la direccion para CODIGO sera &h0000 y la cabecera ira en &h4000
Por más que busco cosas de C y programacion de ROM por Google y Foros ... veo que todavia hay mucha incertidumbre.
Además .. y a apenas encuentro informacion sobre el ASCII MSX-C y tampoco sobre un trabajo al respecto de un tal Bokouchi.
En línea

MSX4EVER2GETHER
www.nerlaska.com
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #14 : 01 de Mayo de 2006, 12:20:18 pm »

¡Hombre!, ¡un aficionado al C!, ¡ya era hora!  Cheesy
Poner en marcha el SDCC ya es de por si un poco pedestre, montar una ROM aún lo es más. El señor Boukichi es un poco difícil de rastrear (por no decir imposible Tongue) y lamentablemente necesitarás su módulo de cabecera para crear ROMs. Así que te lo incluyo al final... Smiley
Yo de momento y para simplificar un poco la creación de las librerías me estaba limitando únicamente al modelo COM y tenía intenciones (de momento) de soportar los modos gráficos 2 y 8. Si estás interesado en echarme una manita con las librerías te lo agradecería infinito Wink

En línea

Doom dee doom dee doom
Páginas: [1] 2 3
  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!