Hacking devices can/will void your warranty and can turn your expensive consumer electronics into worthless trash if you don't know what you're doing. This blog is for information purposes only, and if you try to hack into your own consumer electronics, you do so at your own risk. The device I'm currently hacking is the Canon SX10 IS camera.

Saturday, February 27, 2010

Cursor, Navigation, Free Memory w/o resetav

Tonight I figured out how to set the graphics of the cursor. According to a system .x file in the common directory, the cursor is 32 x 32 x 2 bit color. So while I was direct drawing on the screen, I told it to use the same memory for the cursor. And it sure did. Color still seems limited to shades of green. But who knows, it may come in handy somewhere.

Also figured out how to navigate through a movie. I found out that the very routine that gives you how much time has elapsed in the movie also gives you the amount of time in the movie. Was able to jump around to the menu, move the menu selection, and activate it. All done through commands, not via the remote. Should be pretty easy to hook up to the remote once I want to, since I've previously figured out how to interact with the remote.

I was very concerned about calling the resetav all of the time. It would take the video bios and audio bios and put the information back in flash memory. Well, that's a problem if you do it too often. yet, it was the only way I could figure out how to recover once I displayed information on the screen. Well, that's no longer a necessity. It is still required if another program has done it, but mine seems to be able to recover from my own now. Can get all of the layers freed up and shut off.

This has all been pushed out to the git repository.

12 comments:

  1. Excellent stuff...

    I just came across this blog, late to the party considering it's been going since 2008. But I read all the posts... really appreciate the dedication.

    Can't wait to get home, backup the drive and start messing about with it, and contribute what I can.

    One thing comes to mind, the new ScreenPlay Director's firmware was released. I didn't get a chance to look at it. Would the player program work on the Pro HD, maybe some of the functionality like Streaming Youtube.

    Once again, thanks for the effort you have put in this.

    ReplyDelete
  2. Hi Joman,
    I'm not aware that exactly device you hacking, but I have something similar, like this:
    http://g-mini.ru/media/uploads/pp_hdr1000d_215x453_jpg_292x600_q85.jpg
    or this:
    http://descr.mpc.ru/descr/99871/i/hdr11l_top-front_asm_w800_asm_400.jpg
    I mean, with 2" lcd screen built-in into device.
    So I just wonder, if you also have such lcd with your device and if you do, how to access to this secondary screen from api?

    ReplyDelete
  3. Shades,
    The ScreenPlay director uses a different chip, it isn't even RealTek. So no, there's absolutely no chance the director's code or firmware will help.

    Once we get the basic open firmware written, the extended functionality can be added afterwards. youtube...that may be a little difficult without having flash player capabilities. But all of that can be explored in the future.

    ReplyDelete
  4. voldemar_montle,

    The ScreenPlay Pro HD does not have an LCD built into it. However, you should take a look at the Ellion source code. There are a few mentions of a scalable version of the video, and when I first saw those I figured it was probably an LCD screen. The 351 doesn't have such a screen, but the source code has conditional compiles for it.

    ReplyDelete
  5. Hi,i am a beginner in linux, but doesn't Totem GStreamer play youtube videos without using flashplayer?

    ReplyDelete
  6. thanks for the info..
    I'm asking because my vendor said it is impossible due to hardware limitations to output Russian symbols on those LCD, and for me it seems strange, as its definitely could output graphical colorful images and English text.
    Seems they just kinda foolish me..
    Of course it is not a big problem, just interesting, are these big screen and small LCD really suited by different ways, or it's really same story?

    How does the text worked out through this "SDK" API? Did you tried to output any text? Looks like there should be some locale and fonts support, right?

    ReplyDelete
  7. You can load fonts and output. I'm not going to try to explain in this comment, just look at main2.cpp in the HelloWorld-JC source and you'll see how.

    The LCD is probably just another surface area you can display. So as long as there is a font that is supported, I believe the LCD could display russian.

    ReplyDelete
  8. Dante - I responded to your comment about the totem gstreamer in the wiki forum: http://screenplayprohd.wikia.com/index.php?title=Forum:ScreenPlay_Pro_Director_Released

    ReplyDelete
  9. Concerning youtube, this maybe could help a bit: http://www.youtube.com/html5 - the only thing you need to implement is basic html5 support, and h.264 is supported by RT chip for sure.

    Joman, sorry, I'm not too much familiar with git, could please point me out how to get HelloWorld sources? I downloaded opensphd by issuing "git clone git://opensphd.git.sourceforge.net/gitroot/opensphd/opensphd" but couldn't find HelloWorld there ;)
    sorry for taking your time and as said thank you for your dedication!

    ReplyDelete
  10. h.264 is not, nor probably ever be supported by the realtek 1262/1282 chip. Works great on the 1073/1283 chips, but the ScreenPlay Pro uses the older one.

    There are two git repositories for the opensphd project (soon to be 3). http://opensphd.git.sourceforge.net/git/gitweb-index.cgi Sourceforge used to only support one repository. When they added the capability to do more than one, they made the repository use the same name as the project. So the linux environment ended up being opensphd repository, and there's a separate one for helloworld.

    To git the HelloWorld repository, use:

    git clone git://opensphd.git.sourceforge.net/gitroot/opensphd/helloworld

    you do make at the top level and it will make all of the subprojects and libraries.

    To test HelloWorldJC, you'll need to copy the arial.ttf font and the PNG and BMP files out there. For the media, it is currently hardcoded to...uh, right now I think it's bolt.iso because that's what I happened to have in my media directory. It assumes it can get to it through /tmp/hddmedia. main2.cpp is where the main control is located, so you should be able to find it all there.

    ReplyDelete
  11. @ Joman - some nice info going on over here: http://emtec.mhdworld.com/modules/newbb/viewtopic.php?post_id=23240#forumpost23240

    Also seperately we have been busy @ xt chat and have pretty much come up with the structure of the thing.

    Playing with the scripting via rss has opened our eyes to the techniques that DVDPlayer uses to pass to the various APs.

    By the way - more APs work than you thought - not just setup...

    The arrays were defined differently though, check the /usr/local/bin/scripts/ dir on an xt 2.2 distro and the makefile & rssguide for some details on the functional AP names. You can call VideoPlayback fine but just need to queue an entry in the db first,

    Info on this is available in the main.cpp contained in the rss SDK folder on the xtreamer gpl release from ages back.

    ReplyDelete
  12. Well, the XTreamer looks to be pretty functional with that ability to add the custom menus through RSS. That's great. Unfortunately for me and my fellow ScreenPlay Pro owners, there isn't that capability on our DvdPlayer, the XTreamer DvdPlayer program isn't compatible, and XTreamer hasn't published theirs. :( So i trek on, cracking the secrets of the chip so we too can have a movie jukebox type layout.

    ReplyDelete