Archive for the ‘Megadrive’ Category

AnimLib for 0.7

January 8th, 2011
Comments Closed

Stef updated sgdk again, mainly in sega.s boot code (grrr!!!)
So I checked if AnimLib will still work with it

It seems nothing broke…

WTF?!?

Megadrive | Posted by KanedaFr

MultiTap code

December 21st, 2010
Comments Closed

2/3 of the multitap games I analyzed share the same code…
I didn’t understand why until I added ‘Multitap – Sample IO program’ rom to my list of to-analyze-game.

I think they use a code shared by Sega, but what is fun is that they used it like this…including mouse detection / reading code 😉

The code is a little complex, because of the protocol to communicate with the MultiTap.
The EA4Way is far easier to handle !

Megadrive | Posted by KanedaFr

6 buttons for SGDK

December 13th, 2010
Comments Closed

I finally understood how the 6 buttons works….

Need to tune it a little more and add multiplayer support …

Megadrive | Posted by KanedaFr

My first useful hack !

November 27th, 2010
Comments Closed

Perhaps you noticed I didn’t post a lot between july and november ?
In fact, I was really busy with an interesting hack : add 6 buttons support to NH’94 game.
If you play the classic game, you have to long press B button to select the goal….it’s a really poor game play!
I could easily understand why clockwise asked me to make this hack.
After a lot of disassembling and 68k asm frustration, I was finally able to add this feature with the less code as possible.
I would like to thanks everyone from Spritesmind’s forum who, as usual, helped me : Chilly Willy (6buttons asm routine), Hardwareman and others on the asm tricks…

I will release soon a full article on how I did it so it will help anyone wanting to do the same on another game.

Megadrive | Posted by KanedaFr

AnimLib -v3, with behavior

November 25th, 2010
Comments Closed

I finally finished my animated sprite library, with behavior.
Felicia now jumps like a frog using this code

void Felicia_update( struct AnimatedSprite *felicia )
{
        if (felicia->curFrame<2)        return;
        if (felicia->curFrame>6)        return;

        felicia->x++;
        felicia->x %= 320;
}

int main( )
{
        struct AnimatedSprite *animFelicia;

        Anim_Init();
        animFelicia = Anim_New(FELICIA_ANIM, &felicia, 1, 10, 70, PAL1 );
        Anim_LoadPal(animFelicia);
        Anim_SetBehavior(animFelicia, &Felicia_update);

        while(1) { Anim_Update(); }
}

Note this demo is now using the last version of Stef’s GenDevKit

Megadrive | Posted by KanedaFr

AnimLib -v2

November 21st, 2010
Comments Closed

I made a more GDK linked version
Download

I can’t understand how I made the newbie’s mistake to update AFTER vsync and not DURING vsync!

Now working on behavior : each step, anim sprite will call its own update function.
Very handy because you don’t have to handle every anim x/y/properties update on one function.
Of course, not great for EVERY game since you haven’t fine control (like update some sprites every 3 frames, etc…) but I’m pretty sure it would be great for fighting game or end level STG boss!

Megadrive | Posted by KanedaFr

Anim lib for genRes in progress

November 17th, 2010
Comments Closed

I can’t believe it! It’s been so long I code for genny…

Today, I rewrote my anim engine for genRes using GenDevKit… Result is quite good :

Download ROM sample

Megadrive | Posted by KanedaFr