1

Hey,

Been off the forum for a while, sorry about that.

Anyway, fresh update just in!

https://www.dropbox.com/s/wqviye5xxzktr6y/DATlib_0.3.rar?dl=0

Version 0.3 updates: ==================== Introduced color streams. See documentation/demo. Added functions/tools package for fix display handling. Added VBlank callback function support. Tools related ------------- - Buildchar: Can now process and output fix data. - Buildchar: X-flipped autoanim tiles are now properly detected & optimized. - Buildchar/animator: Various output format changes. - Misc glitch/crash fixes across tools. Misc code related ----------------- - Added a buffer for fix commands. - Functions clearing sprites no longer resets the shrink values. - Added alternate IRQ safe versions of functions when necessary. - Fixed debug dip 2-3 scale. - New functions: jobMeterSetup2 clearFixLayer2 clearFixLayer3 sprintf2 sprintf3 fixPrint2 fixPrint3 fixPrint4 fixPrintf1 fixPrintf2 fixPrintf3 aSprite related --------------- - Palette data can now be accessed through spriteInfo structure. - Fixed 1px offset when X flipped and/or Y flipped. - Ability to initialize without issuing a sprite clear. - Flags are now passed on upon initialization. - Current animation#, step#, and repeats# are now properly tracked. - Introduced alternate coordinates mode (strict coordinates). - New functions: aSpriteSetAnim2 aSpriteSetStep aSpriteSetStep2 aSpriteSetAnimStep aSpriteSetAnimStep2 spritePool related ------------------ - New function: spritePoolDrawList2 scroller related ---------------- - Palette data can now be accessed through scrollerInfo structure. - Rewrote code, improved performance. - scroller functions now updates tilemap data on a per tile basis. picture related --------------- - Palette data can now be accessed through pictureInfo structure.
boing

2

OMG!!!!!

Ultimate!

Last sequence!

You keep changing the game!

Ever since the discovery of DATLib you created MegaShocked!

I have been reformatting all of my codes to catch up with DATLib 2.0 and still haven't caught up. Now 3.0 is out! I am fresh off vacation but feel like I need to call in sick for weeks just to learn 3.0. This is crazy!

We are no worthy!
The Future is now!
Thank you for all your hard work and for evolving the development process past our wildest dreams.

HP the Man!

Every emoticon that is cool is required!

3

I have a question - how to incorporate a romwak commands to example program makefile, for simplification of MAME launch-ready roms building?
avatar

4

Hi HPMAN!

I think there may be a glitch with the new aSpriteInit function.

After initializing, the animation I set is always reset to animation '0'

EX: I tell function to initialize animation '2' but for some reason it initializes animation '0'

aSpriteInit(&publisher.sprite,(spriteInfo*)Tyemy_Logo,1,1,publisher.x,128,2,FLIP_NONE,AS_FLAGS_DEFAULT);

After the animation completes I get this crash message.
b4HH

5

Did you re-export the sprite with the updated animator ?

Data format was changed.

6

VasiliyFamiliya (./3) :
I have a question - how to incorporate a romwak commands to example program makefile, for simplification of MAME launch-ready roms building?

Add you romwak commands/batch after $(OBJC) --gap-fill=$(PADBYTE) -R .data -O binary $< $@

You shouldn't need romwak anyway, mame can load the raw files with a driver properly set up.

7

HPMAN (./6):You shouldn't need romwak anyway, mame can load the raw files with a driver properly set up.

Well, then how to set it up to able to load raw files?
avatar

8

In the hash .xml, for your game, use load16_word to load the raw code/char binary.

Like:
<rom loadflag="load16_word" name="char.bin" offset="0x000000" size="0x400000" crc="00000000" sha1="0000000000000000000000000000000000000000" />

Adjust offset/size to fit your project.

9

HPMAN (./8):
In the hash .xml, for your game, use load16_word to load the raw code/char binary.

Like:
<rom loadflag="load16_word" name="char.bin" offset="0x000000" size="0x400000" crc="00000000" sha1="0000000000000000000000000000000000000000" />

Adjust offset/size to fit your project.

Is dev_p1.rom only enough?
avatar

10

Wut?

You need files for P/V/S/M/C data.

11

Hi HPMAN!

Thanks for your help!

A few notes on what I experienced transitioning to DATLib 0.3

aSpriteInit - function has been enhanced so you will need to add the new FLAG parameter to all of your existing calls.
(I am using AS_FLAGS_DEFAULT as per the examples...I don't know enough about this parameter yet...)

SpritePoolnit - function has been enhanced you will need to add "bool clearSprites".
( I am setting this to true as per the example...there is an explanation not sure yet of why we do this maybe clearing the screen?)

Sprite - "currentStepNum" variable was changed to "stepNum"

You must reopen all of your Sprites with the new Animator tool and re-save them or you will be me in my last post!

There are so many new features I don't know where to begin....

Step 1: Ensure all existing code still works....will take a bit but I am up for the job.
Step 2: I am on that colour streaming like white on rice! Yeah baby! Also did someone say fix! Hyped Up!

12

HPMAN (./10):
Wut?

You need files for P/V/S/M/C data.

But how to get it without romwak? After 'make' using compiler outputs .map file, object files and dev_p1.rom only.

tromb Fichier joint : i6QA
avatar

13

Hi VasiliyFamiliya,

Please start a new thread called something like... "How to load custom Neo Geo rom's in mame"

If you do this I will give you all the bad advice I have.

We need to reserve this thread to celebrate and discuss the DATlib 0.3 release.

You have to know where you have been to know where you are at. HPMAN continues to change the game!

14

Hi Hpman, wow that's a huge update - thank you for sharing and all the work #nyan#
Great to see that sprite shrinking is now supported by DATlib and the new fix layer features are awesome.
I particularly like the raster effect of the sand dunes - this could be useful for animating the underwater backgrounds in my submarine shooter.

15

Mega Shocked (./11) :
Hi HPMAN!

Thanks for your help!

A few notes on what I experienced transitioning to DATLib 0.3

aSpriteInit - function has been enhanced so you will need to add the new FLAG parameter to all of your existing calls.
(I am using AS_FLAGS_DEFAULT as per the examples...I don't know enough about this parameter yet...looks like there are some cool scale routines!)

SpritePoolnit - function has been enhanced you will need to add "bool clearSprites".
( I am setting this to true as per the example...there is an explanation not sure yet of why we do this maybe clearing the screen?)

Sprite - "currentStepNum" variable was changed to "stepNum"

You must reopen all of your Sprites with the new Animator tool and re-save them or you will be me in my last post!

There are so many new features I don't know where to begin....

Step 1: Ensure all existing code still works....will take a bit but I am up for the job.
Step 2: I am on that colour streaming like white on rice! Yeah baby! Also did someone say fix! Hyped Up!

documentation_matrix.jpg

No shrinking support tho.

16

-

17

Hi HPMAN!

Definately an over sight on the missing that Sprites must be re-exported to work with 0.3.

I have been using the excellent documentation you whipped up. I thought what I wrote might be useful for someone new to the thread that is migrating to 0.3. I was going to keep adding to what I have wrote as I discovered more nuances between the two versions of the library.

To be clear what I am writing will probably be useless to some of the more advanced programmers but for someone that might be interested in some quick notes on the change over I thought I would document my experience.

Sorry for misinformation on the scale support. I did notice that there is a call to intialize a scale.

One question I do have that I have been meaning to ask..

You provide support to hide pictures and sprites is there a way to hide scrollers?

18

Not atm but you can clear the 21 scroller sprites. It will show up again when you update position.

19

HPMAN, Thank you for this update. I've been messing around with DatLib 0.2 and created this so far: https://youtu.be/OqD_-Y3GDCA I guess I should have waited for the update with shrinking... lol.

NeoHomeBrew, Thank you for the menu code!
avatar

20

What I must do, if I want to make animated sprite to switch its animation to anim=1 not after B button pressing, but during sticks movement, and switch it back to anim=0 again when sticks are inactive?
avatar

21

aSpriteSetAnim(&demoSpr,p1&(JOY_UP|JOY_DOWN|JOY_LEFT|JOY_RIGHT)?1:0);

22

HPMAN (./21):
aSpriteSetAnim(&demoSpr,p1&(JOY_UP|JOY_DOWN|JOY_LEFT|JOY_RIGHT)?1:0);

Thank you very much!
avatar

23

Well, I making a first successes already.

I begun an own game creation from aSpriteDemo (by the way, I made this function the main in my program) and scrollerDemo merge to single function, which can serve as a base for some game engine.
But now I have a bug - a piece of ffbg_a in middle of background and almost whole car picture is not shown, and Blue Mary sprite is blinking at the major part of screen (excepting mainly top left corner of screen). Screenshots and video of this bug is attached below.

tromb Fichier joint : Ym31
tromb Fichier joint : CT1T
[media]https://drive.google.com/open?id=1P1HfUE5wIQhW5bnQM_Rj5LRI-78gkMYe[/media]
avatar

24

Scrollers and spritePool sprites are overlapping. hum

25

HPMAN (./24):
Scrollers and spritePool sprites are overlapping. hum

Thanks. I fixed this bug. Now it's left to make text visible again.
avatar

26

Now I added a first enemy sprite to my program.

But why Framer "perceived" blue color in enemy graphic files not as backgrond colour, why aSpriteAnimate(&Enemy) command not working, and enemy sprite by itself is always left at the same screen place undependently of scrolling position?

llON
avatar

27

Hi VasiliyFamiliya!

All my GFX use the RGB value for Magenta as the background colour.

R - 255
G - 0
B - 255

Your GFX can have more than 1 palette but initially try to use 15 colours + magenta. Just to make sure you can get the magenta to be ignored.

I believe the magenta is hard coded so that when GFX are compiled it gets ignored. If I remember correctly HPMAN also supports transparent .pngs so the Transparency will also be ignored after the GFX are compiled.

Tip: Open HPMAN's Blue Mary Sprite and sample his background colour.

The official documentation has this info.... Probably in the "Framer" section.

28

Well, I successed to solve the sprite background colour problem with a simple removing of blue colour from enemy.png file.

But what's about not working aSpriteAnimate(&Enemy) and fixed enemy sprite position?

tromb Fichier joint : UYBy
avatar

29

Use: aSpriteSetPos(&enemy, x, y); to move position. You could also use aSpriteMovePos(&enemy, xVel, yVel); also. Set well move sprite to screen location, but Move adds a velocity to the current position.
avatar

30

hine62 (./29):
Use: aSpriteSetPos(&enemy, x, y); to move position. You could also use aSpriteMovePos(&enemy, xVel, yVel); also. Set well move sprite to screen location, but Move adds a velocity to the current position.

I mean, the enemy must "stay at post" at his sroller section, but not to "get in touch" with a player's sprite, wherever it move.
avatar