Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Matrefeytontias

Pages: [1] 2 3 ... 7
TI Z80 / [Axe] Axagon
« on: December 22, 2014, 07:19:07 am »

It's been a while since I last worked on an Axe project because school kept me busy and non-motivated, but since it's the holidays, I thought of getting back into it.

I'm not getting straight back into Worms (I will, later) because I wanted to do a quick little project before, and that had to be Hexagon. Note that I'll only do Hexagon, not Super Hexagon.

At the time of writing everything has been done except collisions and patterns after 3 hours worth of programming. The game runs smoothly at 6 MHz as always.

TI-Nspire / z80e for Nspire
« on: November 16, 2014, 04:26:44 pm »
Hey guys,

the KnightOS team having started (more than started actually) working on z80e, a z80 emulator written in C, and after me porting it to Windows (it uses SDL), I thought about porting it to the TI-Nspire. And guess what ? I did :w00t:

Be warned : the emulator itself not being finished, the Nspire version isn't either. Of course, I plan to mirror progress that's being made on the PC version to the Nspire version.

So far it doesn't actually run the TI-OS, but it does run the attached KnightOS ROM. You'll still see that some things aren't right, but that's really the emulator's fault. Also, it'll work both with Ndless 3.1 and Ndless 3.6, the PRG version being for Ndless 3.1.
I don't release the code yet because I still have a huuuuuge lot of clean-up to do, due to the Nspire not using many features that the PC version uses (like the CLI debugger).

But yeah, do check out the attachements. Please let me know about any bug that might crash or freeze your calc, and in what circumstances. Those may be known emulation problems, or not.

Share comments :)

EDIT : oops, forgot to put control scheme.

So yeah, control scheme so far :

TI-84+SE keyTI-Nspire key
Down, left, right, upDown, left, right, up (click on touchpad calcs)
NumkeysSame numkeys

You can exit the emulator at any time by pressing Q. If it doesn't work, then that's pretty much that the emulator itself is stuck, and not the emulation.

EDIT 2 : screenshot ! How could I have forgotten that.

EDIT 3 : dayum, forgot to compile with -Ofast. Attachment updated !

Site Feedback and Questions / Dear Omnimaga
« on: November 11, 2014, 04:27:42 pm »
To all Omnimaga members, regular and staff.

We offer to you the present petition as a terrain of discussion about the diverse problems that have been affecting Omnimaga lately, generally a noticeable faulty behavior from site administrators, and precisely about Eeems, owner of said statute.

After a session of thoughts sharing, we, Hayleia, aeTIos, DJ_Omnimaga, Juju, Keoni29, turiqwalrus, Sorunome, harold, Streetwalrus, matrefeytontias, feel that behavior adjustements are required in order to maintain the previously-ideal atmosphere of the Omnimaga community. We would like to bring to your consideration the following points :

- lately, Eeems has been modifying features of the site that could have bothered the user experience of Omnimaga members, and this without any prior consent from any member, and in this case with the explicit disagreement of a support staff :
- in similar situations, Eeems said having the right to perform such modifications as he is the one paying for the hosting of the site. While we all thank him for this, this fact shouldn't become an excuse for making alone decisions that could affect greatly, and in any way, user experience.
- the co-owner group now only contains Eeems and geekboy, when it used to include way more people like rcfreak0 and Netham45 (the latter holding the full legal rights on the domain, as shown when entering "" as a domain name here : If it was the result of group reorganization, no Omnimaga user was notified of such action unlike the news item located here says it would happen :
- despite Omnimaga being meant to be a friendly place of interest sharing, free speech, and overall amusement, we feel that Eeems treats it too much like a professional responsibility, thus harming the enjoyment of members.
- the Omnimaga IRC chat has been made by Netham45 then Sorunome to be a free place of discussion. In our opinion, Eeems has proven irrelevant over-restrictiveness several times. We feel that he has been forcing people to join a different channel to carry discussions about certain topics he doesn't like, while there is no topic restriction for the #omnimaga channel.

Overall, we think that Eeems should prove more humble behavior, both towards site members and the site itself. It goes by accepting (and actually requesting) others' opinions and taking into account negative feedback. While we perfectly understand the privileges given by the statute of site administrator, we think it should not be mistaken with the statute of absolute ruler.

We would like to explicitely specify that we don't want Eeems to be demoted, but that if he fails to correct his behavior we will be forced to go in favor of his demotion.

The goal of this petition is to permit all Omnimaga members, regular and staff, to express themselves on the issues presented here. Should you agree with our point of view, please let us know as soon as possible by any way you would like, while giving priority to public means of communications and especially the Omnimaga forums, while keeping in mind your word will be used as pressure power if extreme conditions make it needed. If you don't want your opinion to be revealed, please don't express yourself on this matter.

Humour and Jokes / Important life algorithms
« on: November 10, 2014, 02:30:36 pm »
Today I learnt something : life is made of algorithms. I discovered one today, being a student in my own appartment :

Code: [Select]

Did you discover things like this ?

Calculator C / va_list family functions missing in latest Ndless ?
« on: November 05, 2014, 07:39:39 am »
Here's what make tells me when building the nKaruga source (online version slightly outdated, ask for precision if needed) :

(right after a make clean)
Code: [Select]
$ make
mkdir .depends
nspire-gcc -Wall -W -marm -Os -c main.cpp -MM -MF .depends/main.cpp.d
nspire-gcc -Wall -W -marm -Os -c Homing.cpp -MM -MF .depends/Homing.cpp.d
nspire-gcc -Wall -W -marm -Os -c PowerFragment.cpp -MM -MF .depends/PowerFragment.cpp.d
nspire-gcc -Wall -W -marm -Os -c DrawingCandidate.cpp -MM -MF .depends/DrawingCandidate.cpp.d
nspire-gcc -Wall -W -marm -Os -c ChainNotif.cpp -MM -MF .depends/ChainNotif.cpp.d
nspire-gcc -Wall -W -marm -Os -c ExplosionEffect.cpp -MM -MF .depends/ExplosionEffect.cpp.d
nspire-gcc -Wall -W -marm -Os -c Player.cpp -MM -MF .depends/Player.cpp.d
nspire-gcc -Wall -W -marm -Os -c Bullet.cpp -MM -MF .depends/Bullet.cpp.d
nspire-gcc -Wall -W -marm -Os -c Laser.cpp -MM -MF .depends/Laser.cpp.d
nspire-gcc -Wall -W -marm -Os -c buildGameLUTs.cpp -MM -MF .depends/buildGameLUTs.cpp.d
nspire-gcc -Wall -W -marm -Os -c DestroyedEnemies.cpp -MM -MF .depends/DestroyedEnemies.cpp.d
nspire-gcc -Wall -W -marm -Os -c DrawingCandidates.cpp -MM -MF .depends/DrawingCandidates.cpp.d
nspire-gcc -Wall -W -marm -Os -c BulletArray.cpp -MM -MF .depends/BulletArray.cpp.d
nspire-gcc -Wall -W -marm -Os -c EnemiesArray.cpp -MM -MF .depends/EnemiesArray.cpp.d
nspire-gcc -Wall -W -marm -Os -c BossEnemy.cpp -MM -MF .depends/BossEnemy.cpp.d
nspire-gcc -Wall -W -marm -Os -c Particles.cpp -MM -MF .depends/Particles.cpp.d
nspire-gcc -Wall -W -marm -Os -c Enemy.cpp -MM -MF .depends/Enemy.cpp.d
nspire-gcc -Wall -W -marm -Os -c utils.cpp -MM -MF .depends/utils.cpp.d
nspire-gcc -Wall -W -marm -Os -c ExplosionAnim.cpp -MM -MF .depends/ExplosionAnim.cpp.d
nspire-gcc -Wall -W -marm -Os -c n2DLib.c -MM -MF .depends/n2DLib.c.d
nspire-gcc -Wall -W -marm -Os -c n2DLib.c
n2DLib.c: In function ‘drawPolygon’:
n2DLib.c:492:2: erreur: unknown type name ‘va_list’
  va_list ap;
n2DLib.c:495:2: attention : implicit declaration of function ‘va_start’ [-Wimplicit-function-declaration]
  va_start(ap, nombreDePoints);
n2DLib.c:499:3: attention : implicit declaration of function ‘va_arg’ [-Wimplicit-function-declaration]
   cur_arg = va_arg(ap, int);
n2DLib.c:499:24: erreur: expected expression before ‘int’
   cur_arg = va_arg(ap, int);
n2DLib.c:508:2: attention : implicit declaration of function ‘va_end’ [-Wimplicit-function-declaration]
n2DLib.c: In function ‘drawStringF’:
n2DLib.c:661:2: erreur: unknown type name ‘va_list’
  va_list specialArgs;
n2DLib.c:666:2: erreur: incompatible type for argument 3 of ‘vsprintf’
  vsprintf(str, s, specialArgs);
In file included from /cygdrive/c/Users/Mattias/Documents/GitHub/Ndless/ndless-sdk/toolchain/install/arm-none-eabi/sys-include/stdint.h:12:0,
                 from /cygdrive/c/Users/Mattias/Documents/GitHub/Ndless/ndless-sdk/toolchain/install/lib/gcc/arm-none-eabi/4.9.1/include/stdint.h:9,
                 from /cygdrive/c/Users/Mattias/Documents/GitHub/Ndless/ndless-sdk/bin/../include/libndls.h:36,
                 from n2DLib.h:4,
                 from n2DLib.c:1:
/cygdrive/c/Users/Mattias/Documents/GitHub/Ndless/ndless-sdk/toolchain/install/arm-none-eabi/sys-include/stdio.h:189:5: note: expected ‘__gnuc_va_list’ but argument is of type ‘int’
 int _EXFUN(vsprintf, (char *, const char *, __VALIST)
Makefile:52: recipe for target 'n2DLib.o' failed
make: *** [n2DLib.o] Error 1
I only include <libndls.h> in n2DLib.h . Is it that libndls.h doesn't include stdarg.h ?

EDIT : yeah. Can someone delete this thread ?

Music Showcase / Matrefeytontias's music showcase (has metal in it)
« on: October 20, 2014, 03:35:27 am »
'sup guys,

So lately I've been recording myself on guitar and programming drums. I'm having lots of fun, so I thought I may as well continue doing that. So far, I did 3 things, that you can find on my soundclound account If you like metal, go there :P

  • My first attempt ever at recording and at composing, Empty Room, progressive metal. Please disregard that, you can obviously hear that it's my first attempt.
  • A cover of the song This War is Ours by the band Escape the Fate (metalcore). This one sounds really good if you ask me ;D
  • A metal remix of the Joueur du Grenier's intro (a French youtuber). This one I had the most fun recording x)
I may post more in the future, so stay tuned :)

TI Z80 / IkarugaX cheating tool
« on: August 05, 2014, 03:31:01 pm »
So yeah. Since it's been 9 months and nobody reached level 5 yet - I've reached it but never beat it - I thought I would write a quickly-hacked-together cheating tool that allows you to start the game at any level you want.

So yeah, it's a 12-lines program, so not really exciting, but it can help you have even more fun (fun ? yeah, fun) with IkarugaX. Maybe.

For those who don't know IkarugaX yet :

It's a danmaku (Japanese for bullet hell) shoot-them-up based on a polarity switching mechanic. Basically, both you and your enemies' bullets can be of either black or white polarity ; the thing is that only bullets of your opposite polarity hurt you, and you absorb the rest to fill your power gauge. When you absorbed at least 8 bullets, you can do a power release and fire as many power fragments as you absorbed packets of 8 bullets. Power fragments are homing lasers that go straight to the nearest enemy. So using your advanced arsenal, you go destroy tens of enemies, dodge and absorb thousands of bullets (I'm not exaggerating) and kick huge bosses' ass. You have 3 lives though, and have no way of getting them back when you lose them. When you get killed (ie lose all your lives) you get back to the beginning of the level you died in thanks to checkpoints (automatically reached when finishing a level).

Ryan (ticalc redactor) tells you his word about it :
If you just want to play, here's a link to the game's ticalc page :

Also, you can tell the cheating tool  to mark the game as beaten. Because yes, something happens when you start a new game after beating it. Yes, all your nightmares were true. I know it's hard. You have to hear it though. You can't run away from the truth anymore. Remember, the countless hours you've spent trying to kill this goddamn impossible boss, to finally complete this fucking level and move to another one, only to find out it was just more impossible ? You remember that ? Good. Because now, your worst nightmares are becoming true. Yes, you were playing on easy mode. And yes, beating the game unlocks hard mode. Run with ION-compatible shells. Have fun.

The Axe Parser Project / Scaled sprites axiom
« on: July 11, 2014, 01:31:31 pm »
Hi guys,

This is something I could have done a while ago, but since Hayleia reminded me about it, I do it now.

So what is it, you ask. Well, it's an axiom that lets you draw scaled sprites, either clipped (for safety) or not clipped (for speed). Beware though, it only lets you draw sprites as a fraction of their size, that means that you can't widen sprites, only shrink them - but look at dem specs : it works for sprites up to 256*256 and have a precision of 0.4 in the resizing ratio.

Though this time again, I didn't do much ; like with AxeJh3D, I just ported ASM routines to axiom form. Code and appvar attached.

So here's how it works. The commands can be found near the Z entry of the catalog [2nd][0][2].

Command (token)UsageEffect
Scaled-On (Zoom In)Scaled-On(X * 256 + Y, original height * 256 + original witdh IN BYTES, scale factor, sprite)OR-s a sprite scaled to a fraction of its original dimensions on the graph buffer. Does no clipping, very fast. The scale factor goes from 1 to 256 (or 0 to 255, but keep reading). 1 is 0.4%, 128 is 50%, 256 (aka 0) is 100%.
Scaled-XOR (Zoom Out)Scaled-XOR(X * 256 + Y, original height * 256 + original width in bytes, scale factor, sprite)XOR-s a sprite scaled to a fraction of its original dimensions on the graph buffer. Does no clipping, very fast.
ScaledClip-On (ZoomFit)ScaledClip-On(X * 256 + Y, original height * 256 + original width in bytes, scale factor, sprite)OR-s a sprite scaled to a fraction of its original dimensions on the graph buffer. Does clipping, but still very fast, trust me. :P
ScaledClip-XOR (ZoomRcl)ScaledClip-XOR(X * 256 + Y, original height * 256 + original width in bytes, scale factor, sprite)XOR-s a sprite scaled to a fraction of its original dimensions on the graph buffer. Does clipping, but still very fast, trust me. :P

Original routines :

Enjoy =]

Calculator C / [Ndless] Help with bottleneck on color calcs only
« on: June 26, 2014, 06:25:50 am »
Hi guys,

I've been working on nKaruga since quite some time now, and although it's reasonably fast on monochrome TI-Nspires, it's accurately twice as slow on color calcs, although it's the same code running and that the monochrome screen is being configured in 16-bits mode by the game.

I have no idea why it's like this, I keep trying things and nothing changes. I even removed every drawing command except the screen update and the ship, and the speed stays the same. Since I'm really, really stuck, I thought of asking you guys.

The full source is here :

It's also possible that it's n2DLib's fault, since it's used to interact with the screen :

Feel free to fork it and submit PR, I'll be very happy to see things fixed because I don't know what to do.

Also, I have no color calc to test, only monochrome. Several people made tests for me.

TI-Nspire / [Ndless] n2DLib
« on: June 02, 2014, 06:07:45 pm »
Hey guys,

So Hayleia, pierrotdu18 (from TI-Planet) and I were kinda used to nSDL, but as we encountered speed and portability difficulties (like nSDL_LoadImage returning 16-bits surfaces only) we thought of doing our own graphics lib. So far it does work pretty well ; here are the implemented, tested and working features :
  • Double-buffering via a few functions, init, two kinds of update and deinit
  • Some fixed-point (24.8 ) maths routines : multiply, divide, fixed to integer, integer to fixed, fixed cos, fixed sin, 2D rotation of a point by an angle
  • Buffer-level routines : clear, fill
  • Pixel-level routines : getPixel, two kinds of setPixel (R5G6B5 and RGB)
  • Sprite-level routines : drawSprite, drawSpritePart (draws only a part of a sprite), drawSpriteRotated (rotates a sprite by an angle)
  • Full compatibility with monochrome and color Nspires, with automated conversion of colors
That's it for now, but of course we will add more and more routines to make it the best lib for Nspire ! :)

Attached are the two files you need to use the lib.

KnightOS / What do you want the most in future KnightOS ?
« on: May 29, 2014, 01:35:16 pm »
That lets us KOS developers know what to focus on !

Note that's only for a hypothetic far future though, don't expect any of this implemented any time soon.

If you have any questions on what does what, please ask !

Art / [Request] Sprites based on Ikaruga ships
« on: May 11, 2014, 11:15:54 am »
Hey guys,

I need some people to help me with the graphics for nKaruga. I was able to use the Ikaruga sprite (Ikaruga is also the name of the player's ship) that someone made, but as I discovered later, those were apparently the only 2D sprites related to Ikaruga on the whole internet.

So what I'm asking for is, sprites of no more (or no less, depends on how much you like doing that) than 4 ships, that you could base on this video. I'd need :
  • the very first ships. See 0:16
  • the third sort of ships you see. See 0:40
  • the big ones. See 1:25
  • why not the first boss ? If you do it, no need to draw multiple frames, only a static image will do.
I'd like the images around 30*30 of dimensions, whatever fits you.

Thanks by advance, I know it's a lot of work :/

TI-Nspire / [Ndless] nKaruga
« on: May 10, 2014, 10:28:08 am »
Yes. Apparently I wasn't completely satisfied with IkarugaX for z80 calcs (in action here :
), so I thought "mh, what if I add colors, moar pixels and moar CPU". I thought about it and the answer popped in my head : moar awesome.

It's being programmed in C++, and I'll try to stay true to the original on the level design side. Of course it won't have super-amazing 3D graphics, 2D motion blur and all that shit (unless I find a GPU that works on Nspire calcs), but I'll really try to make it beautiful.

Screenshot coming in a minute.

EDIT : here you go

Of course the questionable quality is because of the recording.

Calculator C / Setting up a C++ environment for Ndless ?
« on: May 08, 2014, 11:53:42 am »
I tried some searches, but nothing helped.

Calculator C / [Ndless] Multi-arrow keys detection problem
« on: May 04, 2014, 03:12:20 pm »

So that one is a first for me. I have one program, and nspire_emu only detects multi-arrow-keys presses if it's emulating a non-CX Nspire. If it's emulating a CX one, the last pressed key overwrites the preceding one (like, if I hold right then press up, it'll only understand up).

At first I thought that was only nspire_emu, but testing on real HW from a TI-Planet member (I only have a Nspire CAS, on which it worked well) told me that that wasn't nspire_emu.

So I finally thought that was because of the touchpad (again, some may say). That's what I currently have :

Code: [Select]
typedef int KeyEvent; // because cleanliness
inline KeyEvent getk(void)
    return (((isKeyPressed(KEY_NSPIRE_UP) << 1) + isKeyPressed(KEY_NSPIRE_RIGHT) << 1) + isKeyPressed(KEY_NSPIRE_LEFT) << 1) + isKeyPressed(KEY_NSPIRE_DOWN);

I wrote a small debug wrapper for you to test if you wish :

Code: [Select]
typedef int KeyEvent;
KeyEvent getk(void)
    int i;
    KeyEvent k;
        k = (((isKeyPressed(KEY_NSPIRE_UP) << 1) + isKeyPressed(KEY_NSPIRE_RIGHT) << 1) + isKeyPressed(KEY_NSPIRE_LEFT) << 1) + isKeyPressed(KEY_NSPIRE_DOWN);
        for(i = 3; i >= 0; i--)
            printf("%d", (k >> i) & 1);
    return k;
Look at the console while you press keys ; [enter] to quit.

Any idea ?

Pages: [1] 2 3 ... 7