Controlling WowWee's Alive Elvis Part 3 - Animation Scripts

Previously, we dumped the original contents of the Elvis cartridge and constructed a custom cartridge in order to decode the animation script format.  In part one, I presented the theory that was proposed in discussion on the forums.  It turns out that this theory was correct.  I owe a fellow RoboCommunity member, Sevik, a great deal of gratitude for helping me determine test scripts to try out.

First, another look at an animation script from SongNa01.txt:

WowWee Alive Elvis Cartridge Hack

I am showing only the first two frames of this animation, as it is enough to understand how the format works.

Each frame consists of as many as 12 tracks. A frame can contain one, two or any number of tracks, but the max is twelve. This is because there are max twelve motors in the animation script.

Wait a minute! I thought you said there was only 10 motors in the Elvis Bust! I hear you say. There is, but two unused motion capture points remain in the animation scripts. We'll see these in a minute. But, before we discuss the contents of this file, it is important to understand the rate at which these frames are played back. Each frame is played every 200ms, that is, 5 frames per second. Keep this in mind when creating your animations.

Now the actual format (let's grab a line from the hex dump above):

0000 6100 5100 3100

The first 16 bits ($0000) is the Frame number. In the example above you can see that there are 12 $0000 frames and 12 $0100 frames. Remember that the bytes are swapped, so these are actually just frame 0 and frame 1. Also, recall that there doesn't HAVE to be 12 frames. If a motor is not being used, it does not need to be included in the frame.

The second 16 bits ($6100) defines the motor to contol in this track. Again, bytes are swapped. Here is a list of all the motors:

61 - EYES U/D
62 - EYES L/R
63 - L EYELID
64 - R EYELID
65 - (Unkown)
66 - Eyebrows U/D
67 - (Unknown)
68 - Lip U/D
69 - Jaw U/D
6A - Head Tilt U/D
6B - Head Rotate L/R
6C - Head Tilt L/R

The third 16 bits ($5100) is the position that we want the motor to go to. Valid ranges are $4100 to $6100. I suspect there are realistic limits on some of the motors and this is being worked on right now, but know that $4100 is extreme Left or Up and that $6100 is extreme Right or Down. There are 32 possible positions available here, but again, not all motors appear to support this resolution.

The final 16 bits ($3100) is the speed or interval that you want the motor to reach the position. Valid range is $3000 to $3800; $3000 being the slowest and $3800, the fastest. 9 Possible speeds.

Using this information, it is possible to build a custom animation script and place it on the cartridge for playback. Obviously software needs to be written to generate decent scripts, but you can build them in a hex editor if you have the patience. I am looking at options and looking for help to build an application for animation scripting. My OS programming skills are nearly non-existant and would definitely appreciate some help with this.

Let's review some things and talk about using this information that we have learned.

First of all, there are some limitations to this method. All of the autonomous and startup routines are stored in a flash chip on the main board. This means that when Elvis is powered on, he will act and sound like Elvis, no matter what you put on the cartridge. Also, as designed, Elvis will play these routines randomly in between songs or monologues. This is a pretty big limitation and some work is being done to change the files on the main flash to work around this. Right now, it is already possible, but requires some equipment the average hobbyist is unlikely to have. For now, it is enough to just write a working and attractive animation script. So there will be lots to play with just with the cartridge. The format of the animations and audio on the main flash are the same as on the cartridge. No filenames, however there is an index. Not everything is known about the main flash contents yet, so it is premature to talk about modifying it.

Another limitation is that you have three modes of operation. On the remote, you can enter Song mode or monologue mode. You can also play/pause and skip forward and back among the files in either mode. All of the routines play in order, so mono01.* will be the first routine to play in monologue mode. Pressing NEXT will jump to mono02.* and so forth. In song mode, there are two modes, actually. One is full songs with Elvis vocals, and the other is without his vocals. You can enter the first mode simply by pressing the mode button. To get to the second mode, you press VOICE while in song mode.  Each sub-mode has its own audio and animations associated with it. This gives you a total of 3 "modes" that you can fill up with as many as 99 routines for each mode. This is based on the two digit number in the filenames.

Again, the files for the different modes are:

Mono##.dat and Mono##.txt

Song##.dat and Song##.txt

CoSong##.dat and CoSong##.txt

SongNa##.dat and SongNa##.txt

Where ## is a double digit number. SongNa## files will play in either Song or Karaoke mode. I believe they can be excluded entirely. I will test this and update the article with my findings. I have been using monologue mode exclusively for my tests so far.

One last tip: When making your animations, include some silence at the end of each animation to set Elvis back to a normal position. This should also give you enough time to hit next before Elvis reverts to one of his random routines. If there is a limit to the length of an animation, it would theoretically be FFFE (65535) since the FrameID is 16 bits and FFFF marks an end of file in some cases. Practically, I have not discovered a limit yet. The songs are about a minute each, but the monologues are much shorter.

Comments

mssnarnd's picture

Dear RetroPlayer,

Happy Holidays to you and your family!

I came across your postings last night as I feverishly searched for a way to buy a Wow Wee Alive Elvis monologue / song cartridge.

I bought the family the Wow Wee Alive Elvis for Christmas from eToys . . . and imagine our disappointment yesterday when we opened the box - and no cartridge was included! The documentation inside the box said I needed to purchase a cartridge separately. Okay, fine, my oversight. So, last night after the kids were asleep, I started my search. Began with eBay (no luck) - then moved to general searches on Google and Yahoo (that's how I found you). I can't find (just the) cartridges anywhere! They aren't even for sale on the Wow Wee site.

I wrote to eToys with a complaint; but, I'm not hopeful they'll be willing to help me.

I can tell you are very tech savvy (which I am not - I'd love to be able to do some of the alterations to the cartridges you write about). I am completely willing to pay you - I'm just hoping you can somehow "make" a cartridge for me?? Otherwise, the Elvis really doesn't do much . . . and I'll probably end up having to ship back on my own dime. Would much rather send you some money for a cartridge.

Please let me know if you're willing! :-)

Thank you for your time and consideration.

Best,

Amy Messner

duxrock@msn.com

RetroPlayer's picture

Amy,

That really sucks. You used to be able to buy the replacement cartridge from the Wowwee store: http://www.esend.com/WowWee/ for $20, but I don't see it there anymore. You might be able to call wowwee and see if they can either send you one or sell you one.

Just to be sure, though, the cartridge is not actually inside the box, but on the outside, taped to the top of the box. Make sure you didn't miss it.

If I made you a cartridge, I could not put the original files on it. I might have a spare one (or someone else hacking theirs) that I could maybe sell you cheap. I should have two more carts lying around somewhere.

mssnarnd's picture

Thank you so much for the quick reply!

My poor husband - I immediately sent him out to inspect the box yesterday when we discovered it wasn't included. And we had all the original boxes . . . so, didn't see it - even on the top :-(

I wonder if it came off in eToys warehouse - or are they pretty well secured??

I'm interested to see what eToys suggests. The face / skin on my Elvis is pretty good - so, I'd hate to send this one back (you know how they all come from the same mold - but, some just look better than others?). So far, no word from eToys but I'm not surprised.

I'll call Wow Wee on Monday - let them settle down from the holidays. You'd think they'd have one lying around there somewhere . . . but, who knows.

Is there some way I can post to the general "Community" to see if anyone has one to sell? I couldn't believe there wasn't one on eBay - this is about the only item in over 10 years (since joining eBay)that I haven't been able to find on that site!

I'll regroup with you on Monday after I talk to Wow Wee (and hopefully hear from eToys). I'm happy to buy a non-original from you . . . at least he would do *something* ;-)

Thanks again,

Amy

mssnarnd's picture

Actually just wrote to WOW WEE via their "Contact Us" web form. Funny, they have a pre-populated drop-down menu for "missing cartridge" when you select the Elvis Alive. A problem that may be occuring often???

Hopefully, they can help me. Their auto-reply says 2-5 business days.

I'll let you know how it goes down. I was worried they may be out of business from another post I read!

Best,

Amy

Coldblackice's picture

Fantastic articles, thanks Retro!

Question -- would it be possible to interface a "networked" drive via this method? In other words, would it be possible to link up Elvis through his card port to a PC drive (USB, virtual, etc) via maybe a serial or USB connection?

That way, routines could be added/changed "live", provided Elvis doesn't cache the card on bootup alone (can't imagine it would cache the entire card, or even could at once).

What do you think?

METELKA's picture

HELLO, HERE IS ELVIS FAN!
I HAVE THE SAME PROBLEM AS ANY DEZEMBER 26, THE 2008th.
MY ELVIS HAS NOT CARTRIDGE. AND IT IS NOT NOWHERE TO PURCHASE. NOWHERE.
MY DAUGHTER WANTS TO SING WITH ELVIS!
BUY LIKE!!
PLEASE ANSWER.
KAREL KESTNER
CZECH REPUBLIC

METELKA's picture

HELLO, HERE IS ELVIS FAN!
I HAVE THE SAME PROBLEM AS ANY DEZEMBER 26, THE 2008th.
MY ELVIS HAS NOT CARTRIDGE. AND IT IS NOT NOWHERE TO PURCHASE. NOWHERE.
MY DAUGHTER WANTS TO SING WITH ELVIS!
BUY LIKE!!
PLEASE ANSWER.
KAREL KESTNER
CZECH REPUBLIC

WarPig's picture

Was anything ever written to make custom animation scripts, or does it need to be done "manually"?

I'm looking to turn an Elvis into another character; as such I'll be needing to change his voice (read somewhere that a regular soundfile, renamed, can be used) and the way he moves.

Considering how technology has advanced in the few years since this was written, perhaps someone could re-visit this topic? I have neither the knowledge nor skill to do what you've done here.

Thanks!

RetroPlayer's picture

I wrote a program to do the animations but it was never finished (though it does successfully create animations.) I am not 100% sure that I even have it in a redistributable form anymore, to be honest.

It has been a long time since I have worked on the Elvis, but if/when I go back to it, I am planning to just use standard servo guts on the motors. The only motors that will not be compatible with that are the neck motors because they use switches and optical encoders instead of potentiometers like a servo. A standard 2 DC motor controller would work for those.

Really, this is the only way to completely change the character of this head without doing custom firmware, replacing the controller, or building the hijack method described by Elvvis here in the forums. I abandoned the animator program for this reason.

RetroPlayer's picture

I have considered making cartriges that accept xD cards for sale (I already have all the artwork done and molds made of the enclosure), but due to the fact that the head can rarely be found anymore, I am not sure it would be worth the cost to do it. I cannot simply build replacement cartridges because I cannot put the original files on them for copyright reasons.

WarPig's picture

I hear ya! I was lucky enough to find on on eBay (with cartridge). I have a brand-new one that I'm saving - this one will be my guinea pig.:)

I may go with the Elvvis hack, using an Arduino; it will depend on my (limited) skills. I can follow instructions fine - it's modifying/customizing that I suck at.