Help - Search - Members - Calendar
Full Version: Mxm Wip Releases
Scenyx Entertainment Community > Xbox1 Forums > Dashboard Forums > Official MediaXMenu (MXM) Forum > MXM WIP Beta forum
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
flattspott
My apollogies, I meant SRC as in MXM source.

And POW as in Power is I suspect.
BenJeremy
Well, looking at the code, it shouldn't be too hard to add it into ActionScript.

Keep in mind, I reserved '#' as the precursor to numeric functions - I'll figure out support for that and variables.

I am also considering adding "DECLARE" to set variables to be numeric or string based, to hopefully speed things up. If the expressions work out, I'll look into revamping the variable system to handle multiple (simple) types (probably int, float and string)
BenJeremy
OK, geniusalz, don't mess with it anymore... I'm incorporating it into ActionScript, as stated by the readme.

Thanks for the framework. I'm adding # as the function precursor, as well as variable and "specials" support. beerchug.gif

When I'm done, I'll update the WIP and you can take a gander at the changes I've made. wink.gif

flattspott


Ok BJ how about these?

SetFunc <Variable> ImageHeight <ImageFile>
SetFunc <Variable> ImageWidth <ImageFile>
geniusalz
QUOTE (BenJeremy @ Jun 8 2004, 11:59 AM)
OK, geniusalz, don't mess with it anymore... I'm incorporating it into ActionScript, as stated by the readme.

Thanks for the framework. I'm adding # as the function precursor, as well as variable and "specials" support.  beerchug.gif

When I'm done, I'll update the WIP and you can take a gander at the changes I've made. wink.gif

Well, I thought all variables/specials could be replaced with values before passing the string onto the calculator, so it wouldn't need any changes to the code. But if it's easier the other way, then it's ok.

Edit:
Thinking about it... it will need support for the following formats (possibly more):

SET var1 1
SET var2 (%var1%+1)
SET var(%var1%+2) 3
// this is where the syntax gets a little confusing. The brackets can be done a number of ways. And the %% signs could be {}
SET var4 (%var(%var1%+1)%+2)

Result being, var1 = 1, var2 = 2, and so on
BenJeremy
Nah.... for expressions, you use the variables straight.... no % conversions happen.

I've already coded most of it up, and added a virtual interface for grabbing specials and variables from the ActionScript object, via a passed in pointer to the evaluation routine.


Today was a bit hectic, so expect an update maybe thursday with expressions. wink.gif
geniusalz
But what about eample #4 from the previous post?

SET var4 (%var(%var1%+1)%+2)

Without % signs becomes:

SET var4 (var(var1+1)+2)

Which turns out to be

SET var4 (var2+2)

So won't removing % signs complicate the parser? i.e. "var" cannot go on the operands stack, and its value cannot be resolved, until the whole variable name is calculated, which is "var2".

Edit: I was thinking it could be handled this way (using {} , not % signs):
The calculator throws anything it finds between curly brackets back at the actionscript object (GetEnvValue, I think), and that function would throw anything it finds between round brackets at the calculator. This way, recursive situations like the one above could be handled.
BenJeremy
Yes, this becomes:

SET var4 (var{(var1+1)}+2)

I was thinking that I'd evaluate any thing starting with ( as an expression, since I can easily parse to the matching parens. I should be able to fit in the expression evaluation when determine the "true" variable name. The Parens are important, because they, in effect, force numeric evaluation. If var1 was merely a non-numeric string (which is also quite legal in ActionScript), the above evaluates to 1 - but this is also legal:

SET varX 20
SET var1 X
SET var4 (var{var1}+2)

Catch my drift here? This is the nature of the "dynamic" variable naming. It's the thing that's hosed up my ability to optomise the parser, since I can't break this capability without breaking a lot of scripts.
geniusalz
Another thought on dynamic variable naming is the ability to use makeshift pointers:

SET var1 test
SET ptr1 var1

SET somevar %{ptr1}%

Not really relevent to the discussion here, but I wanted to throw it in anyway.
BenJeremy
QUOTE (geniusalz @ Jun 9 2004, 01:03 PM)
Another thought on dynamic variable naming is the ability to use makeshift pointers: 

SET var1 test
SET ptr1 var1

SET somevar %{ptr1}%

Not really relevent to the discussion here, but I wanted to throw it in anyway.

Exactly... I'm even working on a way to incorporate XML pointers.

BTW: While the expression stuff is based on floating point (double), my conversion to a string value will check to see if floor(x) == x, in which case, it's an integer, and it will leave off any fractional.

I did some more work on it during very short breaks... had to put in 12 hours today, though.... I would have it done, but I'm rethinking some of the variable handling yet.

When I'm done, it should be possible to do the following:

MsgBox "The answer is %(2+2)%"

or

MsgBox "The answer to %num% + %num% is %(num+num)%"

biggrin.gif




flattspott
Sounds cool enough smile.gif
geniusalz
Any updates? unsure.gif
BenJeremy
Hopefully today.... this week just turned out too hectic, but the kids just got picked up, and the Wife is out for most of the day.
flattspott
No you can put out out a new WIP. I'm gonna be gonne for a week in San Francisco. sad.gif

Okay maybe just one. I don't want to have to play catch up with all you guys. tongue.gif
BenJeremy
OK, I'm almost ready to do the release... give me a few to get it together.

Just tried this:

MsgBox "Expressions: I=%(I-1)% (%{Something}{(I-1)}%)"

and it evaluated correctly from my test script.

biggrin.gif

Took a little work, though... the changes I had to propogate through my variable handling code made it feel like I was working without a net. blink.gif

You'll notice that the expressions are used where variable names are used. I hope it didn't break anything, but some of the test seem to run OK.

P.S. flattspott - could you make absolutely sure the latest "Concentration" is posted? I keep forgetting my version takes too long counting up the final score when I'm testing. Thanks!
BenJeremy
OK, WIP Build 1214 is now up.

This one also has plugin support for "popup" type modules. It doesn't include some of the fancier things I have planned, but it's a start.

Example (in the binaries archive):

CODE

<XSM>
<Title>XSM Test</Title>
<Description>This is a test of the XSM functionality</Description>
<GUID>{65BD716E-DC1A-4d07-9FCD-0C2FFE3B78FE}</GUID>
<Class>Popup</Class>
<Category>Test Procedure</Category>
<script>MsgBox "This was a Plug-n-Play test!"</Script>
</XSM>


Give it a whirl, and let me know any problems.
flattspott
Cool. Does the interageted XML script stuff work in the XSM's yet? Or is that just for Dilaogs XML's?

QUOTE
P.S. flattspott - could you make absolutely sure the latest "Concentration" is posted? I keep forgetting my version takes too long counting up the final score when I'm testing. Thanks!


I'll try to get it up real soon. Mind you though, I haven't really worked on all that much since I began the filemanager. Icons aren't bigger yet.
BenJeremy
QUOTE (flattspott @ Jun 12 2004, 09:22 PM)
Cool. Does the interageted XML script stuff work in the XSM's yet? Or is that just for Dilaogs XML's?




The XML stuff isn't integrated in yet.... soon, though. It's a lot of work to handle the "installation" process, and I want to get that working. I was sidetracked a bit on the expression stuff. I still need to add XML spport to that, too.... wink.gif



flattspott
Alright then I'll just have to wait I suppose. Downloaded the new WIP now, then I'm gonna test my Concentration version, make sure it works then I'll post it.
flattspott
I can't seem to get the XSM to load or even where to find it.
BenJeremy
You make a "Plugins" directory under MXM's execution directory. Put the XSM in there, and it will "install" the file to a repository directory in MXM's User folder (UDATA).

If you have Action Menu's turned on in your configuration, it should show up in that menu.
flattspott
Duh, I figure it just went in the root of MXM since that's the way it came. laugh.gif

PS, I just checked the concentration I have and now it's all jacked up. Probably something I did. It takes so long for me and it goes negative now too for some odd reason. hpf. Wonder what I did this time.
BenJeremy
QUOTE (flattspott @ Jun 12 2004, 09:54 PM)
Duh, I figure it just went in the root of MXM since that's the way it came. laugh.gif

PS, I just checked the concentration I have and now it's all jacked up. Probably something I did. It takes so long for me and it goes negative now too for some odd reason. hpf. Wonder what I did this time.

It's always done that for me.... I copied the one in the Concentration Thread
flattspott
first time for me
flattspott
Well it still didn't show up. I have the Action Menu turned on, Reset the menu cache too. The files did get installed to E:\UDATA though

: EDIT:

I just reset the cache again and now it works.
BenJeremy
Well, the first time you run it, it installs it... then the SECOND time you run it, it's installed, so it loads the info in.

The Plugins won't be tied to the cached menu. Action Menus are built dynamically each time. wink.gif

koldfuzion
QUOTE (BenJeremy @ Jun 13 2004, 03:05 AM)
Well, the first time you run it, it installs it... then the SECOND time you run it, it's installed, so it loads the info in.

The Plugins won't be tied to the cached menu. Action Menus are built dynamically each time. wink.gif

whats the hit on load times? probably not real bad right now if only a couple plugins exist.. but whats going to happen when 20+ exists?
BenJeremy
QUOTE (koldfuzion @ Jun 12 2004, 10:22 PM)
whats the hit on load times? probably not real bad right now if only a couple plugins exist.. but whats going to happen when 20+ exists?

Well, it's loading the information from the repository index, not loading from the file each time.

Here's the repository index so far:

CODE

<xsmindex>
<xsm active="true" guid="{65BD716E-DC1A-4d07-9FCD-0C2FFE3B78FE}">
<class>1</class>
<format>1</format>
<category>Test Procedure</category>
<title>XSM Test</title>
<modulepath>U:\XSM\XSM65BD716E-DC1A-4d07-9FCD-0C2FFE3B78FE</modulepath>
<xsmfile>XSMTest.XSM</xsmfile>
</xsm>
<xsm active="true" guid="{65BD716F-DC1A-4d07-9FCD-0C2FFE3B78FE}">
<class>1</class>
<format>2</format>
<category>Test Procedure</category>
<title>ZSM Test</title>
<modulepath>U:\XSM\XSM65BD716F-DC1A-4d07-9FCD-0C2FFE3B78FE</modulepath>
<xsmfile>ZSMTest.xsm</xsmfile>
</xsm>
</xsmindex>


So it contains the "important stuff" for setting things up. For items that need to be loaded, they will be loaded on the first usage.

I'll be getting the XML situation straightened out soon, as well as implimenting context XSM support.
koldfuzion
cool. im still trying to grasp all of it, but i think im figuring it all out...although a bit slow.

I did however find a bug in the latest WIP. i cant figure out how to type it in the forums..so i just posted a screenshot of it.

Bug screenshots here

flattspott

Nice one koldfuzion biggrin.gif
chilin_dude
QUOTE (koldfuzion @ Jun 13 2004, 04:25 AM)
cool. im still trying to grasp all of it, but i think im figuring it all out...although a bit slow.

I did however find a bug in the latest WIP. i cant figure out how to type it in the forums..so i just posted a screenshot of it.

Bug screenshots here

FUCK!!! That is one very big bug, you know you might even have to post about it on X-S main page man beerchug.gif
BenJeremy
WOW.... that's a sweet "bug" laugh.gif

geniusalz
QUOTE (BenJeremy @ Jun 12 2004, 10:05 PM)
Well, the first time you run it, it installs it... then the SECOND time you run it, it's installed, so it loads the info in.

The Plugins won't be tied to the cached menu. Action Menus are built dynamically each time. wink.gif

Is that each time you boot or each time the 'action' menu is entered?

BTW, sweet bug. laugh.gif
BenJeremy
Yes, the "Action Menu" is built every time you boot.

I may add a command to force plugin installation, too, so modules can be downloaded directly into the plugins directory and then "installed" so they are available on the next reboot (if not "live")
geniusalz
Yeah, I hate reboots, so building through a menu item called "search for plugins" or automatically while accessing the action menu will be great.
BenJeremy
Well, I will be looking at ways of making the menu far more "dynamic" so items can be added.
koldfuzion
i know you dont have it all ironed out yet.. just a question regarding the white paper and script categorization.

Categories: (red is not an included category in the white paper.. just my opinion..more on this further down).
1. Utilities (xml) - File Managers, skin downloaders, newsfeed switchers etc.
2. Overrides (xml) - Replace default system functions. Formatting hard drive, Menu Password script, etc.
3. Context (xml) - Selectable only in certain areas. When a game, skin, script is selected in the menu.
3. Games (xml) - in-dash games available.

Classes:
1. Event (xml) - Triggered by a specific event. See below for events available.
2. Context (xml) - Acts on selected menu item.
3. Popup (xml) - These are "standalone" scripts, callable from system menu or regular menu.
4. Skin-specific - default class of scripts included in a skin definition file. Used to perform actions on render targets to be used by the skin.
5. System (xml) - Any misc. scripts that might be called by other scripts.


question I have is, does there need to be a Context category AND class?

on the Game category. I think this might be great for when you get around to putting in the "stop/unload videos" switch. unloading videos would free up more resources and maybe improve execution of more complex game scripts. I dunno, just a thought.


here is aSample XML Download file for the zsm's. Trying to figure out the internet side of this from the result back..before i get too far into it. There are more sample xml's on the site , the (XML) links. Anyone have a beef with the setup? if not.. this will be the format i use. (will put the script version in the xml also.)

I also notice the repository has the GUID in all caps... will this be case sensitive? if so i will update the guid make on mediaxmenu.com and be sure to force it in the code on the website also.
geniusalz
QUOTE
on the Game category. I think this might be great for when you get around to putting in the "stop/unload videos" switch. unloading videos would free up more resources and maybe improve execution of more complex game scripts. I dunno, just a thought.


"SETSTATE Blank" does that already, I think. It also provides a nice fade in and out.
BenJeremy
OK, that's a bit to absorb.... the categories was intended more for a descriptive element, rather than an operational element.

The idea was that once a module is "installed" into it's repository path, the user could enable/disable using a dialog all modules in the system. You may wish to filter the selections by category, though.

So the class is more operational - it tells MXM where the script will operate out from. This will be a specific and very defined set of values, whereas with categories, the module designer can declare their own categories... as many as they want (though that would defeat the purpose as a filter, though, if there are too many categories)


As for GUIDs, I'll have to make sure I lower case them when setting them in the repository. They shouldn't be case sensitive, but to be honest, they are merely unique strings... I chose the GUID format because there are ready to use generators available, even on the net. I don't make an effort to encode/decode them in any way.
koldfuzion
gotcha, make up our own way to list the scripts on the website because it has nothing to do with the how mxm handles them(depends on the author and script settings) nor does specifying the class on the website provide any benefit.

So instead of all the mumbo-jumbo on the website now.. we can just have utilites, games, and pr0n downloaders wink.gif I was looking for categories and used yours so that a "complete" xml file doesnt have to be downloaded and only the xml for the interested category would be needed.

QUOTE
They shouldn't be case sensitive, but to be honest, they are merely unique strings...


doesnt case also change the result of a string compare? if not case-insensitive.

My point was... what if a script exists in the mxm repository and a "check for update" script is ran..

an update was not found because the author used a lower-case guid the first time..and an uppercase guid the second time.

or the old script couldnt be removed/replaced with the new one because of the case difference and two would exist.

thats why i wanted to know if i need to force the guid to uppercase on the site...and that authors should use an uppercase guid in their scripts.

edit: if im off my rocker as i normally am, just tell me to shut up and ill get back to work smile.gif
BenJeremy
Well, that's why I'll make the GUID lower case (when storing to the repository or doing searches), so internally, all my internal searches will be case insensitive.

BenJeremy
OK.... tomorrow or Tuesday, I'll update the WIP.

I've added a couple of nice things (have to test them):

1. XML handle "xsmnode" contains the XML from your XSM module, if it exists.

2. GUIDs forced to lower case.

3. <Subscripts> node, containing <script name="somename"> elements with scripts you can call from the main script of the xsm module. They get the xsmmodule XML handle (from which you can build dialogs, of course and use other data).

I'll try and add loading into the context menu before I release the next WIP.

P.S. The Pistons just went up 3-1 agains the Lakers laugh.gif I doubt they'll get respect until they put the Championship away in Game 5.

BenJeremy
OK, the above-mentioned WIP is now posted.... 1217.

No context support yet. Turned out to be more than a little bit of coding.

Still, the SubScript support and "xsmnode" access to the XML should allow you guys to start kicking ass on it. wink.gif

CODE

<XSM>
<Title>XSM Test</Title>
<Description>This is a test of the XSM functionality</Description>
<GUID>{65BD716E-DC1A-4d07-9FCD-0C2FFE3B78FE}</GUID>
<Class>Popup</Class>
<Category>Test Procedure</Category>
<script>MsgBox "This was a Plug-n-Play test!"
CallScript TestSub
</Script>
<SubScripts>
<script name="TestSub">
MsgBox "SubScript Test Succeeded!"
</Script>
</SubScripts>
<Files>
<File optional="true">Somefile.jpg</File>
<File >Required.jpg</File>
</Files>
</XSM>


In the above example, I added the two files. In a zipped module (ZSM), you can include these files, and it will copy the files into the repository, too... by default, files are required; specify optional="true" as an attribute if you don't NEED to have the file.

I changed things a little bit from the spec, some might go back in, but having xsmnode gives you complete access to the XML you need.
geniusalz
Sweet! pop.gif

But now I'll have to polish up tetris YET again mad.gif
BenJeremy
QUOTE (geniusalz @ Jun 14 2004, 08:25 PM)
Sweet! pop.gif

But now I'll have to polish up tetris YET again mad.gif

You should be able to put everything but the background(s) into a single file now.

Maybe package several backgrounds in a ZSM file and give it a whirl....
BenJeremy
Anybody build up a serious module or two yet? I'm curious about feedback...
geniusalz
Still working on the gamesave manager... Any news about unicode? I managed to write a little script that converts unicode to normal text, but it runs quite slow.

Edit: Forgot to add that I also added a sort, but that makes the load even longer. I'm still thinking of an efficient way of sorting it.

Edit again: *vent* ZSM'ed up minesweeper, then found out I have an older ver. Downloading it on crappy dialup now. Hopefully it won't disconnect before download is complete.
BenJeremy
QUOTE (geniusalz @ Jun 15 2004, 09:21 PM)
Still working on the gamesave manager... Any news about unicode? I managed to write a little script that converts unicode to normal text, but it runs quite slow.

Edit: Forgot to add that I also added a sort, but that makes the load even longer. I'm still thinking of an efficient way of sorting it.

I'll bump up the priority on the Unicode file reading/writing.
geniusalz
I tried out minesweeper with the plugin stuff. It shows up in the action menu, but doesn't do anything when I press A on it. Probably something stupid on my part, but try it anyway.

http://mxm.brokensite.org/Minesweeper.zsm
flattspott
QUOTE
Anybody build up a serious module or two yet? I'm curious about feedback...


Well I'm home again. Gonne test this stufferoo out tomorrow.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.