Multimedia Fusion 2 Build 256 Update Released

mmf-boxes

Build 256 is available and has been released:

MMF2 Standard (English) | MMF2 Developer (English)
MMF2 Standard (French) | MMF2 Developer (French)
MMF2 Standard (Japanese) | MMF2 Developer (Japanese)

This patch program updates the following components (if they are installed) :
– Multimedia Fusion 2 & Multimedia Fusion 2 Developer
– SWF/Flash Export Module
– iOS Export Module
– XNA Export Module
– Unicode version

Please make backups of your MFA files before loading them with this version, just in case of unexpected problems or any compatibility issue with previous builds (iOS applications saved with this build may have compatibility issues with the icons with older builds).


Build 256 Change Log

Main program

– Action editor: crash when you minimize the action editor.
– Windows HWA runtime: memory leak or possible crash with display-as-sprite sub-applications, especially when you change the frame of a sub-app.
– Windows runtime: the volume coefficient in Set Volume was not linear.
– Windows runtime: Set Sample Position / Get Sample Position were not accurate with looping sounds.
– Windows runtime: possible crash in applications if they have been built just after changing preferences in the same session of MMF2.
– Windows runtime: crash on Windows 8 when closing Windows stand-alone applications after using the Japanese IME keyboard.
– Windows runtime: the frame rate of Windows stand-alone applications should be more stable in this build.
– Windows runtime: an optimization has been made in Windows stand-alone applications for scrolling games that contain lot of backdrop objects on layers above the first one and heavily test the collisions with the background.

SWF/Flash Export Module

– SWF : all the runtime files are now stored as ZIP files in the dataruntimeflash folder. You can open them and modify them as you wish, as far as you use the Clickteam source code only in SWF applications created with MMF2.

XNA Export Module

– XNA : new property to save graphics in mosaic images for faster loading time.
– XNA : all the runtime files are now stored as ZIP files in the dataruntimeXNA folder. You can open them and modify them.
– XNA : Min function returned 0 if one of the parameters was a floating point number
– XNA : Max function returned an incorrect value if one of the parameters was a floating point number
– XNA : floating point counters did not respond to the display formatting properties
– XNA : Random crash in animations in complex applications
– XNA : Get Sample/Channel Frequency and Set Sample/Channel Frequency have been implemented
– XNA : InAndOut and Pinball movement did not work
– XNA / GamePad object, C++ version : Vibrate action crashes with parameters different from 1. It now works fine, for multiple gamepads
– XNA / GamePad object: the XBox Gamepad object is now supported in Windows XNA applications.
– XNA / Gamer Services object : the object now allows you to retrieve information on what a connected player is doing on his machine. Two functions for this, Get presence, and Get presence value
– XNA / Gamer Services object : the object also allows you to define the current action of the local player (for retrieving by other connected players), with two actions, Set presence and Set presence value. Please read the documentation about the syntax and keywords.
– XNA / Get object : Add Post data and sending a POST message to the server are now implemented
– XNA / Get object : a cariage return/line feed was added at the end of the string downloaded
– XNA / XBox / Ini, Hiscore and Array objects : if the chosen memory device was a memory stick, and this device is removed from the XBox while the game runs, these objects automatically revert to a file on the main XBox HD (instead of not saving anything as before)
– XNA / String Parser object : compilation error in Windows Phone and Xbox modes
– XNA / String Parser object : mdFive$ expression crashed or returned incorrect results
– XNA / Windows phone / XNA object : new condition “Music is playing in the background”
– XNA / XNA object : Game is in trial mode condition slowing down the application. This is normal: this operation is a synchronous (blocking) operation that can take 60ms or more to complete when your game is in trial mode. To prevent significant delays in your game’s framerate, it’s best to call this function only when your game is initializing or returning from an interruption in gameplay.

iOS Export Module

– Crash in text drawing (when text area became too large – maximum size allowed is now 1024×1024)
– Crash when an object drawing text was resized to 0 in width or height
– String drawing bug in HiScore object
– Active/Backdrop color channels were swapped for the text color
– ActiveBackdrop didn’t scroll with the frame
– OpenAL sound playback had several bugs with the pause mechanisms.

– iOS : New “Display” property in the iOS Application property page, allowing a fine control of the application display on the device. More information in the documentation (Distributing / iOS / iOS properties).
– iOS : New Launch image landscape property for iPad projects in the iOS application properties page
– iOS : Orientation problems with iOS6 are fixed.
– iOS : iAD fixed in iOS6 – note that Apple has phased out landscape ads, they are no longer supported.
– iOS : Fixed crash in extensions showing a popover in landscape mode in iOS6 (Game Center and Active Picture object image selector)
– iOS : No more compiler warnings when using XCode 4.4
– iOS : The current device orientation would sometimes not be updated
– iOS : Embedded binary files are now properly supported in the runtime – most objects support loading directly from them. No more need to use XCode resources.
– iOS : Important change: Subfolders for files are now supported globally. Before it just removed the folder component.
– iOS : Fixed several memory leaks
– iOS : Fixed freeze in ‘Last object has been destroyed’ condition
– iOS : Fixed drag-drop for non-active objects
– iOS : Fixed drag-drop movement when scrolling the screen
– iOS : Hang in Bin() expression
– iOS : Crash in Val() expression
– iOS : Crash in sound initialization
– iOS : In a rare case textures would turn into black boxes
– iOS : Fixed hidden layers reappering when restarting the frame
– iOS : Subapps didn’t respect the ‘Follow frame’ property
– iOS : Subapps stole touch input events when they were invisible
– iOS : Lives and scores were always 0 in a sub application
– iOS : Fixed several possible crashes in sprite handling
– iOS : Better seamless audio looping when using OpenAL playback mode (still has gaps for some audio files with specific Khz)
– iOS : Faster and less bugged text drawing (Text alignment now works)
– iOS : Less input lag when using Vsync (can still cause input lag if you have a complex game and have Vsync turned on, working on this)
– iOS : Several text encoding improvements when reading external files (now attempts to guess text encoding on text) For best results use UTF8 encoding in your text files.
– iOS : Crash fix for objects with transitions getting destroyed outside of the visible frame.
– iOS : Added backdrops adjusted for hotspot after redrawing a layer (messed up collisions with them)
– iOS : Added backdrops could disappear during scrolling while they were still on-screen (hotspot was misaligned in the visiblity calculations)
– iOS : Added ‘Done’ button for numeric keyboard on iPhone to be able to dismiss it
– iOS : Generating random numbers gave negative results for large input numbers
– iOS : Crash in ‘Pick one object’ because of the random number generation
– iOS : Frame color was wrong
– iOS : Pasting an object on the right or bottom of the frame did not paste it.
– iOS : Crash when getting a filename parameter (selected from a common dialog) in the Unicode runtime
– iOS : Crash in text drawing (when text area became too large – maximum size allowed is now 1024×1024)
– iOS : Crash when an object drawing text was resized to 0 in width or height
– iOS : Strings used as parameters of events were corrupted after a jump to frame jumping at the same frame
– iOS : OpenAL sound playback had several bugs with the pause mechanisms.
– iOS : AppDrive$, AppDir$ and AppPath$ now just return empty strings (as all file paths on iOS should be relative)
– iOS : RGBAt function of active objects returned wrong numbers
– iOS / Space Invader movement: stopped working if the “master invader” got destroyed (all objects stopped moving)
– iOS / Space Invader movement: crashed sometimes when destroying an object with the movement
– iOS / Active Backdrop didn’t scroll with the frame
– iOS / Active/Background System Box: didn’t load its initial string when exported from the default MMF2 version (only worked in MMF2 Unicode).
– iOS / Active/Background System Box: could crash when getting it’s current string if it didn’t have any from the start of the frame
– iOS / Active/Background System Box: bug in multiline text alignment
– iOS / Active/Background System Box: color channels were swapped for the text color
– iOS / Active Picture object supports wrapping on/off setting
– iOS / Active Picture Object now attempts to load the image from the cache if no internet connection is available
– iOS / Advanced Path Movement : bug when clearing the path (CArrayList bug)
– iOS / Array object: garbled up it’s entries when expanding the array
– iOS / Button object now supports the ‘Checkbox’ setting and shows an iOS Switch control (ON/OFF).
– iOS / Button object: possible crashes when retrieving it’s current text
– iOS / Camera object : crash in sounds when recording a video
– iOS / Camera object : the object memory was not released at the end a frame
– iOS / CalcRect object: crash when setting the current string.
– iOS / Counter and Score objects not visually updating their values sometimes
– iOS / Counter object: would not show an initial value of -1
– iOS / Dead Reckoning object: this object has been ported to iOS.
– iOS / Edit object: didn’t use the ‘alignment’ property.
– iOS / Edit object: Load and Save actions are implemented.
– iOS / Flocking object: this object has been ported to iOS.
– iOS / ForEach object : fixed crashes.
– iOS / Game Center Connect object: crashes in iOS6 when authenticating the player.
– iOS / Game Center object : fixed crashes if running on device with iOS5 when compiled with iOS6 SDK.
– iOS / HiScore object: string drawing bug.
– iOS / INI, List and Edit objects: they now guess the string encoding for the files they load.
– iOS / INI object: no longer throw warnings when it can’t find its INI file
– iOS / INI object: could sometimes crash when searching for groups on empty lines.
– iOS / iOS Store object: Crash in iOS Store when switching frames before a request finished
– iOS / List object: Would sometimes not read the very last line in the file (and other extensions)
– iOS / List object did not load the list content in unicode version
– iOS / Mersenne Twister: returned bad floating point values
– iOS / String object: Vertical centered and bottom alignment in string objects now work
– iOS / String object: Crash in the string object’s “npara()” expression
– iOS / String object crashed when getting the N’th paragraph
– iOS / iOS Video object: could intercept mouse clicks (touch input) even when it was destroyed
– iOS / iOS Video object: new actions Play, Pause, Stop, Set playback time, Begin seeking forward, Begin seeking backward, End seeking, and new ‘Get playback time’ expression.

For iOS extension developers:

– iOS6 replaced the ‘presentModalViewController’ with the new ‘presentViewController’ with a completion handler. We have added a simpler version of ‘presentViewController’ into “MainViewController” that if compiled with iOS5 SDK uses the ‘presentModalViewController’ method and with iOS6 SDK uses the new ‘presentViewController’ routine but with no completion handler. This is the preferred way to show your view controller unless you need to use the completion handler as it will work for all users regardless of the SDK they use.
– For extension developers, added “Q_sqrt(x)” function to the SDK which calculates the fast inverse square root 1/sqrt(x)
– The runtime now has an ‘omnipresent’ objectSelection class present in the CRun class (typically accessible through ho->hoAdRunHeader->objectSelection)The old method of allocating an instance of the class still works, but it is preferable to only use the instance in CRun.
– New API for listening to some iOS system events
– New easy function to retrieve the NSData of a named resource (be it local file, xcode resource or embedded binary file)
– Moved common and useful extension info routines from CExtension to CObject (such as setting and getting positions and more).
– New simple convenience functions to convert between radians and angles (degreesToRadians(), radiansToDegrees())