viliv p1 - crouching tiger … hidden API
April 29th, 2006 by Scott JanousekSo I’ve been playing with the viliv p1 for a few days.
I won’t do the formal product review of all it’s features just yet as there are a couple of things I want to sort out first.
However, I did want to post some of the benchmark numbers and talk about the Flash Lite 1.1 implementation for the p1.
First off, I ran the capabilities .swf on it and got some numbers. Here they are:
| BenchMark Results: | |
| Frame Rate: | 14.28571428 |
| 1000+ loop | 0.28 seconds |
| Random # | 0 |
| SubString | 0.2 |
| Prime | 2.06 |
| Switch | 0 |
| GFX Results (estimates): | |
| Vector Animation x5 loop | 4700 ms |
| Bitmap Animation X5 loop | 3420 ms |
| Vector animation % of IDE speed: | 70.2 |
| Bitmap animation % of IDE speed: | 96.35568513 |
What does all this mean? Check out the capabilities matrix to compare results. Seems like it has a little bit of a punch to it. For some content you might be able to target 20 fps …
The device itself is comparable to the iriver u10 in terms of FL, except that it has a 480 x 272 sized display and it’s own MMI. It also appears to have no access to the softkeys (more of that later). It looks to have a much larger color depth as well, compared to the u10.
Obviously other than Flash Lite specifics, the viliv has a lot more powerful features (but we won’t get into that in this post).
As far as the FL capabilities … they are below… some of the functionality can be done through a custom API (MMI). However, most of it is either not documented or documented in Korean. Unfortunately, more of the former, than the later! The Korean CDK can be found here (I posted about it a while back).
It’s important to remember that there is a custom API undernearth, so some of this stuff may be possible, just not readily documented. For instance, the date and time … all of this can be done, just not through the standard syntax.
Check out my other post for more information about that … and if you’re wondering if there is any of the Flash 4 syntax that isn’t supported, well, not that I have found yet … besides the fscommand2 commands you wouldn’t expect to work on a standalone PMP.
| Capabilities: | |
| getVolumeLevel | -1 |
| -1 | |
| CompoundSound | 1 |
| StreamSound | 1 |
| MFi | 0 |
| MIDI | 0 |
| SMAF | 0 |
| n/a | |
| MMS | n/a |
| SMS | n/a |
| LoadData | n/a (it does load local files) |
| getDay | -1 |
| getDateWeekDay | -1 |
| getDateYear | -1 |
| getLocaleShortDate | n/a |
| getLocaleLongDate | n/a |
| getLocaleTime | n/a |
| getTimeHours | -1 |
| getTimeMinutes | -1 |
| getTimeSeconds | -1 |
| getTimeZoneOffset | n/a |
| getTimeZoneOffset | n/a |
| $version | 5,3,109,0 |
| FullScreen | -1 (always in that mode like u10) |
| GetBatteryLevel | -1 |
| GetMaxBatteryLevel | -1 |
| GetPowerSource | -1 |
| GetTotalPlayerMemory | -1 |
| GetFreePlayerMemory | -1 |
| GetLanguage | n/a |
| GetDeviceID | n/a |
| GetPlatform | n/a |
| GetDevice | n/a |
| GetSignalLevel | -1 |
| GetMaxSignalLevel | -1 |
| GetNetworkConnectStatus | -1 |
| GetNetworkRequestStatus | -1 |
| GetNetworkStatus | -1 |
| GetNetworkStatus | n/a |
All this info will get posted on the capabilities matrix soon enough.
Again, don’t think that just because the device doesn’t support these commands, that it’s a limited device. Actually, it’s quite zippy.
I created some content and it was very similiar performance to the u10.
Exiting content:
What else? Oh. My initial tests at mapping the softkeys failed … so effectively I wasn’t able to get out of content by default … after some digging and reverse compiling some sample viliv content, I found there is a custom way of unloading a .swf … fscommand2( “Quit” ) never seemed to work for me with setSoftKeys! … from their sample code … apparently, if you label a frame called “event@shoot” and then do a loadMovie(”main”,0) it traps the left softkey on the device as the exit button! Weird! This seems to work, although it is klunky …
And no I haven’t found a way to assign either of the softkeys on the device … not in the docs at all!
There’s actually an MMI command called serviceclose that looked promising to close a .swf, but first attempts to use this have failed. What’s strange is that it works in the cube game … obviously, I am missing something … yet I can’t imagine what as I looked through all the AS …
Keys:
I did find that you have access to the keys 1,3,7, and 9 “keys” … which are diagonals on the scroll wheel (don’t seem to have access to the other numbers because they correspond to U,D,L,R! … unless I am missing something). I saw a reference to 0 in one the content pieces … but I have been unsuccessful at trapping that “key”!
“MMI”:
What else … I was browsing around the cube.swf game that came with the device … seems it has some custom commands dealing with sound … I pulled these out:
returnV = FSCommand2(”GetVars”, “service”, “cube”, “open”, /:SongNo, “”);
returnV = FSCommand2(”GetVars”, “service”, “cube”, “playtime”, /:SongNo, “”);
returnV = FSCommand2(”GetVars”, “service”, “cube”, “play”, /:SongNo, “”);
returnV = FSCommand2(”GetVars”, “service”, “cube”, “close”, /:SongNo, “”);
returnV = FSCommand2(”GetVars”, “service”, “cube”, “savepoint”, comboNo, point );
returnV = FSCommand2(”GetVars”, “service”, “cube”, “pause”, /:SongNo, “”);
returnV = FSCommand2(”GetVars”, “service”, “serviceclose”, “”);
These aren’t in the docs anywhere … so maybe they are custom to the cube game? Maybe not … Probably a lot more hidden API like this that they haven’t exposed in the docs. More expertimentation is needed. serviceclose also looked like it might be used to exist out of the .swf, but my attempts failed, so I resorted back to the Event@shoot method.
Changing the background:
It’s easy! \system\background\ on the device contains all the .swf’s just replace or add one!
Misc:
I’ve just been hacking … just like Justin did for the u10 … I really wish there was a detailed API guide or CDK … one is needed.
Also, why is that they don’t start putting WiFi or bluetooth into these devices already?
It’s probably a power issue rather than footprint issue or price point, but it’s really tedious developing or pushing content without wireless.
Hopefully PMP’s start to come with standard bluetooth. I’ve heard Apple may introduce this soon …
A physical cable just doesn’t cut it these days.



May 1st, 2006 at 5:21 am
Hi Scott,
have you found any way to save data like the u10?
May 3rd, 2006 at 4:00 pm
Great review Scott.
To address your comment about the need for wireless, I agree with you, but you have to recognize why they don’t have the wireless interface. If you ask me, it’s because the majority of people buying this device are going to be uploading movies and music in gigabytes and gigabytes. One of the things that was instantly amazing about the ipod was how fast it could update after you encoded a dozen or so CD’s (thank you Firewire). It would be excruciating to do this wirelessly, even at 802.11g data rates.
To those few of us (at least for now) developing and loading FL content on these at about 100k each, yeah it would be nice to have bluetooth. But even if it’s super cheap to do so, I doubt they will untill it addresses a specific functionality need for the device. So much for convenience.
May 3rd, 2006 at 6:14 pm
Ah. That’s a good point Rob.
Personally, I don’t fill up the whole entire hd full of movies on one go. I prefer to load only what I need … but I suppose heavy video users would use it more as a library … filling and disposing of GB’s of video at a time. I guess I’m used to my u10 where I could only have a gig worth of video at a time. I should have been thinking more about when I had my ipod filled with my mp3 collection (I’ve since just been scaling down using the shuffle and u10 for only partial playlists).
I think I remember hearing that future ipods would be losing the firewire and going USB … but I’ve also heard that ipods would have bluetooth, but perhaps that is for wireless headphones and not so much transfer of music …
May 5th, 2006 at 11:12 am
[...] Scott has tested viliv p1: http://www.myviliv.com/eng/new/product/p1_01.html …and has interesting benchmark numbers: http://www.scottjanousek.com/blog/2006/04/29/viliv-p1-crouching-tiger-hidden-api/ [...]