dMZX Forums: PZX-version - dMZX Forums

Jump to content

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

PZX-version

#1 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 04 April 2010 - 08:58 PM

This is a new thread for PZX-version. (The other thread is old and was started as something else, and is getting mixed up, so I decided to make a proper message about it this time.) I will be typing the notes here as they are implemented (even for codes that are currently non-released, they will be released later)

Version P1-P8 (PZX-mode stuff):
  • Enter PZX mode with . ">filename" comment at top line of global robot codes
  • You can add a file of Forth codes for the world
  • You can create up to 127 additional kind of non-storage objects per world. You can set the name (which is used in Forth codes, in the editor, and in Robotic codes), number (0x80 to 0xFE), parameter type, character to represent (which can be a dynamic mode), and attribute flags.
  • Additional attribute flags: A_USERFLAG A_CRUSH A_INVISIBLE A_SEEBLIND A_BREAKABLE
  • Element flags (only one can be used): AE_WATER AE_FIRE AE_LAVA AE_GOOP AE_THINWEB AE_THICKWEB AE_PLAYER
  • Various Forth commands
  • Forth events: EV.PUSH EV.ITEM EV.AFFECTSTOOD EV.UPDATE EV.SHOT EV.BOMB EV.LAZER EV.ARRIVE EV.TESTPUSH EV.PLAYERMOVING EV.KEYBOARD EV.LOADED EV.ENTERED EV.BULLETHIT EV.PLAYERSHOOT EV.RENDER EV.EDITORKEY EV.BEFOREADDBOARD EV.AFTERADDBOARD EV.SELECTBOARD
  • Codes can also run in editor
  • Support MZI file
  • Lava walk counter can have additional functions
  • Support character bank
  • Blinking text mode
  • Custom rendering mode, can call EV.RENDER event of Forth codes to draw any arbritrary true-color graphics
  • You can now have a extra 8-bit value associated with boards
  • New "BOARD_NUMBER" and "BOARD_COUNT" counters to count current board number and how many boards in this world
  • Expressions can now be deferred, can call Forth codes, and has a few other operators too
  • Label name can have equal sign to set LOOPCOUNT of receiving robot if they have a label with the name before the equal sign but not the full name (this is mostly useful in menus, but it can have other uses as well)
  • Various other things


Version P1-P8 (editor/config stuff):
  • Support system mouse, which also prevents mouse pointer auto centered (partially fixed in mainstream)
  • SHIFT+F12 to screenshot as MZM
  • ALT+H to hide help menu now shows a different status menu and can move to top/bottom of screen, but hides if ALT+Y open or if SHIFT+F1 etc. Displays: Music set, draw mode, exits directions, board number, X/Y coordinate of cursor, color/ID/param of current position and under of current position, color/thing/param of currently draw.
  • Board list shows board numbers
  • SHIFT+SPACE places object on under layer
  • CTRL+I sets board extra bits and input number and input size for board
  • Configuration for old ALT+D in editor
  • Configuration for mouse-buttons in editor
  • Various other things


Version P1-P8 (compatibility/bugfix stuff):
  • Allow making chest containing hi-bombs (fixed in mainstream)
  • Fix spider-webs (fixed in mainstream)
  • Fix dragon movement for old version of world files
  • Fix score limit for old version of world files (fixed in mainstream)
  • Various other things


Version P9 (PZX-mode stuff):
  • PLAY command can now use ")" as first character to make it translate () and && within the string
  • New counter "FORTH_SWAPPED" makes it to keep current Forth codes with swapping a world
  • New counter "STRING_TERM" sets string terminators for files and for BOARD_SCAN (if value is 0, treated as 42, but if 256 it is treated as 0)
  • Special commands for PC sound with "*" at the start, which can be used to immediately interrupt sounds playing, enter any arbritrary frequency, use calculated numbers for sounds, allow SFX table to interrupt sounds, and more


Version P9 (editor/config stuff):
  • Configuration setting "dialog_fresult", makes it so the function keys can be used to quick access buttons of dialog box (instead of F1 for help). It is not always clear what functions keys does what, but it is usually F2 for next page, F3 for previous page, F1 for OK/done.
  • You can now save old world files if the first line of global robot has a comment with less than sign, followed by the version magic number in hex.
  • CTRL+X and CTRL+Z shortcuts now work in robotic editor


Version P9 (compatibility/bugfix stuff):
  • Allow | as special first char of Robotic line (fixed in git)
  • Shoot ends cycle for old world files
  • Hopefully PC sound bug is fixed
  • PC sound is now immediately interrupted when you switch it off in F2 menu


TODO:
  • Implement 2.83 format
  • Implement ZEUXNET (9389)

In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#2 User is offline   ajs 

  • carpe diem
  • PipPipPipPipPip
  • Group: Members
  • Posts: 1,614
  • Joined: 21-October 00
  • Gender:Male
  • Location:United Kingdom

Posted 05 April 2010 - 10:00 AM

View Postzzo38, on 04 April 2010 - 09:58 PM, said:

  • New "BOARD_NUMBER" and "BOARD_COUNT" counters to count current board number and how many boards in this world

Do you have any ideas about how people utilize these counters usefully in a game? They're easy to add but they seem a bit "raw" compared to most other counters.


View Postzzo38, on 04 April 2010 - 09:58 PM, said:

  • Support system mouse, which also prevents mouse pointer auto centered (partially fixed in mainstream)

I guess you're referring to the fact that I didn't disable the mouse warping if system mouse is enabled. What do people think about this? Should it be disabled for system mouse?


View Postzzo38, on 04 April 2010 - 09:58 PM, said:

  • SHIFT+F12 to screenshot as MZM

Doesn't really seem useful but I might be wrong. What do other people think?


View Postzzo38, on 04 April 2010 - 09:58 PM, said:

  • Fix dragon movement for old version of world files

Probably worth fixing, I'll check it out.


View Postzzo38, on 04 April 2010 - 09:58 PM, said:

  • Shoot ends cycle for old world files

This is also fixed in mainstream.


View Postzzo38, on 04 April 2010 - 09:58 PM, said:

  • Implement ZEUXNET (9389)

Sounds cool. What's 9389?


View Postzzo38, on 04 April 2010 - 09:58 PM, said:

  • Implement 2.83 format

It's also worth pointing out to people that you haven't rebased this on 2.83 yet. Though you might consider it OK to just add file format support, 2.83 adds a lot of other bug fixes that you are ignoring. Wouldn't it just be easier to diff PZX v9 against 2.82b, then apply to 2.83 (fixing the rejects, of which I guess there will be quite a few)?

--ajs.
0

#3 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 05 April 2010 - 05:40 PM

View Postajs, on 05 April 2010 - 02:00 AM, said:

Do you have any ideas about how people utilize these counters usefully in a game? They're easy to add but they seem a bit "raw" compared to most other counters.
I have used them in my (currently unreleased) game. One use of the "BOARD_COUNT" counter is that it can be used to check for PZX-mode support (the value will never be zero if PZX-mode is enabled).

Quote

I guess you're referring to the fact that I didn't disable the mouse warping if system mouse is enabled. What do people think about this? Should it be disabled for system mouse?
I don't really care much, because I am maintaining my own version (I can live with it even if it doesn't work exactly how I wanted when playing newer mainstream world files). It probably would be useful to see what many other people think, though.

Quote

Doesn't really seem useful but I might be wrong. What do other people think?
Again, good thing to ask many other people.

Quote

Probably worth fixing, I'll check it out.
Well, I changed the code to fix it only for old world files and not for new ones, some new world files depend on the new function and I don't want to break those ones.

Quote

This is also fixed in mainstream.
I can't edit old messages, now... Read above message also.

Quote

Sounds cool. What's 9389?
What the default port number will probably be if I don't change my decision.

Quote

It's also worth pointing out to people that you haven't rebased this on 2.83 yet. Though you might consider it OK to just add file format support, 2.83 adds a lot of other bug fixes that you are ignoring. Wouldn't it just be easier to diff PZX v9 against 2.82b, then apply to 2.83 (fixing the rejects, of which I guess there will be quite a few)?
I am not actually ignoring all the other bugfixes, there is just many I haven't listed here yet (although when it is released, you will be able to compare the source-codes between versions). Actually, there are other bug fixes I have made (some even in P8 and some in P9) that I haven't listed here (mostly either because I forgot or there is too many to list), but I will stay updated to fix them more. (Many of the bugs fixed in 2.83 have been fixed in earlier released versions of PZX)

Also, there are some things I simply do not want to fix. Such as, I do not want to follow debytecode versions (although I will still look for new bugs so that I can fix them if they are relevant). That is, version 2.83 might be the latest version of mainstream worlds that PZX will support, although compatibility and stuff will be continued to be fixed.

Anyways, this is definitely useful that both me and you will find and fix bugs in MegaZeux. Sometimes my bug-fixes are released first, sometimes yours are. Sometimes I post the bugs in the tracker soon after or before I fix them (but usually before I released my changes, even if my changes are released before yours are).
In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#4 User is offline   ajs 

  • carpe diem
  • PipPipPipPipPip
  • Group: Members
  • Posts: 1,614
  • Joined: 21-October 00
  • Gender:Male
  • Location:United Kingdom

Posted 05 April 2010 - 05:53 PM

Yes, thanks for posting bug reports. I don't care when the fixes make it out, and in what form, just as long as they aren't forgotten about. The bug tracker's best for this, but eventually I will review PZX's code to see if any have not been reported.

In general, I think it's pointless versioning things unless you absolutely know they will break games since the bug was "introduced". The SHOOT fix was risky, but the old behaviour was really quite inconsistent and would have been much harder to code a game for. In particular, this built-in movement compatibility fix sounds like it would be very unlikely to break a game. Your statement makes it sound like you know of worlds broken by this change (if it isn't version checked). Could you be more specific about which worlds these are?

--ajs.
0

#5 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 05 April 2010 - 07:55 PM

View Postajs, on 05 April 2010 - 09:53 AM, said:

Yes, thanks for posting bug reports. I don't care when the fixes make it out, and in what form, just as long as they aren't forgotten about. The bug tracker's best for this, but eventually I will review PZX's code to see if any have not been reported.

In general, I think it's pointless versioning things unless you absolutely know they will break games since the bug was "introduced". The SHOOT fix was risky, but the old behaviour was really quite inconsistent and would have been much harder to code a game for. In particular, this built-in movement compatibility fix sounds like it would be very unlikely to break a game. Your statement makes it sound like you know of worlds broken by this change (if it isn't version checked). Could you be more specific about which worlds these are?

--ajs.
I could make the SHOOT fix not version-checked, but for the dragon movement it will stay version-checked because Super ASCII MZX Town Part I relies on the dragons not having random movement (in more than one board). There might be other games that do that too.
In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#6 User is offline   nooodl 

  • Senior Member
  • PipPipPipPip
  • Group: Members
  • Posts: 735
  • Joined: 28-October 06
  • Gender:Not Telling
  • Location:Belgium

Posted 06 April 2010 - 01:27 PM

View Postzzo38, on 05 April 2010 - 07:40 PM, said:

One use of the "BOARD_COUNT" counter is that it can be used to check for PZX-mode support (the value will never be zero if PZX-mode is enabled).


The fuck?

Just make a "PZX_ENABLED" counter instead. "BOARD_COUNT" is useless and/or esoteric.
(also, nobody will use this)
0

#7 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 06 April 2010 - 06:43 PM

View Postnooodl, on 06 April 2010 - 05:27 AM, said:

Just make a "PZX_ENABLED" counter instead. "BOARD_COUNT" is useless and/or esoteric. (also, nobody will use this)
Untrue, actually I have used "BOARD_COUNT" in the Monster Mesh game (you can skip levels).
In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#8 User is offline   CJA 

  • «≡larch bucket≡»
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 3,262
  • Joined: 23-June 05
  • Gender:Male
  • Location:......@.c....

Posted 07 April 2010 - 04:34 AM

i like your avatar
Need a dispenser here.
0

#9 User is offline   nooodl 

  • Senior Member
  • PipPipPipPip
  • Group: Members
  • Posts: 735
  • Joined: 28-October 06
  • Gender:Not Telling
  • Location:Belgium

Posted 08 April 2010 - 07:27 PM

Uh, how is it important to know the amount of levels when skipping levels

i also like your avatar
0

#10 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 12 April 2010 - 05:31 AM

Found a bug (specific to PZX-version) (will be fixed later):

F4 key in robotic editor does not work with extkinds
In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#11 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 01 May 2010 - 08:40 PM

This is my ideas of ZEUXNET:
  • Pushing F7 on title screen displays the dialog box to connect to ZEUXNET, asking you for hostname, port number, username, password. If you are already connected, it would instead give you options for disconnecting and other things.
  • New Forth commands: NETEVENT to define an event callable over network (you define the event number, and how many inputs and outputs, must be defined on both sides of the connection), NETCALL to synchronously call an event (give the inputs, and event number, and username (or zero to use NET_PRIVATE_SET), it will wait until completion and then return the outputs to the caller), NETRNDSYNC to synchronize random number generators.
  • Special counter "NET_CHANNEL_SET" to select a channel on the current server (null string sets no channel), "NET_PRIVATE_SET" sets a username where all messages will also be sent to (whether or not a channel is also set).
  • Special strings "NET_SELF_USERNAME" to get this client's username, and "WORLD_HASH" to get the MD5 hash of the current world file.
  • Counter "NET_CHANNEL_COUNT" to count users on current channel (0 if not on a channel or no connection to ZEUXNET).
  • Counter "NET_MESSAGE_LOCK" which if set to non-zero, prevents messages from being received from any user other than NET_PRIVATE_SET and everyone else that is currently on the channel at the time NET_MESSAGE_LOCK is set.
  • Counters beginning with "NET:" as well as string names beginning with "$NET:" are broadcast to the channel when written to. This means all clients on that channel will have a copy of these counters/strings with the same values (the "NET:" prefix stays on all clients).
  • If a label name begins with "NET:" it will be broadcast to everyone on the channel (the "NET:" prefix stays even in the receiver). You can also use the "=" mode with network labels the same way as you can with private labels.
(This list should be sufficient.)

This post has been edited by zzo38: 01 May 2010 - 08:42 PM

In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#12 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 06 June 2010 - 07:21 PM

Update: There is now a IRC channel available. Channel +MEGAZEUX on zzo38computer.cjb.net:194 (note:all predefined channels (which does necessarily include all modeless channels with topic messages), are automatically logged)

This post has been edited by zzo38: 06 June 2010 - 07:23 PM

In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#13 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 13 June 2010 - 04:52 AM

I have fixed one more bug with [ and ] key in editor. (This bug does not affect mainstream, as far as I know)

This post has been edited by zzo38: 13 June 2010 - 04:52 AM

In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#14 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 14 June 2010 - 06:21 PM

The SHOOT fix is no longer version-checked. (In PZX-mode, you can still use the bit2 of the lava walk setting to override this function, just like you can do with most other commands that normally end the cycle.) I will not remove the version-checking for the dragons movement fix, however. (Some games do rely on this!) (In PZX-mode, you can write a Forth code to create a extkind for the old kind of dragons movements, if you want to.)

This post has been edited by zzo38: 14 June 2010 - 06:23 PM

In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#15 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 27 November 2010 - 12:39 AM

Version P9 is now released. In addition to the changes listed above, there is a new event called EV.GLOBAL which is used to do something during every cycle. The slowed and slow_down variables in MegaZeux are passed as parameters, so that you can make decisions based on it.

Quote

i like your avatar
My avatar is dynamic. Some static pictures are selected, while other pictures it can come up are generated dynamically.

This post has been edited by zzo38: 27 November 2010 - 12:40 AM

In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#16 User is offline   smilymzx 

  • Those Goodie-Goodies!
  • PipPipPip
  • Group: Members
  • Posts: 349
  • Joined: 25-October 03
  • Gender:Male
  • Location:I.M.MEEN's book

Posted 12 December 2010 - 05:49 AM

Awesomeness, Thanks for the upgrade!

And if you are already finished with ''Custom Rendering'' unlike version 8, Can you add Documentation to easily explain how to use it? I have a Frozen screen doing no action except if I quit the game while testing or playing! (the DRAW_TILE, DRAW_SPRITE, DRAW_TEXT and DRAW_BOX Forth commands)

Edit: Yes. It is a bump, But very important for ZZO and others who use this fork!

This post has been edited by smilymzx: 12 December 2010 - 05:51 AM

SmilyMZX, A.K.A. Hamtaro126 (A.K.A. AtariHacker)

I am at:

Z2 - ZZT forums, NESDEV Forums, SMW Central (Super Mario World)

Other interests:

Museum of ZZT, NESDEV Wiki, Wiki of Weavers (ZZT-related!)
0

#17 User is offline   zzo38 

  • Registered members
  • PipPipPip
  • Group: Members
  • Posts: 445
  • Joined: 16-May 08
  • Gender:Not Telling

Posted 12 December 2010 - 06:31 AM

View Postsmilymzx, on 11 December 2010 - 10:49 PM, said:

And if you are already finished with ''Custom Rendering'' unlike version 8, Can you add Documentation to easily explain how to use it? I have a Frozen screen doing no action except if I quit the game while testing or playing! (the DRAW_TILE, DRAW_SPRITE, DRAW_TEXT and DRAW_BOX Forth commands)
Sorry there is no documentation yet (I didn't get a chance to write it very well). Maybe later I will write it. However, this feature has not been thoroughly tested yet, unfortunately. For now, just look at the source-code if you are interested (you may write the documentation yourself if you want to but I don't get a chance). But an important point of advice is, all custom rendering codes must happen during the EV.RENDER event. Please note this is not a feature I am using in Super ASCII MZX Town series, and not in most other games, either.
In Capitalist America, law violates YOU!

"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
0

#18 User is offline   LogiCow 

  • Holiday cow
  • PipPipPipPipPip
  • Group: Members
  • Posts: 2,671
  • Joined: 18-July 02
  • Gender:Male
  • Location:Quebec

Posted 18 December 2010 - 12:57 AM

SHIFT+F12 to screenshot as MZM

I really like the idea, but can't think of any practical use.
0

Share this topic:


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

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