• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: The object Animation Engine

25
Posts
12
Years
    • Seen Aug 25, 2017
    Hi guys,

    this is the result of a long project called the Animation engine. It allowes to genereta Objects and animate them behind custom Backgrounds. this is the former Engine i developed, and this version of the engine was NOT multitasking able.
    BUT! The new one has an task manager i programmed, so you can now use it as an "keyframe" engine like this:

    Event at frame 0x0 : Load BG.
    Event at frame 0x0 : Bg Scroll ( 1px per frame left, 2px per frame up, end at frame 0x80 )
    Event at frame 0x10 : Playsong ( 0xA )
    Event at frame 0x10 : generate_OAM( Image, Xcord,Ycord,Shape, Priority )
    Event at frame 0x10 : moveobj( X-param, Y-param end at frame 0x50 )
    ....

    this engine does work, but i do have problems with ohne chapter in the GBATEK. The rotation/scaling params of the OAM_entries.
    I do understand where they are stored, and how the relate to an object (how an object can relate to them), but i do not udnerstand the information these 4 parameters hold.
    This may be a result of my native language which is german, but i do need help to controll these rotation scaling parameters to complete this engine, which will be released on this borad as well, as soon as it has been finished.

    mfg Viz 0 r

    Here is an demo of the "not multitasking" engine, wich does look pretty weird, because it cant do multitasking:

    /watch?v=4j0H4DlSKCQ (sorry i cant post any links), it is a youtube link, just add the youtube link before my watch link...
     

    Shiny Quagsire

    I'm Still Alive, Elsewhere
    697
    Posts
    14
    Years
  • Nice work, very interesting to see something like this. I actually thought up a similar idea but I never really made it happen so it's nice to see that someone did.

    Just curious, but are you doing this using just your own functions or additional functions from GameFreak's engine? Because if you're using GameFreak's engine it makes thing a ton easier in the rotation/scaling department. For the most part it looks quite nice, albiet choppy. It would be kinda nice to see a smoother transition between keyframes, like where instead of jumping to a new position you tell it the new position to move to and then it keeps moving toward the point until it reaches it.
     
    25
    Posts
    12
    Years
    • Seen Aug 25, 2017
    I am using my own subfunctions, because i cant give back to the mains taskhandler. Otherwise my changses in the OAM, IO-RAM and other changes would be overwritten instantly.
    My engine just stacks commands, and is only giving back wenn the keyframe 0xFE is reached. A "jump" command is not really easy to insert, because the engine doesnt work like a script engine:

    1. get current keyframe
    2. stack all events this keyframe
    3. Taskmanager:
    3.1. execute event top
    3.2. execute next event....
    return zu Handler
    4. Skip one frame
    5. loop

    The other engine i made (which will be multitasking able as well, after some time, if i find time to do this), works like a script engine... but the keyframe engine doesnt. A jump command can not be, because the taskmanager has no acess to the "pseudo-programm counter", and even if it had, the jump would only been done, when all other events in this frame already had been stacked.
     
    Back
    Top