1


Karri à posté un joli code d'un pong pour Lynx, c'est relativement simple et bien expliqué.

http://www.atariage.com/forums/topic/205772-pong-tutorial/

Je trouve certaines choses étranges notamment dans les librairies, des "includes" de trucs que je n'ai jamais vu. C'est parce que Karri utilise le nouveau compilo ?
Mon site sur la LYNX :ZoneLynx

2

je connais vraiment pas la lynx, mais les fonctions utilisées ne sont pas celles de vince dans nyan cat, donc je répondrais "oui".

3

@Rygar
Il s'agit de tgi.h
Tu peux télécharger, le development kit sur cette page web:
http://sebastianmihai.com/main.php?t=49&

un kit au doux nom de CC65.zip clic là :
http://sebastianmihai.com/downloads/cc65/cc65.zip

Tu décompresse tel quel dans ton disque dur à la racine de C:

Dans le dossier cc65/source, il y a deux dossiers :
lynx
nes

Côté NES, j'arrive à modifier le programme invader par exemple. Je peux modifier le texte, et même les sprites... c'est cool. smile
Sebastian a mis dans le même dossier ses travaux sur la Lynx et la NES, vu que ces deux consoles partagent le même CPU:
http://sebastianmihai.com/main.php?t=48&

Par contre côté Lynx, j'arrive à rien (c'est balo). Impossible de modifier un simple texte, le nouveau .lnx (fabriqué en lançant make.bat) est bien généré, mais pas modifié. C'est à devenir fou ! Dans le dossier catkanoid/intro le fichier intro.s reste inchangé. C'est de l'assembleur, c'est mystérieux, je suis donc bloqué là.
mur
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

4

Sympa je vais télécharger et regarder ça ce week end
Mon site sur la LYNX :ZoneLynx

5

RYGAR (./4) :
Sympa je vais télécharger et regarder ça ce week end

J'ai regardé ces autre travaux sur GBA, et là aussi j'arrive à modifier ces programmes. Mais sur Lynx tgi aucune de mes modifications n'est prise en compte, c'est vraiment ubuesque. Peut être une histoire de variable d'environnement, ou alors ses batchfile sont incomplet. A noter que son hello word ne fonctionne pas du tout.



UP: sur Atariage, LX.NET a mis un post sur son blog et ses tut pour installer TGI:
http://atarilynxdeveloper.wordpress.com/2012/04/07/programming-tutorial-part-2development-environment/

Moi j'ai galéré pour installer les trucs et les machins CC65 qui sont éparpillés dans plusieurs zip. Il faut mettre le tout dans le dossier cc65 comme cela:
c:\Program Files (x86)\cc65

Après, il y a pas moins de 6 variables d'environnements. Pour vérifier que ça fonctionne, il faut en ligne de commande taper non pas c test, mais cc65 et s'il y a comme réponse cc65.exe: No input files, alors c'est gagné.

Dernière difficulté, concevoir, dans la douleur, le makefile pour son exemple joyeusement nommé game, qui est en fait un hello word interactif, car avec une gestion des boutons gauche et droite, d'après ce que je peux deviner du code.
http://www.atariage.com/forums/topic/194086-teacher-for-lynx-programming-eheh/page__st__25
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

6

http://atarilynxdeveloper.wordpress.com/2012/04/07/programming-tutorial-part-2development-environment/
Fadest (./9) :
Il existe plusieurs environnement de développement sur Lynx (outre l'officiel). Il y a le kit BLL (que j'utilises encore) et le nouveau kit de Karri. Le second a l'air d'être bien mieux, de permettre des trucs plus poussés (notamment au niveau gestion dynamique de la mémoire), d'être compatible au niveau source et librairies avec les autres ordis à base de 6502 (en gros, faire des portages est plus aisé). Mais voilà, les librairies et donc les noms de fonctions, la manière de gérer n'a rien à voir avec le kit BLL, donc je n'ai jamais franchi le pas sad

Le fruit de mes dernières recherches pour l'utiliser :
Ajout de variable d'environnement, dans Variable système, cherchez Path puis mettre:
;C:\Program Files (x86)\cc65\asminc;C:\Program Files (x86)\cc65\include;C:\Program Files (x86)\cc65;C:\Program Files (x86)\cc65\cfg;C:\Program Files (x86)\cc65\lib;C:\Program Files (x86)\cc65\obj;C:\Program Files (x86)\cc65\bin;C:\Program Files (x86)\cc65\wbin;

Remarquez que bin et wbin sont chez moi indispensable, sinon cc65 n'est pas reconnu. L'intérêt de la manoeuvre c'est de mettre son projet n'importe où. Pour vérifier que cela marche, ouvrir une invite command windows, tapez:
cc65

s'il y a marqué:
cc65.exe: No input files

Alors c'est gagné !


Dernière difficulté avec le makefile, à placer dans le même dossier que votre code source:@set CC65_HOME="C:\Program Files (x86)\cc65" copy %CC65_HOME%\tgi\lynx-160-102-16.tgi co65 --code-label _lynxtgi lynx-160-102-16.tgi ca65 -t lynx -o lynx-160-102-16.o lynx-160-102-16.s rm lynx-160-102-16.tgi rm lynx-160-102-16.s copy %CC65_HOME%\joy\lynx-stdjoy.joy co65 --code-label _lynxjoy lynx-stdjoy.joy ca65 -t lynx -o lynx-stdjoy.o lynx-stdjoy.s rm lynx-stdjoy.joy rm lynx-stdjoy.s cc65 --code-name CODE --rodata-name RODATA --bss-name BSS --data-name DATA @REM fatal error ! ca65 -o game.o game.s cl65 -t lynx -o game.lnx lynx-160-102-16.o lynx-stdjoy.o game.o lynx.lib pause
-o game.o game.sHélas la ligne : ca65pose problème avec un beau fatal error. sad

post de l'auteur des tut:
http://www.atariage.com/forums/topic/151888-current-atari-lynx-projects/
Mon anglais dès plus approximatif ne m'aide pas à me faire comprendre. Je suis au maximum de ce que je peux faire Rygar.

pourmalynx.zip contenant le dossier cc65 et projetgi1:
http://www.mirari.fr/K0eb
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

7

Jusqu’à présent je n'arrivais à rien.
Je vais retenter d'ici dimanche avec tes explications en plus.

Mon site sur la LYNX :ZoneLynx

8

RYGAR (./7) :
Jusqu’à présent je n'arrivais à rien.
Je vais retenter d'ici dimanche avec tes explications en plus.

Plus j'avance et plus je m'y perd.
Pour les travaux de sebastian, catkanoid.lnx est exécutable uniquement avec mednafen. Pour son helloworld (game.lnx)exécutable uniquement avec son handy datant du 27/01/2012.

Concernant catkanoid, il y a des similitudes avec le megapak et PegSolitaire, à commencer par les dossiers:
Cart
intro
maingame
resident

Cart
intro
pegsolitaire
resident
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

9

J'ai franchis un nouveau palier avec un batchfile qui matche enfin ! smile le seul petit souci c'est que seul l'émulateur Handy est capable de faire tourner le .lnx, mednafen refuse de se lancer.

Sebastian a surement rencontré le même problème, car transformer le .o en .lnx avec le vieux lynxer de 1999 ne fonctionne pas (seul l'intro fonctionne puis revient en boucle sur ce dernier). Faudra donc se pencher sur les dossiers énumérés dans mon précédent message...
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

10

vous devriez utiliser codeblocks pour compiler le C, c'est quand même plus pratique.

c'est un IDE léger adaptable à plein de compilateurs.

11

squalyl (./10) :
vous devriez utiliser codeblocks pour compiler le C, c'est quand même plus pratique.

c'est un IDE léger adaptable à plein de compilateurs.

Je l'utilise avec le sgdk pour la megadrive, grâce aux recommandations de stephane.

Et le programmer's Note sur recommandations de Alekmaul pour son pvsneslib.
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

12

et pour cc65 ça pourrait t'aider?

c'est pas officiellement supporté mais si t'as un "compilateur" un "linker" et un "outil de création de libs statiques" tu dois pouvoir utiliser une config existante si tu donnes les bonnes options smile

et après, tu vas en parler sur le forum de cb, et peut être ils l'intègreront dans leurs releases, c'est assez actif comme projet smile

13

Oui, mais je n'ai hélas pas les compétences.
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

14

rhooo

pas le temps de m'y mettre, mais je suis le topic quand même si ça vous pique je vous aiguillerai pour les conseils.

15

squalyl (./14) :
rhooo

pas le temps de m'y mettre, mais je suis le topic quand même si ça vous pique je vous aiguillerai pour les conseils.
Ton aide sera toujours la bienvenue. smile


Récapitulatif pour TGI

La version cc65 de sebastian à placer simplement à la racine du C:
[url]http://sebastianmihai.com/downloads/cc65/cc65.zip [/url]

Avec le code source de LX.NET, un hello world qui a pas moins de 7 includes, c'est dire si c'est du costaud comme hello world wink :
[url]https://docs.google.com/viewer?pid=explorer&srcid=0B2F3J4h5M0hjcl8zTGE5cWJTSjJtQjVRa0VkalhSQQ&docid=eaa114b5a3fbf55b7a7c4e37e01bafcc|9c8cb102b4003ed0b574cb40b05a1445&chan=EgAAAKQVBz91e/LTIjH8YIQuarKEjF/%2Bj6Maopyfiy5%2Bm967&a=v&rel=zip;z1;game.c[/url]

Et enfin le précieux makefile pour ce code source:@set CC65_HOME="C:\cc65" copy %CC65_HOME%\tgi\lynx-160-102-16.tgi co65 --code-label _lynxtgi lynx-160-102-16.tgi ca65 -t lynx -o lynx-160-102-16.o lynx-160-102-16.s rm lynx-160-102-16.tgi rm lynx-160-102-16.s copy %CC65_HOME%\joy\lynx-stdjoy.joy co65 --code-label _lynxjoy lynx-stdjoy.joy ca65 -t lynx -o lynx-stdjoy.o lynx-stdjoy.s rm lynx-stdjoy.joy rm lynx-stdjoy.s cc65 --code-name CODE --rodata-name RODATA --bss-name BSS --data-name DATA -t lynx game.c ca65 -t lynx -o game.o game.s cl65 -t lynx -o game.lnx lynx-160-102-16.o lynx-stdjoy.o game.o lynx.lib @REM Clean/supprimer les fichiers .o et .s @del *.o @del *.s @REM le temps de voir les choses... appuyez sur une touche. pause

up: maintenant j'arrive à modifier catkanoid, je ne saurais dire pourquoi je n'y arrivais pas avant, content je suis. smile
Karri a livré sa version de pong avec bruitage !
http://www.atariage.com/forums/topic/205973-sound-in-c-with-no-library/
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

16

J'ai essayé d'intégrer un sprite du jeu pong de karri, mais un message d'erreur:
Error : Type expected
Et c'est SCB_REHV sprite; qui pose problème.

typedef struct {
char collindex;
SCB_REHV sprite;
PENPAL_1;
signed char hvel;
signed char vvel;
} sprite_t;
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

17

Le type SCB_REHV doit être défini dans un fichier include .h probablement. Cherches dans les différents fichiers d'include du source de karri et au choix, tu récupères la définition dans ton source ou tu inclues également son fichier, ce qui serait mieux, vu que ce doit être la même chose pour PENPAL_1 et qu'il peut utiliser des fonctions ou procédures définies à l'extérieur...
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2024 ?
https://yastuna-games.com

18

Fadest (./17) :
Le type SCB_REHV doit être défini dans un fichier include .h probablement. Cherches dans les différents fichiers d'include du source de karri et au choix, tu récupères la définition dans ton source ou tu inclues également son fichier, ce qui serait mieux, vu que ce doit être la même chose pour PENPAL_1 et qu'il peut utiliser des fonctions ou procédures définies à l'extérieur...
Arf non je n'ai pas trouvé, difficile de trouver cette petite aiguille dans l'énorme botte de foin numérique, ou comment ne pas voir le lapin blanc
rabbit

Là un site sur la programmation batch:
http://www.mclaveau.com/batch/
Est ce qu'il existe un moyen, comme un tableau, voir un logiciel, pour nous aider à transformer un makefile, en lignes de commandes Batch?
Car je cherche à transformer les 5 Makefile de Pegsolitaire en batch, pour ensuite mettre le pong de karri avec les dossiers décrit plus haut:
http://www.atariage.com/forums/topic/193442-peg-solitaire-source/



avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

19

Et une recherche windows sur le contenu des fichiers du kit avec SCBREHV, ça donne quoi ?
Tu n'as peut-être pas les mêmes librairies que Karri...
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2024 ?
https://yastuna-games.com

20

Petite tentative ce week end comme prévu juste pour voir si ça fonctionne et oui ça fonctionne smile

Mon talent y est surement pour beaucoup et le reste de la gloire en revient un peu au 95% du boulot que tu as fait notamment avec le makefile.
Quand je plaçais le cc65 dans un répertoire Lynx à la racine du C ça ne donnait rien mais bizarrement en plaçant directement le CC65 à la racine du C cela fonctionne.
J'ai pas encore essayé le Catcanoid mais j'ai eu la même idée que toi en voulant rajouté un sprite dans le programme et forcement ce fut la catastrophe. J'ai mélangé le CC65 et le newCC65 j'ai fait des déclarations de sprite comme en C classique et au bout de 30min le programme ressemblait à un beau bordel tongue

C'est trop compliqué pour moi cette façon de coder. Je vais en rester au code en C qui me donne déjà bien assez de mal.

Mon site sur la LYNX :ZoneLynx

21

RYGAR (./20) :
Quand je plaçais le cc65 dans un répertoire Lynx à la racine du C ça ne donnait rien mais bizarrement en plaçant directement le CC65 à la racine du C cela fonctionne.
Oui, il faut simplement placer ce dossier cc65 à la racine du disque C. smile
RYGAR (./20) :
J'ai pas encore essayé le Catcanoid mais j'ai eu la même idée que toi en voulant rajouté un sprite dans le programme et forcement ce fut la catastrophe. J'ai mélangé le CC65 et le newCC65 j'ai fait des déclarations de sprite comme en C classique et au bout de 30min le programme ressemblait à un beau bordel tongue
Il ne faut rien mettre dans le dossier Lynx.

Tu peux toujours remettre le dossier cc65 à la racine du disque C, ou télécharger à nouveau sur le site de Sebastian.


De mon côté, je me suis penché sur Pegsolitaire, j'ai remarqué la présence d'un sprpck et que les images sont convertis via makefile, c'est une façon de faire qui est pas mal.
Ci-dessous tgijp.zip contenant un hello world et un affichage de sprite :
http://www.mirari.fr/EASU

Mais l'affichage de sprite ne marche pas super bien, car il y a un rajout venant du makefile qu'il faut réussir à convertis dans le batch:fda.o : fda.bmp $(SPRPCK) -t6 -p2 -a000000 $< $(ECHO) .global _fda > $*.s $(ECHO) .segment \"$(RODATA_SEGMENT)\" >> $*.s $(ECHO) _fda: .incbin \"fda.spr\" >> $*.s $(AS) -t lynx -o $@ $(AFLAGS) $*.s

ma conversion incorrecte:SPRPCK -t6 -p2 -a000000 fda.bmp .global fda @%echo% .segment \"%RODATA_SEGMENT%" >> fda.s @%echo% _fda: .incbin \"fda.spr\" >> fda.s ca65 -t lynx -o "%CC65_ASMINC%" fda.o "%CC65_ASMINC%" fda.s
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

22

Suite des aventures, je suis bloqué au niveau de la prise en charge du sprite.
Et c'est cette ligne, avec un mystérieux AFLAGS, qui me résiste : @REM $(AS) -t lynx -o $@ $(AFLAGS) $*.s ca65 -t lynx -o fda.o fda.s
JZbK

code complet du batch file : @REM import/export sprite fda.bmp @set CC65_HOME="C:\Program Files (x86)\cc65" @set CC65_ASMINC="C:\Program Files (x86)\cc65\asminc" @set SPRPCK=sprpck -t6 -p2 @set AS=ca65 @set ECHO=echo copy %CC65_HOME%\tgi\lynx-160-102-16.tgi co65 --code-label _lynxtgi lynx-160-102-16.tgi ca65 -t lynx -o lynx-160-102-16.o lynx-160-102-16.s rm lynx-160-102-16.tgi rm lynx-160-102-16.s copy %CC65_HOME%\joy\lynx-stdjoy.joy co65 --code-label _lynxjoy lynx-stdjoy.joy ca65 -t lynx -o lynx-stdjoy.o lynx-stdjoy.s rm lynx-stdjoy.joy rm lynx-stdjoy.s sprpck.exe -t6 -p2 -a000000 fda.bmp @%echo% .global _fda > fda.s @%echo% .segment "RODATA" >> fda.s @%echo% _fda: .incbin "fda.spr" >> fda.s @REM $(AS) -t lynx -o $@ $(AFLAGS) $*.s ca65 -t lynx -o fda.o fda.s cc65 --code-name CODE --rodata-name RODATA --bss-name BSS --data-name DATA -t lynx game2.c ca65 -t lynx -o game2.o game2.s pause cl65 -t lynx -o game2.lnx lynx-160-102-16.o lynx-stdjoy.o game2.o lynx.lib @REM bg.o : bg.bmp @REM $(SPRPCK) -t6 -p2 -a000000 $< @REM $(ECHO) .global _bg > $*.s @REM $(ECHO) .segment \"$(RODATA_SEGMENT)\" >> $*.s @REM $(ECHO) _bg: .incbin \"bg.spr\" >> $*.s @REM $(AS) -t lynx -o $@ $(AFLAGS) $*.s @REM Clean/supprimer les fichiers .o et .s @REM @del *.o @REM @del *.s @REM le temps de voir les choses... appuyez sur une touche. pause
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

23

Ca me parait complique tout ce que tu fais, sous windows cc65 avec cygwin fonctionne tres facilement.
Enfin, ajoute fda.o a ta ligne de link (cl65).
Il cherche une variable externe fda, j'imagine qu'elle est declaree dans ton fichier fda.s ...

24

Merci Maeel. smile
sprite1b.zip (corrigé) :
http://www.mirari.fr/pB67
Maeel (./23) :
Ca me parait complique tout ce que tu fais, sous windows cc65 avec cygwin fonctionne tres facilement.
je ne veux pas utiliser M.VisualStudio, et pour eclipse je pense avoir tout bien installé mais je ne connais pas la procédure... là on évoque code::blocks ce qui est une bonne chose:
http://www.atariage.com/forums/topic/206456-atari-lynx-programming-tutorial/
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

25

pitié pas visual studio ni eclipse pour un truc aussi simple grin

sérieux codeblocks c'est tout facile, tu l'installes, tu changes le noms des programmes qui servent à compiler et roule ma poule!

26

squalyl (./25) :
pitié pas visual studio ni eclipse pour un truc aussi simple grin

sérieux codeblocks c'est tout facile, tu l'installes, tu changes le noms des programmes qui servent à compiler et roule ma poule!

Pour sgdk, j'ai lu le wiki de stéphane où tout est détaillé, avec force screenshots :
http://code.google.com/p/sgdk/wiki/UseSGDKWithCB

Il y a deux/trois subtilités que je n'aurai jamais deviné wink
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

27

Très belle explication smile

A savoir, le même genre de config est faisable pour la lynx en remplissant les bons champs de la zone "compiler" avec les exécutables de cc65.

28

Juste en passant : mon exemple sprite1b ne fonctionne pas sur la console. Le plus sage est d'attendre qu'une âme charitable rende compatible TGI avec Code::Blocks ou Programmer's Notepad.
avatar
Travaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx