1

Cela fait pas mal d’années que je me passionne pour la lynx et aujourd’hui j’aimerais tenter de franchir un grand pas.
Vu mon niveau actuel en programmation mon but n’est pas de créer un jeu mais au moins de comprendre comment arriver à écrire ne serait-ce qu’un bout de texte ou de sprit exécutable avec Handy. J’ai lu pas mal de tutos sur la prog. lynx mais il me manque trop de bases pour savoir les utiliser.

Ce que j’aimerais c’est une explication spécial néophyte du genre :
Ouvre ce logiciel
Ecrit (XXX)
Enregistre, converti….
Lance Handy et regarde (XXX) apparaître à l’écran

Je me doute que cela n’est sûrement pas si simple mais avec un peu de persévérance….
Donc voilà si d’aventure quelqu’un de fort sympathique pouvait répondre à mon appel désespérer….
Mon site sur la LYNX :ZoneLynx

2

Lis déjà les topics qui sont présent (et surtout le vieux ceux qui sont archivés : sections/255-developpeurs-lynx )

N'hésite pas à poser des questions
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

3

J'ai lu tous ses postes le probléme c'est qu'il me manque les bases des bases...
Je ne sais même pas avec quel logiciel écrire les programmes!

Quel serait par exemple la marche à suivre pour arrivé à faire apparaitre le mot "bonjour" sur l'écran de la console?
Mon site sur la LYNX :ZoneLynx

4

topics/21260-tutovous-aussi-faites-un-hello-world-en-c

ce topic aussi ?

j'avais justement expliquer comment faire hello world


(c'est loin tout ça ^^)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5

"""POUR CE TUTORIAL JE PRESUPPOSE QUE VOUS AVEZ INSTALLE PANTHER"""

Déja la je suis bloqué! Ou je le trouve le logiciel panther? (j'ai oublié de dire que je n'ai pas de falcon mais juste un PC)
Mon site sur la LYNX :ZoneLynx

6

avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

7

Sinon damdam avait mis des trucs sur son site : http://lynxweb.com.ar/article.php3?id_article=35
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

8

Merci vince je vais commencer à regarder tout ça.
Mon site sur la LYNX :ZoneLynx

9

Bien, on va aborder les choses dans l'ordre.
Au niveau logiciel, il te faudra :
- un logiciel de dessin capable de générer du BMP en 16 couleurs (à la limite, Paint peut aller pour commencer)
- un éditeur de texte (Notepad peut convenir, un éditeur de texte évolué freeware comme Dev-CPP ou plein d'autres, c'est pas plus mal)

Avec ça, tu pourras faires tes graphismes (fond, sprites) et écrire tes sources.
On va dire que pour le moment, on oublie la musique, hein ?
Quand tu sera autonome, tu regarderas pour inclure ABCMusic, c'est juste une extension, il n'y a pas de logiciel associé.

Ensuite, il te faut :
- convertir tes fichiers BMP en fichiers "sprites" compréhensibles par la Lynx (tout objet graphique est un sprite sur la Lynx)
- compiler ton programme
- générer un exécutable Lynx à partir des morceaux précédent

Déjà, tu dois choisir en quel langage tu vas programmer, assembleur ou C
Partons du principe que ce sera en C.

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

J'avais du faire un article revival sur l'installation du kit BLL. Tu as réussi, parce que là, c'est un peu le bronx sur mon PC (en gros, j'ai fait pour que ça marche grin ), donc je ne pourrais pas t'expliquer proprement.
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

10

Fadest (./9) :
J'avais du faire un article revival sur l'installation du kit BLL. Tu as réussi ?

Laisse tomber, j'ai retrouvé l'article, c'est tout naze, on va faire comme si je débarquais sur ton PC avec ma clé USB et faire au plus vite et qui marche grin

1/ tu télécharges ce fichier :
http://fadest.free.fr/DevLynx/lynx_disqueC.zip
et tu le décompresses sur ton disque C à la racine
Il faut que tu aies le dossier lynx à la racine (ça te crées donc C:\lynx\bll)

2/ tu télécharges ce fichier
http://fadest.free.fr/DevLynx/NEWCC65.zip
et tu le décompresses ou tu veux (par exemple dans C:\lynx)

Là, tu as tous les outils du kit BLL

3/ tu télécharges ce fichier
http://fadest.free.fr/DevLynx/Projet.zip
et tu le décompresses ou tu veux
Ca va te créer une structure de projet à l'identique des miennes.

Dans le dossier projet, tu trouves 1 fichier C.bat qu'il faut éditer :
cls
set PATH=c:\lynx\newcc65\bin
cd "%1"

cc65 -Ic:\lynx\newcc65\include\ "%1.c"

xopt "%1.m65"

ra65 "%1.m65" -o "f:\projet\%1\%1.obj"  
del "%1.m65"

link65 "%1.obj" "%1.olb" "c:\lynx\newcc65\lib\c.olb" "c:\lynx\newcc65\lib\lynx.olb" -o "..\%1.o" 
del "%1.obj"

cd ..


Si tu n'as pas dézippé newcc65 dans c:\lynx, il faut que tu modifies ces lignes par la nouvelle adresse :
c:\lynx\newcc65

Idem, tu dois setupper f:\projet par l'endroit ou tu as dézippé le projet.zip

Comment ça marche :
le tépertoire test correspond à l'ensemble des fichier pour un programme/jeu. Tu n'es pas obligé de suivre mes consignes, mais je t'explique comment je procède
Il a 3 sous-dossiers : bmp, inc et obj
Dans bmp, je stockes les graphs
Dans inc, les fichiers à inclure dans le source C (par exemple, la palette)
Dasn obj, les objets sprites, librairies spécificques (abcmusic)
Le source c est dans le dossier test (et se nommera test.c)

Prochaine étape, le premier programme wink
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

11

Pour ce programme, on va commencer simple : afficher une image.

Avec ton logiciel de dessin, tu crées une image 160x102 16 couleurs, que tu sauvegardes en BMP dans le sous-répertoire BMP de ton projet.
Mettons qu'elle s'appelle fond.bmp

Vu que tu n'as qu'une image, on va la convertir à la main avec SPRPCK (il y a moyen d'automatiser tout ça)

SPRPCK est l'outil qui te permet de convertir des fichiers graphiques en fichiers objets lisibles par la Lynx.
Il est dans Newcc65/bin

Note, tu utiliseras une session MS-DOS pour programmer la Lynx wink
J'espère que tu aies plus familier avec MS DOS que moi roll

La commande est :
SPRPCK -t6 -S160102 -p0 fond.bmp
(attention aux minuscules/majuscules, et c'est bien pzéro : -p0)

Ca va te générer un fichier fond.pal (que je mets dans INC pour ma part) et un fichier fond.obj (que je mets dans OBJ)

Le fichier .pal sera inclus dans le source, alors que le fichier .obj sera ajouté à ton programme après compilation pour former le programme exécutable format BLL (autonome = programme + données). Personnellement, j'aime bien inclure tous mes objets dans une librairie, c'est plus facile pour la programmation.
Dans le répertoire OBJ, je crées donc un fichier batch que j'appelle MAKELIBR.BAT :
del test.olb
libr65 a test.olb fond.OBJ		
move test.olb ..


Il faut une ligne
libr65 a test.olb fond.OBJ
par objet à inclure dans la librairie

C'est brute comme méthode vu que ça regénère la librairie à chaque fois qu'on le veut (même si on vient de changer 1 seul objet)
Le nom de la librairie doit être celui du dossier (donc test.olb dans notre exemple).
Exécutes ce batch, ça te créeras la librairie au bon endroit

Voilà, il ne te manque que le source du programme :
tu crées un fichier test.c directement dans le répertoire test
#include <stdlib.h>
#include <lynx.h>
#include <lynxlib.h>
#include "inc\fond.pal"

/* LYNX-specific #defines: */
#define JOY_RIGHT		0x10
#define JOY_LEFT		0x20
#define JOY_DOWN		0x40
#define JOY_UP			0x80

#define BUTTON_OPTION1	0x08
#define BUTTON_OPTION2	0x04
#define BUTTON_INNER	0x02
#define BUTTON_OUTER	0x01

#define BUTTON_PAUSE	0x01

char SCREEN[8160]       at (MEMTOP-16320);
char RENDER[8160]       at (MEMTOP-8160);

extern char fond[];

extern char SCB[];
#asm         
_SCB      dc.b $c0,$10,$20
          dc.w 0,0
          dc.w 0,0,$100,$100
          dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

// assembler vertical retrace syncronisation routine
void Vsync() 
{
#asm
vretrace:
	lda $fd0a
	bne vretrace
#endasm
}


/**************************************************************************
**                                                                       **
**                                                                       **
**************************************************************************/
char main()
{
  InitIRQ();
  CLI;

  SetBuffers(SCREEN, RENDER ,0);

  /* set the palette */
  SetRGB(pal);
  DrawFBox(0,0,160,102,0);
  SCBX(SCB) = 0;
  SCBY(SCB) = 0;
  SCBDATA(SCB) = fond;
  DrawSprite(SCB); 
  Vsync();
  SwapBuffers();
  for(;;);
 }


et tu le sauvegardes.

Là, en faisant l'exemple à la main, je me rends compte qu'il manque un fichier untime.run dans ton répertoire test. Copies le depuis newcc65/lib

Une fois ceci fait, revient au niveau de ton répertoires projet et tapes :
c test

normalement, ça te crées un fichier test.o que tu peux utiliser avec handy (ou envoyer via BLL sur la lynx)

Prochaine étape, explication de source wink


Edit : bon, c'est sur, l'installation du kit, la structure, tout ça, c'est pas mal bidouille/à l'arrache et adapté à mes besoins pour pas perdre trop de temps; il doit y avoir moyen de bien améliorer tout ça, mais je n'ai plus trop envie de m'y mettre. Personellement, ça me convient bien comme ça.
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

12

C'est exactement ce qu'il me faut fadest! un tuto pas à pas et bien détailé.
J'ai essayé vite fait au boulot (je prendrais plus mon temps ce soir) et je suis déja coinsé: que veut dire édité le fichiez c.bat?

Moi j'ai ouvert une fenetre msdos j'ai ete chercher le fichiez c.bat

ensuite ca commence bien,
j'ai bien la meme ligne que dans ton exemple (avec f à la place de c) set PATH=f:\lynx\newcc65\bin
puis la ligne cd "" (moi il n'y a rien entre les guillemets)
en enfin plein de ligne ou il me parle de commande interne pas reconu???
qu'est ce que j'ai mal fait?


Mon site sur la LYNX :ZoneLynx

13

Editer, c'est avec Notepad par exemple, pour le configurer avec ton set-up.
A l'utilisation, il faut taper c <projet> ou <projet> est le nom du dossier ou se trouve ton programme c

Reprenons le fichier c.bat ligne à ligne :

cls c'est pour effacer l'écran
set PATH=c:\lynx\newcc65\bin c'est pour définir l'endroit ou se trouve les programmes exécutables du kit BLL (compilateur, linker, ...)

cd "%1" va dans le dossier ou se trouve le source

cc65 -Ic:\lynx\newcc65\include\ "%1.c" compile le fichier c, ça génère un fichier assembleur .m65

xopt "%1.m65" optimise le fichier assembleur généré plus haut

ra65 "%1.m65" -o "f:\projet\%1\%1.obj" compile le fichier assembleur en un programme - pas exécutable sur Lynx car il manque les sprites, ...
del "%1.m65" supprime le fichier assembleur

link65 "%1.obj" "%1.olb" "c:\lynx\newcc65\lib\c.olb" "c:\lynx\newcc65\lib\lynx.olb" -o "..\%1.o" le linker génère l'exécutable BLL an mettant ensemble le programme et les fichiers objets
del "%1.obj" supprime le programme compilé

cd .. revient dans le répertoire en cours


Je t'ai mis un http://fadest.free.fr/DevLynx/Projet_bis.zip qui est la structure de projet avec tous les objets et source, ça te permettra de tester un peu par toi même.

Attention, le premier zip téléchargé doit bien être sur le disque C: lui, les autres peuvent être ailleurs. Ca doit sans doute pouvoir être setuppé quelque part (faut dire aussi que si je faisais des makefiles comme tout le monde grin...)


avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

14

C'est vraiment sympa a toi Fadest de prendre le temp de m'expliquer.


Ton tuto est super bien fait mais comme je l'ai dis je parts de rien!

J'ai tout instalé ok
J'ai édité le fichier C.bat ok
J'ai fait mon image avec paint ok
j'ouvre une "invite de commandes", je tape: c:\>lynx\newcc65\bin\sprpck.exe
à ce moment le mode d'emploi defile
Mais apres rien, quand je tape la ligne c:\>SPRPCK -t6 -S160102 -p0 fond.bmp ça me repond que sprpck n'est pas reconnu en tant que commande interne ou externe...

Je me plante ou?


Mon site sur la LYNX :ZoneLynx

15

tapes

SET PATH=%PATH%;c:\lynx\newcc65\bin

ensuite SPRPCK -t6 -S160102 -p0 fond.bmp devrait marcher
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

16

Ah oui... c'est vrai que généralement, je compiles au moins un truc une fois avant de toucher des graphs (c'est rare), et que ça set up le PATH #boulet#
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

17

C'est mieux effectivement mais maintenant j'ai le message:
error <1>:couldn't load fond.bmp !

Mon site sur la LYNX :ZoneLynx

18

si tu fais DIR, tu as fond.bmp qui apparait ?

si non, il faut soit que tu mettes sont chemin complet, soit que tu positionnes sur le dossier adéquat
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

19

C'etait bien le fond.bmp qui n'etait pas ou il fallait du coup c bon j'ai bien mes fichier obj et pal.

Je continuerais ce soir en tout cas j'avance! c'est cool! merci à vous deux top
Mon site sur la LYNX :ZoneLynx

20

Ca mériterait pas d'être en post-it tout ça ? wink
avatar
----- SNK Forever -----
Association Retro-gaming Connexion : http://www.retro-gc.fr/
http://www.consoles-portables.com

21

Je ne dirais qu'un mot... Excellent !

Autrement, pour des petits projets, Notepad2 est excellent pour ecrire du C car le text est formaté, coloré et numéroté. wink

22

lceman (./20) :
Ca mériterait pas d'être en post-it tout ça ? wink

sisi, c'est fait, merci pour l'idée wink
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

23

Bon aprés pas mal de tentatives je reste bloqué.


J'arrive à créer les fichiers fond.obj et fond.pal, je les mets comme toi dans les dossiers obj et inc.
j'ouvre notepad, j'y copie le texte :
del test.olb
libr65 a test.olb fond.OBJ
move test.olb ..
j'enregistre dans le répertoire OBJ avec comme titre MAKELIBR.BAT
toujours dans notepad je copie le code source que j'enregistre avec comme nom test.c
Je retourne dans ma fenetre ms dos, je vais à c:\lynx\projet\
Je tape c test et là j'obtiens cela:

[URL=http://img137.imageshack.us/my.php?image=pblk2.jpg][IMG]http://img137.imageshack.us/img137/8664/pblk2.th.jpg[/IMG][/URL]

j'ai refais et rerefais la chose c toujours le meme resultat.
Mon site sur la LYNX :ZoneLynx

24

As tu bien fait l'action en rouge ci-dessous ?

j'enregistre dans le répertoire OBJ avec comme titre MAKELIBR.BAT
dans MS Doc, va dans le répertoire OBJ et lance makelibr pour générer la librairie
toujours dans notepad je copie le code source que j'enregistre avec comme nom test.c
Je retourne dans ma fenetre ms dos, je vais à c:\lynx\projet\
Je tape c test et là j'obtiens cela:


Ensuite, en regardant ta fenetre DOS, le problème vient du fait qu'il ne trouve pas les compilateurs, assembleurs & co.
Ou as tu décompacté l'archive newcc65.zip ? Dans f:\lynx\newcc65 ?
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

25

Bon j'avance un peu effectivement je n'avait pas chargé le makelibr.bat!
Maintenant lorsque je test "test.c" il me crée un fichier test.olb mais pas de test.o.
Pourquoi?
Mon site sur la LYNX :ZoneLynx

26

le fichier test.olb est créé par makelibr.bat. C'est une librairie (= une collection d'objets qui seront ajouté à ton programme compilé, les sprites, ...)

Le fichier test.o est généré après la commande c test
As tu toujours des erreurs quand tu fais c test ?
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

27

Oui toujours. je ne sais vraiment pas ce que je fait de travers???
Je suis pourtant pas à pas ton tuto.
(j'ai encore un doute sur comment edité le "c.bat", moi j'ouvre le bloc-notes, et j'ouvre c.bat; Pour moi edité c'est ca mais je me trompe peut etre).
Mon site sur la LYNX :ZoneLynx

28

Ou as tu décompacté l'archive newcc65.zip ? Dans f:\lynx\newcc65 ?
Ou se trouve le programme cc65.exe sur ton disque dur ?
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com

29

Oui je l'ai decompressée
cc65.exe est dans, C:\lynx\NEWCC65\BIN
Mon site sur la LYNX :ZoneLynx

30

OK, edites le fichier c.bat et remplace les f:\ par des c:\ sur les lignes suivantes :

set PATH=[b]c:[/b]lynx\newcc65\bin

cc65 -I[b]c:[/b]lynx\newcc65\include\ "%1.c"

link65 "%1.obj" "%1.olb" "[b]c:[/b]lynx\newcc65\lib\c.olb" "[b]c:[/b]lynx\newcc65\lib\lynx.olb" -o "..\%1.o"

Et relances c test ensuite
avatar
De nouveaux jeux pour vos vieilles consoles ? En 2021 ?
https://yastuna-games.com