Author Topic: xLIB 84C Edition  (Read 44219 times)

0 Members and 1 Guest are viewing this topic.

Offline tr1p1ea

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 647
  • Rating: +110/-0
    • View Profile
Re: xLIB 84C Edition
« Reply #15 on: June 19, 2013, 06:29:03 am »
Old version of xLIB were like that, but the long running version installs a parser hook which intercepts any real( commands.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."


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: xLIB 84C Edition
« Reply #16 on: June 19, 2013, 06:30:16 am »
A token hook like omnicalc used to use would be kinda cool >.<

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

Offline tr1p1ea

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 647
  • Rating: +110/-0
    • View Profile
Re: xLIB 84C Edition
« Reply #17 on: June 19, 2013, 08:14:25 am »
Did some sprite tests on a tilemapped background:



Left screenie is with no transparency, right is with the transparent colour specified.

The tilemap is drawn as a background and the sprites are drawn over it. The tile that the sprite is over is redrawn every offscreen frame to effectively 'clear' the sprite. The map is not drawn every frame, rather it serves as a background.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."


Offline JamesV

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 276
  • Rating: +77/-0
    • View Profile
    • James V's TI-Calculator page
Re: xLIB 84C Edition
« Reply #18 on: June 19, 2013, 08:22:56 am »
This looks amazing tr1p!

Offline deeph

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 138
  • Rating: +6/-0
    • View Profile
    • deeph.servhome.org
Re: xLIB 84C Edition
« Reply #19 on: June 19, 2013, 08:34:59 am »
What part of the program handles the re-drawing of the tiles ? The Basic part I guess ?

Keep up the good work :)

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: xLIB 84C Edition
« Reply #20 on: June 19, 2013, 08:39:58 am »
tr1p1ea, this is awesome! Also, the ExecLib and OpenLib ideas are great. The problem before was that it limited programs to be used only by the 84+ calcs since those weren't available to 83+ users. But now, since programs like this cannot be compatible on older models, it makes sense to use them!

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: xLIB 84C Edition
« Reply #21 on: June 19, 2013, 09:30:11 am »
If I remember correctly, the main problem with OpenLib (which still remains on the 84+CSE) is that the App must have a name exactly 8 characters long, all capital letters or numbers.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline pimathbrainiac

  • Occasionally I make projects
  • Members
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1731
  • Rating: +136/-23
  • dagaem
    • View Profile
Re: xLIB 84C Edition
« Reply #22 on: June 19, 2013, 10:12:06 am »
* pimathbrainiac REALLY wants one now.
I am Bach.

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: xLIB 84C Edition
« Reply #23 on: June 19, 2013, 11:19:55 am »
If I remember correctly, the main problem with OpenLib (which still remains on the 84+CSE) is that the App must have a name exactly 8 characters long, all capital letters or numbers.
Aren't spaces allowed ?

And that's definitely cool tr1p ! Keep up the good work !
« Last Edit: June 19, 2013, 11:20:26 am by Streetwalker »

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: xLIB 84C Edition
« Reply #24 on: June 19, 2013, 01:52:28 pm »
wow, that does look awesome. I love it how everypony uses zelda links awakening for tilemap tests >.>
Is it just me or is the transparent version a bit quicker O.O

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

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: xLIB 84C Edition
« Reply #25 on: June 19, 2013, 01:52:57 pm »
Looks very great tr1p! By the way, do you think people will be able to have both DCS and xLIB CSE installed at once? Back in the days, xLIB games often received backlash from the TI community because of how it required uninstalling Symbolic, Omnicalc and such school apps or vice-versa.

Maybe try to use a different token than anything DCS7 used?

What is chaining keypresses, by the way? Is it just multiple keypresses or is it something else?

Also, since xLIB constantly swaps between both sides of the GRAM, do you think this will pose problem for static HUDs and drawing text?
wow, that does look awesome. I love it how everypony uses zelda links awakening for tilemap tests >.>
Is it just me or is the transparent version a bit quicker O.O
It is possible, since drawing on that LCD is slow. Although detecting transparency might take a bit more processing power, it is possible that just displaying fewer pixels negates the speed drop.
« Last Edit: June 19, 2013, 01:55:23 pm by DJ Omnimaga »

Offline tr1p1ea

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 647
  • Rating: +110/-0
    • View Profile
Re: xLIB 84C Edition
« Reply #26 on: June 19, 2013, 07:48:25 pm »
Runer112, calc84 and i were talking about hook standards and such yesterday. A standard hook manager needs to be created; this likely wont happen for a while. There are the alternatives of OpenLib( and ExecLib( however one of the issues with this the handling of arguments, which will require excessive abuse of Ans.

With a parser hook you can effectively do things like: real(0,1,real(1,0),5 ... etc. I can use a different token if need be, but regardless of the token the hooks still need to be chained (not that there are any actual hook programs for the 84C yet).

Chaining keypresses means you can submit a list of keys to test at once, and add/subtract a value from a variable if true.

real(2,number_of_tests,key1,variable1,value1,key2,variable2,value2,key3,variable3,value3 ...

Instead of having multiple key commands. This actually speeds up things dramatically.

Also the screenie with the transparency has a better sprite routine than the first screenie which is why it is a bit faster. The gif might not be completely accurate however.

"My world is Black & White. But if I blink fast enough, I see it in Grayscale."


Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: xLIB 84C Edition
« Reply #27 on: June 19, 2013, 08:00:58 pm »
Should a topic on hook standards be made? It will require going back and forth between sites to make sure everybody is on the same page. I do think that a setup like this is very useful:
Code: [Select]
AppStart:
     jp Main
.db 84h,43h
     jp HookInstall
     jp ParserHook
     jp KeyHook
     jp MenuHook
...
Even if your app didn't use certain hooks, placing dummy jumps would be a good idea. This way it is very easy for other programs to run your hooks or install them. As well, making sure (as best as possible) that your hook doesn't modify inputs if it doesn't use it is an excellent idea. Then we could make some kind of appvar (or preferably a symbol variable, since it is faster to find) that simply contains a list of pages that "registered" apps can be accessed on. So if a new app wants to add itself to the list, it would need to locate the variable, augment it by 1 byte, and add its page to the list. Then any hooks would run through the app list calling their hook code from the jump table. The biggest issue would be that we would need to use the routine on another page x.x

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: xLIB 84C Edition
« Reply #28 on: June 19, 2013, 08:24:05 pm »
Yeah I agree that a topic on hook standards might have to be made. As for apps that might use parser hook features, I think the only one that is likely to use them is Doors CS8.

As for chained keypresses, will a tutorial be made on how to use them? It seems far different from standard real(8 or getkey commands seen before, so it might be harder to understand for newer programmers.

Offline tr1p1ea

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 647
  • Rating: +110/-0
    • View Profile
Re: xLIB 84C Edition
« Reply #29 on: June 20, 2013, 01:26:47 am »
Its virtually just an extension of the getkey command that can conditionally add/subtract a value to any user variable if the appropriate key is pressed. It saves having to do the old way of:

get key value
if key=?? then update variable1
if key=?? then update variable2
etc ...

Also here is a screenie that demonstrates how xLIB uses GRAM to buffer graphics:

"My world is Black & White. But if I blink fast enough, I see it in Grayscale."