Guippy

Howdy guys, I was wondering if anybody could get me some advice on common differences between HD DVDs on the XBox and the Toshiba players. I ask because I'm working on a few that at this point play fine on the XBox, but the Toshiba players give me errors. The errors I'm getting are: 4094C00C (script failure) and 4094C00D (markup failure). Are there any glaring differences or common errors that would cause me to get these errors on the Toshiba player but not on the XBox


Re: HD DVD Interactivity Authoring Toshiba VS X Box

JasonG

I bet I know what the problem is...check your file extension names for your markup\playlist...they should be

.XML
.XMF

not

.xml
.xmf

Make sure your filename extensions are in CAPS...the xbox will play them fine but the toshiba player will not recognize the filenames without caps and will give C00C errors like you said.





Re: HD DVD Interactivity Authoring Toshiba VS X Box

Amy Dullard - MSFT

The differences between the Toshiba players and Xbox will arise mostly with more advanced, complex functionality - and the differences there should be fairly subtle. Since you are getting markup and script errors, this probably isn't your issue.

On a basic level, as Jason mentioned, the Toshiba players are case sensitive - so if everything is running on the simulator but breaks on the player, that is a good place to look. Running the validator that comes with the Jumpstart kit will catch many (although not all) case issues.

Getting a 4094COOC error is bad - you should be using try-catch blocks to avoid these hard crashes on the players. Please take a look at Peter's blog on conditional compliation (http://blogs.msdn.com/ptorr/archive/2007/06/01/using-conditional-compilation-in-hdi.aspx) for how to include try-catch blocks during development.






Re: HD DVD Interactivity Authoring Toshiba VS X Box

Guippy

Thanks for the tip about the filenames, but that hasn't solved my problem. I've done a few more tests and I keep running across a 4094C00D (markup/other failure) error. I'm using fairly simple markup files for the sake of diagnosing the problem. I am getting a few warnings from the validator and I want to know if they could be causing the Toshiba player errors, they are:

WARNING (W072000002): Attribute defaultLanguage is missing
WARNING (W003000012): Size 599 expected
WARNING (W052000001): Variable Pointer is not defined
WARNING (W003000002): File is not being used: Thumbs.db
WARNING (W003000002): File is not being used: Transparent.png
WARNING (W003000002): File is not being used: bk.png
WARNING (W003000010): The extension is unsupported: Thumbs.db





Re: HD DVD Interactivity Authoring Toshiba VS X Box

Andy Pennell MSFT

Which specific Toshiba player The -2 series are more similar to the Xbox when it comes to script and markup. The -1 series are an older codebase.




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Amy Dullard - MSFT

You can ignore the files not being used, but DO specify defaultLanguage in your playlist TitleSet, DO use resource sizes in your playlist that are the correct size or bigger, and DON'T use undefined variables in your script.

Have you validated your markup, playlist, and manifest against the schemas (see: http://blogs.msdn.com/amyd/archive/2007/05/07/intellisense-it-s-a-good-thing.aspx)






Re: HD DVD Interactivity Authoring Toshiba VS X Box

Guippy

Thanks for the suggestions, I've fixed all the errors, and am still encountering errors with the Toshiba player and not the XBox. It is one of the -1 series players. I realize that the script is throwing an exception, but it is an exception that both the simulator and the XBox ignore or don't throw. What could cause this player to throw an exception that the XBox won't, or what exceptions will the XBox ignore/handle that the Toshiba player won't




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Andy Pennell MSFT

The TSB -1 players implement a stricter JScript subset, ie the Compact Profile. Xbox has a fuller JScript implementation (v. similar to the PC version with the Simulator), so you might be hitting something there.

One thing to try is global catch blocks, and when you catch the errant script exception, display it on the screen somewhere. (See Peter's recent blog entry about exception handling).






Re: HD DVD Interactivity Authoring Toshiba VS X Box

Guippy

Thanks, thats really important to know. I've been trying to get it to dynamically display the exceptions by using an input tag like this:

<input id="err_display" mode="display" state:value="Debug Display" style:color="rgba(255, 128, 0, 255)" style:fontSize="large" style:backgroundColor="transparent" />

and lines of javascript like this:

document.err_display.state.value="Doing Stuff.";

I believe this should work, but I've tried it in the simulator and can't make it display any dynamic text. I've looked at example form various blogs and MS samples and they all seem to be doing the same thing, of course they work, and I can't figure out what I'm doing wrong. I'd appreciate any insight you guys have to offer. Also, thanks so much for all your help so far.




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Milo Winningham

I think you have to include a style:font attribute that specifies a font, because there's no default font.




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Amy Dullard - MSFT

You need to include a font (the Jumpstart kit comes with OpenType fonts you can use for HDi apps). You can apply style:font="font.ttf" in the input tag or the parent tag (even the body tag). And, if your input or parent div is too small (width and height), font won't be displayed (it doesn't crop, it just doesn't display)




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Guippy

Thanks, I did not know there was no default font. Also, I was wondering if it's possible that the 0x4094C00C Script Error code on the Toshiba player could be caused by a syntax error. Since the Toshiba players have a stricter script subset than the XBox, could it not be compiling some code that the XBox does Are there any common mistakes along these lines that any of you know of




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Guippy

I've looked at the Compact Profile specification and there is one part I don't understand:

An implementation that does not support global eval() or calling Function as a function or constructor
SHALL throw an EvalError exception whenever global eval() (ES3 section 15.1.2.1), Function(p1,
p2, ..., pn, body) (ES3 section 15.3.1.1), or new Function(p1, p2, ..., pn, body) (ES3 section 15.3.2.1) is
called.

Could somebody briefly explain what kind of syntax this would prohibit that would otherwise be valid Maybe an example of what wouldn't work




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Andy Pennell MSFT

For Script, make sure all your .js files end in a blank line, else when they get concatenated together you can "lose" the first line of your files. See Peters blog for examples. On Xbox, we insert a blank line to ensure this problem does not occur.




Re: HD DVD Interactivity Authoring Toshiba VS X Box

Amy Dullard - MSFT

Use of with, eval, substr, or new Function will not work.

If you are getting a c00c error on the Toshiba player, then you have unhandled exceptions. Don't let your exceptions go unhandled. Everything should be in a try-catch. Please read Peter's blog on conditional compilation.

http://blogs.msdn.com/ptorr/archive/2007/06/01/using-conditional-compilation-in-hdi.aspx