1

Grâce à HPMAN
C'est en cours et la présentation est ici

http://www.neogeofans.com/leforum/showthread.php?t=46638
avatarLa Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/

2

Merci Kuk pour cette info, tres tres interessante

Super Boulot de HPMAN ! un super cadeau qu' il nous fait là ! l' année 2014 commence sur les chapeaux de roue !
Sans conteste, cela va faire avancer les choses, lorsque ces Libs seront a dispo, et va certainement motiver beaucoup de personnes !!!

Bye
FRONT !

3

Great and very interesting news!
In the future these new libs can made possible an IOCEROSOCCER port...
27_20415_iocero_2013_09_08_18_38_06_ICSPres.jpg

http://www.iocero.com/player.aspx?iduserplaylist=2&idplaylist=634&v=Vjx9DJpZKdg

4

Beau boulot les gars smile
avatarZeroblog

« 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

Hop première édition, feat moult bugs j'imagine grin

http://hpman.pagesperso-orange.fr/DATlib.rar

6

gg!

7

Merci HPMAN, tu as fais là un travail incroyable. Et je veux bien être un cobaye consentant. wink
J'ai testé avec toki, je bloque sur la compilation. J'aimerai comme Sebastian Mihai, travailler dans le dossier scr de NeoDev, et obtenir avec un batchfile les .bin dans le dossier output de mon projet :

Ci-dessous DAToki.zip
http://www.mirari.fr/Df2Q

Si tu pouvais aussi vérifier main.c, que j'ai dépouillé de tout ce qui ne concerne pas toki, voir si je n'ai pas fait trop de bétises.

ps: testé sur 2 PC, les 2 avec winxp, tes outils Buildchar et Animator fonctionne bien sur les 2 PC.
avatarTravaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

8

A vue de nez il manque common_crt0_cart.s et crt0_cart.s dans ton dossier, mis à part ça si tu reprend le makefile de mon sample il compile.

Faut virer ou modifier tempTests(), il référence des objets non présents dans ton projet.


Mon je conseille de prendre le source mame et d'ajouter son driver custom, tu lui fait charger ton char.bin en bloc, ton p1 sans le byteswap etc.. Juste à copier les nouveaux fichiers dans le dossier et ça roule. Et puis t'as un beau degugger embarrassed

9

En fait, je n'arrive pas à compiler ton programme DATdemo. J'ai installé aujourd'hui MinGW, je lance avec une session DOS mingw32-make. Mais aussi bien en compte administrateur, qu'en compte utilisateur, il y a un message d'erreur: as: unrecognized option '-68000'

J'ai fait des screenshots regroupés dans une seule image, afin d'avoir une bonne vision d'ensemble, dans l'espoir que tu puisse débloquer ma situation :

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

10

Bah faut compiler avec les binaires compatibles 68k fournies dans le kit neodev (neodev/m68k/bin), y'a rien de special à faire par rapport aux autres demos/libs qui sont dans l'archive de base, juste taper make.

11

Je n'ai jamais pu/su compiler les autres demos. Comme expliqué dans readme1st.txt, je lance 'Build-Libs' puis 'Build-Samples' et, par exemple dans l'exemple hello, il y a bien la fabrication de quatre fichiers :
palettes.pal
test.fix
test.o
test.prg

Quand à makeroms.bat, je ne vois pas du tout ce que cela fabrique, et où cela le fabrique.

si j'ouvre une session dos dans le dossier d'un dossier d'une demo et je fais make, j'ai comme réponse:
5Vxf

Et si je lance make.exe (neodev/m68k/bin) une fenêtre s'affiche, pour se refermer aussitôt. Il m'est venu la curiosité de copier/coller makeroms.bat dans le dossier exemple hello, et cela a fabriqué un beau 202-s1.bin (qui concerne le tiles fix, c'est rassurant mais je reste dans le brouillard).

Ci-dessous, le contenu du makeroms.bat (j'ai l'impression qu'il n'est pas complet) :romwak /f dev_p1.rom 202-p1.bin romwak /p 202-p1.bin 202-p1.bin 1024 255 romwak /w test.spr 202-c1.bin 202-c2.bin romwak /f 202-c1.bin romwak /f 202-c2.bin romwak /p 202-c1.bin 202-c1.bin 1024 255 romwak /p 202-c2.bin 202-c2.bin 1024 255 copy test.fix 202-s1.bin romwak /p 202-s1.bin 202-s1.bin 128 255 copy sounds\roms\202-v1.bin romwak /p 202-v1.bin 202-v1.bin 512 255 copy sounds\roms\202-m1.bin copy 202-*.bin c:\mame\roms\puzzledp
avatarTravaux, concept of proof, divers :
Megadrive
topics/172-143753-moved-juju-densetsu
Lynx
sections/255-developpeurs-lynx

12

Bah si il trouve pas make c'est que t'as pas ajouté le dossier avec les binaires dans le path.

doit y avoir un batch typeset neodev=c:\neodev set path=c:\neodev\m68k\bin;%path%
dans le kit neobitz, ou à créer, je sais plus.

Enfin bref faut lancer ça avant de pouvoir compiler, sinon bah c'est sûr il va pas deviner d'ou qu'il est gcc et compagnie embarrassed

13

Grand merci HPMAN, on est effectivement sur du 68000, et il me manquait le chemin, je viens de tester avec l'exemple fade, et il y a bien la fabrication des c1, c2 et s1. top

je le met ici en pense bête :
@set NEODEV=c:\NeoDev @set path=%NEODEV%\m68k\bin;%path% romwak /f dev_p1.rom 202-p1.bin romwak /p 202-p1.bin 202-p1.bin 1024 255 romwak /w test.spr 202-c1.bin 202-c2.bin romwak /f 202-c1.bin romwak /f 202-c2.bin romwak /p 202-c1.bin 202-c1.bin 1024 255 romwak /p 202-c2.bin 202-c2.bin 1024 255 copy test.fix 202-s1.bin romwak /p 202-s1.bin 202-s1.bin 128 255 copy sounds\roms\202-v1.bin romwak /p 202-v1.bin 202-v1.bin 512 255 copy sounds\roms\202-m1.bin copy 202-*.bin c:\mame\roms\puzzledp

UP: ne pas oublier build-libs.bat et build-samples.bat

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

14

15

cool
Version 0.1 updates:
====================


Documentation
-------------

- Redone documentation. Better organization, more infos.


Tools related
-------------

- BuildChar: revamped color conversion and added dark bit support.
- BuildChar: dummy tiles inserted to align auto animation tiles are now reused to fit data when possible.
- Animator: improved interface for better animation edits.
- Animator: improved animation playback. Animation speed should be much more faithful to the real thing.


General DATlib usage related
----------------------------
- initGfx() no longer sets up the job meter.
- Introduced jobMeterSetup() to set up job meter.
- Now using debug dips, see documentation for full infos.
- Added files required for CD systems builds.


Picture related
---------------

- Picture handling functions rewritten in asm. Improved speed across the board.
- Added pictureHide and pictureShow functions.


aSprite related
---------------

- aSprite handling functions rewritten in asm. Improved speed across the board.
- aSprite now handles variable tile width frames.
- aSpriteAnimate() will no longer issue a tilemap data rewrite when consecutive animation steps are using the same frame.- Adjusted aSpriteSetAnim() behavior, see doc for full info.


DATlib 0.1 download


Hope nothing's broken, see video in previous post to get an idea on performance.


====== Hotfix ======
aSpriteInit() might occasionally not work properly under certain circumstances.
Use the following macro to fix the issue for release 0.1:
#define aSpriteInit(a,b,c,d,e,f,g,h) {*a.currentFrame=0;aSpriteInit(a,b,c,d,e,f,g,h);}

16

GREAT!! top

THX!

17

I came back from holidays today and was very pleased to see your update - thanks a lot HPMAN !!! surf
I will check it out in the next days and post it in my thread.

18

Found a small glitch with the buildchar tool: wrong behavior if no scroller is defined in chardata.xml.

Can work around by defining a dummy scroller, or deleting maps.s and palettes.s each time before using the tool.

19

20

il faut quand même expliqué de HPman répond a un développeur de Watermelon qui disait qu'on ne peut pas faire autant de scrolling sur neogeo que sur Megadrive...
avatarLa Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/

21



magic

22

C'est joli smile
avatarZeroblog

« 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

23

HPMAN this is simply amazing! top

24

Wow, that looks fantastic - very nice raster effect at the bottom! These are 8 scroll layer graphics (168 sprites), correct?
Would you maybe release the source code for us, pleeeease? yoyo

25

It's fairly sprite consuming (224) as it uses 512px width pictures to exploit sprite wrapping rather than scrollers.
You wouldn't be able to use rasters with scrollers, plus they are much more cpu heavy.

Scrollers lacks looping support right now anyway.

#define FIRST_RASTER 384 #define SCROLLSPEED 1.06 #define MAIN_POSY -144 void scrollDemo() { float scrollAcc; int x,y,j; int scrollValues[34]; int scrollPos[34]; Picture layer0,layer1,layer2,layer3,layer4,layer5,layer9; short scrollY=MAIN_POSY; short palette=16; short sprite=1; clearFixLayer(); jobMeterSetup(true); LSPCmode=0x1c00; loadTIirq(); scrollValues[0]=1024; scrollAcc=1024; for(x=1;x<34;x++) { scrollAcc*=SCROLLSPEED; scrollValues[x]=(int)(scrollAcc+0.5); } for(x=0;x<34;x++) scrollPos[x]=0; volMEMWORD(0x401ffe)=0x38db; pictureInit(&layer0,&PICT_tf4_layer0,sprite,palette,0,scrollY,FLIP_NONE); palJobPut(palette,PICT_tf4_layer0_Palettes.palCount,&PICT_tf4_layer0_Palettes.data); sprite+=PICT_tf4_layer0.tileWidth; palette+=PICT_tf4_layer0_Palettes.palCount; pictureInit(&layer1,&PICT_tf4_layer1,sprite,palette,0,scrollY,FLIP_NONE); palJobPut(palette,PICT_tf4_layer1_Palettes.palCount,&PICT_tf4_layer1_Palettes.data); sprite+=PICT_tf4_layer1.tileWidth; palette+=PICT_tf4_layer1_Palettes.palCount; pictureInit(&layer2,&PICT_tf4_layer2,sprite,palette,0,scrollY,FLIP_NONE); palJobPut(palette,PICT_tf4_layer2_Palettes.palCount,&PICT_tf4_layer2_Palettes.data); sprite+=PICT_tf4_layer2.tileWidth; palette+=PICT_tf4_layer2_Palettes.palCount; pictureInit(&layer3,&PICT_tf4_layer3,sprite,palette,0,scrollY,FLIP_NONE); palJobPut(palette,PICT_tf4_layer3_Palettes.palCount,&PICT_tf4_layer3_Palettes.data); sprite+=PICT_tf4_layer3.tileWidth; palette+=PICT_tf4_layer3_Palettes.palCount; pictureInit(&layer4,&PICT_tf4_layer4,sprite,palette,0,scrollY,FLIP_NONE); palJobPut(palette,PICT_tf4_layer4_Palettes.palCount,&PICT_tf4_layer4_Palettes.data); sprite+=PICT_tf4_layer4.tileWidth; palette+=PICT_tf4_layer4_Palettes.palCount; pictureInit(&layer5,&PICT_tf4_layer5,sprite,palette,0,scrollY,FLIP_NONE); palJobPut(palette,PICT_tf4_layer5_Palettes.palCount,&PICT_tf4_layer5_Palettes.data); sprite+=PICT_tf4_layer5.tileWidth; palette+=PICT_tf4_layer5_Palettes.palCount; pictureInit(&layer9,&PICT_tf4_layer9,sprite,palette,0,scrollY,FLIP_NONE); palJobPut(palette,PICT_tf4_layer9_Palettes.palCount,&PICT_tf4_layer9_Palettes.data); sprite+=PICT_tf4_layer9.tileWidth; palette+=PICT_tf4_layer9_Palettes.palCount; fixPrint(0,1,0,0," "); fixPrint(0,30,0,0," "); SCClose(); while(1) { wait_vblank(); while((volMEMWORD(0x3c0006)>>7)!=0x120); //line 16 jobMeterColor(JOB_BLUE); p1=volMEMBYTE(P1_CURRENT); if(p1&JOY_UP) if(++scrollY>0) scrollY=0; if(p1&JOY_DOWN) if(--scrollY<-288) scrollY=-288; for(x=0;x<34;x++) scrollPos[x]+=scrollValues[x]; pictureSetPos(&layer0,(short)(0-(scrollPos[0]>>11)),scrollY+192); pictureSetPos(&layer1,(short)(0-(scrollPos[0]>>10)),scrollY+160); pictureSetPos(&layer2,(short)(0-(scrollPos[1]>>10)),scrollY+288); pictureSetPos(&layer3,(short)(0-(scrollPos[8]>>10)),scrollY+96); pictureSetPos(&layer4,(short)(0-(scrollPos[16]>>10)),scrollY+32); pictureSetPos(&layer5,(short)(0-(scrollPos[24]>>10)),scrollY); pictureSetPos(&layer9,(short)(0-(scrollPos[32]>>10)),scrollY+448); y=scrollY+FIRST_RASTER; if(y<224) { TInextTable=(TInextTable==TIvalues0)?TIvalues1:TIvalues0; TInextTable[j=0]=0x8400+layer2.baseSprite; TIbase=TI_ZERO+(y*384); //timing to first line TIreload=TI_RELOAD*4; //each 4 lines jobMeterColor(JOB_PINK); x=1; while(y<224) { TInextTable[++j]=(short)(0-(scrollPos[x++]>>10))<<7; y+=4; } TInextTable[++j]=0xffff; //end } else TInextTable=0; jobMeterColor(JOB_GREEN); SCClose(); } }

26

Great, thanks for the code - I will play around with it in the next days.

27

C'est vraiment super ce thunder Force like ! bravo pour le boulot !
avatar

28

top magnifique !

29

moi j adore smile a voir pour quelques update pour la version cd

30

Here's a software list entry for the ROM version of the demo (for lazy people who want to run it using MAME's new multislot Neo-Geo driver option, which is a convenient way to get around rebuilding the source to add drivers):
<software name="DATdemo"> <description>DATlib Demo</description> <year>2014</year> <publisher>HPMAN</publisher> <sharedfeat name="release" value="MVS,AES" /> <sharedfeat name="compatibility" value="MVS,AES" /> <part name="cart" interface="neo_cart"> <!-- Homebrew, uses Puzzle De Pon as surrogate rom --> <dataarea name="maincpu" width="16" endianness="big" size="0x100000"> <rom loadflag="load16_word_swap" name="202-p1.p1" offset="0x000000" size="0x080000" crc="30b0fddc" sha1="c057f9f042eb0ba9c1efde9778f083b063498762" /> </dataarea> <dataarea name="fixed" size="0x040000"> <rom offset="0x000000" size="0x020000" name="202-s1.s1" crc="cd19264f" sha1="531be2305cd56d332fb7a53ab924214ade34a9e8" /> </dataarea> <dataarea name="audiocpu" size="0x020000"> <rom offset="0x000000" size="0x020000" name="202-m1.m1" crc="9c0291ea" sha1="3fa67c62acba79be6b3a98cc1601e45569fa11ae" /> </dataarea> <dataarea name="ymsnd" size="0x80000"> <rom name="202-v1.v1" offset="0x000000" size="0x080000" crc="debeb8fb" sha1="49a3d3578c087f1a0050168571ef8d1b08c5dc05" /> </dataarea> <dataarea name="sprites" size="0x200000"> <rom loadflag="load16_byte" name="202-c1.c1" offset="0x000000" size="0x100000" crc="fd713f20" sha1="da58cd41415544a4479e4170f20bbcd1525999b5" /> <rom loadflag="load16_byte" name="202-c2.c2" offset="0x000001" size="0x100000" crc="fd9ca7e7" sha1="08a0c3abb25793ad1d78a09555bcbf155bdb2420" /> </dataarea> </part> </software>

run it with (mameEXE) neogeo DATdemo
or if you want a multislot situation, (mameEXE) neogeo -cart1 DATdemo -cart2 (rom2)
up to -cart6

I tried to convert the CD demo to CHD (because MESS/UME's image requirements are weird and I don't know how to load ISOs properly) but no luck :s
avatar