1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451 |
- GIT
- FEATURES
- + Joystick settings in game.cnf files are now loaded as game-
- specific joystick bindings. These bindings will no longer
- permanently override global/UI bindings defined by the config
- file or pad.config. The global bindings are restored when any
- world is loaded (including SWAP WORLD); they are not restored
- when a save is loaded.
- + Joystick inputs can now be bound to generic actions. These
- actions are configured to control MegaZeux's various windows
- in a context-specific manner, and can themselves be bound to
- keycodes to allow for gameplay controls that are more
- consistent with the UI controls. A list of joystick actions
- and the functions they perform can be found in the config
- file. The NDS, 3DS, Wii, PSP, and GP2X pad.config files have
- been updated to use joystick actions.
- + Added automatic joystick mapping for Windows/Mac/Linux/etc.
- Joysticks recognized as SDL game controllers are automatically
- assigned joystick actions when detected. This behavior can be
- altered or disabled via config options.
- + Added the config setting "joy_axis_threshold". This setting
- allows the threshold for joystick axis mapped presses to be
- configured.
- + Added Nintendo Switch port. (Lachesis, asie)
- + The NDS directional pad is now mappable as a joystick hat.
- + The 3DS directional pad is now mappable as a joystick hat. The
- circle pad is now mappable as axes 1 and 2.
- + The default boot.dol for Wii builds with the editor enabled
- is now MegaZeux instead of MZXRun.
- + New GLSL scaling shader: "sai". This shader implements the
- "Scale 2xSaI" algorithm by Kreed with a modified interpolation
- function to produce sharper edges. This shader can scale up to
- any size larger than 640x350 and is comparable to hqscale
- (though it should look and perform a little better).
- + Fullscreen mode will now attempt to match a supported screen
- resolution if no "fullscreen_resolution" setting is specified.
- For scaling renderers, this favors the current desktop
- resolution. For "software", this favors smaller resolutions.
- + Added the config setting "fullscreen_windowed". When set to 1,
- MZX will create a borderless window with the current desktop
- resolution instead of regular fullscreen. Disabled by default.
- + The current renderer can now be set from the settings menu.
- + Added the 'softscale' renderer. This renderer is a generalized
- rewrite of the former SDL 2 overlay renderer implementation.
- It should perform significantly better and be more portable.
- - SDL 2 support for the overlay renderers has been removed. When
- specified for video_output, softscale will be enabled instead.
- FIXES
- + Fixed crash that could sometimes occur when pressing Alt+Up
- while drawing near the top of a board in the editor.
- + Fixed bug where canceling 'Alt+C' char selection in the
- robot editor would comment the current line.
- + Fixed a bug where F5 in the robot editor would not print data
- for extended chars.
- + Clicking through board name windows and other interfaces with
- the mouse should no longer place the current buffer.
- + Fixed a bug where the updater could fail to initialize due to
- a relative argv[0] in Windows. MegaZeux attempts to get the
- executable path from Win32 first now.
- + Improved warning message when no HTTP response is received.
- + The software renderer no longer tries to use an SDL_Renderer
- to draw the surface returned by SDL_GetWindowSurface. This
- fixes a crash when switching to fullscreen with the software
- renderer on some platforms.
- + Fixed a software renderer mouse crash bug caused by moving the
- cursor off the screen with a window bigger than the screen.
- + Fixed a bug where setting SMZX_MESSAGE to 0 wouldn't always
- draw the message correctly.
- DEVELOPERS
- + Fixed -Wunused-result warnings for Linux builds.
- + Added "Intel EMGD" to auto_glsl blacklist (questionable
- OpenGL 2.0 support).
- + Added platform-independent joystick event functions and
- updated the SDL, NDS, 3DS, and Wii event handlers for them.
- + MinGW builds now use -Wl,-Bstatic and -Wl,-Bdynamic to enforce
- the preferred linking when both static and dynamic builds of
- libraries are present.
- + For MSYS2 shells, config.sh now chooses the prefix /mingw32
- or /mingw64 by default if $MSYSTEM is "MINGW32" or "MINGW64"
- and either the "win32" or "win64" arch is selected.
- + MegaZeux now uses the renderer free_video function on exit.
- + GL_LoadLibrary no longer fails if the library is already
- loaded in SDL 1.2. (Lancer-X)
- + GL renderers free textures and revert to fixed function
- pipeline where appropriate. (Lancer-X)
- + OpenGL ES support can now be enabled for SDL builds with the
- --enable-gles option. This option is force-enabled for
- platforms that only support OpenGL ES.
- + opengl1 renderer now always uses power of 2 textures, same as
- opengl2 and glsl. This provides a tiny performance improvement
- on most cards and a massive performance improvement on some
- other cards. (Lancer-X)
- - Removed uthash as a build option.
- February 20th, 2019 - MZX 2.91j
- Here's a huge collection of bugfixes and a couple of features
- that needed to be split off from 2.92.
- Features: every release has an HTML copy of the help file now,
- the editor keeps separate board/overlay/vlayer buffers now, and
- anyone who still uses scrolls/sensors can view their info in the
- counter debugger. The global volume settings use an exponential
- curve now, range from 0 to 10, and have updated UI elements.
- Fixes in this release include: the updater won't complain about
- mzx_help.fil anymore, the NDS and 3DS ports have keyboards that
- work again, several bugs that would lead to worlds/saves with
- "Robot # does not exist on board #" errors have been fixed, and
- several crashes have been fixed.
- USERS
- + A complete HTML copy of the MegaZeux help file is now packaged
- with releases for all platforms. It can be found in the docs/
- folder.
- + Nvidia and AMD switchable graphics drivers should now detect
- MegaZeux and MZXRun properly on Windows.
- + The editor now remembers the contents of the buffer when
- switching between board, overlay, and vlayer editing. For
- example, if a robot is selected on the board before switching
- to overlay mode, the robot will still be in the buffer when
- the user switches back to board mode.
- + The editor now remembers the last filename for importing and
- exporting MZM, MZB, CHR, PAL, and PALIDX files.
- + Scrolls and sensors can now be viewed in the counter debugger.
- They can be found by expanding the Board list (when present).
- + Readded "#version 110" directives to all GLSL shaders, fixing
- warnings on some Intel HD drivers. OpenGL ES builds should now
- comment out these directives.
- + Fixed bug where using Modify+Grab on built-ins could clear the
- floor under the built-in.
- + Fixed bug where key repeat wouldn't work for any text field in
- the NDS/3DS/Wii ports. This also affected the robot editor in
- Wii builds.
- + Fixed NDS touch screen support. Touching the screen no longer
- acts like escape and the keyboard properly works again.
- + Fixed a bug where the NDS keyboard would drop keypresses on
- games not running at speed 2.
- + The counter debugger now correctly displays the value of
- local0.
- + Fixed a bug where the counter debugger would not reopen to
- the correct robot local# value.
- + MZX now attempts to retry removal of an old file when updating
- if deletion fails initially. Error messages related to the
- failed deletion of "mzx_help.fil" or "assets/help.fil" are now
- suppressed as they are caused by a bug in older MZX versions.
- + The help file is now closed before the updater restarts MZX.
- + Fixed crash bug that could occur when removing old files after
- an update.
- + Improved manifest validity checks.
- + Fixed board editor crash caused by invalid thing IDs.
- + Player movement key repeat no longer resets when the player is
- locked. It will reset for a direction only when the arrow key
- corresponding to that direction is released. This fixes a bug
- in Brotherhood where the player would move at a fraction of
- the speed they were supposed to while swimming.
- + Added version checking for legacy IF c?? Sprite behavior. In
- versions 2.82b and prior, c?? would make this command ignore
- the provided param and use SPR_NUM instead. This fixes Project
- MoveZig.
- + Fixed spelling error in missile param dialog.
- + Switching boards in the editor now properly translates the new
- board's mod name, fixing cases where board mods would restart
- sometimes.
- + Fixed a bug where the current board mod wouldn't play after
- starting a listening mod, testing, returning to the editor,
- and then disabling the listening mod.
- + Replaced the linear volume setting curve with an exponential
- curve to make lower volumes less loud. The volume settings can
- now be set from 0 to 10 instead of from 1 to 8.
- + The config file setting pc_speaker_on=0 no longer prevents
- turning on PC speaker SFX at runtime.
- + Added temporary workaround for numpad 5 key detection when
- numlock is disabled.
- + "Forest to floor" and "Collect bombs" are properly enabled
- again for new boards by default. This fix doesn't alter config
- settings or saved .editor.cnf defaults.
- + The "Downver. world (MZX)" option in the "Export as" dialog
- is now completely highlighted when selected. (Lancer-X)
- + Starting MegaZeux with "startup_editor=1" no longer loads the
- default palette over the startup world's palette.
- + The move block action and undo/redo operations should now
- preserve the element beneath the player.
- + Fixed crashes caused by using block actions or COPY BLOCK on
- the player while the player is standing on a sensor.
- + Fixed several bugs where editor block actions and the commands
- COPY/COPY BLOCK would not check for the player or clean up
- robots/scrolls/sensors. Worlds/saves saved after these bugs
- occured could display "Robot # does not exist on board"
- errors when loaded.
- + The DUPLICATE SELF x y and DUPLICATE SELF dir commands now
- properly check for the player before attempting to duplicate
- a robot. This fixes a bug where MZX could create saves with
- "Robot # does not exist on board" errors.
- + Fixed a crash that could occur when importing a new board.
- + Fixed a bug where the 3DS onscreen keyboard would send key
- releases instead of key presses.
- + The 3DS onscreen keyboard now returns shifted chars when shift
- is active.
- + Fixed a bug where the libxmp implementation of MOD_ORDER and
- JUMP MOD ORDER could not restart the current order.
- + Fixed a crash with the libxmp implementation of MOD_POSITION
- when providing an out-of-bounds value.
- + Fixed a bug where Ctrl+[key] shortcuts would not work while a
- dialog list element was active on the Wii.
- + Fixed a bug where setting the board mod/charset/palette could
- truncate the first letter of the path on the Wii.
- + "mask_midchars" no longer masks the non-text char 127.
- + The message box title and the command [ now properly display
- the graphic for char 9 instead of a tab.
- + Added newline escaping to robot, counter, and string names in
- the counter debugger to work around formatting bugs.
- DEVELOPERS
- + Added the hlp2html utility, which can be used to convert
- WIPHelp.txt into web and printable HTML files.
- + Updated to latest NDS ARM7 template.
- + Updated SDL2 for Windows release builds to SDL 2.0.9.
- December 9th, 2018 - MZX 2.91i
- A small release with a bunch of fixes for bugs introduced mostly
- within the past few versions. Other highlights: joysticks should
- be hot pluggable now and Alt shortcuts now also work with the
- command key in Mac builds.
- USERS
- + MZX now properly detects when joysticks are connected and
- disconnected at runtime for platforms using SDL 2.
- + Fixed bug where the robot editor would open with the cursor at
- the end of the line instead of the start of the line.
- + Fixed a bug where the robot box could display using MZX mode
- but SMZX colors if opened on the first frame SMZX was enabled.
- + The built-in text box title should display correctly again in
- SMZX modes.
- + Fixed regression where keys could trigger wrong "keyN" labels.
- + Alt+F2 can now be used to open the settings dialog.
- + Mac users can now optionally use command in place of alt.
- + Improved editor cursor color selection for SMZX modes 2 and 3.
- DEVELOPERS
- + Fixed make test for SDL 1.2 builds.
- November 14th, 2018 - MZX 2.91h
- A minor release primarily focused on improving counter/string
- lookups and fixing bugs in the robot editor and counter debug
- menu.
- USERS
- + auto_glsl correctly switches to glsl on startup now.
- + Fix bug where "(editor)" wouldn't always display in the
- caption when editing.
- + The single line macro dialog now allows the full size of the
- single line macros to be edited. This fixes a crash caused by
- having a macro configured to be longer than the edit box could
- display.
- + Setting a counter to a string no longer duplicates the entire
- string in memory.
- + Fixed faulty BOARD_X and BOARD_Y bounding for values greater
- than the board width or height. Fixes potential crashes with
- BOARD_CHAR, BOARD_COLOR, BOARD_ID, and BOARD_PARAM.
- + The value of SPR_YORDER is now correctly displayed in the
- counter debug menu.
- + Improved the performance of the counter debug search.
- + Fixed cosmetic counter debug menu issue where the the "String"
- tree appeared to be expandable/collapsable when empty.
- + Fixed faulty substring searching algorithm used in the counter
- debug menu search and for breakpoints.
- + Added "Search" and "Cancel" buttons to the counter debug menu
- search so it can be used with the mouse.
- + When testing from the editor, if "__test.mzx" exists MegaZeux
- will now choose a numbered name for this world backup (e.g.
- "__test2.mzx") instead of potentially overwriting work.
- + Fixed bug where six-digit line numbers would display in the
- robot editor incorrectly.
- + Inserting text in the robot editor using the F2/F3/F4/F5
- shortcuts can no longer exceed the line length limit, fixing
- related crashes.
- + Using F5 in the robot editor generates decimal numbers instead
- of hex numbers now.
- + Fixed robot editor bug where pressing delete at the end of a
- line wouldn't join lines unless the current line was empty.
- + Restored the ability to use the F7/F8 cheats outside of the
- editor. This feature was broken in 2.91g. To enable cheats
- outside of the editor, the config option "allow_cheats" must
- now be set to "mzxrun" or 1. The former will enable them for
- MZXRun only (same as from 2.82b to 2.91f) and the latter will
- enable them for both executables (same as the -þ flag in DOS
- versions).
- + Fixed bounding bug on the "board_default_width" and
- "board_default_height" config file options.
- + Separated robot editor "Search and Replace" dialog into a
- "Search" dialog and a "Replace" dialog. Both dialogs are
- smaller in size than the original. The order of the elements
- in these dialogs has also been altered to be more user-
- friendly. The hotkey for the new replace dialog is Ctrl+H.
- + Fixed Ctrl+R repeating for the "Replace All" robot editor
- search operation. Previously, it would act like "Replace".
- + Canceling the robot editor search/replace menus no longer
- disables the repeat feature.
- + Searching in the robot editor now properly preserves the case
- of the search string if case sensitive search is disabled.
- + Fixed bug where toggling the robot debugger position wouldn't
- take effect immediately.
- + Exiting the editor with the "startup_editor" config setting
- enabled should no longer inappropriately close MZX.
- + Selecting "tile" for the char editor import mode works again.
- + The bounds for the main editor charset import/export offsets
- and size have been increased to allow for extended charset
- values.
- + Fixed the "KEY?" labels for keys that no longer have a unicode
- representation in SDL2.
- + Fixed SET "$string" "FWRITE#" bug where, if # exceeded the
- length of $string, the output would be clipped to the wrong
- length.
- + The missile color ID char is now correctly set back to its
- default value when a new world is created from the editor.
- DEVELOPERS
- + Cleaned up the counter debug menu code.
- + Switched from uthash to a modified version of khash for
- counter and string lookups. Counters/strings now consume less
- memory and counter/string lookups should perform slightly
- better on most platforms.
- + Replaced toupper/tolower in memcasecmp and substring searching
- with a lookup table-based implementation of tolower.
- + Refactored the following contexts to use the main loop: robot
- editor, intake, thing menu. For compatibility purposes the old
- intake still exists, but all robot editor hacks have been
- removed from it.
- October 7th, 2018 - MZX 2.91g
- This bugfix release fixes various minor-to-moderate bugs in
- various areas of MegaZeux. The title/game update code has gone
- through a fairly major overhaul and several parts of MegaZeux
- have been combined to use the same loop. The conversion of
- MegaZeux's interfaces to be compatible with this loop is an
- ongoing process expected to occur over several versions.
- USERS
- + Added "allow_screenshots" config file option. Setting this
- option to 0 will disable the built-in screenshot feature.
- + The F12 key can now be detected by Robotic.
- + Loading saves from the title screen no longer resets TIME.
- + Loading saves from the title screen no longer erroneously
- changes the player restart position.
- + Swapping worlds now sets the correct TIME and player restart
- position values.
- + Fixed a bug where the fade out effect from COLOR FADE OUT
- would be reset after any Robotic dialog.
- + Undo for overlay and vlayer mouse drawing now works properly.
- + Mouse drawing in the editor now draws smooth lines instead of
- lines with gaps.
- + Fixed move block bug when the source and destination both
- overlapped the player.
- + Palette editor component entry now accepts most of the same
- inputs as dialog number boxes.
- + The board name in the caption now updates to reflect the
- current board while testing.
- + Fixed bug where TIME would either decrement normally or not
- decrement at all while the slow time effect was active.
- + Added compatibility for pre-port endgame teleport behavior.
- In DOS versions of MZX, the endgame teleport would disable
- itself after being triggered for the first time and any
- following endgame would instead trigger a game over.
- + Reduced stutter in NDS and 3DS main screen scrolling.
- + Fixed a bug where creating a string MZM would not correctly
- set the string's length for preexisting strings.
- + Fixed a bug where loading robot source code from a string
- wouldn't work correctly with the robot debugger.
- + The help system is now accessible from the main menu and game
- menu.
- + The settings screen is now accessible from the main menu, game
- menu, editor, and palette editor.
- + The shortcut Ctrl+F2 can be used to open the settings screen
- from anywhere the settings screen is accessible. This shortcut
- works even if F2 is used for a different feature and will also
- ignore the value of the F2_MENU counter.
- + Fix a crash that would occur decrypting a world with a
- password exactly 15 chars long.
- + The label for the INPUT STRING command should no longer be
- able to overflow outside of the window.
- + Fix a crash that would occur attempting to open the help file
- from the world decryption confirm dialog.
- + Fix bug where saved layer MZMs and board MZMs without robots
- would have useless extra data at the end of the file.
- + Scroll contents properly display game colors during gameplay.
- + An error message is now displayed for failed board exports.
- + Enabled writing zip data descriptors on the 3DS to decrease
- saving time.
- - The "password protected" error message has been removed as it
- was redundant with the confirmation dialog following it.
- - The "disassemble_extras" and "disassemble_base" options no
- longer affect Robotic output during gameplay. SAVE_ROBOT will
- always output extra words and base 10 numbers regardless of
- user configuration.
- DEVELOPERS
- + Implemented a main event loop to replace the various separate
- event loops scattered around MegaZeux. See core.h and core.c
- for more info.
- + Refactored the following contexts to use the main loop:
- titlescreen, gameplay, main menu, game menu, editor, palette
- editor.
- + When enabled, the debug FPS display will now update from any
- interface using the main loop. If fullscreen mode is active,
- the FPS display will now appear in the top-left corner of the
- screen for any main loop interface aside from the editor.
- + The --disable-screenshots config.sh option can be used to
- disable screenshot support. This allows platforms that don't
- use render_layer.c to stop building and linking it.
- + Cleaned up m_show()/m_hide() overuse.
- + Replaced all uses of "bool" with "boolean" to avoid potential
- C/C++ compatibility issues.
- - Removed most old/unused source code in contrib/unzip, src/old,
- and src/vfs.
- September 17th, 2018 - MZX 2.91f
- A bugfix release focusing primarily on renderers, the 3DS and
- Wii ports, and the Makefile build system. Highlights: the 3DS
- port should perform better now, the Wii port's GX renderer has
- been restored, the 'darwin' platform has more Unix-like options
- now, and several crashes have been fixed.
- USERS
- + The config setting 'audio_buffer' can also be specified with
- 'audio_buffer_samples' now. The default value for this setting
- is now 1024 (instead of 4096).
- + Fixed a crash that could occur in the counter debugger.
- + Fixed a crash that occurs when attempting to add a watchpoint
- for robot local counters, loopcount, etc. Using these counters
- as watchpoints will watch the global robot's instances of
- these variables (for other robots, use e.g. r#.local1).
- + Using SMZX_INDICES or LOAD_ROBOT on an unset string no longer
- causes a crash.
- + png2smzx is now properly bundled with Linux builds.
- + Improved the performance of loading partial charsets for the
- glsl, opengl2, and 3DS renderers. Other renderers were not
- affected by this issue.
- + Fix opengl2 unbound sprite regression introduced in 2.91e.
- + The opengl2 renderer now correctly draws unbound sprites
- containing chars with a transparent foreground color.
- + 3DS renderer optimizations. (asie)
- + 3DS screen focusing now mimics the NDS port's behavior. (asie)
- + Fixed bug where games could fail to open files on some
- platforms if the paths contained duplicate slashes. (asie)
- + Added a Wii software layer renderer. This renderer can be
- selected with "video_output = xfb" in the config file.
- + Wii GX renderer optimizations.
- + Added layer rendering support to the GX renderer.
- + The Wii GX renderer now uses the gl_vsync config option to
- toggle vsync. For the Wii, this feature is on by default.
- Disabling it may increase the framerate of some games but may
- also cause other problems.
- + The loading bar on console platforms now redraws the screen
- less often.
- DEVELOPERS
- + GAMESDIR/BINDIR/SHAREDIR now properly apply PREFIX when they
- are not explicitly set by config.sh.
- + LIBDIR is now user-definable like BINDIR et al. Variations
- such as "lib64" currently must be explicitly provided for
- platforms that still use them.
- + Remove src folder from CFLAGS to fix a bug where system
- includes could be mistaken for MegaZeux headers. All includes
- of MegaZeux headers must be done using relative paths now.
- + Fixed include bugs for X11 and Carbon clipboard handlers.
- + Makefile now attempts to respect the prefix when running
- sdl-config, sdl2-config, and libpng-config.
- + Renamed the "darwin" config.sh platform to "darwin-dist".
- + Added "darwin" and "darwin-devel" config.sh platforms. These
- act like Mac OS X versions of the "unix" and "unix-devel"
- options.
- + The darwin-dist build system and instructions are now somewhat
- more clear and robust.
- + Fixed a bug where zlib wouldn't necessarily be linked to
- png2smzx.
- + Renderers will now use render_layer to draw the text_video
- fallback if no render_graph function is present.
- September 3rd, 2018 - MZX 2.91e
- Bugfix release fixing some crashes, port bugs, and some other
- significant issues affecting a variety of things.
- USERS
- + Fixed bug where loading a board charset would also clear all
- of the extended charsets.
- + Fixed bug where loading a default charset in the editor would
- also clear all of the extended charsets.
- + Loading a 2.91 world when a renderer with no layer support is
- active no longer triggers an error message.
- + Fixed a memory corruption bug in the non-SDL Wii port caused
- by faulty threading code.
- + Fixed crash that could occur when updating a board undo frame.
- + Fixed crash when changing to a board with overlay disabled in
- overlay editing mode.
- + Fixed a bug where the protected charset could get cleared for
- renderers without layer rendering support.
- + Enabled C99-compliant stdio functions for mingw, fixing at
- least one crash bug and possibly improving performance.
- + The NDS port now attempts to detect argv[0].
- + The 3DS port now attempts to detect argv[0] and otherwise will
- start in /3ds/megazeux instead of /.
- + The 3DS port .3dsx file is now located in /3ds/megazeux.
- + The MOVE PLAYER [dir] and MOVE PLAYER [dir] [label] commands
- now update the commands cycle and commands total values.
- + Fixed a bug where MZX and checkres wouldn't accept some
- DEFLATE-related ZIP flags.
- + checkres no longer crashes on failing to open a resource zip.
- + The window caption now updates correctly when using either of
- the overlay renderers.
- + Update checking will now display an error instead of silently
- hiding the updater when the updater fails to initialize.
- + Fixed an issue where UIs would execute redundant frames.
- + Fixed a bug where string comparison would not order strings of
- different lengths correctly. (GreaseMonkey)
- DEVELOPERS
- + Code style has been cleaned up in numerous files.
- + Moved GLSL shaders from assets/shaders/ to assets/glsl/.
- + Added missing GPL headers to GLSL shaders and added slightly
- better documentation to them.
- July 12th, 2018 - MZX 2.91d
- This is a minor bugfix release to get a handful of fixes out
- primarily concerning the updater. The NDS/3DS/PSP/Wii ports now
- include a copy of Caverns of Zeux.
- USERS
- + Added timeouts to updater network operations.
- + Fixed bug where the updater would retry downloads without
- regard to the status code.
- + The updater is now force-disabled for all non-Windows
- platforms in config.sh.
- + Fixed bug where breakpoints could trigger on the wrong line.
- + Amended VOLUME/MOD FADE # # bounding to clamp values in port
- versions. DOS versions will still wrap between 0 and 255.
- + Added DOS compatibility fix for sprN_off.
- + Window caption is now properly updated when loading a world
- from an unedited world in the editor.
- + Fixed bug where ".." would change to the current directory if
- the current path ended in a path separator.
- - Removed undocumented support for "title.cnf", "game.cnf", and
- "editor.cnf" config files, which would have been loaded from
- the same directory as the main config (not to be confused with
- world-specific config files, which are still supported).
- DEVELOPERS
- + The MSYS2 buildscripts have been overhauled to work with the
- new devkitPro pacman repositories.
- + Added config options to select vorbis, tremor, tremor-lowmem,
- or to disable ogg vorbis file support. The 3DS and Wii ports
- now use tremor instead of tremor-lowmem.
- March 4th, 2018 - MZX 2.91c
- This release contains an assortment of bugfixes ranging from
- player clone fixes to obscure compatibility patches. A handful
- of updater issues have been fixed (or at least addressed).
- MegaZeux can now automatically check for updates on startup on
- Windows platforms. This behavior can be configured, and by
- default will simply leave a message in the window caption.
- USERS
- + MegaZeux can now automatically run the updater on startup
- on applicable platforms. This can be configured with the
- 'update_auto_check' config file option.
- + Fixed a bug where several .MOD variants stopped working with
- libxmp enabled.
- + Sound effects in subdirectories can now be used in the SFX
- editor.
- + Fixed a bug where checkres would fail on legacy worlds with
- very long custom SFX.
- + Checkres no longer ignores the SFX tables of 2.90+ worlds.
- + Fixed a bug where interpolated expressions containing ternary
- operators could terminate counter names early.
- + Fixed faulty IF ANY compatibility behavior.
- + Fixed a bug where FWRITE functions could change the case of
- user-defined filenames when creating new files on non-Windows
- platforms.
- + SMZX mode 1 palettes are now exported correctly as 16 colors
- instead of as 256 colors.
- + Fixed subtly inconsistent timing in certain built-ins.
- + Fixed bug where wind and transporters could clone the player.
- + MegaZeux now restarts correctly in paths containing spaces
- when the updater is run.
- + Subroutines in pre-port MZX worlds now always return to the
- command after the subroutine was sent.
- + Typed color components now wrap from the maximum value to zero
- like dialog number inputs, and pressing minus will now negate
- the input number.
- + Copying chars in the char editor between regular and SMZX
- screen modes now works properly.
- + Fixed a crash that could occur when placing things on a vlayer
- larger than the current board.
- + Sharks and SpittingTigers with firing rates greater than 4 now
- retain their firing rate when edited.
- + Fixed a bug where world decryption could crash. (Revvy)
- + If the glsl renderer is selected by default, the detection of
- a software opengl driver will result in falling back to
- software. (Lancer-X)
- + Fixed a bug in the GLSL renderer where an additional window is
- created if the OpenGL version is low enough to cause a
- fallback to software. (Lancer-X)
- DEVELOPERS
- + Added .MZX-based unit testing system. Run with "make test".
- See testworlds/README.md for more information.
- + The default renderer is now auto_glsl, which turns into glsl
- if not using a blacklisted opengl driver. (Lancer-X)
- January 6, 2018 - MZX 2.91b
- Here's a fairly significant update for MegaZeux 2.91, fixing
- several major Robotic, audio, and editor related bugs, as well
- as issues that mostly affected Linux platforms. Also of note is
- the updated MSVC and Xcode support by Spectere.
- USERS
- + Added the config file option "editor_thing_menu_places". When
- set to 0, selecting an object from the thing menus (F3-F10)
- will place the object in the buffer but not on the board.
- Defaults to 1.
- + Fixed a bug where MZMs could sometimes fail to load in the
- editor.
- + MZMs loaded in the editor now behave correctly when undone.
- + Fixed bug where GOOP_WALK wouldn't always be 0 when loading
- old worlds.
- + Values of GOOP_WALK greater than 1 no longer cause issues.
- + Board time limits greater than 255 are no longer truncated
- when saving worlds/saves.
- + Fixed bug where "robot not found" errors could result from
- using backspace on robots in the editor.
- + Fixed backwards string inequality evaluation.
- + String inequality compares are now endian-safe.
- + Fixed a bug where certain mods (e.g. FR_TOWER.MOD, Neve.s3m)
- could repeat to the wrong order after reaching the end.
- + Fixed a bug where certain .it channels could partially ignore
- the volume command.
- + Setting mod_position in libxmp now works for positions in the
- middle of orders (NoSuck).
- DEVELOPERS
- + Updated MSVC for Visual Studio 2017. (Spectere)
- + Added xcode support. (Spectere)
- + "make clean" now deletes ccv. (pgimeno)
- + Fixed creeping CRLF usage. (Lachesis, pgimeno, Spectere)
- + Fixed a bug where the MSYS2 build scripts could inadvertently
- include non-portable SDL2 binaries in Windows builds.
- November 22, 2017 - MZX 2.91
- 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.
- FEATURES
- + Added SMZX_INDICES special counter to load SMZX indices. This
- counter works with either a filename or a string, e.g.
- set "file.palidx" "SMZX_INDICES", and will do nothing outside
- of mode 3.
- + Added MOD_LENGTH counter. The value of this counter is length
- of the current playing music in rows for modules, or in
- samples for PCM audio.
- + Added MAX_SAMPLES counter. When set, MegaZeux will limit the
- maximum number of samples that will play simultaneously. Set
- to -1 to disable the sample limit.
- + Added 'max_simultaneous_samples' config file option. This
- behaves the same as the MAX_SAMPLES counter, but applies
- globally.
- + Added SMZX_MESSAGE counter. When set to 0 with SMZX active,
- messages will display in normal MZX mode instead of SMZX
- using the first 16 colors of the SMZX palette.
- + Added 'random_seed#' counters to read and write the random
- seed, 32 bits at a time (random_seed0 controls the low 32 bits
- and random_seed1 controls the high 32 bits. (Lancer-X)
- + Added a case-sensitive string equality operator:
- IF "$string" === "ABC" then "label".
- + Added wildcard-matching string equality operators:
- IF "$string" ?= "a?%" then "label"
- IF "$string" ?== "a?%" then "label" (case-sensitive).
- The character '?' will match exactly one of any character in
- $string, and '%' will match any number of any character in
- $string (including no characters).
- + Added negative indexing for strings, e.g. SET "$string.-X" 32.
- This manipulates the string at the Xth character starting from
- the end of the string (with -1 for the final character).
- + Added negative offsets for strings, e.g. SET "$string+-X" "a".
- + Added multiple character indexing for strings. When a length
- is provided with a string index, e.g. SET "$string.X#Y" 12345,
- the characters at positions X, X+1, ..., X+Y-1 will be treated
- as a single 8*Y bit number. This works for values of Y between
- 1 and 4, with 4 characters providing the same functionality as
- a counter.
- + The palette editor and character editor are now accessible
- while testing. Press Alt+E or Alt+C respectively to access
- them from the counter debugger.
- + Extended the palette editor to SMZX modes 2 and 3. The updated
- palette editor allows the editing of all 256 SMZX mode 2/3
- colors and editing color indices for SMZX 3.
- + Component numbers can now be typed in the palette editor by
- clicking the component name or its number, e.g. clicking "Red"
- allows you to type a red value.
- + SMZX indices can now be imported/exported while editing in
- mode 3 using import/export palette.
- + Added a new vlayer editor. In the world editor, press Alt+V to
- switch to the vlayer editor. The vlayer is something like an
- invisible global overlay that can be used to store and
- retrieve graphical data through Robotic. See the editor help
- and the Robotic reference manual for more details.
- + Added color selection to the character editor. Press C to
- choose a color to preview and edit chars with, and press Alt+C
- to revert back to the default grey.
- + Added extended charset support to the char editor. Extended
- charsets can be selected during char selection. Note that in
- gameplay these chars can be accessed only by unbound sprites.
- + Selected blocks of chars with a height greater than one
- (before selecting a subdivision) are now properly supported.
- Using -/+ with these selections will move in a tiled manner,
- with no overlap between chars in "tiles". Charsets can also be
- exported/imported using this tiling behavior.
- + The -/+ keys now behave the same in the char selection screen
- as they do in the char editor.
- + The character editor help now covers several shortcuts that
- were previously missing (Alt+B, Shift+Arrows, etc...).
- + The undo/redo shortcuts in the character editor are now Ctrl+Z
- for undo and Ctrl+Y for redo.
- + Added undo/redo functionality to the world editor. Use Ctrl+Z
- to undo changes to the board/overlay/vlayer and Ctrl+Y to
- redo.
- + The default editor undo history stack size has been extended
- to 100 levels.
- + The editor will now prompt the user to create a new starting
- board when opened. If a new board is created, the global first
- board will be set to the new board and the title board will be
- renamed.
- + Saved positions now have confirmation dialogs. Saved positions
- are saved to/loaded from the editor.cnf file for each world.
- + Pressing Enter/Return on the overlay (and vlayer) now acts the
- same as on the board, changing both the buffer and the current
- layer being edited.
- + Pressing P on the overlay (and vlayer) now acts the same as on
- the board, changing the character in the buffer but NOT on the
- current layer. This is equivalent to the original overlay
- behavior for Enter.
- + Block tiling movement (Ctrl+Arrows) now works with most block
- actions, and does not require an initial block placement to
- activate.
- + Restoring its DOS functionality, Alt+D now toggles the default
- colors of built-in types in the editor. When disabled,
- built-ins placed from thing menus will use the buffer color
- instead of their default colors, and a red dot will appear on
- the right side of the status bar.
- + Color selection now supports typing in the hex value of a
- color/subpalette to select the given color/subpalette. For
- example, typing "4c" will select background color 4 and
- foreground color 12.
- + Readded the downver utility.
- - Removed the undocumented Shift+F7 shortcut in the editor. This
- shortcut was redundant with F11.
- FIXES
- + Fixed a bug that would cause Linux binaries to fail to find
- most resources.
- + Fixed a bug where loading a save from the titlescreen, exiting
- gameplay to a world that doesn't exist, and then loading a
- second save would corrupt the counter and string hash tables.
- + Fixed crash that would occur when loading a saved position on
- the same board referring to out-of-bounds coordinates.
- + Fixed a freeze that could occur opening the counter debugger
- to an empty list or searching for a counter in an empty list.
- + LOAD_COUNTERS now works as intended.
- + Fixed a bug where key repeat would be prematurely terminated
- when releasing a key while holding another key.
- + Attempting to open the robot validator with no errors will no
- longer crash MegaZeux.
- + Backspace now mirrors delete in overlay mode instead of
- affecting the board.
- + Moving an overlay block partially out of bounds in the editor
- will now correctly clear the block's original position.
- + The color selector will now correctly display SMZX palettes in
- SMZX mode instead of the default char 254.
- + Fixed bug where the mouse cursor would vanish after using the
- robot debugger configuration dialog in the editor.
- + Fixed a bug where the counter debugger could sometimes display
- behind the robot debugger after exiting the counter debugger.
- + Undo in the char editor now works correctly with the mouse.
- + The char editor no longer forces the screen to SMZX mode 1
- when editing in SMZX modes 2 or 3.
- + Fixed screen corruption bug when resizing the char editor in
- SMZX modes.
- + Fixed a bug where multichar editing wouldn't correctly wrap to
- the start of the charset.
- + The editing area outside of the current board is now correctly
- drawn when SMZX is enabled.
- + The viewport is now correctly drawn when SMZX is enabled and
- the UI or unbound sprites are active.
- + The editor bar no longer appears while SMZX is enabled in view
- mode.
- + Messages are now drawn correctly in SMZX mode.
- + Fixed bug where centering the viewport could change the width
- and height of the viewport.
- + Unbound sprites are now clipped correctly against the viewport
- when the viewport origin is not 0,0. (Lancer-X)
- + The VLAYER_SIZE counter now clears new vlayer area added when
- it is increased. This applies only to 2.91+ worlds.
- + The VLAYER_WIDTH and VLAYER_HEIGHT counters now preserve data
- on the vlayer when set. This applies only to 2.91+ worlds.
- + Fixed several bugs with string length and offset parsing that
- would allow invalid string accesses to work in certain cases.
- + COPY BLOCK $string now works correctly with string splices.
- + Fixed a bug where saving and loading 2.90X files wouldn't work
- on the Nintendo DS.
- + Fixed a bug where mouse clicks would carry through from the UI
- into games.
- + Invalid gl_scaling_shader values should no longer appear as
- the current loaded scaler.
- + MegaZeux now falls back to the default scaling shader when a
- selected scaling shader fails to compile.
- + Blank sprite chars are now drawn when ccheck is 3. (Lancer-X)
- + The sprite color is used with ccheck 3 collisions. (Lancer-X)
- + When spr_yorder is enabled, sprites with the same (sprN_y +
- sprN_cy) value are now consistently ordered by their sprite
- numbers.
- + The collision rectangles of ccheck 3 sprites now constrained
- to the sprite dimensions (Lancer-X).
- + MZX no longer crashes when a line of length 512 characters or
- longer is pasted into the robot editor.
- + Fixed a crash bug when trying to swap a sprite with an
- invalid sprite index.
- DEVELOPERS
- + Added Nintendo 3DS port. (asiekierka)
- + Added "make uninstall" option to the Linux makefile.
- + Added devkitPro portlibs paths to the NDS and Wii Makefiles.
- - Removed the depackers and non-MegaZeux formats from libxmp.
- September 4, 2017 - MZX 2.90d
- Here's another bugfix release. This is mostly assorted small
- fixes, but there are also a couple of major fixes here: first,
- the ternary operator now works correctly when nested both with
- and without expressions, and second, sprN_setview does not break
- in conjunction with certain unbound sprites. Additionally, SAMs
- will not be converted to WAV files anymore (and are now natively
- supported) and the robot debugger config is accessible from the
- editor.
- FEATURES
- + The current MegaZeux version is now visible from the enter
- menu on the title screen. This is to assist identifying the
- version on platforms that don't respect window title changes
- or have no window border.
- + Updated checkres.bat and checkres documentation.
- + The robot debugger configuration screen is now accessible from
- the editor via Alt+F11.
- + Removed SAM to WAV converter. MegaZeux now has native SAM
- support. (asiekierka)
- + Added crt-wave.frag, updated crt.frag. (astral)
- FIXES
- + Fixed a bug where MegaZeux would crash when editing a robot
- with an invalid IF command operator.
- + Fixed a bug where the ternary operator would fail to find the
- correct colon when the middle term contained a second ternary
- operator in a nested expression.
- + Nested ternary operators should now behave as expected.
- + Fixed a bug where the built-in cursor would disappear after
- exiting testing with EXIT_GAME.
- + Fixed a bug where the listening mod would not restart after
- exiting testing.
- + Fixed a bug where the robot debugger would not wrap long lines
- of Robotic code correctly.
- + Attempting to save a world in a write-protected location
- correctly displays an error message again.
- + Fixed a bug where key repeat would not work when scrolling
- through the counter debugger tree list.
- + checkres will no longer report empty filenames as dependencies
- e.g. SET "" TO "FWRITE_OPEN".
- + The -q flag in checkres will now correctly output filenames
- instead of nothing.
- + Fixed a bug where sprN_setview would scroll the viewport to
- the wrong side of the screen if the sprite is unbound and is
- close to the top or left edge of the board. (Lancer-X)
- DEVELOPERS
- + Fixed PSP and NDS ports. (asiekierka)
- July 25, 2017 - MZX 2.90c
- This is a small fix release mostly cleaning up issues from the
- previous release.
- Notable fixes include a crash on certain instances of string
- interpolation into counters/labels/text. Playing mods as sound
- effects works again, and the audio_sample_rate config file
- option now works correctly.
- This release also includes support for loading save files from
- MegaZeux 2.84X and experimental editor behavior for handling
- board charsets and palettes.
- FEATURES
- + Save files from 2.84X worlds can now be loaded.
- + The editor can be configured to automatically load board
- charsets and palettes now. Use the 'editor_load_board_assets'
- config file option to enable this behavior. This behavior is
- disabled by default. Note that this will OVERWRITE THE CURRENT
- WORLD CHARSET AND PALETTE and your changes will NOT be saved
- automatically.
- + GLSL is now the default renderer. (Lancer-X)
- FIXES
- + Fixed bug where --disable-modular builds would fail to link.
- + Fixed bug with libxmp integration where mods could not be
- played as sound effects.
- + Fixed bug with libxmp integration where MZX would assume
- audio_sample_rate was 44100, causing mods to play at incorrect
- pitches with other rates.
- + Fixed bug where editor config file options would be ignored at
- the command line.
- + Fixed bug where string interpolation into a label/counter name
- could cause MZX to crash with very long strings.
- July 16, 2017 - MZX 2.90b
- It's been two weeks, so here's a bugfix release for MZX 2.90.
- There isn't a whole lot that's new to talk about.
- Firstly, the palette editor has gone through an overhaul. This
- is mostly internal preparation for an eventual SMZX palette
- editor, but the new features include the partial restoration of
- mouse input (which was removed in 2.80X), the addition of color
- sliders, the ability to hide the palette editor help, and two
- new colorspaces (HSL and CIELAB) to aid in the selection of
- palette colors.
- Next, the robot debugger introduced in 2.90 has new features.
- You can now set "watchpoints" to watch the status of particular
- variables, and you can send labels/goto from the robot debugger.
- The robot debugger config screen has been visually improved, and
- line number breakpoints can be defined. Another notable feature
- is that KEY_PRESSED and KEY_CODE values are now displayed in the
- debug window during gameplay.
- libxmp is now the default sound engine for modules, fixing a
- longstanding bug where certain S3Ms would have muted channels.
- GDM modules are now supported by MZX again. If you notice any
- inaccuracies with mod files, please report them to the tracker.
- Fixed bugs include a major overhaul of the glsl shaders for
- compatibility with almost any system, various sprite, text box,
- and input bugs, a crash fix when MZMs were saved from out of
- bounds board locations, and a bug where opening worlds or
- testing from the editor could cause MegaZeux to exit.
- FEATURES
- + The "shaders/extra" folder is now "shaders/scalers". The
- default vertex shader is still located in the shaders folder.
- + The default scaling shader can now be set in the config file
- using the gl_scaling_shader option. If not defined, MegaZeux
- will load assets/shaders/scalers/semisoft.frag.
- + The robot debugger now supports monitoring the values of
- counters and strings. Use the config menu/breakpoint editor to
- add watchpoints; when the debugger detects a change in a
- watchpoint counter/string AFTER a command has been executed,
- the robot debugger will open.
- + The robot debugger can now send robots labels. Use 'G' or
- select 'Goto' in the robot debugger to use this feature. The
- name and label inputs support expression parsing and string/
- counter interpolation.
- + The robot debugger can now use line numbers in breakpoints.
- + The palette editor help can now be hidden with Alt+H. The
- default behavior for this can be set in the config file. The
- palette editor help is visible by default.
- + The palette editor's mouse functionality has been improved.
- Behavior when clicking the palette has been restored, and
- component sliders have been added.
- + The palette editor now supports alternate color spaces.
- + The debug window now displays the last key_code (green) and
- key_pressed (magenta) values detected during gameplay. These
- values are located in the bottom right corner of the window.
- + The default fullscreen resolution for scalable renderers is
- now 1280,720. The default fullscreen resolution for 'software'
- is still 640,480. The default aspect ratio is now 'modern'.
- + The checkres utility has been updated to support 2.90X worlds,
- worlds in subdirectories of zip archives, multiple input files
- to test, and the ability to specify secondary directories and
- zips to search (e.g. for games with separate music zips).
- BUGFIXES
- + Fixed a bug where certain "keyN" labels, such as "key$", would
- not work correctly.
- + Integer comparisons between numbers greater than 2^31-1 apart
- now work correctly. (Lancer-X)
- + The palette editor now displays the SMZX mode 1 palette
- correctly.
- + Sprite collisions now correctly ignore the sprite's visual
- width and height.
- + Blank lines are no longer skipped when copy-pasting text into
- the robot editor. (Lancer-X)
- + Fixed a bug where key presses in dialogs could be detected in
- games, and keypresses could still carry between other dialogs.
- + [ message boxes now use the same screen mode as everything
- else. Same with scrolls. (Lancer-X)
- + spr#_setview now works with unbound sprites. It's pretty nasty
- as the viewport can't scroll with pixel precision, but the new
- behavior should still be better than the old. (Lancer-X)
- + Fixed a bug affecting certain Intel HD Graphics cards and the
- GLSL renderer that appears to have been around since that
- renderer was first introduced. (Lancer-X)
- + Fixed a bug where the numeric numpad keys were inappropriately
- translated to regular keys based on numlock when they were
- read from KEY_PRESSED. This behavior is now locked to worlds
- from 2.82X through 2.84X.
- + Fixed a bug where warping the mouse on one axis would snap the
- mouse to the nearest pixel on the other axis, causing problems
- for upscaled windows.
- + Fixed a bug where mouse control would not respect video_ratio
- settings aside from "stretch".
- * Fixed a bug where MZX would attempt to load certain invalid
- worlds that should have been caught by validation.
- + Copy block to MZM no longer crashes when the MZM is partially
- overlapping the board edge. (Lancer-X)
- + Fixed bug where MegaZeux would sometimes exit immediately on
- loading a game or would immediately exit testing.
- DEVELOPERS
- + libxmp is now the default module sound engine. Use "make xmp"
- to make and install libxmp if it is not available on your
- platform.
- + Mac OS X portability improved. (Spectere and Why-Fi)
- June 29, 2017 - MZX 2.90
- Hey, it's been a while! Didn't mean to keep everyone waiting.
- To make up for it as much as possible, we've prepared an extra
- special release of MegaZeux here for you. Yeah, you!
- I don't even know where to start with this release, as there's
- simply a lot to talk about. MZX's world formats and rendering
- architecture have gone through major overhauls, and a multitude
- of bugs have been fixed (60+). Particularly the MZX UI graphical
- glitch that occurred when an SMZX mode was enabled.
- Some notable new features are unbound sprites (MZX's new native
- pixel precision support), loading character sets/palettes/source
- code/MZMs from strings, saving MZMs to strings, a new Robotic
- debugger, the SAVE_COUNTERS and LOAD_COUNTERS function counters,
- options to help create standalone game releases, the ability to
- assign character sets/palettes to a board to load on entry, and
- resetting boards on entry. The size limit of Robotic bytecode
- has been increased to 2MB.
- Other important mentions: MegaZeux has been updated to use
- SDL 2.0 and libmodplug 0.8.9.0. The SAVE_WORLD function counter
- has been permanently removed. The downver utility has been
- temporarily discontinued, as adapting it to this release would
- have been a considerable amount of work. Instead, there is a new
- option in the Export menu in the editor to export a 2.84 world.
- Enjoy, and try not to get overwhelmed by all of the new stuff!
- FEATURES
- + Added a built-in robot debugger. See the Debug Mode section of
- the help file for details.
- + Added the COMMANDS_STOP special counter to MegaZeux. When a
- robot executes a number of commands exceeding this value while
- testing, the robot debugger will be enabled automatically and
- will open. During regular gameplay, it will be ignored. The
- default value of COMMANDS_STOP is 2000000.
- + The counter debugger now remembers its previous position after
- being reopened.
- + Added commands_cycle and commands_total variables to the Robot
- section of the counter debugger. See the Debug Mode section of
- the help file for details.
- + Certain types specified as 255 on the char ID table are now
- treated as Custom* types when placed and selected in the
- editor. If you switched a type to char ID 255 in a game that
- already had that type, the parameters will not be changed
- (and the types will still be char 0 if they were already
- placed in the world). When making a type a Custom* type from
- the global chars dialog, it will appear visually different in
- the list and in the character selection window, and also ask
- for confirmation.
- + The enter menu can be closed with escape now.
- + In the editor, the Backspace key now removes the top layer
- and brings the under layer to the top, as a compliment to Del.
- This does not affect the text entry behavior.
- + Seeking in the String section of the counter debugger will now
- ignore the $ prefix.
- + Tentative joypad POV hat support added: joyNhat = U, D, L, R
- + The BUTTONS counter has been extended to support the mouse
- wheel and X1/X2 buttons.
- + Strings can now be used in the LOAD PALETTE "file" command in
- place of a file name, i.e. LOAD PALETTE "$string+10".
- + Strings can now be used in the LOAD CHAR SET "file" command in
- place of a file name, i.e. LOAD CHAR SET "@240$chars".
- + Strings can now be used for the special counter LOAD_ROBOT in
- place of a file name, i.e. set "$str" "LOAD_ROBOT".
- + Strings can now be used for saving and loading MZMs in place
- of a file name, i.e. put "@$str" image_file... (Lancer-X)
- + Added ESCAPE_MENU counter. When set to 0, this counter will
- prevent pressing escape from opening the exit gameplay menu.
- This will not affect any other escape menus in MZX, and the
- exit gameplay menu can still be opened by other means, such as
- ALT+F4, CTRL+C, the window close button, etc.
- + Added EXIT_GAME function counter. When set to anything but 0,
- this will cause MegaZeux to exit to the title screen. This has
- no effect on the title screen.
- + Added the ternary operator (?:) to expressions. If the value
- to the left of ? is not equal to zero, the expression between
- the ? and the : will be evaluated. If the value to the left of
- ? is equal to zero, the expression to the right of : will be
- evaluated.
- + Added SAVE_COUNTERS and LOAD_COUNTERS special counters. These
- will save and load files containing every counter and string
- from the world they're used in, respectively. These files are
- not version checked, and may be used like save files.
- + Robots now keep their robot IDs after reloading saves.
- + Added standalone mode. The config parameters standalone_mode
- and no_titlescreen can now be used (from MZXRun only) to
- create standalone versions of MZX with the ability to fully
- customise the player's experience. See config.txt for details.
- (Lancer-X)
- + The minimal help bar now displays robot memory and the current
- board mod when contextually appropriate.
- + The minimal help options for the board and robot editors are
- now enabled by default.
- + Shaders can now be changed from the F2 menu when using the
- GLSL renderer. The user can select a fragment shader from the
- assets/shaders/extra/ directory. If a matching vertex shader
- exists, it will be loaded alongside the fragment shader.
- Otherwise, MZX will fall back to the default vertex shader.
- + On Linux and Mac OS X the configuration file will be copied
- into the user's home directory and given the name
- .megazeux-config if it is not already present. This config
- file will then be used instead of the global one. (Lancer-X)
- + Added unbound sprites. Sprites can be unbound from the grid by
- setting spr#_unbound to 1. Their coordinates will now refer to
- the sprite's location in pixels, not tiles. spr#_width,
- height, refx and refy still refer to chars; however, spr#_x,
- y, cx, cy, cwidth and cheight are all in pixels. Unbound
- sprites do not work with all renderers; currently, out of the
- renderers available on the PC platforms, the overlay2 renderer
- lacks this functionality. (Lancer-X)
- + Unbound sprites do not let char 32 or blank characters (when
- in ccheck 2) through like regular sprites do. Instead, set
- spr#_tcol to a color that will be transparent when the unbound
- sprite is drawn. (Lancer-X)
- + Unbound sprites can make use of additional hidden charsets.
- There are an additional 14 charsets beyond the default that
- can be modified through using load char set or char edit.
- (e.g. load char set "@256charset.chr")
- A sprite can be set to refer to these later chars with the
- spr#_offset counter. The offset value is then added to each
- char in the sprite. You can use this to refer to higher char
- sets.
- (e.g. set "spr0_offset" 256)
- Offset values can also be set to locations within a char set.
- (Lancer-X)
- + To allow you to access the extended charsets, the @ option to
- load char set now takes up to 4 digits, rather than merely 3.
- The + option still only allows 2 hex digits. (Lancer-X)
- + The colors used by tiles of a given color # in SMZX mode 3
- can now be rebound using the "smzx_idx#,#" counters.
- (e.g. set "smzx_idx7,0" 32)
- Now if you put down a c07 tile, all 00 pixels will refer to
- color 32 (as opposed to color 0 in SMZX mode 2 or color 7 in
- SMZX mode 1). These values are reset whenever the SMZX mode is
- changed. Once again, this is only available to renderers that
- support unbound sprites. (Lancer-X)
- + Edited worlds now retain their world version until resaved.
- Before, they would lose their world version after testing.
- + Added world version display to the debug window.
- + Added GOOP_WALK counter for robots.
- + Added "Reset board on entry" parameter for boards. When set,
- the board will reset to its original state when the board is
- entered during gameplay. This setting can be saved as a board
- default.
- + Added "Load charset on entry" parameter for boards. When set,
- MegaZeux will load the selected charset file when the board
- is entered during gameplay. This setting can be saved as a
- board default.
- + Added "Load palette on entry" parameter for boards. When set,
- MegaZeux will load the selected palette file when the board
- is entered during gameplay. This setting can be saved as a
- board default.
- + Maximum robot size has been increased from 64kb to 2mb.
- (Lancer-X)
- + Debytecode: the LOAD_SOURCE_FILE special counter can now be
- used to load and compile a robot program from source code.
- This can be used with either a file or a string as input.
- + Debytecode: the robot editor's import robot menu now supports
- loading legacy source code.
- BUGFIXES
- + Fixed crash bug when using ALT+Z (Clear Board).
- + Fixed crash bug when attempting to view the help file in the
- updater.
- + Fixed crash bug when attempting to use SMZX_R/G/B with out-of-
- range indexes.
- + Fixed crash on exit when the config file did not explicitly
- specify update hosts.
- + Fixed memory leak involving bounds-breaking FREADn calls.
- + Fixed counter debugger issue where counters and strings
- starting with chars over 'Z' would cause everything in their
- section to be placed into the '#' list.
- + Dialog window labels can not be put into focus by clicking
- them with the mouse anymore.
- + Dialog windows closed by pressing escape will now close only
- on a new press instead of whenever the key is held.
- + Load (F4)/quickload (F10) on invalid save files in-game leaves
- the current game running instead of exiting to the titlescreen
- or editor.
- + Fixed issue where counter debugger would display wrong values
- for the robot LOCAL counters.
- + Fixed robot editor issue where global robot coords would be
- reloaded as 65535.
- + Fixed issue where board defaults would be reset after leaving
- testing until the world was manually reloaded.
- + Fixed issue where the Board Info dialog would not close when
- 'Cancel' was selected.
- + Fixed bug where chars 254 and 255 would not be reverted back
- to their defaults via F4/F5.
- + Fixed bug where player would move onto goop when walking into
- enemys on top of goop.
- + Fixed bug where 'enter' would be detected in loaded save files
- when loading from a title screen.
- + Fixed issue where MZX was using the world file version instead
- of the internal MZX version when saving MZMs and determining
- whether it could load MZMs both within the editor and in game.
- + Changed the caption behavior in the world editor as to refresh
- only when board values are synchronized.
- + Fixed bug where, when exiting gameplay, the world would keep
- running on the title screen if MegaZeux lost read access to
- the world file.
- + Fixed minor bug where trying to load a nonexistant mod would
- change MOD_NAME's output while the previous mod still played.
- + Fixed a Windows-only bug, where attempting to load a Robotic
- file in the Robot Editor or with LOAD_ROBOT would not load the
- entire file if the file contained 0x1A (char 26).
- + Fixed a bug where the lazer animation would fail to complete.
- + Fixed bug where the VOLUME # and MOD FADE # # inputs could go
- out of range, resulting in ear-piercing white noise. Inputs
- now wrap between 0 and 255 for compatibility reasons.
- + Fixed bug where certain unicode values could crash MZX in the
- character selection dialog.
- + Fixed bug where : "keyN" would not work on the Pandora.
- + Fixed a bug where FREAD could create a string larger than the
- maximum string size.
- + In the sprite section of the counter debugger, the spr_clistN
- values were incorrectly labelled as "spr_collisionN". Fixed.
- + Fixed counter debugger crash when selecting certain strings
- containing escaped values.
- + Added compatibility for the cycle-ending SHOOT, SHOOTMISSILE,
- SHOOTSEEKER, and SPITFIRE commands from MegaZeux 2.83.
- + Fixed crash bug when attempting to use file counters with
- paths equal to or longer than 512 chars in length. MegaZeux
- will now ignore such paths.
- + Fixed bug where MZX would crash with out-of-bounds joystick
- key mappings.
- + Fixed a bug where robots could not push the SliderNS type to
- the south.
- + Fixed a bug where a robot using #return or #top multiple times
- within a single command could cause a crash.
- + Fixed a port regression where IF ANY would continue to iterate
- over the board after finding a match, potentially triggering
- multiple subroutines, #return, or #top labels.
- + Fixed a bug where MZM error messages could repeat indefinitely
- and lock up MZX.
- + Fixed a bug where the (#)PUSHED label would not be sent to the
- first object in a row of pushed objects if that object was a
- robot.
- + Fixed support for PPC Linux builds. (Insidious)
- + Fixed a bug where a robot sent a subroutine would restart the
- command it was executing upon #return if the command was a
- multi-cycle command. This fix applies to worlds saved in 2.90
- and later only.
- + Fixed a bug where ALT+F4 would cause menus to open instead of/
- in addition to triggering an exit event.
- + Fixed a bug where subdirectory mods with different types of
- slashes in their names would fail to be recognized as the same
- mod.
- + Fixed a bug where SMZX palette intensities were not saved.
- + Made the opengl2 and glsl renderers endian-correct. (Lancer-X)
- + Fixed a bug where keystrokes were getting lost during event
- processing. (Lancer-X)
- + The UI now uses the regular MZX mode and the protected palette
- when playing SMZX games. This is only available to renderers
- that support unbound sprites. (Lancer-X)
- + Changing from SMZX mode 1 to 0 correctly restores the palette.
- (Lancer-X)
- + Fixed a bug where the tree list in the counter debugger would
- rapidly scroll through elements when clicked.
- + Fixed a bug where the updater, on failing to receive data from
- the server, would consume large amounts of CPU before timing
- out. (Lancer-X)
- + Fixed various bugs related to the pushing of sensors.
- (Lancer-X)
- + Fixed a bug where MZX would crash in some cases when testing
- after adding/importing new boards into a world.
- + Made KEY a board counter <=2.70. Also added masking <=2.62 to
- make Oath Demo work again. (Lancer-X)
- + Bullet types shot by robots clamped to 0-2. (Lancer-X)
- + SAVE_GAME and SAVE_WORLD now happen at the end of a cycle, not
- immediately. (Lancer-X)
- + SAVE_WORLD no longer exists. (Lancer-X)
- + Labels at the end of a program no longer get randomly sorted
- first and stop the actual first instance of that label being
- called. This fixes a bug in the Dark Corner 'Zane' demo.
- (Lancer-X)
- + Copy and copy block in pre-port MZX games now preserves the
- state of any robots copied. (Lancer-X)
- + Copying and pasting robot code with LF line endings on Windows
- now works. (Lancer-X)
- + MegaZeux can now be exited during an infinite loop. (Lancer-X)
- + Fixed a bug where SAVE_GAME on the first cycle of a board
- would cause the game to be faded out on load. This still
- affects legacy worlds. (Lancer-X)
- + Fixed a bug where trying to create new counters called "fread"
- or "fread_counter" in the counter debugger would cause the
- file being read to advance.
- + Fixed a bug where the numpad was unable to be used to control
- the player, despite being identical to the cursor keys for
- every other situation. (Lancer-X)
- + Fixed a bug where pre-port worlds could play any number of
- concurrent samples. This makes portions of Bernard the Bard
- quite cacophonous. (Lancer-X)
- + Fixed a bug where per-game config files could set options they
- weren't supposed to be able to.
- DEVELOPERS
- + Fixed linking bug when attempting to make a modular build of
- MegaZeux in Debian/armhf. -fPIC is now enabled for modular
- builds on all platforms. (Insidious, ajs)
- + Added SDL 2.0 support. At the moment, the overlay renderers
- are not accelerated by SDL 2.0 and may be slower than their
- SDL 1.2 counterparts. Other minor inconsistencies may exist
- between the two versions. (ajs)
- + Keycode help diagram replaced with an HTML file (from the
- older PNG file). This will make future updates much easier.
- + Updated NDS, Wii and PSP ports to latest devkitpro toolchains.
- + Updated libmodplug to version 0.8.9.0. (asiekierka)
- + Added experimental libxmp support. (asiekierka)
- + Added experimental libopenmpt support. (asiekierka)
- + New rendering architecture that mostly sits alongside the old
- rendering architecture. There is a new function implemented by
- supporting renderers: render_layer(). This provides a layer
- in a similar form to the text_video array in graphics and
- expects that to be drawn on the screen. This is called once
- for each layer that is drawn- this means the board, overlay,
- UI and sprites. Each layer can have a different SMZX mode,
- although at the moment this is only used to allow the UI to
- remain in regular MZX mode while the game or editor is in SMZX
- mode. The render_layer() function is only called if it is
- implemented by the renderer and if there is something on the
- screen that can only be drawn by the renderer (e.g. unbound
- sprites, or UI elements in an SMZX game) (Lancer-X)
- + LibSDL2 support is now the default. It can still be disabled
- by passing --disable-libsdl2 to config.sh. (Lancer-X)
- December 24, 2012 - MZX 2.84c
- Hey all, new version of MegaZeux here! And hopefully without any
- crashes this time around! Haha yeah right.
- The most notable thing this release (besides fixed crash bugs,
- as usual) is the new counter debugger! Give it a try and tell us
- what you think!
- Counter binary search has been replaced with a hash table in
- versions of MegaZeux for most platforms. This has resulted in
- slightly faster counter lookups, and MUCH faster creation of
- counters, since MegaZeux doesn't have to keep the list ordered.
- The hash table is turned off for NDS builds for now due to tight
- memory constraints.
- Otherwise, most of the new features are editor enhancements and
- modifications. Notable mentions are reordering the board list
- with 'M' and a custom undo history size.
- FEATURES
- + The functionality of the F11 counter/string debugger has been
- expanded to include sprites, robots, and miscellaneous world
- and board variables. The ability to modify many of these vars
- is limited and a large portion are read-only. In addition, you
- may add new counters and strings, hide empty counters/strings
- (does not affect built-in variables), and search by name and
- contents. Export is still limited to counters and strings.
- + Max string length has been increased from 1MiB (1048576 bytes)
- to 4MiB (4194304 bytes).
- + Board mods may now be selected from subdirectories of the game
- folder in the ALT+N dialog.
- + The title bar now displays the world and editing board/robot
- names based on context.
- + Fire Burns Space and Fire Burns Forever are off by default.
- + You may now specify the size of the undo history in the char
- editor, and the history affects the entire char set. Undo is
- still ALT+U, redo is now ALT+R.
- + You may now use the -/+ keys in the world editor to move to
- the previous/next boards in the board list, and Shift+Arrows
- to change to the boards linked by board edge.
- + You may now move the current board anywhere in the board list
- with M. You may not move the title screen board.
- + View mode in the board editor (V) will start from the current
- location of the screen now rather than at the top-left corner.
- + Config file options for default board settings added, as well
- as the ability to save these per-world from the editor.
- + Ctrl+G - Goto board position at X,Y.
- + png2smzx now requires less arguments and has an option to skip
- a char (generally char 32 will be useful to skip).
- + Debytecode: The robotic editor now asks for a confirmation to
- save the program on exit.
- BUGFIXES
- + Fixed a bug in the 'glsl' renderer that caused the cursor
- color to be ignored (always white). This caused the cursor to
- not be visible if shown on a white background. (ajs)
- + Setting $string.length will not cause memory corruption now.
- In addition, its pre-2.84 behavior of intentionally allocating
- the string past the set length has been restored, but the
- length itself will still be set to the correct value.
- + Added bounds check to INC "$string" "value". Attempts to
- increase a string past its maximum length (4 MiB, or 4194304
- bytes) will now fail.
- + Fixed MegaZeux crash that could sometimes occur when a string
- was increased by itself.
- + Fixed MegaZeux crash that could occur when exiting the editor
- to a world file that failed validation.
- + Rolled string->storage_space into string->name to prevent
- buffer overflow errors and crashes. (Mr_Alert)
- + Fixed crash that would occur when attempting to type in a dir
- in the ALT+N dialog.
- + Fixed a bug where copy block $string would apply REL twice.
- + Thanatos Insignia (DoZ Q1 2011, 98485) will now play without
- freezing both normally AND after loading a save. Robots will
- not be incorrectly versioned with the save format magic now.
- + Fixed bug where ALT+M wouldn't always edit non-stored types.
- + Fixed bug where ! could not be used as a substitute for ~.
- + Fixed a bug where tab-draw and block actions would carry
- between board and overlay editing. ALT+O now sets the drawing
- mode back to normal on a switch.
- + ALT+M now edits the overlay instead of the board while editing
- the overlay.
- + Quick-load (F10 during gameplay) will not work if the load
- menu (F4) has been disabled with the LOAD_MENU counter.
- + Fixed a bug where the listening mod directory would stay the
- same as the directory the editor was opened in.
- + The listening mod now continues to play after world and board
- changes, and also after the board mod has been changed by
- ALT+N or Shift+8/*.
- + LOAD_GAME will not incorrectly trigger JUSTENTERED anymore.
- + Palette/intensity changes made on the same cycle as a teleport
- player command are now properly taken into account. This fixes
- a game-stopping regression in Sponkgo's Legendary Journey
- where leaving the second stage's bonus area would leave the
- color intensity at 0.
- + SMZX mode is now disabled when leaving the editor if it was
- enabled in the editor via F11.
- + Fixed potential crash bug where robot bytecode files were not
- being validated before being loaded with LOAD_BC.
- + Fixed minor message box bug dating back to DOS where a message
- box starting with an unavailable option would begin with the
- cursor on a blank line.
- + Fixed crash that happened when typing over bounds while
- renaming a file in a file manager dialog. File and directory
- renaming now use a popup dialog akin to ALT+N.
- + Files with names longer than 55 chars may now be selected in
- file managers. The limit for typing in a file name is still 55
- chars. You may not enter a blank line as a file name anymore.
- + Fixed segfault when attempting to read THIS_COLOR for the
- global robot. It will now always return -1.
- DEVELOPERS
- + Overhauled txt2hlp. Error messages now differentiate between
- hyperlinks and labels and will take the display chars ~ and &
- into account. Eventually, the goal should be to get rid of
- txt2hlp altogether and have MZX load straight from the .txt
- file.
- + Added compile option to use uthash for counter/string lookups
- as opposed to binary search. Ideally, this will vastly improve
- lookup speeds for large numbers of counters/strings, but will
- consume more memory. (thanks to Lancer-X for the modified
- uthash header file)
- June 20, 2012 - MZX 2.84b
- Less than three weeks after the last one, MegaZeux 2.84b is here a few weeks
- early to fix a key regression regarding the use of REL commands with the
- COPY x y dx dy command. While several new features have been added, this
- release was mostly about rooting out as many crash bugs from MegaZeux as
- possible. An official public beta release of debytecode has been pushed off
- once again due to time constraints.
- Most notable as far as new features go, pressing 'E' while a game's title
- screen is running will now take you directly to that world in the editor. A
- blank new world may still be created with 'F8', and now with the 'N' key. The
- function key corresponding to the new 'E' functionality is 'F9'.
- A major new aspect of this version, which could be seen as a bugfix or as a
- new feature, is MegaZeux's ability to validate the MZX, MZB, MZM, and SAV file
- formats. Validation has been rigorously tested and refined, and a comprehensive
- list of most world files that fail any check is available on the MZX Wiki. File
- load crashes and force-quit "Out of memory" errors in these instances are nearly
- a thing of the past.
- One final major change regards the file manager dialogs (Load Save Game, etc).
- These dialogs have been internally overhauled to avoid permanent directory
- changes unless a valid world or save file has been loaded. If any bugs are
- experienced using these, they should be reported to the MZX Bug Tracker.
- FEATURES
- + Pressing 'E' or 'F9' on a title screen will now open the current world for
- editing. Press 'N' or 'F8' to create a new world.
- + Multiple hosts may now be defined in config.txt. Update attempts will
- be carried out in the order they are defined.
- + A startup path may be defined in config.txt ("startup_path").
- + Specifying the backup filename with a directory, ex. "backup/file", will now
- silently attempt to create the directory if it does not exist.
- + MZM3 is now forward compatible (robots will be dummied out).
- BUGFIXES
- + World validation has been strengthened, preventing disasterous loads of most
- non-world files. Mostly intact/valid worlds, such as HUNTDRAK.MZX, can be
- loaded -- corrupt/missing boards will be replaced with blank boards, corrupt
- robots will be replaced by robots with empty programs, and so on. If more
- robots/scrolls/signs are found on a board than their data suggests there
- should be, the extras will be replaced with customblocks. Back up the version
- of the world with errors in this instance, as the robots' code or scroll text
- may still be salvageable from the world data.
- + Fixed a long-standing memory corruption bug in the shoot command introduced
- by the port.
- + Mac OS X: MegaZeux now uses /Users/[username] as the default starting
- directory. Apps previously would always start at the filesystem root. (ajs)
- + Fixed dangerous crash-causing bug where the editor would not chdir back
- to the correct directory after testing.
- + MegaZeux, after saving a world to a new directory, now chdirs to the new
- current world file's directory.
- + Changed behavior where a failed save file load would fade the still-running
- world out of focus. MegaZeux now leaves the world in focus.
- + All failed world/save loads leave the current world running and in the same
- working directory.
- + When startup_file is defined as a directory at the command line, MZX chdirs
- to the directory instead of attempting to open it as a world file. In the
- config file, the directory is pruned off since there's a new config option
- for the startup path.
- + Fixed regression where the rel commands would be ignored for board to board
- copy x y dx dy.
- + Updated MZX_SPEED in the counter debugger, where it was still getting clamped
- from 1 to 9.
- + COLOR FADE IN and COLOR FADE OUT (and all built-in uses of them) now correctly
- respect any COLOR INTENSITY changes made before they are used.
- + In file selection dialogs, when attempting to make a directory that already
- exists with ALT+N, MZX now shows the correct file name and does not force the
- user to quit MegaZeux.
- + In file selection dialogs, when pressing ALT+D with a directory selected, MZX
- now correctly prompts to delete the selected directory instead of a file.
- + The option to import world files in the board editor now correctly takes the
- world version into account.
- + Savegame MZMs loaded into the editor now have their robots dummied out for
- safety purposes.
- + Fixed bug where INPUT STRING would not terminate lines longer than 71 chars
- after clipping them.
- + INPUT STRING and ASK do not allow either tabs (INPUT only) or line breaks
- (both) anymore.
- + Fixed bug where putting a scroll/sign in the editor buffer and then selecting
- something else could cause a crash on leaving the editor.
- + Temporary fix for MSVC bug where all window dialogs would freeze. (MZXGiant)
- + Temporary fix: board block actions will not corrupt robot source code in DBC
- anymore. (MZXGiant)
- DEVELOPERS
- + Switched debian prereq. and darwin libpng12 to libpng, switched darwin and
- default ldflags to use '--ldflags' instead of '--libs'.
- + Darwin CC/CXX compiler can now be specified on the command line. (ajs)
- + Cleaned up broken ifeq structure in darwin Makefile.in so ARCHes other than
- i686 can be built.
- + Updated MSVC dirent.h to the latest version (MZXGiant)
- + Added updated MSVC dependencies. (MZXGiant)
- June 1, 2012 - MZX 2.84
- The first version of MegaZeux to be released in two and a half years, this
- time with a vast number of bugfixes, several new features, and hopefully
- no new bugs.
- There's a new port to the Pandora platform from Exophase. There are no
- binaries for this platform yet, as ajs has not had time to set up the
- cross-compiler. Same goes for Android.
- Another major (internal) change this time around is that Exophase's
- experimental "debytecode" language modification has been merged. This still
- has some major bugs open against it, and missing features, so we won't be
- doing official releases yet. You can add support for this feature by
- passing "--enable-debytecode" to config.sh on all platforms.
- Thanks to Terryn, Exophase and MZXGiant for their contributions and to
- Lancer-X, Old-Sckool and Lachesis who reported and tracked the majority
- of bugs this time round.
- FEATURES
- + Added experimental port to Pandora. See arch/pandora/README for more
- information. (Exophase)
- + Directories may now be opened with FREAD_OPEN. This functionality
- can be used in conjunction with FREAD_POS and set "$str" FREAD.
- FREAD will set the string to "" when it has reached the end of the
- file listing.
- + MZX_SPEED can now be set up to 16 by a robot or from the F2 dialog
- menu. (Lachesis)
- + Numbers can now be temporarily backspaced past their minimum value
- to make typing a new number more intuitive in dialogs. (Lachesis)
- + Chars 0 and 255 can now be selected from the Edit Chars submenu of
- the Global Info menu. Using char 255 on a kind that would have
- previously denied it now gives a warning dialog. (Lachesis)
- + New Counter: SPACELOCK represents the default space functionality for
- the built-in player. Setting this counter to 0 disables it, allowing
- the player to move as normal when space is pressed. Setting it back
- to 1 enables it again. Defaults to 1. (Lachesis)
- + New Counter: FREAD_DELIMITER allows you to change the terminating
- char for the string FREAD function. The terminating char still
- defaults to '*'. A complementary FWRITE_DELIMITER function has been
- added as well. (Lachesis)
- + New Counter: ARCTANdy,dx takes two values and returns the angle
- with corrected quadrants as an alternative to using ATANdy with
- DIVIDER as dx, which was less intuitive and never documented
- properly. (Lachesis)
- + New Counters: MINv1,v2 and MAXv1,v2 return the minimum or maximum
- value between two inputs, respectively. Chain several of these in
- an expression or a loop for more arguments. (Lachesis)
- + New Counters: bchX,Y; bcoX,Y; bidX,Y; and bprX,Y are new shorthand
- access counters for BOARD_CHAR, BOARD_COLOR, BOARD_ID, and
- BOARD_PARAM. The same limitations to those counters apply to the
- new ones. (Lachesis)
- + New Counters: uchX,Y; ucoX,Y; uidX,Y; and uprX,Y are new shorthand
- access counters for the board's under layer. The same limitations
- apply to these as to their board counterparts. Additionally, these
- counters will fail if the same spot on the normal board is occupied
- by a floor-type (space, [dir]water, lava, fake, etc...). (Lachesis)
- + New Counters: ochX,Y and ocoX,Y are new shorthand access counters
- for the overlay. Like OVERLAY_CHAR and OVERLAY_COLOR, these are
- read-only to discourage the user from writing to these instead of
- using the much faster put [color] [char] overlay [x] [y]. (Lachesis)
- + Pressing ALT+G from the world editor now goes directly to the Global
- Robot without having to skip through the Global Info menu. (Lachesis)
- + MZM3 has been enabled for 2.84 and all following versions. The
- difference between MZM3 and MZM2 is that MZM3 stores a copy of the
- world version, allowing the robot format to change. (Lachesis)
- + COPY can now take + and # prefixes to its arguments. COPY BLOCK and
- COPY OVERLAY BLOCK can now take + prefixes to their first set of
- coordinates. (Lachesis)
- + Subroutine versions of TOUCH, BOMBED, INVINCO, PUSHED, PLAYERSHOT,
- NEUTRALSHOT, ENEMYSHOT, SHOT, PLAYERHIT, LAZER, SPITFIRE, GOOPTOUCHED,
- PLAYERHURT, KEY[char], KEYENTER, THUD, and EDGE have been added. These
- should ALWAYS be used in conjunction with LOCKSELF/ZAP and #RETURN or
- #TOP to keep the robot stack under control. Please remember that THUD
- and EDGE ignore LOCKSELF and their subroutine versions must be ZAPped.
- JUSTENTERED, JUSTLOADED, and the sensor labels have been excluded from
- this due to various reasons. (Lachesis)
- BUGFIXES
- + Fixed a bug where LOAD_ROBOT or LOAD_BC would not reset the stack
- pointer for newly loaded programs. This could cause crashes if a robot
- popped the stack in the new program.
- + Fixed a bug where range checking of BOARD_X and BOARD_Y would sometimes
- not be done correctly, leading to crashes.
- + Strings in the debug menu list no longer interpret any color codes they
- may contain.
- + Fixed a bug where a string would not be interpreted correctly if it
- used a '.' character in a splice parameter expression. Expressions such
- as IF "$str#('$str2.length'-4)" = "blah" THEN "label" will now work
- correctly.
- + Fixed negative sprN_cheight et al from crashing. (Exophase)
- + Placement of objects on the player will be blocked with an error dialog
- like DOS versions, instead of silently failing after setup. (MZXGiant)
- + Fixed a bug where LOAD_ROBOT would not properly parse lines of imported
- code that had leading whitespace. (MZXGiant)
- + Fixed an integer wrapping bug in debytecode, disallowed numeric literals
- outside of the bounds of a signed short. (MZXGiant)
- + Fixed a bug that would corrupt the UI palette if "set color" was run
- against a color index over 15. (MZXGiant)
- + If either board dimension is less than the editor viewport, the character
- and colors used to indicate space outside of the board are taken from
- protected sets. In game, they are taken from the game's sets.
- + Increase limit on difference for RANDOM "A" TO "B" to UINT_MAX rather
- than INT_MAX - 1 as it was previously. Since the entire range represented
- by a counter is now usable, there are no cases where RANDOM will "break".
- + Fix avalanche rings and potions to limit boulder placement to 1/18,
- matching the AVALANCHE command.
- + Fix corruption and possible crashes when using VIEWPORT SIZE to set the
- viewport to a size less than 80x25 but greater than the current board
- dimensions. The viewport will now always be clamped to board size.
- + Fix incorrectly changing horizontal mouse position on setting MOUSEY.
- (Mr_Alert)
- + Fixed overflow into protected character set when "Revert to..." is
- selected in the character editing dialog. (MZXGiant)
- + Music and SFX now mute when the updater launches and are restored when
- it is complete. (MZXGiant)
- + Fix odd string behaviour when copying between strings that happen to
- be stored close to each other in memory. This fixes a regression
- introduced by the "crash when pasting to and from the same string"
- fix in 2.82b.
- + The size/offset parameters for strings can now be specified in either
- order (#+ vs +#) and will behave correctly.
- + Revert bogus cycle-ending behaviour for SHOOT, SHOOTMISSILE,
- SHOOTSEEKER and SPITFIRE.
- + Improve cycle-ending compatibility with MZX versions prior to 2.80.
- Fixes games such as Kya's Sword and Stones & Roks II.
- + Restored shark's ability to move in goop.
- + Clear SPR_YORDER upon loading a new world.
- + When transitioning between boards, compare the module filenames of the
- source and destination boards case-insensitively. A difference in case
- will no longer cause the board module to be incorrectly restarted.
- + Fixed rare rendering corruption in the load game dialog.
- + Fixed a bug where SEND "robot" TO "#return" could corrupt the program
- counter of the target robot if it had a stack pointer of zero.
- + Fixed some security issues with SMZX_PALETTE and LOAD_BC counters.
- + Only list/open regular files or symlinks to regular files in file
- dialogs. Special files are now ignored.
- + Opening directories with FWRITE_OPEN is now rejected properly on all
- platforms.
- + Fixed a bug where a file would be re-opened for read/write, even if
- the file was missing or an I/O error occurred before saving.
- + Fixed a bug where MZX could occasionally crash due to label list
- corruption when copying robots from heap locations greater than
- 2^32 bytes apart (only affected 64bit builds).
- + Stopped SET "var" <command> from assembling. Some invalid uses of
- command tokens were already being ignored, but this was just luck.
- + Sprites with color c?? (inherited "natural" colors) will correctly
- inherit the colors of special characters such as the player and other
- self-colored built-ins.
- + Debytecode's legacy expression converter should use is_string()
- instead of its own (buggy) hand-rolled version. Fixes crash when
- converting CoAZ.
- + The editor no longer incorrectly clamps the intelligence of sharks,
- spitting tigers and spiders to <=4, and no longer clamps the HP of
- dragons to <=4. (Lancer-X)
- + Accept SET EDGE COLOR "string" in addition to SET EDGE COLOR c??.
- + Fixed NDS port initialization on DSi devices. (asiekierka)
- + Fixed a bug in the joystick code where centering an axis clears
- the previous axis button. (iamgreaser)
- + Fixed a bug that allowed vlayer->board COPY BLOCK to overwrite
- player. Blocks that would overwrite the player are now ignored.
- + Fixed a 2.81e regression that allowed SENDs to self to ignore
- LOCKSELF.
- + Setting $str.length now makes $str the length specified. (Lachesis)
- + Caps Lock no longer interferes with dialog box text input. (Lachesis)
- + Increasing the size of a string with $str.length, $str.N, or with
- a splice now wipes old string data with char 32s.
- + Dialogs (especially "Exit gameplay - Are you sure?") now require the
- user to have actually hit ESC to close, making escaping busyloops
- and message loops much easier. (Lachesis)
- + Added a compatibility fix for different label caching in 2.80 through
- 2.83 that allowed constructs such as : "LABEL" / SEND "ALL" "LABEL"
- on an unlocked robot to continue instead of getting caught in a loop.
- The altered label caching caused #98485 Thanatos Insignia to lock up
- in an unescapable busyloop in GIT versions. (Lachesis)
- + MOD "[lead-in file]*" now works properly. In previous versions of the
- port, this construct would result in the lead-in file failing to play
- and the wildcard mod restarting when the player re-entered and re-
- exited the board. (Lachesis)
- + Fixed a bug where mod "*" would cause the mod to restart when entering
- another board with the same playing mod. (Lachesis)
- + ALT+D (Default palette) now requires a confirmation. (Lachesis)
- + The COMMANDS counter is now saved as a 32-bit variable. (Lachesis)
- + The LOOPCOUNT counter has been moved to save-only data and is now
- saved as a 32-bit variable. (Lachesis)
- + Fixed a bug where not all whirlpools were being considered as such,
- notably during the transport board scan. (Lachesis)
- + The abilities of PLAY "&file&" to play at multiple frequencies and
- to parse multiple files have been restored. (Lachesis)
- + As of MZX 2.84, BOARD_COLOR will now ignore the under color of any
- object with a BG color of 0 that is on top of something. Worlds that
- relied on this between 2.80 and 2.83 are unaffected. (Lachesis)
- + Setting BIMESG to 0 will now disable Game Over's auto-centering of the
- message row. (Lachesis)
- + The DIVIDER counter's documentation has been updated to explain its
- true purpose.
- + Fixed an editor bug where canceling a world load could cause MZX to
- forget the filename of the current world. (Lachesis)
- + Pressing ALT+M in the world editor now edits anything with parameters,
- not just Robots, Signs/Scrolls, and Sensors.
- DEVELOPERS
- + Source tarballs are now generated in XZ (LZMA2) format.
- + Make hlp2txt utility work correctly on Windows platforms.
- + Updated and repaired MSVC project for Visual Studio 2010. (MZXGiant)
- + Win32 binaries are built ASLR-capable (via pefix).
- + Version control was changed from SVN to Git; the repo is at:
- http://github.com/ajs1984/megazeux
- + The EGL backend now supports Mesa's EGL implementation on X11.
- + Imported libmodplug 0.8.8.4 and rebased all patches.
- + Introduced SOCKS4/4a/5 support transparently into the network layer.
- (MZXGiant)
- December 29, 2009 - MZX 2.83
- It's been a year since the last release, due in part to my reduced free
- time, and less contribution from other developers in 2009. I'd also like
- to believe that 2.82b was such a good release, there was no need to rush.
- There's over 30 bugs fixed this time. A few features I had to withhold for
- 2.82b have been added; sample loop markers and some changes to the board
- file format necessitated the bump to 2.83. Logicow's GLSL renderer has
- finally made it in (various bits had to be re-written to extend
- portability to other platforms).
- There's a new (semi-complete) Android port this time; I hope to complete
- it, and provide binaries for Android 2.0 phones, in 2.83b.
- Thanks go out to the usual suspects -- Terryn, Mr_Alert, Logicow, kvance,
- Lancer-X, revvy and Exophase -- for supporting development this year.
- USERS
- + Added support for loop markers in WAV and OGG files. The WAV loop support uses
- the "smpl" chunk used by ModPlug Tracker and Wavosaur among others. Only the
- first loop is used, and only forward looping is supported. The OGG loop
- support uses the "LOOPSTART" and "LOOPLENGTH" tags as used by RPG Maker VX.
- (Mr_Alert)
- + Added OpenGL Shader Language (glsl) renderer which uses shaders to render
- and scale the video. This renderer is compatible with Open GL >=2.0 and
- Open GL-ES 2.0 video cards only. A variety of shader programs have been
- provided and these can be customized. Performance of all MZX modes
- (including SMZX) is excellent. (Logicow, ajs)
- + Files will no longer be silently overwritten by save dialogs if the user
- enters an existing filename without the default extension. (revvy)
- + The string editor in the counter debug menu (F11) now escapes newlines
- and backslashes to prevent UI corruption.
- + Fix a bug where the LOAD_GAME counter handler could continue to use the
- old board state after load, causing crashes. (Lancer-X)
- + Fixed a bug where status counters containing numbers >6 characters would
- cause MegaZeux to crash or behave strangely.
- + Fix a bug in the robot editor's find/replace function that caused crashes
- when replacing a string with another longer string, with a replacement at
- the end of a line.
- + Programmatically writing to a read-only "built-in" counter will no longer
- allocate it general heap space. This prevents writes from showing up in
- the F11 counter debugger that are inaccessible from robotic.
- + Fix a bug that caused the SMZX mode 3 palette to become corrupted upon
- entering the char editor (the editor would re-write colours 2-4 and not
- restore them from backup correctly).
- + Fix a bug where a robot program would never progress if the subroutine
- stack was popped more times than it was pushed (via return or top).
- + On UNIX platforms a desktop/menu entry is now installed by default, using
- the existing icon. (Sci-freak)
- + Clamp score to >= 0 if world <= 2.70. Fixes "Gates: The Puzzles" and
- possibly other old titles depending on this behavior. (Exophase)
- + Fullscreen modes will now automatically use your current desktop resolution
- if using any hardware renderer (i.e. not the default software renderer). To
- get the old behaviour back you must set fullscreen_resolution explicitly.
- + Fix a bug where web and thick web would be treated the same.
- + Fixed a bug in the updater where modified/replaced files would be considered
- for deletion.
- + Fixed a bug on case-sensitive filesystems where saving a game, world or MZM
- could fail to overwrite any existing file by the same name (if matched
- case insensitively).
- + Do not apply masking to chars 32-127 in signs or scrolls when playing a
- world. Previously, even the mask_midchars option would have no effect on
- the display of signs or scrolls. This has been broken since 2.80g.
- + Re-work board editor's Alt+H option to provide minimal editor (one row)
- status info, rather than completely hiding the help.
- + The checkres utility now checks the global robot and custom sfx tables
- for missing resources.
- + Chests can be added with Hi Bombs (omission noted by zzo38).
- + Fix IF c?? Sprite p?? # # "label" so that a non-wildcard parameter is
- respected (previously it would always just check sprite 0).
- + NDS port updated from dsmzx2 release. (kvance, ajs)
- + Updated SDL to 1.2.14 in Windows x86, Windows x64 and Mac OS X builds.
- + Security checks are no longer applied to filenames in module or sample
- playback in "listening only" modes in the editor.
- + Module volume is applied immediately before playback upon switching boards.
- This prevents one cycle of audio "leaking" at the wrong volume.
- + Prevent crash with negative string clip where clip + offset = 0. Clip is
- now correctly limited to total string length.
- + Help file is now optional for MZXRun, even with CONFIG_HELPSYS=1 builds.
- + Fix crash when robot editor macros expanded other macros.
- + The lock icon is no longer missing from the Items THING menu (F4).
- + A world to start up with can now be passed to megazeux without the
- startup_file= prefix. This makes megazeux consistent with other
- applications.
- + SHOOT, SHOOTMISSILE, SHOOTSEEKER and SPITFIRE now end the cycle, to restore
- compatibility with pre-port MZX and fix games such as Kya's Sword and
- Stones & Roks II.
- + Have IF [dir] PLAYER [color] [thing] [param] "label" interpret SEEK
- direction wrt robot coordinates, rather than player coordinates.
- Other directions are not affected.
- + Zapping a label at the end of a robot program will no longer corrupt the
- robot list, usually causing crashes.
- + Entering lines in the robot editor with leading or trailing spaces will be
- trimmed before the line is compiled.
- + The single quote characters encasing S_CHARACTER parameters in the robot
- editor will now use the protected (GUI) charset rather than the game one.
- + Add a "system_mouse" config.txt option that allows the mouse cursor to be
- replaced with the system mouse cursor, rather than being drawn by MegaZeux.
- + Disallow placing player clones with SET "board_id" 127.
- + Relaxed file name limit on board MOD file. The board MOD can now be as long
- as the limit imposed by file dialog's input box (previously limited to 12
- characters).
- + Truncation of currently open input/output file names will now only occur
- at MAX_PATH bytes (typically 512 characters). The previous limit was 13
- characters.
- + Relaxed limit of INPUT string and bottom ("*") messages from 80 characters
- to ROBOT_MAX_TR (512) characters. In the case of bottom messages this can
- be usefully exploited to ~200 characters.
- + Progress meter will be shown for world decrypt on console platforms.
- + Fix a bug where a malformatted BMP header would be written (length too
- short, didn't include dummy channel in BMP palette). (Mr_Alert)
- + Optimize audio locking; do file I/O outside of critical sections to
- decrease stalling, particularly on platforms with slow I/O. (Mr_Alert)
- + Added support for MacOS 10.6 (Snow Leopard) and removed support for 10.3.
- + Loading a save game from robotic will now correctly restore intensities
- to their saved values.
- + Copy/pasting a block either with COPY BLOCK or the editor, where the
- copy would exceed the limit on robots/signs/scrolls/sensors, will no
- longer place junk at the target co-ordinates. Instead, the object's
- background will be copied in isolation.
- + Pasting from the clipboard, expanding a macro, or importing .txt
- or .bc files that would cause a robot to exceed the 64k limit now has
- the operation ignored at the point it exceeds the limit, rather than
- adding an unlimited number of unrecognized lines.
- + Fix a bug with the pc_speaker_on option which could cause the audio
- thread to block indefinitely when PC speaker audio was disabled.
- DEVELOPERS
- + MZXRun compilation can now be disabled. Compilation of pre-2.82b style
- non-modular builds requires `--disable-modular --disable-mzxrun'.
- + Disabling SDL can now be done with --disable-sdl and the resulting
- configuration will automatically disable any SDL-dependent components.
- This is useless to anybody except developers doing new ports.
- + Game directory, utility directory and resource directories can now
- be specified and will be respected on "make install". (Sci-freak, ajs)
- + Added experimental port to Android. See arch/android/README for more
- information.
- + Ported opengl1 and opengl2 renderers to OpenGL ES 1.x and glsl renderer
- to OpenGL ES 2.0, used increasingly by mobile devices.
- + Removed SDL dependency from NDS port. It only used it for timing and
- stuffed events.
- + On Windows platforms, binaries are processed with the `pefix' in-tree
- tool to eliminate data section differences in programs with identical
- texts. This minimizes the amount of content required to be sent for
- updates.
- + Updated Wii port: improved audio and video support, added USB mouse
- support, numerous optimizations and improved file selector. (Mr_Alert)
- December 29, 2008 - MZX 2.82b
- This release contains plenty of important bug fixes, ranging from regressions
- such as the broken command-line editor macro expansion to third party bugs
- like the Windows "directx" SDL video driver breakage.
- There are also some new ports and features. MegaZeux now runs on the Wii (port
- by Mr_Alert) and AmigaOS 4.x (port by myself and Spot from os4depot). The
- Windows x64 port has matured immensely and can now be considered stable.
- MacOS X builds now have clipboard support. The hardware stretching renderers
- now have a couple of fixed aspect ratio modes.
- The biggest feature of this release is the introduction of a portable network
- layer, which is currently being tested by the new built-in updater (F7/U).
- Internally, MegaZeux is now modularized and builds as several DLL and EXE
- files, which should make redesigning parts like the help system and editor
- a little easier, as well as allowing us to ship a "mzxrun" executable for
- the first time since 2.69c. This "mzxrun" executable is now used by a
- majority of the console ports.
- Contributions from Revvy, Mr_Alert, Terryn and Exophase have helped make
- this another solid release.
- USERS
- + Writing to $str.length (which previously did undefined things) will now
- truncate or enlarge the string to the size specified.
- + Removed filename size limit for FWRITE_MODIFY and FWRITE_APPEND. (Revvy)
- + Added support to the checkres tool to check worlds in non-local
- directories. (Revvy)
- + Fix an old bug with saving games and worlds from Robotic where a board could
- be prematurely "optimized", renumbering robot IDs within the same cycle. For
- commands like DIE this could cause unpredictable behaviour or simply crashes
- (if invoked in the same cycle). As a special case, end the cycle if either
- of these SET specials are used.
- + Mistaken or malicious file I/O such as set "$test" to "fread(-1>>1)" will
- no longer crash MegaZeux. The read size will be truncated to a contextual
- maximum for the current file.
- + Fixed a crash using "fwrite0" in conjunction with an empty string.
- + Fixed a bug where checking sprite_collisions on a disabled target sprite
- would unconditionally trigger (regardless of whether a collision was
- present or not).
- + Un-group the handling of the KEY and KEYn counters so that different
- compatibility checks can be applied to either counter. Fixes
- "Bocco Chronicles 1" and probably several other titles.
- + Fix a crash when using RIDn or ROBOT_ID_n in the same cycle as DIE for
- another robot positioned earlier in the board scan.
- + Fix poor sanity checks on BOARD_ID counter writes. Illegal character IDs such
- as -1 can no longer be used to bypass the check (causing subsequent crashes).
- + Windows builds now use a patched version of SDL 1.2.13 containing a fix
- for the directx+F10 issue.
- + Fix a bug where one robot could send another robot to "#return", with an
- address outside its program. In such cases, the robot will now terminate.
- + A "mzxrun" binary is now shipped alongside the editor-capable MZX binary.
- + Fix TIME/TIMERESET overflows with very large values. Board timeout is now
- programmatically limited to 32767, which is consistent with the Board Info
- control.
- + Clamp CHAR_X/CHAR_Y properly so that negative numbers can no longer be used
- to corrupt the editor charset and potentially other process memory.
- + Fix recent breakage of SHIFT+F{1,2,3,4} so that the percentage time spent
- displaying the original character and the '!' are equal.
- + Remove some bogus handling of lines containing "only" ';', ',' or ' '.
- + Honor user's robot character selection if they are holding shift when
- pressing return or space (would previously always return char 247).
- + Backspacing a line and then expanding a macro no longer restores the
- original line contents immediately after the expansion.
- + MacOS 10.x clipboard support (via Cocoa Pasteboard). Alt+Ins can be entered
- with Fn+Alt+Numpad0 on a Macbook or Powerbook keyboard.
- + Rendering glitches are no longer encountered when using the ' S_CHARACTER.
- + Fix robot editor glitches where the game charset SPACE would be used in
- places where the protected UI charset should be used instead.
- + The introductory help message is displayed if the load dialog is cancelled
- prior to loading a game. Hopefully the screen is now never totally blank.
- + The F7/F8 cheats can now be used freely in MZXRun (in MegaZeux proper they
- remain usable only in editor tests).
- + Saving to a directory above the MegaZeux startup directory, then attempting
- to save to this location again, will no longer crash MegaZeux. Instead, the
- parent directory will be changed into before the dialog is displayed.
- + Fixed numerous crash bugs with the scroll editor; it should be relatively
- usable now.
- + Writing to $str+0 is no longer interpreted in the same way as a plain
- write to $str. Instead, it behaves like writes to non-zero offsets (as more
- of a paste than a replace).
- + Display current X,Y position of robot in the robot editor status bar.
- + Fix directory rename so that it no longer displays garbage and/or crashes
- MegaZeux (Alt+R to rename a directory in any file picker).
- + In the robot editor, lines can now be split at a midpoint with enter and
- two consecutive lines merged together with backspace. (Exophase)
- + Fix use of status counter 6 and display of status counters in general,
- which has been broken since 2.80.
- + Fix swapping to encrypted worlds if initially the user decides to not
- decrypt the world. Previously, this would either crash, or loop forever.
- - Removed the legacy "force_resolution" option which was replaced long ago
- by the more accurate "fullscreen_resolution" option.
- + When using the OpenGL or overlay renderers, in either windowed or
- fullscreen mode, the aspect ratio can now be preserved as either 4:3
- (most similar to DOS) or 64:35 (most similar to the port). The display
- will be letterboxed or margins applied as appropriate. See the
- "video_ratio" configuration option for more information.
- + Fixed a bug on some systems where numlock could not be used as a key,
- only as a flag. The numlock "key" is now masked out of "key_code" and
- similar; hopefully this won't break any games.
- + Restored the meter widget from the old DOS MZX for use with the world
- loader and saver routines. This reassures users, especially on consoles,
- where loading a world can take a long time. (Mr_Alert)
- + On Windows, directx.bat now passes %cd% through to `start' so that features
- such as the updater continue to work. (MZXGiant)
- + Pasting into a string with set "$str+N" with an N > str.length will no
- longer crash MZX.
- + "Exit to DOS" is now "Exit MegaZeux" to reflect the multi-platform nature
- of the program.
- + Setting a substring size to zero with $string#0 will no longer return the
- whole string; it will instead return the empty string.
- + Accessing a substring with an offset >= $string.length will no longer return
- the last character from the string; it will instead return the empty string.
- + Writing beyond MAX_STRING_LEN (1MB) or using negative offsets (which has the
- same effect) no longer crashes. Instead, the write is ignored.
- + Fix crash when pasting to and from the same string, specifically in
- conjunction with $str+offset.
- + Fix bug where altering "num" in a GO DIR [num] or WAIT [num] while in
- process could cause the robot to stall forever. The robot will now only
- wait for either the cycles it has waited already, or the current "num"
- at that cycle.
- DEVELOPERS
- + Ported to OpenSolaris. You need to install `SUNWxorg-headers' if you want
- X11 clipboard support.
- + Remove dependency on SDL_image on non-win32 platforms when enabling
- the icon branding feature (see pngops.c).
- + Ported to AmigaOS. You need to install the clib2 version of libSDL and
- miniGL, and the build system assumes you are using a cross compiler.
- + Added experimental port to the Wii. See arch/wii/README for more
- information. (Mr_Alert)
- + get_path() in util.c now returns <0 for failure, or the length of the path
- for the given file. (Revvy)
- + Add a valgrind.supp file to suppress bugs in third party libraries when
- valgrinding MegaZeux.
- + Cleaned up all the ports and documented making new ports. The platforms
- "linux", "solaris" and "obsd" are now called "unix" and the "linux-static"
- platform is now "unix-devel" and available on all UNIX derivatives/clones.
- + Add a special hack to enable linking with --as-needed for DT_NEEDED link
- optimization for GNU ld platforms.
- + Updated MSVC projects. Fixed all warnings emitted by MSVC 2008, and
- implemented icon support with existing mingw resource files.
- + Use the GNU ld "debuglink" feature on all platforms to enable shipping of
- a side-by-side symbol package. Optimized release builds can now be
- debugged with minimal user effort.
- - Removed HOST_CC feature for cross compilation; since the utilities now
- intimately depend on the MZX runtime, they must be built with the same
- compiler.
- + MegaZeux now provides the option for "modular" linkage, factoring out the
- "core", "editor" and "network" features to shared objects that other
- binaries can link against. This feature works on the unix, mingw,
- amiga and darwin ports.
- + Added RPM .spec file. Capable of building (at least) Fedora 10 RPMs.
- June 10, 2008 - MZX 2.82
- Despite the increase in minor version, this release mostly targets bug and
- regression fixes. However, there ARE some additional new features, such as
- the introduction of the LOAD_MENU and mouse pixel counters, and refinement
- of the {FREAD,FWRITE}_COUNTER counter. (There are several other smaller
- features that are documented in the changelog.)
- SAVs from older worlds (requiring compatibility hacks) no longer fail to
- play (Darkness, etc. are affected). We've also done a good bit to fix
- compatibility with 2.70 and older.
- A new tool, "checkres", is now routinely packaged, allowing you to check
- your games for missing resource files (PALs, CHRs, etc.) before passing
- them on to other people. This should be especially handy for DoZ game
- submissions.
- The Nintendo DS port (Kevin Vance's "DsMZX") has been merged into this
- release. I'll provide binaries for GP2X, PSP and NDS this time, but I
- can't guarantee they'll work.
- Both of the snags from the last DoZ have been addressed -- the help system
- should no longer crash and the Block Action crashes should be reduced in
- frequency. However, there are still issues with pasting in the robot editor
- that remain unfixed (they're just really hard to reproduce). With your bug
- reports, I look forward to fixing this.
- As usual, thanks go out to Revvy and Mr_Alert for their contributions to
- the bug-fixing effort, and to Terryn for his unwavering dedication to
- creating and organising bug reports, and for testing our bug fixes.
- USERS
- + Fixed and improved quality of the half-width renderer for the GP2X port
- (Mr_Alert).
- + Have the numpad work correctly when numlock is disabled. Keys are no longer
- ignored by the MZX editor, and games should recognize them as before.
- + Added a tool, "checkres", which extracts all resources from a MegaZeux
- world or board file and lists them (or lists only those which are not
- found in the game directory. ZIP files are also supported (to a more
- limited extent) (ajs & Revvy, ideas from Exophase & Terryn).
- + Removed the bogus "F1 for Help" option from error dialogs, and finally
- get rid of the "** BETA **" banner on title boards in play mode.
- + Obsolete support for the AMS, DBM, DMF, MDL, MT2, PSM, PTM and UMX module
- formats. As noted for several versions in the help file, these are not
- loadable by MikMod. It is extremely unlikely any game uses these obscure
- formats, but denying their use is now enforced (at a robotic level).
- + Fix crash when writing to a MZX string at an illegal offset (< 0).
- + Fix returning from a subroutine invoked by a jump from a MZX text box
- class command so that it no longer skips the next impending line (after
- the text box).
- + Assemble single non-alphanum/punctuation characters as bytecode CHARACTER
- instead of bytecode STRING. Fixes bogus auto-quoting for commands like
- SCROLL CHAR (Revvy).
- + Switch the Win32 package back to using the "windib" SDL video driver,
- instead of the "directx" SDL video driver. The windib.bat file has been
- replaced with directx.bat, which has opposing semantics.
- + SAM/GDMs with converted WAV/S3M counterparts of zero length will be
- automatically re-converted. This hack can be used to procedurally
- regenerate WAV files from SAMs, or transparently work around on-disk
- corruption.
- + Strings are now limited to a maximum length of 1M. I'm open to suggestions
- over a better limit, but there must be a limit (set "$string.X" notation
- grows a string arbitrarily, so robotic can crash MZX when a string is resized
- beyond a reasonable limit).
- + Strings, when grown, will fill gaps with ' ' instead of garbage. This can be
- useful when the string grows after using the set "$string.X" notation; the
- rest of the string is no longer garbage, allowing the debugger to be used.
- + A robot that does a "put c?? Thing p?? [dir] player" and overwrites itself
- will no longer leak commands. Instead, if the robot overwrites itself, its
- program will end.
- + Fix message edges always showing up black, instead of whatever color 0
- is. (Revvy)
- + Change starting/max health and lives minimum to 1 instead of 0. (Revvy)
- + Some help system (F1) bugs have been fixed, hopefully mitigating some of
- the crashes people have been seeing.
- + Fix a bug on Linux where fclose() on a robot-opened file could, on world
- reload, occassionally crash (due to a stale handle). Fixes loading Toayarin
- saves multiple times in a row.
- + The new option "gl_vsync" has been added to allow the SDL "flip on vsync"
- in the OpenGL renderers to be forcibly enabled or disabled. This fixes a
- problem where speed 1 would only be as fast as the video refresh rate.
- + Setting the music volume to 0 (when using the ModPlug engine) now ensures
- that no music is audible. Previously, setting the volume to 0 would be
- equivalent to setting the volume to 1, which was still audible.
- + Upon exiting the initial load screen, and not entering the editor, the
- screen is now updated. This fixes rendering glitches in the MZX game
- window when overlapping the window with another, at the slight expense
- of CPU time.
- + If loading a save game from the title screen (or when no world has been
- loaded) do not send JUSTENTERED to all robots. This restores compatibility
- with MZX 2.70 and is consistent with loading a save from another board.
- + Counters with 10 digits and a negative sign are no longer truncated in
- the debug menu.
- + Correctly clamp (rather than truncate) the value passed through to a
- SET COLOR. Restores compatibility with 2.70, and fixes Xenogenesis.
- + Improve clipboard copy behaviour on Linux. Some actions are still
- mysteriously broken.
- + Fix replacing with a blank string in conjunction with the replace all
- Ctrl+F action in the robot editor. The cursor can now no longer become
- negative, fixing numerous possible crashes on search/replace.
- + Fix loading the intrinsic SMZX palette when switching to SMZX modes
- from a game not in the same directory as the "smzx.pal" file.
- + Reloading a world that requires switching between SMZX and non-SMZX modes
- will now respect the world's intrinsic palette on the title screen. Fixes
- problems loading non-SMZX games after having an SMZX game loaded.
- + Clamp array offsets on boards. Some older MZX worlds are corrupted and
- have the endgame_{x,y} coordinates outside of the limits of the endgame
- board. Fixes "Fourth Power".
- + Where possible, version all counters that the port understands. This
- ensures that in the unlikely case that a game made with an older version
- of MZX (actually, with an older world magic) uses a counter that did not
- exist in that game's era, the port will no longer try to interpret it.
- Previously, only rid? and key? were versioned.
- + SAV files will now be stamped with the world magic of the world they
- were loaded from. This allows compatibility hacks to apply to SAV files
- as they would to worlds. (ajs, Terryn, Mr_Alert)
- + Add LOAD_MENU counter like ENTER_MENU, F2_MENU et al. to allow control
- (from robotic) over whether the LOAD_MENU can be brought up.
- + Have FREAD_COUNTER and FWRITE_COUNTER read in a DOS dword (32bit) instead
- of a DOS word (16bit). This allows modern post-port MZX counters to be
- fully represented in files. Compatibility with older worlds is preserved.
- + Add a new config option "board_editor_hide_help" which changes the default
- hide setting of the help text on the primary board editor.
- + Numerous fixes for bugs found by valgrind. (Nightwatch)
- + Icon support is now fixed and works on all platforms. On Windows, the
- icon cannot currently be changed (it is loaded from the EXE's resource
- section). Use ResHacker if you really want to change it.
- + Fixed a bug where either LOAD_ROBOTn or LOAD_BCn (where n was equal to
- ROBOT_ID) would alter the robot's line number rather than completely restart
- it. Due to complexities in robot context, this lead to the first line being
- skipped.
- + Added a new tool "downver" which supports drag-and-drop downgrading of
- a world or board from the version of MZX it is packaged with to the
- previous version of MZX. This tool may be unsafe to use -- be careful.
- + Fixed a bug in the robotic assembler which would occassionally emit corrupt
- programs with SAVE_ROBOT. These programs, if loaded by LOAD_ROBOT could
- cause a crash.
- + Added a config.txt (or command line) option "startup_editor" which, if set
- to a non-zero value, will start MegaZeux in the editor with a blank world.
- + Fix a bug where a robot's WALK processing, on entering a transporter, could
- allow subsequent commands (such as GO) to corrupt the board. WALK now ends
- the cycle in the special case that a robot goes through a transporter.
- + You can now directly import bytecode into the robot editor via the Alt+I
- menu. The extension for the bytecode file must .bc for it to be loaded.
- + A game loading SAVs via the LOAD_GAME counter will no longer crash MZX
- if the SAV attempted is from an incompatible version of MZX, or in any
- way corrupted.
- + Fix a crash when auto-completing lines that were greater than 241 characters
- in length after completion.
- + Added mouse pixel counters MOUSEPX and MOUSEPY. (Mr_Alert)
- + Commenting a line of maximum length (241 characters) can no longer grow the
- length of the line beyond this limit.
- + Fixed a bug causing the software renderer to fail to center when using a
- boxed fullscreen resolution. Also fixes a bug where the PSP platform would
- ignore an override of the force_bpp option. (Mr_Alert)
- + Fixed a bug causing macros loaded from config.txt to be expanded
- incorrectly. Relatedly, fixed a bug where #<string> in the robot exitor
- would "disappear" on entry, if there was no correspondingly named macro.
- DEVELOPERS
- + Don't initialize the SDL audio subsystem if audio is permanently disabled
- with --disable-audio.
- + Add fixes for OpenBSD to allow PNG screenshots and X11 clipboard support to
- work. Tested with OpenBSD 4.2 and GCC 3.3.5.
- + Updated Win32 builds with SDL 1.2.13.
- + Dependencies are now correctly tracked in the build system. Modifying a
- header will automatically regenerate the minimal set of object files that
- depend on this header.
- + Out of the box MSVC support. The file "msvc.zip" in the root of the source
- package now provides a Visual Studio 2005 project and pre-compiled
- dependencies. There may be stability issues with the resulting binary.
- See also the documentation in arch/msvc/README.txt.
- + The Nintendo DS port (a.k.a. 'dsmzx') has been merged. This is the most
- exotic port thus far, and adds features such as player focus (on the second
- display). Sound isn't working yet, and large games still won't play (due to
- lack of memory). See docs/nds.txt for more information. (kvance)
- + Many stack-heavy functions have been de-bloated and allocate large storage
- on the heap (if performance is not critical). This helps out platforms
- with a small, fixed stack size (such as NDS).
- + The built-in help system can now be disabled for embedded platforms.
- The startup check for the help file will not be performed if the help
- system is disabled, and so this file can be omitted from distributions.
- + The package.sh script now supports OS X, PSP, GP2X and NDS packaging.
- + The OS X port no longer requires Xcode. The new build system and package.sh
- can create a universal Application and corresponding DMG file. The new
- infrastructure deprecates the old macosx.zip method.
- + Most of the internal dependency on SDL has been removed. Therefore, MZX
- can be built (but not yet work) without SDL present. The only remaining
- component to convert is MikMod, but this can be disabled, so port authors
- can start using the feature right away (see config.sh). (Mr_Alert)
- December 8, 2007 - MZX 2.81h
- Another bugfix release with a couple of new features, in time for the
- Winter 2007 Dualstream Day of Zeux. The major new features of this release
- are automatic module renaming in the editor, PNG screenshots and many
- improvements to MZX on embedded platforms (like PSP and DS).
- MegaZeux can now be compiled in MZXRun mode (like the old DOS
- implementation) and by disabling features such as unnecessary renderers
- and audio support, can be made approximately 70% smaller.
- Thanks again to Terryn for relentlessly tracking down many serious bugs;
- we've tried to fix all the issues that have crept up in the last 5 months.
- Thanks too to Exophase, Mr_Alert and Wervyn for contributing to this
- release; your time and help is invaluable.
- Happy Holidays!
- USERS
- + Added a more lenient WAV file loader so that ModPlug isn't relied on as much
- to play malformed WAV files (mostly old SAM conversions) (Mr_Alert).
- + Added SCORE and mzx_speed to the counter debugger (Mr_Alert, ajs).
- + Added a 16-bit software renderer and a half-width renderer for the GP2X port
- (Mr_Alert).
- + Made the mouse cursor in the "opengl2" renderer look more like the mouse
- cursor in the other renderers (Mr_Alert).
- + Setting vlayer_size, vlayer_width or vlayer_height to values less than or
- equal to zero would crash MegaZeux. Limit the smallest vlayer size to 1x1.
- + Setting vlayer_width or vlayer_height to a value larger than vlayer_size
- would crash MegaZeux. Limit the largest size of either dimension to a
- maximum of vlayer_size.
- + If selecting a module with a non 8.3 filename, MZX will now ask you if you
- want to rename it to 8.3, and do so in an intelligent way. This means that
- music can be selected in the editor and correctly saved (Wervyn).
- + The OpenBSD compiler detected some serious string bugs in MegaZeux. These
- have now been fixed and should eliminate some more potential crashes.
- + Fixed a bug where an ENERGIZER item or use of the INVINCO counter would
- cause the original player color to be corrupted at the end of the colour
- blitz.
- + Fixed a long-standing bug where set "$string" to "FWRITEn" would be
- cheerfully ignored.
- + Fixed a bug where a corrupt robot list could crash MegaZeux (e.g. the
- list from Star Quest from DoZ'02).
- + FEATURE: Screenshots are now saved in a palettized PNG file format. For
- platforms without libpng, PNG support can be compiled out, and BMP will
- be used instead.
- + Fixed a bug where changing boards in the editor could sometimes corrupt
- memory, later causing a crash (either testing or coming out of testing a
- board).
- + Fixed a sensor bug that happens when a sensor can't go anywhere it is told
- to, and the player is on it (Exophase).
- + Fixed using ABORT LOOP in some situations. Using it outside of a loop
- still has undefined semantics and this has been documented in the help
- file (Exophase).
- + Setting a board option below its numeric limit is no longer
- possible (Exophase).
- + Fixed problems with going over Robot name character limits using the .@
- command (Exophase).
- + Fixed problems with LOAD_ROBOT freezing on a robot with no newline at the
- end of the file.
- + Fixed a problem with "Replace All" in the robotic editor, that could
- sometimes cause a line to exceed 240 characters and crash the editor.
- + Fixed a problem with "Replace" in the robotic editor, which could cause a
- line to temporarily become 241 characters and then truncate silently to
- 240 characters.
- + Fix a bug that caused the original game palette to be lost when testing
- a game in the editor that switched between Regular/SMZX1 and SMZX2/3 modes.
- MegaZeux should now try much harder to preserve the user palette,
- regardless of game edits.
- + Fix a bug causing board switching to not correctly alter the x,y viewport
- scroll leading to the display of raw memory and potentially crashes, with
- differently sized boards.
- + Fixed stack corruption caused by SCROLL CHAR SOUTH, detected by Ubuntu's
- SSP (Stack Smashing Protection) enabled binary.
- DEVELOPERS
- + Made the build system less verbose by default (like Linux). This should help
- make warnings (due to coding errors) easier to identify. If you don't like
- the new syntax, or need the command debug, you can build with "make V=1".
- + Updated Win32 builds with SDL 1.2.12.
- + Rewrote the build system to not use recursive Makefiles. Variable propagation
- was starting to be a problem, and recursive designs are generally discouraged.
- + Refactored the graphics rendering code to modularize the renderers and reduce
- code duplication (Mr_Alert).
- + GDM2S3M switched over to use inttypes.h instead of home-brew types.
- + MegaZeux now compiles on OpenBSD (and probably other BSDs).
- + Made all unnecessary global symbols static. This should improve compiler
- optimisations and correctness (Mr_Alert, ajs).
- + Fix compilation of MegaZeux against SDL 1.3 SVN. However, this SDL version
- is still in development, and MegaZeux does not work correctly when compiled
- against it.
- + MegaZeux now builds with the experimental MINGW-x64 branch, enabling x64
- binaries for Windows.
- + MegaZeux now builds with MSVC if you apply the patch from contrib/,
- megazeux-r326-replace-c99-variable-arrays-with-malloc-free.diff
- This patch is required for MSVC because it makes non-compiler-specific
- changes (which involve converting from C99 variable length arrays to
- malloc/free) which are slower and should not be used with competent
- C99 compilers like GCC.
- Microsoft Visual C++ Express Edition 2005 was used to build libogg,
- libvorbis, libsdl and MegaZeux itself. Only 32bit builds were tested.
- + MegaZeux now has size optimisations which can reduce binary size when
- features are disabled. For example, all renderers can now be disabled,
- and when module engines are disabled, audio will not export any symbols.
- + The entire audio subsystem can now be disabled. This further reduces
- binary size on embedded platforms. However, SFX editing still remains
- enabled (though useless) until editor modularity is implemented.
- + The PSP port is now officially supported, and compiles out of the box.
- See docs/psp.txt.
- + Renamed macos platform "darwin", to reflect its true nature (use Xcode to
- build as a real Application, instead of just a UNIX binary). Also fixed
- some bogosities with robo_ed's X11 includes on OS 10.5.
- + The editor can now be disabled, a la MZXRUN from the old DOS versions.
- Configure with --disable-editor to shrink MZX by about 150k.
- + MegaZeux can now be compiled with size optimisations (--optimize-size to
- config.sh) for a 20% space saving.
- + MegaZeux's core now builds with -W (basically all GCC warnings) plus
- some additional warnings that aren't switched on by this flag. All
- warnings have been fixed.
- July 4, 2007 - MZX 2.81g
- Again, no significant new features have been introduced in this release.
- However, there have been many essential bugfixes, including improved
- compatibility with games made in older versions of MegaZeux.
- Additionally, improvements have been made to the opengl2 and overlay2
- renderers, improving performance for most users. A port of MegaZeux to the
- GP2X console has been added. MegaZeux has been backported to C (rather than
- C++) and can operate correctly on a CPU without a floating-point unit.
- Particular thanks go out to Mr_Alert (for his valuable bug fixes),
- Lancer-X (for fixing what I was too lazy to) and Terryn (for finding many
- annoying bugs that nobody else could).
- USERS
- + Fixed a bug in the audio code. The linear resampler was not taking volume
- into account, which broke changing the volume of samples (WAV and Vorbis)
- which cannot natively alter their volumes.
- + Fixed a regression in the overlay editor caused by the new editor space
- semantics.
- + Screenshots are now rendered to a separate texture using the 8bit software
- renderer. This means that the hardware scalers will not affect the quality
- of the screenshot. It also fixes a bug when using opengl2, which would dump
- only a white screen.
- + Temporarily reverted a bugfix that broke Zeux IV - Forest of Ruin. I'm not
- dropping the bugfix, I just can't immediately see what's wrong.
- + Fixed a bug where setting the viewport to negative coordinates would crash
- MegaZeux. There was code to handle this, but it was wrong.
- + Fixed a bug that permitted the mouse y coordinate to be warped to row 25,
- which does not exist. This bug caused some of the renderers to crash, and
- the software renderer to draw in memory it did not possess.
- + Fixed a bug where games made before 2.68 could have available the "key?"
- counters, unsupported in that version. This caused collisions with counters
- with the key? name used with inc/dec/mul/div/mod. Fixes "Doom Keep".
- + Imported libmodplug 0.8.4, which adds MIDI/PAT and ABC format support,
- fixes some bugs in the mixer, and should build on more platforms.
- NOTE: MID files currently cannot be selected in the editor, because they
- do not play correctly.
- + Improved the performance of the "opengl2" renderer, by removing the
- convoluted 3D drawing commands and replacing them with 2D ones. Reduced the
- quad count by using an intermediary 80x25 texture. MegaZeux now depends on
- fewer GL features (LogiCow).
- + Introduced an "fsafegets" to work around problems where robots exported by
- a Windows version of MegaZeux would not load on other platforms. This was
- due to differing EOL style and broke at least one game (Termination).
- + Renamed "force_resolution" to "fullscreen_resolution" to better match its
- semantics with the scaling renderers. The new name is less accurate for
- software render modes, but most people using software will not want to
- change it from the default anyway.
- + Fix a bug where the variable-length string allocator would prematurely
- bail out when reading a string (of indeterminate length) from a file with
- the set "$var" to "FREAD" syntax.
- + Fix a bug where more than 256 errors would crash the robotic checker.
- + Improved performance of the overlay2 (faster) renderer (Mr_Alert).
- + Make the transparent overlay "really" transparent when used in conjunction
- with sprites (Mr_Alert).
- + Fixed a bug reported by Mr_Alert where MZX would not handle short,
- non-looping mods in the editor. The editor would try to destroy the mod
- again, even after the callback had destroyed it (premature termination).
- + Fixed a bug with SWAP WORLD where file translation would occur but the
- result would mistakenly not be used. This broke some uses of SWAP WORLD
- on non-Windows platforms (Mr_Alert).
- + Fixed a bug where using JUMP to MOD ORDER right after switching boards
- would fail due to the board music not having been loaded yet (Mr_Alert).
- + Fixed a bug where games made before 2.80 would inadvertently trigger
- "PLAYERHURT" due to using the SET command to reduce the amount of
- health (Mr_Alert).
- + Fixed a bug where player clones where generated when entering transports
- during FREEZETIME (Lancer-X).
- + Debug menu is now eradicated on leaving the editor (Lancer-X).
- + Debug menu is now properly painted over when the board size is < the editor
- viewport. Fixes various graphical glitches (Lancer-X).
- + Fix a crash bug when playing older MZX games from read-only media (such as a
- CD) or where file-system permissions prohibited creating SAM conversions
- (Lancer-X).
- + Fixed bug where certain file formats would not be automatically converted
- if their extensions were mixed or upper case (e.g. OGG/SAM/GDM).
- + Restored functionality of "if lasttouched DIR" which has been broken since
- MZX 2.02.
- + Fixed a bug where attempting to decrypt a read-only world file would result
- in a crash (Mr_Alert).
- + Fixed several bugs where an error loading a world file would result in
- crashes in several different situations (Mr_Alert).
- + Fixed a bug where a robot using the BECOME command to change into a
- PushableRobot or vice versa would freeze (Mr_Alert).
- + Fixed memory leaks in the file selection dialog, the counter debugger, the
- collision list and the global robot (Mr_Alert).
- + Updated counter list (see docs/counter_list.txt in the source) (Terryn).
- + Fixed a bug where pressing escape when editing the effect of a ring or potion
- would result in an invalid parameter which would later cause a crash if
- edited again (Mr_Alert).
- + Fixed a bug in which robot-driven text boxes using option commands (the ?
- command) could overflow by two characters and spill over the side (Lancer-X).
- + Fixed the list box searching mechanism (used in the file manager and F11
- counter list) and made the existing function more understandable. (Lancer-X).
- + Fixed a bug in which the message string given to the 'ask' command could
- spill over. Now, the 'ask' dialog resizes if possible, and clips when no
- further resizing can be performed (Lancer-X).
- + Clipped the 'input string' message properly, to prevent similar overflow.
- + Fixed a bug with the EXPLODE, DIE, DIE ITEM and BECOME commands when used
- with the global robot (would clear the global robot, eventually corrupting
- memory when in the editor). Presumably, these commands are bogus for the
- global robot, and have been disabled.
- DEVELOPERS
- + Rewrote config.sh to use POSIX sh compatible functions, so that there is
- no dependency on the BASH interpreter. Surprisingly, some distributions
- still don't enable BASH by default (using csh, ash or zsh instead).
- + Ported most of MegaZeux back to C. This should further reduce the platform
- requirements for running MZX, and enable marginally faster compilation.
- + Enabled GCC's -W flag for even more warnings, switching off unused
- parameter warnings (useful for delegates). Mostly typing fixes, but it
- found a bug in string handling.
- + No longer suppress char-subscript warnings, and fix up any remaining
- abuses in the tree.
- + Add manpages for 'megazeux' and other binaries for the Debian packages.
- Comply with the Debian packaging guidelines by providing a copyright
- note, listing significant contributors to MegaZeux.
- + Added support to the build system for supporting icons modularly.
- See contrib/icons/README for more information.
- + The debug build (make DEBUG=1) now enables GCC 4.x's stack protector. This
- breaks compatibility with GCC 3.x, but you can just remove the flag if you
- don't want to use it (the stack protector will improve stack corruption
- detection and provide more usable debug traces).
- + Custom Random() implementation to provide a more uniform number
- distribution. Factored out for future (better) implementations.
- + The audio backend (audio.cpp) has been modularised to support the use of
- mikmod instead of modplug. This should enable ports of MZX to platforms
- without an FPU, and improve performance on platforms with weak FPUs.
- + Added GP2X port to config.sh, based on work done by Simon Parzer.
- January 30, 2007 - MZX 2.81f
- This release is mostly about the new renderers, the first of which was
- introduced in the previous version. There's also a few important bugfixes,
- and a lot of internal tidy-up work. I'd like to thank Mr_Alert, Quantum P.
- and LogiCow for contributing to this release. Thanks guys.
- USERS
- + Renamed the force_32bpp config option to force_bpp, in preparation for
- 16bit OpenGL render modes. This option now takes 8, 16 or 32. 16 is
- reportedly broken on Windows, so stick to 32 for now.
- - The force_height_multiplier option has been removed. A lot of code
- wasn't properly designed to handle it, there have been mouse warp bugs
- with it for years, and nobody seems to use it. If people want stretching,
- they can choose one of the four hardware renderers to achieve this.
- + Added infrastructure for "pluggable" renderers. This code isn't perfect,
- but it's far better than the mess in 'e'. Defaults to the 'software'
- render mode.
- + Added Logicow's alternative OpenGL renderer. For more information about
- this renderer, see config.txt. NOTE: This code may be buggy! Please test!
- + Added Mr Alert's YUV overlay renderers. One does full YUV macropixel
- approximation, the other (faster) render does chroma supersampling. See
- config.txt for more information. NOTE: This code may be buggy! Please test!
- + Simplified Exophase's OpenGL renderer present in 'e', and fixed a few bugs
- that caused it to not work for some people.
- + Really made MegaZeux use 'directx' by default on Windows. The code in 'e'
- was non-functional. Use 'windib.bat' to run MegaZeux with the SDL windib
- driver.
- + The OpenGL renderers now have a 'filter' option that allows you to choose
- linear (where pixels are interpolated, looks "blurred") or nearest (where
- nearest-neighbour approximation occurs, looks "sharp").
- + Mouse warping was broken when using any of the hardware renderers. There
- should be code in there now to take account of this (thanks Mr_Alert).
- + Added an option 'editor_spaces_toggle' which allows you to revert MZX's
- space overwrite behavior to the semantics of 'd' (the feature was
- removed in 'e'). By default, the behavior is unchanged.
- + F6 (the debug menu) can now no longer be enabled anywhere but in the
- editor Alt-T test mode. In 'e', it was possible to enable on the title
- screen, but could not be enabled in a game. Like the cheats, this option
- is now visible only in test mode.
- - Removed the 'lame/1337' menu feature.
- + Fixed a bug where the global robot could be exited via some legal commands,
- in an abnormal fashion. The bug resulted in all the code up to the offending
- command being executed over and over.
- DEVELOPERS
- + OpenGL can now be disabled via config.sh. This allows MegaZeux ebuilds
- to be constructed on systems that do not have any form of OpenGL support.
- (Although MZX runtime loads the OpenGL library, 'e' required the headers
- to build correctly. This is now no longer the case.)
- + On Windows, due to an ATi driver bug, I have provided a means of linking
- directly to opengl32.dll, instead of relying on the dynamic loader. This
- reduces binary portability, but fixes many bug reports of being unable
- to fullscreen on ATi video cards. See OPENGL_LINKING for more information.
- + Improved support for cross compiling with mingw32 on Linux, combined the
- win32 Makefile with this new support.
- + Rewrote the config.sh script. All of the options have changed, and the
- broken platform auto-detection has been removed. See ./config.sh for more
- information.
- + Rejigged MegaZeux's headers so that they can be used in both C and C++
- mode. Renamed fsafeopen.cpp to fsafeopen.c. Hopefully by 'g' most of
- MegaZeux should be ported back to C, instead of the "C++" it is now.
- + Fixed up the 'txt2hlp' utility which Terryn has been using a version of
- to build the internal MZX help system. This binary is built in the source
- distribution, but it is not distributed with the MegaZeux binaries.
- + Moved some antiquated Greg code out into 'old'. No attempt has been made
- to make it compile, it is provided purely for reference.
- + For the windows binaries, "windib.bat" is now generated by package.sh
- and auto-generated for the name of the MegaZeux executable.
- + Updated Xcode package from Quantum P. (see macosx.zip).
- January 18, 2007 - MZX 2.81e
- + Made grabbing in the editor not combine background color, only uses
- "special" in game colors for player, tell me if anything ends up being
- weird because of this.
- + Possibly fixed an obscure bug where moving something happened
- immediately if it was sent to a label by a robot further east/south than
- it and it moved north or west (has to do with the way robots are
- reverse scanned). Tell me if this changed any behavior for the worse and
- I'll change it back or try to work out something new.
- + Added GDMs to ctrl + n, this will of course auto convert and play the
- s3m.
- + Added ability to preset player locked status from board settings.
- - Removed ability to change SMZX mode ingame (F11)
- + Instead added ability to debug variables (counters and strings)
- ingame with F11. There's also an option to export the current variables
- to Robotic program that sets them.
- + Fixed bug where moving a block with the player into an overlapping
- region leaves a space where the player was.
- + Fixed bug with a robot indirectly sending itself to a subroutine via
- send all or send name causing it to loop the send.
- + Added compatability hacks for key# prior to MZX 2.69 worlds and
- ridNAME falling through in MZX 2.70 and earlier worlds.
- + F6, F7, F8, and F11 debug/cheat keys only work in editing mode now
- (as things were prior to the port) You can still save/load in the editor
- so if you want all of these things you can play the game from the start
- there.
- + Space in the editor no longer deletes something of similar type that is
- beneath not sure what the point of this was anyway.
- + Fixed bug causing cursor to clipped be out of bounds in SMZX char editor
- if changing to smaller multichar edit region.
- + Accidentally messed up screen centering in fullscreen for 32bpp mode,
- fixed.
- + Added hardware scaling option. You can now supply a window resolution
- besides 640x350 and allow for window resizing if hardware scaling is on;
- this will also scale fullscreen output to fill the entire screen. This
- can slow down rendering somewhat.
- + Fixed bug causing flip block to crash in the editor.
- + Made blocked directions relative to the player for put dir player.
- + Fixed bug where putting something to a direction relative the player
- overwriting the robot could crash MZX.
- + Fixed ability to input in input boxes by clicking on their question
- string.
- + Removed the bogus patch to Modplug and correctly fixed it in the build
- system.
- + Added 'debian' subdirectory for building Debian and Ubuntu upstream
- packages. Hopefully MegaZeux will be in the primary pool in a few
- months.
- + Added OS X xcode project files (see 'macosx.zip'). Fixed many bugs
- relating to endian that caused MegaZeux to be buggy on big-endian
- architectures (like PPC). Credit goes to Quantum P for finding these
- bugs and engineering high quality solutions.
- + Made 'directx' the default video render again on Windows. NOTE: This
- overrides the default SDL behaviour, but will not be applied if you
- set SDL_VIDEODRIVER yourself.
- + Repaired the 'linux-static' target so that it no longer includes a
- system C++ library, which caused unpredictable results on distros
- without a static version.
- + Fixed a locking bug with the audio code that caused hangs at startup
- on OS X. Also provided a mutex implementation using GNU pthreads as
- a temporary workaround for an SDL bug on the Linux platform.
- + Added PlayStation Portable (PSP) port. This code was written by Exophase
- and is highly experimental. It may not work at all for you. Please
- see docs/build.txt for more information regarding this port.
- + Fixed mouse movement from being affected by height_multiplier when
- not in fullscreen mode
- + Fixed height_multiplier config.txt option allowing you to enter really
- stupid values (like negatives, 0, and values too large for the
- resolution)
- + Added in an extra video mode check to stop MZX crashing on video modes
- that the video card can not reproduce
- + Fixed Avalanche to a constant placement rate of 1/18 (this caused MZX
- to deliver an uneven number of boulders, and crash with certain board
- sizes
- + Fixed sprite collision box to stop MZX from crashing when stupid values
- are entered
- + Fixed setting the viewport size to weird values like some old MZX games
- do
- + Default fullscreen resolution is now 640x480, this can be changed in
- config.txt
- + The config.txt option force_32bpp is now enabled by default
- + Seeking with mod_position when using a .WAV file as background music
- now works (thanks Mr_Alert)
- December 10, 2006 - MZX 2.81d
- + Fixed a compilation failure on Linux, due to SDL no longer depending
- on libX11. Now we manually link X11 into MZX if necessary.
- + Various build system improvements, fixing bugs in the prefixing
- of dependencies.
- + New libmodplug 0.8 imported, fixing many endian problems on big-endian
- machines, integrating all of our local patches to 0.7.
- + Fixed bug causing MZX to freeze when starting up on Win9x machines.
- + Fix a warning generated by GCC 4.1.
- + Update the GPL boilerplates project-wide to the newest FSF address.
- + Fix a string range check causing an obscure crash in certain games.
- + Update the build.txt documentation.
- + Address documentation bugs found in the internal MZX help system (Terryn).
- + Fixed a recently introduced bug breaking the open command.
- + Fixed some bugs with changing params and pressing escape.
- December 14, 2005 - MZX 2.81c
- + Oops, accidentally broke shift + F2. Fixed that..
- + Also accidentally broke &+counter& for full hex representation. Fixed.
- + Fixed memory leak problem with playing certain WAVs in a loop.
- + Fixed inconsistency of bad viewport sizes behaving differently on
- current versions from old DOS versions.
- + Accidentally broke joystick stuff in config.txt (has to do with way
- configure options were being read), fixed.
- + Fixed bug causing crash when loading MZBs larger than the current board
- size.
- + Made cursor hidden in alt + V in editor.
- + String comparison failed with nulls in the strings, fixed. Also
- should be slightly more optimal.
- + Fixed bug when using negative numbers for if sprite_colliding "counter"
- + Fixed math operations (inc, dec, etc) not working on string indeces.
- + Added ability to force screen to 32bpp. Fixes some slight rendering
- issues, and if you have problems with fullscreen let me know if this
- helps (try it without first though). See force_32bpp in config.txt.
- + Fixed sprite clipping bug with respect to overlay.
- + Fixed bug where pressing enter on things besides robots, scrolls/signs,
- or sensors in the editor would clear whatever was underneath it.
- + Accidentally broke SFX with optional PC speaker chains (played both,
- should only play PC speaker when digital music is off, fixes Bernard
- the Bard)
- + Made last character in char selection for F3 and alt + C remembered
- (note that they're remembered in two different places for both)
- + Accidentally broke life animations, fixed
- November 26, 2005 - MZX 2.81b
- + Fixed inability to make proper .savs of worlds with strings (they'd
- crash when loaded..)
- + Fixed PC speaker audio bug causing a constant high pitched noise to
- be played instead of PC speaker audio sometimes.
- + Fixed some issues with long pathnames.
- + Fixed a bug causing Caverns to crash in recent versions (long story,
- it was most likely due to an error in ver1to2)
- + Now when you set mzx_speed in a game you can no longer change the
- speed from the F2 menu. Setting mzx_speed to 0 reallows this (and
- doesn't set the speed)
- + When loading a game its speed is now set to the speed MZX started
- with (whatever's in config.txt, or the default of 4)
- + Added backup_ext config.txt option to specify the extension of backup
- files (default is .mzx).
- + Fixed backup_interval for config.txt possibly being broken.
- + Fixed a bug messing up the death board on some old MZX games
- (like Nick Brick 2)
- + Escaped more things and made displays always in escaped form for
- certain character sequences. It should be impossible to type
- non-escaped forms. The following should be used:
- \0 for 0 (this probably won't work in strings, but in chars should)
- \t for tab (character 9)
- \n for newline (character 10)
- \r for carriage return (character 13)
- \" for double quote
- \\ for slash
- + Copy + paste on escaped character won't unescape them anymore.
- + Fixed error message for invalid lines in Robotic
- + Fixed inability to import text files from other directories.
- + Huge overhaul of the source (proper types for things, directions,
- equalities, conditions, chest items, and potions), if anything is
- suddenly broken now let me know.
- + Made scrolls/signs only display text (letters, numbers, etc) in the
- default char set. That should be enough for now.
- + Added mousewheel support for robot editor and robot box display.
- + Fixed inability to load MZMs from other directories in the editor.
- + Wrapped audio stuff in proper mutex, hopefully this fixes some issues
- (like crashing when changing mod_frequency a lot).
- + Long current directory paths no longer write out too much in the file
- loader (instead the last bit is shown with a ... prefixing the
- beginning)
- + Decided to be nice and make board_scan not crash. Don't use it. It's
- only there to make one legacy game work. If you use it I will
- personally scold you. And don't tell other people to use it (that
- means you CJA). Use copy block x y w h "$str" t instead. If you don't
- know what that means read the help file, it explains everything.
- + Removed ability to copy + paste after changing board dimensions of the
- source under any circumstances (alt + R, alt + Z, import world, import
- board)
- + Fixed appearance of ghosts in F10 menu.
- + Prevented char editor from counting moving the cursor as an undo step
- if nothing was actually drawn.
- + Made pressing escape on initial char selection/board selection/param
- selection for things cause it to cancel placing anything.
- + Made it impossible to set board width/height to 0 again (oops)
- + Made starting lives and starting health take effect immediately for
- the first alt + t
- + Added ability to play OGG from alt + l (but not the other mods, don't
- want to clutter that up)
- + Made it so if no note follows an embedded SAM in a play string it's
- played at native frequency.
- + Accidentally made loading worlds in the editor not change the current
- directory, fixed that.
- November 20, 2005 - MZX 2.81
- + Fixed a bug where MZX world/save names > 12 chars could cause weird
- things to happen (like doors breaking)
- + Fixed problems with helpfile/charsets loading when loading MZX
- outside of the directory MZX is in. This should fix file associations
- on Windows as well.
- + Changed board selector so when board 0 is "(no board)" it doesn't
- actually refer to the title but to no board.
- + Made import world not overwrite the title string.
- + Fixed bug that causes crash when trying to flood fill an area with
- the color it already is in the SMZX char editor.
- + Redid audio engine. Everything is unified now, meaning that anything
- you can use as a mod you can use as a sam and vice-versa.
- + The new audio engine uses its own master resampler that has three
- interpolation modes - see config.txt for more information.
- + sam 0 filename will play a file at its native frequency (note that
- SAMs that have been converted from WAVs are set to be played at
- 8363Hz).
- + Added support for OGG vorbis audio files.
- + Fixed bug causing SFX volume control in F2 menu to not work.
- + Removed limitation on number of SAMs that can be played
- simultaneously.
- + Fixed bug where the mouse got "stuck" in the black border edges of
- non 640x350 fullscreen resolutions.
- + Fixed issues with message boxes being part default palette part
- current palette, they now always use the current palette.
- + Added mod_position counter. What these actually set/return is
- dependant on the type of file loaded. Modules use the current row,
- OGGs use the current PCM sample.
- + Added mod_frequency counter. There are a few things to note here:
- Modules have a "nominal" frequency of 44.1KHz. Other data types
- have their own nominal frequency to prevent output from
- sounding differently depending on the audio_sample_rate in config.txt.
- For OGGs and WAVs the nominal frequency is the one the file is
- encoded at.
- Changing the frequency can cause a noticeable one time popping sound,
- so it might not be desirable to slide it. This is much more prominent
- with lowering the frequency than raising it.
- This value is capped so it can't reach below 16.
- + Changed alt + L to play back at natural frequency instead of 8363Hz.
- + Fixed bug causing sensor deletion while the player is on top to
- destroy the player.
- + Fixed bug causing imported boards to possibly crash after being
- tested.
- + Fixed bug causing save_game and save_world to not work if a file
- with the given name isn't already present.
- + Changed function counter matching removing restriction on number of
- digits for parameters. 10+ digit inputs should no longer fail (for
- instance, abs-123456789)
- - Save files from 2.80 are not compatible due to several changes in
- the save format.
- + Made counter/string names internally variable length instead of a
- fixed 14 chars. There is now no longer a name length limitation.
- + Changed alt+8 for mod * to just * in the hotkey listing.
- + Fixed crash when referencing (by param) sprites > 256.
- + The string system has been redone. Strings are now dynamically
- sized and don't have an artificial maximum length. Writing to
- string.N will guarantee that the size of the string becomes at
- least N, while reading in this way will return 0 if out of bounds
- to maintain the illusion of null termination. Be careful when using
- this.
- + $str.length returns the length of string $str (this is faster than
- iterating through it to find when chars hit 0)
- + Vlayer is dynamically sized. The vlayer_width/vlayer_height counters
- still work as per usual, but the vlayer_size counter has been added
- to adjust the maximum size. The default is 32768.
- + Fixed bug not allowing things to move over goop.
- + Fixed bugs causing current directory to be changed when importing
- things from other directories.
- + Properly implemented support for volume "string"
- + Fixed a few commands not working when they should from the global
- robot (such as put to dir of player)
- + Fixed a bug where going to a label at the end of a robot would treat
- it as if it's the first of its name in a sequence of labels.
- + Fixed a bug involving moving the a block with the player not moving
- what was underneath the player.
- + New help file, thanks MUCHLY to Terryn for pulling off this enormous
- effort!
- June 6, 2005 - MZX 2.80h
- + Fixed a bug which could cause crashes when quiting the game.
- + Fixed some bugs when changing boards and other things that can
- cause duplicate players.. I think.
- + Fixed a bug that could cause crashes when adding boards
- + Improved response time in editor for slower computers/high load
- situations
- + Fixed some endian issues with the GUI
- + Fixed some crash when moving the mouse cursor around in the editor
- + Fixed bug where you if you had a robot whose name is the same as
- the global robot it wouldn't get messages (fixes yoyo in Weirdness)
- + Fixed debug box not moving with text input
- + Fixed bug with duplicate player appearing when killed and a new one
- can't be put at 0, 0
- + Added copy/paste for outside of MZX to/from the robot editor. It
- only works in Windows and X11, and functionality may be limited in
- X11 right now (currently seems to work in native X11 apps and
- GTK 2.6 apps but not earlier GTK or QT, also try shift + insert to
- paste)
- + Fixed bug in resizing involving overlay blanking.
- + Fixed clear messages/projectiles not working (and damaging the game
- instead)
- + Fixed behavior of P key in editor for wildweasel.
- + Fixed random in Robotic not correctly swapping the range if they're
- given in the wrong order
- + Fixed clip length in [ messages
- + Fixed crash when changing volume without a game loaded
- + Redid internal GUI system, fixes some minor things
- + New file loading/saving window - press del to delete a file/dir,
- alt + n to create a new directory, alt + r to rename a file/dir.
- + Added PC speaker volume control to F2 settings and config.txt
- + Fixed yet another crash bug with resizing boards
- + Fixed inability to type * in text placement in the editor
- (although this adds inability to turn on mod * while F2 is on...)
- + Added ctrl + n in the editor to load a module for listening only
- (won't set the current board's module, and will let you choose
- ones from different directories)
- + Fixed crash on macros with more variables than can be displayed
- in their configuration.
- + Fixed bug that causes char selection cursor to reset to 0 on
- unhandled keys (and continuously do so for lock keys)
- + Tweaked ctrl + dir in text entry boxes.
- + Added gdm2s3m in-tree to the contrib/ directory. gdm2s3m no longer
- needs to be installed on the system before compiling mzx.
- + Improved the build system to automatically build .c and .cpp files
- with compound system CFLAGS/CXXFLAGS, respectively.
- + Made package.sh automatically ship the source package with a
- Makefile.dist to warn the user that they need to run config.sh before
- 'make'.
- + Rectified inconsistency in source copyrights.
- + Added multicharacter editor. Select multiple keys in the character
- selection with shift. The char editor also now has the ability to
- perform operations (delete, copy, scroll, etc) on subblocks. Hold
- down shift or press alt + b to highlight a region (press escape to
- remove the latter). Blocks copied like this will be pasted to where
- the cursor is at. Other small things in chareditor tweaked/changed...
- No longer press tab to toggle through set/clear/toggle draw modes,
- instead tab for set mode and shift + tab for clear (no more toggle).
- Mouse behavior is modified as well. In non-SMZX left click sets,
- right click clears. Shift + F2 will cut a block (clear + copy)
- alt + x/alt + i can now be used to import/export partial charsets
- while in the char editor. You can do so for several in series:
- put a # in the name of the charset then set the First for the
- first number # will be replaced with and the Count value to
- indicate how many in series to work with.
- For instance, saving s#.chr with first = 0, count = 3, starting
- at offset 100, with a 2x2 char selection will save charsets
- s0.chr from 100, s1.chr from 104, s2.chr from 108, and
- s3.chr from 112.
- *** NOTE *** Series import/export will only work correctly with
- char selections that are one in height (can still be split up
- another way in the editor itself). So if you want to use
- partial charsets on your edits it's important that you select
- all the chars in a row.
- + Made characters for the editor/GUI use another charset that's
- protected. Please notify me if any characters are incorrect.
- Modify mzx_edit.chr to change this charset.
- + The same thing goes for colors. It doesn't work for SMZX, which
- also might look a bit different in the editor...
- + Added option (defaults on) to protect chars 32-127 in input
- boxes and strings in the robot editor.
- + Mouse warping goes to middle instead of top corner now, so there
- isn't a biased towards moving up.
- + Hopefully fixed another bug with the cursor and changing boards...
- + Fixed module looping problem in modplug...
- + Added libmodplug 0.7 with both patches (see contrib/) in-tree.
- Removes system dependency on libmodplug.
- + Made auto-backup on by default (3 count)
- + Made if touching idle, beneath always false instead of like nodir
- + Fixed bug that caused bad things to happen if you pressed too many
- different keys too rapidly.
- + Made mouse wheel emulate up/down in dialog boxes and list menu.
- + Added ctrl + backspace to intake (delete previous word)
- + Made modulo operator use floored instead of truncated mod (uses
- positive remainder instead of negative)
- + Fixed crash when testing after using ctrl + z to clear a board.
- + Fixed bug where sending other robots to subroutines caused the
- return address to be to the next instruction like local subroutine
- calling works.
- + Fixed bug where going to a label on the last line of the robot could
- screw the game up.
- + Fixed a bug where the editor froze if you tried to fill the board with
- players (eheh...)
- + Fixed a bug that could cause crashes when sending all sensors something.
- + Fixed some crashes when exporting/saving fails.
- + Fixed import world's ability to go over the board limit and cause
- crashes.
- + Allowed input of decimal numbers for params.
- April 1, 2005 - MZX 2.80g
- + Fixed crash on alt + x in robot editor.
- + Fixed missing line on alt + h in robot editor.
- + Introduced incorrect enter action in robot editor (didn't reset to beginning
- of the line), fixed.
- + Fixed garbage appearing when moving from a larger to smaller board and being
- outside of that board's scroll region.
- + Fixed bug that could cause glitches/crashing when resizing the board
- + Fixed error with global next option not retaining the three checkmark
- options correctly.
- + Added work around so that move block moves the player (won't move it on
- inter-board moves)
- + Fixed bad palette loading for Linux introduced in 2.80e or f or something
- + Made it so block highlighting doesn't highlight the debug window.
- + Made the debug window move if necessary when home/end is pressed.
- + Added autorepeat buffering so previous keys can be resumed.
- + Fixed bug with swap world possibly not working (crashing??) off Windows
- + Fixed more problems with garbage/crashes when resizing with the cursor
- in a position causing the scroll to go off the edge
- + Fixed incorrect text cursor offset with force_height_multiplier on.
- + Redid way directories are loaded internally so you can load dirs with over
- 4096 entries now. Might be faster (unsure)
- + Chest contents list menu looked funny, fixed.
- + Changed default.spl to smzx.pal so you can load it more sanely.
- + Export block wasn't getting the last selected line. Fixed.
- + Hacked scroll editor so it wouldn't crash when removing lines. Scroll code
- either needs to be 100% overhauled or replaced by robots somehow...
- + Fixed config files not being closed.
- + Added include file option for config files. Use it like this:
- include configfile e.g. include subconfig.cnf will load subconfig.cnf's
- options
- + Fixed freadN not terminating strings.
- + Fixed graphical glitch when using the mouse in the char selector.
- + Fixed save games crashing when they can't load fopened files.
- + Fixed some other problems with save games and fopened files...
- + Accidentally had title screen running a bit slow...
- + Value strings starting with ( not parsed as an expression if they
- don't end with the )
- + Fixed problem with key_code being triggered for keys that aren't
- in-game
- + Removed the unimplemented if player dir and if not player dir
- commands from RASM
- + Added extended macros. This allows for parameter based macros to
- be entered in the robot editor via a window or by command. See
- macro.txt for more information.
- + Fixed player cloning after flip/mirror and player placing.
- + Added random seeding that was mysteriously missing...
- + Finally added drive changing for Windows builds.
- + Fixed mousex/mousey for resolutions other than 640x350 (only applies to
- fullscreen)
- + Fixed crash on weird invalid death/endgame boards...
- + % and & messages clip correctly now.
- + Fixed potential crash on double closing the files.
- + Fixed crash bugs with placing sensors and maybe scrolls.
- + Fixed sending sensors when you have robots of the same name (fixes
- Weirdness chapter 1)
- + Fixed bug that can screw up your world when placing scrolls or sensors..
- sometimes.
- December 26, 2004 - MZX 2.80f
- + Fixed a bug that could cause crashes when auto-quoting params in the robot
- editor (eg, set x 1 -> set "x" to 1)
- + Fixed a bug that could crash the robot editor if you added a new line prior
- to the first line of a marked block, then did an action on it.
- + Fixed a bug where clearing the first and only line could cause it to appear
- as if it hadn't been cleared at all.
- + Unified global and global next parameter setting so that nothing is lost
- between first/next but information can be cancelled without application.
- + Fixed E/S block markers appearing in the robot editor when they should be
- off the screen.
- + Left click position in robot editor mysteriously disappeared after having
- been added somewhere after 2.80d. Readded.
- + Added option to hide the hotkeys help and horizontal border in the robot
- editor with alt + h. Also added a config.txt option to have it default
- this way.
- + Search/replace in the robot editor. ctrl + f to find or replace/replace all,
- ctrl + r to repeat either search or replace (depending the last one you did,
- if you cancelled this does nothing)
- + The load_game counter sequence was broken; fixed.
- + Hopefully fixed all means of overrunning the current line max length in the
- robot editor...
- + Fixed robot editor validation not showing every 13th line
- + Fixed aesthetic problem with validation report....
- + Fixed crash with setting message column less than 0.
- + A couple things added for 2.80e mysteriously disappeared in source handling.
- Readded.
- + Changed max board size prevention to auto resize the lower dimension to the
- max that can be handled with the higher (ex, 30000x25000 becomes 30000x559)
- + Added floodfill to char editors (alt + f)
- + Added single depth undo to char editors (alt + u)
- December 19, 2004 - MZX 2.80e
- + Fixed a bug causing problems with static overlay if a non-overlaid sprite
- is displayed so it's clipped off the edge of the screen.
- + Fixed a bug in the display of c?x color boxes in the F2 menu in the robot
- editor
- + Fixed a bug that caused incorrect thisx/thisy for one cycle after copyblock
- + Fixed a bug preventing calls to nonexistant subroutines from passing that
- point in the robot
- + Fixed crash on sam 0 "file"
- + Fixed a bug where loading new SFX may not correctly overwrite previous ones
- + Fixed a bug where you could only load/unload so many mods before MZX couldn't
- load anymore.. same bug as the SAMs but went unnoticed!
- + Fixed a bug that caused you to be infinitely stuck in the global settings
- dialog box when you press previous on the next page.
- + Fixed a bug where going to next then exiting would not save the changes
- from the previous page.
- + Fixed a bug that could cause crashes while ending modules.
- + Fixed a bug that could do the same kind of thing with sams.
- + Fixed an allocation bug when loading MZX worlds that could lead to crashes.
- + Fixed a bug that caused MZX to crash if you interpolated an expression with
- a value equal to or greater than 1 billion.
- + Fixed a bug where mixing ccheck1/2 with sprites from board and vlayer could
- cause problems (that's the short version of the explanation, I'll spare you
- the long one)
- + Fixed a bug that could cause certain old MZX games to crash after the title
- screen
- + Somewhere broke missiles between 2.80c and 2.80d. Fixed.
- + Fixed error in lit bomb anim sequence setup in char ID editor.
- + Reworked a lot of robot editor code; adding/deleting lines while marked areas
- are active should work more naturally now and it's hopefully no longer possible
- to crash it in the same ways it was previously.
- + Fixed crash when setting mesg row to less than 0.
- + Fixed mouse presses not working in the robot editor.
- + Made MZX ignore alt + tab so you can safely switch in your WM without it
- triggering...
- + Added numerical key entry for number boxes. Use 0-9 to add to the most
- significant digit and backspace to take it away.
- - Fixed maximum board size to about 16.7 million tiles (128MB), for now.
- + Added config.txt option to make MZX pause when key focus is lost
- (when clicking on another window, perhaps) or when it's minimized. Music will
- still continue.
- + Added save/load position to the editor. Works for loads inbetween boards as
- well. Press ctrl + num to save to slots 0 through 9 and alt + num to load from
- that slot. Please press shift + 8 or the numpad * key instead of alt + 8 to
- set mod wildcard.
- + MZX now ignores the mouse scroll wheel instead of interpreting it as a click.
- + Fixed a further bug that could cause playing samples to crash.
- + Added config file option to revert the robot editor to the default palette
- when loaded.
- + Fixed bug in shoot command.
- + Fixed error when making save name in editor but cancelling.
- + Auto-backup - see config.txt for details.
- + Joystick key mapping - see config.txt for details.
- + You can now load game-specific config files by creating game.cnf for the
- corresponding game.cnf (for instance, caverns.cnf). This is mainly useful
- for joystick key mapping. Note that these settings will NOT go away if
- another game is loaded that doesn't have a .cnf.
- + Alt-enter finally works as block action in the robot editor.
- + Loading a .mzx/.sav from another directory indirectly (via command-line or
- robotic) will now actually change the current working directory.
- + Fixed bug that crashed MZX with ctrl + i in the robot editor.
- October 9, 2004 - MZX 2.80d
- + Fixed cursor going invisible when escaping from import in the editor
- + Fixed robot editor entry when pressing OK on global info
- + Fixed lack of name for MZB import/export (any MZB's exported in prior
- beta versions still won't have a name)
- + Fixed some problems with setting the mouse position
- + Fixed problem with exits not bringing you all the way to the edge if width
- over 400 or height over 200
- + Fixed bug that cleared too much when increasing both width and height while
- resizing the board
- + Fixed problem with 1 char shortcut commands with spaces immediately after them
- + Fixed problems with load_robot and load_bc (caused crashes and infinite loops)
- + Optmized RASM heavily (this should be most noticable when doing a lot of
- external robot loading from text files)
- + Fixed inability to use absolute paths in loading a game from command line
- + Fixed lastshot/lasttouch conditions with directions not working
- + Fixed char editor in robots not going into SMZX mode when proper
- + Cleaned up source code so it passes -Wall without complaint and in the process
- corrected some glaring code errors that may have corrected random problems
- + File opening broken in 2.80c, fixed
- + Implemented MZM2 saving and loading and rewrote mzm.cpp (if anything is changed
- or fixed regarding MZMs, attribute it to this). MZM2s can be of larger
- dimensions, smaller filesize for same amount of data, and can store robots.
- + Fixed bug that could cause MZX to crash when making new strings
- + Block operations to overlay when overlay was off caused crashes - fixed
- + Fixed a problem with sprite ccheck2 against other sprites
- + Optimized function counter lookups a bit; speed gain for all counter accesses
- (especially ones that begin with certain characters such as _)
- + Fixed disassembly error with ' ' character
- + Fixed assembly error where condition extended dir (such as blocked opp seek)
- was not getting compiled with the dir extension
- + Fixed editor bug where the param was not being cleared when overwriting things
- by double placement
- + Fixed inability to use counters with playercolor/bulletcolor/missilecolor
- + Added ability to use counters in place of p?? in the robot editor
- Note - even though this expands functionality of the editor this does not
- require a version number change because the worlds will still be playable in
- older MZX versions (and will display correctly in the robot editor - you simply
- won't be able to correctly edit the commands)
- + Mouse correctly limited to screen edges now
- + Fixed inability to overwrite robots with pushable robots and vice-versa,
- as well as scrolls with signs and vice-versa
- + Possibly fixed problem with windowing error when editing global robot (?)
- + Fixed disappearing cursor after color selection box with mouse (and other places?)
- + Fixed bug in sprite clipping that caused some to be clipped off inappropriately
- + Made board_id/board_param counters readable
- + Added bound checks for all counters using board_x/board_y/overlay_x/overlay_y
- + Removed ability to put robots, scrolls/signs, and sensors (with the put command in
- Robotic)
- + Fixed potential direction corruption bug causing directions not to work
- sometimes even if they display correctly in the robot editor
- + Fixed copy overlay to MZM copying to overlay too
- + Fixed a bug where debug window could display the wrong amount of robot mem
- and potentially even crash MZX
- + Fixed help_menu counter not doing anything (durr)
- + Changed sprite draw order so they're drawn underneath the message bar,
- debug box, and time remaining display
- + Changed put p?? in Robotic so it will put default params if available
- + Fixed a bug that could cause copies from overlay to vlayer to not end up at
- the correct destination
- + Fixed a bug where c?x and cx? would not display correctly in the robot editor
- + Optimized copy blocks a bit using variable length arrays instead of malloc
- August 16, 2004 - MZX 2.80c
- + Fixed issues with the commands counter not being reset
- + Color intensity now gets reset when you enter the editor
- + SAMs got cutoff sometimes now.. fixed
- + Fixed bug where loading a world with empty boards could change the starting,
- endgame, and death boards
- + Fixed bug where you could text enter off the bottom of the board, causing
- problems
- + Fixed bug involving cutting/clearing the entire robot in the robot editor
- while not at the first line
- + Fixed robot name entry for global robot not disappearing on small boards
- + Fixed bug where you could duplicate the player by holding down a direction
- as a saved game loads
- + Fixed bug where you could go to line 0 in the robot editor
- + Saving an MZM now auto-adds the .mzm extension...
- + Fixed black screen on quicksave
- + Fixed bug where opening a file didn't close the old one if one was open
- (so it'd eventually crash MZX)
- + Changed alt+backspace behavior in intake so it doesn't exit
- + Added clipping for refx/refy/width/height for sprites (less than 0 at
- initialization, greater than board width/height at draw)
- + Fixed direction parsing for move all
- + Fixed bug where creating things on top of the player would use a slot
- for robots/scrolls/signs/sensors instead of just copy to the buffer
- + Added ability to use chars as immediates in Robotic commands
- (ie, set "$str.0" 'a')
- + Added options to enable oversampling and specify resampling mode in
- the config file (higher quality audio)
- + Building with patched modplug that fixes loading 2-channel mods
- outputted by FT2. If you're building yourself, see build.txt.
- + Fixed inability to mouse click in alt + h mode
- + Fixed ability to mouse click outside of board range
- + Should work better for Linux users; case insensitivity for file opens
- has been added.
- + Fixed close bug that was affecting Linux builds (may affect more)
- + Keypad enter works where normal enter works now
- + Fixed disappearing cursor when cancelling out of abandon changes box
- when loading a new world in the editor
- + Fixed problems when loading/saving robots outside of ID range (do not
- hardcode ID's people)
- + Fixed problem with NO BOARD exits being set to something else when
- empty boards were being stripped or when worlds were being imported
- + Fixed bug where auto-decrypting worlds didn't work if the XOR value
- was negative
- + Fixed problem with rid not working the first cycle
- + Fixed inability to interpolate (with &&'s) counter names larger than
- 14
- + Added new robot mem counter in debug box (only kb precise, rounds up)
- + Fixed ability to clone the player on non-title board after testing
- + Lengthened size of mod name buffers
- + Fixed bug where send x y doesn't work from the global robot
- + Fixed a few bugs that could cause MZX to crash
- + Fixed a bug that prevented copyrobot "string" from working in some
- situations
- + Fixed a bug allowing player duplication in board importing
- August 11, 2004 - MZX 2.80b
- + Made it possible for robots to move through teleporters
- + Fixed bug with pressing shift in text entry boxes
- + Made it so alt + tab does not switch draw modes in editor
- + Fixed a disassembly error for color intensity N percent command
- + Fixed problem with looping on mods that do not loop explicitely
- + Fixed alt + dir scrolling in the char editor
- + Fixed not being able to click the rightmost char in the char editor
- + Readded unmark (alt + u) to robot editor (mysteriously disappeared??)
- + Fixed key label so it returns proper unicode values
- + The player and pushable robots can now be pushed by the push command
- + Fixed bug where you could clone the player by switching boards
- + Fixed bug where you could either turn off overlay or switch to boards
- that don't have it while in overlay edit mode...
- + Fixed bug where remains of debug window would not be cleared in editor
- if the board width is too small
- + Fixed bug where turning off the menu with a board too small would mess
- things up
- + Fixed bug where run lengths were saved one too large... this could fix
- stability problems in at least occasional cases (with saved worlds or
- save games, at least)
- + Fixed placing solid things beneath robots (like bombs)
- + Added support for a keyboard plus in the char editors
- + Fixed previous button in SFX editor
- + Made robot name box disappear when robot char box comes up...
- + Fixed bug where mods restart after pressing P if they're the same mod
- as what was playing before
- + Fixed problem with changing params (with P) in the editor.
- + Fixed bug where null boards were not being pruned from old worlds upon
- load
- + Made file name saving box larger (for saving games and worlds)
- + Fixed bug where default (100%) palette intensity values would not be
- applied to the palette a game loads with
- + Fixed bug where exporting char sets that are full size caused a 0
- byte charset to be exported (8bit wraparound)
- - Removed export text in the board editor. Don't think anyone wanted it...
- + Added support for forms such as :line
- + Fixed sporadic incompletion of strings without trailing quotes at the
- end of the line
- + Fixed bug where clearing/cutting the last line of a robot crashed MZX
- + F4 in robot editor now works more generally
- + Made line numbers in robot editor error report start at 1
- + Added ctrl + G to go to a line in the robot editor (ala nano)
- + Made it possible to change a robot's color in the editor
- + Fixed bug where spitfire, seekers, and missiles didn't hurt something
- immediate adjacent to whatever shot it
- + Fixed editing of spitfires
- + Made default speed 4 again (5, bleh)
- + Readded quicksave/quickload
- + Readded F8 clear (always works - be careful)
- + Fixed autorepeat problems for spacepressed/delpressed.
- + Wrapped around sprite values so LogiCow's bad code would work (HTMCIAB)
- + Cleared block commands inbetween board changing and other things like
- that
- + Fixed bug where MZX would crash if put dir player overwrote the robot
- doing it
- + Fixed bug where playing SAMs would eventually crash MZX
- + Fixed some mod * problems (hopefully?)
- + Fixed bug where pasting blocks over the edge of the board in the editor
- would cause MZX to crash
- + Uses new GDM2S3M source that fixes some bugs. If your converted GDM's
- have problems, delete the S3M's it generated.
- August 9, 2004 - First release, MZX 2.80 BETA
|