Permalink
Browse files

MegaZeux 2.51s2 release.

  • Loading branch information...
1 parent 5e7c79b commit de721af805d222d98a1e6c97fd332275c449d3b0 @ajs1984 committed Aug 11, 2008
Showing with 3,016 additions and 3,046 deletions.
  1. +22 −0 WHATSNEW.251 → CHANGELOG
  2. +4 −4 Makefile
  3. +49 −36 README.1ST
  4. +46 −0 README.S1
  5. +1 −141 README.TXT
  6. +1 −1 arrowkey.asm
  7. +8 −2 boardmem.cpp
  8. +1 −1 boardmem.h
  9. +3 −14 comp_chk.cpp
  10. +2 −2 comp_chk.h
  11. +20 −0 convmem.txt
  12. +8 −7 counter.cpp
  13. +1 −1 cursor.asm
  14. +8 −1 data.asm
  15. +6 −1 data.h
  16. +7 −1 data.inc
  17. +1 −79 detect.asm
  18. +1 −5 detect.h
  19. +0 −1 detect.inc
  20. +2 −2 dt_data.cpp
  21. +2 −2 dt_data.h
  22. +14 −67 edit.cpp
  23. +33 −22 egacode.cpp
  24. +3 −1 egacode.h
  25. +6 −5 ezboard.cpp
  26. +42 −150 game.cpp
  27. +1 −1 graphics.asm
  28. +45 −51 help.doc
  29. +1 −1 idput.asm
  30. +17 −27 main.cpp
  31. +1 −0 main.h
  32. +9 −1 mouse.cpp
  33. +4 −1 mouse.h
  34. +38 −7 new_mod.cpp
  35. +1 −1 random.asm
  36. +1 −1 retrace.asm
  37. +2,365 −2,343 runrobo2.cpp
  38. +106 −66 saveload.cpp
  39. +101 −0 scrdump.cpp
  40. +35 −0 scrdump.h
@@ -1,3 +1,25 @@
+2.51s2final release:
+
++ Deleted cpu checking code, was unnecesary and caused errors.
++ Fixed bug involving mod * settings being lost when loading
++ Should have fixed ems problems some were reporting, if not, just
+ try to get more conventional memory.
+
+2.5.1s2beta release:
+
++ added MOD "*", which allows a board to use whatever module the previous
+ board was using; this necessitated a change in the .SAV file format
+ (still need changes in the editor UI to access this feature outside of
+ Robotic)
++ inmate's semantics for MOD "SOMETHIN.MOD*" aren't immediately possible,
+ although a rough hack is in already
++ char edits are now not displayed until the beginning of the next cycle;
+ the deferred display should eliminate a lot of flickering
++ an (at least partial) fix for the infamous UNDER bug (thanks JZig!)
++ MOUSEX, MOUSEY and BUTTONS are now buffered.
++ more sane magic handling
++ can load MZX 2.51 and 2.51S1 worlds, but will only save 2.5.1spider2 format
+
2.51S1 release:
View
@@ -32,8 +32,8 @@ ems.obj error.obj ezboard.obj fill.obj game.obj game2.obj getkey.obj \
graphics.obj helpsys.obj hexchar.obj idarray.obj idput.obj intake.obj \
main.obj meminter.obj meter.obj mouse.obj new_mod.obj palette.obj \
pal_ed.obj param.obj password.obj random.obj retrace.obj roballoc.obj \
-runrobot.obj runrobo2.obj saveload.obj scrdisp.obj sfx.obj sfx_edit.obj \
-string.obj timer.obj window.obj
+runrobot.obj runrobo2.obj saveload.obj scrdisp.obj scrdump.obj sfx.obj \
+sfx_edit.obj string.obj timer.obj window.obj
#
# I'd rather this wasn't necessary, but I can't think of a way either in
@@ -48,8 +48,8 @@ ems.obj+error.obj+ezboard.obj+fill.obj+game.obj+game2.obj+getkey.obj+\
graphics.obj+helpsys.obj+hexchar.obj+idarray.obj+idput.obj+intake.obj+\
main.obj+meminter.obj+meter.obj+mouse.obj+new_mod.obj+palette.obj+\
pal_ed.obj+param.obj+password.obj+random.obj+retrace.obj+roballoc.obj+\
-runrobot.obj+runrobo2.obj+saveload.obj+scrdisp.obj+sfx.obj+sfx_edit.obj+\
-string.obj+timer.obj+window.obj
+runrobot.obj+runrobo2.obj+saveload.obj+scrdisp.obj+scrdump.obj+sfx.obj+\
+sfx_edit.obj+string.obj+timer.obj+window.obj
all: megazeux.exe fix.exe getpw.exe killgbl.exe txt2hlp.exe ver1to2.exe
View
@@ -1,46 +1,59 @@
-IMPORNAT NOTICE:
- PLEASE READ THIS FILE BEFORE TRYING TO USE MZX 2.51S1b! YOU ALREADY DID,
+IMPORTANT NOTICE:
+ PLEASE READ THIS FILE BEFORE TRYING TO USE MZX 2.51S2! YOU ALREADY DID,
DIDN'T YOU? YOU RAN THE PROGRAM AND IT DIDN'T WORK AND NOW YOU'RE ALL
UPSET AND YOU THINK IT'S OUR FAULT, DON'T YOU? HA HA HA! SEE IF I HELP
YOU OUT! I'M GUESSING THE SOUND DOESN'T WORK, RIGHT? TOO BAD! MAYBE
YOU SHOULD HAVE READ THIS FILE EARLIER, THAT'S WHY IT'S NAMED README.1ST!
- Okay, This is sort of a betaish release, in the sense that I'm pretty sure
- everything works right, but you never know :) It's also the first release
- since I plan on adding more improvements over time. So even if everything
- works perfectly, I still get to call it a beta since it's not really done.
-
- First big thing is that this software is protected by the General Public
- License, a copy of which has been included for your convenience.
-
- Second big thing is that as of right now, you must have MZX 2.51 installed
- on your system. This is because I haven't included all the various support
- files that MegaZeux needs. In light of this, you MUST copy the included
- .EXE file into your normal MegaZeux directory, if you don't, your sound
- will not function, and the help files will be missing, and other nasty
- things.
-
- In accordance with the General Public License, the source code for
- MZX 2.51S1 is available, and you are free to use/modify it under the
- terms set forth in the General Public License. The source code should be
- available wherever you got this binary package, if not, you should always
- be able to obtain the source at:
- http://www.execpc.com/~tgoetzma/
- Barring server failures or me changing ISPs or something :)
-
- Changes are outlined in whatsnew.251. If you find a major bug in the
- program, please email me at the address below. But ONLY for bugs (or
- perhaps cash donations, complements, etc...:) PLEASE DO NOT EMAIL me
- with questions on how to use the new stuff, or amazing ideas that you
- have for MZX 2.51S2. I may or may not release some more detailed info
- on using MZX 2.51Sx, or perhaps some kind of FAQ. Keep an eye on any
- zeux.org or some other popular mzx news page.
-
- I guess that's it...Enjoy!
+ First, if you care, old readme for s1 is in readme.s1, it's prolly outdated
+
+ Like s1, this is a pretty darn beta release. It SHOULD work fine, and has,
+ so far, worked fine on my computer. Use it with care, though, and send any
+ bug reports to jzig@cncn.com.
+
+ Second, this release incorporates more than just spider's input, as you can
+ tell from this readme. Mental contributed a large amount of code, and I
+ (JZig) got the whole thing working and fixed, and fixed that under bug.
+ (more on that later).
+
+ Now, what's actually different (read whatsnew.251 for specifics):
+ The mod "*" command works in robotic. Basically, this command sets it so
+ that the current board will keep playing whatever mod was playing last,
+ and is useful for status screens and the like. Ask inmate for more
+ detail. In a related note, mod "foo*" loads module foo than runs mod "*"
+ The under direction now works. Ie, you can check for stuff underneath
+ anything in the game world. This is very useful when you need to check
+ what floor tile a robot is on, and should save programmers much trouble
+ and hacking to get around this bug. Enjoy.
+ The counters MOUSEX, MOUSEY, and BUTTONS are now buffered, meaning they
+ won't change in the middle of the cycle.
+ There are several other internal changes that should not effect the user,
+ except by making mzx easier to look at and nicer, read whatsnew.251 for
+ details
+
+ In accordance with the GNU GPL, the full source for this program is
+ available. The download page of zeux.org should have the source, and any
+ number of other places will as well.
+
+ As for this package, it contains every file VITAL for mzx to run, but does
+ not contain any mods or mzx worlds, you can get them from the original
+ package if you feel the need to hear cv_magic.mod again. You can safely
+ copy over your old megazeux directory, if you feel the desire. Just
+ overwrite everything you feel like.
+
+ Finally, if you have any bug reports, or REASONABLE suggestions, email me
+ at jzig@cncn.com, but if the suggestions are NOT reasonable, expect them
+ to be ignored, so don't spam me, please.
+
+ And, uh, that's it, or something. Leave.
+
+ Ben Zeigler
+ jzig@cncn.com
Charles Goetzman
- tgoetzma@execpc.com
+ spider@aether.dhs.org
+ spider@zeux.org
+
-
View
@@ -0,0 +1,46 @@
+
+IMPORNAT NOTICE:
+ PLEASE READ THIS FILE BEFORE TRYING TO USE MZX 2.51S1b! YOU ALREADY DID,
+ DIDN'T YOU? YOU RAN THE PROGRAM AND IT DIDN'T WORK AND NOW YOU'RE ALL
+ UPSET AND YOU THINK IT'S OUR FAULT, DON'T YOU? HA HA HA! SEE IF I HELP
+ YOU OUT! I'M GUESSING THE SOUND DOESN'T WORK, RIGHT? TOO BAD! MAYBE
+ YOU SHOULD HAVE READ THIS FILE EARLIER, THAT'S WHY IT'S NAMED README.1ST!
+
+ Okay, This is sort of a betaish release, in the sense that I'm pretty sure
+ everything works right, but you never know :) It's also the first release
+ since I plan on adding more improvements over time. So even if everything
+ works perfectly, I still get to call it a beta since it's not really done.
+
+ First big thing is that this software is protected by the General Public
+ License, a copy of which has been included for your convenience.
+
+ Second big thing is that as of right now, you must have MZX 2.51 installed
+ on your system. This is because I haven't included all the various support
+ files that MegaZeux needs. In light of this, you MUST copy the included
+ .EXE file into your normal MegaZeux directory, if you don't, your sound
+ will not function, and the help files will be missing, and other nasty
+ things.
+
+ In accordance with the General Public License, the source code for
+ MZX 2.51S1 is available, and you are free to use/modify it under the
+ terms set forth in the General Public License. The source code should be
+ available wherever you got this binary package, if not, you should always
+ be able to obtain the source at:
+ http://www.execpc.com/~tgoetzma/
+ Barring server failures or me changing ISPs or something :)
+
+ Changes are outlined in whatsnew.251. If you find a major bug in the
+ program, please email me at the address below. But ONLY for bugs (or
+ perhaps cash donations, complements, etc...:) PLEASE DO NOT EMAIL me
+ with questions on how to use the new stuff, or amazing ideas that you
+ have for MZX 2.51S2. I may or may not release some more detailed info
+ on using MZX 2.51Sx, or perhaps some kind of FAQ. Keep an eye on any
+ zeux.org or some other popular mzx news page.
+
+ I guess that's it...Enjoy!
+
+ Charles Goetzman
+ tgoetzma@execpc.com
+
+
+
View
@@ -1,141 +1 @@
-
-**SUPPORT/UPDATES
-
- Up-to-the-minute upgrades of the official MegaZeux distributation are available via FTP at:
-
- http://www.scsn.net/users/dbwilli/
-
- Contact Matt Williams:
-
- Internet: dbwilli@scsn.net
- WWW: http://www.scsn.net/users/dbwilli/
-
-**NEW MUSIC CODE
-
- MegaZeux 2.51 has all-new music code. Some important new features-
-
- * Up to 32 music/sound channels playing simultaneously
- * Up to 4 simultaneous sound effects
- * Support for stereo and 16-bit sound cards
- * Support for SoundBlaster (1.x/2.x/16/Pro) GUS and PAS-16
- * Support for almost all file formats through a conversion program
-
- Sorry, but Sound Source and PC Speaker output have been removed.
- Note that MID and XM are NOT supported. MOD files can be loaded as
- normal, but all other supported formats MUST be converted to a GDM
- file first using the included 2GDM utility. Supported formats
- include MOD/NST/WOW/OCT, S3M, 669, and MTM.
-
- See the 'MegaZeux's Sound System' section of Help for details.
-
-**GETTING MEGAZEUX STARTED-
-
- Many people have had problems getting MegaZeux to run on their
- systems. MegaZeux requires EMS for most usage, and many computers
- will need to use a boot disk.
-
- MegaZeux makes extensive use of EMS and conventional (first
- 640k) memory. The more you have available, the better it will
- run.
-
- To have EMS memory available, you must have an EMS driver
- installed. Most EMS drivers also require an XMS/HIMEM driver
- loaded first. You will need lines similar to the following in
- your CONFIG.SYS to load HIMEM and an EMS driver, respectively-
-
- DEVICE=C:\DOS\HIMEM.SYS
- DEVICEHIGH=C:\DOS\EMM386.EXE 3072 H=160
-
- The 3072 tells DOS to reserve up to 3072K of memory (3
- megabytes) for EMS. Feel free to lower or raise this value,
- but a minimum of 2048K (2 megabytes) is recommended.
-
- It is also recommended that you load SmartDrive to run MegaZeux.
- SmartDrive is a disk-cache utility that is usually loaded,
- because it greatly speeds up repeat disk accesses. You probably
- already have a line such as SMARTDRV.EXE /X in your AUTOEXEC.BAT;
- if not, you should consider adding it somewhere after the PATH
- statement.
-
- To help free up conventional memory, you may need to create a
- boot disk. This is a common procedure for games that use less
- conventional setups (such as MegaZeux), and if a certain boot disk
- works for one game, it may work just fine for MegaZeux. However,
- you must remember to include HIMEM and an EMS driver, and include
- a mouse driver if you want your mouse to be available.
-
- To create a boot disk, stick a blank disk into your A: drive and
- type the following:
-
- FORMAT A: /S <enter>
-
- Answer Yes to all questions. Give the disk a label if you wish.
- Answer No to "Format another?" and then type:
-
- COPY CON A:CONFIG.SYS <enter>
- DEVICE=C:\DOS\HIMEM.SYS <enter>
- DEVICEHIGH=C:\DOS\EMM386.EXE 4096 H=160 <enter>
- DOS=HIGH <enter>
- <ctrl+z>
-
- COPY CON A:AUTOEXEC.BAT <enter>
- PATH C:\DOS;C:\WINDOWS <enter>
- SMARTDRV /X <enter>
- C:\MOUSE\MOUSE <enter>
- C: <enter>
- CD \MEGAZEUX <enter>
- MEGAZEUX <enter>
- <ctrl+z>
-
- The line to load the mouse driver is optional, and may vary on
- different computers. The drive and directory you have MegaZeux
- in may differ as well. Your windows and dos paths may differ.
-
- Once you've followed these instructions, you can insert the
- disk and reboot the computer to run MegaZeux. It is best if you
- get a computer-wise friend to help you, if you can't get the
- above to work.
-
- One note- most newer sound cards require drivers or other
- programs to be run before they can be used. Check your existing
- configuration files and/or manuals to find out what these
- commands are if you intend to use MegaZeux with a boot disk.
-
-**PREVIOUS VERSION USERS-
-
- If you have used versions 2.00 or 2.01 of MegaZeux at any time,
- you should run the program FIX.EXE in every directory containing
- .MZX and .MZB files. This fixes a small bug in version 2.00/2.01.
- .SAV files may still run strangely- if so, start the game anew.
-
-**NEW USERS-
-
- Welcome to MegaZeux!
-
- As you may already know, MegaZeux is a game system which
- allows you to play almost limitless worlds in EGA graphics
- and with beautiful digitized music and sound. MegaZeux comes
- with worlds, and new worlds are being uploaded every day to
- major on-line services such as America Online. But the most
- fabulous feature of MegaZeux is the World Editor.
-
- Using the World Editor, ANYONE can create the world of their
- dreams. Make it as simple or complex, as easy or difficult,
- as long or short as you please. And we aren't just talking
- about worlds made up of petty, pre-programmed enemies and
- objects. MegaZeux has it's own, easy to use PROGRAMMING
- LANGUAGE called Robotic that allows you to create enemies,
- objects, and worlds that do almost anything you desire.
-
- For the new user, I recommend you play Caverns, the first
- included game, to get the feel of MegaZeux. You may wish
- to read the help or .DOC section entitled "Controls" to
- learn how to play MegaZeux.
-
- Once you have the feel for the game, however, feel free
- to dive into the World Editor and get messy! You should
- probably read the help or .DOC section entitled "The World
- Editor" first.
-
- Use F1 to read help, or read MEGAZEUX.DOC, for more detailed
- information.
+Read readme.1st, this is empty.
View
@@ -448,4 +448,4 @@ public getch
ends
-end
+end
View
@@ -38,6 +38,8 @@
#include <dos.h>
#include "mod.h"
+#define SAVE_INDIVIDUAL
+
//Normalize an unsigned char far * ptr-
#define normalize(x) {\
x=(unsigned char far *)MK_FP(FP_SEG(x)+(FP_OFF(x)>>4),FP_OFF(x)&15); }
@@ -472,6 +474,7 @@ char store_current(unsigned char id) {
//also included in case this ever fails. To use the individual
//code, define the symbol SAVE_INDIVIDUAL.
#ifndef SAVE_INDIVIDUAL
+
mem_cpy((char far *)ptr,mod_playing,207+FILENAME_SIZE);
ptr+=207+FILENAME_SIZE;
#else
@@ -884,13 +887,15 @@ char grab_current(unsigned char id) {
//also included in case this ever fails. To use the individual
//code, define the symbol SAVE_INDIVIDUAL.
#ifndef SAVE_INDIVIDUAL
+
mem_cpy(mod_playing,(char far *)ptr,207+FILENAME_SIZE);
ptr+=207+FILENAME_SIZE;
#else
mem_cpy(mod_playing,(char far *)ptr,FILENAME_SIZE);
ptr+=FILENAME_SIZE;
viewport_x=*(ptr++);
- viewport_y=*(ptr++);
+
+ viewport_y=*(ptr++);
viewport_xsiz=*(ptr++);
viewport_ysiz=*(ptr++);
can_shoot=*(ptr++);
@@ -1055,6 +1060,7 @@ char grab_current(unsigned char id) {
#else
fread(mod_playing,1,FILENAME_SIZE,fp);
viewport_x=fgetc(fp);
+
viewport_y=fgetc(fp);
viewport_xsiz=fgetc(fp);
viewport_ysiz=fgetc(fp);
@@ -1405,4 +1411,4 @@ void convert_max_bsiz_mode(void) {
max_bysiz=25;
break;
}
-}
+}
View
@@ -26,7 +26,7 @@
#include <stdio.h>
-char allocate_board_space(long size,unsigned char id,char conv_mem_ok=1);
+char allocate_board_space(long size,unsigned char id,char conv_mem_ok=0);
void deallocate_board_space(unsigned char id);
unsigned int RLE2_size(unsigned char far *plane);
unsigned int RLE2_store(unsigned char far *where,unsigned char far *plane);
Oops, something went wrong.

0 comments on commit de721af

Please sign in to comment.