dMZX Forums: MegaZeux 2.91 - dMZX Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

MegaZeux 2.91 or everything we couldn't fit into 2.90

#1 User is online   Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 22 November 2017 - 01:22 PM

MegaZeux 2.91

Posted Image

Release Info

This release introduces mostly new editor features, but also a a few Robotic features to note. It also fixes over 30 bugs.

MegaZeux now features a palette editor for SMZX modes 2 and 3, and worlds can be saved and loaded in SMZX mode. The char editor has been changed to allow preview palettes (mostly to aid with SMZX editing), and can now access the extended character sets. The new vlayer editor allows the vlayer to be edited directly.

On the Robotic side of things, LOAD_COUNTERS actually works now, SMZX mode 3 indices can be loaded from a file, the message line can be configured to use normal MZX mode in SMZX modes, and new string features such as simple wildcard matching and negative offsets have been added. String support has been improved to disallow invalid or nonsense string splices that previously had undefined behavior.

Additionally, asie's new Nintendo 3DS port has been merged into MZX, and optional SDL support has been added for the Wii.

Complete Changelog


Credits

Lachesis - Developer, maintainer
Dr. Lancer-X - Developer (layer rendering)
asiekierka - Developer (3DS port)
Terryn - Help file, testing
Spectere - Darwin binaries
Insidious - Ubuntu binaries


>>DOWNLOAD MEGAZEUX v2.91<<
Windows x64 Windows x32 Mac OS X Mac OS X (PowerPC) Ubuntu AMD64 Ubuntu i386 Debian AMD64 Debian i386 Nintendo DS Nintendo 3DS Nintendo Wii PlayStation Portable Source code

Or, on Windows, you can press U or F7 on the title screen to run MegaZeux's built-in updater.

>>Read the New Release FAQ<<

>>Standalone Release Guide<<

>>Online Help File (updated for 2.91)<<



New Features in MegaZeux 2.91

While not quite as feature-packed as 2.90, there are a lot of new features in this release.


New counters


  • LOAD_COUNTERS - not "new", but now actually works as advertised.
  • MOD_LENGTH - returns the length of the current playing file in rows (modules) or samples (OGG/WAV).
  • MAX_SAMPLES - can be used to limit the maximum number of simultaneous samples. Defaults to -1 (no limit). There is also a new config file option "max_simultaneous_samples" that can be used to limit the maximum samples that will play at once universally.
  • RANDOM_SEED0 and RANDOM_SEED1 - these counters read and write to the random seed, and can be used to manipulate random behavior in both Robotic and in MegaZeux built-ins. This may be useful for creating gameplay demos in games that rely on built-in enemies or SET RANDOM. They also persist between worlds, meaning they can be used to set up e.g. tool assisted speedruns.
  • SMZX_MESSAGE - in SMZX mode when SMZX_MESSAGE is set to 0, the built-in message will display in regular MZX mode using the first 16 colors of the palette (like in 2.90X). Otherwise, it will display normally in SMZX mode. Defaults to 1.
  • set "filename.palidx" "SMZX_INDICES" - loads a file of palette indices in SMZX mode 3.


Strings


  • Malformed string indexes, offsets, and limits are no longer accepted. In other words, set "$string+1" "abcd" is considered valid, but nonsense like "$string+1aaaaaaaa" "abcd" is rejected.
  • COPY BLOCK $string can now write to a string splice.
  • Strings can now be referenced by negative indexes and offsets. The index or offset '-N' will read or write to/from the string at the Nth character counting from the end of the string.
  • Strings can now be indexed by multiple characters at a time, e.g. set "counter" "$string.N#L". This can be used to read and write larger values than 255 to a string at the expense of using more characters. The value of 'L' can be between 1 and 4; when L is 4, the range of the value is equivalent to a counter.
  • Strings can now be compared case sensitively with the === equality.

    set "$string1" to "abc"
    set "$string2" to "ABC"

    . "The program will execute #inc."
    if "$string1" = "$string2" then "#inc"

    . "The program will NOT execute #dec."
    if "$string1" === "$string2" then "#dec"

  • Strings can now be compared with basic wildcard matching using the ?= equality.

    set "$string" to "abcde"

    . "The ? wildcard can match any character exactly one time."
    if "$string" ?= "a?c?e" then "#inc"

    . "The % wildcard can match any number of or any character (including zero times)."
    if "$string" ?= "ab%" then "#inc"

    . "The two can be combined in any order."
    if "$string" ?= "?%cd?" then "#inc"

    set "$string2" "abc?%"

    . "A string can be used for the pattern, as well."
    if "$string" ?= "$string2" then "#inc"

    . "To match a literal ? or %, use a backslash. The backslash will appear doubled; this is normal."
    . "A case-sensitive version of this equality also exists."
    if "$string" ?== "ABCDE" then "#dec"



Vlayer


  • A new vlayer editor can be used to resize and edit the vlayer for any world. This editor is accessed by pressing Alt+V while editing a board, and functions mostly the same as the board editor. The vlayer is saved and loaded with the world.
  • When VLAYER_WIDTH or VLAYER_HEIGHT are set during gameplay, they attempt to preserve the data overlapping the old dimensions and the new dimensions (i.e. like you would expect to see when you resize the vlayer in the editor). This only applies to 2.91+ worlds.
  • When VLAYER_SIZE is increased, the new parts of the VLAYER are initialized to c07 char 32s. This only applies to 2.91+ worlds.


Super MegaZeux


  • A new SMZX palette editor has been added for modes 2 and 3, giving access to all 256 colors in these modes and to the indices in mode 3.
  • Color component values can now be typed into the palette editor by clicking a component's value.
  • The SMZX mode, palette, and indices are now saved and loaded with MZX worlds.
  • Various minor interface tweaks and fixes have been implemented to make SMZX more friendly to use in the editor.
  • The F11 SMZX toggle has been replaced with a proper mode selection menu.
  • The undocumented (mostly historical) Shift+F7 shortcut to toggle SMZX mode has been removed.


Char editor


  • The char editor now supports SMZX modes properly.
  • A preview palette can be selected in the char editor by pressing 'C'; the editing window and preview will be displayed in this color while it is active, as well as the selection in the char selector. Press 'Alt+C' to disable the preview palette. This feature is intended to make char editing easier in SMZX mode.
  • Numerous missing shortcuts have been added to the char editor help; cycle pages by pressing 'H'.
  • The char editor can now access extended charsets with 'PgUp' and 'PgDn'.
  • The char editor's tiling behavior when using selections across multiple rows in the char selector has been improved. The plus and minus keys will now attempt to find the next valid tile in the character set, and these keys can now be used in the char editor's char selector to preview how a selection will tile. Note that certain selections (e.g. 3x3) will leave many chars unreached, as these sizes do not tile well inside of 32x8.
  • The char editor's import/export functionality has been extended to allow for tiling in applicable situations. The regular import/export has also been improved to allow the selection of a different import/export size and to display instructions for multiple import/export.
  • The last used dimensions for a given block size will be remembered between selections. For example, if 6 chars are selected at 2x3, then 2x3 will be highlighted the next time 6 chars are selected.
  • The undo and redo shortcuts for the char editor have been changed to Ctrl+Z and Ctrl+Y.
  • Mouse clicks are now properly handled by the undo stack.


Other editing


  • The palette editor and character editor can now be opened during testing by pressing Alt+E and Alt+C (respectively) in the counter debugger.
  • The board, overlay, and vlayer now have undo stacks that can be used to undo or redo changes to the board/overlay/vlayer data (Ctrl+Z and Ctrl+Y, respectively). These do not affect global settings, the global robot, board settings, or the board/vlayer size. The board/overlay stacks are cleared whenever the board is resized, cleared, or a new board is selected. The vlayer stack is cleared whenever the vlayer is resized or cleared.
  • The default size for (all) undo stacks has been increased to 100.
  • When creating a new world, the user will be prompted to create a new board. Entering a board name or pressing enter will generate a new board in addition to the titlescreen and set this new board as the starting board. Pressing escape to close this prompt will create just the titlescreen. This prompt can also be bypassed by holding Alt when entering the editor.
  • Saved positions now have confirmation dialogs and are saved and loaded to the [world].editor.cnf file.
  • Pressing 'Enter' on the overlay now grabs from the overlay and changes the both the overlay and the buffer instead of just changing just the buffer.
  • Pressing 'P' on the overlay now edits the buffer, not the overlay.
  • Ctrl+Arrows doesn't require an initial block to be placed anymore.
  • Alt+D now toggles default colors for placed objects (as in DOS versions). When default colors are disabled, a red dot will appear on the status bar.
  • The color selector can now seek to a color when a hex color number is typed in, e.g. "FF" will jump to color 255.


Misc


  • MegaZeux can now be played on the Nintendo 3DS.
  • The Wii port has been restored to (mostly) working order.
  • The Nintendo DS port can now create and load saves properly.
  • When a scaling shader fails to compile, MegaZeux will now attempt to fall back to the default shader.
  • Unbound sprite ccheck mode 3 now works correctly.
  • When SPR_YORDER is enabled and multiple sprites have the exact same (Y + CY) value, they are now consistently drawn in the order of their sprite numbers.
  • The downver utility has been reimplemented. Downver is still available from the Export menu as well.

"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
3

#2 User is offline   GetDizzy 

  • Touch Fuzzy.
  • Group: DigiStaff
  • Posts: 3,567
  • Joined: 22-November 01
  • Gender:Other
  • Location:MA

Posted 22 November 2017 - 01:54 PM

Tested NDS and 3DS releases on actual hardware.
Please note that of the newly available binaries, NDS and 3DS have some standing issues. NDS still does not have sound and I encountered a color bleed bug on it as well.
3DS seems to have some crashing possibly to do with unbound sprites. Older games work fine.

These particular ports should probably be considered work-in-progress.
- Your Jumpy Neighborhood Admin

<@Tixus> Anyway, I set the year to 1988 for some reason.
<@Tixus> And set the microwave to run for a minute and 28 seconds.
<@Tixus> But it failed to send me back in time, and I was disappointed.
<Insidious> Tixus accidentally microwaved the 80s
<Insidious> that is my takeaway from this
0

#3 User is online   Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 22 November 2017 - 02:36 PM

On that note, the Wii port has been tested to be stable but is slow with certain games. This is because it has to use SDL and the software renderer right now. This should be fixed at some point in the future.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
0

#4 User is offline   astral 

  • 6 pc chicken mcnobody
  • PipPipPip
  • Group: Members
  • Posts: 475
  • Joined: 20-October 01
  • Gender:Male
  • Location:South Carolina

Posted 22 November 2017 - 04:57 PM

Yet another great release, all the work y'all have been up to is amazing! The QOL improvements in editing alone since you revived development are substantial enough that I think people who haven't picked up MZX since the port would be lost if it weren't for the help file changes to support all the new stuff. Kudos to everybody involved!
i thought you said weast
0

#5 User is online   Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,904
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 23 November 2017 - 01:29 AM

The Mac builds are now up.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
0

#6 User is offline   Spectere 

  • Resident Spectere Fanboy
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 3,111
  • Joined: 18-June 04
  • Gender:Male
  • Location:Struthers, OH, USA

Posted 23 November 2017 - 10:35 PM

I updated the MSVC project to work with MSVC2017 (and to be a bit friendlier overall). It hasn't gotten too much testing, so if anyone's feeling adventurous here's a few binaries for it:

https://files.specte.../megazeux/msvc/

They're based on 2.91 final, but I'd still consider them to be testing builds at this point. If you're brave enough to try them out, please report any bugs that you encounter.

As far as building the beast goes, this is all you have to do:

1) Extract .\scripts\deps\msvc.zip into .\arch\msvc. That should create a Deps directory in the MSVC project directory.
2) Open MegaZeux.sln and build it.

Release builds will build a distribution in .\build\dist. Debug builds just leave everything in the project root directory. Speaking of debug builds, remember to drop an SDL2.dll for your desired build architecture into the project root directory. You can either get them from libsdl.org or from .\contrib\precompiled-sdl\${ARCH}.
:)
0

#7 User is offline   Spectere 

  • Resident Spectere Fanboy
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 3,111
  • Joined: 18-June 04
  • Gender:Male
  • Location:Struthers, OH, USA

Posted 22 December 2017 - 02:37 PM

Lachesis merged my Xcode support branch last night! Woo!

If you want to do a build on macOS, you should now be able to load the MegaZeux project in /arch/xcode and build it using that. All of the required frameworks have been pre-built and are included in the source distribution. Note that this project is only currently contained in the master branch--the v2.91 branch and earlier are still using shell scripts.

The broken system clipboard support for Intel (maybe just 64-bit?) builds has also been fixed as part of that (the clipboard code used Carbon, which is not supported in 64-bit macOS, so now we just use the SDL2 clipboard handler).

Finally, the resulting build should be signable if you have a developer account (it should use a developer key by default if you do a personal build). I'm going to try to do this for the next official build so that it passes Gatekeeper (i.e. doesn't require you to ctrl-click on the app the first time you run it).

The project has been made and tested with Xcode 9.1 on macOS 10.13.1. In theory it should work with Xcode 8.0, but I don't have a means to test that. If you run into any issues, please let me know. :(
:)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users