Jump to content
Sign in to follow this  
Orion_

Using parts of Raptor

Recommended Posts

Hello,

I had problems with my own sprite engine (that I've been using for years) while porting my platformer game Alice.

I want to try Raptor, mainly because the sprite engine seems powerful, and the Tilemap system would be much more faster than my "blitter based" tilemap engine.

 

The problem is that raptor seems to be designed in an all in one package, with lots of dependencies.

for example I took the "tilemap" example from the raptor package, and removed all the stuff I didn't wanted...

I removed U235, I removed the fonts, and I removed the "particle" stuffs. (by setting all the pointer related to these to 0)

and then I compile, and it won't work anymore (black screen :/ )

 

So a few questions:

Is it possible to use Raptor without having font/particle/u235 stuff ?

What things are mandatory to set in the Raptor engine ? (can't we set NULL pointer to the stuffs we don't want to use ?)

 

Can I add object dynamically using the RAPTOR_CreateObject function ?

Is this a "Non-RAPTOR" object, or still a raptor object ?

Will this be compatible with the Tilemap list ?

Can we have 2 tilemap list ?

Does the tilemap list ignore to display a tile when the tile index is 0 ?

Can we set our own raw graphics for the tilemap without using the BMP convert stuff ?

 

Also, I have my own DSP music/sfx decoder/mixer, can I use the DSP like I want without touching U235 ?

 

I also want to include the JagCD bios call, and this needs:

-a pointer to some space in the GPU ram (approx 336 bytes)

-a clean space in the GPU IRQ code (nop nop nop nop ... at the beginning of the GPU ram)

-and the GPU constantly running (Is it the case ?)

 

Thank you CJ if you can answer :)

 

Share this post


Link to post
Share on other sites

and then I compile, and it won't work anymore (black screen :/ )

I have a similar issue using rb+ - I switch off the particle object and POOFFF! Everything is blackness.

 

Could be totally unrelated.

Share this post


Link to post
Share on other sites

This... might take a while to answer :)

 

 

Hello,

I had problems with my own sprite engine (that I've been using for years) while porting my platformer game Alice.

I want to try Raptor, mainly because the sprite engine seems powerful, and the Tilemap system would be much more faster than my "blitter based" tilemap engine.

 

Thanks, happy to help out if I can.

 

 

The problem is that raptor seems to be designed in an all in one package, with lots of dependencies.

for example I took the "tilemap" example from the raptor package, and removed all the stuff I didn't wanted...

 

 

It's designed like that deliberately to minimize confusion for people (especially new to Jaguar coders) and give an all-in-one package. However, if you'd like to chop it up and use bits we can talk privately and I can send you the source rather than a binary object?

 

 

I removed U235, I removed the fonts, and I removed the "particle" stuffs. (by setting all the pointer related to these to 0)

and then I compile, and it won't work anymore (black screen :/ )

 

 

This appears to be a bug in the Object culling routine. Try putting an object above the particle layer, and then removing it. I think the bug only manifests if the first object in the list is disabled. I will look into this.

 

 

 

Is it possible to use Raptor without having font/particle/u235 stuff ?

 

Yes. However the particles will still be in the binary, unless you use a source-build. If you remove U235 from the link-chain RAPTOR.O will not assemble due to extern references.

 

 

 

Can I add object dynamically using the RAPTOR_CreateObject function ?Is this a "Non-RAPTOR" object, or still a raptor object ? Will this be compatible with the Tilemap list ?

RAPTOR will dynamically update the list of attributes about the pre-defined objects, but not allow new RAPTOR objects to be created after init. So if you knew all th epossible things you wanted you could define them all as disabled, and turn them on/off as required. NOTE: RAPTOR will not allow a change of dimension/bit depth for the obejct, but all other parameters are processed, but I'm planning to re-assess that for a future revision.

 

The CreateObject function can change anything about a non-raptor object, defined either before the RAPTOR list or after it. However, placeholders will need to be there for it to overwrite, and these obejcts are not auto culled so you would have to manage branches, etc. These objects are not compatible with the tilemap list.

 

Can we have 2 tilemap list ?

 

 

With the source build, yes, you can pass a pointer. With the API object, not currently.

 

Does the tilemap list ignore to display a tile when the tile index is 0 ?

 

 

No, but if you set a tile object to inactive instead, it will be.

 

Can we set our own raw graphics for the tilemap without using the BMP convert stuff ?

 

 

Yes, just don't put the bitmap in the auto-convert list and reference it directly from the object definition.

 

Also, I have my own DSP music/sfx decoder/mixer, can I use the DSP like I want without touching U235 ?

I also want to include the JagCD bios call, and this needs:

-a pointer to some space in the GPU ram (approx 336 bytes)

-a clean space in the GPU IRQ code (nop nop nop nop ... at the beginning of the GPU ram)

-and the GPU constantly running (Is it the case ?)

 

 

If you use a source build and remove U235, the DSP is 100% free for whatever you wish. You could also add GPU interupts (RAPTOR only uses the GPU during it's processing calls, and for collision detection routines) - HOWEVER, it does use >32 registers so you'd have to watch out for register collisions in your interrupt routines.

 

Thank you CJ if you can answer :)

 

 

Not a problem, happy to assist with anyone serious about using RAPTOR.

Share this post


Link to post
Share on other sites

EDIT: nevermind, I will do a more complete (private) report after I try what CJ sent me :)

Edited by Orion_

Share this post


Link to post
Share on other sites

I had something (tilemap engine) working using raptor, but once I tried to pull raptor out and plug all my game engine on top of that, it didn't worked at all (crash, black screen ...)

so ultimately I ended up getting back my old source code and trying to debug this one instead, now I finally have something playable (at 30fps :/ ) but at least something working ... (without raptor)

I guess, it's better to use raptor from start, not trying to port something on it.

Edited by Orion_

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...