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
BenJeremy
Beta 0.9n.7 (Bug Fixes)

[*] Errors in "subscripts" now report original error and originating script name.
[*] Added "SIZE" command to FTP Server. Reports in the following format: "120 Drive C Reports: (330,416,128 FREE) (524,206,080 TOTAL)" for each drive, unless the user specifies the drive specifically in the SIZE command.
[*] MXM should not lock up any more when running WMV9-based WMV files. It will not play them, but rather than hosing things up, MXM will merely not display the offending video.
[*] Fixed issue with Context Menu items defined in MXM.xml
[*] Fixed problem with the use of special characters % and $ in ActionScripts.
[*] Added Message Logging. See the White Paper for more details. Debugger,Net and File output methods are implemented.
[*] Skinners can now display "CG" strings using offsets. Place the offset value in the "Section" attribute of a text element and the value retrieved
for the string will be that of the menu item offset by that value form the currently selected menu item (or nothing, if out of range).
[*] Similar to the string capability, "entry" type images can also have an offset, by setting an <Offset> value in the resource node.
[*] SETFUNC additions:
- CVTTOBASE <Base> <Padding> <DecmalNum>
Converts number in from, say 15130 to 3B1A (Padding is zero padding, can be set to -1 or 0 to disable)
Input numbers can be bigger than 32 bit values.
- CVTFROMBASE <Base> <Padding> <BaseXNum>
Converts number in from, say 3B1A to 15130 (Padding is zero padding, can be set to -1 or 0 to disable)
Input numbers cannot be bigger than 32 bit values. (Note limitation here!!)

[*] Comparisons now done with 64-bit values in ActionScript IF statements
[*] Memory Units should now be accessable from FTP and ActionScripts
[*] Re-wrote the input stuff in preperation for the new system. Seems to work so far.
[*] Added a parameter for the special "text" element menu - "Wrapped". Set to true, this allows you to cycle through each end of the menu. Do NOT use this on "regular" Menu elements yet.
[*] Added argument support to conditionals. New conditonal: ItemSelected:
<conditional arg1="1">ItemSelected</Conditional>
Works with "not" as well: <conditional arg1="3" not="true">ItemSelected</Conditional>
[*] The new Input System has been integrated! Input is now configurable.
[*] Added HelpDesc and HelpTitle strings. Key is line number, section is device ID.
These will be used to display help screens based on translation tables.
[*] New ActionScript stuff for input handler:
--functions:
-- IQGetMsgID [<ID>]
-- IQPeekMsgID
-- IQPeekStrength
-- IQPeekShiftStrength
-- IQPeekCtrlStrength
-- IQPeekAltStrength
-- IQGetMsgCount
-- HandleType
.....Gets type of handle, 0 if not a valid handle.
--Commands:
-- MOD <Var> <Value>
-- AND <Var> <Value>
-- OR <Var> <Value>
-- XOR <Var> <Value>
-- IQClear
-- IQTable <name>
-- IQPushMsg <ID> <Str> <ShftStr> <CtrlStr> <AltStr>
-- IQWaitMsg [<MsgID> [...<MsgID>]]
-- VIRTKEYBOARD [SINGLE|MULTI|DISABLE|ON|OFF]
-- STRINGINPUT <VAR> <SINGLE|MULTI|IP> <Prompt>
-- SetState <MENU|SAVER|INFO|HELP|GAMEHELP>
-- LINE <X1> <Y1> <X2> <Y2> <Color>
-- MsgBox <Message>
-- Image <Handle> <X> <Y> <Width> <Height>
.....Used with BeginDraw, allows use of Images loaded with LOADIMAGE to be used in an ActionDraw List
-- LOADIMAGE <Handle> <Path>
.....Load an image. May wait up to 5 seconds for image to load from cache.
-- CLOSEIMAGE <Handle>
-- LoadSound <Handle> <File>
....Loads a sound resource to be played
-- CloseSound <Handle>
....Closes sound resource, handle is available for reuse.
-- PlaySound <Handle>
....Play sound from sound resource handle
-- LoadDialogFromXML <UIHandle> <XMLHandle> <XMLLocation>
....Load a dialog from the node indicated
-- OpenZip <ZipHandle> <Filename>
....Opens a zip file to uncompress
-- CloseZip <ZipHandle>
....Closes an open ZIP file
-- UnzipFile <ZipHandle> <Index> <Filename>
....Unzips the entry indexed to the filepath given
-- GetZipInfo <ZipHandle> <Index>
....Retrieves the data for a specific ZIP entry:
- %ZipEntryIndex%
- %ZipEntryCompSize%
- %ZipEntryUncompSize%
- %ZipEntryName%
- %ZipEntryType% ("dir" or "file")

--Specials:
-- rand (Returns 32-bit random number)
[*] Added GOSUB/RETURN functionality to ActionScripting.
Both GOSUB and RETURN may be used after IF
[*] Added FOR/BREAK/NEXT functionality:
- FOR index = 1 TO 10 STEP 3
- BREAK (May be used after IF)
- NEXT
[*] Added Autodetect for DebugServer app.
[*] Checked following:
- Screenshot works fine.
- Checked FTP directory creation/usage/removal "Rainbow 6" - works fine.
[*] Added shifted versions of UI_DIR with the Gamepad input to the default tables in Internal.xml
[*] Added build number, also added XDK version to About Box.
[*] Added Virtual Keyboard. Default activation with "SHIFT-Y"
[*] Using dual-draw stacks for ActionScripts to minimize "flicker"
[*] Cleaned up default pathing for XML files in ActionScripts.
[*] Added the ability to embed variables inside of variables... Usage:
-- SET SomeVar "This is an embedded variable within a variable: %AnotherVar{Index}%"
[*] Added new skin section "Periods" and "menuscroll" value to adjust tweener "menuscroll" source timing.
[*] New Gadget Strings:
- env
-- Global Environment string
- helptitle
-- Help Title (N/A yet)
- helpdesc
-- Help Description (N/A yet)
- cghelptitle
-- Current Game Help Title (N/A yet)
- cghelpdesc
-- Current Game Help Description (N/A yet)
- RawDrvCSize
-- Raw Drive Sizes
- RawDrvESize
- RawDrvFSize
- RawDrvGSize
- RawDrvCFree
-- Raw Drive "free"
- RawDrvEFree
- RawDrvFFree
- RawDrvGFree
- ScreenWidth
-- Actual Screen Width (Added to support HDTV in future)
- ScreenHeight
-- Actual Screen Height (Added to support HDTV in future)

[*] Added SWITCH/CASE/DEFAULT/ENDCASE/ENDSWITCH structured programming statements to ActionScript
[*] Added IF...THEN/ELSE/ENDIF structured programming statements to ActionScript
[*] Added "Circle" type to ZPoints, allowing a quick, pain-free definition of a circle.
[*] Added ONERROR/ONTHISERROR/RAISELASTERROR handling.
[*] XML locations now support Element, Attribute specification, and also support Queries for nodes and elements.
- Locational format! Example: "!.SomeNode.AnotherNode^AnElement~AnAttribute"
- !.Dialogs.Dialog?DlgID=Test.Control?CtrlID=101.Selected is an example of a queried XML location.
BenJeremy
The "WIP" binaries have been updated.


[*] Errors in "subscripts" now report original error and originating script name.

[*] Added "SIZE" command to FTP Server. Reports in the following format: "120 Drive C Reports: (330,416,128 FREE) (524,206,080 TOTAL)" for each drive, unless the user specifies the drive specifically int he SIZE command.



OK, an "WIP" binaries update has been posted.

There might be some strangeness.... I encountered a bizarre problem tonight because I didn'tinclude a header (compiled fine, but system menus were hosed up)


Changes:

[*] MXM should not lock up any more when running WMV9-based WMV files. It will not play them, but rather than hosing things up, MXM will merely not display the offending video.

[*] Fixed issue with Context Menu items defined in MXM.xml

[*] Fixed problem with the use of special characters % and $ in ActionScripts.

[*] Added Message Logging. See the White Paper for more details. Debugger,Net and File output methods are implemented.

[*] Skinners can now display "CG" strings using offsets. Place the offset value in the "Section" attribute of a text element and the value retrieved for the string will be that of the menu item offset by that value form the currently selected menu item (or nothing, if out of range).

[*] Similar to the string capability, "entry" type images can also have an offset, by setting an <Offset> value in the resource node.

[*] SETFUNC additions:
- CVTTOBASE <Base> <Padding> <DecmalNum>
Converts number in from, say 15130 to 3B1A (Padding is zero padding, can be set to -1 or 0 to disable)
Input numbers can be bigger than 32 bit values.
- CVTFROMBASE <Base> <Padding> <BaseXNum>
Converts number in from, say 3B1A to 15130 (Padding is zero padding, can be set to -1 or 0 to disable)
Input numbers cannot be bigger than 32 bit values. (Note limitation here!!)

[*] Comparisons now done with 64-bit values in ActionScript IF statements

[*] Memory Units should now be accessable from FTP and ActionScripts

[*] Re-wrote the input stuff in preperation for the new system. Seems to work so far.

An "MXM Programming Whitepaper" on the new message logging system can be found HERE in Word DOC format.

Another one, on the upcoming Input System can be found HERE - It's far from final, and will be further updated soon.
geniusalz
QUOTE (BenJeremy @ Dec 3 2003, 10:19 PM)
  • Skinners can now display "CG" strings using offsets. Place the offset value in the "Section" attribute of a text element and the value retrieved for the string will be that of the menu item offset by that value form the currently selected menu item (or nothing, if out of range).
  • Similar to the string capability, "entry" type images can also have an offset, by setting an <Offset> value in the resource node.

  • jester.gif

    Time for a cirkular remix
    BenJeremy
    QUOTE (geniusalz @ Dec 3 2003, 09:35 PM)
    QUOTE (BenJeremy @ Dec 3 2003, 10:19 PM)
  • Skinners can now display "CG" strings using offsets. Place the offset value in the "Section" attribute of a text element and the value retrieved for the string will be that of the menu item offset by that value form the currently selected menu item (or nothing, if out of range).
  • Similar to the string capability, "entry" type images can also have an offset, by setting an <Offset> value in the resource node.

  • jester.gif

    Time for a cirkular remix

    It would be cool if you could let me know how it works... I haven't tested it wink.gif
    geniusalz
    I haven't tested yet.

    But jlm said it broke the <EntryNamed>Thumbnail</EntryNamed> image where there was no offset specified
    BenJeremy
    QUOTE (geniusalz @ Dec 3 2003, 09:44 PM)
    I haven't tested yet.

    But jlm said it broke the <EntryNamed>Thumbnail</EntryNamed> image. There was no offset specified in there

    Arg.... OK. I'll have to cook up a skin tomorrow night to do some testing. sad.gif

    I might also have the menu scroller in there tomorrow.
    geniusalz
    And the menu scroller includes the conditionals, right?
    BenJeremy
    QUOTE (geniusalz @ Dec 3 2003, 09:48 PM)
    And the menu scroller includes the conditionals, right?

    ?? I'll have to review that...

    BTW: I just checked the code, and while I **DID** find a potential problem with the MENU image resource types, the ENTRY types looked fine.
    jlm5151
    Another problem....Preview Videos are also no longer showing up at all, and as G said above, that thumbnail entry isnt working no longer either.
    BenJeremy
    QUOTE (jlm5151 @ Dec 3 2003, 10:12 PM)
    Another problem....Preview Videos are also no longer showing up at all, and as G said above, that thumbnail entry isnt working no longer either.

    Yeah, I figured out the problem.

    I'll post the binaries in a few....
    BenJeremy
    OK, It's updated.... I was using the wrong value for range checking, and it was throwing out ALL of my index values (I added the check because of the offset).

    Also, don't forget the try out the text capability. Theoretically, you could remix the MS Dash skin, too, and offset the positions of the titles on the screen, too (use text instead of the menu)

    I've thought of some more interesting arrangements, but those will incorporate the menu gadget, as they will involve smooth scrolling (Imagine rotated text, spinning in)

    jlm5151
    Great! Thanks for the quick fix and it indeed did fix the problem. Also I noticed the addition of memory card support is working great. There seems to be two instances of it though. Letters S and V seem to both be memory cards but I only have one card, so it must be duplicating it. Also like the quick access to inner xml files through the ftp, nice touch. These WIP updates are making me giddy like a school girl, feels like the old days again when new WIP's came daily . Thanks BJ! laugh.gif


    Edit: Sorry just noticed the two instances are TDATA and UDATA wink.gif big DUH! on my part. smile.gif
    geniusalz
    Oh BTW, Neat input system! Especially the VNC. And the voice!

    But how will analogue buttons work in the input system? Does it take the max strength pressed, or are we allowed to check the strength in realtime?
    BenJeremy
    QUOTE (geniusalz @ Dec 4 2003, 01:42 AM)
    Oh BTW, Neat input system! Especially the VNC. And the voice!

    But how will analogue buttons work in the input system? Does it take the max strength pressed, or are we allowed to check the strength in realtime?

    There will be information regarding the "strength" for raw input, as usual. I will also include "strength" information in the input information, for the analog ins and the 2 "shift" inputs.

    I didn't check out IR and keyboard input though last night.... I took all of the assorted input routines and consolidated them into a single "object" called the physical layer. Once the new translion layers are in place, I'll have to go to the various parts of the app and swap out the way input is handled for the new system. ActionScripts are special, as I have to wait for the script to say it needs input, before looking at it; then it loads the environment variables with the raw input. The "new" way will allow you to use translated input, too. I've still got some things to work out, but I might have the script tell the system it doesn't need raw input, so the input can be scanned continuously (translated messages are held in a queue, so no lost input!!). It will also make things more consistent for the user, if they reconfigure their keys.
    BenJeremy
    Well, I'll have at least one thing to fix tonight... I checked this morning, and while the keyboard was fine, my IR remote was not. sad.gif I think I know what is happening though, and regardless, it will only be temporary.

    Once the translation layer is in place, support for the IR and keyboard will be universal (through the new standard input mechanism).

    Don't forget to test the "CG" text elements, too... A neat test I thought of is to create a "menu" consisting of the center holding the current selection, and the text selections scrolling diagonally from the left, and the icons scrolling in from the left on the other diagonal (to converge on the center, then diverge). You could also add varying pulse and transparency as the text displayed was "further" from the center.

    Oh.... and make the selected text item the "Menu" using the special text element tag - that will allow you to bypass the need for any menu, and you can control the horizontal, too, if you want to use that instead.
    BenJeremy
    OK.... more about the "WIP" coming tonight: I added a parameter for the special mode "Text" Element menu called "wrapped" that will allow you to do circular menus.

    You should be able to get a nice pseudo-3-D menu effect by layering 10 or 20 text elements, using the new offset parameter; I was thinking of a "ring" of menu items that cycle up/down, wrapped, arranged slightly at an angle... with the "farther" items rendered first, and smaller. Does that make sense to anybody? If none of the "WIP" buys want to whip something up, I'll knock out something tonight.

    The downside with "text" menu specials is that you don't get the smooth scrolling. I am thinking about a "free form" menu, where each item can be placed just about anywhere on the screen, and the smooth scrolling would moprh between the next/previous positions.

    Ah well... just rambling on here... blink.gif


    Yuyu
    I get what your saying with the circular menu would kinda look like a mouse wheel if you looked at it straight on, and from the side, with the menu items being on the outside layer of the wheel rotating into place,.... Oooooh wait even better example, the price is right wheel, with the menu items being the $ amounts on the wheel..... I think I am on the same page here....??

    Then the the side circular menu would be the same thing except the wheel laid on its side and the menu items arranged horizontally...correct???
    BenJeremy
    QUOTE (Yuyu @ Dec 4 2003, 10:30 AM)
    I get what your saying with the circular menu would kinda look like a mouse wheel if you looked at it straight on, and from the side, with the menu items being on the outside layer of the wheel rotating into place,.... Oooooh wait even better example, the price is right wheel, with the menu items being the $ amounts on the wheel..... I think I am on the same page here....??

    Then the the side circular menu would be the same thing except the wheel laid on its side and the menu items arranged horizontally...correct???

    Exactly... the "Price Is Right" wheel, viewed at a slight angle. The items would move "around" the wheel to/from the back, where the text items would be smaller and more faded.


    Kind of like this ferris wheel, in arrangement...

    user posted image
    Yuyu
    SO I guees in use, it would look something like this:

    user posted image

    Or am I on the wrong track here... more spaced out items??... umm further tilted??
    Fewer menu items displayed at once.....

    Lemme know... I'm tryin to visualize it in use without actually starting in on the skinning of it yet...
    BenJeremy
    Yes, that's the right idea. I'd probably go with fewer items, and fade them more as they moved to the back. It could me angled in either direction (the Ferris picture was just the best example at hand), and possibly a hair more of an angle.

    Of course, it could be turned on it's side, too...

    Yuyu
    Ok updated pic in post above I think I see what you mean now, and of course the horizontal menu would be pretty easy too... Yhe horizontal would have the back end slightly elavated though right ... So you could get the wheel effect??

    Example: Lay THe ferris wheel on the ground so it is like a big circle on the ground then look at it from ground level with the back end heightened to about 5 feet off of the ground and the front still at ground level....

    I can see the possibilitiesIf maybe you could write the skin.xml to wrap around the back of the preview vid so the menu kinda encircles the preview vid.... Hmmm maybe... If you draw the elements in the correct order....
    BenJeremy
    Yes, exactly right on the horizontal description and the image you've got up there for the vertical.
    geniusalz
    The offsets work fine for the text elements, the thumbnails and videos.
    Test Skin

    An annoyance is that the preview videos reset to beginning when they change position.

    As for the new really smooth menu, have the text elements shift color, opacity and position to go to the next/previous one (They'll have to be the same font), and have the ones at the ends fade in/out. And if the user presses something during the transform, have it wait until the transform is complete. Otherwise it messes up the "feel" of the scrolling menu, when animations get cut off.

    EDIT: Have the triggers control the speed of the transform animation (a la evox).

    I was also wondering whether the same is possible for thumbnails (position and size). So you can have OSX-style bars biggrin.gif

    Another extension to this would be the grayscale alpha mask. That would allow different-shaped thumbnails to move around, thus perfecting the OSX-style bar.

    Right now an overlay is needed to change the shape, and the overlay won't move with the thumbnail.
    BenJeremy
    Thanks. I'll have to check out the test skin tonight when I get home.

    I'm adding Unrar, unzip and zip code right now. ActionScripters will soon have access after I overhaul the way I do special object (like file handles), and I'm fleshing out a standard for skin packs and such. I hope to create a multi-dash skin pack standard, so you can include definition files for MXM and UnleashX in one pack.

    That should make things simple, at least... users can just dump the skin packs in a single directory, and MXM will unpack the resources into a "current" directory to use.
    BenJeremy
    Tonight's update will also have a new conditional (listening, geniusalz? laugh.gif ):

    <conditional Arg1="5" not="true">ItemSelected</conditional>

    The above will be true whenever item 5 in the current menu is NOT selected and cause the element to be rendered.

    Say hello to hot spots!
    geniusalz
    w00t!

    Now if only the other type of scrolling can be implemented (menux style, i.e. index moves, and when index reaches predefined bounds, then the thumbs/text/vids change), then menu system would rock. (more than it does already tongue.gif )
    Yuyu
    QUOTE (BenJeremy @ Dec 4 2003, 03:13 PM)
    Tonight's update will also have a new conditional (listening, geniusalz? laugh.gif ):

    <conditional Arg1="5" not="true">ItemSelected</conditional>

    The above will be true whenever item 5 in the current menu is NOT selected and cause the element to be rendered.

    Say hello to hot spots!

    That is going to kick some nice a$$..
    BenJeremy
    You mean for the menu itself?

    I went with the text element "special" to manipulate the "free-form" menus because it gets complicated if I tie the notion of "display position" into a conditional or element.

    While you can do hot-spots, that will only be truly handy on specialty menus (like a theme DVD-R game collection), where the items are known.

    To change the "relative" position of an item, I'll need another conditional - I suppose I could have a new conditional called "DisplayPos" and let you give a number there, similar to a row in a MenuX style menu. That would correspond with the relative position in the "displayed" menu (even if it's invisible). I guess you could provide for each hotspot "position" an entry named image for highlight and non-highlight, and use the offset, then use a conditional if it matches the 'display' position. OK, that might be doable.

    Dammit. I guess I have more work to do. I was hoping to get away without doing that virtual menu element - but I guess I was wrong rolleyes.gif

    When the next release comes out, I'll have to hold a "funky skin" contest, to see who can create the most radical, provocative skin that warps everybody's brain into the question "how'd they do that" - like Cirkular, only MORE EXTREME. laugh.gif
    BenJeremy
    OK, new "WIP" binaries are up...

  • Added a parameter for the special "text" element menu - "Wrapped". Set to true, this allows you to cycle through each end of the menu. Do NOT use this on "regular" Menu elements yet.
  • Added argument support to conditionals. New conditonal: ItemSelected:
    <conditional arg1="1">ItemSelected</Conditional>
    Works with "not" as well: <conditional arg1="3" not="true">ItemSelected</Conditional>

    I'll have to work on the conditional and offsets using the display (for hotspots).

    Included is a slightly modified version of Geniusalz' test skin to check out the new wrapping menu.

    IR Remote once again works, too.
  • geniusalz
    Wrapping works great.

    But I can't figure out how to work this:
    <conditional arg1="1">ItemSelected</Conditional>

    I tried this, with wrapping on, then with wrapping off, but doesn't seem to work (all 3 show up always)

    CODE
     <LayoutElement Type="Image" Source="GameIcon">
      <conditional arg1="1">ItemSelected</Conditional>
      <Scaling X="True" Y="True"/>
      <Pos L="360" T="150" W="40" H="33"/>
     </LayoutElement>
     <LayoutElement Type="Image" Source="GameIcon">
      <conditional arg1="2">ItemSelected</Conditional>
      <Scaling X="True" Y="True"/>
      <Pos L="374" T="192" W="46" H="35"/>
     </LayoutElement>
     <LayoutElement Type="Image" Source="GameIcon">
      <conditional arg1="3">ItemSelected</Conditional>
      <Scaling X="True" Y="True"/>
      <Pos L="363" T="231" W="45" H="34"/>
     </LayoutElement>
    BenJeremy
    I'll have to take a look at why that's not working. It should be fine.
    BenJeremy
    Doh... it's "Condition", not "Conditional"!!

    Give it a whirl that way.
    geniusalz
    Yup, it works.

    I didn't even bother checking since it was coming from u wink.gif . (and my mind was numb from calculus anyway. Final tomorrow, gotta go back to study unsure.gif )
    BenJeremy
    QUOTE (geniusalz @ Dec 4 2003, 10:09 PM)
    Yup, it works.

    I didn't even bother checking since it was coming from u wink.gif . (and my mind was numb from calculus anyway. Final tomorrow, gotta go back to study unsure.gif )

    Yeah, silly me... I actually double checked the "ItemSelected" but didn't think twice about the condition tag.
    geniusalz
    When are the newer menus coming? wink.gif
    BenJeremy
    QUOTE (geniusalz @ Dec 5 2003, 10:16 PM)
    When are the newer menus coming? wink.gif

    Ah well... in a few days. I'm working on the input system at the moment. So far, so good. I've built up the "layers" and I haven't broken anything (yet). When I'm done, all of the keys will be programmable, and I'll easily be able to do stuff like virtual mice (using the keyboard, IR or gamepad) and a good "true" virtual keyboard.

    As for the hotspot thing, I'm thinking on that - for text "CG" strings, instead of a simple numeric offset, my idea has you putting a '@' in front of the number, to represent the relative display position, which will be referenced to the "Virtual" menu to get the actual menu item. For images, you'll use VirtualDispPos or something like that in the resource type. Finally, a new conditional called "ishighlighted" with an argument representing the "virtual" display position.

    As you can see, it's a bit sticky.

    Meanwhile, I'm swamped with work for my day job... to much nelgect during the week, and my boss is back on Monday (a real taskmaster, and it's a Japanese company), so I'll be busting ass this weekend on what I was supposed to be doing this week rolleyes.gif
    BenJeremy
    Just to let people know about my latest progress... spent the night working on the input routines.

    Things will be much smoother (finally, "real" selectable keyrepeat rates), fully configurable (Keyboard, IR, gamepad, and possibly even mouse), and the entire system is "command oriented" - that is, you determine the physical button presses and the system transmits a specific, generic message to the system. I also plan on adding the ability for users to add to these "commands" to trigger ActionScripts (I might add the ability to run ActionScripts before, after or in place of the original commands, as well).

    It's no small task. The original framework input routines have been replaced so far, but when finished, I will be adding a virtual keyboard and also plan on a virtual mouse (switch your gamepad into "mouse mode" for onscreen dialogs, for example). All of this is in preperation for a COMPLETE UI with real dialogs.

    Patience is the key thing here. My day job is soaking up large amounts of my time at the moment ("Crunch Time") as I'm stuck having to write 200+ pages of software requirements for a project that's already half done (not my fault - I just started working there!!) - so I'm spending time working on it at home, as well.



    geniusalz
    Cool, as long as progress is being made, I'll be patient rolleyes.gif .

    And BTW, is this a good time to recruit more devs for MXM? wink.gif
    DBZRacer
    Keep up the great work as usual BJ! beerchug.gif

    The virtual mouse sounds really interesting...
    BenJeremy
    QUOTE (geniusalz @ Dec 10 2003, 12:01 AM)
    Cool, as long as progress is being made, I'll be patient rolleyes.gif .

    And BTW, is this a good time to recruit more devs for MXM? wink.gif

    Well, anytime is a good time to recruit more devs to the project.... cool.gif

    BenJeremy
    QUOTE (DBZRacer @ Dec 10 2003, 12:25 AM)
    Keep up the great work as usual BJ! beerchug.gif

    The virtual mouse sounds really interesting...

    Yes, I still have some details to work out, but once it's done, implementing the mouse should be a snap.
    yourwishismine
    QUOTE (BenJeremy @ Dec 9 2003, 10:53 PM)
    Just to let people know about my latest progress... spent the night working on the input routines.

    Well ok.. but I spent the night locked in my closet with nothing but a toothbrush and shaving cream... laugh.gif
    BenJeremy
    QUOTE (yourwishismine @ Dec 10 2003, 07:44 AM)
    QUOTE (BenJeremy @ Dec 9 2003, 10:53 PM)
    Just to let people know about my latest progress... spent the night working on the input routines.

    Well ok.. but I spent the night locked in my closet with nothing but a toothbrush and shaving cream... laugh.gif

    Somehow, I think even that is just way too much information... rolleyes.gif
    jlm5151
    Just thought I would add a few things I noticed. After switching a few songs in a row, MXM no longer plays music, the songs change but do not play. This does not always happen, but happens enough to report. Another thing is the new memory card support in the FTP is a bit weird. They show whether or not the memory card is in and the files never change whether I delete the files off the card for not wink.gif . These are minor things, but I thought I would due my job as a tester tongue.gif
    BenJeremy
    QUOTE (jlm5151 @ Dec 13 2003, 01:17 PM)
    Just thought I would add a few things I noticed. After switching a few songs in a row, MXM no longer plays music, the songs change but do not play. This does not always happen, but happens enough to report. Another thing is the new memory card support in the FTP is a bit weird. They show whether or not the memory card is in and the files never change whether I delete the files off the card for not wink.gif . These are minor things, but I thought I would due my job as a tester tongue.gif

    Interesting on the memory card support. I haven't really played with it yet, so I'll have to take a look.

    As for the music stuff, it will be getting the "treeatment" soon. Today, I'll finish up the input translation stuff. I think people will be pleasantly surprised; scripters should appreciate better input and having access to the keyboard and IR remote, too...
    BenJeremy
    The "WIP" binaries have been updated.

    What's new:
  • The new Input System has been integrated! Input is now configurable.

    This is actually quite a big update. To understand better, check out the internal.xml file in "Developers.rar" in the bin package and look at the <Input> section.

    Also be sure to read the included White Paper on the Input System. It's not completely updated, but the codes have been (even if they are not all implemented yet).

    You can also change this with a "keys.xml" file (or an input node in MXM.xml)

    Current configuration:
    CODE

    <INPUT>

    <HELP>
    <GAMEPAD>
    <Definition name="Navigation">D-PAD</Definition>
    <Definition name="Selection">A or Start</Definition>
    <Definition name="System Menu">Y</Definition>
    <Definition name="Game Help">Black</Definition>
    </GAMEPAD>
    <IR>
    <Definition name="Navigation">Cursor</Definition>
    <Definition name="Selection">Select</Definition>
    <Definition name="System Menu">Title</Definition>
    <Definition name="Game Help">Info</Definition>
    </IR>
    <Keyboard>
    <Definition name="Navigation">Cursor</Definition>
    <Definition name="Selection">Enter</Definition>
    <Definition name="System Menu">F12</Definition>
    <Definition name="Game Help">F1</Definition>
    </Keyboard>
    </HELP>

    <GAMEPAD>
    <SHIFT>GP_RTRIGGER</SHIFT>
    <CTRL>GP_LTRIGGER</CTRL>
    <ALT></ALT>
    <REPEATDELAY>600</REPEATDELAY>
    <REPEATTIME>70</REPEATTIME>
    </GAMEPAD>

    <IR>
    <SHIFT>IR_REVERSE</SHIFT>
    <CTRL>IR_FORWARD</CTRL>
    </IR>

    <MOUSE>
    </MOUSE>

    <VIRTUALMOUSE>
    <STEP>3</STEP>
    <FASTSTEP>6</FASTSTEP>
    <SLOWSTEP>1</SLOWSTEP>
    </VIRTUALMOUSE>

    <TABLE Name="VirtualMouse">
    <GAMEPAD>
    <MSBTN1>GP_A</MSBTN5>
    <MSBTN2>GP_X</MSBTN5>
    <MSBTN3>GP_B</MSBTN5>
    <MSBTN4>GP_Y</MSBTN5>
    <MSBTN5>GP_RTHUMB</MSBTN5>
    <MSEXIT>GP_BACK</MSEXIT>
    <MSWHEEL>GP_DT_LTHUMB</MSWHEEL>
    <MSXY INVERT="False">GP_DT_RTHUMB</MSXY>
    </GAMEPAD>
    <KEYBOARD>
    <MSBTN1>VK_ENTER</MSBTN5>
    <MSBTN2>VK_F9</MSBTN5>
    <MSBTN3>VK_F10</MSBTN5>
    <MSBTN4>VK_F11</MSBTN5>
    <MSBTN5>VK_F12</MSBTN5>
    <MSWHEELUP>VK_PAGEUP</MSWHEELUP>
    <MSWHEELDN>VK_PAGEDN</MSWHEELDN>
    <MSXYUP>VK_UP</MSXYUP>
    <MSXYDN>VK_DOWN</MSXYDN>
    <MSXYLF>VK_LEFT</MSXYLF>
    <MSXYRT>VK_RIGHT</MSXYRT>
    <MSEXIT>VK_ESCAPE</MSEXIT>
    </KEYBOARD>
    <IR>
    <MSBTN1>IR_SELECT</MSBTN5>
    <MSBTN2>IR_TITLE</MSBTN5>
    <MSBTN3>IR_INFO</MSBTN5>
    <MSBTN4>IR_MENU</MSBTN5>
    <MSBTN5>IR_BACK</MSBTN5>
    <MSWHEELUP>IR_FORWARD</MSWHEELUP>
    <MSWHEELDN>IR_REVERSE</MSWHEELDN>
    <MSXYUP>IR_UP</MSXYUP>
    <MSXYDN>IR_DOWN</MSXYDN>
    <MSXYLF>IR_LEFT</MSXYLF>
    <MSXYRT>IR_RIGHT</MSXYRT>
    <MSEXIT>IR_STOP</MSEXIT>
    </IR>
    </TABLE>


    <TABLE Name="Menu">

    <GAMEPAD>
    <UI_DIR>GP_DT_LTHUMB</UI_DIR>
    <UI_DIR>GP_DT_DPAD</UI_DIR>
    <UI_SELECT>GP_A</UI_SELECT>
    <UI_BACK>GP_BACK</UI_BACK>
    <UI_BACK>GP_B</UI_BACK>
    <MUSIC_NEXT>GP_X</MUSIC_NEXT>
    <SYS_HELP>GP_WHITE</SYS_HELP>
    <SYS_GAMEHELP>GP_BLACK</SYS_GAMEHELP>
    <SYS_MENU>GP_Y</SYS_MENU>
    <SYS_SCREENSHOT Shift="True">GP_X</SYS_SCREENSHOT>
    <SYS_REBOOT Shift="true">GP_START</SYS_REBOOT>
    <SYS_POWEROFF Shift="true" ctrl="true">GP_START</SYS_POWEROFF>
    </GAMEPAD>

    <IR>
    <UI_UP>IR_UP</UI_UP>
    <UI_DN>IR_DOWN</UI_DN>
    <UI_LF>IR_LEFT</UI_LF>
    <UI_RT>IR_RIGHT</UI_RT>
    <UI_SELECT>IR_SELECT</UI_SELECT>
    <UI_BACK>IR_BACK</UI_BACK>
    <MUSIC_NEXT>IR_FORWARD</MUSIC_NEXT>
    <SYS_HELP>IR_TITLE</SYS_HELP>
    <SYS_GAMEHELP>IR_INFO</SYS_GAMEHELP>
    <SYS_MENU>IR_MENU</SYS_MENU>
    <SYS_SCREENSHOT>IR_PLAY</SYS_SCREENSHOT>
    </IR>

    <KEYBOARD>
    <UI_UP>KB_UP</UI_UP>
    <UI_DN>KB_DOWN</UI_DN>
    <UI_LF>KB_LEFT</UI_LF>
    <UI_RT>KB_RIGHT</UI_RT>
    <UI_SELECT>KB_ENTER</UI_SELECT>
    <UI_SELECT>KB_SPACE</UI_SELECT>
    <UI_BACK>KB_ESCAPE</UI_BACK>
    <MUSIC_NEXT>KB_PGUP</MUSIC_NEXT>
    <SYS_HELP>KB_F1</SYS_HELP>
    <SYS_GAMEHELP>KB_F2</SYS_GAMEHELP>
    <SYS_MENU>KB_TAB</SYS_MENU>
    <SYS_MENU>KB_CONTEXT</SYS_MENU>
    <SYS_SCREENSHOT>KB_PRTSCN</SYS_SCREENSHOT>
    <SYS_REBOOT Alt="true" Ctrl="true">KB_DEL</SYS_REBOOT>
    <SYS_POWEROFF alt="true">KB_F4</SYS_POWEROFF>
    <MUSIC_VOLDN Alt="true">KB_DOWN</MUSIC_VOLDN>
    <MUSIC_VOLUP Alt="true">KB_UP</MUSIC_VOLUP>
    </KEYBOARD>
    </TABLE>

    <TRANSLATE NAME="SYSTEM">
    </TRANSLATE>
    </INPUT>


    This will change before public release.... I haven't finished everything yet, including the modifiable system help and ActionScripting integration.

    Let me know how this works for you.

    Also, it has one small change in the NTSC/PAL code, so those NOT USING IT (i.e. MultiStandard off) would be doing me a big favor by trying Max Payne 2 and see if it works OK now. Thanks!

    Oh, and no, no mouse or virtual keyboard yet, but the infrastructure is starting to form up nicely. perhaps by next weekend. Definitely by Christmas, we should see a nice update and possibly a public release. wink.gif
  • jlm5151
    Wow.....
    BenJeremy
    QUOTE (jlm5151 @ Dec 14 2003, 10:02 PM)
    Wow.....

    Heh heh... took me a while to figure out how to do it "right"

    Now I have a nice generic system that responds nicely. Gamepads can have three "shift" keys defined, giving you (21*8)=168 possible commands out of the game pad (24 possible "button presses"-3 for shifting).

    Even the IR remote has the ability to handle "shifting" - but it's a bit different; you have to press the shift keys (and release) before pressing the key to be shifted, basically meaning you can potentially use one, two, three or four key combinations on the IR for (24*8)=192 possible commands.

    You can't change the Shift/Ctrl/Alt keys on the keyboard, no reason to anyway.

    If you don't assign the 0-9 keys on the IR, the system passes them on as ASCII for use in input screens (like Passcode). Same thing with the keyboard... unassigned keys are passed on as VK_ keys and/or ASCII. Passcode screens work smoothly by typing in the passcode using the digits or keyboard, as well as the "UI" direction keys.

    Menu presses will be faster with the gamepad. You can even set the repeat rates higher.

    <REPEATDELAY>600</REPEATDELAY>
    <REPEATTIME>70</REPEATTIME>

    This means it will wait 600 milliseconds before doing the first repeat when holding a key down. After that, it will repeat the "key" every 70 milliseconds.

    BenJeremy
    Well, any comments, "WIP" users? Good, bad?
    thetruethugg
    I think most of us are at school/work. But, I'm not, so I'll update in a few min after I test it out.
    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.