Grâce à HPMAN
C'est en cours et la présentation est ici
http://www.neogeofans.com/leforum/showthread.php?t=46638
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
set neodev=c:\neodev
set path=c:\neodev\m68k\bin;%path%
@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
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.
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();
}
}
<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>