826
OmnomIRC Development / Re: Bot Net
« on: July 16, 2013, 02:00:39 pm »
I still think we need a mrandelbot.
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. 826
OmnomIRC Development / Re: Bot Net« on: July 16, 2013, 02:00:39 pm »
I still think we need a mrandelbot.
827
TI Z80 / Re: Project Idea: Interrupt Routine that draws sprites and tilemaps« on: July 16, 2013, 12:54:01 pm »That looks pretty awesome.Thanks! And I do not know what you mean. It redraws whenever an animated tile goes to its next frame and it only draws to 8x8 regions (so there are 96 tile locations on the screen). For my purposes, this is enough (I will be using smooth-scrolling in the way Pokémon games did it by scrolling in a whole tile, 1 pixel at a time). However, for a project such as what Hot_Dog had in mind, it would be useful to have an option for drawing the map at any pixel offset. Also, I just compared my sprite drawing routine to the one in Axe and my speed estimate was really far off (I massively overestimated how long it would take). Anyways, my method did turn out faster >.> 828
TI Z80 / Re: Project Idea: Interrupt Routine that draws sprites and tilemaps« on: July 16, 2013, 12:02:55 pm »
It's at 6MHz, too The other nice thing about this is that if the interrupt were activated during a BASIC program, it could work (it would slow down the BASIC code significantly, probably). The main difficulty would be in making an interface so that BASIC programs could access the appropriate memory areas, but that could be done with a parser hook.
Anyways, the goal of such a program is to make it very easy and straightforward to use sprites and tilemaps in assembly and I think this makes it pretty easy You don't even need to call the tilemap routine! 829
TI Z80 / Re: Project Idea: Interrupt Routine that draws sprites and tilemaps« on: July 16, 2013, 11:39:21 am »
Necrobump o_O
I just googled "how fast are sprite drawing routines TI-84+" to see if anybody has already done some calculations when I found this page again and it actually happens to be relevant. I completely forgot about this, but I am glad I found it! In one of my projects, I have it so that my interrupt routine and the interrupt table are in the app (I know this sounds like a bad idea and I need to be sure not to swap out the page without turning off interrupts). The interrupt is actually what I use to handle LCD updating and drawing the tilemap. All I have to do is write the tileset pointer, tilemap location, width, and height to a spot in RAM, and as well, the current (X,Y) offsets into the map. Then set a flag saying that it is in tilemap mode, and another flag saying that the tilemap needs to be rendered and the interrupt will render it. Since the interrupt is also handling the keyboard, my code uses a bunch of halt instructions, ensuring that the tilemaps are updated smoothly. The other tasks include animating the tiles and if any tiles move to a new frame, the tilemap is automatically updated on the LCD. This is an example code and the screenshot of it: Code: [Select] Continue: In order to make this code better for more general use, it would have to have the interrupt reside in RAM and make it easy for the user to link their own interrupt code. I am still working on refining the tilemap routine and sprite routines (as you could probably tell from the Google search). However, here is all of the code in my interrupt currently, as well as relevant subroutines and a little documentation (I didn't have it prepared): Spoiler For Interrupt: EDIT: Also, the tilemap and tileset: Code: [Select] testmap: ;23 wide, 13 tall
830
ASM / Re: DivAHLby10 Routine Check« on: July 16, 2013, 09:41:24 am »Thanks alot Xeda, now I know who to go to for code.I'm still not at the level of Runer112, jacobly, or calc84maniac (to name a few ). I definitely enjoy doing this kind of coding, though! That Pokemon Amber looks great!Thanks! Now if it can ever get finished... 831
News / Re: TI-Story moves to its own site« on: July 16, 2013, 09:28:01 am »EDIT: On a semi-offtopic note, why is there no TI-84 Plus C (color) Silver Edition reference nor info on TI-BD?I think it is because none of the main contributors have one yet 832
News / Re: RFG Image Uploader closes down; Omnimaga Image Uploader opens« on: July 15, 2013, 02:18:15 pm »
The image URL that gets returned is
http://img.omnimaga.org/AmberBetaEx0-1.gif I uploaded that image before, but the new image I am trying to upload is AmberBetaEx3.gif. I tried it a few times and double checked the image 833
News / Re: RFG Image Uploader closes down; Omnimaga Image Uploader opens« on: July 15, 2013, 01:58:59 pm »
I have some potential bugs and suggestions:
I tried to upload an image and it is instead recognising it as a duplicate. I think it is because the starting frames are identical. Suggestions: The ability to delete ore replace old images. I am currently keeping a project updated in my signature with a single screenie, so it would be cool to be able to update it in the image uploader and have it updated in my signature. I now have a few duplicate uploads cluttering the "previous uploads" which is why I was suggesting the delete option. 834
News / Re: TI-Story moves to its own site« on: July 15, 2013, 12:18:49 pm »
Yeah, I noticed that a few weeks ago :[ On the other hand, he was editing and updating pages still.
835
Web Programming and Design / Re: RFG Image Uploader« on: July 13, 2013, 07:55:09 am »
I noticed that yesterday :[ I do hope it can be put back online.
836
TI Z80 / Re: Pure Ti-Basic command line thingy« on: July 10, 2013, 11:09:12 am »
Excellent work so far, LemonDrop !
837
TI Z80 / Re: CopyProg« on: July 09, 2013, 05:57:43 am »
Hmm, you cannot get CopyProg to work? What isn't working? I tried the line reading and that works, and copying from one var to another worked for me, as well as the GetName instruction works for programs and whatnot (I just tested it and there is an issue with strings and whatnot, but it still returns strings in an appropriate format).
838
TI Z80 / Re: FileSyst« on: July 08, 2013, 06:34:44 pm »
I am starting to change some things around, like the look-up routine to find a function. To speed up the search a little in most cases, I had the names stored alphabetically. Now I have a 52-byte LUT to jump to a given spot in the table based on the first letter of the function.
I was also thinking that it might be a good idea to store folders and files alphabetically. While that may sound like a pain to actually code, I realised earlier that it should actually be quite easy and it would make searches faster. Instead of checking every file in the folder to find out it doesn't exist, it only needs to start where the first letter matches and go until the first letter no longer matches. This will mean that users can get an alphabetically sorted list of names. This should make it possible to have folders indexed in a similar way as how the function list is indexed. These all together should make lookup speed a bit faster than the system that TI uses and long program lists will be able to load just as quickly as short ones. (tl;dr : files and folders can be accessed faster and new files can be created faster -- the code is already there) I also wrote the brunt of a routine to tokenise source codes. This doesn't help much for speed, yet, but if control structures like loops are implemented later, this should greatly improve speed (by a gazillion-fold). Hopefully all of this will make it easier to add variable support 839
TI Z80 / Re: TI84+C Buttonz« on: July 08, 2013, 06:05:40 pm »
Maybe if the user is pressing [DOWN], skip the delay? Nice job, by the way!
840
ASM / Re: DivAHLby10 Routine Check« on: July 06, 2013, 07:27:33 am »
Cool! If you have inputs as EHL, then the output will be A as the remainder and EHL as the result :
Code: [Select] DivAHLby10: That saves only 3 bytes and 12 cycles. If you want to squeeze a little more speed out of the routine without fully unrolling it, you can unrll the first 3 iterations since 3 bits will never be >=10 :Code: [Select] DivAHLby10: The cost is 12 bytes and you save only 87 cycles. I am trying to think of a better approach to get speed out of this.EDIT: This routine gets a minimum of 966 tstates, average of 984.5, and max of 1002, making it almost 300 t-states faster at its slowest than the previous routine at its fastest. The downside is that it is 35 bytes, compared to the 15 it could be: Code: [Select] DivEHLby10:
|
|