Revolution-fx V1.0
#1
Posted 17 May 2008 - 08:05 AM
Download here: http://sourceforge.n...group_id=199425
Here's a rundown of the new features:
* Tired of lame and boring fonts? Revolution-FX introduces some new ones with the CoolText() function
* All those DrawSprite functions in previous versions of Revolution-FX have now been replaced with one single faster, more versatile and powerful drawing function that can handle many types of sprite sizes
* InvertArea() and ClearArea()
* Faster keyboard detection routines. Some keycodes overlap, but for gaming Revolution-FX's functions are fast for the purpose
* Some bug fixes
Some silly doodle:
Here's the code for the doodle to help you get started with the new Revolution-FX functions: http://revolution-fx...e.c?revision=66
If you have any questions on usage and syntax of the new functions, go ahead and ask.
#2
Posted 17 May 2008 - 01:29 PM
Ill probably have to wait until my uni mid semester break before i do some programming, no time at the moment.
#3
Posted 18 May 2008 - 05:15 AM
Fez suggested this, I don't know whether to post it here or the other thread... Anyways I found this awesome team collaborative site and signed up for a space there. Here's the link: http://www.assembla..../show/casio_dev.
It's got a wiki, chat (with history and logging!), SVN, image uploading (could be useful for sprites and images for games) and scrum section where people report what they did.
Here's the repository: http://svn.assembla.com/svn/casio_dev. Maybe we could start out by collaborating together and work on a chess game or a 2D racer.
If anyone is interested in joining the team, PM me your email address so I can invite you. Practically anyone can join in: prog testers, artists, programmers, support, etc.
#4
Posted 18 May 2008 - 09:00 AM
XD
Good to see that this has been continued, even if it is a last release. XD
Also geat find with that assembla.
#5
Posted 18 May 2008 - 10:39 AM
But why do you close the sources?
#7
Posted 18 May 2008 - 02:46 PM
#8
Posted 18 May 2008 - 08:31 PM
As for Revolution-FX, yeah, the source code has always been available.
#9
Posted 29 July 2008 - 01:20 PM
Great! We have confirmation. I've heard someone say they have problems running MLC fx-9860 on a Slim. But that shouldn't be a problem if you don't plan on using it.
Sorry if here is not the right area to put this, but not sure where else to go.
I've been experimenting more with the FX-9860 Slim, SDK and Revolution-Fx.
General SDK functionality still looks great ... But ...
Found a few things which may not be specific to the Slim (since I don't have any other [yet]), but I noticed that changing the speed using the Revolution-Fx library calls CPUSpeedXXXX occasionally cause the calculator to lock. Worst appeared to be going from Quadruple back to Normal where it seems to fail every time.
I have investigated, looked at datasheets etc and slightly modified the functions. They appear to work more reliably; i.e., I have not yet seen a lock-up with them.
Here is one of the modified functions to show the basics of the change:
void CPUSpeedQuadruple() { WDT.WTCSR.WRITE = 0xA500; WDT.WTCNT.WRITE = 0x5A00; CPG.FRQCR.WORD = 0x0303; }Writing to the CPG as one operation seems to be the part that improves the operation most.
#10
Posted 29 July 2008 - 01:56 PM
#11
Posted 01 August 2008 - 12:04 PM
Could you please move the post by “djrose” to the thread “Slim and SDK”, this could help others in there search.
Thanks.
#12
Posted 02 August 2008 - 12:48 AM
#13
Posted 17 January 2009 - 08:46 PM
just wrote my first add-in using FX Revolution 1.0 (it's phenomenal, thanks!)
everything looked fine in the emulator, but when i transfered the g1a to my CASIO fx-9860g (Firmware 1.05) and ran it, this showed up:
(output wrapes for some reason)
it was supposed to look like this:
please, can you tell me why?
//edit:
never mind, i had to replace SDK_VRAM by VRAM - ouch xD
is the FX Revo lib still in development to add more nice features? and what about tutorials / a documentation? all i found was a v0.3 doc incl. 3 tutorials.
a few ideas:
+ utility functions like DrawBox (4 DrawLine calls)
+ DrawRect (filled, not just outlined like DrawBox)
+ optional arg for DrawBox and DrawRect to round the borders
+ DrawEllipse using an algorithm similar to the one for DrawLine?
+ a set of functions to add F1-F6 "buttons" (like "JUMP", "DEL", ">MAT" etc. in stock RUN MAT app, 2 styles)
+ framework for calc-to-calc games (using serial port)
not really something to add to RevoFX, but i saw a hex editor add-in with the ability to change the data in memory. any chance to replace the CASIO logo shutdown image?
Edited by CoDEmanX, 19 January 2009 - 01:05 AM.
#14
Posted 19 January 2009 - 02:25 AM
As for replacing the shutdown image, it's possible. If I remember correctly, the shutdown image appears in two places in the firmware (I have the locations written down somewhere...) The firmware could be modified so that the checksum at the end (the very end) of the firmware matches and can be easily downloaded back into the calculator using CASIO's own software. I'll take a look into it.
#15
Posted 19 January 2009 - 11:13 PM
The "DEVO"-Greyscale demo was the culprit... btw: 5000 is an interesting timer value
i'm relieved that RevoFX is still under development. but what happened to the RevoFX Code-Editor?
thanks for the research on the logo!
#16
Posted 18 March 2009 - 08:02 PM
it's nice to see, that yoz have add a input function, like I have tried it some time before (http://www.casiocalc...wtopic=3807&hl=).
Very good work!
Edited by tuxianer, 18 March 2009 - 08:04 PM.
#17
Posted 17 May 2009 - 03:47 PM
Found this 1.0 version today and tested it couple of hours. It's awesome.
If this masterpiece is really still in development I have a few suggestions that could make it even better:
- Inverted transparency when drawing a sprite. See figure 1.
- Transparency maps. See figure 2.
- GetPixel(); that works at different sized buffers. Current command works only 1024byte buffer. (128x64)
#18
Posted 31 May 2009 - 09:37 PM
It seems you can't separate the top two key rows from each other. If you press for example F1 it triggers keycodes from 0x60 to 0x69 so if you use let's say number 4 in your app/game you have to add something that makes it separate from F1 and Shift. Like if(FastKeyDown(0x63)==1 && FastKeyDown(0x60)==0)
Hope this helps someone, it sure helped myself
#19
Posted 01 June 2009 - 09:08 AM
PS No way at all to differentiate between top 2 rows with FastKeyDown() ? I see they have the same keycodes.. :S
#20
Posted 10 January 2010 - 07:38 PM
I want to build an background-image for my AddIn. I generatet two buffers (4 colors) with SpriteStudio. My Question is how to draw the buffers to the screen.
I build the following code, but it doesn`t work:
// decleration of the buffers and the variable key GrayLinkBuffers(&buffer_1, &buffer_2); GrayInit(3661, 3661); DrawSprite(1, 1, 128, 64, 16, buffer_1, VRAM, NO_TRANS); DrawSprite(1, 1, 128, 64, 16, buffer_2, VRAM, NO_TRANS); while (1) { GetKey(&key); }
Paul
#21
Posted 11 January 2010 - 06:22 PM
You can't use GetKey with Revolution-FX. Messes up with the interrupts. Use IsKeyDown() instead.
#22
Posted 12 January 2010 - 01:45 PM
i deleted GetKey, but it still doesent work. Now I see many pixels, but not the picture...
I have the following code (this time complete):
//Declaration of the buffers GrayLinkBuffers(&different_world_1, &different_world_2); GrayInit(3661, 3661); DrawSprite(1, 1, 128, 64, 16, different_world_1, SDK_VRAM, NO_TRANS); DrawSprite(1, 1, 128, 64, 16, different_world_2, SDK_VRAM, NO_TRANS); while (!IsKeyDown(KEY_CTRL_MENU)) { } Reset_Calc(); return 1; } //**************************************************************************** //************** **************** //************** Notice! **************** //************** **************** //************** Please do not change the following source. **************** //************** **************** //**************************************************************************** #pragma section _BR_Size unsigned long BR_Size; #pragma section #pragma section _TOP //**************************************************************************** // InitializeSystem // // param : isAppli : 1 = Application / 0 = eActivity // OptionNum : Option Number (only eActivity) // // retval : 1 = No error / 0 = Error // //**************************************************************************** int InitializeSystem(int isAppli, unsigned short OptionNum) { return INIT_ADDIN_APPLICATION(isAppli, OptionNum); } #pragma section
It would be nice if you can help me finding my mistake.
But there is another problem:
After using MENU i get into the Main-menu but I can`t do anything. To continue I have to press the P-Button.
Paul
#23
Posted 13 January 2010 - 02:05 AM
DrawSprite(1, 1, 128, 64, 16, different_world_1, SDK_VRAM, NO_TRANS); DrawSprite(1, 1, 128, 64, 16, different_world_2, SDK_VRAM, NO_TRANS);
GrayLinkBuffers will draw different_world and different_world_2 for you.
And try using this to exit:
while (IsKeyDown(KEY_CTRL_EXIT) != 1) { } Reset_Calc();
#24
Posted 13 January 2010 - 01:48 PM
I removed the two DrawSprite-functions, but the image still isn`t correct. I can see one buffer, the other one seems to be at another position (only a few pixels).
The problem with the Main-Menu is now ok.
Paul
#25
Posted 16 January 2010 - 01:53 AM
#27
Posted 23 January 2010 - 06:15 PM
#28
Posted 16 February 2010 - 06:44 PM
is there a referenc of all Rev-FX commands?
#29
Posted 16 February 2010 - 10:56 PM
#30 Guest_tratak_*
Posted 23 February 2010 - 10:46 AM
I'm new to Revolution-FX 1.0 (I used 0.3 until now), and I can't run my program in the SDK emulator while using grayscale (It works fine on the real machine). Is it a known issue ? Is there any workaround ?
Can you check my test code, in case I made some mistake ?
int AddIn_main(int isAppli, unsigned short OptionNum) { char endloop = 0; unsigned char b0[1024], b1[1024]; int loopCount = 0; unsigned char l_sprite[] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; unsigned char d_sprite[] = {0x3C, 0x7E, 0xDB, 0xFF, 0xDB, 0xE7, 0x7E, 0x3C}; unsigned char blank[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char posX[] = {20, 50}; unsigned char posY[] = {20, 50}; unsigned char offX[] = {1, -1}; unsigned char offY[] = {1, -1}; unsigned char speed[] = {500, 300}; char r; memset(b0, 0, 1024); memset(b1, 0, 1024); GrayLinkBuffers(b0, b1); GrayInit(6987, 3269); while (!endloop) { for (r = 0; r <= 1; r++) { if (loopCount % speed[r] == 0) { DrawSprite(posX[r], posY[r], 8, 8, 1, blank, b0, NO_TRANS); DrawSprite(posX[r], posY[r], 8, 8, 1, blank, b1, NO_TRANS); if ((posX[r] < 1) || (posX[r] > 119)) offX[r] = - offX[r]; if ((posY[r] < 1) || (posY[r] > 55)) offY[r] = - offY[r]; posX[r] += offX[r]; posY[r] += offY[r]; DrawSprite(posX[r], posY[r], 8, 8, 1, l_sprite, b0, TRANS); DrawSprite(posX[r], posY[r], 8, 8, 1, d_sprite, b1, TRANS); } } //touche sortie if (IsKeyDown(KEY_CTRL_MENU)) { endloop = 1; } loopCount++; } Reset_Calc(); return 1; }
Thank you !
#31
Posted 24 February 2010 - 04:53 AM
#32 Guest_tratak_*
Posted 24 February 2010 - 04:12 PM
#33
Posted 24 February 2010 - 05:33 PM
#34 Guest_tratak_*
Posted 24 February 2010 - 06:12 PM
No, because as I said before, it doesn't simulate the fx-9860G exactly.
Looks like I'm stuck with 0.3 then.
What are the diff betweens 0.3 and 1.0 so that one works with emulator and not the other ?
#35 Guest_tratak_*
Posted 24 February 2010 - 09:16 PM
#36 Guest_tratak_*
Posted 25 February 2010 - 12:54 AM
If you still want to use the SDK emulator to debug your code, I found this workaround :
#define SIMULATION int AddIn_main(int isAppli, unsigned short OptionNum) { unsigned char light_b[1024], dark_b[1024]; #ifndef SIMULATION GrayLinkBuffers(light_b, dark_b); GrayInit(6987, 3269); #endif while(1) { //main loop // main loop code #ifdef SIMULATION DrawAll(dark_b); #endif }
Comment or uncomment the first line to tell the preprocessor if you want to compile for the real machine or the emulator.
#37
Posted 22 January 2013 - 06:36 PM
thanks
#38
Posted 22 January 2013 - 06:52 PM
#39
Posted 22 January 2013 - 07:01 PM
ty anyways
Edited by AlShikan, 22 January 2013 - 07:02 PM.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users