SquareZeux FORK DRAMA
#1
Posted 29 June 2007 - 06:42 PM
may the source be with you
warning: very buggy and very pointless. Might try to do something with it. I've got an idea in which the last 6 rows are used to colour-shift quadrants of the character in a way similar to SMZX3, but not sure how I'd implement it for software, let alone the other renderers.
And no, I'm not going to insist that you use this, it's merely a little experimentation.
Edit: The upper-left corner was supposed to show the player, but I took the shot while on it as a title screen. Oh well.
#2
Posted 29 June 2007 - 11:08 PM
(Source for the new one can be found at the same place. It's still very buggy and the mouse crashes still occur)
Note the quadrant functionality: it basically works like this:
Since only 8 of the 14 y-lines of each character are now displayed, the data held in the other 6 can be used in other ways. This hack, for instance, uses the first four unused lines to store a colour offset (from 0 to 255, encoded just like any other MZX character byte in a right-to-left fashion (the bit signifying 1 at the right, the bit signifying 2 to the left, etc).
The bytes map to the four quadrants, or quarters, of the char in a left-to-right, top-to-bottom order (1 and 2 on the top, 3 and 4 on the bottom). When their respective bytes are set to an offset, the colour is offset, in a manner similar to SMZX3, by that amount to the right. Values wrap around, so if the colour of a char is 255 (cff), an offset of 1 will yield 0 (c00).
Using this, it is possible to use up to 8 colours (4 sets of 2) in a single char. (It's better to think of it as dividing each character into 4 separate 4x4 characters that are linked together into a 2x2 format).
The downside, of course, is that 8x8 chars give a strange resolution (640x200).
(BTW, I think this should be moved to somewhere less Barkness with a less Barkness title, now that I've become serious on this.)
#3
Posted 30 June 2007 - 12:00 AM
- Bertrand Potato
#4
Posted 30 June 2007 - 12:12 AM
#5
Posted 30 June 2007 - 01:11 AM
My first priority if I were to port this would be to port it to the YUV overlays so that there's at least some form of resizing, and then maybe 8-bit software...
This post has been edited by NihilistMatt: 30 June 2007 - 01:13 AM
#6
Posted 30 June 2007 - 05:51 AM
Now, anybody willing enough to port it to windows?
I will do a game for it.
Since 8x8 is, heck, like a good resolution for some kinds of games.
#7
Posted 30 June 2007 - 02:16 PM
This post has been edited by NihilistMatt: 30 June 2007 - 02:16 PM
#8
Posted 30 June 2007 - 03:38 PM
#9
Posted 30 June 2007 - 03:42 PM
NihilistMatt, on Jul 1 2007, 12:16 AM, said:
A++++++++++++++++++++++
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#10
Posted 30 June 2007 - 04:18 PM
package.sh was originally written by me, because Exo would periodically forget to include certain documents (including the GPL) in the win32 zip packages. This was a license violation. The script was born to ensure that each release was precisely correct, and automatically generated.
package.sh does _not_ build anything. It also doesn't work with debug builds (yet). What you must do is build the software, and then run package.sh to package the sources correctly. If you run it with -b win32, and you used mingw32 to build Win32-PE binaries, it will also generate a Windows ZIP package.
Please, people who are forking MZX, if you want to be responsible you should distribute only a GNU diff file from the original sources, so people are clear what changes you have made from the original. You also should clearly state which version of the sources were used to create the fork, and provide a working link for them. I would also prefer it if people changed the version so it clearly indicates in the title bar (and possibly the application executable name) that it is not an official version. I don't want bug reports from users of forks.
I use the following scripts together with http://devzero.co.uk...air/mingw32.zip (installed to ~/bin/mingw32) and Debian's mingw32 package, to build Win32-PE binaries under Linux. This process is automated.
#!/bin/sh if [ "$1" = "" ]; then ? ? ? ?pushd ~/megazeux/trunk/megazeux2 else ? ? ? ?pushd $1 fi export PATH=$HOME/bin/mingw32/bin:$PATH make -k distclean ./config.sh --platform mingw32 --prefix $HOME/bin/mingw32 make ICON=1 -j10 ./package.sh -b win32 make ICON=1 distclean unset PATH popd
--ajs.
#11
Posted 30 June 2007 - 04:25 PM
Huh, when trying to make a win32 binary, it says that it can't find -lopengl32. I've found an opengl32.dll on the Interweb, which I guess I need to change to opengl32.a and put somewhere ld can find it, but... I don't know where! =/
This post has been edited by NihilistMatt: 30 June 2007 - 04:45 PM
#12
Posted 30 June 2007 - 04:36 PM
NihilistMatt, on Jun 30 2007, 11:25 AM, said:
Huh, when trying to make a win32 binary, it says that it can't find -lopengl32. I've found an opengl32.dll on the Interweb, which I guess I need to change to opengl32.a and put somewhere ld can find it, but... I don't know where! =/
Exercise your rights? I hate that attitude, a lot. A program being made GPL means that some initial contributor was willing to make their efforts public. Rather that parading the GPL why don't you show some respect to the wishes of the people who made the program possible in the first place by doing a bulk of the prior work, so that you may make your puny modifications.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#13
Posted 30 June 2007 - 04:40 PM
NihilistMatt, on Jul 1 2007, 02:25 AM, said:
On top of what Exo said, you're accusing ajs of antagonising you. He gave you, in a straightforward manner, the information which you are required to know and appeared not to know. Since you clearly have no idea what antagonism is, allow me to illustrate:
I am against this coding experiment of yours, I am against your attitude towards MZX, your attitude towards ajs and your attitude towards this community in general. If you do not start showing people at least a basic amount of respect, nobody will ever want to help you again.
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#14
Posted 30 June 2007 - 04:43 PM
also, just did this
sprintf(temp, "MegaZeux %s - Unofficial squaremzx FORK", version_number_string);
This post has been edited by NihilistMatt: 30 June 2007 - 04:51 PM
#15
Posted 30 June 2007 - 04:48 PM
As I've stated many, many times before, I have no problem with people posting experiments. But I get really annoyed when people don't release any sources, or release ones that don't compile on most of the supported platforms, and basically just look like an afterthought. And that's why I tried to inform you how and when to use package.sh so that you (and others) don't produce the garbage that usually gets posted here.
The GPL isn't some magical excuse to not exercise common sense and respect for others around you. And I'm sure as hell not going to sit down while people twist its words.
--ajs.
#16
Posted 30 June 2007 - 05:13 PM
I did it with diff /megazeux2/src /megazeux2-sfork/src. so the directory depth should be 2 or something.
ajs: I'll try to use your stuff to make a win32 binary. ...I guess I've really screwed up now...
This post has been edited by NihilistMatt: 30 June 2007 - 05:13 PM
#17
Posted 30 June 2007 - 05:29 PM
svn update
svn diff
And pipe the output to a file. It does a better job than you can, and it'll warn about non-revision-controlled files. If you just always hack on top of the latest SVN, you can track the latest bugfixes.
For example, the diff you posted un-does Mr_Alert's changes which I committed this morning.
--ajs.
#18
Posted 30 June 2007 - 05:49 PM
EDIT: Source problems solved. Also, http://nihilistmatt....t/dump/svn.diff is the result of doing what ajs said.
Now, how do I apply that diff to the working copy I got it from, without changing the new patches? It seems to have overwritten my copy with the SVN revision.
This post has been edited by NihilistMatt: 30 June 2007 - 06:07 PM
#19
Posted 30 June 2007 - 06:15 PM
NihilistMatt, on Jun 30 2007, 06:49 PM, said:
mingw32 has to be in ~/bin/mingw32, so that means there should be a ~/bin/mingw32/bin directory before you start. Then everything should just work fine, assuming you did a "apt-get install mingw32".
NihilistMatt, on Jun 30 2007, 06:49 PM, said:
This is much better (and more readable), but including the .CHR files probably isn't a good idea (because they are binary). I'd pass "-x -x ignore.ext" to svn diff to ignore these files (and then put them elsewhere). That's totally optional though.
NihilistMatt, on Jun 30 2007, 06:49 PM, said:
Right, SVN has pulled in the latest changes, so Mr_Alert's stuff isn't showing up in the diff.
That's good, and it means you can simply continue to use SVN (and svn update, fixing conflicts into the future where necessary). To export your project for tarring up, you can either just use package.sh (which already ignores the .svn metadata) or use "svn export" to dump it to another directory. You shouldn't have to apply the diff, because the changes are already present in your tree.
--ajs.
#20
Posted 30 June 2007 - 07:44 PM
Also, it didn't rape my source at all. Turns out I've been compiling it to read its config from the default locations, which contain the default charsets and my MZX config, which uses Logi's renderer. These two factors combined to make my copy of MZX look exactly like normal MZX except for the title bar.
#21
Posted 30 June 2007 - 11:25 PM
Also, I just figured out the reason you can't use the package is because you haven't edited sdl-config. My bad.
Edit ~/bin/mingw32/bin/sdl-config and remove /home/alistair from the start (either hack it, or change it to $HOME).
--ajs.
#23
Posted 01 July 2007 - 01:12 AM
NihilistMatt, on Jul 1 2007, 12:18 AM, said:
- random crashing may occur
Heh!
- Bertrand Potato
#24
Posted 01 July 2007 - 01:16 AM
If anyone can find out why MZX keeps incorrectly setting the screen resolution stuff for the mouse handler causing mouse warping to make an infinite loop if max_y isn't decreased by some number (100 for 640x480), then feel free to point it out.
#25
Posted 01 July 2007 - 03:37 AM
#26
Posted 01 July 2007 - 07:02 AM
Then we will have 32-bit 80x25 res
But seriously, it can be implemented as an sort of SMZX mode. Just make it centered Or make it a 80x43 res (it can be made in textmode, so...). and just center it. It will be a bit widescreen, but cool overall.
EDIT: I found 2 bugs:
1. When you change the palette, it changes the editor palette too, unlike normal MZX.
2. Cursor is still 8x14.
This post has been edited by asiekierka: 01 July 2007 - 07:48 AM
#27
Posted 01 July 2007 - 02:25 PM
#28
Posted 01 July 2007 - 03:34 PM
Just:
1. Make viewport of it 80x43
2. Make it centered (2 lines of black space on top and bottom)
3. Just make it a SMZX mode.
#29
Posted 01 July 2007 - 06:13 PM
asiekierka, on Jul 1 2007, 10:34 AM, said:
Just:
1. Make viewport of it 80x43
2. Make it centered (2 lines of black space on top and bottom)
3. Just make it a SMZX mode.
That would require a much more fundamental change to MZX. Forkers are only capable of modifying graphics.c.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#30
Posted 01 July 2007 - 06:51 PM
Exophase, on Jul 1 2007, 02:13 PM, said:
<=D