Message Board


Message Board > Fenix / Bennu / Gemix / DIV > Fenix 0.92 released

April 13, 2007, 03:03
danko
Whiskered
31 posts
Some time ago I promised to post when a new version of fenix was released but someone did it for me first. Now it's time to clear my debt...

New fenix release (0.92).
http://sourceforge.net/project … ?group_id=2714

Changes:

Fix in the prototype of functions that return a pointer
unload_map optimized
Added NULL check in bitmap_get
Fixed support for fli/flc files
Executables have icons again.
Fixed crashes due to font unloads. Now if a font is unloaded while being used, text which uses it is deleted safely.
Fixed SUBSTR function behaviour.
Added the following functions:
CD_NUMTRACKS(cdnumber) – Returns the number of available tracks in the specified CD.
CD_CURRTRACK(cdnumber) – Returns the number of the current track.
Added invalid parameters check in CD functions.
Fixed shift right and shift left operations to support the different SIGNED/UNSIGNED data types.
Reimplemented fixed point operations, improving performance and precision. This affects to commands such as ADVANCE and mode7 functions.
Fixed ADVANCE function: sometimes, if the distance was less than 1 it didn't advance.
Fixed and completed animated bitmaps support.
Fixed screen refresh in operations that refresh blendops
Fixed screen refresh when refreshing, loading or doing any operation over palettes.
Some more fixes related to screen refresh.
Fixed some operations related to fade.
Fixed some critical errors and some functions which made the program crash now make use of the error return.
Fixed return values of the GET_REAL_POINT function when the control point was not defined.
Fixed lack of refresh when the size of a region is modified
PUT_SCREEN does not make the program fall down if an unexisting map is used.
Rewriten and fixed FILTER and BLUR functions.
GRAYSCALE does not make the program crash when using a map with depth different from 16bpp.
Added the MEMCMP function (pointer addr1, pointer addr2, int size) to compare memory areas. The function returns 0 if they are equal and any other value if they are different.
“Se trimean lineas de debug (trace de ejecucion o debug a archivo)” (Sorry, I don't understand this one)
Fixed initializations in instance_new and fixed instance_duplicate logic, which affected CLONE function and caused random crashes.
Added the following commands to the debug window: KILLALL, WEAKUPALL, SLEEPALL, FREEZEALL.
Fixed creation, erasing and moving of draw primitives. Sometimes appeared previously deleted draws and some draws were deleted when they should not.

:)

[Edited on April 13, 2007 by danko]
____________
#
April 13, 2007, 14:52
Rincewind
programmer
1545 posts

Thanks Danko. Sounds like a pretty big load of fixes and improvements! Are those the changes since v0.89b (the last version changes posted on this forum)?
____________
Personal website: http://www.loijson.com
#
April 13, 2007, 14:52
danko
Whiskered
31 posts
These are official releases. Fenix development was continued by Juan but the webpage is not updated due to lack of time of the website admin (slainte).
____________
#
April 13, 2007, 21:58
Sandman
F3n!x0r
1194 posts

Great you keep us apprised.

Quoting danko:
Reimplemented fixed point operations, improving performance and precision. This affects to commands such as ADVANCE and mode7 functions.
Excellent news, this was something people new to Fenix didn't understand and disliked. The only, a bit more complex, solution was to use resolution.

Quoting danko:
Fixed some operations related to fade.
Wonderful, now I can get rid of the ugly hacks.

Quoting danko:
Fixed some critical errors and some functions which made the program crash now make use of the error return.
Does this include the crash when a wrong memory is addressed?

Quoting danko:
Added the MEMCMP function (pointer addr1, pointer addr2, int size) to compare memory areas. The function returns 0 if they are equal and any other value if they are different.
Nice.

Quoting danko:
Added the following commands to the debug window: KILLALL, WEAKUPALL, SLEEPALL, FREEZEALL.

Also nice. (WAKEUPALL?)

And I have a question: the CONTINUE statement, when used in the FOR() loop, doesn't execute the counting expression, before doing the loop again. Is this intended or not?
Also, in the code below, when the CONTINUE statement is commented out, like it is, the say(i) is executed a random number of times and then it stops. The variable i isn't incremented anymore as well and the program still runs, but there's no "end" in the console, so for some reason the frame; in the FOR() loop is indeed executed?
I tried it with a LOOP statement as well, but it had the same result. I tried it with 0.84a and it worked. What's going on?

Code:
private
int i = 0;
begin

    frame;

    say("begin");
    for(i=0;true;i++)
        say(i);
        //continue;
        frame;
    end
    say("end");
    loop
        frame;
    end

end


...resulting in:

____________
BennuWiki
Yes, my avatar has grey borders in IE (so get a decent browser)
ROOFLEZ ROOFLEZ
#
April 14, 2007, 00:43
danko
Whiskered
31 posts
Quoting Rincewind:
Thanks Danko. Sounds like a pretty big load of fixes and improvements! Are those the changes since v0.89b (the last version changes posted on this forum)?

No. There have been 5 more releases with lot of bug fixes. I was "disconected" from Fenix for a while and I supposed you knew changes up to this new version.

0.89c
Some extra checks in sound functions to avoid crashes caused for passing invalid argument.
Fixed a problem with mod music files loading
Added GETENV function.
EXIT abort execution inmediately
Fixed graphic_set (coordenates centering)
Fixed a problem with blend (substractive). Substraction was in reverse.
Added some constants for using as flags for map_xput and similar:
B_HMIRROR = 1
B_VMIRROR = 2
B_TRANSLUCENT = 4
B_ALPHA = 8
B_ABLEND = 16
B_SBLEND = 32
B_NOCOLORKEY = 128

0.89d
Fixed substractive blend ecuation
Fixed MKDIR and CD functions
Fix in alt+w in debug mode when the screen was initialized in fullscreen mode by means of full_screen variable.
Fixed rotation and scalation of graphics
Now alt+x (in debug mode) exits inmediately

I don't have enought time to translate now changes in 0.90, 0.90.2 and 0.91 (change list is quite large) but I will... If any of you knows spanish, there is a list in the Spanish Fenix Wiki: http://fenixworld.se32.com/fen … rial_de_cambios

You should take the exmple and create a list in the English Fenix Wiki :P.

Quoting Sandman:
Does this include the crash when a wrong memory is addressed?
I don't know but I suppose It doesn't since that is responsability of the programmer...

Quoting Sandman:
(WAKEUPALL?)
Right.

Quoting Sandman:
And I have a question: the CONTINUE statement, when used in the FOR() loop, doesn't execute the counting expression, before doing the loop again. Is this intended or not?

I don't know either, but I've posted your question in our forums (I copy-pasted it in fact :aharr:).
____________
#
April 14, 2007, 01:05
Rincewind
programmer
1545 posts

Cheers. Do you perhaps have an idea what GETENV does?
____________
Personal website: http://www.loijson.com
#
April 14, 2007, 01:29
Sandman
F3n!x0r
1194 posts

Quoting danko:
Quoting Sandman:
Does this include the crash when a wrong memory is addressed?
I don't know but I suppose It doesn't since that is responsability of the programmer...
Of course, but I was referring to the catching of critical errors. Rereading what you said, you in fact said "fixed" and not "catch", so that was me interpreting your words. But anyway, what I meant was that Fenix would give an error instead of crash when a wrong address is addressed. Which would be nice, but perhaps a long shot to make... a complete debug thingy.

Quoting Dennis:
Can you please give the exact code of that output image you placed. I am intrigued :)

Is this a joke? Well if it's not: the code is in my original post.
____________
BennuWiki
Yes, my avatar has grey borders in IE (so get a decent browser)
ROOFLEZ ROOFLEZ
#
April 14, 2007, 02:37
Sandman
F3n!x0r
1194 posts

Okay the CONTINUE statement thing is a problem indeed. However, the for/loop thing was my own doing. I didn't realize the later Fenix versions froze the program when the console is popped down, which caused me to think it had gone haywire. My bad.
____________
BennuWiki
Yes, my avatar has grey borders in IE (so get a decent browser)
ROOFLEZ ROOFLEZ
#
April 14, 2007, 11:04
yonni
None
420 posts
Yeah, each version needs a page on the wiki with all of the bugfixes/notes.
____________
#
April 14, 2007, 12:27
yonni
None
420 posts
Quoting Dennis:
Quoting Sandman:
Is this a joke? Well if it's not: the code is in my original post.
This is not off-topic or joke forum is it? :)

- I can't seem to understand why it stops after 6 loops
- if you comment out something it won't get executed
- logically there will be no "end" printed since the condition for your loop is "while true"



I just ran sandman's code (copied straight from the forum) and it just carries on incrimenting, and it still is as I type.
____________
#
April 14, 2007, 12:58
danko
Whiskered
31 posts
Quoting Ricewind:
Do you perhaps have an idea what GETENV does?

Yep, you can use getenv to get some environment variables, just like the getenv funcion in other languages.

For example, in windows you can try the following:

say(getenv("WINDIR"));
say(getenv("PATH"));

Of course, you must know the name of the variable in the OS you are working.
____________
#
April 14, 2007, 13:35
Sandman
F3n!x0r
1194 posts

Quoting yonni:
Quoting Dennis:
Quoting Sandman:
Is this a joke? Well if it's not: the code is in my original post.
This is not off-topic or joke forum is it? :)

- I can't seem to understand why it stops after 6 loops
- if you comment out something it won't get executed
- logically there will be no "end" printed since the condition for your loop is "while true"


I just ran sandman's code (copied straight from the forum) and it just carries on incrimenting, and it still is as I type.

Yeah correct, like I said, it was my own doing. I didn't realize the console froze the program when popped down.
And Dennis, your points aren't really accurate:
- My whole point in the beginning was that I didn't get why it stopped after 6 loops
- ORLY? (Like I said, it wasn't about the CONTINUE statement, but a seperate thing)
- I dunno what to say to this one really.

Anyway problems solved. The CONTINUE statement is fixed in the CVS (thanks man) and my thing was my bad, so now we can focus on actually using the new version!
____________
BennuWiki
Yes, my avatar has grey borders in IE (so get a decent browser)
ROOFLEZ ROOFLEZ
#
April 14, 2007, 14:59
Rincewind
programmer
1545 posts

Quoting danko:
Quoting Ricewind:
Do you perhaps have an idea what GETENV does?
Yep, you can use getenv to get some environment variables, just like the getenv funcion in other languages.

For example, in windows you can try the following:

say(getenv("WINDIR"));
say(getenv("PATH"));

Of course, you must know the name of the variable in the OS you are working.


Oh okay, that's useful.
____________
Personal website: http://www.loijson.com
#
April 16, 2007, 09:21
Quiest
now with more happynes
142 posts

Quoting Sandman:
Quoting danko:
Reimplemented fixed point operations, improving performance and precision. This affects to commands such as ADVANCE and mode7 functions.
Excellent news, this was something people new to Fenix didn't understand and disliked. The only, a bit more complex, solution was to use resolution.


And you still have to work your way around with resolutions or bitshifts... I`ve just tried it, cause I though it would be great, but its working as ever o.O at least for me.

Code:
program test;
 private
   int dir=0;
   int speed=0;
 
 begin    
   set_mode(320,240,16);
   set_fps(30,0);
   
   graph=new_map(3,3,16);
   map_clear(0,graph,-1);
   x=160;
   y=120;                 
    
   while(!key(_esc))
     
     if(key(_left))dir-=2000;end;
     if(key(_right))dir+=2000;end;
     if(key(_up))speed=1; else speed=0; end;
     
     xadvance(dir,speed);   
     frame; 
    end;
  end;

____________
Roundhousekick to the face, baby!
#
April 16, 2007, 16:11
danko
Whiskered
31 posts
Quoting Quiest:
And you still have to work your way around with resolutions or bitshifts... I`ve just tried it, cause I though it would be great, but its working as ever o.O at least for me.


I can not say...I just limited to translate the changes...

You can ask in the english forum of the spanish forums (http://forum.divsite.net/forumdisplay.php?fid=12). Juan may know more.
____________
#
June 3, 2007, 01:54
DavidBeoulve
Beardless
2 posts
Okay, stupid question because I'm very new to Fenix - can I download these releases and use them to compile for the GP2X? Or do I have to wait for a release specifically for that - or will the compiler for the GP2X work with these new files?
____________
#
June 3, 2007, 16:02
Rincewind
programmer
1545 posts

Hello David, welcome to Fenix (and Boolean Soup)!

You'll have to wait for compilations specifically for the GP2X. Since the GP2X Fenix port is 'unofficial', you'll be dependent on the guys at http://www.gp32x.com for new compilations. Alternatively you could attempt compiling the newest Fenix version for the GP2x yourself, if you can figure out how.

For now you're probably stuck with version 0.84a/b (not sure which is the latest version for the GP2X). Fenix development was stuck for a long time at 0.84 and has recently been picked up by Juan, which is now churning out new versions at a great speed. A lot of resources/libraries are still for 0.84 so you're in luck with that.

Of course you could also give Windows/Linux game development a go with the newest version for the sheer fun of it. :aharr:

[Edited on June 3, 2007 by Rincewind]
____________
Personal website: http://www.loijson.com
#
June 4, 2007, 19:34
link3rn3l
Whiskered
78 posts
http://gp32wip.com/content/view/67/2/lang,es/

http://gp32wip.com/projects/fenixb4.zip

http://gp32wip.com/projects/fenixb4_src.zip
____________
#

Message Board > Fenix / Bennu / Gemix / DIV > Fenix 0.92 released

Quick reply


You must log in or register to post.
Copyright © 2005 Booleansoup.com
Questions? Comments? Bug reports? Contact us!