1

voilà, je vous propose de télécharger

http://removers.atari.org/jagtest.abs
(ce lien sera effacé à la fin de la semaine)

et d'essayer sur Jag (ou Project Tempest)

la question qui se pose est:

est-ce qu'il y aurait des gens motivés pour coder sur Jag, sachant que le source de ce que vous venez d'essayer est

#include "init.h"
#include "jagtypes.h"
#include "malloc.h"
#include "sprite.h"
#include "joypad.h"

extern void *background_gfx;
extern void *sprite1_gfx;
extern void *sprite2_gfx;
extern void *soldat_marche_dos_1_gfx;
extern void *soldat_marche_dos_2_gfx;
extern void *soldat_marche_dos_3_gfx;
extern void *soldat_marche_dos_4_gfx;

extern animation_chunk soldat_marche_dos[];

int main(int argc, char *argv[]) {
  init_video();
  init_vmode0(RGB16);
  init_interrupts();
  init_display_driver();
  set_bg(0);

  display *d = new_display(0);

  show_display(d);

  sprite *backgrnd = new_sprite(320,240,0,0,DEPTH16,&background_gfx);
  attach_sprite_to_display_at_layer(d,backgrnd,0);
  
  sprite *s1 = new_sprite(32,32,16,30,DEPTH16,&sprite1_gfx);
  attach_sprite_to_display_at_layer(d,s1,1);

  sprite *s2 = new_sprite(64,64,50,50,DEPTH16,&sprite2_gfx);
  attach_sprite_to_display_at_layer(d,s2,1);

  sprite *soldat = new_sprite(16,25,100,100,DEPTH16,&soldat_marche_dos_1_gfx);
  soldat->animation = soldat_marche_dos;
  soldat->animated = 1;
  soldat->animation_data.counter = 1;
  soldat->animation_data.index = 0;
  attach_sprite_to_display_at_layer(d,soldat,2);

  s1->x = 44;

  while(1) {
    read_joypads();

    long joy = state_joypad_1;
    if(joy & JOYPAD_A) {
      if(joy & JOYPAD_UP) {
	d->y--;
      } else if (joy & JOYPAD_DOWN) {
	d->y++;
      }
      
      if(joy & JOYPAD_LEFT) {
	d->x--;
      } else if (joy & JOYPAD_RIGHT) {
	d->x++;
      }
    } else {
      if(joy & JOYPAD_UP) {
	s1->y--;
      } else if (joy & JOYPAD_DOWN) {
	s1->y++;
      }
      
      if(joy & JOYPAD_LEFT) {
	s1->x--;
      } else if (joy & JOYPAD_RIGHT) {
	s1->x++;
      }
    }

    launch_collision_test(s1,s2);
    short int x, y, w, h;
    long result = get_collision_result(&x,&y,&w,&h);
    if(result & COLLISION_COLLIDE) {
      set_bg(0xf800);
    } else if (result & COLLISION_INTERSECT) {
      set_bg(0x07c0);
    } else {
      set_bg(0x0);
    }

    stop68k();
  }

  return 0;
}



?

edit:
merci aux différentes sources pour les graphes grin
ils se reconnaitront...

2

-

3

yep
(mais ça utilise des libs qui utilisent le GPU et le blitter écrites par bibi grin)

edit: p*tain, je suis toujours pas couché lol

4

Beau boulot Seb ! top
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5

Génial ! N'importe qui peut coder sur jag maintenant ! (sauf kuk évidement...)

Tes librairies vont bouleverser le dev sur jag ! embarrassed

Bravo !

Templethon poisson


NB : ADIEU GT ! splat

6

Bon sang, grace à tes librairies c'est aussi simple coder sur Jag devient aussi simple que de coder en employant la célèbre SDL fou
Non, en fait ça a même l'air plus simple. Si j'avais "get_collision_result" direct sur ma SDL je me casserais moins la tête pour mon casse-briques tongue
Bravo wink

7

Merci pour vos commentaires encourageants.
Il reste encore surement pas mal de boulot pour arriver au niveau de la SDL mais ça m'encourage donc sur ce chemin.
J'espère releaser très bientôt une version 1 de tout ça (avec les explications qui vont bien).

8

SebRmv : je t'aime heart heart heart heart heart heart heart

Juste une question : on pourra compiler ça à partir d'un Atari ST ou d'un Falcon ?

9

euh, le secret réside dans la construction d'un compilateur gcc avec target=m68k-aout
donc si on peut en construire un pour ST/Falcon, la réponse est oui (il faut aussi madmac et aln bien sur)

edit: peut être que le gcc qui existe déjà sur Atari convient, ça dépend si les .o sont au bon format

10

tiens, j'en profite pour vous faire bosser un peu (les ceusses qui sont intéressés par du C)

vous avez 3 souhaits grin

quelles fonctions voudriez-vous voir intégrer dans une lib de développement pour Jag ?

11

libc

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

12

Kochise :
libc

Kochise


tout ?
j'ai l'impression qu'il y a beaucoup de choses pas vraiment utile pour faire un jeu

13

Je suis pas partisan du C, Seb cela tu le sais, mais on dirait presque du STOS !! top

Les libs a Seb, de la place (CF), un peu de ram (8 Megs de la JagCF) un matéril d'upload rapide (CatNip) il manque plus rien !!! Allez Hop tout le monde sur Jaguar !!!

Bravo Seb king



GT Epaté oui

Edit : P.S. Tempi GT is still alive !! And i will come back Faster, Harder !!! Vous avez pas encore tout vu !!
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

14

GT, les compilos de nos jours ne prennent plus 1 MiB pour afficher un simple "Hello World !", faudrait que tu mettes à jours tes références :/ Dans l'autre thread ( topics/88586-mini-concours-asm-68k/4 ) SebRmv à bien montré que les compilos pondent du code quasi identique à de l'assembleur alamano, et qu'en plus tu pouvais choisir ton niveau d'optimisation (taille, vitesse, etc...) !

@SebRmv : non, pas tout libc, mais un minimum pour les IO histoire de faire du prototypage rapide...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

15

SebRmv :
tiens, j'en profite pour vous faire bosser un peu (les ceusses qui sont intéressés par du C)

vous avez 3 souhaits grin

quelles fonctions voudriez-vous voir intégrer dans une lib de développement pour Jag ?


Ils y sont déjà d'après ce que je vois embarrassed

Beau boulot top
avatar
Futur ex éditeur de jeux Atari Lynx et Nintendo Game Boy
https://yastuna-games.com

16

Kochise :
@SebRmv : non, pas tout libc, mais un minimum pour les IO histoire de faire du prototypage rapide...

Kochise


de toute façon, c'était sur ma file d'attente wink
il faut que j'essaie un truc ce soir, ça a pas l'air si sorcier que ça à porter newlib

17

Fadest
:
SebRmv :
tiens, j'en profite pour vous faire bosser un peu (les ceusses qui sont intéressés par du C)

vous avez 3 souhaits grin

quelles fonctions voudriez-vous voir intégrer dans une lib de développement pour Jag ?


Ils y sont déjà d'après ce que je vois embarrassed

Beau boulot top


mais si, lachez-vous, il reste encore 3 ko dans le GPU et 16 ko dans le DSP grin

18

Bon, je ne sais pas si c'est déjà géré ou pas mais :

1 - possibilité que le point d'action x,y d'un sprite ne corresponde pas au coin haut-gauche, mais puisse être défini à la création du sprite (ou à son init)
-> parallèle Lynx : si tu as un cercle, tu peux à la création de l'objet sprite définir le point d'action x,y au centre du cercle. C'est super pratique pour les effets zooms et autre effets de déformation et plein d'autres calculs si on s'en sert bien...

2 - des effets graphiques sur les sprites : zoom (surtout), distortions, définition des couleurs de transparence (euh oublie, je raisonne trop en mode palette) - et si possible que la gestion des collisions marche encore wink

3 - gestion des fichiers standardisée C (ça a l'air con, mais sur Lynx, la gestion des fichiers est bordélique, alors ça marque froid)


Bon voilà, ça fait 3, mais bon si ça se trouve, tout y est déjà...
avatar
Futur ex éditeur de jeux Atari Lynx et Nintendo Game Boy
https://yastuna-games.com

19

-

20

Je ne sais pas ce qui est déjà supporté à ce niveau mais un moyen d'employer façilement du son serait bien cool (à ce niveau la SDL est encore pénible je trouve).
Sinon je ne sais pas ce qu'il est possible de faire au niveau des images mais gérer les gifs serait pratique.
Et +1 pour ne pas devoir obligatoirement employer les x et y d'un sprite sur les coin suppérieur gauche.

21

Placer le 'hotspot' où l'on veut sur un sprite, ça existe déjà dans le STOS il me semble smile

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

22

En effet !

23

Oui, et c'est super pratique, je raisonne par rapport à la Lynx suite à une discussion avec Seb mais ça ne veut pas dire que ça n'existait avant pas ailleurs bien sur embarrassed
avatar
Futur ex éditeur de jeux Atari Lynx et Nintendo Game Boy
https://yastuna-games.com

24

Fadest :
Bon, je ne sais pas si c'est déjà géré ou pas mais :

1 - possibilité que le point d'action x,y d'un sprite ne corresponde pas au coin haut-gauche, mais puisse être défini à la création du sprite (ou à son init)
-> parallèle Lynx : si tu as un cercle, tu peux à la création de l'objet sprite définir le point d'action x,y au centre du cercle. C'est super pratique pour les effets zooms et autre effets de déformation et plein d'autres calculs si on s'en sert bien...

c'est à dire gérer en interne la translation qu'on appliquerait sinon, c'est ça?

2 - des effets graphiques sur les sprites : zoom (surtout), distortions, définition des couleurs de transparence (euh oublie, je raisonne trop en mode palette) - et si possible que la gestion des collisions marche encore wink

pour les collisions, ça ça va être difficile pour que ça marche avec les sprites déformés et/ou zoomés
un truc qui n'apparait pas dans le source ci-dessus c'est que les sprites zoomés sont gratuits par contre

3 - gestion des fichiers standardisée C (ça a l'air con, mais sur Lynx, la gestion des fichiers est bordélique, alors ça marque froid)

tu veux dire avec fopen/fclose ?

25

-

26

SebRmv
:
Fadest :
[hotspot]

c'est à dire gérer en interne la translation qu'on appliquerait sinon, c'est ça?

un truc qui n'apparait pas dans le source ci-dessus c'est que les sprites zoomés sont gratuits par contre

Oui, en fait, c'est surtout utile pour les zooms entre autres.
[nostalgie Lynx]
L'effet de fin de niveau de Space Lock est le vaisseau qui zoome vers l'écran.
Avec un hotspot à 0,0, je dois faire la translation en fonction du coeff de zoom (hardware sur Lynx je rappelle), donc des calculs avec risque de décalage d'un pixel pour cause d'arrondi. 1vec un hotspot au centre de mon vaisseau, je l'affiche toujours aux mêmes coordonnées et il reste centré.
Si tu prends Robosquash, je suis prêt à parier que le hotspot de la balle est au centre pour des raisons de facilité de gestion.
[/nostalgie Lynx]
C'est bien pour le zoom, même sans collisions.
Tu noteras que je n'ai pas demandé les rotations wink
SebRmv :
[tu veux dire avec fopen/fclose ?

oui, et fread et tout ça, les trucs de base quoi embarrassed
Edit : oui pour la CF bien sur, mais même pour les ROMs, ne pas avoir à se caler sur un début de bloc puis lire bloc par bloc en mettant en dur la taille du fichier...
Note : oui, je sais que Rajah a énormément amélioré et simplifié la gestion du bouzin pour ses besoins sur Lynx.
avatar
Futur ex éditeur de jeux Atari Lynx et Nintendo Game Boy
https://yastuna-games.com

27

-

28

Fadest
:
SebRmv
:
Fadest :
[hotspot]

c'est à dire gérer en interne la translation qu'on appliquerait sinon, c'est ça?

un truc qui n'apparait pas dans le source ci-dessus c'est que les sprites zoomés sont gratuits par contre

Oui, en fait, c'est surtout utile pour les zooms entre autres.
[nostalgie Lynx]
L'effet de fin de niveau de Space Lock est le vaisseau qui zoome vers l'écran.
Avec un hotspot à 0,0, je dois faire la translation en fonction du coeff de zoom (hardware sur Lynx je rappelle), donc des calculs avec risque de décalage d'un pixel pour cause d'arrondi. 1vec un hotspot au centre de mon vaisseau, je l'affiche toujours aux mêmes coordonnées et il reste centré.
Si tu prends Robosquash, je suis prêt à parier que le hotspot de la balle est au centre pour des raisons de facilité de gestion.
[/nostalgie Lynx]

ok, je vois un peu mieux ce que tu voulais dire
je vais voir ce que je peux faire pour ça smile

C'est bien pour le zoom, même sans collisions.
Tu noteras que je n'ai pas demandé les rotations wink

tu aurais presque pu grin
le blitter de la Jag permet de faire ça en hard
SebRmv :
[tu veux dire avec fopen/fclose ?

oui, et fread et tout ça, les trucs de base quoi embarrassed
Edit : oui pour la CF bien sur, mais même pour les ROMs, ne pas avoir à se caler sur un début de bloc puis lire bloc par bloc en mettant en dur la taille du fichier...
Note : oui, je sais que Rajah a énormément amélioré et simplifié la gestion du bouzin pour ses besoins sur Lynx.

là, je crois que le problème ne se pose pas comme sur Lynx
mais pour la JagCF, oui, ça sera un must!
ça, c'est à ranger du coté libc en tout cas

29

Fadest
: oui, je sais que Rajah a énormément amélioré et simplifié la gestion du bouzin pour ses besoins sur Lynx.

Oui, mais c'est toujours pas une méthode confortable, c-a-d tu dois faire un fichier listant les fichiers, avec des petits # @ et ; pour pouvoir les ordonner dans la ROM... et s'y reprendre à deux fois, pour obtenir cette liste en C pour l'inclure dans le source, avec les fonctions qui vont bien... et ça peut prendre quelques octets précieux (buffer 3*1024, au vu de la taille des sprites)... et et cette version de ce LYNXER "enhanced" ne marche que sur AtariST, vu que je l'ai bricolée en GFA.

Un système de fichier, avec fopen/fread/fclose, c'est pas du luxe... Franchement, par rapport à ce qu'on vit sur Lynx. Eviter le bricolage à la mort moi-le-noeud, ça ferait gagner du temps de code.

30

En réponse à _Orion ;

C'est vrai que vous avez plus de 64ko de RAM sur Jag...
Par que 256ko de ROM d'un coté, 40ko de RAM utilisable (il faut enlever les buffers écrans et divers autres trucs des 64) de l'autre.
Le moindre background qui fait 8ko, s'il en faut 4 + les sprites + les sons, en faisant vite le compte, il ne reste plus grand chose pour le programme en lui même (on parle de C là).
Ou alors, tu ne gardes qu'un background en mémoire à la fois...


Maintenant, sur Jag avec 2 mo (c'est bien ça ?) de RAM, même par rapport à une ROM de 4 mo, le problème est moins crucial, je te l'accorde.
avatar
Futur ex éditeur de jeux Atari Lynx et Nintendo Game Boy
https://yastuna-games.com