Author Topic: Features Wishlist  (Read 690115 times)

0 Members and 4 Guests are viewing this topic.

Offline Digital

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 107
  • Rating: +0/-0
  • 10101
    • View Profile
    • Digital's Hp
Re: Features Wishlist
« Reply #3315 on: April 13, 2014, 08:16:12 am »
What about more graphing commands?

A filled circle or an outline box?
And using Fix5, you can define the buffer the text is drawn to.
« Last Edit: December 18, 2014, 02:13:35 pm by Digital »
I'm sorry if i might make some mistakes, I'm German so English isn't my first language. Please correct me :)

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3316 on: April 13, 2014, 08:26:49 am »
What about more graphing commands?

A filled circle or an outline box?
And if using Fix5, you can define the buffer the text is drawn to.

Those all sound like useful additions. If I can find a way to fit them all into the application, which is slightly bursting at the seams currently, they could happen.

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: Features Wishlist
« Reply #3317 on: April 13, 2014, 08:37:40 am »
For an outline box there is already IRect (combine two of these, one to the outer size and one to the inner size centered in the first).
Or if you need speed, HLine/VLine

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3318 on: April 13, 2014, 08:44:41 am »
For an outline box there is already IRect (combine two of these, one to the outer size and one to the inner size centered in the first).
Or if you need speed, HLine/VLine

Yeah, if I were to add that command, I'd probably just call the HLine and VLine commands. But the main benefits of a native command would be that I could make the handling a fair amount smaller and faster, and possibly even reuse some clipping information between calls for added speed.

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: Features Wishlist
« Reply #3319 on: April 13, 2014, 10:40:56 am »
Oh that sounds cool. Don't forget rounded corners then. ;)

Offline GinDiamond

  • LV3 Member (Next: 100)
  • ***
  • Posts: 71
  • Rating: +2/-2
  • I dont always fail at life, but when I do, I dont
    • View Profile
Re: Features Wishlist
« Reply #3320 on: April 29, 2014, 09:29:39 am »
Slight necropost:

Will Axe ever be updated? Or at least some more axioms be released, particularly for tilemapping, especially scrolling maps?

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Features Wishlist
« Reply #3321 on: April 29, 2014, 10:25:05 am »
Slight necropost:

Will Axe ever be updated? Or at least some more axioms be released, particularly for tilemapping, especially scrolling maps?
The last update was on 2013-10-25 and I'm sure when there are some other big bugs out there Runer112 will update it again. Axioms are meant to be released by third parties for the most part. So release of Axioms would depend on people actually making one.
/e

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3322 on: April 29, 2014, 12:31:07 pm »
Slight necropost:

Will Axe ever be updated? Or at least some more axioms be released, particularly for tilemapping, especially scrolling maps?

I'm working 45 hours per week in an internship right now, so that takes up most of my time. And when I am free at home, I'm usually not in the mindset to deal with big, complicated coding projects like Axe when that's what I did at work each day for 9 hours. So that's largely why not much progress has been made on Axe lately. This internship ends in June, but I'll immediately be back in classes, so whether or not that'll free up my mind enough to seriously work on Axe is uncertain.

Regarding Axioms/libraries, Eeems is right in suggesting that they can me made by anyone, not just myself. I've certainly had ideas of making a tilemapping Axe library, but there's no reason it has to come from me. It could come from you. :P

Tying that idea back into Axe, if any capable assembly coder offers to write a routine of some sort and I think it would be good to include that in Axe, I would certainly accept their offer and add in their routine. So even Axe development isn't necessarily frozen by my lack of time to devote to it.
« Last Edit: April 29, 2014, 12:35:07 pm by Runer112 »

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Features Wishlist
« Reply #3323 on: April 29, 2014, 12:32:20 pm »
* Sorunome prods multi-page app support :P
Like when defining a static pointer you say on which page it is :P

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: Features Wishlist
« Reply #3324 on: April 29, 2014, 12:41:30 pm »
Yeah at least for data multi page apps would be awesome.
Just make it so that we can add a new page with a token and all the data following will be on that page. And a function to swap the first memory bank of course.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3325 on: April 29, 2014, 01:03:58 pm »
* Sorunome prods multi-page app support :P
Like when defining a static pointer you say on which page it is :P

As I've said in the past, multi-page apps would require a lot of internal redesign. Although it would be a very worthwhile feature, I dread the idea of trying to force that capability into Axe in its current state; it would be more trouble than it's worth. That's why this is a feature I've deferred to the hypothetical Axe 2.0.

If you really want to get crazy, it would be possible to build some system which appends the data onto the end of Axe-compiled applications computer-side. If you can assure that no data crosses a page boundary, you can then hackily read/copy it with files.

Yeah at least for data multi page apps would be awesome.
Just make it so that we can add a new page with a token and all the data following will be on that page. And a function to swap the first memory bank of course.

Although Axe is pretty low level, I don't want it to be so low level as to making users manually swap memory banks to access data in multi-page applications. So I don't think I'd add such a command to native Axe. There's also still the problem of simply generating the multi-page application in the first place, which Axe's internals really can't handle.

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: Features Wishlist
« Reply #3326 on: April 29, 2014, 02:33:52 pm »
Hmm okay. The page swap function would have been limited to the extra app pages with my suggestion but w/e. :P

Offline Zemmargorp

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 115
  • Rating: +7/-2
  • Either programming or thinking of it.
    • View Profile
Re: Features Wishlist
« Reply #3327 on: August 01, 2014, 09:17:40 am »

Hi ! I've been using Axe for one year now (since version 1.0.0), and I love it !
It's way much faster than TI-Basic, and it's even easier to use ! Thanks for making Axe Parser !
I have some little ideas to improve it... Here's my contribution !


First of all, Axe Parser should check if there's any backup kept in RAM and either 1] show it in the "Compile" list or 2] ask to archive it. Because one day, just after compiling, it asked me for "Garbage Collect" like it does sometimes, and I answered "no" by mistake. I then thought my source was lost, because the source program was removed and its backup wasn't shown in the compile list (as it wasn't archived). I spent one hour to write the full source code again from memory, beause I didn't know the backup was kept in RAM !


I have an idea to improve the drawing functions... I think that games made with Axe Parser are sometimes slow, especially when they use grayscale graphics on a TI-83+, without the "Full" mode. So why not adding new drawing functions like "Pt-On(", "Pt-Off(", etc. but wich draws sprites only on full bytes of the buffer, each 8 pixels, for 0<=X<=11 ? These functions could be accessed by adding a letter to the other drawing functions' name, "C" for example (stands for "column" and "clipped"), and could be named "CPt-On(", "CPt-Off(", "CPt-Change(", "CPt-Mask(", "CPt-Get("... Also, you could add "CHorizontal +/-" and "CVertical +/-" to move the screen by 8 pixels. I wrote all these drawing functions in assembly if you want (although they may not be fully optimised).


And to improve the datas, I think it could be great if we were able to make datas with binary values. To differentiate them with hexadecimal values, you could add the prefix "pi" to the data, like "pi[0101101010011001]->GDB1".


I imagined others features and functions, but they will be much more complicated to do...
I'm french, that's the reason why my English can be a bit approximate.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Features Wishlist
« Reply #3328 on: August 01, 2014, 09:45:59 am »
And to improve the datas, I think it could be great if we were able to make datas with binary values. To differentiate them with hexadecimal values, you could add the prefix "pi" to the data, like "pi[0101101010011001]->GDB1".
This is already possible with Data(pi00101001,pi11010011)→GDB1

I have an idea to improve the drawing functions... I think that games made with Axe Parser are sometimes slow, especially when they use grayscale graphics on a TI-83+, without the "Full" mode. So why not adding new drawing functions like "Pt-On(", "Pt-Off(", etc. but wich draws sprites only on full bytes of the buffer, each 8 pixels, for 0<=X<=11 ? These functions could be accessed by adding a letter to the other drawing functions' name, "C" for example (stands for "column" and "clipped"), and could be named "CPt-On(", "CPt-Off(", "CPt-Change(", "CPt-Mask(", "CPt-Get("... Also, you could add "CHorizontal +/-" and "CVertical +/-" to move the screen by 8 pixels. I wrote all these drawing functions in assembly if you want (although they may not be fully optimised).
I am not really convinced that the slowness only comes from the drawing commands. Or more, I am not convinced that changing them to be more specific would improve the speed that much. Watch for example Robbox running, I don't think it is that slow even though it uses 4 lvl greyscale, and runs at 6 MHz (without Full).

Both CVertical commands can be written in Axe with a Copy by the way. One CHorizontal can also be written with a Copy in a loop (see spoiler).

Spoiler For Spoiler:
L6+1
For(64)
 Copy(,-1,11)+1
End
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Zemmargorp

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 115
  • Rating: +7/-2
  • Either programming or thinking of it.
    • View Profile
Re: Features Wishlist
« Reply #3329 on: August 01, 2014, 10:54:43 am »
This is already possible with Data(pi00101001,pi11010011)→GDB1
Indeed, that's right, I didn't think of it... Thanks !

I am not really convinced that the slowness only comes from the drawing commands. Or more, I am not convinced that changing them to be more specific would improve the speed that much. Watch for example Robbox running, I don't think it is that slow even though it uses 4 lvl greyscale, and runs at 6 MHz (without Full).
You're right, I know that slowness hardly ever comes from a lack of optimizations by the programmer, and I didn't want to say "Axe Parser is slow" either - it's definitely not the case ! Nevertheless, it's always better (for the speed and for the program's size) to have the exact function needed. See spoiler :

Spoiler For Spoiler:
Axe Parser compiles your code in assembly into :
Code: [Select]
LD   HL, $9341
LD   B, 64
Loop:
PUSH BC
PUSH HL
LD   HL, -1
LD   BC, 11
EX   DE, HL
POP  HL
LDIR
INC  HL
POP  BC
DJNZ Loop

And this takes 21 bytes and 20k clock cycles. Whereas adding a new CHorizontal function already written in assembly allows it to be much more optimized. The example under takes only 11 bytes, and approximately 14k clock cycles, that is to say a quarter less !

Code: [Select]
PUSH  HL
LD    DE, 96
ADD   HL, DE
POP   DE
LD    BC, 768-96
LDIR

By the way, Robbox seems to be a good game :) I'll try it. EDIT : It is !
« Last Edit: August 01, 2014, 11:08:53 am by Zemmargorp »
I'm french, that's the reason why my English can be a bit approximate.