flattspott
Jun 8 2004, 03:35 AM
My apollogies, I meant SRC as in MXM source.
And POW as in Power is I suspect.
BenJeremy
Jun 8 2004, 01:21 PM
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
Jun 8 2004, 02:59 PM
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.
When I'm done, I'll update the WIP and you can take a gander at the changes I've made.
flattspott
Jun 8 2004, 07:00 PM
Ok BJ how about these?
SetFunc <Variable> ImageHeight <ImageFile>
SetFunc <Variable> ImageWidth <ImageFile>
geniusalz
Jun 8 2004, 09:56 PM
| 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.
When I'm done, I'll update the WIP and you can take a gander at the changes I've made. |
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
Jun 9 2004, 01:22 AM
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.
geniusalz
Jun 9 2004, 04:31 AM
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
Jun 9 2004, 08:41 AM
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
Jun 9 2004, 04: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.
BenJeremy
Jun 9 2004, 11:27 PM
| 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)%"
flattspott
Jun 9 2004, 11:59 PM
Sounds cool enough
geniusalz
Jun 12 2004, 06:21 AM
Any updates?
BenJeremy
Jun 12 2004, 11:49 AM
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
Jun 12 2004, 02:07 PM
No you can put out out a new WIP. I'm gonna be gonne for a week in San Francisco.
Okay maybe just one. I don't want to have to play catch up with all you guys.
BenJeremy
Jun 12 2004, 11:38 PM
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.

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.
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
Jun 13 2004, 12:11 AM
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
Jun 13 2004, 12:22 AM
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
Jun 13 2004, 12:29 AM
| 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....
flattspott
Jun 13 2004, 12:34 AM
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
Jun 13 2004, 12:47 AM
I can't seem to get the XSM to load or even where to find it.
BenJeremy
Jun 13 2004, 12:52 AM
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
Jun 13 2004, 12:54 AM
Duh, I figure it just went in the root of MXM since that's the way it came.
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
Jun 13 2004, 12:55 AM
| 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.
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
Jun 13 2004, 12:57 AM
first time for me
flattspott
Jun 13 2004, 01:00 AM
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
Jun 13 2004, 01: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.
koldfuzion
Jun 13 2004, 01:22 AM
| 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. |
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
Jun 13 2004, 01:35 AM
| 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
Jun 13 2004, 02: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
flattspott
Jun 13 2004, 04:31 AM
Nice one koldfuzion
chilin_dude
Jun 13 2004, 10:29 AM
| 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
BenJeremy
Jun 13 2004, 10:50 AM
WOW.... that's a sweet "bug"
geniusalz
Jun 13 2004, 12:44 PM
| 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. |
Is that each time you boot or each time the 'action' menu is entered?
BTW, sweet bug.
BenJeremy
Jun 13 2004, 12:52 PM
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
Jun 13 2004, 01:47 PM
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
Jun 13 2004, 01:50 PM
Well, I will be looking at ways of making the menu far more "dynamic" so items can be added.
koldfuzion
Jun 13 2004, 05:25 PM
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 a
Sample 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
Jun 13 2004, 09:25 PM
| 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
Jun 13 2004, 11:29 PM
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
Jun 14 2004, 12:24 AM
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

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
BenJeremy
Jun 14 2004, 12:47 AM
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
Jun 14 2004, 01:56 AM
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

I doubt they'll get respect until they put the Championship away in Game 5.
BenJeremy
Jun 14 2004, 11:05 PM
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.

| 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
Jun 14 2004, 11:25 PM
Sweet!
But now I'll have to polish up tetris YET again
BenJeremy
Jun 14 2004, 11:34 PM
| QUOTE (geniusalz @ Jun 14 2004, 08:25 PM) |
Sweet!
But now I'll have to polish up tetris YET again |
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
Jun 15 2004, 11:31 PM
Anybody build up a serious module or two yet? I'm curious about feedback...
geniusalz
Jun 16 2004, 12:21 AM
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
Jun 16 2004, 12:29 AM
| 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
Jun 16 2004, 01:00 AM
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
Jun 16 2004, 03:30 AM
| 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.