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.


Messages - Runer112

Pages: 1 ... 112 113 [114] 115 116 ... 153
1696
Other / Re: Anyone use Logisim?
« on: November 28, 2010, 07:44:08 am »
I've been debating trying to make a Z80 CPU in Minecraft. It would be crazily difficult and probably run at most at a few cycles per second, but it would still be awesome.

1697
TI Z80 / Re: Sprite Editor Feature Requests
« on: November 27, 2010, 10:18:35 pm »
I see what you mean by how sets could be useful. I think that can probably be covered by the user having multiple sprites with the same attributes in a folder, so I don't know if I'd need a specific "Set" function.

And even if this thing ends up with AI, I'd probably still just call it a sprite editor. ;)

1698
TI Z80 / Sprite Editor Feature Requests
« on: November 27, 2010, 10:07:44 pm »
As some may have learned from a poll I posted a while ago, I've been working on a sprite editor in Axe. Or at least I was working on it, but put it down for a while to work on other stuff. But I want to come back to it, and I want to make sure it's as feature-packed and awesome as it can be. So before I get back to work on it, I'd like to know: What features would you want to see in the on-calc sprite editor of your dreams? Did I miss any useful editing tools? Did I miss a file operations feature? Request any features that you don't already see in the list below, or tell me about features already in the list below that you would especially like to see implemented.

Potential features (some are obviously more fundamental than others and will definitely be implemented, whereas others would probably be ridiculously complex to implement):
  • Black and white, 3-level gray, and 4-level gray sprites
  • Masked sprites
  • Sprites of any size
  • Viewing and editing at any zoom level, including zoom levels that don't fully fit on the screen (scrolling will be necessary)
  • Point tool
  • Line tool
  • Box tool
  • Circle tool
  • Variable pen size for drawing commands
  • Fill tool
  • Text tool
  • Hex editing
  • Area selection, transforming, cut, copy, and paste
  • Palette transformations (e.g. changing the color of all dark gray pixels to light gray and all light gray pixels to dark gray)
  • Sprite transformations (flip, rotate, shift)
  • Sprite conversion/attribute editing (e.g. changing size, changing gray level)
  • Tilemaps
  • Animations
  • A full filesystem (files, folders, shortcuts, etc. with names and attributes)
  • A file explorer
  • A menu system
  • Shortcut keys for most menu items
  • Search
  • File sorting in folders by various attributes
  • Importing data from and exporting data to pictures, strings, and Ans
  • Undo/redo
  • File selecting, moving, copying, and deleting from the file explorer
  • Batch sprite transformations

1699
TI Z80 / Re: [PROJECT] Racer3D: Replay
« on: November 27, 2010, 07:09:34 pm »
In Axe, just about all mathematics and comparsions are, by default, unsigned. And in an unsigned system, you can never have a value less than zero. What you need is a signed comparison.

1700
[FR] Autres Discussions TI et Casio / Re: Calcul Mental
« on: November 27, 2010, 09:44:39 am »
Pour obtenir un pointeur à un appvar qui existe déjà et le stocker dans la variable VAR:
Code: [Select]
GetCalc("appvPLOP")→VAR
Pour récupérer seulement un ou deux octets de l'appvar, il est préférable et plus facile de ne pas utiliser Copy(). Si la variable P contient le pointeur à l'appvar, vous pouvez simplement récupérer un octet (0-255) de l'appvar comme ceci :
Code: [Select]
{P+OFFSET}Pour récupérer deux octets (un mot, 0-65535), ajoutez un r à l'accolade fermante. Et pour stocker cette valeur dans une variable, ajoutez →VAR.

1701
TI Z80 / Re: Light - Progress
« on: November 25, 2010, 10:39:25 pm »
I did.  I'm working on deciphering Runer112's tilemap program, but I'm still not entirely sure how it works.

I think that's b/c it's crazy optimized.

Correct! I often struggle to decipher my optimized code, which is why I usually try to force myself to add more comments than I think I need so I can understand it at a later time. However, it looks like I didn't comment my tilemapper much. Want me to go back and comment it?

1702
[FR] Autres Discussions TI et Casio / Re: Calcul Mental
« on: November 25, 2010, 05:25:42 pm »
Par contre, si ce post t'a pris 5 minutes, comment celui-là t'a pris???  :o

À peu près d'une heure.

EDIT: Le fait que j'ai écrit le message sur mon iPod n'a pas aidé probablement.

1703
[FR] Autres Discussions TI et Casio / Re: Calcul Mental
« on: November 25, 2010, 04:53:57 pm »
kindermoumoute, comment bien peux-tu comprendre l'anglais? Parce que je peux répondre à tes questions en français, mais c'est difficile pour moi. Je peux comprendre bien le français, mais je ne peux pas bien écrire le français. Je peux répondre meilleur et plus rapidement en anglais. Ce message seulement m'a pris à peu près de cinq minutes.

1704
[FR] Autres Discussions TI et Casio / Re: Calcul Mental
« on: November 25, 2010, 04:03:41 am »
Let's see how bad my French is.

On peut utiliser des Lbls et des Gotos où on veut, bien qu'il faut qu'on s'assure que pour chacun appel de fonction pendant l'exécution, il y a un Return. Contrairement au TI-BASIC, dans lequel les structures comme les boucles utilisent de la mémoire donc le prochain End saura où à sauter (franchir?), les
boucles dans Axe sont comme là:
Code: (Une boucle dans Axe) [Select]
While A<256
A*2->A
End
       
Code: (Comment cela vraiment courrait, représenté dans TI-BASIC) [Select]
Lbl A
If not(A<256)
Goto B
A*2->A
Goto A
Lbl B
Parce que les boucles dans Axe sont comme ça, il ne faut pas qu'une boucle utilise de la mémoire donc la fin de la boucle sait où à aller. On ne peut pas causer une fuite de mémoire par sauter hors d'une boucle. On peut utilise des Gotos dans des fonctions aussi, bien qu'on doit faire attention que les nombres des sub() et des Return qui exécutent sont égals.

On peut faire un appvar comme petit ou comme grande comme on veut, tant que l'appvar va dans la mémoire vive. Le nom, cependant, est limité à huit octets. Pour créer un appvar de taille TAILLE des octets et à mettre un pointeur au début de ses données dans P:
Code: [Select]
"appvMONAPPVR"->Str1
GetCalc(Str1,TAILLE)->P
Pour trouver un appvar qui déjà existe et à mettre un pointeur au début de ses données dans P:
Code: [Select]
"appvMONAPPVR"->Str1
GetCalc(Str1)->P

J'espère que vous pouvez comprendre mon mauvais français.

1705
Web Programming and Design / Re: My Website - My calculator Projects
« on: November 24, 2010, 08:01:30 am »
Spoiler For Best background ever (If you're epileptic, it's probably safest to not look at this, just in case):

1706
Axe / Re: Executing nostub progs
« on: November 23, 2010, 01:03:10 pm »
It takes a pointer to a zero-terminated string that contains the name of the program.

1707
The Axe Parser Project / Re: Features Wishlist
« on: November 23, 2010, 10:58:57 am »
Oh, nevermind then. I just glanced at the routine and didn't see any 16-bit register operations so assumed it was all 8-bit. But now I see the dec h.

1708
The Axe Parser Project / Re: Features Wishlist
« on: November 23, 2010, 10:04:17 am »
Well actually it would be a bit more complicated than just multiplying by 2. For now, you would have to do something like this:
Code: (31 bytes) [Select]
!If sin(A)→B<ᴇ80
B+ᴇFF00→B
End
.8.8 fixed point result in B

When the signed division auto-optimizations are fixed, a better way will be this:
Code: (15 bytes) [Select]
sin(A)*256//256
EDIT: Disregard all of that, the number comes out as fixed point after all.

1709
The Axe Parser Project / Re: Features Wishlist
« on: November 22, 2010, 10:42:36 pm »
The current sine and cosine routines produce 1-byte outputs, which is why the range is from -127 to 127. It uses a basic approximation that already isn't completely accurate for the output range of -127 to 127, so expanding the output range would just inflate the inaccuracies as well. If you want to inflate the output values, it's probably not that difficult to do with Axe anyways. And if he were to modify the routine to be more accurate and produce 2-byte outputs, it would require a better approximation method and would surely be a much heftier and slower routine.

1710
Ash: Phoenix / Re: Ash: Phoenix
« on: November 22, 2010, 08:52:50 pm »
Would most maps be filled with mainly one tile like this?



EDIT: How about RLE? I made a program (ASHCOSRC) to compress nibble tilemaps with 4-bit RLE for you :) To use it, change the width and height variables present at the start of the source program to what you want and put the hex for the uncompressed tilemap under GDB0M. Then run the program and the hex for the compressed map will be put into Str1. Your example tilemap compressed very well, from 120 bytes to 24. ;)

And of course, what compression algorithm is any good without the proper decompression algorithm? ASHDESRC is the decompression program. The part of it that is the actual algorithm, which is all you would want, is the code under the tag ".DECOMPRESSION" excluding the Disp "DECOMPRESSING..." line. The decompression algorithm is only 113 103 bytes.

Code: (120 bytes compressed into 24 with 4-bit RLE) [Select]
F70002C11002E002F0F00AE00AF0F0F0F0F0F0F04003F060
I hope I made it straightforward and user-friendly enough that you can simply stick all your maps into ASHCOSRC one at a time and easily retrieve the compressed map data. If you have any questions, feel free to ask.

EDIT 2: Uploaded a new, further optimized decompression program. The algorithm is now 103 bytes instead of 113.

Pages: 1 ... 112 113 [114] 115 116 ... 153